about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications')
-rw-r--r--nixpkgs/pkgs/applications/altcoins/aeon/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-abc.nix46
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-classic.nix54
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch38
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix68
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix51
-rw-r--r--nixpkgs/pkgs/applications/altcoins/bitcoin.nix56
-rw-r--r--nixpkgs/pkgs/applications/altcoins/btc1.nix41
-rw-r--r--nixpkgs/pkgs/applications/altcoins/clightning.nix57
-rw-r--r--nixpkgs/pkgs/applications/altcoins/cryptop/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dashpay.nix43
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dcrd.nix34
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dcrwallet.nix43
-rw-r--r--nixpkgs/pkgs/applications/altcoins/default.nix100
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dero.nix27
-rw-r--r--nixpkgs/pkgs/applications/altcoins/dogecoin.nix41
-rw-r--r--nixpkgs/pkgs/applications/altcoins/ethabi.nix27
-rw-r--r--nixpkgs/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch15
-rw-r--r--nixpkgs/pkgs/applications/altcoins/freicoin.nix36
-rw-r--r--nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/deps.nix39
-rw-r--r--nixpkgs/pkgs/applications/altcoins/go-ethereum.nix28
-rw-r--r--nixpkgs/pkgs/applications/altcoins/litecoin.nix51
-rw-r--r--nixpkgs/pkgs/applications/altcoins/masari.nix27
-rw-r--r--nixpkgs/pkgs/applications/altcoins/memorycoin.nix56
-rw-r--r--nixpkgs/pkgs/applications/altcoins/mist.nix72
-rw-r--r--nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix93
-rw-r--r--nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch27
-rw-r--r--nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch13
-rw-r--r--nixpkgs/pkgs/applications/altcoins/monero/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/altcoins/namecoin.nix48
-rw-r--r--nixpkgs/pkgs/applications/altcoins/nano-wallet/CMakeLists.txt.patch13
-rw-r--r--nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity-ui/env.nix19
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity/beta.nix6
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/altcoins/parity/parity.nix42
-rw-r--r--nixpkgs/pkgs/applications/altcoins/particl/particl-core.nix53
-rw-r--r--nixpkgs/pkgs/applications/altcoins/polkadot/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/altcoins/stellar-core-dirty-version.patch15
-rw-r--r--nixpkgs/pkgs/applications/altcoins/stellar-core.nix47
-rw-r--r--nixpkgs/pkgs/applications/altcoins/sumokoin.nix35
-rw-r--r--nixpkgs/pkgs/applications/altcoins/wownero.nix51
-rw-r--r--nixpkgs/pkgs/applications/altcoins/zcash/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/altcoins/zcash/librustzcash/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/AMB-plugins/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/FIL-plugins/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/MMA/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/audio/a2jmidid/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/aacgain/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/audio/abcde/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/audio/aeolus/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/airwave/default.nix91
-rw-r--r--nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/amarok/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/audio/ams-lv2/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/ardour/default.nix91
-rw-r--r--nixpkgs/pkgs/applications/audio/ario/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/artyFX/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/asunder/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/audio/audacious/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/audio/audacious/qt-5.nix92
-rw-r--r--nixpkgs/pkgs/applications/audio/audacity/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/audio/audio-recorder/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/audio/aumix/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/avldrums-lv2/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/axoloti/default.nix101
-rw-r--r--nixpkgs/pkgs/applications/audio/axoloti/dfu-util.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix38
-rw-r--r--nixpkgs/pkgs/applications/audio/baudline/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/audio/beast/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/audio/beast/patch.patch187
-rw-r--r--nixpkgs/pkgs/applications/audio/bitmeter/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix100
-rw-r--r--nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix18
-rw-r--r--nixpkgs/pkgs/applications/audio/bristol/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/bs1770gain/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/audio/cadence/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/audio/calf/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/cantata/default.nix88
-rw-r--r--nixpkgs/pkgs/applications/audio/caps/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/caudec/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/audio/cava/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/audio/cd-discid/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/cdparanoia/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch468
-rw-r--r--nixpkgs/pkgs/applications/audio/cdparanoia/utils.patch68
-rw-r--r--nixpkgs/pkgs/applications/audio/chuck/clang.patch58
-rw-r--r--nixpkgs/pkgs/applications/audio/chuck/darwin-limits.patch13
-rw-r--r--nixpkgs/pkgs/applications/audio/chuck/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch21
-rw-r--r--nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob.patch13
-rw-r--r--nixpkgs/pkgs/applications/audio/clementine/default.nix134
-rw-r--r--nixpkgs/pkgs/applications/audio/clerk/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/cmus/default.nix134
-rw-r--r--nixpkgs/pkgs/applications/audio/cmus/option-debugging.patch42
-rw-r--r--nixpkgs/pkgs/applications/audio/cmusfm/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/audio/crip/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/audio/csa/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/audio/csound/csound-qt/rtmidipath.patch17
-rw-r--r--nixpkgs/pkgs/applications/audio/csound/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/default.nix100
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/plugins/infobar.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/plugins/mpris2.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/plugins/opus.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/denemo/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/dfasma/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/audio/dirt/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/distrho/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/drumgizmo/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/drumkv1/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/easytag/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/ecasound/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/eflite/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/audio/eflite/format.patch11
-rw-r--r--nixpkgs/pkgs/applications/audio/ekho/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/audio/elisa/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/eq10q/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak-ng/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/edit.nix60
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch15
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch27
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch26
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/espeakedit-gcc6.patch57
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/gcc6.patch13
-rw-r--r--nixpkgs/pkgs/applications/audio/eteroj.lv2/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust1.nix207
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2.nix245
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix15
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2csound.nix20
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2firefox.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2jack.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2ladspa.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2lv2.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faustlive.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/flac/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/flac123/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/flacon/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/fldigi/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/fluidsynth/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/audio/fmit/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/audio/fmsynth/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/audio/fomp/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/audio/foo-yc20/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/freewheeling/am_path_sdl.patch40
-rw-r--r--nixpkgs/pkgs/applications/audio/freewheeling/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/audio/freewheeling/xml.patch13
-rw-r--r--nixpkgs/pkgs/applications/audio/game-music-emu/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/gbsplay/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/gigedit/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/gigedit/gigedit-1.1.0-pangomm-2.40.1.patch15
-rw-r--r--nixpkgs/pkgs/applications/audio/gjay/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/gmpc/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/audio/gmpc/libmpd-11.8.17-remove-strndup.patch15
-rw-r--r--nixpkgs/pkgs/applications/audio/gmu/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/gnaural/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix80
-rw-r--r--nixpkgs/pkgs/applications/audio/gpodder/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch23
-rw-r--r--nixpkgs/pkgs/applications/audio/gradio/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/audio/greg/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/gtklick/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/gtkpod/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/guitarix/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/helm/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/audio/hydrogen/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/i-score/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/audio/iannix/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/id3v2/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/infamousPlugins/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/ingen/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/audio/ir.lv2/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/audio/jaaa/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-capture/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-rack/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/jackmeter/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/jackmix/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/jackmix/no_error.patch13
-rw-r--r--nixpkgs/pkgs/applications/audio/jalv/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/jamin/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/japa/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/keyfinder-cli/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/keyfinder/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/kid3/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/audio/klick/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/ladspa-sdk/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/ladspa-sdk/ladspah.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/lash/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/audio/lash/gcc-47.patch11
-rw-r--r--nixpkgs/pkgs/applications/audio/lash/socket.patch16
-rw-r--r--nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/lastwatch/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/lingot/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/linuxband/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/linuxsampler/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/lmms/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/audio/lollypop/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix160
-rw-r--r--nixpkgs/pkgs/applications/audio/ltc-tools/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/luppp/build-install.patch16
-rw-r--r--nixpkgs/pkgs/applications/audio/luppp/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/audio/lv2bm/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/mda-lv2/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/audio/meterbridge/buf_rect.patch12
-rw-r--r--nixpkgs/pkgs/applications/audio/meterbridge/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch31
-rw-r--r--nixpkgs/pkgs/applications/audio/meters_lv2/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/audio/mi2ly/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/mi2ly/default.upstream3
-rw-r--r--nixpkgs/pkgs/applications/audio/mid2key/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/midas/generic.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/midas/m32edit.nix9
-rw-r--r--nixpkgs/pkgs/applications/audio/midas/x32edit.nix9
-rw-r--r--nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/audio/mikmod/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/audio/milkytracker/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/mimic/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/mimms/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/minimodem/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/audio/mixxx/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/audio/moc/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/mod-distortion/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/monkeys-audio/buildfix.diff49
-rw-r--r--nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/iris.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/local-images.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/local-sqlite.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/moped.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/mopify.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/musicbox-webclient.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/soundcloud.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/spotify-tunigo.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/spotify.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/youtube.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/mp3blaster/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/mp3gain/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/mp3info/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/audio/mp3splt/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/mp3val/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/mpc/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/mpc123/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/mpc123/use-gcc.patch13
-rw-r--r--nixpkgs/pkgs/applications/audio/mpg123/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/mpg321/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/muse/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/audio/musescore/darwin.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/musescore/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/ncmpc/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/ncpamixer/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/non/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/normalize/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/audio/nova-filters/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/openmpt123/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/opus-tools/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/audio/opusfile/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/opusfile/include-multistream.patch12
-rw-r--r--nixpkgs/pkgs/applications/audio/padthv1/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/pamix/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/pamixer/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/audio/paprefs/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/patchage/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/pavucontrol/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/cyclone/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/maxlib/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/mrpeach/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/zexy/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/audio/petrifoo/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/pianobar/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/pianobooster/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake-gcc4.7.patch11
-rw-r--r--nixpkgs/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake.patch44
-rw-r--r--nixpkgs/pkgs/applications/audio/picard/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/pithos/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/audio/playbar2/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/plugin-torture/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/pmidi/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/ponymix/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/praat/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/projectm/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/audio/puddletag/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/default.nix82
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch20
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseeffects/default.nix109
-rw-r--r--nixpkgs/pkgs/applications/audio/puredata/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/audio/puredata/wrapper.nix16
-rw-r--r--nixpkgs/pkgs/applications/audio/qjackctl/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidinet/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidiroute/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/qmmp/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/audio/qsampler/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/qsynth/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/qtractor/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/qtscrobbler/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/quodlibet/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix98
-rw-r--r--nixpkgs/pkgs/applications/audio/rakarrack/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/rakarrack/fltk-path.patch35
-rw-r--r--nixpkgs/pkgs/applications/audio/reaper/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/audio/redoflacs/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/audio/renoise/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/audio/rhvoice/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/audio/rhvoice/honor_nix_environment.patch14
-rw-r--r--nixpkgs/pkgs/applications/audio/rhythmbox/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/audio/rkrlv2/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/rosegarden/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/audio/rubyripper/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/samplv1/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/sayonara/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/audio/schismtracker/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/seq24/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/seq24/mutex_no_nameclash.patch58
-rw-r--r--nixpkgs/pkgs/applications/audio/setbfree/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/audio/shntool/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/sidplayfp/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/audio/sisco.lv2/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/audio/snapcast/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/audio/snd/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/sonata/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/audio/sonic-pi/default.nix99
-rw-r--r--nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/audio/sooperlooper/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/audio/sorcer/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/sound-juicer/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/audio/soundscape-renderer/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/audio/spectmorph/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/audio/spectrojack/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/spek/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/split2flac/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify/default.nix154
-rwxr-xr-xnixpkgs/pkgs/applications/audio/spotify/update.sh96
-rw-r--r--nixpkgs/pkgs/applications/audio/spotifywm/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/squeezelite/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/squishyball/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/audio/squishyball/gnu-screen.patch20
-rw-r--r--nixpkgs/pkgs/applications/audio/ssrc/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/audio/streamripper/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/sunvox/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/audio/svox/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/swh-lv2/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/synthv1/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/tambura/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/tetraproc/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/timemachine/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/tomahawk/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/audio/transcode/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/transcribe/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/audio/traverso/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/uade123/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/vcv-rack/default.nix80
-rw-r--r--nixpkgs/pkgs/applications/audio/vimpc/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/vkeybd/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/vmpk/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/vocal/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/audio/vorbis-tools/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/wavegain/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/whipper/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/audio/whipper/paths.patch32
-rw-r--r--nixpkgs/pkgs/applications/audio/wolf-shaper/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/audio/x42-plugins/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/audio/xmp/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations25
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen11
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/30_conf18
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars14
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/ympd/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/audio/yoshimi/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/audio/zam-plugins/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/zita-njbridge/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/backup/areca/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff24
-rw-r--r--nixpkgs/pkgs/applications/backup/crashplan/CrashPlanDesktop.patch12
-rw-r--r--nixpkgs/pkgs/applications/backup/crashplan/CrashPlanEngine.patch37
-rw-r--r--nixpkgs/pkgs/applications/backup/crashplan/crashplan-small-business.nix103
-rw-r--r--nixpkgs/pkgs/applications/backup/crashplan/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/backup/deja-dup/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch11
-rw-r--r--nixpkgs/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch38
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm/default.nix84
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix51
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm/run-dir.patch13
-rw-r--r--nixpkgs/pkgs/applications/display-managers/ly/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/display-managers/sddm/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch43
-rw-r--r--nixpkgs/pkgs/applications/display-managers/slim/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/display-managers/slim/no-logfile.patch80
-rw-r--r--nixpkgs/pkgs/applications/display-managers/slim/run-once.patch12
-rw-r--r--nixpkgs/pkgs/applications/display-managers/slim/runtime-paths.patch70
-rw-r--r--nixpkgs/pkgs/applications/display-managers/slim/sort-sessions.patch40
-rw-r--r--nixpkgs/pkgs/applications/display-managers/slim/themes.nix183
-rw-r--r--nixpkgs/pkgs/applications/editors/aewan/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/common.nix166
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/editors/aseprite/default.nix93
-rw-r--r--nixpkgs/pkgs/applications/editors/atom/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/editors/atom/env.nix20
-rw-r--r--nixpkgs/pkgs/applications/editors/bluefish/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/editors/bonzomatic/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/brackets/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/editors/bvi/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/editors/bviplus/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/codeblocks/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/editors/codeblocks/writable-projects.patch18
-rw-r--r--nixpkgs/pkgs/applications/editors/deadpixi-sam/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/dhex/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/editors/dit/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix60
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/default.nix294
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/plugins.nix660
-rw-r--r--nixpkgs/pkgs/applications/editors/ed/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/editors/edbrowse/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/editors/edit/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/editors/elvis/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/auto-complete/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/3.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/install-infodir.patch28
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/calfw/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/cask/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/coffee/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/fix-build.patch19
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/gnus-bug.diff28
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/cryptol/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/cua/builder.sh4
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/cua/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/d/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/darcsum/darcs_context7
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/darcsum/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/ecb/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix3153
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix52
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/fix-build.patch10
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/emacs-libvterm/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/emms/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/ensime/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/erlang/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/ess/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/filesets-plus/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/gh/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/gist/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/gn/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/graphviz-dot/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/haskell/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/header2/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/hexrgb/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/hol_light/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/htmlize/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/icicles/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/idris/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/jabber/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/jade/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/jdee/build-properties.patch12
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/jdee/cedet-paths.patch18
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/jdee/default.nix99
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/jdee/elib-avltree.patch105
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/jdee/java-directory.patch82
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/js2/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/let-alist/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/lib-requires/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/logito/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/markdown-mode/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/maude/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/melpa-generated.nix106232
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix262
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix54156
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix224
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/metaweblog/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/monky/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/nyan-mode/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/nyan-mode/directory.patch13
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/ocaml/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/offlineimap/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix33
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix31
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/org/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/org2blog/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/pcache/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/php/builder.sh7
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/php/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/4.4.nix47
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix49
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/pg.patch16
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/quack/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/rainbow-delimiters/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/redshank/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/rudel/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/s/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/scala-mode/v1.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix24
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/stgit/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/thingatpt-plus/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/tuareg/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/writegood/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/yaoddmuse/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/25.nix139
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/at-fdcwd.patch15
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/clean-env.patch15
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/default.nix144
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/macport.nix107
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/site-start.el56
-rw-r--r--nixpkgs/pkgs/applications/editors/featherpad/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/flpsed/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/focuswriter/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/fte/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/editors/geany/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/editors/geany/with-vte.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/ghostwriter/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/gnome-builder/default.nix139
-rw-r--r--nixpkgs/pkgs/applications/editors/gnome-latex/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/editors/gobby/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/editors/hecate/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/hecate/deps.nix29
-rw-r--r--nixpkgs/pkgs/applications/editors/heme/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/editors/hexcurse/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/editors/hexedit/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/editors/howl/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/editors/ht/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/ht/gcc7.patch11
-rw-r--r--nixpkgs/pkgs/applications/editors/jedit/build.xml.patch257
-rw-r--r--nixpkgs/pkgs/applications/editors/jedit/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/common.nix80
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/default.nix394
-rwxr-xr-xnixpkgs/pkgs/applications/editors/jetbrains/update.pl92
-rw-r--r--nixpkgs/pkgs/applications/editors/joe/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/editors/jucipp/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/editors/jupp/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/editors/jupyter/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/editors/jupyter/kernel.nix74
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix31
-rw-r--r--nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix69
-rw-r--r--nixpkgs/pkgs/applications/editors/kile/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/editors/kodestudio/default.nix133
-rw-r--r--nixpkgs/pkgs/applications/editors/leafpad/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/leo-editor/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/editors/lighttable/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/editors/manuskript/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/editors/mg/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/editors/micro/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/editors/mindforger/build.patch91
-rw-r--r--nixpkgs/pkgs/applications/editors/mindforger/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/editors/moe/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/editors/monodevelop/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch57
-rw-r--r--nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/editors/nano/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/editors/ne/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/nedit/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/default.nix93
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/qt.nix62
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile3
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock17
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/ruby_provider/gemset.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/wrapper.nix112
-rw-r--r--nixpkgs/pkgs/applications/editors/netbeans/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/editors/notepadqq/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/nvi/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/editors/nvpy/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/editors/okteta/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/editors/quilter/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/editors/rednotebook/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch25
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/default.nix121
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/fix-cmake.patch15
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/preview.nix119
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/r-location.patch25
-rw-r--r--nixpkgs/pkgs/applications/editors/scite/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/editors/sigil/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/editors/standardnotes/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/editors/sublime/2/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/editors/sublime/3/common.nix137
-rw-r--r--nixpkgs/pkgs/applications/editors/sublime/3/packages.nix18
-rw-r--r--nixpkgs/pkgs/applications/editors/supertux-editor/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/editors/tecoc/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/editors/texmacs/common.nix68
-rw-r--r--nixpkgs/pkgs/applications/editors/texmacs/darwin.nix59
-rw-r--r--nixpkgs/pkgs/applications/editors/texmacs/darwin.patch29
-rw-r--r--nixpkgs/pkgs/applications/editors/texmacs/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/editors/texmaker/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/texstudio/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/textadept/default.nix159
-rw-r--r--nixpkgs/pkgs/applications/editors/texworks/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/thonny/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/editors/tiled/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/tweak/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/editors/typora/default.nix99
-rw-r--r--nixpkgs/pkgs/applications/editors/uemacs/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/editors/vbindiff/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/cflags-prune.diff15
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/common.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/configurable.nix184
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/ft-nix-support.patch20
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/macvim.nix112
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/macvim.patch231
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/qvim.nix113
-rw-r--r--nixpkgs/pkgs/applications/editors/vis/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/default.nix116
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix74
-rw-r--r--nixpkgs/pkgs/applications/editors/wily/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/wxhexeditor/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/editors/xmlcopyeditor/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/editors/xmlcopyeditor/xmlcopyeditor.patch36
-rw-r--r--nixpkgs/pkgs/applications/editors/yi/wrapper.nix33
-rw-r--r--nixpkgs/pkgs/applications/editors/zile/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/gis/grass/default.nix93
-rw-r--r--nixpkgs/pkgs/applications/gis/grass/no_symbolic_links.patch37
-rw-r--r--nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/gis/qgis/default.nix93
-rw-r--r--nixpkgs/pkgs/applications/gis/saga/clang_patch.patch19
-rw-r--r--nixpkgs/pkgs/applications/gis/saga/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/gis/saga/finite-6.3.0.patch55
-rw-r--r--nixpkgs/pkgs/applications/gis/saga/finite.patch13
-rw-r--r--nixpkgs/pkgs/applications/gis/saga/lts.nix36
-rw-r--r--nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix89
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix105
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/imagetragick.patch8
-rw-r--r--nixpkgs/pkgs/applications/graphics/PythonMagick/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/graphics/alchemy/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/graphics/animbar/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/graphics/antimony/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/graphics/antimony/paths-fix.patch21
-rw-r--r--nixpkgs/pkgs/applications/graphics/apitrace/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/graphics/astah-community/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix10
-rw-r--r--nixpkgs/pkgs/applications/graphics/autotrace/default.nix124
-rw-r--r--nixpkgs/pkgs/applications/graphics/avocode/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/graphics/awesomebump/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/graphics/awesomebump/qtnproperty-parallel-building.patch9
-rwxr-xr-xnixpkgs/pkgs/applications/graphics/batik/builder.sh7
-rw-r--r--nixpkgs/pkgs/applications/graphics/batik/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/graphics/c3d/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/graphics/cinepaint/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/graphics/cinepaint/install.patch24
-rw-r--r--nixpkgs/pkgs/applications/graphics/comical/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/graphics/comical/wxgtk-2.8.patch36
-rw-r--r--nixpkgs/pkgs/applications/graphics/darktable/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/graphics/deskew/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/graphics/dia/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/graphics/digikam/default.nix124
-rw-r--r--nixpkgs/pkgs/applications/graphics/displaycal/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/graphics/djview/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/graphics/dosage/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/draftsight/default.nix87
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawpile/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/graphics/epeg/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/exrtools/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/graphics/fbida/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/graphics/feh/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/graphics/fig2dev/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/graphics/freecad/default.nix89
-rw-r--r--nixpkgs/pkgs/applications/graphics/freepv/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/graphics/fstl/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/graphics/gcolor2/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch46
-rw-r--r--nixpkgs/pkgs/applications/graphics/gcolor3/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/graphics/geeqie/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/graphics/geeqie/geeqie-no-changelog.patch14
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/default.nix88
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix245
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/plugins/patches/focusblur-glib.patch200
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/remove-cc-reference.patch13
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix27
-rw-r--r--nixpkgs/pkgs/applications/graphics/giv/build.patch22
-rw-r--r--nixpkgs/pkgs/applications/graphics/giv/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/graphics/glabels/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/graphics/gnuclad/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/graphics/gocr/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/graphics/goxel/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/graphics/goxel/disable-imgui_ini.patch13
-rw-r--r--nixpkgs/pkgs/applications/graphics/gpicview/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/graphics/gqview/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/graphics/grafx2/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/graphics/graphicsmagick/compat.nix37
-rw-r--r--nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/graphics/graphicsmagick/disable-popen.patch12
-rw-r--r--nixpkgs/pkgs/applications/graphics/gthumb/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/graphics/guetzli/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/graphics/hugin/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/graphics/imagej/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/graphics/imgcat/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/graphics/imv/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/graphics/ipe/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/graphics/ipe/xlocale.patch10
-rw-r--r--nixpkgs/pkgs/applications/graphics/jbrout/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/graphics/jpeginfo/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/graphics/jpegoptim/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/graphics/jpegrescan/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/graphics/k3d/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/graphics/kipi-plugins/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/graphics/krita/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/graphics/krop/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/graphics/ktikz/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/graphics/leocad/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/graphics/luminance-hdr/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/graphics/mcomix/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/graphics/meh/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/graphics/meme/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/graphics/meshlab/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/graphics/meshlab/fix-20180627-beta.patch25
-rw-r--r--nixpkgs/pkgs/applications/graphics/minidjvu/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/graphics/mirage/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/graphics/mozjpeg/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/graphics/mtpaint/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/graphics/mypaint/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/graphics/nomacs/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/graphics/ocrad/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/graphics/openimageio/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/graphics/openscad/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/graphics/panotools/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/graphics/paraview/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/graphics/pbrt/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/graphics/pbrt/openexr-cmake-3.12.patch26
-rw-r--r--nixpkgs/pkgs/applications/graphics/pencil/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/graphics/photivo/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/graphics/photivo/gcc6.patch13
-rw-r--r--nixpkgs/pkgs/applications/graphics/photoflow/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/graphics/photoqt/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/graphics/photoqt/photoqt-1.5.1-qt-5.9.patch13
-rw-r--r--nixpkgs/pkgs/applications/graphics/phototonic/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/pinta/default.nix83
-rw-r--r--nixpkgs/pkgs/applications/graphics/potrace/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/graphics/pqiv/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/processing3/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/graphics/qiv/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/graphics/qiv/default.upstream3
-rw-r--r--nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/graphics/qtpfsgui/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/graphics/rapcad/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/graphics/rawtherapee/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/graphics/renderdoc/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/default.nix94
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/preload.c170
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix55
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix77
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/git.nix10
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/config.nix38
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/frontends.nix29
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/xsane.nix33
-rw-r--r--nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix26
-rw-r--r--nixpkgs/pkgs/applications/graphics/scantailor/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/graphics/screencloud/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/graphics/seg3d/cstdio.patch81
-rw-r--r--nixpkgs/pkgs/applications/graphics/seg3d/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/graphics/shotwell/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/graphics/shutter/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/graphics/solvespace/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/graphics/swingsane/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/graphics/sxiv/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix125
-rw-r--r--nixpkgs/pkgs/applications/graphics/tesseract/default.nix18
-rwxr-xr-xnixpkgs/pkgs/applications/graphics/tesseract/fetch-language-hashes35
-rw-r--r--nixpkgs/pkgs/applications/graphics/tesseract/languages.nix289
-rw-r--r--nixpkgs/pkgs/applications/graphics/tesseract/tesseract3.nix29
-rw-r--r--nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix27
-rw-r--r--nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix58
-rw-r--r--nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/graphics/ufraw/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix112
-rw-r--r--nixpkgs/pkgs/applications/graphics/viewnior/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/graphics/vimiv/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/graphics/wings/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/graphics/write_stylus/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/graphics/xaos/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/graphics/xara/debian-patches.nix30
-rw-r--r--nixpkgs/pkgs/applications/graphics/xara/debian-patches.txt7
-rw-r--r--nixpkgs/pkgs/applications/graphics/xara/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/graphics/xfig/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/graphics/xfractint/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/graphics/xournal/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/graphics/xzgv/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/yacreader/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/graphics/yed/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/graphics/zgv/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/graphics/zgv/switch.patch14
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi-calendar.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi-contacts.nix25
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi-mime.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi-notes.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi-search.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch49
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/akonadi-paths.patch191
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/akonadi-timestamps.patch14
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/series3
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadiconsole.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/akregator.nix30
-rw-r--r--nixpkgs/pkgs/applications/kde/ark/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/kde/baloo-widgets.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/calendarsupport.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/default.nix173
-rw-r--r--nixpkgs/pkgs/applications/kde/dolphin-plugins.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/dolphin.nix30
-rw-r--r--nixpkgs/pkgs/applications/kde/dragon.nix25
-rw-r--r--nixpkgs/pkgs/applications/kde/eventviews.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/fetch.sh1
-rw-r--r--nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix15
-rw-r--r--nixpkgs/pkgs/applications/kde/filelight.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/grantleetheme/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch155
-rw-r--r--nixpkgs/pkgs/applications/kde/grantleetheme/series1
-rw-r--r--nixpkgs/pkgs/applications/kde/gwenview.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/incidenceeditor.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/k3b.nix48
-rw-r--r--nixpkgs/pkgs/applications/kde/kaddressbook.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/kalarm.nix37
-rw-r--r--nixpkgs/pkgs/applications/kde/kalarmcal.nix19
-rw-r--r--nixpkgs/pkgs/applications/kde/kate.nix25
-rw-r--r--nixpkgs/pkgs/applications/kde/kcachegrind.nix15
-rw-r--r--nixpkgs/pkgs/applications/kde/kcalc.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/kcalcore.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/kcalutils.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/kcolorchooser.nix15
-rw-r--r--nixpkgs/pkgs/applications/kde/kcontacts.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/kdav.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/kdebugsettings.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/kdegraphics-mobipocket.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix14
-rw-r--r--nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix15
-rw-r--r--nixpkgs/pkgs/applications/kde/kdenlive.nix69
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-addons.nix25
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch62
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-apps-libs/series1
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-runtime.nix26
-rw-r--r--nixpkgs/pkgs/applications/kde/kdf.nix15
-rw-r--r--nixpkgs/pkgs/applications/kde/kdialog.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/keditbookmarks.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/kget.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/kgpg.nix24
-rw-r--r--nixpkgs/pkgs/applications/kde/khelpcenter.nix15
-rw-r--r--nixpkgs/pkgs/applications/kde/kidentitymanagement.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/kig.nix19
-rw-r--r--nixpkgs/pkgs/applications/kde/kimap.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/kio-extras.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/kitinerary.nix19
-rw-r--r--nixpkgs/pkgs/applications/kde/kldap.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/kleopatra.nix19
-rw-r--r--nixpkgs/pkgs/applications/kde/kmail-account-wizard.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/kmail.nix29
-rw-r--r--nixpkgs/pkgs/applications/kde/kmailtransport.nix19
-rw-r--r--nixpkgs/pkgs/applications/kde/kmbox.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/kmime.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/kmix.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/kolourpaint.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/kompare.nix15
-rw-r--r--nixpkgs/pkgs/applications/kde/konqueror.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/konquest.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/konsole.nix23
-rw-r--r--nixpkgs/pkgs/applications/kde/kontact.nix23
-rw-r--r--nixpkgs/pkgs/applications/kde/kontactinterface.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/korganizer.nix29
-rw-r--r--nixpkgs/pkgs/applications/kde/kpimtextedit.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/kpkpass.nix15
-rw-r--r--nixpkgs/pkgs/applications/kde/kqtquickcharts.nix15
-rw-r--r--nixpkgs/pkgs/applications/kde/krdc.nix25
-rw-r--r--nixpkgs/pkgs/applications/kde/krfb.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/kruler.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/ksmtp/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch25
-rw-r--r--nixpkgs/pkgs/applications/kde/ksmtp/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/ksystemlog.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/ktnef.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/kwalletmanager.nix26
-rw-r--r--nixpkgs/pkgs/applications/kde/libgravatar.nix18
-rw-r--r--nixpkgs/pkgs/applications/kde/libkcddb.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/libkdcraw.nix13
-rw-r--r--nixpkgs/pkgs/applications/kde/libkdegames.nix26
-rw-r--r--nixpkgs/pkgs/applications/kde/libkdepim.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/libkexiv2.nix13
-rw-r--r--nixpkgs/pkgs/applications/kde/libkgapi.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/libkipi.nix12
-rw-r--r--nixpkgs/pkgs/applications/kde/libkleo.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/libkomparediff2.nix7
-rw-r--r--nixpkgs/pkgs/applications/kde/libksane.nix16
-rw-r--r--nixpkgs/pkgs/applications/kde/libksieve.nix23
-rw-r--r--nixpkgs/pkgs/applications/kde/mailcommon.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/mailimporter.nix19
-rw-r--r--nixpkgs/pkgs/applications/kde/marble.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/mbox-importer.nix17
-rw-r--r--nixpkgs/pkgs/applications/kde/messagelib.nix29
-rw-r--r--nixpkgs/pkgs/applications/kde/minuet.nix24
-rw-r--r--nixpkgs/pkgs/applications/kde/okular.nix27
-rw-r--r--nixpkgs/pkgs/applications/kde/pim-data-exporter.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix19
-rw-r--r--nixpkgs/pkgs/applications/kde/pimcommon.nix26
-rw-r--r--nixpkgs/pkgs/applications/kde/print-manager.nix23
-rw-r--r--nixpkgs/pkgs/applications/kde/spectacle.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/srcs.nix1725
-rw-r--r--nixpkgs/pkgs/applications/misc/1password/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/abook/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh42
-rw-r--r--nixpkgs/pkgs/applications/misc/adobe-reader/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/airspy/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/airtame/default.nix80
-rw-r--r--nixpkgs/pkgs/applications/misc/alacritty/default.nix121
-rw-r--r--nixpkgs/pkgs/applications/misc/albert/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/misc/aminal/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/misc/antfs-cli/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/ape/apeclex.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/ape/clex.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/ape/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/misc/apvlv/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/misc/archiver/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/archiver/deps.nix56
-rw-r--r--nixpkgs/pkgs/applications/misc/artha/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/sox/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/soxr/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/autospotting/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/autospotting/deps.nix75
-rw-r--r--nixpkgs/pkgs/applications/misc/avrdudess/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/barrier/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/bashSnippets/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/misc/batti/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/misc/bb/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/bibletime/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/bitcoinarmory/default.nix88
-rw-r--r--nixpkgs/pkgs/applications/misc/bleachbit/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/default.nix92
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/fix-include.patch12
-rw-r--r--nixpkgs/pkgs/applications/misc/buku/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/misc/calcurse/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/default.nix178
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch17
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch12
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch15
-rw-r--r--nixpkgs/pkgs/applications/misc/cataract/build.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/cataract/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/cataract/unstable.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/catclock/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/cbatticon/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/cdrtools/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/cdrtools/fix-paths.patch32
-rw-r--r--nixpkgs/pkgs/applications/misc/cgminer/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/cheat/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/cherrytree/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/misc/cherrytree/subprocess.patch14
-rw-r--r--nixpkgs/pkgs/applications/misc/chirp/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/clipit/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/clipmenu/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/cmatrix/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/cointop/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/cointop/deps.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/colort/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/confclerk/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/cool-retro-term/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/copyq/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/coursera-dl/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/cpp-ethereum/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/misc/ctodo/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/lulzbot.nix58
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch12
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/stable.nix73
-rw-r--r--nixpkgs/pkgs/applications/misc/curabydagoma/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/misc/curaengine/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/curaengine/stable.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/dbeaver/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/misc/dbvisualizer/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/ddgr/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/deco/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/devilspie2/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/dfilemanager/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/diff-pdf/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/diffpdf/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch16
-rw-r--r--nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix145
-rw-r--r--nixpkgs/pkgs/applications/misc/ding/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/misc/ding/dict.patch26
-rw-r--r--nixpkgs/pkgs/applications/misc/direwolf/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/djvulibre/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/dmensamenu/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/dmenu/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/dmenu2/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/dmrconfig/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/dockbarx/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/doing/Gemfile2
-rw-r--r--nixpkgs/pkgs/applications/misc/doing/Gemfile.lock25
-rw-r--r--nixpkgs/pkgs/applications/misc/doing/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/doing/gemset.nix60
-rw-r--r--nixpkgs/pkgs/applications/misc/doomseeker/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch40
-rw-r--r--nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch47
-rw-r--r--nixpkgs/pkgs/applications/misc/dotfiles/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/dozenal/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch16
-rw-r--r--nixpkgs/pkgs/applications/misc/dump1090/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/dunst/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/misc/eaglemode/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/misc/ebook2cw/configfile.patch11
-rw-r--r--nixpkgs/pkgs/applications/misc/ebook2cw/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/electron-cash/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/dash.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/default.nix87
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/ltc.nix55
-rw-r--r--nixpkgs/pkgs/applications/misc/emem/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/epdfview/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/ephemeralpg/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/et/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/eterm/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/eureka-editor/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/evilvte/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/evopedia/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/evtest/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/exercism/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/exercism/deps.nix201
-rw-r--r--nixpkgs/pkgs/applications/misc/extract_url/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/far2l/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/misc/fbreader/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch11
-rw-r--r--nixpkgs/pkgs/applications/misc/fehlstart/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch21
-rw-r--r--nixpkgs/pkgs/applications/misc/fetchmail/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/flamerobin/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/fllog/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/flmsg/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/flrig/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/flwrap/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/fme/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/font-manager/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/misc/freemind/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/gImageReader/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/misc/galculator/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch11
-rw-r--r--nixpkgs/pkgs/applications/misc/gammu/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/gammu/systemd.patch30
-rw-r--r--nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/gcal/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/gcalcli/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/get_iplayer/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/getxbook/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/girara/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/gkrellm/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/gksu/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch29
-rw-r--r--nixpkgs/pkgs/applications/misc/glava/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/misc/glom/default.nix132
-rw-r--r--nixpkgs/pkgs/applications/misc/gmrun/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch51
-rw-r--r--nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch58
-rw-r--r--nixpkgs/pkgs/applications/misc/gmtp/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix79
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-usage/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome15/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/gnss-sdr/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/misc/gnuradio/ais.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/gnuradio/default.nix122
-rw-r--r--nixpkgs/pkgs/applications/misc/gnuradio/gsm.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/gnuradio/limesdr.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/gnuradio/nacl.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/gnuradio/osmosdr.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/gnuradio/rds.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/gnuradio/wrapper.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/go-jira/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/misc/goldendict/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/gollum/Gemfile2
-rw-r--r--nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock68
-rw-r--r--nixpkgs/pkgs/applications/misc/gollum/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/gollum/gemset.nix230
-rw-r--r--nixpkgs/pkgs/applications/misc/googleearth/default.nix97
-rw-r--r--nixpkgs/pkgs/applications/misc/googler/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/gosmore/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch11
-rw-r--r--nixpkgs/pkgs/applications/misc/gpa/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/gphoto2/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/gpsbabel/clang-4.patch22
-rw-r--r--nixpkgs/pkgs/applications/misc/gpsbabel/default.nix78
-rw-r--r--nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/misc/gpsprune/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/gpx/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/gpxsee/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/gqrx/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/gramps/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch55
-rw-r--r--nixpkgs/pkgs/applications/misc/gremlin-console/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/grip/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/gsimplecal/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/guake/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/misc/gummi/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/gv/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/misc/gxmessage/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/gxneur/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/hackrf/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/hamster-time-tracker/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/haxor-news/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/hdate/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/misc/hello-unfree/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/hello/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/hivemind/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/houdini/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/misc/houdini/runtime.nix86
-rw-r--r--nixpkgs/pkgs/applications/misc/hovercraft/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/hr/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/hstr/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/hubstaff/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/misc/hugo/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/hugo/deps.nix722
-rw-r--r--nixpkgs/pkgs/applications/misc/hyper/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/icesl/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/ikiwiki/default.nix91
-rw-r--r--nixpkgs/pkgs/applications/misc/img2pdf/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/inspectrum/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/ipmicfg/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/ipmiview/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/iterm2/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/iterm2/disable_updates.patch11
-rw-r--r--nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile10
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock99
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix326
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile30
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock155
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix538
-rwxr-xr-xnixpkgs/pkgs/applications/misc/jekyll/update.sh15
-rw-r--r--nixpkgs/pkgs/applications/misc/jgmenu/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/jigdo/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch40
-rw-r--r--nixpkgs/pkgs/applications/misc/josm/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/jp2a/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/jrnl/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix119
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch99
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/load-jpx.patch29
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/tesseract.patch13
-rw-r--r--nixpkgs/pkgs/applications/misc/kanboard/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/kdbplus/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/misc/kdeconnect/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/keepass/default.nix115
-rwxr-xr-xnixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh61
-rw-r--r--nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch87
-rw-r--r--nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch1
-rw-r--r--nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch13
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/2.0.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/community.nix106
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/darwin.patch52
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/qt511.patch15
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/random.patch13
-rw-r--r--nixpkgs/pkgs/applications/misc/khal/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/misc/khard/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/misc/kitty/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/misc/kitty/fix-paths.patch27
-rw-r--r--nixpkgs/pkgs/applications/misc/kiwix/default.nix110
-rw-r--r--nixpkgs/pkgs/applications/misc/krename/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/krusader/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/kupfer/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/misc/latte-dock/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/lenmus/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/misc/libosmocore/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/librecad/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/lighthouse/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/lilyterm/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/misc/limesuite/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/misc/llpp/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch88
-rw-r--r--nixpkgs/pkgs/applications/misc/loxodo/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/lxterminal/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/lxterminal/respect-xml-catalog-files-var.patch15
-rw-r--r--nixpkgs/pkgs/applications/misc/lyx/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/misc/madonctl/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/madonctl/deps.nix228
-rw-r--r--nixpkgs/pkgs/applications/misc/makeself/Use-rm-from-PATH.patch43
-rw-r--r--nixpkgs/pkgs/applications/misc/makeself/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/mako/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/misc/mdp/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/mediainfo/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/memo/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/misc/mencal/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/menumaker/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/merkaartor/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/metamorphose2/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/misc/metar/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/milu/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/minergate-cli/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/minergate/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/mlterm/default.nix94
-rw-r--r--nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/mop/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/mop/deps.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/mpvc/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/mrxvt/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/mucommander/default.nix84
-rw-r--r--nixpkgs/pkgs/applications/misc/multibootusb/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/misc/multimon-ng/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/misc/mupdf/darwin.patch30
-rw-r--r--nixpkgs/pkgs/applications/misc/mupdf/default.nix90
-rw-r--r--nixpkgs/pkgs/applications/misc/mupdf/default.upstream7
-rw-r--r--nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch39
-rw-r--r--nixpkgs/pkgs/applications/misc/mwic/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix109
-rw-r--r--nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch47
-rw-r--r--nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch187
-rw-r--r--nixpkgs/pkgs/applications/misc/nanoblogger/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/navipowm/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch13
-rw-r--r--nixpkgs/pkgs/applications/misc/navit/default.nix90
-rw-r--r--nixpkgs/pkgs/applications/misc/neap/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/browser/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/buildsystem/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libcss/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libdom/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libhubbub/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libnsbmp/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libnsfb/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libnsgif/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libnsutils/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libparserutils/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libutf8proc/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libwapcaplet/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/nsgenbind/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/nix-tour/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/nixnote2/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/misc/nnn/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/noice/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/notejot/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/notify-osd/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/nrsc5/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/misc/nut/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/ocropus/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/misc/octoprint/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/misc/octoprint/m33-fio-one-library.patch175
-rw-r--r--nixpkgs/pkgs/applications/misc/octoprint/plugins.nix111
-rw-r--r--nixpkgs/pkgs/applications/misc/ola/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/omegat.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/onboard/default.nix157
-rw-r--r--nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch20
-rw-r--r--nixpkgs/pkgs/applications/misc/oneko/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/openbox-menu/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/openbox-menu/with-svg.patch11
-rw-r--r--nixpkgs/pkgs/applications/misc/openbrf/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/opencpn/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/openjump/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/opentx/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/misc/orca/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/misc/orca/fix-paths.patch78
-rw-r--r--nixpkgs/pkgs/applications/misc/orpie/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/osm2xmap/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/osmctools/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/osmium-tool/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/overmind/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/pbpst/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/pcmanfm/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/pdf-quench/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfdiff/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfmod/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfpc/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/pell/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/perkeep/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/pgadmin/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/misc/pgmanage/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/phwmon/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/pinfo/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/plank/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch9
-rw-r--r--nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch20
-rw-r--r--nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/playonlinux/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/misc/plover/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/pmenu/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix91
-rw-r--r--nixpkgs/pkgs/applications/misc/polybar/default.nix80
-rw-r--r--nixpkgs/pkgs/applications/misc/posterazor/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/printrun/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch18
-rw-r--r--nixpkgs/pkgs/applications/misc/procmail/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/projectlibre/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/pstree/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/pt/.bundle/config2
-rw-r--r--nixpkgs/pkgs/applications/misc/pt/Gemfile3
-rw-r--r--nixpkgs/pkgs/applications/misc/pt/Gemfile.lock45
-rw-r--r--nixpkgs/pkgs/applications/misc/pt/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/misc/pt/gemset.nix164
-rw-r--r--nixpkgs/pkgs/applications/misc/ptask/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch13
-rw-r--r--nixpkgs/pkgs/applications/misc/ptask/tw-version.patch11
-rw-r--r--nixpkgs/pkgs/applications/misc/pwsafe/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/misc/pytrainer/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/misc/pytrainer/fix-test-tz.patch45
-rw-r--r--nixpkgs/pkgs/applications/misc/pytrainer/pytrainer-webkit.patch14
-rw-r--r--nixpkgs/pkgs/applications/misc/qdirstat/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/misc/qlcplus/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/qmapshack/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/qmetro/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/qpdfview/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/qradiolink/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/misc/qsstv/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch13
-rw-r--r--nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/qtpass/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/qtpass/hidpi.patch13
-rw-r--r--nixpkgs/pkgs/applications/misc/quicksynergy/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/ranger/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix80
-rw-r--r--nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/redshift/575.patch51
-rw-r--r--nixpkgs/pkgs/applications/misc/redshift/default.nix93
-rw-r--r--nixpkgs/pkgs/applications/misc/regextester/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/misc/rescuetime/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/robo3t/default.nix78
-rw-r--r--nixpkgs/pkgs/applications/misc/robomongo/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/rofi/config.patch54
-rw-r--r--nixpkgs/pkgs/applications/misc/rofi/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/rofi/wrapper.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/roxterm/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/misc/rsibreak/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/rtl-sdr/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/rtl_433/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/rtv/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-autocomplete-all-the-things/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-font-size/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perl/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perls/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-tabbedex/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-vtwheel.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-256-color-resources.patch255
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch21
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-makefile-phony.patch10
-rw-r--r--nixpkgs/pkgs/applications/misc/rxvt_unicode/wrapper.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/safeeyes/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/misc/sakura/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/sbagen/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/sc-im/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/misc/sdcv/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/sent/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/sequeler/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/misc/sequelpro/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/sigal/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/simplenote/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/misc/slade/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/slade/git.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/sleepyhead/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/slic3r/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/misc/slic3r/prusa3d.nix132
-rw-r--r--nixpkgs/pkgs/applications/misc/slmenu/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/slstatus/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/soapyairspy/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/soapybladerf/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/soapyhackrf/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/soapyremote/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/soapyrtlsdr/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/soapysdr/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/misc/soapyuhd/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/solaar/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/spacefm/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/misc/speedread/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/sqliteman/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/ssocr/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/st/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/st/xst.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/stag/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/stog/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/stog/install.patch18
-rw-r--r--nixpkgs/pkgs/applications/misc/stupidterm/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/stupidterm/stupidterm.desktop9
-rw-r--r--nixpkgs/pkgs/applications/misc/styx/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/misc/subsurface/default.nix111
-rw-r--r--nixpkgs/pkgs/applications/misc/super_user_spark/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/default.nix101
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix96
-rw-r--r--nixpkgs/pkgs/applications/misc/synapse/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix93
-rw-r--r--nixpkgs/pkgs/applications/misc/synergy/default.nix87
-rw-r--r--nixpkgs/pkgs/applications/misc/synergy/openssl-1.1.patch18
-rw-r--r--nixpkgs/pkgs/applications/misc/synergy/respect_macos_arch.patch61
-rw-r--r--nixpkgs/pkgs/applications/misc/synergy/update_gtest_gmock.patch158
-rw-r--r--nixpkgs/pkgs/applications/misc/tabula/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/tangogps/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/misc/taskell/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix76
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch48
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile2
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock21
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile2
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock21
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix55
-rw-r--r--nixpkgs/pkgs/applications/misc/tasknc/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/misc/tasksh/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/taskwarrior/0001-bash-completion-quote-pattern-argument-to-grep.patch28
-rw-r--r--nixpkgs/pkgs/applications/misc/taskwarrior/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/termdown/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/terminator/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/terminus/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/misc/termite/add_errno_header.patch24
-rw-r--r--nixpkgs/pkgs/applications/misc/termite/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/termite/remove_ldflags_macos.patch25
-rw-r--r--nixpkgs/pkgs/applications/misc/termite/url_regexp_trailing.patch27
-rw-r--r--nixpkgs/pkgs/applications/misc/termite/wrapper.nix15
-rw-r--r--nixpkgs/pkgs/applications/misc/termonad/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/teseq/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/thinking-rock/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/tilda/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/tilix/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/timewarrior/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/tint2/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/tnef/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/todiff/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/todolist/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro19
-rw-r--r--nixpkgs/pkgs/applications/misc/toggldesktop/default.nix148
-rw-r--r--nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro20
-rw-r--r--nixpkgs/pkgs/applications/misc/tomboy/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/toot/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/tootle/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/topydo/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/tpmmanager/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/tqsl/cmake_lib_path.patch12
-rw-r--r--nixpkgs/pkgs/applications/misc/tqsl/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/translate-shell/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/tthsum/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix56
-rw-r--r--nixpkgs/pkgs/applications/misc/twmn/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/tzupdate/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/misc/udevil/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch14
-rw-r--r--nixpkgs/pkgs/applications/misc/udiskie/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/unixcw/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/unixcw/remove-use-of-dlopen.patch677
-rw-r--r--nixpkgs/pkgs/applications/misc/urh/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/urlscan/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/urlview/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/usync/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/valentina/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/misc/vcal/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/misc/veracrypt/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/verbiste/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/vifm/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/viking/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/visidata/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/vit/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/volnoti/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/vp/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/vue/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/vym/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/wcalc/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/weather/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/wego/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/wego/deps.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/welle-io/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/wikicurses/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/with-shell/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/wmname/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/wordnet/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/misc/worker/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/workrave/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/misc/wsjtx/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/wsjtx/wsjtx.patch12
-rw-r--r--nixpkgs/pkgs/applications/misc/wtf/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/xastir/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/xautoclick/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/xca/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/xchm/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/misc/xcruiser/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/xfe/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/xfontsel/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/xiphos/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/misc/xkbd/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/xkbmon/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/xlog/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/xmind/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/misc/xmr-stak/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/misc/xmrig/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/xmrig/proxy.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/xneur/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/xpad/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch15
-rw-r--r--nixpkgs/pkgs/applications/misc/xpdf/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix52
-rw-r--r--nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch45
-rw-r--r--nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch74
-rw-r--r--nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/xrq/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/xscope/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/xsw/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/xsw/parse.patch21
-rw-r--r--nixpkgs/pkgs/applications/misc/xterm/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/misc/xterm/sixel-256.support.patch11
-rw-r--r--nixpkgs/pkgs/applications/misc/xtermcontrol/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/xxkb/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/yaft/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/yakuake/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/misc/yarssr/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/misc/yate/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/yokadi/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/core/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/ps/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/wrapper.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/zk-shell/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/zola/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/misc/zscroll/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/networking/bittorrentsync/1.4.x.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/bittorrentsync/2.0.x.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/bittorrentsync/generic.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/arora/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/brave/default.nix150
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix272
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix56
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix296
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix139
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch61
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/patches/remove-webp-include-69.patch11
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine.patch16
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix145
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix237
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/chromium/update.sh4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/conkeror/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch17
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix995
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix210
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix995
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/firefox.key254
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix995
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix90
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix314
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch14
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/fix-debug.patch77
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch26
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch25
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix181
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix181
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix141
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/links2/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/midori/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/esteidfirefoxplugin/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix147
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix103
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch11
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch16
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix117
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c60
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/opera/default.nix125
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/otter/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix122
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix103
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/surf/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix399
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix349
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix111
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/uzbl/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vimprobable2/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix53
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh39
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch11
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch15
-rw-r--r--nixpkgs/pkgs/applications/networking/c14/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/c14/deps.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/charles/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/cloudflared/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cloudflared/deps.nix444
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh1672
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/click/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/click/fix_cargo_lock_version.patch13
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cni/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/flink/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix155
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/deps.nix840
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix111
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kops/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ksonnet/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeval/deps.nix174
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix259
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh1359
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch731
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix91
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pig/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/spark/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/stern/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix336
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix61
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/data.nix668
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.txt19
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all143
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix126
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch16
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terragrunt/deps.nix129
-rw-r--r--nixpkgs/pkgs/applications/networking/compactor/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/corebird/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/davmail/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/drive/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/drive/deps.nix192
-rw-r--r--nixpkgs/pkgs/applications/networking/droopy/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/dropbox/cli.nix42
-rw-r--r--nixpkgs/pkgs/applications/networking/dropbox/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/errbot/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/esniper/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch26
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/firehol/default.nix108
-rw-r--r--nixpkgs/pkgs/applications/networking/firehol/iprange.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/flent/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/flent/http-getter.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/flexget/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/gdrive/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/gmailieer/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/gui.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/server.nix80
-rw-r--r--nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/gopher/gopherclient/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/bro/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/daq/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/snort/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/ike/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch49
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ekiga/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix87
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/matrique/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile40
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock109
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/gtk/Gemfile3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/image_file_cache/Gemfile1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/photo_support/Gemfile5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/uitranslator/Gemfile5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix374
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop9
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/shell.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch64
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix79
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch11
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch40
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/bare.nix56
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/fetchNodeModules.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/isDev.patch14
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/response.varfile13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix150
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch106
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix67
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix111
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/conference.patch148
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix111
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix114
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch53
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix148
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix103
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/fix-internal-compiler-error.patch68
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/generic.nix153
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix109
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix104
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh7
-rw-r--r--nixpkgs/pkgs/applications/networking/insync/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs-migrator/deps.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs-migrator/lru-repo-path-fix.patch13
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/ipget/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/iptraf/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/bip/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/chatzilla/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/communi/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/epic5/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/ii/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/irssi/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/irssi/otr/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/konversation/default.nix79
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/quassel/default.nix91
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/quassel/qt5_11.patch72
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/quassel/source.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/sic/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/default.nix82
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch13
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch28
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch16
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix80
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch58
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/wraith/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch48
-rw-r--r--nixpkgs/pkgs/applications/networking/jmeter/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch43
-rw-r--r--nixpkgs/pkgs/applications/networking/linssid/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix115
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch15
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix87
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch22
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix96
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix98
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix89
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix133
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/realpine/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/sup/.bundix/cache4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/sup/Gemfile9
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/sup/Gemfile.lock41
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/sup/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/sup/gemset.nix126
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix178
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix585
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix207
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/networking/mpop/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/msmtp/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/networking/msmtp/paths.patch96
-rw-r--r--nixpkgs/pkgs/applications/networking/mumble/default.nix158
-rw-r--r--nixpkgs/pkgs/applications/networking/mumble/mumble-jack-support.patch457
-rw-r--r--nixpkgs/pkgs/applications/networking/mumble/overlay.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/ndppd/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/netperf/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/nload/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/offrss/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/ostinato/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch14
-rw-r--r--nixpkgs/pkgs/applications/networking/owamp/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/owncloud-client/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/owncloud-client/find-sql.patch12
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/firestr/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/firestr/return.patch13
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix79
-rwxr-xr-xnixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper18
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix94
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix78
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix92
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transgui/r988-compile-fix.patch22
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/twister/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/pjsip/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/protocol/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/pyload/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix79
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-receiver/default.nix236
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/freerdp/legacy.nix72
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/putty/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/remmina/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/ssvnc/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix105
-rw-r--r--nixpkgs/pkgs/applications/networking/resilio-sync/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/seafile-client/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/sieve-connect/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/networking/sipcmd/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch14
-rw-r--r--nixpkgs/pkgs/applications/networking/siproxd/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix124
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch63
-rw-r--r--nixpkgs/pkgs/applications/networking/sniproxy/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/soapui/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/networking/spideroak/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/networking/ssb/patchwork-classic/default.nix106
-rw-r--r--nixpkgs/pkgs/applications/networking/super-productivity/default.nix105
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/backintime/common.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/casync/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/desync/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/desync/deps.nix129
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rclone/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rsync/base.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rsync/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/unison/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/networking/syncplay/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch22
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch17
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing/default.nix109
-rw-r--r--nixpkgs/pkgs/applications/networking/tcpkali/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/testssl/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/transporter/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/networking/tsung/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/networking/umurmur/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/vnstat/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/weather/meteo/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/networking/znc/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/znc/modules.nix138
-rw-r--r--nixpkgs/pkgs/applications/office/abiword/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/office/aesop/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c.patch18
-rw-r--r--nixpkgs/pkgs/applications/office/antiword/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/office/atlassian-cli/default.nix49
-rwxr-xr-xnixpkgs/pkgs/applications/office/atlassian-cli/wrapper.sh20
-rw-r--r--nixpkgs/pkgs/applications/office/autokey/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/office/autokey/remove-requires-dbus-python.patch11
-rw-r--r--nixpkgs/pkgs/applications/office/beancount/bean-add.nix31
-rw-r--r--nixpkgs/pkgs/applications/office/bookworm/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/office/calligra/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/office/calligra/qt5_11.patch98
-rw-r--r--nixpkgs/pkgs/applications/office/cb2bib/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/office/fava/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/office/gnucash/2.4.nix91
-rw-r--r--nixpkgs/pkgs/applications/office/gnucash/2.6.nix116
-rw-r--r--nixpkgs/pkgs/applications/office/gnucash/default.nix109
-rw-r--r--nixpkgs/pkgs/applications/office/gnumeric/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/office/grisbi/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/office/homebank/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/office/ib/controller/default.nix162
-rw-r--r--nixpkgs/pkgs/applications/office/ib/tws/default.nix96
-rw-r--r--nixpkgs/pkgs/applications/office/impressive/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/office/jabref/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/office/jameica/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/office/keepnote/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/office/kexi/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/office/kmymoney/default.nix79
-rw-r--r--nixpkgs/pkgs/applications/office/ledger-web/Gemfile3
-rw-r--r--nixpkgs/pkgs/applications/office/ledger-web/Gemfile.lock61
-rw-r--r--nixpkgs/pkgs/applications/office/ledger-web/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/office/ledger-web/gemset.nix172
-rw-r--r--nixpkgs/pkgs/applications/office/ledger/2.6.3.nix41
-rw-r--r--nixpkgs/pkgs/applications/office/ledger/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/README.md10
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/default-gen-shell.nix29
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/default-primary-src.nix17
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/default.nix295
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/download-list-builder.sh3
-rwxr-xr-xnixpkgs/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py328
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-additions.json5
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix835
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs.nix856
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/still-gen-shell.nix29
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/still-primary-src.nix17
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/still.nix293
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/wrapper.nix19
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/wrapper.sh18
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/xdg-open-brief.patch13
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/xdg-open.patch25
-rw-r--r--nixpkgs/pkgs/applications/office/marp/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/office/mendeley/default.nix144
-rw-r--r--nixpkgs/pkgs/applications/office/mendeley/update.nix61
-rw-r--r--nixpkgs/pkgs/applications/office/mmex/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/office/moneyplex/default.nix121
-rw-r--r--nixpkgs/pkgs/applications/office/mytetra/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/office/osmo/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/office/paperwork/backend.nix47
-rw-r--r--nixpkgs/pkgs/applications/office/paperwork/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/office/pinpoint/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/office/planner/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/office/ppl-address-book/Gemfile2
-rw-r--r--nixpkgs/pkgs/applications/office/ppl-address-book/Gemfile.lock34
-rw-r--r--nixpkgs/pkgs/applications/office/ppl-address-book/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/office/ppl-address-book/gemset.nix90
-rw-r--r--nixpkgs/pkgs/applications/office/qnotero/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/office/scribus/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/office/scribus/unstable.nix39
-rw-r--r--nixpkgs/pkgs/applications/office/skanlite/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/office/skrooge/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/office/spice-up/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/office/tagainijisho/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/office/timetrap/Gemfile2
-rw-r--r--nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock19
-rw-r--r--nixpkgs/pkgs/applications/office/timetrap/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/office/timetrap/gemset.nix35
-rw-r--r--nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/office/todoman/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/office/treesheets/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/office/tryton/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/office/trytond/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/office/tudu/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/office/watson/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/office/wordgrinder/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/office/wpsoffice/default.nix79
-rw-r--r--nixpkgs/pkgs/applications/office/zanshin/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/office/zim/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/office/zotero/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/office/zotero/zotero.sh3
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/astrolabe-generator/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gildas/aarch64.patch12
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gildas/clang.patch22
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch19
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/openspace/assets.patch100
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/openspace/config.patch49
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/openspace/constexpr.patch91
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/openspace/default.nix89
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/openspace/vrpn.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/xplanet/gcc6.patch128
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/xplanet/giflib.patch141
-rw-r--r--nixpkgs/pkgs/applications/science/biology/EZminc/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/science/biology/N3/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/biology/ants/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bcftools/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bedtools/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bwa/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/diamond/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/biology/diamond/diamond-0.8.36-no-warning.patch20
-rw-r--r--nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/biology/emboss/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/biology/freebayes/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/biology/hisat2/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/science/biology/hmmer/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/biology/igv/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/inormalize/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch10
-rw-r--r--nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch10
-rw-r--r--nixpkgs/pkgs/applications/science/biology/iv/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kallisto/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minimap2/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mrbayes/builder.sh9
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/biology/muscle/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/biology/muscle/muscle-3.8.31-no-static.patch21
-rw-r--r--nixpkgs/pkgs/applications/science/biology/ncbi-tools/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/biology/neuron/default.nix80
-rw-r--r--nixpkgs/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch21
-rw-r--r--nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/biology/paml/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/biology/platypus/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/biology/plink/default.nix25
-rwxr-xr-xnixpkgs/pkgs/applications/science/biology/poretools/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/biology/raxml/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samtools/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch22
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/biology/seaview/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/biology/snpeff/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch26
-rw-r--r--nixpkgs/pkgs/applications/science/biology/star/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/biology/strelka/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/biology/varscan/default.nix36
-rwxr-xr-xnixpkgs/pkgs/applications/science/biology/vcftools/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/molden/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/molden/dont_register_file_types.patch29
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/adms/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/alliance/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix64
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/bitscope/packages.nix146
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/caneda/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/caneda/gcc6.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/dsview/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/dsview/install.patch15
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/dsview/libsigrokdecode4dsl.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix83
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix97
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/eagle/eagle7_fixer.c134
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/geda/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/unstable.nix56
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/pcb/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/qfsm/drop-hardcoded-prefix.patch20
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/qfsm/gcc6-fixes.patch20
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/qucs/cmakelists.patch34
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/qucs/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/verilator/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/verilog/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/xoscope/gtkdepre.diff58
-rw-r--r--nixpkgs/pkgs/applications/science/geometry/drgeo/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/geometry/drgeo/struct.patch68
-rw-r--r--nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix22
-rw-r--r--nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/logic/abc/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/logic/abella/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/science/logic/acgtk/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/logic/aiger/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/logic/aspino/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/logic/avy/0001-no-static-boost-libs.patch12
-rw-r--r--nixpkgs/pkgs/applications/science/logic/avy/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/science/logic/avy/glucose-fenv.patch65
-rw-r--r--nixpkgs/pkgs/applications/science/logic/avy/minisat-fenv.patch65
-rw-r--r--nixpkgs/pkgs/applications/science/logic/beluga/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/logic/boolector/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/logic/btor2tools/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cedille/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/logic/celf/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/science/logic/coq/default.nix151
-rw-r--r--nixpkgs/pkgs/applications/science/logic/coq2html/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cubicle/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cvc3/cvc3-2.4.1-gccv6-fix.patch76
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cvc3/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cvc4/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cvc4/minisat-fenv.patch65
-rw-r--r--nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/logic/ekrhyper/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/logic/ekrhyper/default.upstream3
-rw-r--r--nixpkgs/pkgs/applications/science/logic/elan/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/science/logic/eprover/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/logic/gappa/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/logic/glucose/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/logic/glucose/syrup.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/logic/hol/default.nix88
-rw-r--r--nixpkgs/pkgs/applications/science/logic/hol_light/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/logic/iprover/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/logic/isabelle/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/science/logic/jonprl/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lci/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lean/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lean2/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/science/logic/leo2/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/logic/leo2/default.upstream6
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lingeling/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/science/logic/logisim/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/logic/minisat/clang.diff45
-rw-r--r--nixpkgs/pkgs/applications/science/logic/minisat/darwin.patch26
-rw-r--r--nixpkgs/pkgs/applications/science/logic/minisat/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/logic/minisat/unstable.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/logic/monosat/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/logic/opensmt/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/logic/ott/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/science/logic/otter/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/science/logic/picosat/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/science/logic/poly/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/logic/potassco/clingo.upstream6
-rw-r--r--nixpkgs/pkgs/applications/science/logic/prooftree/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/science/logic/prover9/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/science/logic/proverif/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/logic/redprl/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/logic/sad/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/science/logic/sad/monoid.patch51
-rw-r--r--nixpkgs/pkgs/applications/science/logic/sad/patch200
-rw-r--r--nixpkgs/pkgs/applications/science/logic/sapic/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/logic/sapic/native.patch38
-rw-r--r--nixpkgs/pkgs/applications/science/logic/satallax/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/science/logic/saw-tools/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/science/logic/spass/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/logic/statverif/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/logic/stp/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix102
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-term.patch109
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-theory.patch130
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-utils.patch140
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix54
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix77
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tptp/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/science/logic/twelf/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/science/logic/vampire/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/science/logic/verifast/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/logic/verit/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/logic/why3/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/logic/workcraft/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/logic/yices/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/science/logic/z3/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/maps.nix11
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/torch/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/torch/torch-distro.nix336
-rw-r--r--nixpkgs/pkgs/applications/science/math/LiE/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/science/math/R/default.nix108
-rw-r--r--nixpkgs/pkgs/applications/science/math/R/no-usr-local-search-paths.patch24
-rw-r--r--nixpkgs/pkgs/applications/science/math/R/setup-hook.sh7
-rw-r--r--nixpkgs/pkgs/applications/science/math/almonds/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/math/bcal/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/math/bliss/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/math/caffe/darwin.patch47
-rw-r--r--nixpkgs/pkgs/applications/science/math/caffe/default.nix126
-rw-r--r--nixpkgs/pkgs/applications/science/math/calc/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/science/math/cbc/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/math/clp/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/science/math/cntk/default.nix92
-rw-r--r--nixpkgs/pkgs/applications/science/math/cntk/fix_std_bind.patch11
-rw-r--r--nixpkgs/pkgs/applications/science/math/colpack/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/math/cplex/default.nix82
-rw-r--r--nixpkgs/pkgs/applications/science/math/csdp/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/math/ecm/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/math/eukleides/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/math/form/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/science/math/fricas/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/science/math/gap/default.nix103
-rw-r--r--nixpkgs/pkgs/applications/science/math/geogebra/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/science/math/gfan/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/math/giac/default.nix112
-rw-r--r--nixpkgs/pkgs/applications/science/math/ginac/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/math/glsurf/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/math/gmsh/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/math/gurobi/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/science/math/hmetis/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/math/jags/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/science/math/lp_solve/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/science/math/lp_solve/isnan.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/math/lrcalc/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/10.nix136
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/9.nix122
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/default.nix148
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/math/maxima/default.nix100
-rw-r--r--nixpkgs/pkgs/applications/science/math/maxima/known-ecl-failures.patch21
-rw-r--r--nixpkgs/pkgs/applications/science/math/msieve/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/science/math/mxnet/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/science/math/nasc/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/science/math/nauty/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/math/palp/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/science/math/pari/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/science/math/pari/gp2c.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/math/pcalc/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/science/math/perseus/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/math/polymake/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/science/math/pspp/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/science/math/pynac/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/science/math/ratpoints/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/math/ries/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/science/math/ripser/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/README.md78
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/default.nix181
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/env-locations.nix48
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/flask-oldsessions.nix36
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/flask-openid.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch35
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/giac-1.5.0.patch14
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/numpy-1.15.1.patch911
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch20
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch28
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch71
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/pybrial.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/python-openid.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-env.nix170
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-src.nix144
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-tests.nix51
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix128
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage.nix67
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix81
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sagelib.nix140
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sagenb.nix61
-rw-r--r--nixpkgs/pkgs/applications/science/math/scilab-bin/default.nix106
-rw-r--r--nixpkgs/pkgs/applications/science/math/scilab/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/science/math/scotch/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/science/math/singular/default.nix118
-rw-r--r--nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/math/symmetrica/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/science/math/weka/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/math/yacas/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/science/medicine/aliza/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/science/misc/boinc/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/misc/fityk/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/misc/gephi/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/science/misc/golly/beta.nix51
-rw-r--r--nixpkgs/pkgs/applications/science/misc/golly/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/science/misc/golly/default.upstream5
-rw-r--r--nixpkgs/pkgs/applications/science/misc/gplates/boostfix.patch612
-rw-r--r--nixpkgs/pkgs/applications/science/misc/gplates/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/science/misc/megam/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/misc/megam/ocaml-3.12.patch12
-rw-r--r--nixpkgs/pkgs/applications/science/misc/megam/ocaml-includes.patch21
-rw-r--r--nixpkgs/pkgs/applications/science/misc/motu-client/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/misc/netlogo/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/science/misc/openmodelica/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/science/misc/openmodelica/fakegit.nix81
-rw-r--r--nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-git.nix71
-rw-r--r--nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-svn.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/misc/openmodelica/src-main.nix6
-rwxr-xr-xnixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-git.sh64
-rwxr-xr-xnixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-svn.sh50
-rw-r--r--nixpkgs/pkgs/applications/science/misc/openmvg/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/science/misc/openmvs/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/5.nix77
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/setup-hook.sh9
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch90
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/sw_vers_root5.patch104
-rw-r--r--nixpkgs/pkgs/applications/science/misc/sasview/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/science/misc/sasview/local_config.patch22
-rw-r--r--nixpkgs/pkgs/applications/science/misc/sasview/pyparsing-fix.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/misc/sasview/xhtml2pdf.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/misc/simgrid/default.nix112
-rw-r--r--nixpkgs/pkgs/applications/science/misc/snakemake/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/science/misc/tulip/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/science/misc/vite/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/physics/sacrifice/compat.patch12
-rw-r--r--nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/science/physics/sherpa/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/physics/xfitter/calling_convention.patch355
-rw-r--r--nixpkgs/pkgs/applications/science/physics/xfitter/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/science/programming/fdr/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/science/programming/plm/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/science/programming/scyther/cli.nix32
-rw-r--r--nixpkgs/pkgs/applications/science/programming/scyther/default.nix79
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/gazebo/6.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/gazebo/default.nix84
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/0001-fix-gcc-cmath-namespace-issues.patch140
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/yarp/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/science/spyder/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/search/catfish/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/search/doodle/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/search/grepcidr/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/search/grepm/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/search/recoll/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/search/recoll/nodeblayout.patch12
-rw-r--r--nixpkgs/pkgs/applications/search/recoll/versionawk.patch12
-rw-r--r--nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch11
-rw-r--r--nixpkgs/pkgs/applications/version-management/arch/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/version-management/bazaar/CVE-2017-14176.patch149
-rw-r--r--nixpkgs/pkgs/applications/version-management/bazaar/add_certificates.patch11
-rw-r--r--nixpkgs/pkgs/applications/version-management/bazaar/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/version-management/bazaar/tools.nix20
-rw-r--r--nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/version-management/blackbox/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/version-management/bugseverywhere/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch16
-rw-r--r--nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch29
-rw-r--r--nixpkgs/pkgs/applications/version-management/cvs/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch302
-rw-r--r--nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/version-management/cvsps/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/version-management/diffuse/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/version-management/fossil/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/version-management/gerrit/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock27
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix66
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix80
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix156
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/deps.nix38
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix20
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/deps.nix417
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock26
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix60
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix322
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch37
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch26
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch94
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch12
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch26
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/lab/deps.nix327
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-crecord/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-lfs/1.nix35
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-lfs/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-repo/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-review/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-sizer/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-up/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitea/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch13
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitinspector/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitkraken/default.nix107
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/data.json32
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/default.nix115
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile30
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock170
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix562
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch58
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/remove-hardcoded-paths.patch12
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch152
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake43
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile433
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock1154
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix3455
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile448
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock1191
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix3576
-rwxr-xr-xnixpkgs/pkgs/applications/version-management/gitlab/update.py234
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitless/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitolite/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitstats/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/version-management/gogs/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/version-management/gogs/static-root-path.patch13
-rw-r--r--nixpkgs/pkgs/applications/version-management/gource/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/version-management/guitone/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch7
-rw-r--r--nixpkgs/pkgs/applications/version-management/meld/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/version-management/mercurial/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix41
-rw-r--r--nixpkgs/pkgs/applications/version-management/monotone/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/version-management/monotone/default.upstream8
-rw-r--r--nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch66
-rw-r--r--nixpkgs/pkgs/applications/version-management/mr/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/version-management/nbstripout/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/version-management/nitpick/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/version-management/p4v/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/version-management/peru/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/version-management/pijul/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch122
-rw-r--r--nixpkgs/pkgs/applications/version-management/rcs/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/Gemfile86
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock204
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/gemset.nix615
-rw-r--r--nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch12
-rw-r--r--nixpkgs/pkgs/applications/version-management/sit/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/version-management/smartgithg/default.nix64
-rwxr-xr-xnixpkgs/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh11
-rw-r--r--nixpkgs/pkgs/applications/version-management/src/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/version-management/srcml/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch26
-rw-r--r--nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch11
-rw-r--r--nixpkgs/pkgs/applications/version-management/subversion/default.nix134
-rw-r--r--nixpkgs/pkgs/applications/version-management/tailor/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/version-management/tkcvs/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/version-management/vcprompt/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/version-management/vcsh/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/version-management/yadm/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/video/aegisub/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/video/avidemux/bootstrap_logging.patch26
-rw-r--r--nixpkgs/pkgs/applications/video/avidemux/default.nix94
-rw-r--r--nixpkgs/pkgs/applications/video/avidemux/dynamic_install_dir.patch12
-rw-r--r--nixpkgs/pkgs/applications/video/avxsynth/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/video/bombono/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/video/bomi/default.nix116
-rw-r--r--nixpkgs/pkgs/applications/video/byzanz/add-amflags.patch12
-rw-r--r--nixpkgs/pkgs/applications/video/byzanz/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/video/cinelerra/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/video/clipgrab/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/video/coriander/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/video/devede/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/video/dvb-apps/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/video/dvdauthor/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-automake-1.13.patch10
-rw-r--r--nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-mga-strndup.patch24
-rw-r--r--nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-imagemagick-0.7.0.patch11
-rw-r--r--nixpkgs/pkgs/applications/video/dvdbackup/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/video/dvdstyler/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/video/gnome-mplayer/fix-paths.patch87
-rw-r--r--nixpkgs/pkgs/applications/video/gnome-mpv/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/video/gnomecast/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/video/gpac/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/video/handbrake/default.nix113
-rw-r--r--nixpkgs/pkgs/applications/video/k9copy/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/video/k9copy/gcc6.patch26
-rw-r--r--nixpkgs/pkgs/applications/video/kazam/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/video/kazam/fix-paths.patch22
-rw-r--r--nixpkgs/pkgs/applications/video/key-mon/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/video/kino/default.nix93
-rw-r--r--nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch60
-rw-r--r--nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch57
-rw-r--r--nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch11
-rw-r--r--nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch21
-rw-r--r--nixpkgs/pkgs/applications/video/kmplayer/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/video/kmplayer/kmplayer_part-plugin_metadata.patch11
-rw-r--r--nixpkgs/pkgs/applications/video/kmplayer/no-docs.patch12
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/default.nix214
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/plugins.nix473
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/wrapper.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch29
-rw-r--r--nixpkgs/pkgs/applications/video/lightworks/default.nix87
-rw-r--r--nixpkgs/pkgs/applications/video/linuxstopmotion/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch33
-rw-r--r--nixpkgs/pkgs/applications/video/lxdvdrip/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/video/makemkv/builder.sh40
-rw-r--r--nixpkgs/pkgs/applications/video/makemkv/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/video/mapmap/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/video/mediathekview/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/video/minitube/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/video/mjpg-streamer/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/video/motion/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/mpc-qt/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/video/mplayer/default.nix223
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/default.nix228
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/convert.nix40
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/convert.patch67
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/mpris.nix28
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/wrapper.nix14
-rw-r--r--nixpkgs/pkgs/applications/video/mythtv/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/video/natron/config.pri20
-rw-r--r--nixpkgs/pkgs/applications/video/natron/default.nix129
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/default.nix88
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix48
-rw-r--r--nixpkgs/pkgs/applications/video/ogmtools/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/video/omxplayer/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/video/openshot-qt/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix36
-rw-r--r--nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix51
-rw-r--r--nixpkgs/pkgs/applications/video/p2pvc/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/video/peek/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/video/pitivi/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/video/pitivi/prevent-closure-contamination.patch23
-rw-r--r--nixpkgs/pkgs/applications/video/plex-media-player/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/video/pyca/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/video/qarte/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/video/qmediathekview/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/video/qstopmotion/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/video/quvi/library.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/quvi/scripts.nix21
-rw-r--r--nixpkgs/pkgs/applications/video/quvi/tool.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/recordmydesktop/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/video/recordmydesktop/gtk.nix37
-rw-r--r--nixpkgs/pkgs/applications/video/recordmydesktop/qt.nix37
-rw-r--r--nixpkgs/pkgs/applications/video/screenkey/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/video/screenkey/paths.patch20
-rw-r--r--nixpkgs/pkgs/applications/video/shotcut/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/video/simplescreenrecorder/fix-paths.patch35
-rw-r--r--nixpkgs/pkgs/applications/video/smplayer/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/video/smtube/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/video/streamlink/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/video/subdl/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/video/subtitleeditor/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/video/tivodecode/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/video/uvccapture/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/default.nix78
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/plugins.nix318
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/wrapper.nix21
-rw-r--r--nixpkgs/pkgs/applications/video/vlc/default.nix92
-rw-r--r--nixpkgs/pkgs/applications/video/vokoscreen/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/video/vokoscreen/ffmpeg-out-of-box.patch31
-rw-r--r--nixpkgs/pkgs/applications/video/w_scan/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix88
-rw-r--r--nixpkgs/pkgs/applications/video/wxcam/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/video/xawtv/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/video/xine-ui/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/video/xscast/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/video/xvidcap/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/video/xvidcap/xlib.patch15
-rw-r--r--nixpkgs/pkgs/applications/video/zdfmediathk/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/virtualization/8086tiny/builder.sh28
-rw-r--r--nixpkgs/pkgs/applications/virtualization/8086tiny/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/virtualization/OVMF/default.nix92
-rw-r--r--nixpkgs/pkgs/applications/virtualization/aqemu/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/virtualization/bochs/bochs-2.6.9-glibc-2.26.patch14
-rw-r--r--nixpkgs/pkgs/applications/virtualization/bochs/default.nix129
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cbfstool/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cntr/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/virtualization/containerd/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/default.nix214
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/distribution.nix23
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/gc.nix33
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/proxy.nix29
-rw-r--r--nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/virtualization/driver/win-virtio/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/virtualization/dynamips/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/virtualization/ecs-agent/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/virtualization/firecracker/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/virtualization/lkl/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/virtualization/open-vm-tools/recognize_nixos.patch33
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qboot/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/default.nix156
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/fix-hda-recording.patch34
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch22
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/force-uid0-on-9p.patch81
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/no-etc-install.patch10
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/sigrtminmax.patch30
-rw-r--r--nixpkgs/pkgs/applications/virtualization/railcar/cargo-lock.patch435
-rw-r--r--nixpkgs/pkgs/applications/virtualization/railcar/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/virtualization/remotebox/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/virtualization/rkt/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/virtualization/runc/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/virtualization/seabios/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/virtualization/singularity/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/virtualization/singularity/env.patch21
-rw-r--r--nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/virtualization/tini/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/virtualization/tinyemu/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix41
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virt-top/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virt-viewer/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virt-what/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtinst/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix196
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix23
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix161
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/fix_kerndir.patch38
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/fix_kernincl.patch12
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/hardened.patch182
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/qtx11extras.patch31
-rwxr-xr-xnixpkgs/pkgs/applications/virtualization/virtualbox/update.py85
-rw-r--r--nixpkgs/pkgs/applications/virtualization/vpcs/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch14
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/0000-fix-install-python.patch16
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.patch27
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch19
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch104
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch104
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch165
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/4.10.nix181
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/4.5.nix261
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/4.8.nix185
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/generic.nix239
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/packages.nix156
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xen/xsa-patches.nix936
-rw-r--r--nixpkgs/pkgs/applications/virtualization/xhyve/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/window-managers/2bwm/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/window-managers/afterstep/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/window-managers/awesome/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/window-managers/bevelbar/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/window-managers/bspwm/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix31
-rw-r--r--nixpkgs/pkgs/applications/window-managers/btops/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/window-managers/btops/deps.nix120
-rw-r--r--nixpkgs/pkgs/applications/window-managers/clfswm/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/window-managers/clfswm/require-clx.patch13
-rw-r--r--nixpkgs/pkgs/applications/window-managers/compton/default.nix83
-rw-r--r--nixpkgs/pkgs/applications/window-managers/cwm/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwm/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix37
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwm/git.nix37
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dzen2/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/window-managers/evilwm/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/window-managers/fbpanel/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/window-managers/fluxbox/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/window-managers/fvwm/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix51
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/blocks.nix59
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix32
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/gaps.nix38
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix34
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix62
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix40
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/lock.nix37
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/pystatus.nix47
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix27
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/status.nix25
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix32
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix38
-rw-r--r--nixpkgs/pkgs/applications/window-managers/icewm/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch236
-rw-r--r--nixpkgs/pkgs/applications/window-managers/icewm/musl.patch23
-rw-r--r--nixpkgs/pkgs/applications/window-managers/ion-3/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/window-managers/jwm/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix44
-rw-r--r--nixpkgs/pkgs/applications/window-managers/kbdd/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/window-managers/larswm/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix23
-rw-r--r--nixpkgs/pkgs/applications/window-managers/matchbox/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/window-managers/notion/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/window-managers/notion/notion-xft_nixos.diff662
-rw-r--r--nixpkgs/pkgs/applications/window-managers/openbox/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/window-managers/orbment/bemenu.nix26
-rw-r--r--nixpkgs/pkgs/applications/window-managers/orbment/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/window-managers/oroborus/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/window-managers/pekwm/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch30
-rw-r--r--nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch60
-rw-r--r--nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch13
-rw-r--r--nixpkgs/pkgs/applications/window-managers/qtile/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/window-managers/ratpoison/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sawfish/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/window-managers/stalonetray/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/window-managers/stumpish/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/window-managers/stumpish/paths.patch87
-rw-r--r--nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch16
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/beta.nix43
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/window-managers/tabbed/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/window-managers/tabbed/xft.patch234
-rw-r--r--nixpkgs/pkgs/applications/window-managers/taffybar/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/window-managers/trayer/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/window-managers/velox/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/window-managers/velox/dmenu.nix37
-rw-r--r--nixpkgs/pkgs/applications/window-managers/velox/st.nix40
-rw-r--r--nixpkgs/pkgs/applications/window-managers/velox/swc.nix36
-rw-r--r--nixpkgs/pkgs/applications/window-managers/velox/wld.nix32
-rw-r--r--nixpkgs/pkgs/applications/window-managers/vwm/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/bar.diff37
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/default.nix99
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/way-cooler.nix1855
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/wc-bg.nix1372
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/wc-grab.nix794
-rw-r--r--nixpkgs/pkgs/applications/window-managers/way-cooler/wc-lock.nix1479
-rw-r--r--nixpkgs/pkgs/applications/window-managers/weston/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowlab/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/alsamixer.app.nix27
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmcalclock.nix32
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm.app.nix29
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix20
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wtftw/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch57
-rw-r--r--nixpkgs/pkgs/applications/window-managers/xmonad/wrapper.nix21
-rw-r--r--nixpkgs/pkgs/applications/window-managers/yabar/build.nix54
-rw-r--r--nixpkgs/pkgs/applications/window-managers/yabar/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/window-managers/yabar/unstable.nix25
3027 files changed, 339892 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/altcoins/aeon/default.nix b/nixpkgs/pkgs/applications/altcoins/aeon/default.nix
new file mode 100644
index 000000000000..42717d3a2667
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/aeon/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, git, doxygen, graphviz
+, boost, miniupnpc, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium
+}:
+
+let
+  version = "0.12.8.0";
+in
+stdenv.mkDerivation {
+  name = "aeon-${version}";
+
+  src = fetchFromGitHub {
+    owner = "aeonix";
+    repo = "aeon";
+    rev = "v${version}-aeon";
+    fetchSubmodules = true;
+    sha256 = "1qmlz820mjs0b60d7i90lxcwwxmsdy6swq67v6n8mbb79zmcx8ii";
+  };
+
+  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/nixpkgs/pkgs/applications/altcoins/bitcoin-abc.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-abc.nix
new file mode 100644
index 000000000000..3b65b06d8db8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-abc.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db53, boost
+, zlib, miniupnpc, qtbase ? null , qttools ? null, utillinux, protobuf, qrencode, libevent
+, withGui }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
+  version = "0.18.2";
+
+  src = fetchFromGitHub {
+    owner = "bitcoin-ABC";
+    repo = "bitcoin-abc";
+    rev = "v${version}";
+    sha256 = "1ha219xnd61qicf7r3j0wbfrifh7blwp3lyk3ycgdn381q1qln29";
+  };
+
+  patches = [ ./fix-bitcoin-qt-build.patch ];
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db53 boost zlib
+                  miniupnpc utillinux protobuf libevent ]
+                  ++ optionals withGui [ qtbase qttools qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt5" ];
+
+  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/nixpkgs/pkgs/applications/altcoins/bitcoin-classic.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-classic.nix
new file mode 100644
index 000000000000..ad48ea2a6257
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-classic.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, 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";
+  };
+
+  patches = [ ./fix-bitcoin-qt-build.patch ];
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib
+                  miniupnpc utillinux protobuf libevent ]
+                  ++ optionals withGui [ qtbase qttools qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt5" ];
+
+  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/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch
new file mode 100644
index 000000000000..1b74a48a84aa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited-const-comparators.patch
@@ -0,0 +1,38 @@
+--- a/src/txmempool.h
++++ b/src/txmempool.h
+@@ -204,7 +204,7 @@
+ class CompareTxMemPoolEntryByDescendantScore
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         bool fUseADescendants = UseDescendantScore(a);
+         bool fUseBDescendants = UseDescendantScore(b);
+@@ -226,7 +226,7 @@
+     }
+ 
+     // Calculate which score to use for an entry (avoiding division).
+-    bool UseDescendantScore(const CTxMemPoolEntry &a)
++    bool UseDescendantScore(const CTxMemPoolEntry &a) const
+     {
+         double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants();
+         double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize();
+@@ -241,7 +241,7 @@
+ class CompareTxMemPoolEntryByScore
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         double f1 = (double)a.GetModifiedFee() * b.GetTxSize();
+         double f2 = (double)b.GetModifiedFee() * a.GetTxSize();
+@@ -255,7 +255,7 @@
+ class CompareTxMemPoolEntryByEntryTime
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         return a.GetTime() < b.GetTime();
+     }
diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix
new file mode 100644
index 000000000000..13ec55bb589d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-unlimited.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
+, withGui
+, Foundation, ApplicationServices, AppKit }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
+  version = "1.0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "bitcoinunlimited";
+    repo = "bitcoinunlimited";
+    rev = "v${version}";
+    sha256 = "0l02a7h502msrp4c02wgm7f3159ap8l61k4890vas99gq7ywxkcx";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib
+                  miniupnpc utillinux protobuf libevent ]
+                  ++ optionals withGui [ qt4 qrencode ]
+                  ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
+
+  patches = [
+    ./bitcoin-unlimited-const-comparators.patch
+  ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt4" ];
+  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/nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix
new file mode 100644
index 000000000000..499bc4be4c83
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin-xt.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, curl, libevent
+, withGui
+, Foundation, ApplicationServices, AppKit }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-xt-" + version;
+  version = "0.11H";
+
+  src = fetchFromGitHub {
+    owner = "bitcoinxt";
+    repo = "bitcoinxt";
+    rev = "v${version}";
+    sha256 = "1v43bynmidn2zdpky939km721x3ks91bzyh4200gji61qzsmyg62";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib libevent
+                  miniupnpc utillinux protobuf curl ]
+                  ++ optionals withGui [ qt4 qrencode ]
+                  ++ optionals stdenv.isDarwin [ Foundation ApplicationServices AppKit ];
+
+  configureFlags = [
+    "--with-boost-libdir=${boost.out}/lib"
+    "--with-libcurl-headers=${curl.dev}/include"
+  ] ++ optionals withGui [ "--with-gui=qt4" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Peer-to-peer electronic cash system (XT 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 XT is an implementation of a Bitcoin full node, based upon the
+      source code of Bitcoin Core. It is built by taking the latest stable
+      Core release, applying a series of patches, and then doing deterministic
+      builds so anyone can check the downloads correspond to the source code.
+    '';
+    homepage = https://bitcoinxt.software/;
+    maintainers = with maintainers; [ jefdaj ];
+    license = licenses.mit;
+    broken = stdenv.isDarwin;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/bitcoin.nix b/nixpkgs/pkgs/applications/altcoins/bitcoin.nix
new file mode 100644
index 000000000000..c266fa2fef25
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/bitcoin.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, openssl, db48, boost, zeromq
+, zlib, miniupnpc, qtbase ? null, qttools ? null, utillinux, protobuf, python3, qrencode, libevent
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "0.17.0";
+
+  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 = "0pkq28d2dj22qrxyyg9kh0whmhj7ghyabnhyqldbljv4a7l3kvwq";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ]
+                   ++ optionals doCheck [ python3 ];
+  buildInputs = [ openssl db48 boost zlib zeromq
+                  miniupnpc protobuf libevent]
+                  ++ optionals stdenv.isLinux [ utillinux ]
+                  ++ optionals withGui [ qtbase qttools qrencode ];
+
+  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"
+                                          ];
+
+  doCheck = true;
+
+  # 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
+  checkFlags = optionals withGui [ "QT_PLUGIN_PATH=${qtbase}/lib/qt-5.${versions.minor qtbase.version}/plugins" ];
+
+  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 = http://www.bitcoin.org/;
+    maintainers = with maintainers; [ roconnor AndersonTorres ];
+    license = licenses.mit;
+    # bitcoin needs hexdump to build, which doesn't seem to build on darwin at the moment.
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/btc1.nix b/nixpkgs/pkgs/applications/altcoins/btc1.nix
new file mode 100644
index 000000000000..2f85a8947972
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/btc1.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, hexdump, openssl, db48
+, boost, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
+, AppKit
+, withGui ? !stdenv.isDarwin
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+  name = "bit1" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "1.15.1";
+
+  src = fetchurl {
+    url = "https://github.com/btc1/bitcoin/archive/v${version}.tar.gz";
+    sha256 = "0v0g2wb4nsnhddxzb63vj2bc1mgyj05vqm5imicjfz8prvgc0si8";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook hexdump ];
+  buildInputs = [ openssl db48 boost zlib miniupnpc protobuf libevent ]
+    ++ optionals withGui [ qt4 qrencode ]
+    ++ optional stdenv.isDarwin AppKit;
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt4" ];
+
+  meta = {
+    description = "Peer-to-peer electronic cash system (btc1 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.
+
+      btc1 is an implementation of a Bitcoin full node with segwit2x hard fork
+      support.
+    '';
+    homepage = "https://github.com/btc1/bitcoin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sorpaas ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/clightning.nix b/nixpkgs/pkgs/applications/altcoins/clightning.nix
new file mode 100644
index 000000000000..6ae6ae7801f2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/clightning.nix
@@ -0,0 +1,57 @@
+{ stdenv, python3, pkgconfig, which, libtool, autoconf, automake,
+  autogen, sqlite, gmp, zlib, fetchFromGitHub, fetchpatch }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "clightning-${version}";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    fetchSubmodules = true;
+    owner = "ElementsProject";
+    repo = "lightning";
+    rev = "v${version}";
+    sha256 = "18yns0yyf7kc4p4n1crxdqh37j9faxkx216nh2ip7cxj4x8bf9gx";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ autoconf autogen automake libtool pkgconfig which ];
+  buildInputs = [ sqlite gmp zlib python3 ];
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  configurePhase = ''
+    ./configure --prefix=$out --disable-developer --disable-valgrind
+  '';
+
+  # NOTE: remove me in 0.6.3
+  patches = [
+    (fetchpatch {
+      name = "clightning_0_6_2-compile-error.patch";
+      url = https://patch-diff.githubusercontent.com/raw/ElementsProject/lightning/pull/2070.patch;
+      sha256 = "1576fqik5zcpz5zsvp2ks939bgiz0jc22yf24iv61000dd5j6na9";
+    })
+  ];
+
+  postPatch = ''
+    echo "" > tools/refresh-submodules.sh
+    patchShebangs tools/generate-wire.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/nixpkgs/pkgs/applications/altcoins/cryptop/default.nix b/nixpkgs/pkgs/applications/altcoins/cryptop/default.nix
new file mode 100644
index 000000000000..01c47b320de5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/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/nixpkgs/pkgs/applications/altcoins/dashpay.nix b/nixpkgs/pkgs/applications/altcoins/dashpay.nix
new file mode 100644
index 000000000000..b2f2a457a99d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dashpay.nix
@@ -0,0 +1,43 @@
+{ fetchFromGitHub, stdenv, pkgconfig, autoreconfHook
+, openssl, db48, boost, zlib, miniupnpc
+, qrencode, glib, protobuf, yasm, libevent
+, utillinux
+, enable_Upnp ? false
+, disable_Wallet ? false
+, disable_Daemon ? false }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "dashpay-${version}";
+  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 utillinux ];
+
+
+  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; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/dcrd.nix b/nixpkgs/pkgs/applications/altcoins/dcrd.nix
new file mode 100644
index 000000000000..cc3e83befa64
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dcrd.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+
+buildGoPackage rec {
+  name = "dcrd-${version}";
+  version = "1.1.2";
+  rev = "refs/tags/v${version}";
+  goPackagePath = "github.com/decred/dcrd";
+
+  buildInputs = [ go git dep cacert ];
+
+  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://${goPackagePath}";
+    sha256 = "0xcynipdn9zmmralxj0hjrwyanvhkwfj2b1vvjk5zfc95s2xc1q9";
+  };
+
+  preBuild = ''
+    export CWD=$(pwd)
+    cd go/src/github.com/decred/dcrd
+    dep ensure
+    go install . ./cmd/...
+    cd $CWD
+  '';
+
+  meta = {
+    homepage = "https://decred.org";
+    description = "Decred daemon in Go (golang)";
+    license = with lib.licenses; [ isc ];
+    broken = stdenv.isLinux; # 2018-04-10
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/dcrwallet.nix b/nixpkgs/pkgs/applications/altcoins/dcrwallet.nix
new file mode 100644
index 000000000000..8d966684b23c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dcrwallet.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+
+buildGoPackage rec {
+  name = "dcrwallet-${version}";
+  version = "1.1.2";
+  rev = "refs/tags/v${version}";
+  goPackagePath = "github.com/decred/dcrwallet";
+
+  buildInputs = [ go git dep cacert ];
+
+  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://${goPackagePath}";
+    sha256 = "058im4vmcmxcl5ir14h17wik5lagp2ay0p8qc3r99qmpfwvvz39x";
+  };
+
+  preBuild = ''
+    export CWD=$(pwd)
+    cd go/src/github.com/decred/dcrwallet
+    dep ensure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    go build
+  '';
+
+  installPhase = ''
+    mkdir -pv $bin/bin
+    cp -v dcrwallet $bin/bin
+  '';
+
+
+  meta = {
+    homepage = "https://decred.org";
+    description = "Decred daemon in Go (golang)";
+    license = with lib.licenses; [ isc ];
+    broken = stdenv.isLinux; # 2018-04-10
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/default.nix b/nixpkgs/pkgs/applications/altcoins/default.nix
new file mode 100644
index 000000000000..c7a81b6b11fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/default.nix
@@ -0,0 +1,100 @@
+{ callPackage, boost155, boost165, openssl_1_1, haskellPackages, darwin, libsForQt5, miniupnpc_2, python3, buildGo110Package }:
+
+rec {
+
+  aeon = callPackage ./aeon { };
+
+  bitcoin  = libsForQt5.callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; };
+  bitcoind = callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; };
+  clightning = callPackage ./clightning.nix { };
+
+  bitcoin-abc  = libsForQt5.callPackage ./bitcoin-abc.nix { boost = boost165; withGui = true; };
+  bitcoind-abc = callPackage ./bitcoin-abc.nix { boost = boost165; withGui = false; };
+
+  bitcoin-unlimited  = callPackage ./bitcoin-unlimited.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    withGui = true;
+  };
+  bitcoind-unlimited = callPackage ./bitcoin-unlimited.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    withGui = false;
+  };
+
+  bitcoin-classic  = libsForQt5.callPackage ./bitcoin-classic.nix { boost = boost165; withGui = true; };
+  bitcoind-classic = callPackage ./bitcoin-classic.nix { boost = boost165; withGui = false; };
+
+  bitcoin-xt  = callPackage ./bitcoin-xt.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    boost = boost165; withGui = true;
+  };
+  bitcoind-xt = callPackage ./bitcoin-xt.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
+    boost = boost165; withGui = false;
+  };
+
+  btc1 = callPackage ./btc1.nix {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+    boost = boost165;
+  };
+  btc1d = btc1.override { withGui = false; };
+
+  cryptop = python3.pkgs.callPackage ./cryptop { };
+
+  dashpay = callPackage ./dashpay.nix { };
+
+  dcrd = callPackage ./dcrd.nix { };
+  dcrwallet = callPackage ./dcrwallet.nix { };
+
+  dero = callPackage ./dero.nix { boost = boost165; };
+
+  dogecoin  = callPackage ./dogecoin.nix { boost = boost165; withGui = true; };
+  dogecoind = callPackage ./dogecoin.nix { boost = boost165; withGui = false; };
+
+
+  freicoin = callPackage ./freicoin.nix { boost = boost155; };
+  go-ethereum = callPackage ./go-ethereum.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+  go-ethereum-classic = callPackage ./go-ethereum-classic {
+    buildGoPackage = buildGo110Package;
+  };
+
+  litecoin  = callPackage ./litecoin.nix {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+  litecoind = litecoin.override { withGui = false; };
+
+  masari = callPackage ./masari.nix { boost = boost165; };
+
+  memorycoin  = callPackage ./memorycoin.nix { boost = boost165; withGui = true; };
+  memorycoind = callPackage ./memorycoin.nix { boost = boost165; withGui = false; };
+
+  mist = callPackage ./mist.nix { };
+
+  namecoin  = callPackage ./namecoin.nix  { withGui = true; };
+  namecoind = callPackage ./namecoin.nix { withGui = false; };
+
+  ethabi = callPackage ./ethabi.nix { };
+
+  stellar-core = callPackage ./stellar-core.nix { };
+
+  sumokoin = callPackage ./sumokoin.nix { boost = boost165; };
+
+  wownero = callPackage ./wownero.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
+  };
+
+  zcash = callPackage ./zcash {
+    withGui = false;
+    openssl = openssl_1_1;
+  };
+
+  parity = callPackage ./parity { };
+  parity-beta = callPackage ./parity/beta.nix { };
+  parity-ui = callPackage ./parity-ui { };
+
+  polkadot = callPackage ./polkadot { };
+
+  particl-core = callPackage ./particl/particl-core.nix { miniupnpc = miniupnpc_2; };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/dero.nix b/nixpkgs/pkgs/applications/altcoins/dero.nix
new file mode 100644
index 000000000000..8405ea8f842b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dero.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost
+, lmdb, miniupnpc, readline }:
+
+stdenv.mkDerivation rec {
+  name = "dero-${version}";
+  version = "0.11.6";
+
+  src = fetchFromGitHub {
+    owner = "deroproject";
+    repo = "dero";
+    rev = "v${version}";
+    sha256 = "0jc5rh2ra4wra04dwv9sydid5ij5930s38mhzq3qkdjyza1ahmsr";
+  };
+
+  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/nixpkgs/pkgs/applications/altcoins/dogecoin.nix b/nixpkgs/pkgs/applications/altcoins/dogecoin.nix
new file mode 100644
index 000000000000..0452f4013345
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/dogecoin.nix
@@ -0,0 +1,41 @@
+{ stdenv , fetchFromGitHub
+, pkgconfig, autoreconfHook
+, db5, openssl, boost, zlib, miniupnpc
+, protobuf, utillinux, qt4, qrencode
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "1.10.0";
+
+  src = fetchFromGitHub {
+    owner = "dogecoin";
+    repo = "dogecoin";
+    rev = "v${version}";
+    sha256 = "04rddx20d4fps2w3h1jxa2j8iyqpjv2fh897z0z3r06qjvjzf7rr";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db5 openssl utillinux
+                  protobuf boost zlib miniupnpc ]
+                  ++ 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 AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/ethabi.nix b/nixpkgs/pkgs/applications/altcoins/ethabi.nix
new file mode 100644
index 000000000000..d0bc700eb70f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/ethabi.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "ethabi-${version}";
+  version = "4.1.0";
+
+  src = fetchFromGitHub {
+    owner = "paritytech";
+    repo = "ethabi";
+    rev = "v${version}";
+    sha256 = "0kxflixmgycdh7sv73zf2mrkbcfzzw7f5sjbsjks9crc9cvjqi6p";
+  };
+
+  cargoSha256 = "18rigpsmfiv6im2sspnxadgqrlfdp9dd75ji8s56ksc9g7hrc3wz";
+
+  cargoBuildFlags = ["--features cli"];
+
+  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/nixpkgs/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch b/nixpkgs/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch
new file mode 100644
index 000000000000..cbbfd85fe5bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/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/nixpkgs/pkgs/applications/altcoins/freicoin.nix b/nixpkgs/pkgs/applications/altcoins/freicoin.nix
new file mode 100644
index 000000000000..1e9192bc6e40
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/freicoin.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub, stdenv, db, boost, gmp, mpfr, qt4, qmake4Hook }:
+
+stdenv.mkDerivation rec {
+  version = "0.8.6-2";
+  name = "freicoin-${version}";
+
+  src = fetchFromGitHub {
+    owner = "freicoin";
+    repo = "freicoin";
+    rev = "v${version}";
+    sha256 = "1v1qwv4x5agjba82s1vknmdgq67y26wzdwbmwwqavv7f7y3y860h";
+  };
+
+  qmakeFlags = ["USE_UPNP=-"];
+
+  # I think that openssl and zlib are required, but come through other
+  # packages
+
+  preBuild = "unset AR";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp freicoin-qt $out/bin
+  '';
+
+  nativeBuildInputs = [ qmake4Hook ];
+  buildInputs = [ db boost gmp mpfr qt4 ];
+
+  meta = with stdenv.lib; {
+    description = "Peer-to-peer currency with demurrage fee";
+    homepage = http://freicoi.in/;
+    license = licenses.mit;
+    maintainers = [ maintainers.viric ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix
new file mode 100644
index 000000000000..7461e4c376ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  name = "go-ethereum-classic-${version}";
+  version = "4.0.0";
+
+  goPackagePath = "github.com/ethereumproject/go-ethereum";
+  subPackages = [ "cmd/evm" "cmd/geth" ];
+
+  src = fetchgit {
+    rev = "v${version}";
+    url = "https://github.com/ethereumproject/go-ethereum";
+    sha256 = "06f1w7s45q4zva1xjrx92xinsdrixl0m6zhx5hvdjmg3xqcbwr79";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = {
+    description = "Golang implementation of Ethereum Classic";
+    homepage = https://github.com/ethereumproject/go-ethereum;
+    license = with lib.licenses; [ lgpl3 gpl3 ];
+    maintainers = with lib.maintainers; [ sorpaas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/deps.nix b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/deps.nix
new file mode 100644
index 000000000000..0aa6755ee960
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/go-ethereum-classic/deps.nix
@@ -0,0 +1,39 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.0
+[
+  {
+    goPackagePath = "github.com/maruel/panicparse";
+    fetch = {
+      type = "git";
+      url = "https://github.com/maruel/panicparse";
+      rev = "ae43f192cef2add653fe1481a3070ed00a4a6981";
+      sha256 = "11q8v4adbrazqvh24235s5nifck0d1083gbwv4dh5lhd10xlwdvr";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "97311d9f7767e3d6f422ea06661bc2c7a19e8a5d";
+      sha256 = "0dxlrzn570xl7gb11hjy1v4p3gw3r41yvqhrffgw95ha3q9p50cg";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/go-wordwrap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-wordwrap";
+      rev = "ad45545899c7b13c020ea92b2072220eefad42b8";
+      sha256 = "0ny1ddngvwfj3njn7pmqnf3l903lw73ynddw15x8ymp7hidv27v9";
+    };
+  }
+  {
+    goPackagePath = "github.com/nsf/termbox-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nsf/termbox-go";
+      rev = "4163cd39dda1c0dda883a713640bc01e08951c24";
+      sha256 = "1vzrhxf8823lrnwf1bfyxwlm52pph5iq2hgr1d0n07v8kjgqkrmx";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/altcoins/go-ethereum.nix b/nixpkgs/pkgs/applications/altcoins/go-ethereum.nix
new file mode 100644
index 000000000000..14bf13d8828e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/go-ethereum.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libobjc, IOKit }:
+
+buildGoPackage rec {
+  name = "go-ethereum-${version}";
+  version = "1.8.20";
+  goPackagePath = "github.com/ethereum/go-ethereum";
+
+  # Fix for usb-related segmentation faults on darwin
+  propagatedBuildInputs =
+    stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
+
+  # Fixes Cgo related build failures (see https://github.com/NixOS/nixpkgs/issues/25959 )
+  hardeningDisable = [ "fortify" ];
+
+  src = fetchFromGitHub {
+    owner = "ethereum";
+    repo = "go-ethereum";
+    rev = "v${version}";
+    sha256 = "0m2q1nz6f39pyr2rk6vflkwi4ykganzwr7wndpwr9rliw0x8jgi0";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://ethereum.github.io/go-ethereum/;
+    description = "Official golang implementation of the Ethereum protocol";
+    license = with licenses; [ lgpl3 gpl3 ];
+    maintainers = [ maintainers.adisbladis maintainers.lionello ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/litecoin.nix b/nixpkgs/pkgs/applications/altcoins/litecoin.nix
new file mode 100644
index 000000000000..33ac2be18322
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/litecoin.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, autoreconfHook
+, openssl, db48, boost, zlib, miniupnpc
+, glib, protobuf, utillinux, qt4, qrencode
+, AppKit
+, withGui ? true, libevent
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "litecoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "0.16.3";
+
+  src = fetchFromGitHub {
+    owner = "litecoin-project";
+    repo = "litecoin";
+    rev = "v${version}";
+    sha256 = "0vc184qfdkjky1qffa7309k6973k4197bkzwcmffc9r5sdfhrhkp";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib
+                  miniupnpc glib protobuf utillinux libevent ]
+                  ++ optionals stdenv.isDarwin [ AppKit ]
+                  ++ optionals withGui [ qt4 qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt4" ];
+
+  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 AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/masari.nix b/nixpkgs/pkgs/applications/altcoins/masari.nix
new file mode 100644
index 000000000000..02a6d25df516
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/masari.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkgconfig, unbound, openssl, boost
+, lmdb, miniupnpc, readline }:
+
+stdenv.mkDerivation rec {
+  name = "masari-${version}";
+  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/nixpkgs/pkgs/applications/altcoins/memorycoin.nix b/nixpkgs/pkgs/applications/altcoins/memorycoin.nix
new file mode 100644
index 000000000000..944c82250d47
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/memorycoin.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, pkgconfig, openssl, db48, boost
+, zlib, qt4, qmake4Hook, utillinux, protobuf, qrencode
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec{
+
+  name = "memorycoin" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "0.8.5";
+
+  src = fetchurl {
+    url = "https://github.com/memorycoin/memorycoin/archive/v${version}.tar.gz";
+    sha256 = "1iyh6dqrg0mirwci5br5n5qw3ghp2cs23wd8ygr56bh9ml4dr1m8";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ openssl db48 boost zlib utillinux protobuf ]
+                  ++ optionals withGui [ qt4 qmake4Hook qrencode ];
+
+  qmakeFlags = ["USE_UPNP=-"];
+  makeFlags = ["USE_UPNP=-"];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt4" ];
+
+  preBuild = "unset AR;"
+             + (toString (optional (!withGui) "cd src; cp makefile.unix Makefile"));
+
+  installPhase =
+    if withGui
+    then "install -D bitcoin-qt $out/bin/memorycoin-qt"
+    else "install -D bitcoind $out/bin/memorycoind";
+
+  # `make build/version.o`:
+  # make: *** No rule to make target 'build/build.h', needed by 'build/version.o'.  Stop.
+  enableParallelBuilding = false;
+
+  meta = {
+    description = "Peer-to-peer, CPU-based electronic cash system";
+    longDescription= ''
+      Memorycoin is a cryptocurrency that aims to empower the
+      economically and financially marginalized. It allows individuals
+      to participate in the internet economy even when they live in
+      countries where credit card companies and PayPal(R) refuse to
+      operate. Individuals can store and transfer wealth with just a
+      memorized pass phrase.
+
+      Memorycoin is based on the Bitcoin code, but with some key
+      differences.
+    '';
+    homepage = http://www.bitcoin.org/;
+    maintainers = with maintainers; [ AndersonTorres ];
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/mist.nix b/nixpkgs/pkgs/applications/altcoins/mist.nix
new file mode 100644
index 000000000000..2990b44c7f4c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/mist.nix
@@ -0,0 +1,72 @@
+{ stdenv, makeWrapper, fetchurl, unzip, atomEnv, makeDesktopItem, buildFHSUserEnv, gtk2 }:
+
+let
+  version = "0.11.1";
+  pname = "mist";
+
+  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+  meta = with stdenv.lib; {
+    description = "Browse and use Ðapps on the Ethereum network";
+    homepage = https://github.com/ethereum/mist;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+
+  urlVersion = builtins.replaceStrings ["."] ["-"] version;
+
+  desktopItem = makeDesktopItem rec {
+    name = "Mist";
+    exec = "mist";
+    icon = "mist";
+    desktopName = name;
+    genericName = "Mist Browser";
+    categories = "Network;";
+  };
+
+  mist = stdenv.lib.appendToName "unwrapped" (stdenv.mkDerivation {
+    inherit pname version meta;
+
+    src = {
+      i686-linux = fetchurl {
+        url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux32-${urlVersion}.zip";
+        sha256 = "1ffzp9aa0g6w3d5pzp69fljk3sd51cbqdgxa1x16vj106sqm0gj7";
+      };
+      x86_64-linux = fetchurl {
+        url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux64-${urlVersion}.zip";
+        sha256 = "0yx4x72l8gk68yh9saki48zgqx8k92xnkm79dc651wdpd5c25cz3";
+      };
+    }.${stdenv.hostPlatform.system} or throwSystem;
+
+    buildInputs = [ unzip makeWrapper ];
+
+    buildCommand = ''
+      mkdir -p $out/lib/mist $out/bin
+      unzip -d $out/lib/mist $src
+      ln -s $out/lib/mist/mist $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}:${gtk2}/lib:$out/lib/mist" \
+        $out/lib/mist/mist
+    '';
+  });
+in
+buildFHSUserEnv {
+  name = "mist";
+  inherit meta;
+
+  targetPkgs = pkgs: with pkgs; [
+     mist
+  ];
+
+  extraInstallCommands = ''
+    mkdir -p "$out/share/applications"
+    cp "${desktopItem}/share/applications/"* $out/share/applications
+  '';
+
+  runScript = "mist";
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix b/nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix
new file mode 100644
index 000000000000..331ef6b92a4f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/monero-gui/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, fetchFromGitHub
+, makeWrapper, makeDesktopItem
+, qtbase, qmake, qtmultimedia, qttools
+, qtgraphicaleffects, qtdeclarative
+, qtlocation, qtquickcontrols2, qtwebchannel
+, qtwebengine, qtx11extras, qtxmlpatterns
+, monero, unbound, readline, boost, libunwind
+, libsodium, pcsclite, zeromq, cppzmq, pkgconfig
+, hidapi
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "monero-gui-${version}";
+  version = "0.13.0.4";
+
+  src = fetchFromGitHub {
+    owner  = "monero-project";
+    repo   = "monero-gui";
+    rev    = "v${version}";
+    sha256 = "142yj5s15bhm300dislq3x5inw1f37shnrd5vyj78jjcvry3wymw";
+  };
+
+  nativeBuildInputs = [ qmake pkgconfig ];
+
+  buildInputs = [
+    qtbase qtmultimedia qtgraphicaleffects
+    qtdeclarative qtlocation qtquickcontrols2
+    qtwebchannel qtwebengine qtx11extras
+    qtxmlpatterns monero unbound readline
+    boost libunwind libsodium pcsclite zeromq
+    cppzmq makeWrapper hidapi
+  ];
+
+  patches = [
+    ./move-log-file.patch
+    ./move-translations-dir.patch
+  ];
+
+  postPatch = ''
+    echo '
+      var GUI_VERSION = "${version}";
+      var GUI_MONERO_VERSION = "${getVersion monero}";
+    ' > version.js
+    substituteInPlace monero-wallet-gui.pro \
+      --replace '$$[QT_INSTALL_BINS]/lrelease' '${getDev qttools}/bin/lrelease'
+    substituteInPlace src/daemon/DaemonManager.cpp \
+      --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin'
+  '';
+
+  makeFlags = [ "INSTALL_ROOT=$(out)" ];
+
+  preBuild = ''
+    sed -i s#/opt/monero-wallet-gui##g Makefile
+    make -C src/zxcvbn-c
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "monero-wallet-gui";
+    exec = "monero-wallet-gui";
+    icon = "monero";
+    desktopName = "Monero";
+    genericName = "Wallet";
+    categories  = "Application;Network;Utility;";
+  };
+
+  postInstall = ''
+    # install desktop entry
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+
+    # install translations
+    mkdir -p $out/share/translations
+    cp translations/*.qm $out/share/translations/
+
+    # install icons
+    for n in 16 24 32 48 64 96 128 256; do
+      size=$n"x"$n
+      mkdir -p $out/share/icons/hicolor/$size/apps
+      cp $src/images/appicons/$size.png \
+         $out/share/icons/hicolor/$size/apps/monero.png
+    done;
+  '';
+
+  meta = {
+    description = "Private, secure, untraceable currency";
+    homepage    = https://getmonero.org/;
+    license     = licenses.bsd3;
+    platforms   = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ rnhmjoj ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch
new file mode 100644
index 000000000000..74f817d81350
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-log-file.patch
@@ -0,0 +1,27 @@
+diff --git a/main.cpp b/main.cpp
+index 79223c0..e80b317 100644
+--- a/main.cpp
++++ b/main.cpp
+@@ -115,6 +115,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");
+     parser.addOption(logPathOption);
+     parser.addHelpOption();
+     parser.process(app);
+diff --git a/Logger.cpp b/Logger.cpp
+index 660bafc..dae24d4 100644
+--- a/Logger.cpp
++++ b/Logger.cpp
+@@ -15,7 +15,7 @@ static const QString default_name = "monero-wallet-gui.log";
+ #elif defined(Q_OS_MAC)
+     static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0) + "/Library/Logs";
+ #else // linux + bsd
+-    static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0);
++    static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::CacheLocation).at(0);
+ #endif
+ 
+ 
diff --git a/nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch
new file mode 100644
index 000000000000..ff17ce5da1c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/monero-gui/move-translations-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/TranslationManager.cpp b/TranslationManager.cpp
+index e7fc52a..83534cc 100644
+--- a/TranslationManager.cpp
++++ b/TranslationManager.cpp
+@@ -25,7 +25,7 @@ bool TranslationManager::setLanguage(const QString &language)
+         return true;
+     }
+ 
+-    QString dir = qApp->applicationDirPath() + "/translations";
++    QString dir = qApp->applicationDirPath() + "/../share/translations";
+     QString filename = "monero-core_" + language;
+ 
+     qDebug("%s: loading translation file '%s' from '%s'",
diff --git a/nixpkgs/pkgs/applications/altcoins/monero/default.nix b/nixpkgs/pkgs/applications/altcoins/monero/default.nix
new file mode 100644
index 000000000000..3a962458632e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/monero/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchgit
+, cmake, pkgconfig, git
+, boost, miniupnpc, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium, hidapi
+, CoreData, IOKit, PCSC
+}:
+
+assert stdenv.isDarwin -> IOKit != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name    = "monero-${version}";
+  version = "0.13.0.4";
+
+  src = fetchgit {
+    url    = "https://github.com/monero-project/monero.git";
+    rev    = "v${version}";
+    sha256 = "1ambgakapijhsi1pd70vw8vvnlwa3nid944lqkbfq3wl25lmc70d";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig git ];
+
+  buildInputs = [
+    boost miniupnpc openssl unbound
+    cppzmq zeromq pcsclite readline
+    libsodium hidapi
+  ] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DBUILD_GUI_DEPS=ON"
+    "-DReadline_ROOT_DIR=${readline.dev}"
+  ] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
+
+  hardeningDisable = [ "fortify" ];
+
+  meta = {
+    description = "Private, secure, untraceable currency";
+    homepage    = https://getmonero.org/;
+    license     = licenses.bsd3;
+    platforms   = platforms.all;
+    maintainers = with maintainers; [ ehmry rnhmjoj ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/namecoin.nix b/nixpkgs/pkgs/applications/altcoins/namecoin.nix
new file mode 100644
index 000000000000..93f9faf833a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/namecoin.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, libqrencode, hexdump
+, withGui }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  version = "nc0.15.99-name-tab-beta2";
+  name = "namecoin" + toString (optional (!withGui) "d") + "-" + version;
+
+  src = fetchFromGitHub {
+    owner = "namecoin";
+    repo = "namecoin-core";
+    rev = version;
+    sha256 = "1r0v0yvlazmidxp6xhapbdawqb8fhzrdp11d4an5vgxa208s6wdf";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkgconfig
+    hexdump
+  ];
+
+  buildInputs = [
+    openssl
+    boost
+    libevent
+    db4
+    miniupnpc
+    eject
+  ] ++ optionals withGui [
+    qt4
+    protobuf
+    libqrencode
+  ];
+
+  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; [ doublec AndersonTorres infinisil ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/nano-wallet/CMakeLists.txt.patch b/nixpkgs/pkgs/applications/altcoins/nano-wallet/CMakeLists.txt.patch
new file mode 100644
index 000000000000..5bbec1d39bea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/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/nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix b/nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix
new file mode 100644
index 000000000000..62e725928741
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/nano-wallet/default.nix
@@ -0,0 +1,57 @@
+{lib, stdenv, fetchFromGitHub, cmake, pkgconfig, boost, libGL, qtbase}:
+
+stdenv.mkDerivation rec {
+
+  name = "nano-wallet-${version}";
+  version = "16.3";
+
+  src = fetchFromGitHub {
+    owner = "nanocurrency";
+    repo = "raiblocks";
+    rev = "V${version}";
+    sha256 = "1rhq7qzfd8li33pmzcjxrhbbgdklxlcijam62s385f8yqjwy80dz";
+    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 ];
+  buildInputs = [ boost libGL qtbase ];
+
+  buildPhase = ''
+    make nano_wallet
+  '';
+
+  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/nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix b/nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix
new file mode 100644
index 000000000000..ec2e571e3f0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/parity-ui/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, pkgs, fetchurl, makeWrapper, nodePackages }:
+
+let
+
+uiEnv = pkgs.callPackage ./env.nix { };
+
+in stdenv.mkDerivation rec {
+  name = "parity-ui-${version}";
+  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 = "${name}.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" {} \;
+
+    paxmark m $out/share/parity-ui/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/nixpkgs/pkgs/applications/altcoins/parity-ui/env.nix b/nixpkgs/pkgs/applications/altcoins/parity-ui/env.nix
new file mode 100644
index 000000000000..625a008af917
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/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/nixpkgs/pkgs/applications/altcoins/parity/beta.nix b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix
new file mode 100644
index 000000000000..46985fd065e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix
@@ -0,0 +1,6 @@
+let
+  version     = "2.2.5";
+  sha256      = "0q9vgwc0jlja73r4na7yil624iagq1607ac47wh8a7xgfjmjjai1";
+  cargoSha256 = "0ibdmyh1jvfq51vhwn4riyhilqwhf71hjd4vyj525smn95p75b14";
+in
+  import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/nixpkgs/pkgs/applications/altcoins/parity/default.nix b/nixpkgs/pkgs/applications/altcoins/parity/default.nix
new file mode 100644
index 000000000000..81923849094f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/parity/default.nix
@@ -0,0 +1,6 @@
+let
+  version     = "2.1.10";
+  sha256      = "1l4yl8i24q8v4hzljzai37f587x8m3cz3byzifhvq3bjky7p8h80";
+  cargoSha256 = "04pni9cmz8nhlqznwafz9d81006808kh24aqnb8rjdcr84d11zis";
+in
+  import ./parity.nix { inherit version sha256 cargoSha256; }
diff --git a/nixpkgs/pkgs/applications/altcoins/parity/parity.nix b/nixpkgs/pkgs/applications/altcoins/parity/parity.nix
new file mode 100644
index 000000000000..9eb189f014e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/parity/parity.nix
@@ -0,0 +1,42 @@
+{ version
+, sha256
+, cargoSha256
+}:
+
+{ stdenv
+, fetchFromGitHub
+, rustPlatform 
+, pkgconfig
+, openssl
+, systemd
+, cmake
+, perl
+}:
+
+rustPlatform.buildRustPackage rec {
+  name = "parity-${version}";
+  inherit cargoSha256;
+
+  src = fetchFromGitHub {
+    owner = "paritytech";
+    repo = "parity-ethereum";
+    rev = "v${version}";
+    inherit sha256;
+  };
+
+  buildInputs = [
+    pkgconfig cmake perl
+    systemd.lib systemd.dev openssl openssl.dev
+  ];
+
+  # test result: FAILED. 80 passed; 12 failed; 0 ignored; 0 measured; 0 filtered out
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Fast, light, robust Ethereum implementation";
+    homepage = http://parity.io;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.akru ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/particl/particl-core.nix b/nixpkgs/pkgs/applications/altcoins/particl/particl-core.nix
new file mode 100644
index 000000000000..d3b20ef2ea36
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/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 {
+  name = "particl-core-${version}";
+  version = "0.17.0.2";
+
+  src = fetchurl {
+    url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
+    sha256 = "0bkxdayl0jrfhgz8qzqqpwzv0yavz3nwsn6c8k003jnbcw65fkhx";
+  };
+
+  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/nixpkgs/pkgs/applications/altcoins/polkadot/default.nix b/nixpkgs/pkgs/applications/altcoins/polkadot/default.nix
new file mode 100644
index 000000000000..6d4e0417cde7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/polkadot/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkgconfig
+, openssl
+}:
+
+rustPlatform.buildRustPackage rec {
+  name = "polkadot-${version}";
+  version = "0.2.17";
+
+  src = fetchFromGitHub {
+    owner = "paritytech";
+    repo = "substrate";
+    rev = "19f4f4d4df3bb266086b4e488739f73d3d5e588c";
+    sha256 = "0v7g03rbml2afw0splmyjh9nqpjg0ldjw09hyc0jqd3qlhgxiiyj";
+  }; 
+
+  cargoSha256 = "0wwkaxqj2v5zach5xcqfzf6prc0gxy2v47janglp44xbxbx9xk08";
+
+  buildInputs = [ pkgconfig openssl openssl.dev ];
+
+  meta = with stdenv.lib; {
+    description = "Polkadot Node Implementation";
+    homepage = http://polkadot.network;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.akru ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/stellar-core-dirty-version.patch b/nixpkgs/pkgs/applications/altcoins/stellar-core-dirty-version.patch
new file mode 100644
index 000000000000..57d66ce5919a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/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/nixpkgs/pkgs/applications/altcoins/stellar-core.nix b/nixpkgs/pkgs/applications/altcoins/stellar-core.nix
new file mode 100644
index 000000000000..4c3f9fe0760b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/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/nixpkgs/pkgs/applications/altcoins/sumokoin.nix b/nixpkgs/pkgs/applications/altcoins/sumokoin.nix
new file mode 100644
index 000000000000..026008b2761a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/sumokoin.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub, cmake, unbound, openssl, boost
+, libunwind, lmdb, miniupnpc }:
+
+stdenv.mkDerivation rec {
+  name = "sumokoin-${version}";
+  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 = "Sumokoin is 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/nixpkgs/pkgs/applications/altcoins/wownero.nix b/nixpkgs/pkgs/applications/altcoins/wownero.nix
new file mode 100644
index 000000000000..4b62ba759f36
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/wownero.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, git
+, boost, miniupnpc, openssl, unbound, cppzmq
+, zeromq, pcsclite, readline, libsodium
+, CoreData, IOKit, PCSC
+}:
+
+assert stdenv.isDarwin -> IOKit != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "wownero-${version}";
+
+  version = "0.4.0.0";
+  src = fetchFromGitHub {
+    owner = "wownero";
+    repo = "wownero";
+    fetchSubmodules = true;
+    rev    = "v${version}";
+    sha256 = "1z5fpl4gwys4v8ffrymlzwrbnrbg73x553a9lxwny7ba8yg2k14p";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig git ];
+
+  buildInputs = [
+    boost miniupnpc openssl unbound
+    cppzmq zeromq pcsclite readline libsodium
+  ] ++ optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
+
+  cmakeFlags = [
+    "-DReadline_ROOT_DIR=${readline.dev}"
+    "-DMANUAL_SUBMODULES=ON"
+  ] ++ optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
+
+  hardeningDisable = [ "fortify" ];
+
+  meta = {
+    description = "Wownero is a fork of the cryptocurrency Monero with primary alterations";
+    longDescription = ''
+      Wownero’s emission is capped and supply is finite. Wownero is a fairly
+      launched coin with no premine. It’s not a fork of another blockchain. With
+      its own genesis block there is no degradation of privacy caused by ring
+      signatures using different participants for the same transaction outputs.
+      Unlike opposing forks.
+    '';
+    homepage    = http://wownero.org/;
+    license     = licenses.bsd3;
+    platforms   = platforms.all;
+    maintainers = with maintainers; [ fuwa ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/zcash/default.nix b/nixpkgs/pkgs/applications/altcoins/zcash/default.nix
new file mode 100644
index 000000000000..6a8fba3c2bb7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/zcash/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, libsodium, fetchFromGitHub, wget, pkgconfig, autoreconfHook, openssl, db62, boost
+, zlib, gtest, gmock, callPackage, gmp, qt4, utillinux, protobuf, qrencode, libevent
+, withGui }:
+
+let librustzcash = callPackage ./librustzcash {};
+in
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+  name = "zcash" + (toString (optional (!withGui) "d")) + "-" + version;
+  version = "1.0.13";
+
+  src = fetchFromGitHub {
+    owner = "zcash";
+    repo  = "zcash";
+    rev = "v${version}";
+    sha256 = "05y7wxs66anxr5akbf05r36mmjfzqpwawn6vyh3jhpva51hzzzyz";
+  };
+
+  # Dependencies are underspecified: "make -C src gtest/zcash_gtest-test_merkletree.o"
+  # fails with "fatal error: test/data/merkle_roots.json.h: No such file or directory"
+  enableParallelBuilding = false;
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ gtest gmock gmp openssl wget db62 boost zlib
+                  protobuf libevent libsodium librustzcash ]
+                  ++ optionals stdenv.isLinux [ utillinux ]
+                  ++ optionals withGui [ qt4 qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib"
+                   ] ++ optionals withGui [ "--with-gui=qt4" ];
+
+  patchPhase = ''
+    sed -i"" 's,-lboost_system-mt,-lboost_system,' configure.ac
+    sed -i"" 's,-fvisibility=hidden,,g'            src/Makefile.am
+  '';
+
+  postInstall = ''
+    cp zcutil/fetch-params.sh $out/bin/zcash-fetch-params
+  '';
+
+  meta = {
+    description = "Peer-to-peer, anonymous electronic cash system";
+    homepage = https://z.cash/;
+    maintainers = with maintainers; [ rht ];
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/altcoins/zcash/librustzcash/default.nix b/nixpkgs/pkgs/applications/altcoins/zcash/librustzcash/default.nix
new file mode 100644
index 000000000000..b89582c09e60
--- /dev/null
+++ b/nixpkgs/pkgs/applications/altcoins/zcash/librustzcash/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  name = "librustzcash-unstable-${version}";
+  version = "2017-03-17";
+
+  src = fetchFromGitHub {
+    owner = "zcash";
+    repo = "librustzcash";
+    rev = "91348647a86201a9482ad4ad68398152dc3d635e";
+    sha256 = "02l1f46frpvw1r6k1wfh77mrsnmsdvifqx0vnscxz4xgb9ia9d1c";
+  };
+
+  cargoSha256 = "1b0kal53ggcr59hbrsdj8fifjycahrmzwq677n9h3fywv4r237m6";
+
+  installPhase = ''
+    mkdir -p $out/lib
+    cp target/release/librustzcash.a $out/lib/
+    mkdir -p $out/include
+    cp include/librustzcash.h $out/include/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Rust-language assets for Zcash";
+    homepage = https://github.com/zcash/librustzcash;
+    maintainers = with maintainers; [ rht ];
+    license = with licenses; [ mit asl20 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/AMB-plugins/default.nix b/nixpkgs/pkgs/applications/audio/AMB-plugins/default.nix
new file mode 100644
index 000000000000..3ea7b90f84a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/AMB-plugins/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, ladspaH
+}:
+
+stdenv.mkDerivation rec {
+  name = "AMB-plugins-${version}";
+  version = "0.8.1";
+  src = fetchurl {
+    url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.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/nixpkgs/pkgs/applications/audio/FIL-plugins/default.nix b/nixpkgs/pkgs/applications/audio/FIL-plugins/default.nix
new file mode 100644
index 000000000000..b9322c37df00
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/FIL-plugins/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ladspaH
+}:
+
+stdenv.mkDerivation rec {
+  name = "FIL-plugins-${version}";
+  version = "0.3.0";
+  src = fetchurl {
+    url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.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/nixpkgs/pkgs/applications/audio/MMA/default.nix b/nixpkgs/pkgs/applications/audio/MMA/default.nix
new file mode 100644
index 000000000000..ed7a8481f693
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/MMA/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchurl, makeWrapper, python3, alsaUtils, timidity }:
+
+  stdenv.mkDerivation rec {
+  version = "16.06";
+  name = "mma-${version}";
+
+  src = fetchurl {
+    url = "https://www.mellowood.ca/mma/mma-bin-${version}.tar.gz";
+    sha256 = "1g4gvc0nr0qjc0fyqrnx037zpaasgymgmrm5s7cdxqnld9wqw8ww";
+  };
+
+  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'
+  '';
+
+  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 =  http://www.mellowood.ca/mma/index.html;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix b/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
new file mode 100644
index 000000000000..f443aec43ddb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, alsaLib, dbus, libjack2
+, wafHook
+, python2Packages}:
+
+let
+  inherit (python2Packages) python dbus-python;
+in stdenv.mkDerivation rec {
+  name = "a2jmidid-${version}";
+  version = "8";
+
+  src = fetchurl {
+    url = "https://repo.or.cz/a2jmidid.git/snapshot/7383d268c4bfe85df9f10df6351677659211d1ca.tar.gz";
+    sha256 = "06dgf5655znbvrd7fhrv8msv6zw8vk0hjqglcqkh90960mnnmwz7";
+  };
+
+  nativeBuildInputs = [ pkgconfig makeWrapper wafHook ];
+  buildInputs = [ alsaLib dbus libjack2 python dbus-python ];
+
+  postInstall = ''
+    wrapProgram $out/bin/a2j_control --set PYTHONPATH $PYTHONPATH
+  '';
+
+  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" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/aacgain/default.nix b/nixpkgs/pkgs/applications/audio/aacgain/default.nix
new file mode 100644
index 000000000000..32ae107ed9cb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/aacgain/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchFromGitHub, fetchpatch }:
+
+stdenv.mkDerivation {
+  name = "aacgain-1.9.0";
+
+  src = fetchFromGitHub {
+    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://github.com/mulx/aacgain;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.robbinch ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/abcde/default.nix b/nixpkgs/pkgs/applications/audio/abcde/default.nix
new file mode 100644
index 000000000000..58e8ecc4fcab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/abcde/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, libcdio-paranoia, cddiscid, wget, which, vorbis-tools, id3v2, eyeD3
+, lame, flac, glyr
+, perl, MusicBrainz, MusicBrainzDiscID
+, makeWrapper }:
+
+let version = "2.9.2";
+in
+  stdenv.mkDerivation {
+    name = "abcde-${version}";
+    src = fetchurl {
+      url = "https://abcde.einval.com/download/abcde-${version}.tar.gz";
+      sha256 = "13c5yvp87ckqgha160ym5rdr1a4divgvyqbjh0yb6ffclip6qd9l";
+    };
+
+    # 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 = [ 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/nixpkgs/pkgs/applications/audio/aeolus/default.nix b/nixpkgs/pkgs/applications/audio/aeolus/default.nix
new file mode 100644
index 000000000000..7b80b32331bc
--- /dev/null
+++ b/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 {
+  name = "aeolus-${version}";
+  version = "0.9.7";
+
+  src = fetchurl {
+    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
+    sha256 = "0lhbr95hmbfj8ynbcpawn7jzjbpvrkm6k2yda39yhqk1bzg38v2k";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/airwave/default.nix b/nixpkgs/pkgs/applications/audio/airwave/default.nix
new file mode 100644
index 000000000000..737e73421c9b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/airwave/default.nix
@@ -0,0 +1,91 @@
+{ 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";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix b/nixpkgs/pkgs/applications/audio/aj-snapshot/default.nix
new file mode 100644
index 000000000000..f84958e1f820
--- /dev/null
+++ b/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.8";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${packageName}/${name}.tar.bz2";
+    sha256 = "0wilky1g2mb88v2z0520s7sw1dsn10iwanc8id5p6z1xsnhg7b6p";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/amarok/default.nix b/nixpkgs/pkgs/applications/audio/amarok/default.nix
new file mode 100644
index 000000000000..855d31aadbb0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/amarok/default.nix
@@ -0,0 +1,42 @@
+{ 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, gdk_pixbuf, libaio, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
+}:
+
+let
+  pname = "amarok";
+  version = "2.9.0-20180618";
+
+in mkDerivation {
+  name = "${pname}-${version}";
+
+  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    = git://anongit.kde.org/amarok.git;
+    # url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    rev    = "5d43efa454b6a6c9c833a6f3d7f8ff3cae738c96";
+    sha256 = "0fyrbgldg4wbb2darm4aav5fpzbacxzfjrdqwkhv9xr13j7zsvm3";
+  };
+
+  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 gdk_pixbuf libaio libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
+    pcre snappy taglib taglib_extras
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ams-lv2/default.nix b/nixpkgs/pkgs/applications/audio/ams-lv2/default.nix
new file mode 100644
index 000000000000..7383623a5ff1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ams-lv2/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkgconfig, python3
+, wafHook }:
+
+stdenv.mkDerivation  rec {
+  name = "ams-lv2-${version}";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "blablack";
+    repo = "ams-lv2";
+    rev = version;
+    sha256 = "1n1dnqnj24xhiy9323lj52nswr5120cj56fpckg802miss05sr6x";
+  };
+
+  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 = http://objectivewave.wordpress.com/ams-lv2;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.linux;
+    # Build uses `-msse` and `-mfpmath=sse`
+    badPlatforms = [ "aarch64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ardour/default.nix b/nixpkgs/pkgs/applications/audio/ardour/default.nix
new file mode 100644
index 000000000000..1bb1e404b5c4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ardour/default.nix
@@ -0,0 +1,91 @@
+{ stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, doxygen
+, fftwSinglePrec, flac, glibc, glibmm, graphviz, gtkmm2, libjack2
+, libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf
+, librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
+, libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper
+, perl, pkgconfig, python2, rubberband, serd, sord, sratom
+, taglib, vampSDK, 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 {
+  name = "ardour-${tag}";
+
+  src = fetchgit {
+    url = "git://git.ardour.org/ardour/ardour.git";
+    rev = "ae0dcdc0c5d13483271065c360e378202d20170a";
+    sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr";
+  };
+
+  nativeBuildInputs = [ wafHook ];
+  buildInputs =
+    [ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac
+      glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo
+      libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
+      libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2
+      makeWrapper pango perl pkgconfig python2 rubberband serd sord
+      sratom suil taglib vampSDK libarchive
+    ];
+
+  # 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.
+  patchPhase = ''
+    printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-${builtins.substring 0 8 src.rev}\"; }\n' > libs/ardour/revision.cc
+    sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
+    patchShebangs ./tools/
+  '';
+
+  configureFlags = [
+    "--optimize"
+    "--docs"
+    "--with-backends=jack,alsa,dummy"
+  ];
+
+  postInstall = ''
+    # Install desktop file
+    mkdir -p "$out/share/applications"
+    cat > "$out/share/applications/ardour.desktop" << EOF
+    [Desktop Entry]
+    Name=Ardour 5
+    GenericName=Digital Audio Workstation
+    Comment=Multitrack harddisk recorder
+    Exec=$out/bin/ardour5
+    Icon=$out/share/ardour5/resources/Ardour-icon_256px.png
+    Terminal=false
+    Type=Application
+    X-MultipleArgs=false
+    Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
+    EOF
+  '';
+
+  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/node/8288
+    '';
+    homepage = http://ardour.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu maintainers.fps ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ario/default.nix b/nixpkgs/pkgs/applications/audio/ario/default.nix
new file mode 100644
index 000000000000..02d818410df4
--- /dev/null
+++ b/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";
+  name = "ario-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ario-player/${name}.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/nixpkgs/pkgs/applications/audio/artyFX/default.nix b/nixpkgs/pkgs/applications/audio/artyFX/default.nix
new file mode 100644
index 000000000000..91a0a1f140c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/artyFX/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub , cairomm, cmake, libjack2, libpthreadstubs, libXdmcp, libxshmfence, libsndfile, lv2, ntk, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "artyFX-${version}";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "openAVproductions";
+    repo = "openAV-ArtyFX";
+    rev = "release-${version}";
+    sha256 = "012hcy1mxl7gs2lipfcqp5x0xv1azb9hjrwf0h59yyxnzx96h7c9";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/asunder/default.nix b/nixpkgs/pkgs/applications/audio/asunder/default.nix
new file mode 100644
index 000000000000..9c42c98ba5e3
--- /dev/null
+++ b/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.3";
+  name = "asunder-${version}";
+  src = fetchurl {
+    url = "http://littlesvr.ca/asunder/releases/${name}.tar.bz2";
+    sha256 = "1630i1df06y840v3fgdf75jxw1s8kwbfn5bhi0686viah0scccw5";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 libcddb intltool makeWrapper ];
+
+  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/nixpkgs/pkgs/applications/audio/audacious/default.nix b/nixpkgs/pkgs/applications/audio/audacious/default.nix
new file mode 100644
index 000000000000..19cb55d93c98
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/audacious/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchurl, pkgconfig, wrapGAppsHook, gettext, glib, gtk3
+, libmowgli, dbus-glib, libxml2, xorg, gnome3, alsaLib
+, libpulseaudio, libjack2, fluidsynth, libmad, libogg, libvorbis
+, libcdio, libcddb, flac, ffmpeg, mpg123, libcue, libmms, libbs2b
+, libsndfile, libmodplug, libsamplerate, soxr, lirc, curl, wavpack
+, neon, faad2, lame, libnotify, libsidplayfp
+}:
+
+stdenv.mkDerivation rec {
+  name = "audacious-${version}";
+  version = "3.9";
+
+  src = fetchurl {
+    url = "https://distfiles.audacious-media-player.org/audacious-${version}-gtk3.tar.bz2";
+    sha256 = "0dc7fg0v2l2j4h9cz1baz7rf4n0a5jgk09qvsj806sh6jp7w6ipm";
+  };
+
+  pluginsSrc = fetchurl {
+    url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}-gtk3.tar.bz2";
+    sha256 = "1gck37c5pnzxdhrnb1g75b5hi31s2dc952wifxns45pkdlayrmra";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gettext glib gtk3 libmowgli dbus-glib libxml2
+    xorg.libXcomposite gnome3.defaultIconTheme alsaLib libjack2
+    libpulseaudio fluidsynth libmad libogg libvorbis libcdio
+    libcddb flac ffmpeg mpg123 libcue libmms libbs2b libsndfile
+    libmodplug libsamplerate soxr lirc curl wavpack neon faad2
+    lame libnotify libsidplayfp
+  ];
+
+  configureFlags = [ "--enable-statusicon" ];
+
+  # 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.
+    (
+      dontWrapGApps=true
+      nativeBuildInputs="$out $nativeBuildInputs" # to find audacious
+      source $stdenv/setup
+      rm -rfv audacious-*
+      src=$pluginsSrc
+      genericBuild
+    )
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Audio player";
+    homepage = https://audacious-media-player.org/;
+    maintainers = with maintainers; [ eelco ramkromberg ];
+    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/nixpkgs/pkgs/applications/audio/audacious/qt-5.nix b/nixpkgs/pkgs/applications/audio/audacious/qt-5.nix
new file mode 100644
index 000000000000..019bde7cc64a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/audacious/qt-5.nix
@@ -0,0 +1,92 @@
+{
+  mkDerivation, lib, fetchurl, fetchpatch,
+  gettext, pkgconfig,
+  qtbase,
+  alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk_pixbuf, lame, libbs2b,
+  libcddb, libcdio, libcue, libjack2, libmad, libmms, libmodplug,
+  libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
+  libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
+  wavpack
+}:
+
+let
+  version = "3.9";
+  sources = {
+    "audacious-${version}" = fetchurl {
+      url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
+      sha256 = "0pmhrhsjhqnrq3zh4rhfys5jas53ph5ijkq010dxg1n779kl901d";
+    };
+
+    "audacious-plugins-${version}" = fetchurl {
+      url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
+      sha256 = "1f17r7ar0mngcf7z41s6xh073vjafw3i7iy9ijb0cd6bi48g5xwb";
+    };
+  };
+
+  qt510_plugins_patch = fetchpatch {
+    url = "https://github.com/audacious-media-player/audacious-plugins/commit/971f7ff7c3d8a0b9b420bf4fd19ab97755607637.patch";
+    sha256 = "15fy37syj9ygl2ibkkz3g3b9wd22vk9bjfmvqhhkpxphry2zwb17";
+  };
+in
+
+mkDerivation {
+  inherit version;
+  name = "audacious-qt5-${version}";
+
+  sourceFiles = lib.attrValues sources;
+  sourceRoots = lib.attrNames sources;
+
+  nativeBuildInputs = [ gettext pkgconfig ];
+
+  inherit qt510_plugins_patch;
+
+  buildInputs = [
+    # Core dependencies
+    qtbase
+
+    # Plugin dependencies
+    alsaLib curl faad2 ffmpeg flac fluidsynth gdk_pixbuf lame libbs2b libcddb
+    libcdio libcue libjack2 libmad libmms libmodplug libmowgli
+    libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
+    libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
+  ];
+
+  configureFlags = [ "--enable-qt" "--disable-gtk" ];
+
+  # 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" ''
+    sourceFiles=( $sourceFiles )
+    sourceRoots=( $sourceRoots )
+    for (( i=0 ; i < ''${#sourceFiles[*]} ; i++ )); do
+
+      (
+        # only patch the plugins
+        if [ "$i" -eq "1" ]; then
+          patches=( $qt510_plugins_patch )
+        fi
+        src=''${sourceFiles[$i]}
+        sourceRoot=''${sourceRoots[$i]}
+        source $stdenv/setup
+        genericBuild
+      )
+
+      if [ $i == 0 ]; then
+        nativeBuildInputs="$out $nativeBuildInputs"
+      fi
+
+    done
+  '';
+
+  meta = with lib; {
+    description = "Audio player";
+    homepage = https://audacious-media-player.org/;
+    maintainers = with maintainers; [ 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/nixpkgs/pkgs/applications/audio/audacity/default.nix b/nixpkgs/pkgs/applications/audio/audacity/default.nix
new file mode 100644
index 000000000000..fc32eb799cf9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/audacity/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchurl, wxGTK30, pkgconfig, file, gettext, gtk2,
+  libvorbis, libmad, libjack2, lv2, lilv, serd, sord, sratom, suil, alsaLib, libsndfile, soxr, flac, lame,
+  expat, libid3tag, ffmpeg, soundtouch, /*, portaudio - given up fighting their portaudio.patch */
+  autoconf, automake, libtool
+  }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "2.3.0";
+  name = "audacity-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
+    sha256 = "0pi7ksm8hfvwbn580z4kkc55sbaylrrr7v08s04dmdgfvil7y4ip";
+  };
+
+  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 = [
+    # LAME
+    "-lmp3lame"
+    # ffmpeg
+    "-lavcodec"
+    "-lavdevice"
+    "-lavfilter"
+    "-lavformat"
+    "-lavresample"
+    "-lavutil"
+    "-lpostproc"
+    "-lswresample"
+    "-lswscale"
+  ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    file gettext wxGTK30 expat alsaLib
+    libsndfile soxr libid3tag libjack2 lv2 lilv serd sord sratom suil gtk2
+    ffmpeg libmad lame libvorbis flac soundtouch
+    autoconf automake libtool # for the preConfigure phase
+  ]; #ToDo: detach sbsms
+
+  enableParallelBuilding = true;
+
+  dontDisableStatic = true;
+  doCheck = false; # Test fails
+
+  meta = with stdenv.lib; {
+    description = "Sound editor with graphical UI";
+    homepage = http://audacityteam.org/;
+    license = licenses.gpl2Plus;
+    platforms = with platforms; linux;
+    maintainers = with maintainers; [ the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix b/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix
new file mode 100644
index 000000000000..2ac7e3af7ab2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl
+, pkgconfig, intltool, gnome3
+, glib, dbus, gtk3, libappindicator-gtk3, gst_all_1
+, librsvg, wrapGAppsHook
+, pulseaudioSupport ? true, libpulseaudio ? null }:
+
+stdenv.mkDerivation rec {
+  name = "audio-recorder-${version}";
+  version = "2.1.3";
+
+  src = fetchurl {
+    name = "${name}.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${gnome3.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/nixpkgs/pkgs/applications/audio/aumix/default.nix b/nixpkgs/pkgs/applications/audio/aumix/default.nix
new file mode 100644
index 000000000000..db5f081c4ed4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/avldrums-lv2/default.nix b/nixpkgs/pkgs/applications/audio/avldrums-lv2/default.nix
new file mode 100644
index 000000000000..75b6d8e27580
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/avldrums-lv2/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pkgconfig, pango, cairo, libGLU, lv2 }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "avldrums.lv2";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "x42";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yhq3n5bahhqpj40mvlkxcjsdsw63jsbz20pl77bx2qj30w25i2j";
+    fetchSubmodules = true;
+  };
+
+  installFlags = "PREFIX=$(out)";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    pango cairo libGLU lv2
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Dedicated AVLDrumkits LV2 Plugin";
+    homepage    = http://x42-plugins.com/x42/x42-avldrums;
+    license     = licenses.gpl2;
+    maintainers = [ maintainers.magnetophon ];
+    platforms   = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/axoloti/default.nix b/nixpkgs/pkgs/applications/audio/axoloti/default.nix
new file mode 100644
index 000000000000..e3f1b6acf874
--- /dev/null
+++ b/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";
+  name = "axoloti-${version}";
+
+  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/nixpkgs/pkgs/applications/audio/axoloti/dfu-util.nix b/nixpkgs/pkgs/applications/audio/axoloti/dfu-util.nix
new file mode 100644
index 000000000000..07a78260991f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/axoloti/dfu-util.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, libusb1-axoloti }:
+
+stdenv.mkDerivation rec {
+  name="dfu-util-${version}";
+  version = "0.8";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libusb1-axoloti ];
+
+  src = fetchurl {
+    url = "http://dfu-util.sourceforge.net/releases/${name}.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/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix b/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix
new file mode 100644
index 000000000000..1a6ebd346cca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix
@@ -0,0 +1,38 @@
+{ stdenv, 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${systemd.lib}/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/nixpkgs/pkgs/applications/audio/baudline/default.nix b/nixpkgs/pkgs/applications/audio/baudline/default.nix
new file mode 100644
index 000000000000..6827d12b3217
--- /dev/null
+++ b/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 {
+  name = "baudline-${version}";
+  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/nixpkgs/pkgs/applications/audio/beast/default.nix b/nixpkgs/pkgs/applications/audio/beast/default.nix
new file mode 100644
index 000000000000..29cecb169998
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/beast/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, zlib, guile, libart_lgpl, pkgconfig, intltool
+, gtk2, glib, libogg, libvorbis, libgnomecanvas, gettext, perl }:
+
+stdenv.mkDerivation rec {
+  name = "beast-0.7.1";
+
+  src = fetchurl {
+    url = "https://ftp.gtk.org/pub/beast/v0.7/${name}.tar.bz2";
+    sha256 = "0jyl1i1918rsn4296w07fsf6wx3clvad522m3bzgf8ms7gxivg5l";
+  };
+
+  buildInputs =
+    [ zlib guile libart_lgpl pkgconfig intltool gtk2 glib
+      libogg libvorbis libgnomecanvas gettext
+    ];
+
+  patchPhase = ''
+    unset patchPhase; patchPhase
+    sed 's=-DG_DISABLE_DEPRECATED==g' -i `find -type f` # the patches didn't remove all occurences
+    sed 's=/bin/bash=/${stdenv.shell}=g' -i `find -type f`
+    sed 's=/usr/bin/perl=/${perl}/bin/perl=g' -i `find -type f`
+  '';
+
+  patches =
+    [ (fetchurl {
+        url = mirror://gentoo/distfiles/beast-0.7.1-guile-1.8.diff.bz2;
+        sha256 = "dc5194deff4b0a0eec368a69090db682d0c3113044ce2c2ed017ddfec9d3814e";
+      })
+      ./patch.patch # patches taken from gentoo
+    ];
+
+  meta = with stdenv.lib; {
+    description = "A music composition and modular synthesis application";
+    homepage = http://beast.gtk.org;
+    license = with licenses; [ gpl2 lgpl21 ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/beast/patch.patch b/nixpkgs/pkgs/applications/audio/beast/patch.patch
new file mode 100644
index 000000000000..9d9f82cf4b4b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/bitmeter/default.nix b/nixpkgs/pkgs/applications/audio/bitmeter/default.nix
new file mode 100644
index 000000000000..5f3229dc157c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/bitmeter/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libjack2, gtk2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "bitmeter-${version}";
+  version = "1.2";
+
+  src = fetchurl {
+    url = "https://devel.tlrmx.org/audio/source/${name}.tar.gz";
+    sha256 = "09ck2gxqky701dc1p0ip61rrn16v0pdc7ih2hc2sd63zcw53g2a7";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libjack2 gtk2 ];
+
+  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/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
new file mode 100644
index 000000000000..8b26ba0959d4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio1.nix
@@ -0,0 +1,100 @@
+{ stdenv, fetchurl, alsaLib, bzip2, cairo, dpkg, freetype, gdk_pixbuf
+, glib, gtk2, harfbuzz, jdk, lib, xorg
+, libbsd, libjack2, libpng
+, libxkbcommon
+, makeWrapper, pixman
+, xdg_utils, zenity, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "bitwig-studio-${version}";
+  version = "1.3.16";
+
+  src = fetchurl {
+    url    = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
+    sha256 = "0n0fxh9gnmilwskjcayvjsjfcs3fz9hn00wh7b3gg0cv3qqhich8";
+  };
+
+  nativeBuildInputs = [ dpkg makeWrapper ];
+
+  unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
+
+  dontBuild    = true;
+  dontPatchELF = true;
+  dontStrip    = true;
+
+  libPath = with xorg; lib.makeLibraryPath [
+    alsaLib bzip2.out cairo freetype gdk_pixbuf glib gtk2 harfbuzz libX11 libXau
+    libXcursor libXdmcp libXext libXfixes libXrender libbsd libjack2 libpng libxcb
+    libxkbfile pixman xcbutil xcbutilwm zlib
+  ];
+
+  binPath = lib.makeBinPath [
+    xdg_utils zenity
+  ];
+
+  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
+
+    # 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
+      patchelf \
+        --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+        $f && \
+      wrapProgram $f \
+        --prefix PATH : "${binPath}" \
+        --prefix LD_LIBRARY_PATH : "${libPath}" \
+        --set LD_PRELOAD "${libxkbcommon.out}/lib/libxkbcommon.so" || true
+    done
+
+    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
+  '';
+
+  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 = http://www.bitwig.com/;
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ michalrus mrVanDalo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix
new file mode 100644
index 000000000000..829bb4c67caa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio2.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, bitwig-studio1,
+  xdg_utils, zenity, ffmpeg }:
+
+bitwig-studio1.overrideAttrs (oldAttrs: rec {
+  name = "bitwig-studio-${version}";
+  version = "2.3.5";
+
+  src = fetchurl {
+    url    = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
+    sha256 = "1v62z08hqla8fz5m7hl9ynf2hpr0j0arm0nb5lpd99qrv36ibrsc";
+  };
+
+  buildInputs = bitwig-studio1.buildInputs ++ [ ffmpeg ];
+
+  binPath = stdenv.lib.makeBinPath [
+    ffmpeg xdg_utils zenity
+  ];
+})
diff --git a/nixpkgs/pkgs/applications/audio/bristol/default.nix b/nixpkgs/pkgs/applications/audio/bristol/default.nix
new file mode 100644
index 000000000000..42e99fa51863
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/bristol/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, alsaLib, libjack2, pkgconfig, libpulseaudio, xorg }:
+
+stdenv.mkDerivation  rec {
+  name = "bristol-${version}";
+  version = "0.60.11";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/bristol/${name}.tar.gz";
+    sha256 = "1fi2m4gmvxdi260821y09lxsimq82yv4k5bbgk3kyc3x1nyhn7vx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    alsaLib libjack2 libpulseaudio xorg.libX11 xorg.libXext
+    xorg.xproto
+  ];
+
+  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/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix b/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix
new file mode 100644
index 000000000000..44296d3c8b99
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, ffmpeg, sox }:
+
+stdenv.mkDerivation rec {
+  name = "bs1770gain-${version}";
+  version = "0.5.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/bs1770gain/${name}.tar.gz";
+    sha256 = "0r4fbajgfmnwgl63hcm56f1j8m5f135q6j5jkzdvrrhpcj39yx06";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/cadence/default.nix b/nixpkgs/pkgs/applications/audio/cadence/default.nix
new file mode 100644
index 000000000000..f7fa9dbd8615
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/cadence/default.nix
@@ -0,0 +1,81 @@
+{ stdenv
+, fetchzip
+, pkgconfig
+, qtbase
+, makeWrapper
+, jack2Full
+, python3Packages
+, a2jmidid
+}:
+
+ stdenv.mkDerivation rec {
+  version = "0.9.0";
+  pname = "cadence";
+
+  src = fetchzip {
+    url = "https://github.com/falkTX/Cadence/archive/v${version}.tar.gz";
+    sha256 = "08vcggypkdfr70v49innahs5s11hi222dhhnm5wcqzdgksphqzwx";
+  };
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+  buildInputs = [ qtbase ];
+
+  makeFlags = ''
+    PREFIX=""
+    DESTDIR=$(out)
+  '';
+
+  propagatedBuildInputs = with python3Packages; [ pyqt5 ];
+
+  postInstall = ''
+    # replace with our own wrappers. They need to be changed manually since it wouldn't work otherwise
+    rm $out/bin/cadence
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/cadence.py"
+    rm $out/bin/claudia
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/claudia \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/claudia.py"
+    rm $out/bin/catarina
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/catarina \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/catarina.py"
+    rm $out/bin/catia
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/catia \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/catia.py"
+    rm $out/bin/cadence-jacksettings
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-jacksettings \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/jacksettings.py"
+    rm $out/bin/cadence-aloop-daemon
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-aloop-daemon \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/cadence_aloop_daemon.py"
+    rm $out/bin/cadence-logs
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-logs \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/logs.py"
+    rm $out/bin/cadence-render
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-render \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/render.py"
+    rm $out/bin/claudia-launcher
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/claudia-launcher \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/claudia_launcher.py"
+    rm $out/bin/cadence-session-start
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/cadence-session-start \
+      --set PYTHONPATH "$PYTHONPATH:$out/share/cadence" \
+      --add-flags "-O $out/share/cadence/src/cadence_session_start.py"
+  '';
+
+  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; [ genesis ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/calf/default.nix b/nixpkgs/pkgs/applications/audio/calf/default.nix
new file mode 100644
index 000000000000..94b43fc544ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/calf/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, fetchpatch, cairo, expat, fftwSinglePrec, fluidsynth, glib
+, gtk2, libjack2, ladspaH , libglade, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "calf-${version}";
+  version = "0.90.0";
+
+  src = fetchurl {
+    url = "https://calf-studio-gear.org/files/${name}.tar.gz";
+    sha256 = "0dijv2j7vlp76l10s4v8gbav26ibaqk8s24ci74vrc398xy00cib";
+  };
+
+  patches = [
+    # Fix memory leak in limiter
+    # https://github.com/flathub/com.github.wwmm.pulseeffects/issues/12
+    (fetchpatch {
+      url = https://github.com/calf-studio-gear/calf/commit/7afdefc0d0489a6227fd10f15843d81dc82afd62.patch;
+      sha256 = "056662iw6hp4ykwk4jyrzg5yarcn17ni97yc060y5kcnzy29ddg6";
+    })
+  ];
+
+  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/nixpkgs/pkgs/applications/audio/cantata/default.nix b/nixpkgs/pkgs/applications/audio/cantata/default.nix
new file mode 100644
index 000000000000..e379072b7e76
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/cantata/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, pkgconfig, vlc
+, qtbase, qtmultimedia, qtsvg, qttools
+
+# 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
+, withReplaygain ? true, ffmpeg, speex, mpg123
+, withMtp ? true, libmtp
+, withOnlineServices ? true
+, withDevices ? true, udisks2
+, withDynamic ? true
+, withHttpServer ? true
+, 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;
+
+let
+  version = "2.3.2";
+  pname = "cantata";
+  fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF");
+  fstats = x: map (fstat x);
+
+  withUdisks = (withTaglib && withDevices);
+
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "CDrummond";
+    repo   = "cantata";
+    rev    = "v${version}";
+    sha256 = "11hjday5vj0wzkc8yb5wbs05jwa8mvgxswd5qvhpci0zkl975yzn";
+  };
+
+  buildInputs = [ vlc qtbase qtmultimedia qtsvg ]
+    ++ stdenv.lib.optionals withTaglib [ taglib taglib_extras ]
+    ++ stdenv.lib.optionals withReplaygain [ ffmpeg speex mpg123 ]
+    ++ stdenv.lib.optional  withCdda cdparanoia
+    ++ stdenv.lib.optional  withCddb libcddb
+    ++ stdenv.lib.optional  withLame lame
+    ++ stdenv.lib.optional  withMtp libmtp
+    ++ stdenv.lib.optional  withMusicbrainz libmusicbrainz5
+    ++ stdenv.lib.optional  withUdisks udisks2;
+
+  nativeBuildInputs = [ cmake pkgconfig qttools ];
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = stdenv.lib.flatten [
+    (fstats withTaglib        [ "TAGLIB" "TAGLIB_EXTRAS" ])
+    (fstats withReplaygain    [ "FFMPEG" "MPG123" "SPEEXDSP" ])
+    (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 withStreams        "STREAMS")
+    (fstat withUdisks         "UDISKS2")
+    "-DENABLE_HTTPS_SUPPORT=ON"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage    = https://github.com/cdrummond/cantata;
+    description = "A graphical client for MPD";
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ fuuzetsu 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/nixpkgs/pkgs/applications/audio/caps/default.nix b/nixpkgs/pkgs/applications/audio/caps/default.nix
new file mode 100644
index 000000000000..1f53809e9059
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/caps/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+  name = "caps-${version}";
+  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/nixpkgs/pkgs/applications/audio/caudec/default.nix b/nixpkgs/pkgs/applications/audio/caudec/default.nix
new file mode 100644
index 000000000000..04f0f9d30259
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/caudec/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, makeWrapper, bash, bc, findutils, flac, lame, opusTools, procps, sox }:
+
+let
+  version = "1.7.5";
+in
+
+stdenv.mkDerivation rec {
+  name = "caudec-${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/nixpkgs/pkgs/applications/audio/cava/default.nix b/nixpkgs/pkgs/applications/audio/cava/default.nix
new file mode 100644
index 000000000000..439175b090a8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/cava/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, alsaLib, fftw,
+  libpulseaudio, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "cava-${version}";
+  version = "0.6.1";
+
+  buildInputs = [
+    alsaLib
+    fftw
+    libpulseaudio
+    ncurses
+  ];
+
+  src = fetchFromGitHub {
+    owner = "karlstav";
+    repo = "cava";
+    rev = version;
+    sha256 = "1kvhqgijs29909w3sq9m0bslx2zxxn4b3i07kdz4hb0dqkppxpjy";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/cd-discid/default.nix b/nixpkgs/pkgs/applications/audio/cd-discid/default.nix
new file mode 100644
index 000000000000..382d4a1b6675
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/cd-discid/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv
+, IOKit ? null }:
+
+stdenv.mkDerivation rec {
+  name = "cd-discid-${version}";
+  version = "1.4";
+
+  src = fetchurl {
+    url = "http://linukz.org/download/${name}.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/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix b/nixpkgs/pkgs/applications/audio/cdparanoia/default.nix
new file mode 100644
index 000000000000..c419d141d1ba
--- /dev/null
+++ b/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];
+
+  buildInputs = stdenv.lib.optional stdenv.isAarch64 autoreconfHook;
+
+  propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [
+    Carbon
+    IOKit
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  preConfigure = "unset CC" + stdenv.lib.optionalString stdenv.isAarch64 ''\n
+    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/nixpkgs/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch b/nixpkgs/pkgs/applications/audio/cdparanoia/fix_private_keyword.patch
new file mode 100644
index 000000000000..3e9cbe2bd8c2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/cdparanoia/utils.patch b/nixpkgs/pkgs/applications/audio/cdparanoia/utils.patch
new file mode 100644
index 000000000000..338e5303dcd0
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/chuck/clang.patch b/nixpkgs/pkgs/applications/audio/chuck/clang.patch
new file mode 100644
index 000000000000..77227ef0fd44
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/chuck/clang.patch
@@ -0,0 +1,58 @@
+diff --git a/src/ugen_osc.cpp b/src/ugen_osc.cpp
+index 6b93c6b..dbefe4f 100644
+--- a/src/ugen_osc.cpp
++++ b/src/ugen_osc.cpp
+@@ -1232,7 +1232,7 @@ CK_DLL_CTRL( gen5_coeffs )
+     Chuck_Array8 * in_args = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+     
+     // fprintf(stdout, "calling gen10coeffs, %d\n", weights);
+-    if(in_args<0) return;
++    if(in_args!=0) return;
+     size = in_args->size();
+     if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+     
+@@ -1287,7 +1287,7 @@ CK_DLL_CTRL( gen7_coeffs )
+     Chuck_Array8 * in_args = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+     
+     // fprintf(stdout, "calling gen10coeffs, %d\n", weights);
+-    if(in_args<0) return;
++    if(in_args!=0) return;
+     size = in_args->size();
+     if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+     
+@@ -1340,7 +1340,7 @@ CK_DLL_CTRL( gen9_coeffs )
+     Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+     
+     // fprintf(stdout, "calling gen10coeffs, %d\n", weights);
+-    if(weights<0) return;
++    if(weights!=0) return;
+     size = weights->size();
+     if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+     
+@@ -1390,7 +1390,7 @@ CK_DLL_CTRL( gen10_coeffs )
+     Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+     
+     // fprintf(stdout, "calling gen10coeffs, %d\n", weights);
+-    if(weights<0) return;
++    if(weights!=0) return;
+     size = weights->size();
+     if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+     
+@@ -1441,7 +1441,7 @@ CK_DLL_CTRL( gen17_coeffs )
+     Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+     
+     // fprintf(stdout, "calling gen17coeffs, %d\n", weights);
+-    if(weights<0) return;
++    if(weights!=0) return;
+     size = weights->size();
+     if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1;
+     
+@@ -1502,7 +1502,7 @@ CK_DLL_CTRL( curve_coeffs )
+     Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS);
+     
+     // fprintf(stdout, "calling gen17coeffs, %d\n", weights);
+-    if(weights<0) goto done;
++    if(weights!=0) goto done;
+ 
+     nargs = weights->size();
+     if (nargs < 5 || (nargs % 3) != 2)  {   // check number of args
diff --git a/nixpkgs/pkgs/applications/audio/chuck/darwin-limits.patch b/nixpkgs/pkgs/applications/audio/chuck/darwin-limits.patch
new file mode 100644
index 000000000000..3387f7255441
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/chuck/darwin-limits.patch
@@ -0,0 +1,13 @@
+--- a/src/util_string.cpp	2014-10-27 22:52:11.875981552 +0100
++++ b/src/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/nixpkgs/pkgs/applications/audio/chuck/default.nix b/nixpkgs/pkgs/applications/audio/chuck/default.nix
new file mode 100644
index 000000000000..c10556260c71
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/chuck/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, fetchurl, alsaLib, bison, flex, libsndfile, which
+, AppKit, Carbon, CoreAudio, CoreMIDI, CoreServices, Kernel
+, xcbuild
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.3.5.2";
+  name = "chuck-${version}";
+
+  src = fetchurl {
+    url = "http://chuck.cs.princeton.edu/release/files/chuck-${version}.tgz";
+    sha256 = "02z7sglax3j09grj5s1skmw8z6wz7b21hjrm95nrrdpwbxabh079";
+  };
+
+  nativeBuildInputs = [ flex bison which ];
+
+  buildInputs = [ libsndfile ]
+    ++ lib.optional (!stdenv.isDarwin) alsaLib
+    ++ lib.optional stdenv.isDarwin [ AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel ];
+
+  patches = [ ./clang.patch ./darwin-limits.patch ];
+
+  NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-Wno-missing-sysroot";
+  NIX_LDFLAGS = lib.optional stdenv.isDarwin "-framework MultitouchSupport";
+
+  postPatch = ''
+    substituteInPlace src/makefile --replace "/usr/bin" "$out/bin"
+    substituteInPlace src/makefile.osx \
+      --replace "weak_framework" "framework" \
+      --replace "MACOSX_DEPLOYMENT_TARGET=10.5" "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 = with platforms; linux ++ darwin;
+    maintainers = with maintainers; [ ftrvxmtrx ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch b/nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch
new file mode 100644
index 000000000000..226536a13ba7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob-remove-from-build.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 23070d9..83b6772 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -275,8 +275,6 @@ optional_component(LIBPULSE ON "Pulse audio integration"
+ optional_component(VISUALISATIONS ON "Visualisations")
+ 
+ if(NOT HAVE_SPOTIFY_BLOB AND NOT CRYPTOPP_FOUND)
+-  message(FATAL_ERROR "Either crypto++ must be available or the non-GPL Spotify "
+-          "code must be compiled in")
+ elseif(CRYPTOPP_FOUND)
+   set(HAVE_CRYPTOPP ON)
+   set(HAVE_SPOTIFY_DOWNLOADER ON)
+@@ -434,7 +432,6 @@ if(HAVE_BREAKPAD)
+ endif(HAVE_BREAKPAD)
+ 
+ if(HAVE_SPOTIFY_BLOB)
+-  add_subdirectory(ext/clementine-spotifyblob)
+ endif(HAVE_SPOTIFY_BLOB)
+ 
+ if(HAVE_MOODBAR)
diff --git a/nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob.patch b/nixpkgs/pkgs/applications/audio/clementine/clementine-spotify-blob.patch
new file mode 100644
index 000000000000..344fc31d70dc
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/clementine/default.nix b/nixpkgs/pkgs/applications/audio/clementine/default.nix
new file mode 100644
index 000000000000..a28125d24d4f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/clementine/default.nix
@@ -0,0 +1,134 @@
+{ stdenv, fetchurl, fetchpatch, boost, cmake, chromaprint, gettext, gst_all_1, liblastfm
+, qt4, 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.3.1";
+
+  src = fetchurl {
+    url = https://github.com/clementine-player/Clementine/archive/1.3.1.tar.gz;
+    sha256 = "0z7k73wyz54c3020lb6x2dgw0vz4ri7wcl3vs03qdj5pk8d971gq";
+  };
+
+  patches = [
+    ./clementine-spotify-blob.patch
+    # Required so as to avoid adding libspotify as a build dependency (as it is 
+    # unfree and thus would prevent us from having a free package).
+    ./clementine-spotify-blob-remove-from-build.patch
+    (fetchpatch {
+      # Fix w/gcc7
+      url = "https://github.com/clementine-player/Clementine/pull/5630.patch";
+      sha256 = "0px7xp1m4nvrncx8sga1qlxppk562wrk2qqk19iiry84nxg20mk4";
+    })
+  ];
+
+  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
+    qt4
+    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 = stdenv.mkDerivation {
+    name = "clementine-free-${version}";
+    inherit src patches nativeBuildInputs postPatch;
+
+    # gst_plugins needed for setup-hooks
+    buildInputs = buildInputs ++ [ makeWrapper gst_plugins ];
+
+    cmakeFlags = [ "-DUSE_SYSTEM_PROJECTM=ON" ];
+
+    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 = http://www.clementine-player.org;
+      description = "A multiplatform music player";
+      license = licenses.gpl3Plus;
+      platforms = platforms.linux;
+      maintainers = [ maintainers.ttuegel ];
+    };
+  };
+
+  # Unfree Spotify blob for Clementine
+  unfree = stdenv.mkDerivation {
+    name = "clementine-blob-${version}";
+    # Use the same patches and sources as Clementine
+    inherit src nativeBuildInputs postPatch;
+
+    patches = [
+      ./clementine-spotify-blob.patch
+    ];
+
+    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 = http://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/nixpkgs/pkgs/applications/audio/clerk/default.nix b/nixpkgs/pkgs/applications/audio/clerk/default.nix
new file mode 100644
index 000000000000..4da2228c6c13
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/clerk/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, makeWrapper, rofi, mpc_cli, perl,
+utillinux, 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 utillinux 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/nixpkgs/pkgs/applications/audio/cmus/default.nix b/nixpkgs/pkgs/applications/audio/cmus/default.nix
new file mode 100644
index 000000000000..f8c5a4e5acff
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/cmus/default.nix
@@ -0,0 +1,134 @@
+{ 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 ? false, libpulseaudio ? 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 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 {
+  name = "cmus-${version}";
+  version = "2.7.1";
+
+  src = fetchFromGitHub {
+    owner  = "cmus";
+    repo   = "cmus";
+    rev    = "v${version}";
+    sha256 = "0xd96py21bl869qlv1353zw7xsgq6v5s8szr0ldr63zj5fgc2ps5";
+  };
+
+  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 ]
+    ++ 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/nixpkgs/pkgs/applications/audio/cmus/option-debugging.patch b/nixpkgs/pkgs/applications/audio/cmus/option-debugging.patch
new file mode 100644
index 000000000000..84115e1480e1
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/cmusfm/default.nix b/nixpkgs/pkgs/applications/audio/cmusfm/default.nix
new file mode 100644
index 000000000000..e528e9699a73
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/cmusfm/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, curl, libnotify, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  version = "2018-10-11";
+  name = "cmusfm-unstable-${version}";
+  src = fetchFromGitHub {
+    owner = "Arkq";
+    repo = "cmusfm";
+    rev = "ad2fd0aad3f4f1a25add1b8c2f179e8859885873";
+    sha256 = "0wpwdwgyrp64nvwc6shy0n387p31j6aw6cnmfi9x2y1jhl5hbv6b";
+  };
+  # 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/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix b/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix
new file mode 100644
index 000000000000..3d7d63c4be6d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/cozy-audiobooks/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchFromGitHub
+, ninja
+, boost
+, meson
+, pkgconfig
+, wrapGAppsHook
+, appstream-glib
+, desktop-file-utils
+, gtk3
+, gst_all_1
+, gobject-introspection
+, python3Packages
+, file
+, cairo
+, sqlite
+, gettext
+, gnome3
+}:
+
+python3Packages.buildPythonApplication rec {
+
+  format = "other"; # no setup.py
+
+  name = "cozy-${version}";
+  version = "0.6.3";
+
+  src = fetchFromGitHub {
+    owner = "geigi";
+    repo = "cozy";
+    rev = version;
+    sha256 = "0xs6vzvmx0nvybpjqlrngggv2x8b2ky073slh760iirs1p0dclbc";
+  };
+
+  nativeBuildInputs = [
+    meson ninja pkgconfig
+    wrapGAppsHook
+    appstream-glib
+    desktop-file-utils
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    gtk3
+    cairo
+    gettext
+    gnome3.defaultIconTheme
+  ] ++ (with gst_all_1; [
+    gstreamer
+    gst-plugins-good
+    gst-plugins-ugly
+    gst-plugins-base
+  ]);
+
+  propagatedBuildInputs = with python3Packages; [
+    gst-python
+    pygobject3
+    dbus-python
+    mutagen
+    peewee
+    magic
+  ];
+
+  postPatch = ''
+    chmod +x data/meson_post_install.py
+    patchShebangs data/meson_post_install.py
+    substituteInPlace cozy/magic/magic.py --replace "ctypes.util.find_library('magic')" "'${file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}'"
+  '';
+
+  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/nixpkgs/pkgs/applications/audio/crip/default.nix b/nixpkgs/pkgs/applications/audio/crip/default.nix
new file mode 100644
index 000000000000..0383af06795e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/crip/default.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, fetchurl
+, makeWrapper
+
+, perl
+, 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 = [ 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 "${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/nixpkgs/pkgs/applications/audio/csa/default.nix b/nixpkgs/pkgs/applications/audio/csa/default.nix
new file mode 100644
index 000000000000..c3b3b9441357
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/csa/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "csa-${version}";
+  version = "0.5.100810";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/csa/${name}.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/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix b/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix
new file mode 100644
index 000000000000..e9415335388e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/csound/csound-qt/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, csound, desktop-file-utils,
+  fetchFromGitHub, python, python-qt, qmake,
+  qtwebengine, rtmidi, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "csound-qt-${version}";
+  version = "0.9.6-beta2";
+
+  src = fetchFromGitHub {
+    owner = "CsoundQt";
+    repo = "CsoundQt";
+    rev = "${version}";
+    sha256 = "12jv7cvns3wj2npha0mvpn88kkkfsxsvhgzs2wrw04kbrvbhbffi";
+  };
+
+  patches = [ ./rtmidipath.patch ];
+
+  nativeBuildInputs = [ qmake qtwebengine ];
+
+  buildInputs = [ csound desktop-file-utils rtmidi unzip ];
+
+  qmakeFlags = [ "qcs.pro" "CONFIG+=rtmidi" "CONFIG+=pythonqt"
+                 "CSOUND_INCLUDE_DIR=${csound}/include/csound"
+                 "CSOUND_LIBRARY_DIR=${csound}/lib"
+                 "RTMIDI_DIR=${rtmidi.src}"
+                 "PYTHONQT_SRC_DIR=${python-qt}/lib"
+                 "PYTHONQT_LIB_DIR=${python-qt}/lib"
+                 "LIBS+=${python-qt}/lib/libPythonQt-Qt5-Python2.7.so"
+                 "LIBS+=${python-qt}/lib/libPythonQt_QtAll-Qt5-Python2.7.so"
+                 "INCLUDEPATH+=${python-qt}/include/PythonQt"
+                 "INCLUDEPATH+=${python}/include/python2.7"
+                 "INSTALL_DIR=$(out)"
+                 "SHARE_DIR=$(out)/share"
+                 ];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r bin $out
+    make install
+  '';
+
+  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/nixpkgs/pkgs/applications/audio/csound/csound-qt/rtmidipath.patch b/nixpkgs/pkgs/applications/audio/csound/csound-qt/rtmidipath.patch
new file mode 100644
index 000000000000..f9522adb4b32
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/csound/default.nix b/nixpkgs/pkgs/applications/audio/csound/default.nix
new file mode 100644
index 000000000000..b11f525e9d2b
--- /dev/null
+++ b/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 {
+  name = "csound-${version}";
+  # 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.12.2";
+
+  enableParallelBuilding = true;
+
+  hardeningDisable = [ "format" ];
+
+  src = fetchFromGitHub {
+    owner = "csound";
+    repo = "csound";
+    rev = version;
+    sha256 = "01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/deadbeef/default.nix b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
new file mode 100644
index 000000000000..e2fcc3c4626a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
@@ -0,0 +1,100 @@
+{ stdenv, fetchurl, 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
+, midiSupport ? false, wildmidi ? null
+, wavpackSupport ? false, wavpack ? null
+, ffmpegSupport ? false, ffmpeg ? 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 ? true, 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 zipSupport -> libzip != null;
+assert ffmpegSupport -> ffmpeg != 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 midiSupport -> wildmidi != null;
+assert wavpackSupport -> wavpack != null;
+assert remoteSupport -> curl != null;
+
+stdenv.mkDerivation rec {
+  name = "deadbeef-${version}";
+  version = "0.7.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/deadbeef/${name}.tar.bz2";
+    sha256 = "1168hgr1nf27pf24n1rlfh1kx1wiscwhpbhqw0rprwy203gsnqwa";
+  };
+
+  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 zipSupport libzip
+    ++ optional ffmpegSupport ffmpeg
+    ++ 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 midiSupport wildmidi
+    ++ optional wavpackSupport wavpack
+    ++ optional remoteSupport curl
+    ;
+
+  nativeBuildInputs = with stdenv.lib; [ intltool pkgconfig ]
+    ++ optional gtk3Support wrapGAppsHook;
+
+  enableParallelBuilding = true;
+
+  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/nixpkgs/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix b/nixpkgs/pkgs/applications/audio/deadbeef/plugins/headerbar-gtk3.nix
new file mode 100644
index 000000000000..dab3a97f6e73
--- /dev/null
+++ b/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 {
+  name = "deadbeef-headerbar-gtk3-plugin-${version}";
+  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/nixpkgs/pkgs/applications/audio/deadbeef/plugins/infobar.nix b/nixpkgs/pkgs/applications/audio/deadbeef/plugins/infobar.nix
new file mode 100644
index 000000000000..92f566e36578
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/deadbeef/plugins/infobar.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, deadbeef, gtk3, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "deadbeef-infobar-plugin-${version}";
+  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; {
+    description = "DeadBeeF Infobar Plugin";
+    homepage = https://bitbucket.org/dsimbiriatin/deadbeef-infobar;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.jtojnar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/deadbeef/plugins/mpris2.nix b/nixpkgs/pkgs/applications/audio/deadbeef/plugins/mpris2.nix
new file mode 100644
index 000000000000..4e2e75953f35
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/deadbeef/plugins/mpris2.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, deadbeef, glib }:
+
+stdenv.mkDerivation rec {
+  name = "deadbeef-mpris2-plugin-${version}";
+  version = "1.11";
+
+  src = fetchurl {
+    url = "https://github.com/Serranya/deadbeef-mpris2-plugin/releases/download/v${version}/${name}.tar.xz";
+    sha256 = "1j631z34rwxf6wdjpsf8c2f1saq6qas1qmkgsg63m6zzpwqyizw0";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/deadbeef/plugins/opus.nix b/nixpkgs/pkgs/applications/audio/deadbeef/plugins/opus.nix
new file mode 100644
index 000000000000..55db00c15bf6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/deadbeef/plugins/opus.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromBitbucket, opusfile, libopus, libogg, openssl, deadbeef }:
+
+stdenv.mkDerivation rec {
+  name = "deadbeef-opus-plugin-${version}";
+  version = "0.8";
+
+  src = fetchFromBitbucket {
+    owner = "Lithopsian";
+    repo = "deadbeef-opus";
+    rev = "v${version}";
+    sha256 = "057rgsw4563gs63k05s7zsdc0n4djxwlbyqabf7c88f23z35ryyi";
+  };
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  NIX_CFLAGS_COMPILE = [
+    "-I${opusfile}/include/opus"
+  ];
+
+  buildInputs = [ deadbeef opusfile libopus libogg openssl ];
+
+  meta = with stdenv.lib; {
+    description = "Ogg Opus decoder plugin for the DeaDBeeF music player";
+    homepage = https://bitbucket.org/Lithopsian/deadbeef-opus;
+    license = licenses.gpl2; # There are three files, each licensed under different license: zlib, gpl2Plus and lgpl2
+    maintainers = [ maintainers.jtojnar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix b/nixpkgs/pkgs/applications/audio/deadbeef/wrapper.nix
new file mode 100644
index 000000000000..cd45ef5926b0
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/denemo/default.nix b/nixpkgs/pkgs/applications/audio/denemo/default.nix
new file mode 100644
index 000000000000..6c1536c0a610
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/denemo/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, pkgconfig
+, libjack2, gettext, intltool, guile_2_0, lilypond
+, glib, libxml2, librsvg, libsndfile, aubio
+, gtk3, gtksourceview, evince, fluidsynth, rubberband
+, portaudio, portmidi, fftw, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "denemo-${version}";
+  version = "2.2.0";
+
+  src = fetchurl {
+    url = "https://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
+    sha256 = "18zcs4xmfj4vpzi15dj7k5bjzzzlr3sjf9xhrrgy4samrrdpqzfh";
+  };
+
+  buildInputs = [
+    libjack2 gettext guile_2_0 lilypond pkgconfig glib libxml2 librsvg libsndfile
+    aubio gtk3 gtksourceview evince fluidsynth rubberband portaudio fftw portmidi
+    makeWrapper
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/denemo --prefix PATH : ${lilypond}/bin
+  '';
+
+  nativeBuildInputs = [
+    intltool
+  ];
+
+  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/nixpkgs/pkgs/applications/audio/dfasma/default.nix b/nixpkgs/pkgs/applications/audio/dfasma/default.nix
new file mode 100644
index 000000000000..d16534b03d32
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/dfasma/default.nix
@@ -0,0 +1,66 @@
+{ 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 stdenv.mkDerivation rec {
+  name = "dfasma-${version}";
+  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/nixpkgs/pkgs/applications/audio/dirt/default.nix b/nixpkgs/pkgs/applications/audio/dirt/default.nix
new file mode 100644
index 000000000000..6d56f53bd16f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/dirt/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, libsndfile, libsamplerate, liblo, libjack2 }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/audio/distrho/default.nix b/nixpkgs/pkgs/applications/audio/distrho/default.nix
new file mode 100644
index 000000000000..1c41451b08f3
--- /dev/null
+++ b/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 {
+  name = "distrho-ports-${version}";
+  version = "2018-04-16";
+
+  src = fetchFromGitHub {
+    owner = "DISTRHO";
+    repo = "DISTRHO-Ports";
+    rev = version;
+    sha256 = "0l4zwl4mli8jzch32a1fh7c88r9q17xnkxsdw17ds5hadnxlk12v";
+  };
+
+  configurePhase = ''
+    runHook preConfigure
+
+    sh ./scripts/premake-update.sh ${premakeos}
+
+    runHook postConfigure
+  '';
+
+  patchPhase = ''
+    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/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix b/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
new file mode 100644
index 000000000000..ea0ce8cb5f30
--- /dev/null
+++ b/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 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/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix b/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
new file mode 100644
index 000000000000..1710931aa229
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, libjack2, libGL, pkgconfig, xorg }:
+
+stdenv.mkDerivation rec {
+  name = "dragonfly-reverb-${src.rev}";
+
+  src = fetchFromGitHub {
+    owner = "michaelwillis";
+    repo = "dragonfly-reverb";
+    rev = "1.0.0";
+    sha256 = "05m4hd8lg0a7iiia6cbiw5qmc4p8vbkxp2qh7ywaabawiwa9r24x";
+    fetchSubmodules = true;
+  };
+
+  patchPhase = ''
+    patchShebangs dpf/utils/generate-ttl.sh
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    libjack2 xorg.libX11 libGL
+  ];
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2/
+    cp -a bin/DragonflyReverb.lv2/ $out/lib/lv2/
+  '';
+
+  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.gpl2;
+    platforms = ["x86_64-linux"];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix b/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix
new file mode 100644
index 000000000000..53949da43e0d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/drumgizmo/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, alsaLib, expat, glib, libjack2, libXext, libX11, libpng
+, libpthreadstubs, libsmf, libsndfile, lv2, pkgconfig, zita-resampler
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.9.16";
+  name = "drumgizmo-${version}";
+
+  src = fetchurl {
+    url = "https://www.drumgizmo.org/releases/${name}/${name}.tar.gz";
+    sha256 = "0ivr61n9gpigsfgn20rh3n09li8sxh1q095r6wiw0shqhn3vaxlg";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/drumkv1/default.nix b/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
new file mode 100644
index 000000000000..fd5cc4a416e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5 }:
+
+stdenv.mkDerivation rec {
+  name = "drumkv1-${version}";
+  version = "0.9.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
+    sha256 = "02j10khl3wd17z0wfs3crr55wv7h9f0qhhg90xg0kvrxvw83vzy9";
+  };
+
+  buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/audio/easytag/default.nix b/nixpkgs/pkgs/applications/audio/easytag/default.nix
new file mode 100644
index 000000000000..e61b9d8b290d
--- /dev/null
+++ b/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.defaultIconTheme
+  ];
+
+  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; [ fuuzetsu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ecasound/default.nix b/nixpkgs/pkgs/applications/audio/ecasound/default.nix
new file mode 100644
index 000000000000..a9d84eb6e6c5
--- /dev/null
+++ b/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 {
+  name = "ecasound-${version}";
+  version = "2.9.1";
+
+  src = fetchurl {
+    url = "https://ecasound.seul.org/download/ecasound-${version}.tar.gz";
+    sha256 = "1wyws3xc4f9pglrrqv6k9137sarv4asizqrxz8h0dn44rnzfiz1r";
+  };
+
+  buildInputs = [ alsaLib audiofile libjack2 liblo liboil libsamplerate libsndfile lilv lv2 ];
+
+  meta = {
+    description = "Ecasound is a software package designed for multitrack audio processing";
+    license = with stdenv.lib.licenses;  [ gpl2 lgpl21 ];
+    homepage = http://nosignal.fi/ecasound/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/eflite/default.nix b/nixpkgs/pkgs/applications/audio/eflite/default.nix
new file mode 100644
index 000000000000..4138a07ec067
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/eflite/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, fetchpatch, flite, alsaLib, debug ? false }:
+
+stdenv.mkDerivation rec {
+  name = "eflite-${version}";
+  version = "0.4.1";
+
+  src = fetchurl {
+    url = "https://sourceforge.net/projects/eflite/files/eflite/${version}/${name}.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 = "EFlite is a 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/nixpkgs/pkgs/applications/audio/eflite/format.patch b/nixpkgs/pkgs/applications/audio/eflite/format.patch
new file mode 100644
index 000000000000..d1a81aac4801
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/ekho/default.nix b/nixpkgs/pkgs/applications/audio/ekho/default.nix
new file mode 100644
index 000000000000..209ffa05bf28
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ekho/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig
+, libsndfile, libpulseaudio
+}:
+
+let
+  version = "5.8.2";
+in stdenv.mkDerivation rec {
+  name = "ekho-${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}/${name}.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/nixpkgs/pkgs/applications/audio/elisa/default.nix b/nixpkgs/pkgs/applications/audio/elisa/default.nix
new file mode 100644
index 000000000000..00e10a2ff1e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/elisa/default.nix
@@ -0,0 +1,35 @@
+{ mkDerivation, fetchFromGitHub, lib
+, extra-cmake-modules, kdoctools, wrapGAppsHook
+, qtmultimedia, qtquickcontrols2, qtwebsockets
+, kconfig, kcmutils, kcrash, kdeclarative, kfilemetadata, kinit
+, baloo
+}:
+
+mkDerivation rec {
+  name = "elisa-${version}";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner  = "KDE";
+    repo   = "elisa";
+    rev    = "v${version}";
+    sha256 = "0bpkr5rp9nfa2wzm6w3xkhsfgf5dbgxbmhckjh9wkxal3mncpkg4";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+
+  propagatedBuildInputs = [
+    qtmultimedia qtquickcontrols2 qtwebsockets
+    kconfig kcmutils kcrash kdeclarative kfilemetadata kinit
+    baloo
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Elisa Music Player";
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ peterhoeg ];
+    inherit (kconfig.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/eq10q/default.nix b/nixpkgs/pkgs/applications/audio/eq10q/default.nix
new file mode 100644
index 000000000000..651604c71a11
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/eq10q/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, fetchpatch, cmake, fftw, gtkmm2, libxcb, lv2, pkgconfig
+, xorg }:
+stdenv.mkDerivation rec {
+  name = "eq10q-${version}";
+  version = "2.2";
+  src = fetchurl {
+    url = "mirror://sourceforge/project/eq10q/${name}.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";
+    })
+  ];
+
+  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/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix b/nixpkgs/pkgs/applications/audio/espeak-ng/default.nix
new file mode 100644
index 000000000000..5d0af8cf17ab
--- /dev/null
+++ b/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 {
+  name = "espeak-ng-${version}";
+  version = "1.49.2";
+
+  src = fetchFromGitHub {
+    owner = "espeak-ng";
+    repo = "espeak-ng";
+    rev = version;
+    sha256 = "17bbl3zi8214iaaj8kjnancjvmvizwybg3sg17qjq4mf5c6xfg2c";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/espeak/default.nix b/nixpkgs/pkgs/applications/audio/espeak/default.nix
new file mode 100644
index 000000000000..6b5101b50b5a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/espeak/edit.nix b/nixpkgs/pkgs/applications/audio/espeak/edit.nix
new file mode 100644
index 000000000000..8d7db50fd323
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch b/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch
new file mode 100644
index 000000000000..e5c761a11b35
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch b/nixpkgs/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch
new file mode 100644
index 000000000000..1c5dfc21941a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch b/nixpkgs/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch
new file mode 100644
index 000000000000..9f8a65d2b0ca
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/espeak/espeakedit-gcc6.patch b/nixpkgs/pkgs/applications/audio/espeak/espeakedit-gcc6.patch
new file mode 100644
index 000000000000..1e0cb20bbf76
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/espeak/gcc6.patch b/nixpkgs/pkgs/applications/audio/espeak/gcc6.patch
new file mode 100644
index 000000000000..58036ecbe509
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/eteroj.lv2/default.nix b/nixpkgs/pkgs/applications/audio/eteroj.lv2/default.nix
new file mode 100644
index 000000000000..28e4879efdc0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/eteroj.lv2/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libuv, lv2 }:
+
+stdenv.mkDerivation rec {
+  pname = "eteroj.lv2";
+  version = "0.4.0";
+  name = "${pname}-${version}";
+
+  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/nixpkgs/pkgs/applications/audio/faust/faust1.nix b/nixpkgs/pkgs/applications/audio/faust/faust1.nix
new file mode 100644
index 000000000000..6e47d921d345
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faust/faust1.nix
@@ -0,0 +1,207 @@
+{ 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 = http://faust.grame.fr/;
+    downloadPage = https://sourceforge.net/projects/faudiostream/files/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ magnetophon pmahoney ];
+  };
+
+  faust = stdenv.mkDerivation {
+    name = "faust-${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/nixpkgs/pkgs/applications/audio/faust/faust2.nix b/nixpkgs/pkgs/applications/audio/faust/faust2.nix
new file mode 100644
index 000000000000..383d2deb10bb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2.nix
@@ -0,0 +1,245 @@
+{ stdenv
+, coreutils
+, fetchFromGitHub
+, makeWrapper
+, pkgconfig
+, llvm
+, emscripten
+, openssl
+, libsndfile
+, libmicrohttpd
+, vim
+}:
+
+with stdenv.lib.strings;
+
+let
+
+  version = "2.5.23";
+
+  src = fetchFromGitHub {
+    owner = "grame-cncm";
+    repo = "faust";
+    rev = "${version}";
+    sha256 = "1pci8ac6sqrm3mb3yikmmr3iy35g3nj4iihazif1amqkbdz719rc";
+    fetchSubmodules = true;
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://faust.grame.fr/;
+    downloadPage = https://sourceforge.net/projects/faudiostream/files/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ magnetophon pmahoney ];
+  };
+
+  faust = stdenv.mkDerivation {
+
+    name = "faust-${version}";
+
+    inherit src;
+
+    nativeBuildInputs = [ makeWrapper pkgconfig vim ];
+    buildInputs = [ llvm emscripten openssl libsndfile libmicrohttpd ];
+
+
+    passthru = {
+      inherit wrap wrapWithBuildEnv;
+    };
+
+
+    preConfigure = ''
+      makeFlags="$makeFlags prefix=$out LLVM_CONFIG='${llvm}/bin/llvm-config' world"
+
+      # 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
+      # sed -e "232s/LLVM_STATIC_LIBS/LLVMLIBS/" -i compiler/Makefile.unix
+
+      # The makefile sets LLVM_<version> depending on the current llvm
+      # version, but the detection code is quite brittle.
+      #
+      # Failing to properly detect the llvm version means that the macro
+      # LLVM_VERSION ends up being the raw output of `llvm-config --version`, while
+      # the code assumes that it's set to a symbol like `LLVM_35`.  Two problems result:
+      # * <command-line>:0:1: error: macro names must be identifiers.; and
+      # * a bunch of undefined reference errors due to conditional definitions relying on
+      #   LLVM_XY being defined.
+      #
+      # For now, fix this by 1) pinning the llvm version; 2) manually setting LLVM_VERSION
+      # to something the makefile will recognize.
+      sed '52iLLVM_VERSION=${stdenv.lib.getVersion llvm}' -i compiler/Makefile.unix
+    '';
+
+    postPatch = ''
+      # fix build with llvm 5.0.2 by adding it to the list of known versions
+      # TODO: check if still needed on next update
+      substituteInPlace compiler/Makefile.unix \
+        --replace "5.0.0 5.0.1" "5.0.0 5.0.1 5.0.2"
+    '';
+
+    # 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'" \
+            --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;
+
+
+      postFixup = ''
+
+        # export parts of the build environment
+        for script in "$out"/bin/*; do
+          wrapProgram "$script" \
+            --set FAUSTLIB "${faust}/share/faust" \
+            --set FAUST_LIB_PATH "${faust}/share/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/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix b/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix
new file mode 100644
index 000000000000..8ac26e488b37
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2alqt.nix
@@ -0,0 +1,15 @@
+{ faust
+, alsaLib
+, qt4
+}:
+
+faust.wrapWithBuildEnv {
+
+  baseName = "faust2alqt";
+
+  propagatedBuildInputs = [
+    alsaLib
+    qt4
+  ];
+
+}
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix b/nixpkgs/pkgs/applications/audio/faust/faust2alsa.nix
new file mode 100644
index 000000000000..17cec46f6c6a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/faust/faust2csound.nix b/nixpkgs/pkgs/applications/audio/faust/faust2csound.nix
new file mode 100644
index 000000000000..eb5e5831cddd
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/faust/faust2firefox.nix b/nixpkgs/pkgs/applications/audio/faust/faust2firefox.nix
new file mode 100644
index 000000000000..b2cc6f464575
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix b/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
new file mode 100644
index 000000000000..7762ca393690
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
@@ -0,0 +1,25 @@
+{ faust
+, gtk2
+, jack2Full
+, opencv
+, libsndfile
+}:
+
+faust.wrapWithBuildEnv {
+
+  baseName = "faust2jack";
+
+  scripts = [
+    "faust2jack"
+    "faust2jackinternal"
+    "faust2jackconsole"
+  ];
+
+  propagatedBuildInputs = [
+    gtk2
+    jack2Full
+    opencv
+    libsndfile
+  ];
+
+}
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix b/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
new file mode 100644
index 000000000000..5a015e5ca31e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
@@ -0,0 +1,24 @@
+{ faust
+, jack2Full
+, opencv
+, qt4
+, libsndfile
+}:
+
+faust.wrapWithBuildEnv {
+
+  baseName = "faust2jaqt";
+
+  scripts = [
+    "faust2jaqt"
+    "faust2jackserver"
+  ];
+
+  propagatedBuildInputs = [
+    jack2Full
+    opencv
+    qt4
+    libsndfile
+  ];
+
+}
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2ladspa.nix b/nixpkgs/pkgs/applications/audio/faust/faust2ladspa.nix
new file mode 100644
index 000000000000..67de98cab9a2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2ladspa.nix
@@ -0,0 +1,12 @@
+{ boost
+, faust
+, ladspaH
+}:
+
+faust.wrapWithBuildEnv {
+
+  baseName = "faust2ladspa";
+
+  propagatedBuildInputs = [ boost ladspaH ];
+
+}
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2lv2.nix b/nixpkgs/pkgs/applications/audio/faust/faust2lv2.nix
new file mode 100644
index 000000000000..3472ce5047eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2lv2.nix
@@ -0,0 +1,14 @@
+{ boost
+, faust
+, lv2
+, qt4
+
+}:
+
+faust.wrapWithBuildEnv {
+
+  baseName = "faust2lv2";
+
+  propagatedBuildInputs = [ boost lv2 qt4 ];
+
+}
diff --git a/nixpkgs/pkgs/applications/audio/faust/faustlive.nix b/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
new file mode 100644
index 000000000000..b8ff73f2cb32
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub
+, llvm, qt48Full, libqrencode, libmicrohttpd, libjack2, alsaLib, faust, curl
+, bc, coreutils, which
+}:
+
+stdenv.mkDerivation rec {
+  name = "faustlive-${version}";
+  version = "2017-12-05";
+  src = fetchFromGitHub {
+    owner = "grame-cncm";
+    repo = "faustlive";
+    rev = "281fcb852dcd94f8c57ade1b2a7a3937542e1b2d";
+    sha256 = "0sw44yd9928rid9ib0b5mx2x129m7zljrayfm6jz6hrwdc5q3k9a";
+  };
+
+  buildInputs = [
+    llvm qt48Full libqrencode libmicrohttpd libjack2 alsaLib faust curl
+    bc coreutils which
+  ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  preBuild = "patchShebangs Build/Linux/buildversion";
+
+  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 = http://faust.grame.fr/;
+    license = licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/flac/default.nix b/nixpkgs/pkgs/applications/audio/flac/default.nix
new file mode 100644
index 000000000000..fb5390cb46ef
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/flac/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libogg }:
+
+stdenv.mkDerivation rec {
+  name = "flac-1.3.2";
+
+  src = fetchurl {
+    url = "http://downloads.xiph.org/releases/flac/${name}.tar.xz";
+    sha256 = "0gymm2j3276kr9nz6vmgfwsdfrq6c449n40a0mzz8h6wc7nw7kwi";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/flac123/default.nix b/nixpkgs/pkgs/applications/audio/flac123/default.nix
new file mode 100644
index 000000000000..f0863bfc50b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/flac123/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, autoreconfHook, flac, libao, libogg, popt }:
+
+stdenv.mkDerivation rec {
+  name = "flac123-${version}";
+  version = "0.0.12";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/flac-tools/${name}-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/nixpkgs/pkgs/applications/audio/flacon/default.nix b/nixpkgs/pkgs/applications/audio/flacon/default.nix
new file mode 100644
index 000000000000..cec20743abdd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/flacon/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, cmake, qt5, libuchardet, pkgconfig, makeWrapper
+, shntool, flac, opusTools, vorbis-tools, mp3gain, lame, wavpack, vorbisgain
+, gtk3
+}:
+
+stdenv.mkDerivation rec {
+  name = "flacon-${version}";
+  version = "5.0.0";
+
+  src = fetchFromGitHub {
+    owner = "flacon";
+    repo = "flacon";
+    rev = "v${version}";
+    sha256 = "0pglqm2z7mp5igqmfnmvrgjhfbfrj8q5jvd0a0g2dzv3rqwfw4vc";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+  buildInputs = [ qt5.qtbase qt5.qttools libuchardet ];
+
+  postInstall = ''
+    wrapProgram $out/bin/flacon \
+      --suffix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}" \
+      --prefix PATH : "${lib.makeBinPath [ shntool flac opusTools vorbis-tools
+     mp3gain lame wavpack vorbisgain ]}"
+  '';
+
+  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; [ ndowens nico202 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/fldigi/default.nix b/nixpkgs/pkgs/applications/audio/fldigi/default.nix
new file mode 100644
index 000000000000..fb4454269d78
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/fldigi/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, hamlib, fltk13, libjpeg, libpng, portaudio, libsndfile,
+  libsamplerate, libpulseaudio, libXinerama, gettext, pkgconfig, alsaLib }:
+
+stdenv.mkDerivation rec {
+  version = "4.0.18";
+  pname = "fldigi";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${name}.tar.gz";
+    sha256 = "0a3z9xj9gsa6fskiai9410kwqfb6156km59y36a31mhyddzk27p7";
+  };
+
+  buildInputs = [ libXinerama gettext hamlib fltk13 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/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix b/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix
new file mode 100644
index 000000000000..d40544a0fa40
--- /dev/null
+++ b/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.1";
+      sha256 = "1mqyym5qkh8xd1rqj3yhfxbw5dxjcrljb6nkfqzvcarlv4h6rjn7";
+    };
+  };
+in
+
+with versionMap.${version};
+
+stdenv.mkDerivation  rec {
+  name = "fluidsynth-${fluidsynthVersion}";
+  version = fluidsynthVersion;
+
+  src = fetchFromGitHub {
+    owner = "FluidSynth";
+    repo = "fluidsynth";
+    rev = "v${fluidsynthVersion}";
+    inherit sha256;
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+
+  buildInputs = [ glib libsndfile ]
+    ++ lib.optionals (!stdenv.isDarwin) [ alsaLib libpulseaudio libjack2 ]
+    ++ lib.optionals stdenv.isDarwin [ AudioUnit CoreAudio CoreMIDI CoreServices ];
+
+  cmakeFlags = lib.optional stdenv.isDarwin "-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/nixpkgs/pkgs/applications/audio/fmit/default.nix b/nixpkgs/pkgs/applications/audio/fmit/default.nix
new file mode 100644
index 000000000000..a61f7dc0a905
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/fmit/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, fftw, qtbase, qtmultimedia, qmake
+, 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;
+
+stdenv.mkDerivation rec {
+  name = "fmit-${version}";
+  version = "1.1.14";
+
+  src = fetchFromGitHub {
+    sha256 = "18gvl8smcnigzldy1acs5h8rscf287b39xi4y2cl5armqbj0y38x";
+    rev = "v${version}";
+    repo = "fmit";
+    owner = "gillesdegottex";
+  };
+
+  nativeBuildInputs = [ qmake ];
+  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/nixpkgs/pkgs/applications/audio/fmsynth/default.nix b/nixpkgs/pkgs/applications/audio/fmsynth/default.nix
new file mode 100644
index 000000000000..58d095080fe5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/fmsynth/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, gtkmm2, lv2, lvtk, pkgconfig }:
+stdenv.mkDerivation rec {
+  name = "fmsynth-unstable-${version}";
+  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
+  '';
+
+  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/nixpkgs/pkgs/applications/audio/fomp/default.nix b/nixpkgs/pkgs/applications/audio/fomp/default.nix
new file mode 100644
index 000000000000..680fab4ca643
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/fomp/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, lv2, pkgconfig, python2, wafHook }:
+
+stdenv.mkDerivation rec {
+  name = "fomp-${version}";
+  version = "1.0.0";
+
+  src = fetchurl {
+    url = "https://download.drobilla.net/${name}.tar.bz2";
+    sha256 = "1hh2xhknanqn3iwp12ihl6bf8p7bqxryms9qk7mh21lixl42b8k5";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix b/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
new file mode 100644
index 000000000000..28b2cd98e02c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub,  libjack2, gtk2, lv2, faust, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  version = "git-2015-05-21";
+  name = "foo-yc20-${version}";
+  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 = {
+    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     = "BSD";
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/freewheeling/am_path_sdl.patch b/nixpkgs/pkgs/applications/audio/freewheeling/am_path_sdl.patch
new file mode 100644
index 000000000000..2bc3b4f45ac2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/freewheeling/am_path_sdl.patch
@@ -0,0 +1,40 @@
+--- code-r100/configure.ac	2014-09-25 23:44:41.059174904 +0200
++++ code-r100.new/configure.ac	2014-09-26 01:37:18.507017390 +0200
+@@ -44,6 +44,8 @@
+   [AC_MSG_ERROR(CONFIG: You need libxml2-dev installed.
+ 	        http://www.xmlsoft.org/)])
+ 
++PKG_CHECK_MODULES([libxml], [libxml-2.0])
++
+ AC_CHECK_LIB([m], [sqrt], , [AC_MSG_ERROR(CORE: You need libm installed)])
+ AC_CHECK_LIB([pthread], [pthread_self], , [AC_MSG_ERROR(CORE: You need libpthread installed)])
+ 
+@@ -79,12 +81,12 @@
+    echo "--- Enabling USB LCD display --";
+ fi
+ 
+-#SDL_VERSION=1.2.4
+-#AM_PATH_SDL($SDL_VERSION,
+-#            :,
+-#	    AC_MSG_ERROR([VIDEO: *** SDL version $SDL_VERSION not found!
+-#		          http://www.libsdl.org/])
+-#)
++SDL_VERSION=1.2.4
++AM_PATH_SDL($SDL_VERSION,
++            :,
++	    AC_MSG_ERROR([VIDEO: *** SDL version $SDL_VERSION not found!
++		          http://www.libsdl.org/])
++)
+ 
+ AC_CHECK_LIB([vorbis], [main], , 
+   [AC_MSG_ERROR(AUDIO: You need libvorbis-dev installed.
+@@ -95,6 +97,9 @@
+ AC_CHECK_LIB([vorbisenc], [main], , 
+   [AC_MSG_ERROR(AUDIO: You need libvorbis-dev installed.
+ 		http://www.xiph.org/ogg/vorbis/)])
++AC_CHECK_LIB([ogg], [main], , 
++  [AC_MSG_ERROR(AUDIO: You need libogg-dev installed.
++		http://www.xiph.org/ogg/)])
+ 
+ AC_CHECK_LIB([sndfile], [main], , 
+   [AC_MSG_ERROR(AUDIO: you need libsndfile installed.
diff --git a/nixpkgs/pkgs/applications/audio/freewheeling/default.nix b/nixpkgs/pkgs/applications/audio/freewheeling/default.nix
new file mode 100644
index 000000000000..4266b8c69bb8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/freewheeling/default.nix
@@ -0,0 +1,51 @@
+{ 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 {
+  name = "freewheeling-${version}";
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "free-wheeling";
+    repo = "freewheeling";
+    rev = "v${version}";
+    sha256 = "1xflbbnjdibjmyxb1zq8liylaw5k03nnl1z3272jh204pqh17ri9";
+  };
+
+  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 = 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/nixpkgs/pkgs/applications/audio/freewheeling/xml.patch b/nixpkgs/pkgs/applications/audio/freewheeling/xml.patch
new file mode 100644
index 000000000000..fd9d4fb39fe4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/freewheeling/xml.patch
@@ -0,0 +1,13 @@
+--- code-r100/src/Makefile.am	2014-09-25 23:44:41.043174832 +0200
++++ code-r100.new/src/Makefile.am	2014-09-26 01:21:03.750015888 +0200
+@@ -24,7 +24,8 @@
+ 
+ fweelindir = $(datadir)/fweelin
+ 
+-FWEELIN_CFLAGS = -I. -g -Wall -Wno-write-strings -Wno-non-virtual-dtor -D_REENTRANT -DPTHREADS -DNDEBUG -DVERSION=\"$(VERSION)\" -DFWEELIN_DATADIR=\"$(fweelindir)\" -DADDON_DIR=\"/usr/local/lib/jack\" -I/usr/include/freetype2 -I/usr/include/libxml2 -funroll-loops -finline-functions -fomit-frame-pointer -ffast-math -fexpensive-optimizations -fstrict-aliasing -falign-loops=2 -falign-jumps=2 -falign-functions=2 -O9
++XML_CFLAGS = `xml2-config --cflags`
++FWEELIN_CFLAGS = -I. -g -Wall -Wno-write-strings -Wno-non-virtual-dtor -D_REENTRANT -DPTHREADS -DNDEBUG -DVERSION=\"$(VERSION)\" -DFWEELIN_DATADIR=\"$(fweelindir)\" -DADDON_DIR=\"/usr/local/lib/jack\" -I/usr/include/freetype2 $(XML_CFLAGS) -funroll-loops -finline-functions -fomit-frame-pointer -ffast-math -fexpensive-optimizations -fstrict-aliasing -falign-loops=2 -falign-jumps=2 -falign-functions=2 -O9
+ 
+ AM_CFLAGS = $(CFLAGS) $(FWEELIN_CFLAGS)
+-AM_CXXFLAGS = $(CFLAGS) $(CXXFLAGS) $(FWEELIN_CFLAGS)
++AM_CXXFLAGS = $(CFLAGS) $(CXXFLAGS) $(FWEELIN_CFLAGS) ${libxml2_CFLAGS}
diff --git a/nixpkgs/pkgs/applications/audio/game-music-emu/default.nix b/nixpkgs/pkgs/applications/audio/game-music-emu/default.nix
new file mode 100644
index 000000000000..a0a79785283c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/game-music-emu/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+  version = "0.6.1";
+  name = "game-music-emu-${version}";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/mpyne/game-music-emu/downloads/${name}.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/nixpkgs/pkgs/applications/audio/gbsplay/default.nix b/nixpkgs/pkgs/applications/audio/gbsplay/default.nix
new file mode 100644
index 000000000000..9ff9b8dc1145
--- /dev/null
+++ b/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 ];
+  
+  configureFlagsArray =
+   [ "--without-test" "--without-contrib" "--disable-devdsp"
+     "--enable-pulse" "--disable-alsa" "--disable-midi"
+     "--disable-nas" "--disable-dsound" "--disable-i18n" ];
+
+  makeFlagsArray = [ "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/nixpkgs/pkgs/applications/audio/gigedit/default.nix b/nixpkgs/pkgs/applications/audio/gigedit/default.nix
new file mode 100644
index 000000000000..e9ce20f6c80a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/gigedit/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, autoconf, automake, intltool, libtool, pkgconfig, which
+, docbook_xml_dtd_45, docbook_xsl, gtkmm2, libgig, libsndfile, libxslt
+}:
+
+stdenv.mkDerivation rec {
+  name = "gigedit-${version}";
+  version = "1.1.0";
+
+  src = fetchurl {
+    url = "https://download.linuxsampler.org/packages/${name}.tar.bz2";
+    sha256 = "087pc919q28r1vw31c7w4m14bqnp4md1i2wbmk8w0vmwv2cbx2ni";
+  };
+
+  patches = [ ./gigedit-1.1.0-pangomm-2.40.1.patch ];
+
+  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/nixpkgs/pkgs/applications/audio/gigedit/gigedit-1.1.0-pangomm-2.40.1.patch b/nixpkgs/pkgs/applications/audio/gigedit/gigedit-1.1.0-pangomm-2.40.1.patch
new file mode 100644
index 000000000000..eb00fcc87a24
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/gigedit/gigedit-1.1.0-pangomm-2.40.1.patch
@@ -0,0 +1,15 @@
+--- a/src/gigedit/wrapLabel.cc
++++ b/src/gigedit/wrapLabel.cc
+@@ -64,12 +64,7 @@ WrapLabel::WrapLabel(const Glib::ustring &text) // IN: The label text
+    : mWrapWidth(0),
+      mWrapHeight(0)
+ {
+-   // pangomm >= 2.35.1
+-#if PANGOMM_MAJOR_VERSION > 2 || (PANGOMM_MAJOR_VERSION == 2 && (PANGOMM_MINOR_VERSION > 35 || (PANGOMM_MINOR_VERSION == 35 && PANGOMM_MICRO_VERSION >= 1)))
+-   get_layout()->set_wrap(Pango::WrapMode::WORD_CHAR);
+-#else
+    get_layout()->set_wrap(Pango::WRAP_WORD_CHAR);
+-#endif
+    set_alignment(0.0, 0.0);
+    set_text(text);
+ }
diff --git a/nixpkgs/pkgs/applications/audio/gjay/default.nix b/nixpkgs/pkgs/applications/audio/gjay/default.nix
new file mode 100644
index 000000000000..42285ba4bf86
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/gmpc/default.nix b/nixpkgs/pkgs/applications/audio/gmpc/default.nix
new file mode 100644
index 000000000000..099e4428016e
--- /dev/null
+++ b/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 {
+  name = "gmpc-${version}";
+  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 = [ maintainers.rickynils ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/gmpc/libmpd-11.8.17-remove-strndup.patch b/nixpkgs/pkgs/applications/audio/gmpc/libmpd-11.8.17-remove-strndup.patch
new file mode 100644
index 000000000000..ad4fdc02ef3e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/gmu/default.nix b/nixpkgs/pkgs/applications/audio/gmu/default.nix
new file mode 100644
index 000000000000..8446855d190c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/gnaural/default.nix b/nixpkgs/pkgs/applications/audio/gnaural/default.nix
new file mode 100644
index 000000000000..f5887e870db6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/gnaural/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, gtk2, libsndfile, portaudio }:
+
+stdenv.mkDerivation rec {
+  name = "gnaural-1.0.20110606";
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 libsndfile portaudio ];
+  src = fetchurl {
+    url = "mirror://sourceforge/gnaural/Gnaural/${name}.tar.gz";
+    sha256 = "0p9rasz1jmxf16vnpj17g3vzdjygcyz3l6nmbq6wr402l61f1vy5";
+  };
+  meta = with stdenv.lib;
+    { description = "Auditory binaural-beat generator";
+      homepage = http://gnaural.sourceforge.net/;
+      license = licenses.gpl2;
+      maintainers = [ maintainers.ehmry ];
+      platforms = platforms.linux;
+      broken = true;
+    };
+}
diff --git a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
new file mode 100644
index 000000000000..c8db1ac6d10a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, fetchFromGitLab, meson, ninja, gettext, cargo, rustc, python3, rustPlatform, pkgconfig, gnome3
+, glib, libhandy, gtk3, dbus, openssl, sqlite, gst_all_1, wrapGAppsHook }:
+
+# TODO: build from git for easier updates
+# rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
+  version = "0.4.6";
+  name = "gnome-podcasts-${version}";
+
+  src = fetchurl {
+    url = https://gitlab.gnome.org/World/podcasts/uploads/e59ac5d618d7daf4c7f33ba72957c466/gnome-podcasts-0.4.6.tar.xz;
+    sha256 = "0g2rk3w251fp5jwbxs5ya1adv8nsgdqjy1vmfg8qqab6qyndhbrc";
+  };
+
+  # src = fetchFromGitLab {
+  #   domain = "gitlab.gnome.org";
+  #   owner = "World";
+  #   repo = "podcasts";
+  #   rev = version;
+  #   sha256 = "15xj98dhxvys0cnya9488qsfsm0ys1wy69wkc39z8j6hwdm7byq2";
+  # };
+
+  nativeBuildInputs = [
+    meson ninja pkgconfig gettext cargo rustc python3 wrapGAppsHook
+  ];
+  buildInputs = [
+    glib gtk3 libhandy dbus openssl sqlite gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-bad
+  ];
+
+  # cargoSha256 = "0721b5f700vvvzvmdl8nfjaa6j412q1fjssgrjv8n6rmn9z13d2v";
+
+  postPatch = ''
+    chmod +x scripts/compile-gschema.py # patchShebangs requires executable file
+    patchShebangs scripts/compile-gschema.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Listen to your favorite podcasts";
+    homepage = https://wiki.gnome.org/Apps/Podcasts;
+    license = licenses.gpl3;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix b/nixpkgs/pkgs/applications/audio/google-musicmanager/default.nix
new file mode 100644
index 000000000000..b4fe78dcbfcd
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix b/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
new file mode 100644
index 000000000000..5951572dd246
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/google-play-music-desktop-player/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, alsaLib, 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.6.1";
+
+  deps = [
+    alsaLib
+    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 {
+  name = "google-play-music-desktop-player-${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 = "0dyn2fxhcri9d9nmcprszs6yg79gsr09bjfzzb1p10yjmi77cj2g";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/gpodder/default.nix b/nixpkgs/pkgs/applications/audio/gpodder/default.nix
new file mode 100644
index 000000000000..342f495767db
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/gpodder/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchFromGitHub, python3, python3Packages, intltool
+, glibcLocales, gnome3, gtk3, wrapGAppsHook
+, ipodSupport ? false, libgpod, gobject-introspection
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "gpodder";
+  version = "3.10.5";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "gpodder";
+    repo = "gpodder";
+    rev = version;
+    sha256 = "00lvma40d62h4haybabh15x1y7rnmd84whbjgjv773igwagkn9vw";
+  };
+
+  postPatch = with stdenv.lib; ''
+    sed -i -re 's,^( *gpodder_dir *= *).*,\1"'"$out"'",' bin/gpodder
+  '';
+
+  nativeBuildInputs = [
+    intltool
+    wrapGAppsHook
+    glibcLocales
+  ];
+
+  buildInputs = [
+    python3
+    gobject-introspection
+    gnome3.defaultIconTheme
+  ];
+
+  checkInputs = with python3Packages; [
+    coverage minimock
+  ];
+
+  doCheck = true;
+
+  propagatedBuildInputs = with python3Packages; [
+    feedparser
+    dbus-python
+    mygpoclient
+    pygobject3
+    eyeD3
+    podcastparser
+    html5lib
+    gtk3
+  ] ++ stdenv.lib.optional ipodSupport libgpod;
+
+  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/nixpkgs/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch b/nixpkgs/pkgs/applications/audio/gradio/0001-Remove-post-install-script-that-hardcodes-paths.patch
new file mode 100644
index 000000000000..3a6296baaa64
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/gradio/default.nix b/nixpkgs/pkgs/applications/audio/gradio/default.nix
new file mode 100644
index 000000000000..3aea07235d8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/gradio/default.nix
@@ -0,0 +1,71 @@
+{ 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.2";
+
+in stdenv.mkDerivation rec {
+  name = "gradio-${version}";
+
+  src = fetchFromGitHub {
+    owner = "haecker-felix";
+    repo = "gradio";
+    rev = "v${version}";
+    sha256 = "0c4vlrfl0ljkiwarpwa8wcfmmihh6a5j4pi4yr0qshyl9xxvxiv3";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/greg/default.nix b/nixpkgs/pkgs/applications/audio/greg/default.nix
new file mode 100644
index 000000000000..e7a23b6f204c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/greg/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+with pythonPackages; buildPythonApplication rec {
+  pname = "greg";
+  version = "0.4.7";
+  name = pname + "-" + version;
+
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "manolomartinez";
+    repo = pname;
+    rev = "v" + version;
+    sha256 = "0bdzgh2k1ppgcvqiasxwp3w89q44s4jgwjidlips3ixx1bzm822v";
+  };
+
+  buildInputs = with pythonPackages; [ feedparser ];
+  propagatedBuildInputs = buildInputs;
+
+  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/nixpkgs/pkgs/applications/audio/gtklick/default.nix b/nixpkgs/pkgs/applications/audio/gtklick/default.nix
new file mode 100644
index 000000000000..0434b00c7053
--- /dev/null
+++ b/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
+  ];
+
+  buildInputs = [ 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/nixpkgs/pkgs/applications/audio/gtkpod/default.nix b/nixpkgs/pkgs/applications/audio/gtkpod/default.nix
new file mode 100644
index 000000000000..4bcddab54a08
--- /dev/null
+++ b/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,
+  libvorbis, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  version = "2.1.5";
+  name = "gtkpod-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gtkpod/${name}.tar.gz";
+    sha256 = "0xisrpx069f7bjkyc8vqxb4k0480jmx1wscqxr6cpq1qj6pchzd5";
+  };
+
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook intltool ];
+  buildInputs = [
+    curl gettext
+    flex libgpod libid3tag flac libvorbis gtk3 gdk_pixbuf
+    gnome3.gdl gnome3.defaultIconTheme 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/nixpkgs/pkgs/applications/audio/guitarix/default.nix b/nixpkgs/pkgs/applications/audio/guitarix/default.nix
new file mode 100644
index 000000000000..bc4c18aab085
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/guitarix/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl, gettext, intltool, pkgconfig, python2
+, avahi, bluez, boost, eigen, fftw, glib, glib-networking
+, glibmm, gsettings-desktop-schemas, gtkmm2, libjack2
+, ladspaH, libav, librdf, libsndfile, lilv, lv2, serd, sord, sratom
+, wrapGAppsHook, zita-convolver, zita-resampler, curl, wafHook
+, optimizationSupport ? false # Enable support for native CPU extensions
+}:
+
+let
+  inherit (stdenv.lib) optional;
+in
+
+stdenv.mkDerivation rec {
+  name = "guitarix-${version}";
+  version = "0.37.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
+    sha256 = "1wfm8wrwrnqpb4ihy75n7l9i6vml536jlq9pdx2pblbc4ba3paac";
+  };
+
+  nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 wafHook ];
+
+  buildInputs = [
+    avahi bluez boost eigen fftw glib glibmm glib-networking.out
+    gsettings-desktop-schemas gtkmm2 libjack2 ladspaH libav librdf
+    libsndfile lilv lv2 serd sord sratom zita-convolver
+    zita-resampler curl
+  ];
+
+  configureFlags = [
+    "--shared-lib"
+    "--no-desktop-update"
+    "--enable-nls"
+    "--no-faust" # todo: find out why --faust doesn't work
+    "--install-roboto-font"
+    "--includeresampler"
+    "--convolver-ffmpeg"
+  ] ++ 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/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix b/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
new file mode 100644
index 000000000000..e7e4744eea2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, xorg, xproto, cairo, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "GxPlugins.lv2";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "brummer10";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "16r5bj7w726d9327flg530fn0bli4crkxjss7i56yhb1bsi39mbv";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    xorg.libX11 xproto cairo lv2
+  ];
+
+  installFlags = [ "INSTALL_DIR=$(out)/lib/lv2" ];
+
+  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/nixpkgs/pkgs/applications/audio/helm/default.nix b/nixpkgs/pkgs/applications/audio/helm/default.nix
new file mode 100644
index 000000000000..fa76a1a26e82
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/helm/default.nix
@@ -0,0 +1,60 @@
+  { stdenv, fetchFromGitHub , xorg, freetype, alsaLib, curl, libjack2
+  , lv2, pkgconfig, libGLU_combined }:
+
+  stdenv.mkDerivation rec {
+  version = "0.9.0";
+  name = "helm-${version}";
+
+  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_combined lv2
+  ];
+
+  CXXFLAGS = "-DHAVE_LROUND";
+
+  patchPhase = ''
+    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/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix b/nixpkgs/pkgs/applications/audio/hybridreverb2/default.nix
new file mode 100644
index 000000000000..19aac1bd1e95
--- /dev/null
+++ b/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.1";
+  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 = "15mba9qvlis0qrklr50wp3jdysvmk33m7pvclp0k1is9pirj97cb";
+    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/nixpkgs/pkgs/applications/audio/hydrogen/default.nix b/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
new file mode 100644
index 000000000000..d68bfbf2ae4e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, alsaLib, boost, cmake, glib, lash, libjack2, libarchive
+, liblrdf, libsndfile, pkgconfig, qt4 }:
+
+stdenv.mkDerivation rec {
+  version = "0.9.7";
+  name = "hydrogen-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
+    sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    alsaLib boost cmake glib lash libjack2 libarchive liblrdf libsndfile 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/nixpkgs/pkgs/applications/audio/i-score/default.nix b/nixpkgs/pkgs/applications/audio/i-score/default.nix
new file mode 100644
index 000000000000..69fc4b419c06
--- /dev/null
+++ b/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";
+  name = "i-score-${version}";
+
+  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/nixpkgs/pkgs/applications/audio/iannix/default.nix b/nixpkgs/pkgs/applications/audio/iannix/default.nix
new file mode 100644
index 000000000000..c26980e1bb26
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/iannix/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, qtbase, qtscript, qmake
+}:
+
+stdenv.mkDerivation rec {
+  name = "iannix-${version}";
+  version = "2016-01-31";
+  src = fetchFromGitHub {
+    owner = "iannix";
+    repo = "IanniX";
+    rev = "f84becdcbe154b20a53aa2622068cb8f6fda0755";
+    sha256 = "184ydb9f1303v332k5k3f1ki7cb6nkxhh6ij0yn72v7dp7figrgj";
+  };
+
+  nativeBuildInputs = [ pkgconfig qmake ];
+  buildInputs = [ alsaLib qtbase qtscript ];
+
+  qmakeFlags = [ "PREFIX=/" ];
+
+  installFlags = [ "INSTALL_ROOT=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Graphical open-source sequencer,";
+    homepage = https://www.iannix.org/;
+    license = stdenv.lib.licenses.lgpl3;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.nico202 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/id3v2/default.nix b/nixpkgs/pkgs/applications/audio/id3v2/default.nix
new file mode 100644
index 000000000000..d2720fcace67
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/id3v2/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, id3lib, groff, zlib}:
+
+stdenv.mkDerivation rec {
+  name = "id3v2-${version}";
+  version = "0.1.12";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/id3v2/${name}.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/nixpkgs/pkgs/applications/audio/infamousPlugins/default.nix b/nixpkgs/pkgs/applications/audio/infamousPlugins/default.nix
new file mode 100644
index 000000000000..cae40929f95a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/infamousPlugins/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cairomm, cmake, lv2, libpthreadstubs, libXdmcp, libXft, ntk, pcre, fftwFloat, zita-resampler }:
+
+stdenv.mkDerivation rec {
+  name = "infamousPlugins-${version}";
+  version = "0.2.04";
+
+  src = fetchFromGitHub {
+    owner = "ssj71";
+    repo = "infamousPlugins";
+    rev = "v${version}";
+    sha256 = "0hmqk80w4qxq09iag7b7srf2g0wigkyhzq0ywxvhz2iz0hq9k0dh";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/ingen/default.nix b/nixpkgs/pkgs/applications/audio/ingen/default.nix
new file mode 100644
index 000000000000..e10a25b89174
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ingen/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv
+, lv2Unstable, makeWrapper, pkgconfig, python, raul, rdflib, serd, sord, sratom
+, wafHook
+, suil
+}:
+
+stdenv.mkDerivation  rec {
+  name = "ingen-unstable-${rev}";
+  rev = "2017-07-22";
+
+  src = fetchgit {
+    url = "https://git.drobilla.net/cgit.cgi/ingen.git";
+    rev = "cc4a4db33f4d126a07a4a498e053c5fb9a883be3";
+    sha256 = "1gmwmml486r9zq4w65v91mfaz36af9zzyjkmi74m8qmh67ffqn3w";
+    deepClone = true;
+  };
+
+  nativeBuildInputs = [ pkgconfig wafHook ];
+  buildInputs = [
+    boost ganv glibmm gtkmm2 libjack2 lilv lv2Unstable 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/lib/python${python.majorVersion}/site-packages:$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.gpl3;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ir.lv2/default.nix b/nixpkgs/pkgs/applications/audio/ir.lv2/default.nix
new file mode 100644
index 000000000000..84be6b866fae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ir.lv2/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, fftw, gtk2, lv2, libsamplerate, libsndfile, pkgconfig, zita-convolver }:
+
+stdenv.mkDerivation rec {
+  name = "ir.lv2-${version}";
+  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 ];
+
+  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/nixpkgs/pkgs/applications/audio/jaaa/default.nix b/nixpkgs/pkgs/applications/audio/jaaa/default.nix
new file mode 100644
index 000000000000..33c74f2b0443
--- /dev/null
+++ b/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 {
+  name = "jaaa-${version}";
+  version = "0.9.2";
+
+  src = fetchurl {
+    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.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/nixpkgs/pkgs/applications/audio/jack-capture/default.nix b/nixpkgs/pkgs/applications/audio/jack-capture/default.nix
new file mode 100644
index 000000000000..f11bba34c74c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/jack-capture/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, libjack2, libsndfile, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "jack_capture-${version}";
+  version = "0.9.73";
+
+  src = fetchurl {
+    url = "https://archive.notam02.no/arkiv/src/${name}.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/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix b/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix
new file mode 100644
index 000000000000..75a8a6a4b1a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, SDL, libjack2, libGLU_combined, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "jack_oscrolloscope-${version}";
+  version = "0.7";
+
+  src = fetchurl {
+    url = "http://das.nasophon.de/download/${name}.tar.gz";
+    sha256 = "1pl55in0sj7h5r06n1v91im7d18pplvhbjhjm1fdl39zwnyxiash";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ SDL libjack2 libGLU_combined ];
+
+  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/nixpkgs/pkgs/applications/audio/jack-rack/default.nix b/nixpkgs/pkgs/applications/audio/jack-rack/default.nix
new file mode 100644
index 000000000000..d68e67d19dd4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/jack-rack/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, libjack2, ladspaH, gtk2, alsaLib, libxml2, librdf }:
+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 librdf ];
+
+  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/nixpkgs/pkgs/applications/audio/jackmeter/default.nix b/nixpkgs/pkgs/applications/audio/jackmeter/default.nix
new file mode 100644
index 000000000000..e44dfddd37b7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/jackmix/default.nix b/nixpkgs/pkgs/applications/audio/jackmix/default.nix
new file mode 100644
index 000000000000..83644dd5ea51
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/jackmix/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, scons, qt4, lash, libjack2, jack ? libjack2 }:
+
+stdenv.mkDerivation rec {
+  name = "jackmix-0.5.2";
+  src = fetchurl {
+    url = https://github.com/kampfschlaefer/jackmix/archive/v0.5.2.tar.gz;
+    sha256 = "18f5v7g66mgarhs476frvayhch7fy4nyjf2xivixc061ipn0m82j";
+  };
+
+  patches = [ ./no_error.patch ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    scons
+    qt4
+    lash
+    jack
+  ];
+
+  installPhase = ''
+    install -D jackmix/jackmix $out/bin/jackmix
+  '';
+
+  meta = {
+    description = "Matrix-Mixer for the Jack-Audio-connection-Kit";
+    homepage = http://www.arnoldarts.de/jackmix/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.kampfschlaefer ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/jackmix/no_error.patch b/nixpkgs/pkgs/applications/audio/jackmix/no_error.patch
new file mode 100644
index 000000000000..d1a714ded9ca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/jackmix/no_error.patch
@@ -0,0 +1,13 @@
+diff --git a/SConstruct b/SConstruct
+index 4290fa5..0a7a679 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -16,7 +16,7 @@ env = Environment(
+ env.Replace( LIBS="" )
+ env.Replace( LIBPATH="" )
+
+-env.MergeFlags( ['-Wall', '-Werror', '-g', '-fpic'] )
++env.MergeFlags( ['-g', '-fpic'] )
+
+ tests = { }
+ tests.update( env['PKGCONFIG_TESTS'] )
diff --git a/nixpkgs/pkgs/applications/audio/jalv/default.nix b/nixpkgs/pkgs/applications/audio/jalv/default.nix
new file mode 100644
index 000000000000..e2f0c7ea7af4
--- /dev/null
+++ b/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 {
+  name = "jalv-${version}";
+  version = "1.6.0";
+
+  src = fetchurl {
+    url = "https://download.drobilla.net/${name}.tar.bz2";
+    sha256 = "1x2wpzzx2cgvz3dgdcgsj8dr0w3zsasy62mvl199bsdj5fbjaili";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/jamin/default.nix b/nixpkgs/pkgs/applications/audio/jamin/default.nix
new file mode 100644
index 000000000000..eea9de5a1597
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/jamin/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, fftwFloat, gtk2, ladspaPlugins, libjack2, liblo, libxml2
+, makeWrapper, pkgconfig, perlPackages
+}:
+
+stdenv.mkDerivation {
+  name = "jamin-0.95.0";
+
+  src = fetchurl {
+    url = mirror://sourceforge/jamin/jamin-0.95.0.tar.gz;
+    sha256 = "0g5v74cm0q3p3pzl6xmnp4rqayaymfli7c6z8s78h9rgd24fwbvn";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ fftwFloat gtk2 ladspaPlugins libjack2 liblo libxml2 makeWrapper ]
+    ++ (with perlPackages; [ perl XMLParser ]);
+
+  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/nixpkgs/pkgs/applications/audio/japa/default.nix b/nixpkgs/pkgs/applications/audio/japa/default.nix
new file mode 100644
index 000000000000..18b7bcd1d568
--- /dev/null
+++ b/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";
+  name = "japa-${version}";
+
+  src = fetchurl {
+    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.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/nixpkgs/pkgs/applications/audio/keyfinder-cli/default.nix b/nixpkgs/pkgs/applications/audio/keyfinder-cli/default.nix
new file mode 100644
index 000000000000..344e6894baf5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/keyfinder-cli/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, libav, libkeyfinder }:
+
+stdenv.mkDerivation rec {
+  name = "keyfinder-cli-${version}";
+  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/nixpkgs/pkgs/applications/audio/keyfinder/default.nix b/nixpkgs/pkgs/applications/audio/keyfinder/default.nix
new file mode 100644
index 000000000000..55039e8508bc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/keyfinder/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, libav_0_8, libkeyfinder, qtbase, qtxmlpatterns, qmake, taglib }:
+
+stdenv.mkDerivation rec {
+  name = "keyfinder-${version}";
+  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/nixpkgs/pkgs/applications/audio/kid3/default.nix b/nixpkgs/pkgs/applications/audio/kid3/default.nix
new file mode 100644
index 000000000000..522ffa2a5338
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/kid3/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl
+, pkgconfig, cmake, python, ffmpeg, phonon, automoc4
+, chromaprint, docbook_xml_dtd_45, docbook_xsl, libxslt
+, id3lib, taglib, mp4v2, flac, libogg, libvorbis
+, zlib, readline , qtbase, qttools, qtmultimedia, qtquickcontrols
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "kid3-${version}";
+  version = "3.7.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/kid3/kid3/${version}/${name}.tar.gz";
+    sha256 = "1bj4kq9hklgfp81rbxcjzbxmdgxjqksx7cqnw3m9dc0pnns5jx0x";
+  };
+
+  buildInputs = with stdenv.lib;
+  [ pkgconfig cmake python ffmpeg phonon automoc4
+    chromaprint docbook_xml_dtd_45 docbook_xsl libxslt
+    id3lib taglib mp4v2 flac libogg libvorbis zlib readline
+    qtbase qttools qtmultimedia qtquickcontrols makeWrapper ];
+
+  cmakeFlags = [ "-DWITH_APPS=Qt;CLI" ];
+  NIX_LDFLAGS = "-lm -lpthread";
+
+  preConfigure = ''
+    export DOCBOOKDIR="${docbook_xsl}/xml/xsl/docbook/"
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/kid3-qt --prefix QT_PLUGIN_PATH : $out/lib/qt5/plugins
+  '';
+
+  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/nixpkgs/pkgs/applications/audio/klick/default.nix b/nixpkgs/pkgs/applications/audio/klick/default.nix
new file mode 100644
index 000000000000..4d1ae8ebd58e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/klick/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, scons, pkgconfig
+, libsamplerate, libsndfile, liblo, libjack2, boost }:
+
+stdenv.mkDerivation rec {
+  name = "klick-${version}";
+  version = "0.12.2";
+
+  src = fetchurl {
+    url = "http://das.nasophon.de/download/${name}.tar.gz";
+    sha256 = "1289533c0849b1b66463bf27f7ce5f71736b655cfb7672ef884c7e6eb957ac42";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ scons 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/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix b/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
new file mode 100644
index 000000000000..a60b3db2fb86
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, autoreconfHook, automake, fftw, ladspaH, libxml2, pkgconfig
+, perlPackages }:
+
+stdenv.mkDerivation rec {
+  name = "swh-plugins-${version}";
+  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/nixpkgs/pkgs/applications/audio/ladspa-sdk/default.nix b/nixpkgs/pkgs/applications/audio/ladspa-sdk/default.nix
new file mode 100644
index 000000000000..296a4f86a848
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ladspa-sdk/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+  name = "ladspa-sdk-${version}";
+  version = "1.13";
+  src = fetchurl {
+    url = "https://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
+    sha256 = "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/ladspa-sdk/ladspah.nix b/nixpkgs/pkgs/applications/audio/ladspa-sdk/ladspah.nix
new file mode 100644
index 000000000000..01acc0d01f7e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ladspa-sdk/ladspah.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+  name = "ladspa.h-${version}";
+  version = "1.13";
+  src = fetchurl {
+    url = "https://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
+    sha256 = "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/lash/default.nix b/nixpkgs/pkgs/applications/audio/lash/default.nix
new file mode 100644
index 000000000000..9d2950735976
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/lash/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, alsaLib, gtk2, libjack2, libuuid, libxml2
+, makeWrapper, pkgconfig, readline }:
+
+assert libuuid != null;
+
+stdenv.mkDerivation  rec {
+  name = "lash-${version}";
+  version = "0.5.4";
+
+  src = fetchurl {
+    url = "mirror://savannah/lash/${name}.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 ];
+
+  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/nixpkgs/pkgs/applications/audio/lash/gcc-47.patch b/nixpkgs/pkgs/applications/audio/lash/gcc-47.patch
new file mode 100644
index 000000000000..774add431fab
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/lash/socket.patch b/nixpkgs/pkgs/applications/audio/lash/socket.patch
new file mode 100644
index 000000000000..c28259214443
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix b/nixpkgs/pkgs/applications/audio/lastfmsubmitd/default.nix
new file mode 100644
index 000000000000..3135a00334c7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/lastwatch/default.nix b/nixpkgs/pkgs/applications/audio/lastwatch/default.nix
new file mode 100644
index 000000000000..d2ef7434c4db
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/lastwatch/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  pname = "lastwatch";
+  version = "0.4.1";
+
+  src = fetchgit {
+    url = "git://github.com/aszlig/LastWatch.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "0nlng3595j5jvnikk8i5hb915zak5zsmfn2306cc4gfcns9xzjwp";
+  };
+
+  propagatedBuildInputs = with python2Packages; [
+    pyinotify
+    pylast
+    mutagen
+  ];
+
+  meta = {
+    homepage = https://github.com/aszlig/LastWatch;
+    description = "An inotify-based last.fm audio scrobbler";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/lingot/default.nix b/nixpkgs/pkgs/applications/audio/lingot/default.nix
new file mode 100644
index 000000000000..d2ec92e0654a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/lingot/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk2, alsaLib, libglade }:
+
+stdenv.mkDerivation {
+  name = "lingot-0.9.1";
+
+  src = fetchurl {
+    url = mirror://savannah/lingot/lingot-0.9.1.tar.gz;
+    sha256 = "0ygras6ndw2fylwxx86ac11pcr2y2bcfvvgiwrh92z6zncx254gc";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool gtk2 alsaLib libglade ];
+
+  configureFlags = [ "--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/nixpkgs/pkgs/applications/audio/linuxband/default.nix b/nixpkgs/pkgs/applications/audio/linuxband/default.nix
new file mode 100644
index 000000000000..a8e33c23dc0d
--- /dev/null
+++ b/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";
+  name = "linuxband-${version}";
+
+  src = fetchurl {
+    url = "http://linuxband.org/assets/sources/${name}.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/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix b/nixpkgs/pkgs/applications/audio/linuxsampler/default.nix
new file mode 100644
index 000000000000..f173e41321f0
--- /dev/null
+++ b/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 {
+  name = "linuxsampler-${version}";
+  version = "2.1.0";
+
+  src = fetchurl {
+    url = "https://download.linuxsampler.org/packages/${name}.tar.bz2";
+    sha256 = "0fdxpw7jjfi058l95131d6d8538h05z7n94l60i6mhp9xbplj2jf";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/lmms/default.nix b/nixpkgs/pkgs/applications/audio/lmms/default.nix
new file mode 100644
index 000000000000..59e94e0bdad5
--- /dev/null
+++ b/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 }:
+
+stdenv.mkDerivation rec {
+  name = "lmms-${version}";
+  version = "1.2.0-rc7";
+
+  src = fetchFromGitHub {
+    owner = "LMMS";
+    repo = "lmms";
+    rev = "v${version}";
+    sha256 = "1hshzf2sbdfw37y9rz1ksgvn81kp2n23dp74lsaasc2n7wzjwdis";
+    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 = platforms.linux;
+    maintainers = with maintainers; [ goibhniu yegortimoshenko ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/lollypop/default.nix b/nixpkgs/pkgs/applications/audio/lollypop/default.nix
new file mode 100644
index 000000000000..5fbf9108ed77
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/lollypop/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchgit, meson, ninja, pkgconfig
+, python3, gtk3, gst_all_1, libsecret, libsoup
+, appstream-glib, desktop-file-utils, gnome3
+, gobject-introspection, wrapGAppsHook }:
+
+python3.pkgs.buildPythonApplication rec  {
+  pname = "lollypop";
+  version = "0.9.906";
+
+  format = "other";
+  doCheck = false;
+
+  src = fetchgit {
+    url = "https://gitlab.gnome.org/World/lollypop";
+    rev = "refs/tags/${version}";
+    fetchSubmodules = true;
+    sha256 = "1blfq3vdzs3ji3sr1z6dn5c2f8w93zv2k7aa5xpfpfnds4zfd3q6";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    appstream-glib
+    desktop-file-utils
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    wrapGAppsHook
+  ];
+
+  buildInputs = with gst_all_1; [
+    gnome3.totem-pl-parser
+    gst-libav
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-ugly
+    gstreamer
+    gtk3
+    libsecret
+    libsoup
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    beautifulsoup4
+    gst-python
+    pillow
+    pycairo
+    pydbus
+    pygobject3
+    pylast
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
+
+  preFixup = ''
+    buildPythonPath "$out $propagatedBuildInputs"
+    patchPythonScript "$out/libexec/lollypop-sp"
+  '';
+
+  meta = with stdenv.lib; {
+    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/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix b/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
new file mode 100644
index 000000000000..d567dc584d8b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
@@ -0,0 +1,160 @@
+{ stdenv, fetchFromGitHub, pkgconfig, makeWrapper
+, libsndfile, jack2Full
+, libGLU, libGL, lv2, cairo
+, ladspaH, php, expat }:
+
+stdenv.mkDerivation rec {
+  pname = "lsp-plugins";
+  version = "1.1.4";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "sadko4u";
+    repo = "${pname}";
+    rev = "${name}";
+    sha256 = "0vb8ax0w4d2a153wxrhkpi21fxsv7c24k57vhfgmm1lqwv6pbl69";
+  };
+
+  nativeBuildInputs = [ pkgconfig php expat ];
+  buildInputs = [ jack2Full libsndfile libGLU libGL lv2 cairo ladspaH makeWrapper ];
+
+  makeFlags = [
+    "BIN_PATH=$(out)/bin"
+    "LIB_PATH=$(out)/lib"
+    "DOC_PATH=$(out)/share/doc"
+  ];
+
+  NIX_CFLAGS_COMPILE = [ "-DLSP_NO_EXPERIMENTAL" ];
+
+  patchPhase = ''
+    runHook prePatch
+    substituteInPlace Makefile --replace "/usr/lib" "$out/lib"
+    substituteInPlace ./include/container/jack/main.h --replace "/usr/lib" "$out/lib"
+    substituteInPlace ./include/container/vst/main.h --replace "/usr/lib" "$out/lib"
+    # for https://github.com/sadko4u/lsp-plugins/issues/7#issuecomment-426561549 :
+    sed -i '/X11__NET_WM_WINDOW_TYPE_DOCK;/d' ./src/ui/ws/x11/X11Window.cpp
+    runHook postPatch
+  '';
+
+  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
+        - 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
+        - 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
+        - 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 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
+        - 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 = http://lsp-plug.in;
+      maintainers = with maintainers; [ magnetophon ];
+      license = licenses.gpl2;
+      platforms = platforms.linux;
+    };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ltc-tools/default.nix b/nixpkgs/pkgs/applications/audio/ltc-tools/default.nix
new file mode 100644
index 000000000000..79edfdef5040
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ltc-tools/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchFromGitHub, pkgconfig, libltc, libsndfile, jack2}:
+
+stdenv.mkDerivation rec {
+  name = "ltc-tools-${version}";
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "x42";
+    repo = "ltc-tools";
+    rev = "v${version}";
+    sha256 = "1a7r99mwc7p5j5y453mrgph67wlznd674v4k2pfmlvc91s6lh44y";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/luppp/build-install.patch b/nixpkgs/pkgs/applications/audio/luppp/build-install.patch
new file mode 100644
index 000000000000..4dae65438cb5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/luppp/build-install.patch
@@ -0,0 +1,16 @@
+commit 4ec09e6f6e00e40622a5207ed24dc657da9a9090
+Author: Pavol Rusnak <stick@gk2.sk>
+Date:   Tue Dec 4 12:06:22 2018 +0100
+
+    build: add install: true to executable in meson.build
+
+diff --git a/meson.build b/meson.build
+index 050e1b1..9224ed5 100644
+--- a/meson.build
++++ b/meson.build
+@@ -39,4 +39,5 @@ endforeach
+ 
+ # compile the main project
+ executable('luppp', luppp_src + [version_hxx],
++    install: true,
+     dependencies: deps)
diff --git a/nixpkgs/pkgs/applications/audio/luppp/default.nix b/nixpkgs/pkgs/applications/audio/luppp/default.nix
new file mode 100644
index 000000000000..fdba836a6ae2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/luppp/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub
+, meson
+, ninja
+, pkgconfig
+, jack2
+, cairo
+, liblo
+, libsndfile
+, libsamplerate
+, ntk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "luppp";
+  version = "1.2.0";
+  patches = [ ./build-install.patch ];
+
+  src = fetchFromGitHub {
+    owner = "openAVproductions";
+    repo = "openAV-Luppp";
+    rev = "release-${version}";
+    sha256 = "194yq0lqc2psq9vyxmzif40ccawcvd9jndcn18mkz4f8h5w5rc1a";
+  };
+
+  nativeBuildInputs = [
+    meson ninja pkgconfig
+  ];
+
+  buildInputs = [
+    jack2 cairo liblo libsndfile libsamplerate ntk
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://openavproductions.com/luppp/;
+    description = "A music creation tool, intended for live use";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ prusnak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/lv2bm/default.nix b/nixpkgs/pkgs/applications/audio/lv2bm/default.nix
new file mode 100644
index 000000000000..d3821c51fbc6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/lv2bm/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, glib, lilv, lv2, pkgconfig, serd, sord, sratom }:
+
+stdenv.mkDerivation rec {
+  name = "lv2bm-${version}";
+  version = "git-2015-11-29";
+
+  src = fetchFromGitHub {
+    owner = "moddevices";
+    repo = "lv2bm";
+    rev = "e844931503b7597f45da6d61ff506bb9fca2e9ca";
+    sha256 = "1rrz5sp04zjal6v34ldkl6fjj9xqidb8xm1iscjyljf6z4l516cx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib 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/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
new file mode 100644
index 000000000000..f355c540f301
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/CharacterCompressor/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  name = "CharacterCompressor-${version}";
+  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/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
new file mode 100644
index 000000000000..90e4eabeef0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/CompBus/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  name = "CompBus-${version}";
+  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/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
new file mode 100644
index 000000000000..73dd7b48e9c4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/ConstantDetuneChorus/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  name = "constant-detune-chorus-${version}";
+  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/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
new file mode 100644
index 000000000000..39065db6edeb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/LazyLimiter/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  name = "LazyLimiter-${version}";
+  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/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
new file mode 100644
index 000000000000..362451988d38
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/MBdistortion/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  name = "MBdistortion-${version}";
+  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/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
new file mode 100644
index 000000000000..3f809aa78474
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/RhythmDelay/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  name = "RhythmDelay-${version}";
+  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/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
new file mode 100644
index 000000000000..740763889ffd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/VoiceOfFaust/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, faust2jack, faust2lv2, helmholtz, mrpeach, puredata-with-plugins }:
+stdenv.mkDerivation rec {
+  name = "VoiceOfFaust-${version}";
+  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/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
new file mode 100644
index 000000000000..fece392ab1cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/faustCompressors/default.nix
@@ -0,0 +1,46 @@
+{ 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 = ''
+    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/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
new file mode 100644
index 000000000000..6237628e600c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/pluginUtils/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  name = "pluginUtils-${version}";
+  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/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix b/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
new file mode 100644
index 000000000000..cb9247fd3d08
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/magnetophonDSP/shelfMultiBand/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  name = "shelfMultiBand-${version}";
+  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/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix b/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
new file mode 100644
index 000000000000..26290e5bf888
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mda-lv2/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, fftwSinglePrec, lv2, pkgconfig, python, wafHook }:
+
+stdenv.mkDerivation rec {
+  name = "mda-lv2-${version}";
+  version = "1.2.2";
+
+  src = fetchurl {
+    url = "https://download.drobilla.net/${name}.tar.bz2";
+    sha256 = "0hh40c5d2m0k5gb3vw031l6lqn59dg804an3mkmhkc7qv4gc6xm4";
+  };
+
+  nativeBuildInputs = [ pkgconfig wafHook ];
+  buildInputs = [ fftwSinglePrec lv2 python ];
+
+  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/nixpkgs/pkgs/applications/audio/meterbridge/buf_rect.patch b/nixpkgs/pkgs/applications/audio/meterbridge/buf_rect.patch
new file mode 100644
index 000000000000..f108b80c1019
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/meterbridge/default.nix b/nixpkgs/pkgs/applications/audio/meterbridge/default.nix
new file mode 100644
index 000000000000..d16107e4c292
--- /dev/null
+++ b/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";
+  name = "meterbridge-${version}";
+
+  src = fetchurl {
+    url = "http://plugin.org.uk/meterbridge/${name}.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/nixpkgs/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch b/nixpkgs/pkgs/applications/audio/meterbridge/fix_build_with_gcc-5.patch
new file mode 100644
index 000000000000..a738cd0b82a9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix b/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix
new file mode 100644
index 000000000000..669ffbb2688a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, pkgconfig
+, lv2, libGLU_combined, gtk2, cairo, pango, fftw }:
+
+let
+  version = "0.8.1";
+  name = "meters.lv2-${version}";
+
+  # robtk submodule is pegged to this version
+  robtkVersion = "0.3.0";
+  robtkName = "robtk-${robtkVersion}";
+
+  src = fetchurl {
+    name = "${name}.tar.gz";
+    url = "https://github.com/x42/meters.lv2/archive/v${version}.tar.gz";
+    sha256 = "142dg0j34mv5b0agajj2x1n9kgsmkfh08n1cjzk0j8n4xk2wb6ri";
+  };
+
+  robtkSrc = fetchurl {
+    name = "${robtkName}.tar.gz";
+    url = "https://github.com/x42/robtk/archive/v${robtkVersion}.tar.gz";
+    sha256 = "1ny89i2sgga56k7fxskp9y8sb7pfhp6wgw5mni842p19z6q7h8rq";
+  };
+
+in
+stdenv.mkDerivation {
+  inherit name;
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ lv2 libGLU_combined gtk2 cairo pango fftw ];
+
+  srcs = [ src robtkSrc ];
+  sourceRoot = name;
+
+  postUnpack = "mv ${robtkName}/* ${name}/robtk"; # */
+
+  postPatch = "sed -i 's/fftw3f/fftw3/' Makefile";
+
+  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/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix b/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
new file mode 100644
index 000000000000..db70e59218b3
--- /dev/null
+++ b/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 {
+  name = "mhwaveedit-${version}";
+  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/nixpkgs/pkgs/applications/audio/mi2ly/default.nix b/nixpkgs/pkgs/applications/audio/mi2ly/default.nix
new file mode 100644
index 000000000000..58c1690a9bb0
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/mi2ly/default.upstream b/nixpkgs/pkgs/applications/audio/mi2ly/default.upstream
new file mode 100644
index 000000000000..0b2607989aa2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/mid2key/default.nix b/nixpkgs/pkgs/applications/audio/mid2key/default.nix
new file mode 100644
index 000000000000..26ea2c7b0b2c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mid2key/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, alsaLib, libX11, libXi, libXtst, xextproto }:
+
+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 xextproto ];
+
+  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/nixpkgs/pkgs/applications/audio/midas/generic.nix b/nixpkgs/pkgs/applications/audio/midas/generic.nix
new file mode 100644
index 000000000000..293d1b0b6c82
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/midas/generic.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, lib, libX11, libXext, alsaLib, freetype, brand, type, version, homepage, sha256, ... }:
+stdenv.mkDerivation rec {
+  inherit type;
+  baseName = "${type}-Edit";
+  name = "${lib.toLower baseName}-${version}";
+
+  src = fetchurl {
+    url = "http://downloads.music-group.com/software/behringer/${type}/${type}-Edit_LINUX_64bit_${version}.tar.gz";
+    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/nixpkgs/pkgs/applications/audio/midas/m32edit.nix b/nixpkgs/pkgs/applications/audio/midas/m32edit.nix
new file mode 100644
index 000000000000..c8a751c235b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/midas/m32edit.nix
@@ -0,0 +1,9 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  brand = "Midas";
+  type = "M32";
+  version = "3.2";
+  sha256 = "1cds6qinz37086l6pmmgrzrxadygjr2z96sjjyznnai2wz4z2nrd";
+  homepage = http://www.musictri.be/Categories/Midas/Mixers/Digital/M32/p/P0B3I/downloads;
+})
diff --git a/nixpkgs/pkgs/applications/audio/midas/x32edit.nix b/nixpkgs/pkgs/applications/audio/midas/x32edit.nix
new file mode 100644
index 000000000000..4aacfcc89a36
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/midas/x32edit.nix
@@ -0,0 +1,9 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  brand = "Behringer";
+  type = "X32";
+  version = "3.2";
+  sha256 = "1lzmhd0sqnlzc0khpwm82sfi48qhv7rg153a57qjih7hhhy41mzk";
+  homepage = http://www.musictri.be/Categories/Behringer/Mixers/Digital/X32/p/P0ASF/downloads;
+})
diff --git a/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix b/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
new file mode 100644
index 000000000000..448977e5705b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl
+, mono, dotnetPackages, makeWrapper
+, gtk2, cups, timidity }:
+
+let
+  version = "2.6";
+in stdenv.mkDerivation {
+  name = "midisheetmusic-${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 ]} \
+      --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/nixpkgs/pkgs/applications/audio/mikmod/default.nix b/nixpkgs/pkgs/applications/audio/mikmod/default.nix
new file mode 100644
index 000000000000..42fa8b7621a5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/milkytracker/default.nix b/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
new file mode 100644
index 000000000000..6b3abeb1e23c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/milkytracker/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, makeWrapper
+, SDL2, alsaLib, libjack2, lhasa, perl, rtmidi, zlib, zziplib }:
+
+stdenv.mkDerivation rec {
+  version = "1.02.00";
+  name = "milkytracker-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "milkytracker";
+    repo   = "MilkyTracker";
+    rev    = "v${version}";
+    sha256 = "05a6d7l98k9i82dwrgi855dnccm3f2lkb144gi244vhk1156n0ca";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+
+  buildInputs = [ SDL2 alsaLib libjack2 lhasa perl rtmidi zlib zziplib ];
+
+  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/nixpkgs/pkgs/applications/audio/mimic/default.nix b/nixpkgs/pkgs/applications/audio/mimic/default.nix
new file mode 100644
index 000000000000..a4cd0c944dc2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mimic/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, autoreconfHook, fetchFromGitHub, pkgconfig
+, alsaLib, libtool, icu
+, pulseaudioSupport ? true, libpulseaudio }:
+
+stdenv.mkDerivation rec {
+  name = "mimic-${version}";
+  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/nixpkgs/pkgs/applications/audio/mimms/default.nix b/nixpkgs/pkgs/applications/audio/mimms/default.nix
new file mode 100644
index 000000000000..2d301a8b6a96
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/minimodem/default.nix b/nixpkgs/pkgs/applications/audio/minimodem/default.nix
new file mode 100644
index 000000000000..8d179e8eed11
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/minimodem/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoconf, automake, libtool
+, fftw, fftwSinglePrec, alsaLib, libsndfile, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.24-1";
+  pname = "minimodem";
+  name = "${pname}-${version}";
+
+  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/nixpkgs/pkgs/applications/audio/mixxx/default.nix b/nixpkgs/pkgs/applications/audio/mixxx/default.nix
new file mode 100644
index 000000000000..4c84fb3c3f77
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mixxx/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, makeWrapper, chromaprint, fetchpatch
+, fftw, flac, faad2, glibcLocales, mp4v2
+, libid3tag, libmad, libopus, libshout, libsndfile, libusb1, libvorbis
+, opusfile
+, pkgconfig, portaudio, portmidi, protobuf, qt4, rubberband, scons, sqlite
+, taglib, upower, vampSDK
+}:
+
+stdenv.mkDerivation rec {
+  name = "mixxx-${version}";
+  version = "2.1.5";
+
+  src = fetchFromGitHub {
+    owner = "mixxxdj";
+    repo = "mixxx";
+    rev = "release-${version}";
+    sha256 = "0h14pwglz03sdmgzviypv1qa1xfjclrnhyqaq5nd60j47h4z39dr";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [
+    chromaprint fftw flac faad2 glibcLocales mp4v2 libid3tag libmad libopus libshout libsndfile
+    libusb1 libvorbis opusfile pkgconfig portaudio portmidi protobuf qt4
+    rubberband scons sqlite taglib upower vampSDK
+  ];
+
+  sconsFlags = [
+    "build=release"
+    "qtdir=${qt4}"
+    "faad=1"
+    "opus=1"
+  ];
+
+  fixupPhase = ''
+    wrapProgram $out/bin/mixxx \
+      --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.aszlig maintainers.goibhniu maintainers.bfortz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/moc/default.nix b/nixpkgs/pkgs/applications/audio/moc/default.nix
new file mode 100644
index 000000000000..ea83a1012ebb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/moc/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg
+, libvorbis, libmpc, libsndfile, libjack2, db, libmodplug, timidity, libid3tag
+, libtool
+}:
+
+stdenv.mkDerivation rec {
+  name = "moc-${version}";
+  version = "2.5.2";
+
+  src = fetchurl {
+    url = "http://ftp.daper.net/pub/soft/moc/stable/moc-${version}.tar.bz2";
+    sha256 = "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [
+    ncurses alsaLib flac libmad speex ffmpeg libvorbis libmpc libsndfile libjack2
+    db libmodplug timidity libid3tag libtool
+  ];
+
+  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; [ pSub jagajaga ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix b/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix
new file mode 100644
index 000000000000..c66f78373228
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mod-distortion/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, lv2 }:
+
+stdenv.mkDerivation rec {
+  name = "mod-distortion-git-${version}";
+  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/nixpkgs/pkgs/applications/audio/monkeys-audio/buildfix.diff b/nixpkgs/pkgs/applications/audio/monkeys-audio/buildfix.diff
new file mode 100644
index 000000000000..9684e5bf8e43
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix b/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix
new file mode 100644
index 000000000000..1b3e89d4885e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  version = "3.99-u4-b5";
+  pname = "monkeys-audio";
+  name = pname + "-" + version;
+
+  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; {
+    platforms = platforms.linux;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/default.nix b/nixpkgs/pkgs/applications/audio/mopidy/default.nix
new file mode 100644
index 000000000000..81b14a694534
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, pythonPackages, wrapGAppsHook
+, gst_all_1, glib-networking, gobject-introspection
+}:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "mopidy";
+  version = "2.2.1";
+
+  src = fetchFromGitHub {
+    owner = "mopidy";
+    repo = "mopidy";
+    rev = "v${version}";
+    sha256 = "012gg6x6d27adbfnwd4a607dl49bzk74az6h9djfvl2w0rbxzhhr";
+  };
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  buildInputs = with gst_all_1; [
+    gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad
+    glib-networking gobject-introspection
+  ];
+
+  propagatedBuildInputs = with pythonPackages; [
+    gst-python pygobject3 pykka tornado_4 requests
+  ] ++ 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 = with maintainers; [ rickynils fpletz ];
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix b/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix
new file mode 100644
index 000000000000..5566c4b07b21
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/gmusic.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pythonPackages, mopidy }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "mopidy-gmusic";
+  version = "3.0.0";
+
+  src = fetchurl {
+    url = "https://github.com/mopidy/mopidy-gmusic/archive/v${version}.tar.gz";
+    sha256 = "0a2s4xrrhnkv85rx4w5bj6ih9xm34jy0q71fdvbzmi827g9dw5sz";
+  };
+
+  propagatedBuildInputs = [
+    mopidy
+    pythonPackages.requests
+    pythonPackages.gmusicapi
+    pythonPackages.cachetools_1
+  ];
+
+  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/nixpkgs/pkgs/applications/audio/mopidy/iris.nix b/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
new file mode 100644
index 000000000000..26cef8dc5ec7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
@@ -0,0 +1,34 @@
+{ stdenv, pythonPackages, mopidy, mopidy-local-images }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "Mopidy-Iris";
+  version = "3.31.3";
+
+  src = pythonPackages.fetchPypi {
+    inherit pname version;
+    sha256 = "060kvwlch2jgiriafly8y03fp8gpbw9xiwhq8ncdij390a03iz8n";
+  };
+
+  propagatedBuildInputs = [
+    mopidy
+    mopidy-local-images
+  ] ++ (with pythonPackages; [
+    configobj
+    pylast
+    spotipy
+    raven
+    tornado_4
+  ]);
+
+  postPatch = "sed -i /tornado/d setup.py";
+
+  # 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/nixpkgs/pkgs/applications/audio/mopidy/local-images.nix b/nixpkgs/pkgs/applications/audio/mopidy/local-images.nix
new file mode 100644
index 000000000000..2ffc736572bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/local-images.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pythonPackages, mopidy, gobject-introspection }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "mopidy-local-images";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "mopidy";
+    repo = "mopidy-local-images";
+    rev = "v${version}";
+    sha256 = "0gdqxws0jish50mmi57mlqcs659wrllzv00czl18niz94vzvyc0d";
+  };
+
+  buildInputs = [ gobject-introspection ];
+
+  checkInputs = [
+    pythonPackages.mock
+  ];
+
+  propagatedBuildInputs = [
+    mopidy
+    pythonPackages.pykka
+    pythonPackages.uritools
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mopidy/mopidy-local-images;
+    description = "Mopidy local library proxy extension for handling embedded album art";
+    license = licenses.asl20;
+    maintainers = [ maintainers.rvolosatovs ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/local-sqlite.nix b/nixpkgs/pkgs/applications/audio/mopidy/local-sqlite.nix
new file mode 100644
index 000000000000..6d0cc370ff34
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/local-sqlite.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "mopidy-local-sqlite";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "mopidy";
+    repo = "mopidy-local-sqlite";
+    rev = "v${version}";
+    sha256 = "1fjd9ydbfwd1n9b9zw8zjn4l7c5hpam2n0xs51pjkjn82m3zq9zv";
+  };
+
+  propagatedBuildInputs = [
+    mopidy
+    pythonPackages.uritools
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mopidy/mopidy-local-sqlite;
+    description = "Mopidy SQLite local library extension";
+    license = licenses.asl20;
+    maintainers = [ maintainers.rvolosatovs ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/moped.nix b/nixpkgs/pkgs/applications/audio/mopidy/moped.nix
new file mode 100644
index 000000000000..3754bf763b20
--- /dev/null
+++ b/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 = [ maintainers.rickynils ];
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/mopify.nix b/nixpkgs/pkgs/applications/audio/mopidy/mopify.nix
new file mode 100644
index 000000000000..b657f69e26ee
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/mopidy/musicbox-webclient.nix b/nixpkgs/pkgs/applications/audio/mopidy/musicbox-webclient.nix
new file mode 100644
index 000000000000..b0abefd7a1fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/musicbox-webclient.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "mopidy-musicbox-webclient";
+  version = "2.3.0";
+
+  src = fetchFromGitHub {
+    owner = "pimusicbox";
+    repo = "mopidy-musicbox-webclient";
+    rev = "v${version}";
+    sha256 = "1jcfrwsi7axiph3jplqzmcqia9pc46xb2yf13d8h6lnh3h49rwvz";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/mopidy/soundcloud.nix b/nixpkgs/pkgs/applications/audio/mopidy/soundcloud.nix
new file mode 100644
index 000000000000..8002feb0f901
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/mopidy/spotify-tunigo.nix b/nixpkgs/pkgs/applications/audio/mopidy/spotify-tunigo.nix
new file mode 100644
index 000000000000..4b75af5ed579
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/mopidy/spotify.nix b/nixpkgs/pkgs/applications/audio/mopidy/spotify.nix
new file mode 100644
index 000000000000..9a6e1bef994c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/spotify.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pythonPackages, mopidy }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "mopidy-spotify";
+  version = "3.1.0";
+
+  src = fetchurl {
+    url = "https://github.com/mopidy/mopidy-spotify/archive/v${version}.tar.gz";
+    sha256 = "1mh87w4j0ypvsrnax7kkjgfxfpnw3l290jvfzg56b8qlwf20khjl";
+  };
+
+  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 = [ maintainers.rickynils ];
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix b/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix
new file mode 100644
index 000000000000..b8e22a41cabf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, pythonPackages, mopidy }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "mopidy-youtube";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = "mopidy";
+    repo = "mopidy-youtube";
+    rev = "v${version}";
+    sha256 = "06r3ikyg2ch5n7fbn3sgj04hk6icpfpk1r856qch41995k3bbfg7";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [ mopidy pafy ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Mopidy extension for playing music from YouTube";
+    license = licenses.asl20;
+    maintainers = [ maintainers.spwhitt ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix b/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix
new file mode 100644
index 000000000000..eb5aa7c036cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mp3blaster/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, ncurses, libvorbis, SDL }:
+stdenv.mkDerivation rec {
+
+  version = "3.2.6";
+
+  name = "mp3blaster-${version}";
+
+  src = fetchFromGitHub {
+    owner = "stragulus";
+    repo = "mp3blaster";
+    rev = "v${version}";
+    sha256 = "0pzwml3yhysn8vyffw9q9p9rs8gixqkmg4n715vm23ib6wxbliqs";
+  };
+
+  buildInputs = [
+    ncurses
+    libvorbis
+  ] ++ stdenv.lib.optional stdenv.isDarwin SDL;
+
+  buildFlags = [ "CXXFLAGS=-Wno-narrowing" ];
+
+  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 = platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/audio/mp3gain/default.nix b/nixpkgs/pkgs/applications/audio/mp3gain/default.nix
new file mode 100644
index 000000000000..907d4b8be168
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mp3gain/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation {
+  name = "mp3gain-1.5.2";
+  src = fetchurl {
+    url = "mirror://sourceforge/mp3gain/mp3gain-1_5_2-src.zip";
+    sha256 = "1jkgry59m8cnnfq05b9y1h4x4wpy3iq8j68slb9qffwa3ajcgbfv";
+  };
+
+  buildInputs = [ unzip ];
+
+  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/nixpkgs/pkgs/applications/audio/mp3info/default.nix b/nixpkgs/pkgs/applications/audio/mp3info/default.nix
new file mode 100644
index 000000000000..6700f21fc8cc
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/mp3splt/default.nix b/nixpkgs/pkgs/applications/audio/mp3splt/default.nix
new file mode 100644
index 000000000000..f2922e7eecf9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mp3splt/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, libmp3splt }:
+
+stdenv.mkDerivation rec {
+  pname = "mp3splt";
+  version = "2.6.2";
+  name = "${pname}-${version}";
+
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${name}.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/nixpkgs/pkgs/applications/audio/mp3val/default.nix b/nixpkgs/pkgs/applications/audio/mp3val/default.nix
new file mode 100644
index 000000000000..7477bea7602c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mp3val/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "mp3val-${version}";
+  version = "0.1.8";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mp3val/${name}-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/nixpkgs/pkgs/applications/audio/mpc/default.nix b/nixpkgs/pkgs/applications/audio/mpc/default.nix
new file mode 100644
index 000000000000..220e72b568af
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mpc/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, mpd_clientlib }:
+
+stdenv.mkDerivation rec {
+  name = "mpc-${version}";
+  version = "0.28";
+
+  src = fetchFromGitHub {
+    owner  = "MusicPlayerDaemon";
+    repo   = "mpc";
+    rev    = "v${version}";
+    sha256 = "1g8i4q5xsqdhidyjpvj6hzbhxacv27cb47ndv9k68whd80c5f9n9";
+  };
+
+  buildInputs = [ mpd_clientlib ];
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  enableParallelBuilding = true;
+
+  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/nixpkgs/pkgs/applications/audio/mpc123/default.nix b/nixpkgs/pkgs/applications/audio/mpc123/default.nix
new file mode 100644
index 000000000000..efaef97257e0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mpc123/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, gettext, libmpcdec, libao }:
+
+let version = "0.2.4"; in
+stdenv.mkDerivation rec {
+  name = "mpc123-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mpc123/version%20${version}/${name}.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/nixpkgs/pkgs/applications/audio/mpc123/use-gcc.patch b/nixpkgs/pkgs/applications/audio/mpc123/use-gcc.patch
new file mode 100644
index 000000000000..ca4cf84591ce
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/mpg123/default.nix b/nixpkgs/pkgs/applications/audio/mpg123/default.nix
new file mode 100644
index 000000000000..44f1c681ec1a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mpg123/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, fetchurl, alsaLib
+}:
+
+stdenv.mkDerivation rec {
+  name = "mpg123-1.25.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
+    sha256 = "08vhp8lz7d9ybhxcmkq3adwfryhivfvp0745k4r9kgz4wap3f4vc";
+  };
+
+  buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
+
+  configureFlags = stdenv.lib.optional
+    (stdenv.hostPlatform ? mpg123)
+    "--with-cpu=${stdenv.hostPlatform.mpg123.cpu}";
+
+  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/nixpkgs/pkgs/applications/audio/mpg321/default.nix b/nixpkgs/pkgs/applications/audio/mpg321/default.nix
new file mode 100644
index 000000000000..3ffc5265f7a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mpg321/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, 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 {
+  name = "mpg321-${version}";
+  version = "0.3.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mpg321/${version}/mpg321_${version}.orig.tar.gz";
+    sha256 = "0ki8mh76bbmdh77qsiw682dvi8y468yhbdabqwg05igmwc1wqvq5";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/muse/default.nix b/nixpkgs/pkgs/applications/audio/muse/default.nix
new file mode 100644
index 000000000000..9687ff3106bd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/muse/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, fetchFromGitHub
+, libjack2
+, qt5
+, cmake
+, libsndfile
+, libsamplerate
+, ladspaH
+, fluidsynth
+, alsaLib
+, rtaudio
+, lash
+, dssi
+, liblo
+, pkgconfig
+, gitAndTools
+}:
+
+stdenv.mkDerivation rec {
+  name = "muse-sequencer-${version}";
+  version = "3.0.2";
+
+  meta = with stdenv.lib; {
+    homepage = http://www.muse-sequencer.org;
+    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 = stdenv.lib.licenses.gpl2;
+  };
+
+  src =
+    fetchFromGitHub {
+      owner = "muse-sequencer";
+      repo = "muse";
+      rev = "02d9dc6abd757c3c1783fdd46dacd3c4ef2c0a6d";
+      sha256 = "0pn0mcg79z3bhjwxbss3ylypdz3gg70q5d1ij3x8yw65ryxbqf51";
+    };
+
+
+  buildInputs = [
+    libjack2
+    qt5.qtsvg
+    qt5.qttools
+    cmake
+    libsndfile
+    libsamplerate
+    ladspaH
+    fluidsynth
+    alsaLib
+    rtaudio
+    lash
+    dssi
+    liblo
+    pkgconfig
+    gitAndTools.gitFull
+  ];
+
+  sourceRoot = "source/muse3";
+
+  buildPhase = ''
+    cd ..
+    bash compile_muse.sh
+  '';
+
+  installPhase = ''
+    mkdir $out
+    cd build
+    make install
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/audio/musescore/darwin.nix b/nixpkgs/pkgs/applications/audio/musescore/darwin.nix
new file mode 100644
index 000000000000..e14594ae3b2d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/musescore/darwin.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchurl, undmg }:
+
+let
+  versionComponents = [ "2" "1" ];
+  appName = "MuseScore ${builtins.head versionComponents}";
+in
+
+with lib;
+
+stdenv.mkDerivation rec {
+  name = "musescore-darwin-${version}";
+  version = "${concatStringsSep "." versionComponents}";
+
+  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/nixpkgs/pkgs/applications/audio/musescore/default.nix b/nixpkgs/pkgs/applications/audio/musescore/default.nix
new file mode 100644
index 000000000000..28381fcfee62
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/musescore/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
+, alsaLib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis
+, portaudio, portmidi, qtbase, qtdeclarative, qtscript, qtsvg, qttools
+, qtwebkit, qtxmlpatterns
+}:
+
+stdenv.mkDerivation rec {
+  name = "musescore-${version}";
+  version = "2.3.2";
+
+  src = fetchFromGitHub {
+    owner  = "musescore";
+    repo   = "MuseScore";
+    rev    = "v${version}";
+    sha256 = "0ncv0xfmq87plqa43cm0fpidlwzz1nq5s7h7139llrbc36yp3pr1";
+  };
+
+  cmakeFlags = [
+  ] ++ lib.optional (lib.versionAtLeast freetype.version "2.5.2") "-DUSE_SYSTEM_FREETYPE=ON";
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    alsaLib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis
+    portaudio portmidi # tesseract
+    qtbase qtdeclarative qtscript qtsvg qttools qtwebkit qtxmlpatterns
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Music notation and composition software";
+    homepage = https://musescore.org/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ vandenoever ];
+    platforms = platforms.linux;
+    repositories.git = https://github.com/musescore/MuseScore;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/ncmpc/default.nix b/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
new file mode 100644
index 000000000000..7089f4dba920
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, ncurses
+, mpd_clientlib, gettext, boost }:
+
+stdenv.mkDerivation rec {
+  name = "ncmpc-${version}";
+  version = "0.33";
+
+  src = fetchFromGitHub {
+    owner  = "MusicPlayerDaemon";
+    repo   = "ncmpc";
+    rev    = "v${version}";
+    sha256 = "1ymnxb85v2pc0qpk0yz5gdxayc0ialk82ba521lgdw66li7fr4as";
+  };
+
+  buildInputs = [ glib ncurses mpd_clientlib boost ];
+  nativeBuildInputs = [ meson ninja pkgconfig gettext ];
+
+  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/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix b/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix
new file mode 100644
index 000000000000..87f5f94bb30b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ncmpcpp/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, boost, mpd_clientlib, ncurses, pkgconfig, readline
+, libiconv, icu, curl
+, outputsSupport ? false # outputs screen
+, visualizerSupport ? false, fftw ? null # visualizer screen
+, clockSupport ? false # clock screen
+, taglibSupport ? true, taglib ? null # tag editor
+}:
+
+assert visualizerSupport -> (fftw != null);
+assert taglibSupport -> (taglib != null);
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "ncmpcpp-${version}";
+  version = "0.8.2";
+
+  src = fetchurl {
+    url = "https://ncmpcpp.rybczak.net/stable/${name}.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/nixpkgs/pkgs/applications/audio/ncpamixer/default.nix b/nixpkgs/pkgs/applications/audio/ncpamixer/default.nix
new file mode 100644
index 000000000000..c3449ed3a4f4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ncpamixer/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, ncurses, libpulseaudio, pkgconfig }:
+
+stdenv.mkDerivation rec {
+
+  name = "ncpamixer-${version}";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "fulhax";
+    repo = "ncpamixer";
+    rev = version;
+    sha256 = "01kvd0pg5yraymlln5xdzqj1r6adxfvvza84wxn2481kcxfral54";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/non/default.nix b/nixpkgs/pkgs/applications/audio/non/default.nix
new file mode 100644
index 000000000000..44dd0d2d4ec3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/non/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pkgconfig, python2, cairo, libjpeg, ntk, libjack2
+, libsndfile, ladspaH, liblrdf, liblo, libsigcxx, wafHook
+}:
+
+stdenv.mkDerivation rec {
+  name = "non-${version}";
+  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 liblrdf liblo libsigcxx
+  ];
+
+  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/nixpkgs/pkgs/applications/audio/normalize/default.nix b/nixpkgs/pkgs/applications/audio/normalize/default.nix
new file mode 100644
index 000000000000..85c902d38396
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/normalize/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libmad }:
+
+stdenv.mkDerivation rec {
+  name = "normalize-${version}";
+  version = "0.7.7";
+
+  src = fetchurl {
+    url = "mirror://savannah/normalize/${name}.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/nixpkgs/pkgs/applications/audio/nova-filters/default.nix b/nixpkgs/pkgs/applications/audio/nova-filters/default.nix
new file mode 100644
index 000000000000..1e52ff2d9e40
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/nova-filters/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, scons, boost, ladspaH, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  version = "0.2-2";
+  name = "nova-filters-${version}";
+
+  src = fetchurl {
+    url = https://klingt.org/~tim/nova-filters/nova-filters_0.2-2.tar.gz;
+    sha256 = "16064vvl2w5lz4xi3lyjk4xx7fphwsxc14ajykvndiz170q32s6i";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ scons 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/nixpkgs/pkgs/applications/audio/openmpt123/default.nix b/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
new file mode 100644
index 000000000000..5d13aa7daf42
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, SDL2, pkgconfig, flac, libsndfile }:
+
+let
+  version = "0.2.7025-beta20.1";
+in stdenv.mkDerivation rec {
+  name = "openmpt123-${version}";
+  src = fetchurl {
+    url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}.tar.gz";
+    sha256 = "0qp2nnz6pnl1d7yv9hcjyim7q6yax5881k1jxm8jfgjqagmz5k6p";
+  };
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ SDL2 flac libsndfile ];
+  makeFlags = [ "NO_PULSEAUDIO=1 NO_LTDL=1 TEST=0 EXAMPLES=0" ]
+  ++ stdenv.lib.optional (stdenv.isDarwin) "SHARED_SONAME=0";
+  installFlags = "PREFIX=\${out}";
+
+  meta = with stdenv.lib; {
+    description = "A cross-platform command-line based module file player";
+    homepage = https://lib.openmpt.org/libopenmpt/;
+    license = licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.gnidorah ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/opus-tools/default.nix b/nixpkgs/pkgs/applications/audio/opus-tools/default.nix
new file mode 100644
index 000000000000..85d0e1fbaf71
--- /dev/null
+++ b/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 = http://www.opus-codec.org/;
+    license = stdenv.lib.licenses.bsd2;
+    maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
+    platforms = with stdenv.lib.platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/opusfile/default.nix b/nixpkgs/pkgs/applications/audio/opusfile/default.nix
new file mode 100644
index 000000000000..993e3c4fe8c5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/opusfile/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, openssl, libogg, libopus }:
+
+stdenv.mkDerivation rec {
+  name = "opusfile-0.11";
+  src = fetchurl {
+    url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz";
+    sha256 = "1gq3aszzl5glgbajw5p1f5a1kdyf23w5vjdmwwrk246syin9pkkl";
+  };
+
+  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 = http://www.opus-codec.org/;
+    license = licenses.bsd3;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ fuuzetsu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/opusfile/include-multistream.patch b/nixpkgs/pkgs/applications/audio/opusfile/include-multistream.patch
new file mode 100644
index 000000000000..7c6dd8475963
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/padthv1/default.nix b/nixpkgs/pkgs/applications/audio/padthv1/default.nix
new file mode 100644
index 000000000000..084487fd407a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/padthv1/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, libjack2, alsaLib, libsndfile, liblo, lv2, qt5, fftw }:
+
+stdenv.mkDerivation rec {
+  name = "padthv1-${version}";
+  version = "0.9.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/padthv1/${name}.tar.gz";
+    sha256 = "0k4vlg3clsn2i4k12imvcjiwlp9nx1mikwyrnarg9shxzzdzcf4y";
+  };
+
+  buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];
+
+  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/nixpkgs/pkgs/applications/audio/pamix/default.nix b/nixpkgs/pkgs/applications/audio/pamix/default.nix
new file mode 100644
index 000000000000..cc4a781ef66c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pamix/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, cmake
+, libpulseaudio, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "pamix-${version}";
+  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/nixpkgs/pkgs/applications/audio/pamixer/default.nix b/nixpkgs/pkgs/applications/audio/pamixer/default.nix
new file mode 100644
index 000000000000..322a4e238461
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pamixer/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, fetchpatch, boost, libpulseaudio }:
+
+stdenv.mkDerivation rec {
+  name = "pamixer-${version}";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "cdemoulins";
+    repo = "pamixer";
+    rev = version;
+    sha256 = "15zs2x4hnrpxphqn542b6qqm4ymvhkvbcfyffy69d6cki51chzzw";
+  };
+
+  # Remove after https://github.com/cdemoulins/pamixer/pull/16 gets fixed
+  patches = [(fetchpatch {
+    url = "https://github.com/oxij/pamixer/commit/dea1cd967aa837940e5c0b04ef7ebc47a7a93d63.patch";
+    sha256 = "0s77xmsiwywyyp6f4bjxg1sqdgms1k5fiy7na6ws0aswshfnzfjb";
+  })];
+
+  buildInputs = [ boost libpulseaudio ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp pamixer $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 his 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/nixpkgs/pkgs/applications/audio/paprefs/default.nix b/nixpkgs/pkgs/applications/audio/paprefs/default.nix
new file mode 100644
index 000000000000..23ba3582ce61
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/paprefs/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, meson, ninja, gettext, pkgconfig, pulseaudioFull, gtkmm3, dbus-glib, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "paprefs-1.0";
+
+  src = fetchurl {
+    url = "https://freedesktop.org/software/pulseaudio/paprefs/${name}.tar.xz";
+    sha256 = "0y77i9gaaassvvjrpwb4xbgqcmr51zmj5rh4z8zm687i5izf84md";
+  };
+
+  nativeBuildInputs = [ meson ninja gettext pkgconfig wrapGAppsHook ];
+
+  buildInputs = [ pulseaudioFull gtkmm3 dbus-glib ];
+
+  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/nixpkgs/pkgs/applications/audio/patchage/default.nix b/nixpkgs/pkgs/applications/audio/patchage/default.nix
new file mode 100644
index 000000000000..7f3940e0ae9c
--- /dev/null
+++ b/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 rec {
+  name = "patchage-${version}";
+  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/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix b/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
new file mode 100644
index 000000000000..06398324491b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pavucontrol/default.nix
@@ -0,0 +1,41 @@
+{ fetchurl, stdenv, pkgconfig, intltool, libpulseaudio, gtkmm3
+, libcanberra-gtk3, makeWrapper, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "pavucontrol-3.0";
+
+  src = fetchurl {
+    url = "https://freedesktop.org/software/pulseaudio/pavucontrol/${name}.tar.xz";
+    sha256 = "14486c6lmmirkhscbfygz114f6yzf97h35n3h3pdr27w4mdfmlmk";
+  };
+
+  preFixup = ''
+    wrapProgram "$out/bin/pavucontrol" \
+     --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+     --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
+  '';
+
+  buildInputs = [ libpulseaudio gtkmm3 libcanberra-gtk3 makeWrapper
+                  gnome3.defaultIconTheme ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  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 jgeerds ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/pd-plugins/cyclone/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/cyclone/default.nix
new file mode 100644
index 000000000000..ae43bad5b2c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/cyclone/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "cyclone-${version}";
+  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/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
new file mode 100644
index 000000000000..faa914e13287
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/helmholtz/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, unzip, puredata }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/audio/pd-plugins/maxlib/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/maxlib/default.nix
new file mode 100644
index 000000000000..0eb75d77c68c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/maxlib/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "maxlib-${version}";
+  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/nixpkgs/pkgs/applications/audio/pd-plugins/mrpeach/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
new file mode 100644
index 000000000000..972a162b73f4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/mrpeach/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "mrpeach-${version}";
+  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/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix
new file mode 100644
index 000000000000..37d692a3ab5a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/puremapping/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, unzip, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "puremapping-${version}";
+  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/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/timbreid/default.nix
new file mode 100644
index 000000000000..f2e54b327fce
--- /dev/null
+++ b/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";
+  name = "timbreid-${version}";
+
+  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/nixpkgs/pkgs/applications/audio/pd-plugins/zexy/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/zexy/default.nix
new file mode 100644
index 000000000000..d56462ccc844
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/zexy/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, autoconf, automake, puredata }:
+
+stdenv.mkDerivation rec {
+  name = "zexy-${version}";
+  version = "2.2.4";
+
+  src = fetchurl {
+    url = "https://puredata.info/downloads/zexy/releases/${version}/${name}.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/nixpkgs/pkgs/applications/audio/petrifoo/default.nix b/nixpkgs/pkgs/applications/audio/petrifoo/default.nix
new file mode 100644
index 000000000000..d86e5aae2cd4
--- /dev/null
+++ b/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 {
+  name = "petri-foo-${version}";
+  version = "0.1.87";
+
+  src = fetchurl {
+    url =  "mirror://sourceforge/petri-foo/${name}.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/nixpkgs/pkgs/applications/audio/pianobar/default.nix b/nixpkgs/pkgs/applications/audio/pianobar/default.nix
new file mode 100644
index 000000000000..60cd2567f625
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pianobar/default.nix
@@ -0,0 +1,27 @@
+{ fetchurl, stdenv, pkgconfig, libao, json_c, libgcrypt, ffmpeg, curl }:
+
+stdenv.mkDerivation rec {
+  name = "pianobar-2018.06.22";
+
+  src = fetchurl {
+    url = "http://6xq.net/projects/pianobar/${name}.tar.bz2";
+    sha256 = "1hnlif62vsxgh8j9mcibxwj4gybpgqc11ba729kflpvvi9qmfqwl";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    libao json_c libgcrypt ffmpeg curl
+  ];
+
+  makeFlags="PREFIX=$(out)";
+
+  CC = "gcc";
+  CFLAGS = "-std=c99";
+
+  meta = with stdenv.lib; {
+    description = "A console front-end for Pandora.com";
+    homepage = http://6xq.net/projects/pianobar/;
+    platforms = platforms.linux;
+    license = licenses.mit; # expat version
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/pianobooster/default.nix b/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
new file mode 100644
index 000000000000..d013a26277e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, alsaLib, cmake, libGLU_combined, makeWrapper, qt4 }:
+
+stdenv.mkDerivation  rec {
+  name = "pianobooster-${version}";
+  version = "0.6.4b";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/pianobooster/pianobooster-src-0.6.4b.tar.gz";
+    sha256 = "1xwyap0288xcl0ihjv52vv4ijsjl0yq67scc509aia4plmlm6l35";
+  };
+
+  patches = [
+    ./pianobooster-0.6.4b-cmake.patch
+    ./pianobooster-0.6.4b-cmake-gcc4.7.patch
+  ];
+
+  preConfigure = "cd src";
+
+  buildInputs = [ alsaLib cmake makeWrapper libGLU_combined qt4 ];
+
+  postInstall = ''
+    wrapProgram $out/bin/pianobooster \
+      --prefix LD_LIBRARY_PATH : ${libGLU_combined}/lib
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A MIDI file player that teaches you how to play the piano";
+    homepage = http://pianobooster.sourceforge.net;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake-gcc4.7.patch b/nixpkgs/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake-gcc4.7.patch
new file mode 100644
index 000000000000..2b1b28c5a849
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake-gcc4.7.patch
@@ -0,0 +1,11 @@
+--- pianobooster-src-0.6.4b/src/CMakeLists.txt.orig	2013-04-06 10:48:02.469532914 -0700
++++ pianobooster-src-0.6.4b/src/CMakeLists.txt	2013-04-06 10:48:12.989532445 -0700
+@@ -203,8 +203,6 @@
+         ${PIANOBOOSTER_UI_HDRS} )

+ ENDIF(WIN32)

+ 

+-SET_TARGET_PROPERTIES(pianobooster PROPERTIES LINK_FLAGS "-mwindows")

+-

+ IF (USE_PCH)

+ ADD_PRECOMPILED_HEADER( pianobooster ${CMAKE_CURRENT_SOURCE_DIR}/precompile/precompile.h )

+ ENDIF (USE_PCH)

diff --git a/nixpkgs/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake.patch b/nixpkgs/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake.patch
new file mode 100644
index 000000000000..8cdd8738e2b3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pianobooster/pianobooster-0.6.4b-cmake.patch
@@ -0,0 +1,44 @@
+--- pianobooster-src-0.6.4b/src/CMakeLists.txt.orig
++++ pianobooster-src-0.6.4b/src/CMakeLists.txt
+@@ -2,12 +2,6 @@
+ # for the debug build type cmake -DCMAKE_BUILD_TYPE=Debug

+ SET(CMAKE_BUILD_TYPE Release)

+ SET(CMAKE_VERBOSE_MAKEFILE OFF)

+-SET(USE_FLUIDSYNTH OFF)

+-

+-# The inplace directory is mainly for windows builds

+-# SET(FLUIDSYNTH_INPLACE_DIR C:/download/misc/ljb/fluidsynth-1.0.9)

+-SET(FLUIDSYNTH_INPLACE_DIR /home/louis/build/fluidsynth-1.0.9)

+-

+ 

+ # Testing precompiled headers  it does not work -- leave as OFF.

+ SET(USE_PCH OFF)

+@@ -78,18 +72,7 @@
+     ADD_DEFINITIONS(-DPB_USE_FLUIDSYNTH)

+     MESSAGE("Building using fluidsynth")

+     SET( PB_BASE_SRCS MidiDeviceFluidSynth.cpp )

+-

+-    IF(FLUIDSYNTH_INPLACE_DIR)

+-        INCLUDE_DIRECTORIES(${FLUIDSYNTH_INPLACE_DIR}/include/)

+-        IF(WIN32)

+-            LINK_LIBRARIES( ${FLUIDSYNTH_INPLACE_DIR}/src/.libs/libfluidsynth.dll.a)

+-        ENDIF(WIN32)

+-        IF(UNIX)

+-            LINK_LIBRARIES(${FLUIDSYNTH_INPLACE_DIR}/src/.libs/libfluidsynth.so)

+-        ENDIF(UNIX)

+-    ELSEIF(FLUIDSYNTH_INPLACE_DIR)

+-        LINK_LIBRARIES( fluidsynth)

+-    ENDIF(FLUIDSYNTH_INPLACE_DIR)

++	LINK_LIBRARIES(fluidsynth)

+ ENDIF(USE_FLUIDSYNTH)

+ 

+ 

+@@ -214,8 +197,6 @@
+ INSTALL(TARGETS pianobooster RUNTIME DESTINATION bin)

+ #INSTALL( index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en  SUBDIR kmidimon )

+ 

+-INSTALL( FILES ../README.txt  DESTINATION share/doc/pianobooster )

+-

+ INSTALL ( FILES images/pianobooster.png DESTINATION share/pixmaps )

+ 

+ 

diff --git a/nixpkgs/pkgs/applications/audio/picard/default.nix b/nixpkgs/pkgs/applications/audio/picard/default.nix
new file mode 100644
index 000000000000..3dae0ca5d7c4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/picard/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, python3Packages, fetchurl, gettext, chromaprint }:
+
+let
+  pythonPackages = python3Packages;
+in pythonPackages.buildPythonApplication rec {
+  pname = "picard";
+  version = "2.0.4";
+
+  src = fetchurl {
+    url = "http://ftp.musicbrainz.org/pub/musicbrainz/picard/picard-${version}.tar.gz";
+    sha256 = "0ds3ylpqn717fnzcjrfn05v5xram01bj6n3hwn9igmkd1jgf8vhc";
+  };
+
+  buildInputs = [ gettext ];
+
+  propagatedBuildInputs = with pythonPackages; [
+    pyqt5
+    mutagen
+    chromaprint
+    discid
+  ];
+
+  installPhase = ''
+    python setup.py install --prefix="$out"
+  '';
+
+  prePatch = ''
+    # Pesky unicode punctuation.
+    substituteInPlace setup.cfg --replace "‘" "'"
+  '';
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://musicbrainz.org/doc/MusicBrainz_Picard;
+    description = "The official MusicBrainz tagger";
+    maintainers = with maintainers; [ ehmry ];
+    license = licenses.gpl2;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/pithos/default.nix b/nixpkgs/pkgs/applications/audio/pithos/default.nix
new file mode 100644
index 000000000000..c7bb1a4193f9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pithos/default.nix
@@ -0,0 +1,40 @@
+{ fetchFromGitHub, stdenv, pythonPackages, gtk3, gobject-introspection, libnotify
+, gst_all_1, wrapGAppsHook }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "pithos";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo  = pname;
+    rev = version;
+    sha256 = "0zk9clfawsnwmgjbk7y5d526ksxd1pkh09ln6sb06v4ygaiifcxp";
+  };
+
+  # No tests in repo
+  doCheck = false;
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "/usr/share" "$out/share"
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/applications
+    cp -v data/pithos.desktop $out/share/applications
+  '';
+
+  buildInputs = [ wrapGAppsHook ];
+
+  propagatedBuildInputs =
+    [ gtk3 gobject-introspection libnotify ] ++
+    (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 jgeerds ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/playbar2/default.nix b/nixpkgs/pkgs/applications/audio/playbar2/default.nix
new file mode 100644
index 000000000000..16d5eb69cb97
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/playbar2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, cmake
+, extra-cmake-modules
+, plasma-framework
+, kwindowsystem
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  name = "playbar2-${version}";
+  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/nixpkgs/pkgs/applications/audio/plugin-torture/default.nix b/nixpkgs/pkgs/applications/audio/plugin-torture/default.nix
new file mode 100644
index 000000000000..5529998803cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/plugin-torture/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, boost, ladspaH, lilv, lv2, pkgconfig, serd, sord, sratom }:
+
+stdenv.mkDerivation rec {
+  name = "plugin-torture-${version}";
+  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/nixpkgs/pkgs/applications/audio/pmidi/default.nix b/nixpkgs/pkgs/applications/audio/pmidi/default.nix
new file mode 100644
index 000000000000..9f51d3008259
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pmidi/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, alsaLib
+, version ? "1.7.1"
+, sourceSha256 ? "051mv6f13c8y13c1iv3279k1hhzpz4fm9sfczhgp9sim2bjdj055"
+}:
+stdenv.mkDerivation {
+  name = "pmidi-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/pmidi/${version}/pmidi-${version}.tar.gz";
+    sha256 = sourceSha256;
+  };
+
+  buildInputs = [ alsaLib ];
+
+  meta = with stdenv.lib; {
+    homepage = http://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/nixpkgs/pkgs/applications/audio/ponymix/default.nix b/nixpkgs/pkgs/applications/audio/ponymix/default.nix
new file mode 100644
index 000000000000..5cfbb7bf5a48
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ponymix/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, libpulseaudio, libnotify, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "ponymix-${version}";
+  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/nixpkgs/pkgs/applications/audio/praat/default.nix b/nixpkgs/pkgs/applications/audio/praat/default.nix
new file mode 100644
index 000000000000..5db5035c8352
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/praat/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, alsaLib, gtk2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "praat-${version}";
+  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 = http://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/nixpkgs/pkgs/applications/audio/projectm/default.nix b/nixpkgs/pkgs/applications/audio/projectm/default.nix
new file mode 100644
index 000000000000..e7aace763a1b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/projectm/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, fetchpatch, pkgconfig, cmake
+, glew, ftgl, ttf_bitstream_vera
+, withQt ? true, qt4
+, withLibvisual ? false, libvisual, SDL
+, withJack ? false, libjack2
+, withPulseAudio ? true, libpulseaudio
+}:
+
+assert withJack       -> withQt;
+assert withPulseAudio -> withQt;
+
+stdenv.mkDerivation {
+  name = "projectm-2.1.0";
+
+  meta = {
+    description = "Music Visualizer";
+    homepage = http://projectm.sourceforge.net/;
+    license = stdenv.lib.licenses.lgpl21Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/projectm/2.1.0/projectM-complete-2.1.0-Source.tar.gz";
+    sha256 = "1vh6jk68a0jdb6qwppb6f8cbgmhnv2ba3bcavzfd6sq06gq08cji";
+  };
+
+  patch_gcc6 = fetchpatch {
+    url = https://raw.githubusercontent.com/gentoo/gentoo/45abd63abc6644b6e177c057b5b42d894dbf8e29/media-libs/libprojectm/files/libprojectm-2.1.0-fix-c++14.patch;
+    sha256 = "1i50scxv1jlqvb3jm3sql89a7wqckxhlpvnhz20vvmm1kii6lrsn";
+  };
+
+  patchPhase = ''
+    patch -d src/libprojectM -p1 -i "$patch_gcc6"
+    sed -i 's:''${LIBVISUAL_PLUGINSDIR}:''${CMAKE_INSTALL_PREFIX}/lib/libvisual-0.4:' \
+      src/projectM-libvisual/CMakeLists.txt
+  '';
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+
+  cmakeFlags = ''
+    -DprojectM_FONT_MENU=${ttf_bitstream_vera}/share/fonts/truetype/VeraMono.ttf
+    -DprojectM_FONT_TITLE=${ttf_bitstream_vera}/share/fonts/truetype/Vera.ttf
+    -DINCLUDE-PROJECTM-TEST=OFF
+    -DINCLUDE-PROJECTM-QT=${if withQt then "ON" else "OFF"}
+    -DINCLUDE-PROJECTM-LIBVISUAL=${if withLibvisual then "ON" else "OFF"}
+    -DINCLUDE-PROJECTM-JACK=${if withJack then "ON" else "OFF"}
+    -DINCLUDE-PROJECTM-PULSEAUDIO=${if withPulseAudio then "ON" else "OFF"}
+  '';
+
+  buildInputs = with stdenv.lib;
+    [ glew ftgl ]
+    ++ optional withQt qt4
+    ++ optionals withLibvisual [ libvisual SDL ]
+    ++ optional withJack libjack2
+    ++ optional withPulseAudio libpulseaudio
+    ;
+}
diff --git a/nixpkgs/pkgs/applications/audio/puddletag/default.nix b/nixpkgs/pkgs/applications/audio/puddletag/default.nix
new file mode 100644
index 000000000000..915d7fcbd98b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/puddletag/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, python2Packages, chromaprint }:
+
+python2Packages.buildPythonApplication rec {
+  pname = "puddletag";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner  = "keithgg";
+    repo   = "puddletag";
+    rev    = "v${version}";
+    sha256 = "1g6wa91awy17z5b704yi9kfynnvfm9lkrvpfvwccscr1h8s3qmiz";
+  };
+
+  setSourceRoot = ''
+    sourceRoot=$(echo */source)
+  '';
+
+  disabled = python2Packages.isPy3k; # work to support python 3 has not begun
+
+  propagatedBuildInputs = [ chromaprint ] ++ (with python2Packages; [
+    configobj
+    mutagen
+    pyparsing
+    pyqt4
+  ]);
+
+  doCheck = false;   # there are no tests
+  dontStrip = true;  # we are not generating any binaries
+
+  meta = with stdenv.lib; {
+    homepage    = https://puddletag.net;
+    description = "An audio tag editor similar to the Windows program, Mp3tag";
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix b/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
new file mode 100644
index 000000000000..1ad57efda7a0
--- /dev/null
+++ b/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.66";
+
+  src = fetchFromGitHub {
+    owner = "graysky2";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "19a24w7y19551ar41q848w7r1imqkl9cpff4dpb7yry7qp1yjg0y";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix b/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
new file mode 100644
index 000000000000..72af8aff106b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -0,0 +1,50 @@
+{ 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, vorbisTools ? null 
+}:
+
+assert mp3Support -> lame != null;
+assert opusSupport -> opusTools != null;
+assert faacSupport -> faac != null;
+assert flacSupport -> flac != null;
+assert soxSupport -> sox != null;
+assert vorbisSupport -> vorbisTools != null;
+
+pythonPackages.buildPythonApplication rec {
+  pname = "pulseaudio-dlna";
+  version = "2017-11-01";
+
+  src = fetchFromGitHub {
+    owner = "masmu";
+    repo = "pulseaudio-dlna";
+    rev = "4472928dd23f274193f14289f59daec411023ab0";
+    sha256 = "1dfn7036vrq49kxv4an7rayypnm5dlawsf02pfsldw877hzdamqk";
+  };
+  
+  # pulseaudio-dlna has no tests
+  doCheck = false;
+
+  propagatedBuildInputs = with pythonPackages; [
+    dbus-python docopt requests setproctitle protobuf psutil futures
+    chardet notify2 netifaces pyroute2 pygobject2 lxml 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 vorbisTools;
+
+  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/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/default.nix b/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/default.nix
new file mode 100644
index 000000000000..cb267d8bbb66
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, runCommand
+, fetchFromGitHub
+, pulseaudio
+, pkgconfig
+, ffmpeg_4
+, patchelf
+, fdk_aac
+, libtool
+, cmake
+, bluez
+, dbus
+, sbc
+, lib
+}:
+
+let
+  pulseSources = runCommand "pulseaudio-sources" {} ''
+    mkdir $out
+    tar -xf ${pulseaudio.src}
+    mv pulseaudio*/* $out/
+  '';
+
+in stdenv.mkDerivation rec {
+  name = "pulseaudio-modules-bt-${version}";
+  version = "unstable-2018-11-01";
+
+  src = fetchFromGitHub {
+    owner = "EHfive";
+    repo = "pulseaudio-modules-bt";
+    rev = "a2f62fcaa702bb883c07d074ebca8d7135520ab8";
+    sha256 = "1fhg7q9064zikhy0xxldn4fvh49pc47mgikcbd9yhsk66gcn6zj3";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    ./fix-install-path.patch
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+    patchelf
+    cmake
+  ];
+
+  buildInputs = [
+    pulseaudio
+    ffmpeg_4
+    fdk_aac
+    libtool
+    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 '${"\${PulseAudio_VERSION}"}' ${pulseaudio.version}
+  '';
+
+  postFixup = ''
+    for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
+      orig_rpath=$(patchelf --print-rpath "$so")
+      patchelf \
+        --set-rpath "${lib.getLib ffmpeg_4}/lib:$out/lib/pulse-${pulseaudio.version}/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/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch b/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch
new file mode 100644
index 000000000000..e500d1fb1333
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pulseaudio-modules-bt/fix-install-path.patch
@@ -0,0 +1,20 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d869979..185144d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -143,13 +143,13 @@ INSTALL(TARGETS
+         module-bluez5-device
+         module-bluetooth-discover
+         module-bluetooth-policy
+-        LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
++        LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pulse-${PulseAudio_VERSION}/modules/)
+ 
+ if(NOT ${HAVE_SYSTEM_LDAC})
+ 
+ INSTALL(TARGETS
+         ldacBT_enc
+         ldacBT_abr
+-        LIBRARY DESTINATION ${PulseAudio_modlibexecdir})
++        LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pulse-${PulseAudio_VERSION}/modules/)
+ 
+ endif()
diff --git a/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix b/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
new file mode 100644
index 000000000000..6b62faa51bd7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
@@ -0,0 +1,109 @@
+{ 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
+, fftwFloat
+, calf
+, zita-convolver
+, zam-plugins
+, rubberband
+, mda_lv2
+, hicolor-icon-theme
+}:
+
+let
+  lv2Plugins = [
+    calf # limiter, compressor exciter, bass enhancer and others
+    mda_lv2 # loudness
+  ];
+  ladspaPlugins = [
+    rubberband # pitch shifting
+    zam-plugins # maximizer
+  ];
+in stdenv.mkDerivation rec {
+  name = "pulseeffects-${version}";
+  version = "4.4.1";
+
+  src = fetchFromGitHub {
+    owner = "wwmm";
+    repo = "pulseeffects";
+    rev = "v${version}";
+    sha256 = "0hb575h9hdknhwvhn5lak89ddavn4v5c0nipnv8dsfnmjhfli5qm";
+  };
+
+  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_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    lilv lv2 serd sord sratom
+    libbs2b
+    libebur128
+    libsamplerate
+    libsndfile
+    boost
+    fftwFloat
+    zita-convolver
+    hicolor-icon-theme
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
+
+  preFixup = ''
+    addToSearchPath GST_PLUGIN_SYSTEM_PATH_1_0 $out/lib/gstreamer-1.0
+
+    gappsWrapperArgs+=(
+      --set LV2_PATH "${stdenv.lib.makeSearchPath "lib/lv2" lv2Plugins}"
+      --set LADSPA_PATH "${stdenv.lib.makeSearchPath "lib/ladspa" ladspaPlugins}"
+    )
+  '';
+
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/puredata/default.nix b/nixpkgs/pkgs/applications/audio/puredata/default.nix
new file mode 100644
index 000000000000..6ade9042b532
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/puredata/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, autoreconfHook, gettext, makeWrapper
+, alsaLib, libjack2, tk, fftw
+}:
+
+stdenv.mkDerivation  rec {
+  name = "puredata-${version}";
+  version = "0.49-0";
+
+  src = fetchurl {
+    url = "http://msp.ucsd.edu/Software/pd-${version}.src.tar.gz";
+    sha256 = "18rzqbpgnnvyslap7k0ly87aw1bbxkb0rk5agpr423ibs9slxq6j";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix b/nixpkgs/pkgs/applications/audio/puredata/wrapper.nix
new file mode 100644
index 000000000000..80968e2700b4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/qjackctl/default.nix b/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
new file mode 100644
index 000000000000..eafde7957a21
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
+
+stdenv.mkDerivation rec {
+  version = "0.5.5";
+  name = "qjackctl-${version}";
+
+  # some dependencies such as killall have to be installed additionally
+
+  src = fetchurl {
+    url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
+    sha256 = "1rzzqa39a6llr52vjkjr0a86nc776kmr5xs52qqga8ms9697psz5";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/qmidinet/default.nix b/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
new file mode 100644
index 000000000000..37677cc211cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, qt5, alsaLib, libjack2 }:
+
+stdenv.mkDerivation rec {
+  version = "0.5.2";
+  name = "qmidinet-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/qmidinet/${name}.tar.gz";
+    sha256 = "0y2w3rymvc35r291sp2qaxn36wjwvxzk2iaw9y30q9fqc0vlpdns";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  buildInputs = [  qt5.qtbase qt5.qttools alsaLib libjack2 ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = with stdenv.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 = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix b/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix
new file mode 100644
index 000000000000..7f5191a02c20
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/qmidiroute/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, qt4, alsaLib }:
+
+stdenv.mkDerivation rec {
+  version = "0.4.0";
+  name = "qmidiroute-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/alsamodular/QMidiRoute/${version}/${name}.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/nixpkgs/pkgs/applications/audio/qmmp/default.nix b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
new file mode 100644
index 000000000000..c10358eed1e4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, 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, 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.
+
+stdenv.mkDerivation rec {
+  name = "qmmp-1.2.5";
+
+  src = fetchurl {
+    url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
+    sha256 = "1xs8kg65088yzdhdkymmknkp1s4adzv095f5jhjvy62s8ymyjvnx";
+  };
+
+  buildInputs =
+    [ # basic requirements
+      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 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/nixpkgs/pkgs/applications/audio/qsampler/default.nix b/nixpkgs/pkgs/applications/audio/qsampler/default.nix
new file mode 100644
index 000000000000..69bf41e1e4fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/qsampler/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, autoconf, automake, libtool, pkgconfig, qttools
+, liblscp, libgig, qtbase }:
+
+stdenv.mkDerivation rec {
+  name = "qsampler-${version}";
+  version = "0.5.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/qsampler/${name}.tar.gz";
+    sha256 = "02xazvz8iaksglbgq3jhw4fq3f5pdcq9sss79jxs082md0mry17d";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/qsynth/default.nix b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
new file mode 100644
index 000000000000..26adc6394349
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, alsaLib, fluidsynth, libjack2, qtbase, qttools, qtx11extras, cmake, pkgconfig }:
+
+stdenv.mkDerivation  rec {
+  name = "qsynth-${version}";
+  version = "0.5.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/qsynth/${name}.tar.gz";
+    sha256 = "1rfkaxq1pyc4hv3l0i6wicianbcbm1wp53kh9i5d4jsljgisd1dv";
+  };
+
+  # cmake is looking for qsynth.desktop.in and fails if it doesn't find it
+  # seems like a bug and can presumable go in the next version after 0.5.2
+  postPatch = ''
+    mv src/qsynth.desktop src/qsynth.desktop.in
+  '';
+
+  nativeBuildInputs = [ cmake 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/nixpkgs/pkgs/applications/audio/qtractor/default.nix b/nixpkgs/pkgs/applications/audio/qtractor/default.nix
new file mode 100644
index 000000000000..9e0abac5ce47
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/qtractor/default.nix
@@ -0,0 +1,29 @@
+{ alsaLib, autoconf, automake, dssi, fetchurl, gtk2, libjack2
+, ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile
+, libtool, libvorbis, lilv, lv2, pkgconfig, qt4, rubberband, serd
+, sord, sratom, stdenv, suil }:
+
+stdenv.mkDerivation rec {
+  version = "0.6.7";
+  name = "qtractor-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/qtractor/${name}.tar.gz";
+    sha256 = "0h5nblfkl4s412c9f02b40nb8c8jq8ypz67z2qn3hkvhx6i9yxsg";
+  };
+
+  buildInputs =
+    [ alsaLib autoconf automake dssi gtk2 libjack2 ladspaH
+      ladspaPlugins liblo libmad libsamplerate libsndfile libtool
+      libvorbis lilv lv2 pkgconfig qt4 rubberband serd sord sratom
+      suil
+    ];
+
+  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/nixpkgs/pkgs/applications/audio/qtscrobbler/default.nix b/nixpkgs/pkgs/applications/audio/qtscrobbler/default.nix
new file mode 100644
index 000000000000..453da89953e0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/qtscrobbler/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchurl, withMtp ? true, libmtp, pkgconfig, which, qt4, qmake4Hook }:
+
+stdenv.mkDerivation rec {
+  name = "qtscrobbler-${version}";
+  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/nixpkgs/pkgs/applications/audio/quodlibet/default.nix b/nixpkgs/pkgs/applications/audio/quodlibet/default.nix
new file mode 100644
index 000000000000..6c930ceb05a5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/quodlibet/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl, python3, wrapGAppsHook, gettext, intltool, 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.0";
+
+  # XXX, tests fail
+  # https://github.com/quodlibet/quodlibet/issues/2820
+  doCheck = false;
+
+  src = fetchurl {
+    url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
+    sha256 = "0w64i999ipzgjb4c4lzw7jp792amd6km46wahx7m3bpzly55r3f6";
+  };
+
+  nativeBuildInputs = [ wrapGAppsHook gettext intltool ];
+
+  checkInputs = with python3.pkgs; [ pytest pytest_xdist pyflakes pycodestyle polib xvfb_run dbus.daemon glibcLocales ];
+
+  buildInputs = [ gnome3.defaultIconTheme 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";
+
+  checkPhase = ''
+    runHook preCheck
+    checkHomeDir=$(mktemp -d)
+    mkdir -p $checkHomeDir/.cache/thumbnails/normal # Required by TThumb.test_recreate_broken_cache_file
+    env XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS" \
+      HOME=$checkHomeDir \
+      xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
+        --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+        py.test
+    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/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix b/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
new file mode 100644
index 000000000000..900c2bf7a41f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
@@ -0,0 +1,98 @@
+{ stdenv, fetchFromGitHub
+, cmake, pkgconfig
+# Transport
+, curl
+# Libraries
+, boost
+, jsoncpp
+, libbsd
+, pcre
+# GUI/Desktop
+, dbus
+, glibmm
+, gnome3
+, hicolor-icon-theme
+, libappindicator-gtk3
+, libnotify
+, libxdg_basedir
+, wxGTK
+# GStreamer
+, gst_all_1
+# User-agent info
+, lsb-release
+# rt2rtng
+, python2
+# 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 python2.pkgs; [ python2 lxml ];
+in
+stdenv.mkDerivation rec {
+  name = "radiotray-ng-${version}";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "ebruck";
+    repo = "radiotray-ng";
+    rev = "v${version}";
+    sha256 = "1jk80fv8ivwdx7waivls0mczn0rx4wv0fy7a28k77m88i5gkfgyw";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook makeWrapper ];
+
+  buildInputs = [
+    curl
+    boost jsoncpp libbsd pcre
+    glibmm hicolor-icon-theme gnome3.gsettings-desktop-schemas libappindicator-gtk3 libnotify
+    libxdg_basedir
+    lsb-release
+    wxGTK
+  ] ++ gstInputs
+    ++ pythonInputs;
+
+  postPatch = ''
+    for x in debian/CMakeLists.txt include/radiotray-ng/common.hpp data/*.desktop; do
+      substituteInPlace $x --replace /usr $out
+    done
+
+    # 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.hostPlatform == stdenv.buildPlatform;
+  doCheck = false; # fails to pick up supplied gtest, tries to download it instead
+
+  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/nixpkgs/pkgs/applications/audio/rakarrack/default.nix b/nixpkgs/pkgs/applications/audio/rakarrack/default.nix
new file mode 100644
index 000000000000..ec71cfb427c6
--- /dev/null
+++ b/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 {
+  name = "rakarrack-${version}";
+  version = "0.6.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/rakarrack/${name}.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/nixpkgs/pkgs/applications/audio/rakarrack/fltk-path.patch b/nixpkgs/pkgs/applications/audio/rakarrack/fltk-path.patch
new file mode 100644
index 000000000000..8f042bd3a669
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/reaper/default.nix b/nixpkgs/pkgs/applications/audio/reaper/default.nix
new file mode 100644
index 000000000000..749163893905
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/reaper/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, autoPatchelfHook, makeWrapper
+, alsaLib, xorg
+, fetchFromGitHub, pkgconfig, gnome3
+, gnome2, gdk_pixbuf, cairo, glib, freetype
+, libpulseaudio
+}:
+
+let
+  libSwell = stdenv.mkDerivation {
+    name = "libSwell";
+
+    src = fetchFromGitHub {
+      owner = "justinfrankel";
+      repo = "WDL";
+      rev = "cb89dc81dc5cbc13a8f1b3cda38a204e356d4014";
+      sha256 = "0m19dy4r0i21ckypzfhpfjm6sh00v9i088pva7hhhr4mmrbqd0ms";
+    };
+
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ gnome3.gtk ];
+
+    buildPhase = ''
+      cd WDL/swell
+      make
+    '';
+
+    installPhase = ''
+      mv libSwell.so $out
+    '';
+  };
+
+in stdenv.mkDerivation rec {
+  name = "reaper-${version}";
+  version = "5.961";
+
+  src = fetchurl {
+    url = "https://www.reaper.fm/files/${stdenv.lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
+    sha256 = "0lnpdnxnwn7zfn8slivkp971ll9qshgq7y9gcfrk5829z94df06i";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+
+  buildInputs = [
+    alsaLib
+    stdenv.cc.cc.lib
+
+    xorg.libX11
+    xorg.libXi
+
+    gnome3.gtk
+    gdk_pixbuf
+    gnome2.pango
+    cairo
+    glib
+    freetype
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    ./install-reaper.sh --install $out/opt
+    rm $out/opt/REAPER/uninstall-reaper.sh
+
+    cp ${libSwell.out} $out/opt/REAPER/libSwell.so
+
+    wrapProgram $out/opt/REAPER/reaper \
+      --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib
+
+    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/nixpkgs/pkgs/applications/audio/redoflacs/default.nix b/nixpkgs/pkgs/applications/audio/redoflacs/default.nix
new file mode 100644
index 000000000000..1918fa9e3a99
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/redoflacs/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, flac, sox }:
+
+stdenv.mkDerivation rec {
+  name = "redoflacs-${version}";
+  version = "0.30.20150202";
+
+  src = fetchFromGitHub {
+    owner  = "sirjaren";
+    repo   = "redoflacs";
+    rev    = "86c6f5becca0909dcb2a0cb9ed747a575d7a4735";
+    sha256 = "1gzlmh4vnf2fl0x8ig2n1f76082ngldsv85i27dv15y2m1kffw2j";
+  };
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 -t $out/bin redoflacs
+    install -Dm644 -t $out/share/doc/redoflacs LICENSE *.md
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/redoflacs \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ flac sox ]}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Parallel BASH commandline FLAC compressor, verifier, organizer, analyzer, and retagger";
+    homepage    = src.meta.homepage;
+    license     = licenses.gpl2;
+    platforms   = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/renoise/default.nix b/nixpkgs/pkgs/applications/audio/renoise/default.nix
new file mode 100644
index 000000000000..081c4ab41acb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/renoise/default.nix
@@ -0,0 +1,74 @@
+{ 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 appropriate (x86 or x86_64) version
+#    for your machine 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 {
+  name = "renoise-${version}";
+  version = "3.1.0";
+
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+        if builtins.isNull releasePath then
+        fetchurl {
+          url = "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_x86_64.tar.bz2";
+          sha256 = "0pan68fr22xbj7a930y29527vpry3f07q3i9ya4fp6g7aawffsga";
+        }
+        else
+        releasePath
+    else if stdenv.hostPlatform.system == "i686-linux" then
+        if builtins.isNull releasePath then
+        fetchurl {
+          url = "http://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_x86.tar.bz2";
+          sha256 = "1lccjj4k8hpqqxxham5v01v2rdwmx3c5kgy1p9lqvzqma88k4769";
+        }
+        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 = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/rhvoice/default.nix b/nixpkgs/pkgs/applications/audio/rhvoice/default.nix
new file mode 100644
index 000000000000..6516532df33f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/rhvoice/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, pkgconfig, fetchFromGitHub, scons
+, python, glibmm, libpulseaudio, libao }:
+
+let
+  version = "unstable-2018-02-10";
+in stdenv.mkDerivation rec {
+  name = "rhvoice-${version}";
+
+  src = fetchFromGitHub {
+    owner = "Olga-Yakovleva";
+    repo = "RHVoice";
+    rev = "7a25a881b0465e47a12d8029b56f3b71a1d02312";
+    sha256 = "1gkrlmv7msh9qlm0gkjqpl9gswghpclfdwszr1p85v8vk6m63v0b";
+  };
+
+  nativeBuildInputs = [
+    scons 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/nixpkgs/pkgs/applications/audio/rhvoice/honor_nix_environment.patch b/nixpkgs/pkgs/applications/audio/rhvoice/honor_nix_environment.patch
new file mode 100644
index 000000000000..ed180c92debc
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix b/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix
new file mode 100644
index 000000000000..968c5edae63a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/rhythmbox/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchurl, pkgconfig
+, python3
+, perl
+, perlPackages
+, gtk3
+, intltool
+, libsoup
+, gnome3
+, 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.2";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0hzcns8gf5yb0rm4ss8jd8qzarcaplp5cylk6plwilsqfvxj4xn2";
+  };
+
+  patches = [
+    # build with GStreamer 1.14 https://bugzilla.gnome.org/show_bug.cgi?id=788706
+    (fetchurl {
+      name = "fmradio-Fix-build-with-GStreamer-master.patch";
+      url = https://bugzilla.gnome.org/attachment.cgi?id=361178;
+      sha256 = "1h09mimlglj9hcmc3pfp0d6c277mqh2khwv9fryk43pkv3904d2w";
+    })
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+    intltool perl perlPackages.XMLParser
+    itstool
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    python3
+    libsoup
+    tdb
+    json-glib
+
+    gtk3
+    gnome3.libpeas
+    gnome3.totem-pl-parser
+    gnome3.defaultIconTheme
+
+    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/nixpkgs/pkgs/applications/audio/rkrlv2/default.nix b/nixpkgs/pkgs/applications/audio/rkrlv2/default.nix
new file mode 100644
index 000000000000..0ff23102e755
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/rosegarden/default.nix b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
new file mode 100644
index 000000000000..55e3b55472b8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, cmake, makedepend, perl, pkgconfig, qttools
+, dssi, fftwSinglePrec, ladspaH, ladspaPlugins, libjack2
+, liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }:
+
+stdenv.mkDerivation (rec {
+  version = "18.12";
+  name = "rosegarden-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/rosegarden/${name}.tar.bz2";
+    sha256 = "15i9fm0vkn3wsgahaxqi1j5zs0wc0j3wdwml0x49084gk2p328vb";
+  };
+
+  patchPhase = ''
+    substituteInPlace src/CMakeLists.txt --replace svnheader svnversion
+  '';
+
+  nativeBuildInputs = [ cmake makedepend perl pkgconfig qttools ];
+
+  buildInputs = [
+    dssi
+    fftwSinglePrec
+    ladspaH
+    ladspaPlugins
+    libjack2
+    liblo
+    liblrdf
+    libsamplerate
+    libsndfile
+    lirc
+    qtbase
+  ];
+
+  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/nixpkgs/pkgs/applications/audio/rubyripper/default.nix b/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
new file mode 100644
index 000000000000..9e0a3712c971
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, ruby, cdparanoia, makeWrapper }:
+stdenv.mkDerivation rec {
+  version = "0.6.2";
+  name = "rubyripper-${version}";
+  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 = {
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/samplv1/default.nix b/nixpkgs/pkgs/applications/audio/samplv1/default.nix
new file mode 100644
index 000000000000..73f24e03e307
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/samplv1/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, libjack2, alsaLib, liblo, libsndfile, lv2, qt5 }:
+
+stdenv.mkDerivation rec {
+  name = "samplv1-${version}";
+  version = "0.9.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/samplv1/${name}.tar.gz";
+    sha256 = "17a61lliplhs14b3x83qz3kv7ww4dn3a02jfdlcx2z903hwn5sld";
+  };
+
+  buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/audio/sayonara/default.nix b/nixpkgs/pkgs/applications/audio/sayonara/default.nix
new file mode 100644
index 000000000000..fbe90c5377df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sayonara/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, cmake, qt5, zlib, taglib, pkgconfig, pcre, gst_all_1 }:
+
+let
+  version = "1.1.1-git1-20180828";
+in
+stdenv.mkDerivation {
+  name = "sayonara-player-${version}";
+
+  src = fetchurl {
+    url = "https://sayonara-player.com/sw/sayonara-player-${version}.tar.gz";
+    sha256 = "0rvy47qvavrp03zjdrw025dmq9fq5aaii3q1qq8b94byarl0c5kn";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = with qt5; with gst_all_1;
+      [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly
+        pcre qtbase qttools taglib zlib
+      ];
+
+  # CMake Error at src/GUI/Resources/Icons/cmake_install.cmake:49 (file):
+  #   file cannot create directory: /usr/share/icons.  Maybe need administrative
+  #   privileges.
+  # Call Stack (most recent call first):
+  #   src/GUI/Resources/cmake_install.cmake:50 (include)
+  #   src/GUI/cmake_install.cmake:50 (include)
+  #   src/cmake_install.cmake:59 (include)
+  #   cmake_install.cmake:42 (include)
+  postPatch = ''
+    substituteInPlace src/GUI/Resources/Icons/CMakeLists.txt \
+      --replace "/usr/share" "$out/share"
+  '';
+
+  # [ 65%] Building CXX object src/Components/Engine/CMakeFiles/say_comp_engine.dir/AbstractPipeline.cpp.o
+  # /tmp/nix-build-sayonara-player-1.0.0-git5-20180115.drv-0/sayonara-player/src/Components/Engine/AbstractPipeline.cpp:28:32: fatal error: gst/app/gstappsink.h: No such file or directory
+  #  #include <gst/app/gstappsink.h>
+  NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0";
+
+  meta = with stdenv.lib;
+    { description = "Sayonara music player";
+      homepage = https://sayonara-player.com/;
+      license = licenses.gpl3;
+      platforms = platforms.linux;
+      maintainers = [ maintainers.deepfire ];
+    };
+}
diff --git a/nixpkgs/pkgs/applications/audio/schismtracker/default.nix b/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
new file mode 100644
index 000000000000..ab1a6e387383
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, alsaLib, python, SDL }:
+
+stdenv.mkDerivation rec {
+  version = "20120105";
+  name = "schismtracker-${version}";
+
+  src = fetchurl {
+    url = "http://schismtracker.org/dl/${name}.tar.bz2";
+    sha256 = "1ny7wv2wxm1av299wvpskall6438wjjpadphmqc7c0h6d0zg5kii";
+  };
+
+  preConfigure = ''
+    # Build fails on Linux with windres.
+    export ac_cv_prog_ac_ct_WINDRES=
+  '';
+
+  configureFlags = [ "--enable-dependency-tracking" ];
+
+  buildInputs = [ alsaLib python SDL ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Music tracker application, free reimplementation of Impulse Tracker";
+    homepage = http://schismtracker.org/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = [ stdenv.lib.maintainers.ftrvxmtrx ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/seq24/default.nix b/nixpkgs/pkgs/applications/audio/seq24/default.nix
new file mode 100644
index 000000000000..d47ede27ece2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/seq24/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, alsaLib, gtkmm2, libjack2, pkgconfig }:
+
+stdenv.mkDerivation  rec {
+  name = "seq24-${version}";
+  version = "0.9.3";
+
+  src = fetchurl {
+    url = "https://launchpad.net/seq24/trunk/${version}/+download/${name}.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/nixpkgs/pkgs/applications/audio/seq24/mutex_no_nameclash.patch b/nixpkgs/pkgs/applications/audio/seq24/mutex_no_nameclash.patch
new file mode 100644
index 000000000000..dd82b1b0e09f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/setbfree/default.nix b/nixpkgs/pkgs/applications/audio/setbfree/default.nix
new file mode 100644
index 000000000000..1047734a2c18
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/setbfree/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, alsaLib, freetype, ftgl, libjack2, libX11, lv2
+, libGLU_combined, pkgconfig, ttf_bitstream_vera
+}:
+
+stdenv.mkDerivation  rec {
+  name = "setbfree-${version}";
+  version = "0.8.8";
+
+  src = fetchurl {
+    url = "https://github.com/pantherb/setBfree/archive/v${version}.tar.gz";
+    sha256 = "1ldxwds99azingkjh246kz7x3j7307jhr0fls5rjjbcfchpg7v99";
+  };
+
+  patchPhase = ''
+    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_combined
+    ttf_bitstream_vera
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A DSP tonewheel organ emulator";
+    homepage = http://setbfree.org;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix b/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix
new file mode 100644
index 000000000000..a98d1431d65e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub
+, cmake
+, qtbase, qtquickcontrols2
+, SDL
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  name = "sfxr-qt-${version}";
+  version = "1.2.0";
+  src = fetchFromGitHub {
+    owner = "agateau";
+    repo = "sfxr-qt";
+    rev = version;
+    sha256 = "1ndw1dcmzvkrc6gnb0y057zb4lqlhwrv18jlbx26w3s4xrbxqr41";
+    fetchSubmodules = true;
+  };
+  nativeBuildInputs = [
+    cmake
+    (python3.withPackages (pp: with pp; [ pyyaml jinja2 ]))
+  ];
+  buildInputs = [
+    qtbase qtquickcontrols2
+    SDL
+  ];
+  configurePhase = "cmake . -DCMAKE_INSTALL_PREFIX=$out";
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/audio/shntool/default.nix b/nixpkgs/pkgs/applications/audio/shntool/default.nix
new file mode 100644
index 000000000000..8645251b384d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/shntool/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, flac }:
+
+stdenv.mkDerivation rec {
+  version = "3.0.10";
+  name = "shntool-${version}";
+
+  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/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix b/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
new file mode 100644
index 000000000000..b857c5b68358
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, libsidplayfp }:
+
+stdenv.mkDerivation rec {
+  version = "1.4.4";
+  name = "sidplayfp-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/sidplay-residfp/sidplayfp/1.4/${name}.tar.gz";
+    sha256 = "0arsrg3f0fsinal22qjmj3r6500bcbgqnx26fsz049ldl716kz1m";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libsidplayfp ];
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/audio/sisco.lv2/default.nix b/nixpkgs/pkgs/applications/audio/sisco.lv2/default.nix
new file mode 100644
index 000000000000..32cfd0f74940
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sisco.lv2/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, lv2, pkgconfig, libGLU_combined, 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_combined ];
+
+  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/nixpkgs/pkgs/applications/audio/snapcast/default.nix b/nixpkgs/pkgs/applications/audio/snapcast/default.nix
new file mode 100644
index 000000000000..5730dec6b994
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/snapcast/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
+, alsaLib, asio, avahi, flac, libogg, libvorbis }:
+
+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 {
+  name = "snapcast-${version}";
+  version = "0.15.0";
+
+  src = fetchFromGitHub {
+    owner  = "badaix";
+    repo   = "snapcast";
+    rev    = "v${version}";
+    sha256 = "11rnpy6w3wm240qgmkp74k5w8wh5b7hzfx05qrnh6l7ng7m25ky2";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  # snapcast also supports building against tremor but as we have libogg, that's
+  # not needed
+  buildInputs = [
+    alsaLib asio avahi flac libogg libvorbis
+    aixlog popl
+  ];
+
+  # 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
+  '';
+
+  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/nixpkgs/pkgs/applications/audio/snd/default.nix b/nixpkgs/pkgs/applications/audio/snd/default.nix
new file mode 100644
index 000000000000..8534d871c662
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/snd/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig
+, gtk2, alsaLib
+, fftw, gsl
+}:
+
+stdenv.mkDerivation rec {
+  name = "snd-18.8";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/snd/${name}.tar.gz";
+    sha256 = "16p6cmxl8y58wa19k1z6i66qsqaz7rld4850b0sprbxjjb6cqhf7";
+  };
+
+  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; [ fuuzetsu ];
+  };
+
+
+}
diff --git a/nixpkgs/pkgs/applications/audio/sonata/default.nix b/nixpkgs/pkgs/applications/audio/sonata/default.nix
new file mode 100644
index 000000000000..012270905cc8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sonata/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchFromGitHub, pkgconfig, intltool, wrapGAppsHook
+, python3Packages, gnome3, gtk3, gobject-introspection}:
+
+let
+  inherit (python3Packages) buildPythonApplication isPy3k dbus-python pygobject3 mpd2;
+in buildPythonApplication rec {
+  pname = "sonata";
+  version = "1.7b1";
+
+  src = fetchFromGitHub {
+    owner = "multani";
+    repo = "sonata";
+    rev = "v${version}";
+    sha256 = "1npbxlrg6k154qybfd250nq2p96kxdsdkj9wwnp93gljnii3g8wh";
+  };
+
+  disabled = !isPy3k;
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    intltool wrapGAppsHook
+    gnome3.defaultIconTheme
+    gnome3.gsettings-desktop-schemas
+  ];
+
+  postPatch = ''
+    # Remove "Local MPD" tab which is not suitable for NixOS.
+    sed -i '/localmpd/d' sonata/consts.py
+  '';
+
+  propagatedBuildInputs = [
+    gobject-introspection gtk3 pygobject3
+  ];
+
+  # The optional tagpy dependency (for editing metadata) is not yet
+  # included because it's difficult to build.
+  pythonPath = [ dbus-python pygobject3 mpd2 ];
+
+  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/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix b/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix
new file mode 100644
index 000000000000..ee72b6cdb1a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sonic-pi/default.nix
@@ -0,0 +1,99 @@
+{ stdenv
+, fetchFromGitHub
+, fftwSinglePrec
+, ruby
+, libffi
+, aubio
+, cmake
+, pkgconfig
+, qt5
+, libsForQt5
+, boost
+, bash
+, makeWrapper
+, jack2Full
+}:
+
+let
+  supercollider = libsForQt5.callPackage ../../../development/interpreters/supercollider {
+    fftw = fftwSinglePrec;
+  };
+
+in stdenv.mkDerivation rec {
+  version = "3.1.0";
+  name = "sonic-pi-${version}";
+
+  src = fetchFromGitHub {
+    owner = "samaaron";
+    repo = "sonic-pi";
+    rev = "v${version}";
+    sha256 = "0gi4a73szaa8iz5q1gxgpsnyvhhghcfqm6bfwwxbix4m5csbfgh9";
+  };
+
+  buildInputs = [
+    bash
+    cmake
+    makeWrapper
+    pkgconfig
+    qt5.qtbase
+    libsForQt5.qscintilla
+    libsForQt5.qwt
+    ruby
+    libffi
+    aubio
+    supercollider
+    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
+
+    pushd app/server/ruby/bin
+      ./compile-extensions.rb
+      ./i18n-tool.rb -t
+    popd
+
+    pushd app/gui/qt
+      cp -f ruby_help.tmpl ruby_help.h
+      ../../server/ruby/bin/qt-doc.rb -o ruby_help.h
+
+      substituteInPlace SonicPi.pro \
+        --replace "LIBS += -lrt -lqt5scintilla2" \
+                  "LIBS += -lrt -lqscintilla2 -lqwt"
+
+      lrelease SonicPi.pro
+      qmake SonicPi.pro
+
+      make
+    popd
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    cp -r . $out
+    wrapProgram $out/bin/sonic-pi \
+      --prefix PATH : ${ruby}/bin:${bash}/bin:${supercollider}/bin:${jack2Full}/bin \
+      --set AUBIO_LIB "${aubio}/lib/libaubio.so"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    homepage = http://sonic-pi.net/;
+    description = "Free live coding synth for everyone originally designed to support computing and music lessons within schools";
+    license = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ Phlogistique kamilchm ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix b/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
new file mode 100644
index 000000000000..d5f613b45945
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -0,0 +1,56 @@
+# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
+
+{ stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo
+, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate
+, libsndfile, pkgconfig, libpulseaudio, qtbase, redland
+, qmake, rubberband, serd, sord, vampSDK, fftwFloat
+}:
+
+stdenv.mkDerivation rec {
+  name = "sonic-visualiser-${version}";
+  version = "2.4.1";
+
+  src = fetchurl {
+    url = "https://code.soundsoftware.ac.uk/attachments/download/1185/${name}.tar.gz";
+    sha256 = "06nlha70kgrby16nyhngrv5q846xagnxdinv608v7ga7vpywwmyb";
+  };
+
+  buildInputs =
+    [ libsndfile qtbase fftw fftwFloat bzip2 librdf rubberband
+      libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland
+      serd
+      sord
+      # optional
+      libjack2
+      # portaudio
+      libpulseaudio
+      libmad
+      libogg # ?
+      # fishsound
+      liblo
+      libX11
+    ];
+
+  nativeBuildInputs = [ pkgconfig qmake ];
+
+  configurePhase = ''
+    for i in sonic-visualiser svapp svcore svgui;
+      do cd $i && qmake PREFIX=$out && cd ..;
+    done
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,share/sonic-visualiser}
+    cp sonic-visualiser $out/bin/
+    cp -r samples $out/share/sonic-visualiser/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "View and analyse contents of music audio files";
+    homepage = http://www.sonicvisualiser.org/;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.goibhniu maintainers.marcweber ];
+    platforms = platforms.linux;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix b/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
new file mode 100644
index 000000000000..bf4d96c6fc4e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, liblo, libxml2, libjack2, libsndfile, wxGTK, libsigcxx
+, libsamplerate, rubberband, pkgconfig, libtool, gettext, ncurses, which
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+  name = "sooperlooper-git-${version}";
+  version = "2016-07-19";
+
+  src = fetchFromGitHub {
+    owner = "essej";
+    repo = "sooperlooper";
+    rev = "3bdfe184cd59b51c757b8048536abc1146fb0de4";
+    sha256 = "0qz25h4idv79m97ici2kzx72fwzks3lysyksk3p3rx72lsijhf3g";
+  };
+
+  autoreconfPhase = ''
+    patchShebangs ./autogen.sh
+    ./autogen.sh
+  '';
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig which libtool ];
+
+  buildInputs = [
+    liblo libxml2 libjack2 libsndfile wxGTK libsigcxx
+    libsamplerate rubberband gettext ncurses
+  ];
+
+  meta = {
+    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.
+    '';
+
+    version = "${version}";
+    homepage = http://essej.net/sooperlooper/index.html;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/sorcer/default.nix b/nixpkgs/pkgs/applications/audio/sorcer/default.nix
new file mode 100644
index 000000000000..cf0b5db81f62
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sorcer/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub , boost, cairomm, cmake, libsndfile, lv2, ntk, pkgconfig, python }:
+
+stdenv.mkDerivation rec {
+  name = "sorcer-${version}";
+  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 ];
+
+  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/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix b/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
new file mode 100644
index 000000000000..686b27223a6f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, glib, gtk3, intltool, itstool, libxml2, brasero
+, libcanberra-gtk3, gnome3, gst_all_1, libmusicbrainz5, libdiscid, isocodes
+, 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.defaultIconTheme
+    gnome3.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;
+      attrPath = "gnome3.${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/nixpkgs/pkgs/applications/audio/soundscape-renderer/default.nix b/nixpkgs/pkgs/applications/audio/soundscape-renderer/default.nix
new file mode 100644
index 000000000000..babe4edff9df
--- /dev/null
+++ b/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_combined # Needed because help2man basically does a ./ssr-binaural  --help and ssr-binaural needs libGL
+}:
+
+stdenv.mkDerivation rec {
+  name = "soundscape-renderer-unstable-${version}";
+
+  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_combined 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/nixpkgs/pkgs/applications/audio/spectmorph/default.nix b/nixpkgs/pkgs/applications/audio/spectmorph/default.nix
new file mode 100644
index 000000000000..9557770418e8
--- /dev/null
+++ b/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 {
+  name = "spectmorph-${version}";
+  version = "0.4.1";
+  src = fetchurl {
+    url = "http://spectmorph.org/files/releases/${name}.tar.bz2";
+    sha256 = "0z00yvv3jl8qsx6bz9msmg09mdnj5r5d4ws5bmnylwxk182whbrv";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/spectrojack/default.nix b/nixpkgs/pkgs/applications/audio/spectrojack/default.nix
new file mode 100644
index 000000000000..6614e3702247
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/spectrojack/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, libjack2, fftwFloat, gtk2 }:
+
+stdenv.mkDerivation rec {
+  name = "spectrojack-${version}";
+  version = "0.4.1";
+
+  src = fetchurl {
+    url = "http://sed.free.fr/spectrojack/${name}.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/nixpkgs/pkgs/applications/audio/spek/default.nix b/nixpkgs/pkgs/applications/audio/spek/default.nix
new file mode 100644
index 000000000000..8af7888f74bb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/spek/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip, autoconf, automake, intltool, pkgconfig, ffmpeg, wxGTK }:
+
+stdenv.mkDerivation rec {
+  name = "spek-${version}";
+  version = "0.8.3";
+
+  src = fetchzip {
+    name = "${name}-src";
+    url = "https://github.com/alexkay/spek/archive/v${version}.tar.gz";
+    sha256 = "0y4hlhswpqkqpsglrhg5xbfy1a6f9fvasgdf336vhwcjqsc3k2xv";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake intltool ffmpeg wxGTK ];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Analyse your audio files by showing their spectrogram";
+    homepage = http://spek.cc/;
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/split2flac/default.nix b/nixpkgs/pkgs/applications/audio/split2flac/default.nix
new file mode 100644
index 000000000000..372e507ed0e9
--- /dev/null
+++ b/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 {
+  name = "split2flac-${version}";
+  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/nixpkgs/pkgs/applications/audio/spotify/default.nix b/nixpkgs/pkgs/applications/audio/spotify/default.nix
new file mode 100644
index 000000000000..c5c3724df2ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/spotify/default.nix
@@ -0,0 +1,154 @@
+{ fetchurl, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
+, glib, pango, cairo, atk, gdk_pixbuf, gtk2, cups, nspr, nss, libpng
+, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_0_10, curl, zlib, gnome3 }:
+
+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
+  version = "1.0.94.262.g3d5c231c-9";
+  # 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 = "28";
+
+
+  deps = [
+    alsaLib
+    atk
+    cairo
+    cups
+    curl
+    dbus
+    expat
+    ffmpeg_0_10
+    fontconfig
+    freetype
+    gdk_pixbuf
+    glib
+    gtk2
+    libgcrypt
+    libpng
+    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
+    zlib
+  ];
+
+in
+
+stdenv.mkDerivation {
+  name = "spotify-${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 = "ca8e2eb45ea7ef6396382298822969994aca86cca8ba122ec1521c593e621161267943fe5515bb8747037ecbbfbd05cffbbca017f8f4b1c9fbd216e1d6a9e8cb";
+  };
+
+  buildInputs = [ squashfsTools makeWrapper ];
+
+  doConfigure = false;
+  doBuild = false;
+  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
+
+      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 ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/spotify/update.sh b/nixpkgs/pkgs/applications/audio/spotify/update.sh
new file mode 100755
index 000000000000..0e19ca1920b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/spotify/update.sh
@@ -0,0 +1,96 @@
+#!/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 -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 ot 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
+
+#
+# give instructions for upstreaming
+#
+
+git add "$spotify_nix"
+# show changes for review
+git status
+echo 'Please review and test the changes (./result/bin/spotify).'
+echo 'Then stage the changes with `git add` and commit with:'
+# prepare commit message
+echo "git commit -m 'spotify: $current_nix_version -> $upstream_version'"
diff --git a/nixpkgs/pkgs/applications/audio/spotifywm/default.nix b/nixpkgs/pkgs/applications/audio/spotifywm/default.nix
new file mode 100644
index 000000000000..f22340b69412
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/spotifywm/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, spotify, xorg }:
+stdenv.mkDerivation rec {
+  name = "spotifywm-unstable-${version}";
+  version = "2016-11-28";
+
+  src = fetchFromGitHub {
+    owner  = "dasJ";
+    repo   = "spotifywm";
+    rev    = "91dd5532ffb7a398d775abe94fe7781904ab406f";
+    sha256 = "01z088i83410bpx1vbp7c6cq01r431v55l7340x3izp53lnpp379";
+  };
+
+  buildInputs = [ xorg.libX11 ];
+
+  propagatedBuildInputs = [ spotify ];
+
+  installPhase = ''
+    echo "#!${stdenv.shell}" > 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/nixpkgs/pkgs/applications/audio/squeezelite/default.nix b/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
new file mode 100644
index 000000000000..20f6271c7adf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, alsaLib, faad2, flac, libmad, libvorbis, mpg123 }:
+
+stdenv.mkDerivation {
+  name = "squeezelite-git-2016-05-27";
+
+  src = fetchFromGitHub {
+    owner = "ralph-irving";
+    repo = "squeezelite";
+    rev = "e37ed17fed9e11a7346cbe9f1e1deeccc051f42e";
+    sha256 = "15ihx2dbp4kr6k6r50g9q5npqad5zyv8nqf5cr37bhg964syvbdm";
+  };
+
+  buildInputs = [ alsaLib faad2 flac libmad libvorbis mpg123 ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp squeezelite $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Lightweight headless squeezebox client emulator";
+    homepage = https://github.com/ralph-irving/squeezelite;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/squishyball/default.nix b/nixpkgs/pkgs/applications/audio/squishyball/default.nix
new file mode 100644
index 000000000000..496ce779ffb5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/squishyball/gnu-screen.patch b/nixpkgs/pkgs/applications/audio/squishyball/gnu-screen.patch
new file mode 100644
index 000000000000..addc30d604c6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/ssrc/default.nix b/nixpkgs/pkgs/applications/audio/ssrc/default.nix
new file mode 100644
index 000000000000..19386b477942
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ssrc/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "ssrc";
+  name = "${pname}-${version}";
+  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/nixpkgs/pkgs/applications/audio/streamripper/default.nix b/nixpkgs/pkgs/applications/audio/streamripper/default.nix
new file mode 100644
index 000000000000..39d1c266a373
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/streamripper/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl , glib, pkgconfig, libogg, libvorbis, libmad }:
+
+stdenv.mkDerivation rec {
+  name = "streamripper-${version}";
+  version = "1.64.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/streamripper/${name}.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;
+    maintainers = with maintainers; [ the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/sunvox/default.nix b/nixpkgs/pkgs/applications/audio/sunvox/default.nix
new file mode 100644
index 000000000000..47b0bf2e736c
--- /dev/null
+++ b/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 {
+  name = "SunVox-${version}";
+  version = "1.9.3b";
+
+  src = fetchurl {
+    url = "http://www.warmplace.ru/soft/sunvox/sunvox-${version}.zip";
+    sha256 = "0k74rcq7niw4p17vj3zp9lpgi932896dmzqv4ln43g0pz7l18c8b";
+  };
+
+  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/nixpkgs/pkgs/applications/audio/svox/default.nix b/nixpkgs/pkgs/applications/audio/svox/default.nix
new file mode 100644
index 000000000000..5e26b6c1cdb8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/svox/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation rec {
+  name = "svox-${version}";
+  version = "2017-07-18";
+
+  src = fetchgit {
+    url = "https://android.googlesource.com/platform/external/svox";
+    rev = "7e68d0e9aac1b5d2ad15e92ddaa3bceb27973fcb";
+    sha256 = "1bqj12w23nn27x64ianm2flrqvkskpvgrnly7ah8gv6k8s8chh3r";
+  };
+
+  postPatch = ''
+    cd pico
+  '';
+
+  buildPhase = ''
+    cd lib
+    for i in *.c; do
+      $CC -O2 -fPIC -c -o ''${i%.c}.o $i
+    done
+    $CC -shared -o libttspico.so *.o
+    cd ..
+  '';
+
+  installPhase = ''
+    install -Dm755 lib/libttspico.so $out/lib/libttspico.so
+    mkdir -p $out/include
+    cp lib/*.h $out/include
+    mkdir -p $out/share/pico/lang
+    cp lang/*.bin $out/share/pico/lang
+  '';
+
+  NIX_CFLAGS_COMPILE = [ "-include stdint.h" ];
+
+  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/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix b/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix
new file mode 100644
index 000000000000..6fa0eb7f8f2b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/swh-lv2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, fftwSinglePrec, libxslt, lv2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "swh-lv2-${version}";
+  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/nixpkgs/pkgs/applications/audio/synthv1/default.nix b/nixpkgs/pkgs/applications/audio/synthv1/default.nix
new file mode 100644
index 000000000000..e44df51404a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/synthv1/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, qt5, libjack2, alsaLib, liblo, lv2 }:
+
+stdenv.mkDerivation rec {
+  name = "synthv1-${version}";
+  version = "0.9.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/synthv1/${name}.tar.gz";
+    sha256 = "18xjj14g8gnnbwyrf39bdxc5aswb620w9i323skdf6rnaq229jyv";
+  };
+
+  buildInputs = [ qt5.qtbase qt5.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/nixpkgs/pkgs/applications/audio/tambura/default.nix b/nixpkgs/pkgs/applications/audio/tambura/default.nix
new file mode 100644
index 000000000000..a739d72898e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/tambura/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  pname = "Tambura";
+  name = "${pname}-${version}";
+  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/nixpkgs/pkgs/applications/audio/tetraproc/default.nix b/nixpkgs/pkgs/applications/audio/tetraproc/default.nix
new file mode 100644
index 000000000000..257963de256f
--- /dev/null
+++ b/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 {
+  name = "tetraproc-${version}";
+  version = "0.8.6";
+
+  src = fetchurl {
+    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.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/nixpkgs/pkgs/applications/audio/timemachine/default.nix b/nixpkgs/pkgs/applications/audio/timemachine/default.nix
new file mode 100644
index 000000000000..8837566b13d0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/timemachine/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, gtk2
+, libjack2, libsndfile
+}:
+
+stdenv.mkDerivation rec {
+  name = "timemachine-${version}";
+  version = "0.3.1";
+  src = fetchFromGitHub {
+    owner = "swh";
+    repo = "timemachine";
+    rev = "1966d8524d4e4c47c525473bab3b010a168adc98";
+    sha256 = "0w5alysixnvlkfl79wf7vs5wsw2vgxl3gqxxcm0zbmhjdpmjpcal";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [ autoconf automake gtk2 libjack2
+      libsndfile
+    ];
+
+  preConfigure = "./autogen.sh";
+
+  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/nixpkgs/pkgs/applications/audio/tomahawk/default.nix b/nixpkgs/pkgs/applications/audio/tomahawk/default.nix
new file mode 100644
index 000000000000..78bd43383539
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/tomahawk/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, cmake, pkgconfig, attica, boost, gnutls, libechonest
+, liblastfm, lucenepp, phonon, phonon-backend-vlc, qca2, qjson, qt4
+, qtkeychain, quazip, sparsehash, taglib, websocketpp, makeWrapper
+
+, enableXMPP      ? true,  libjreen     ? null
+, enableKDE       ? false, kdelibs4     ? null
+, enableTelepathy ? false, telepathy-qt ? null
+}:
+
+assert enableXMPP      -> libjreen     != null;
+assert enableKDE       -> kdelibs4     != null;
+assert enableTelepathy -> telepathy-qt != null;
+
+stdenv.mkDerivation rec {
+  name = "tomahawk-${version}";
+  version = "0.8.4";
+
+  src = fetchurl {
+    url = "http://download.tomahawk-player.org/${name}.tar.bz2";
+    sha256 = "0j84h36wkjfjbsd7ybyji7rcc9wpjdbl0f1xdcc1g7h0nz34pc0g";
+  };
+
+  cmakeFlags = [
+    "-DLUCENEPP_INCLUDE_DIR=${lucenepp}/include"
+    "-DLUCENEPP_LIBRARY_DIR=${lucenepp}/lib"
+  ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    cmake attica boost gnutls libechonest liblastfm lucenepp phonon
+    qca2 qjson qt4 qtkeychain quazip sparsehash taglib websocketpp
+    makeWrapper
+  ] ++ stdenv.lib.optional enableXMPP      libjreen
+    ++ stdenv.lib.optional enableKDE       kdelibs4
+    ++ stdenv.lib.optional enableTelepathy telepathy-qt;
+
+  postInstall = let
+    pluginPath = stdenv.lib.concatStringsSep ":" [
+      "${phonon-backend-vlc}/lib/kde4/plugins"
+    ];
+  in ''
+    for i in "$out"/bin/*; do
+      wrapProgram "$i" --prefix QT_PLUGIN_PATH : "${pluginPath}"
+    done
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A multi-source music player (unmaintained)";
+    homepage = http://tomahawk-player.org/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    broken = true; # 2018-06-25
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/transcode/default.nix b/nixpkgs/pkgs/applications/audio/transcode/default.nix
new file mode 100644
index 000000000000..d7d5b65375e9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/transcribe/default.nix b/nixpkgs/pkgs/applications/audio/transcribe/default.nix
new file mode 100644
index 000000000000..9a76f2d15c73
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/transcribe/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchzip, wrapGAppsHook, alsaLib, atk, cairo, gdk_pixbuf
+, glib, gst_all_1,  gtk3, libSM, libX11, libpng12, pango, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "transcribe-${version}";
+  version = "8.72";
+
+  src = if stdenv.hostPlatform.system == "i686-linux" then
+    fetchzip {
+      url = "https://www.seventhstring.com/xscribe/downlinux32/xscsetup.tar.gz";
+      sha256 = "1h5l7ry9c9awpxfnd29b0wm973ifrhj17xl5d2fdsclw2swsickb";
+    }
+  else if stdenv.hostPlatform.system == "x86_64-linux" then
+    fetchzip {
+      url = "https://www.seventhstring.com/xscribe/downlinux64/xsc64setup.tar.gz";
+      sha256 = "1rpd3ppnx5i5yrnfbjrx7h7dk48kwl99i9lnpa75ap7nxvbiznm0";
+    }
+  else throw "Platform not supported";
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  buildInputs = with gst_all_1; [ gst-plugins-base gst-plugins-good
+    gst-plugins-bad gst-plugins-ugly ];
+
+  dontPatchELF = true;
+
+  libPath = with gst_all_1; stdenv.lib.makeLibraryPath [
+    stdenv.cc.cc glib gtk3 atk pango cairo gdk_pixbuf alsaLib
+    libX11 libSM libpng12 gstreamer gst-plugins-base zlib
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/libexec $out/share/doc
+    cp transcribe $out/libexec
+    cp xschelp.htb readme_gtk.html $out/share/doc
+    cp -r gtkicons $out/share/icons
+
+    ln -s $out/share/doc/xschelp.htb $out/libexec
+
+    patchelf \
+      --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+      $out/libexec/transcribe
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+      --prefix LD_LIBRARY_PATH : "${libPath}"
+    )
+  '';
+
+  postFixup = ''
+    ln -s $out/libexec/transcribe $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Software to help transcribe recorded music";
+    longDescription = ''
+      The Transcribe! application is an assistant for people who want
+      to work out a piece of music from a recording, in order to write
+      it out, or play it themselves, or both. It doesn't do the
+      transcribing for you, but it is essentially a specialised player
+      program which is optimised for the purpose of transcription. It
+      has many transcription-specific features not found on
+      conventional music players.
+    '';
+    homepage = https://www.seventhstring.com/xscribe/;
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ michalrus ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/traverso/default.nix b/nixpkgs/pkgs/applications/audio/traverso/default.nix
new file mode 100644
index 000000000000..9729b136d905
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/traverso/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, cmake, pkgconfig
+, alsaLib, fftw, flac, lame, libjack2, libmad, libpulseaudio
+, libsamplerate, libsndfile, libvorbis, portaudio, qtbase, wavpack
+}:
+stdenv.mkDerivation rec {
+  name = "traverso-${version}";
+  version = "0.49.5";
+
+  src = fetchurl {
+    url = "http://traverso-daw.org/traverso-0.49.5.tar.gz";
+    sha256 = "169dsqrf807ciavrd82d3iil0xy0r3i1js08xshcrn80ws9hv63m";
+  };
+
+  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 = http://traverso-daw.org/;
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ coconnor ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/uade123/default.nix b/nixpkgs/pkgs/applications/audio/uade123/default.nix
new file mode 100644
index 000000000000..7db3b7ec2376
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/uade123/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, which, libao, pkgconfig }:
+
+let
+  version = "2.13";
+in stdenv.mkDerivation rec {
+  name = "uade123-${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/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix b/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
new file mode 100644
index 000000000000..27533084804a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, makeWrapper, fetchFromBitbucket, fetchFromGitHub, pkgconfig
+, alsaLib, curl, glew, glfw, gtk2-x11, jansson, libjack2, libXext, libXi
+, libzip, rtaudio, rtmidi, speex }:
+
+let
+  glfw-git = glfw.overrideAttrs (oldAttrs: rec {
+    name = "glfw-git-${version}";
+    version = "unstable-2018-05-29";
+    src = fetchFromGitHub {
+      owner = "glfw";
+      repo = "glfw";
+      rev = "0be4f3f75aebd9d24583ee86590a38e741db0904";
+      sha256 = "0zbcjgc7ks25yi949k0wjknfl00a4dqmz45mhp00k62vlq2sj0i5";
+    };
+    buildInputs = oldAttrs.buildInputs ++ [ libXext libXi ];
+  });
+  pfft-source = fetchFromBitbucket {
+    owner = "jpommier";
+    repo = "pffft";
+    rev = "29e4f76ac53bef048938754f32231d7836401f79";
+    sha256 = "084csgqa6f1a270bhybjayrh3mpyi2jimc87qkdgsqcp8ycsx1l1";
+  };
+in
+with stdenv.lib; stdenv.mkDerivation rec {
+  name = "VCV-Rack-${version}";
+  version = "0.6.2b";
+
+  src = fetchFromGitHub {
+    owner = "VCVRack";
+    repo = "Rack";
+    rev = "v${version}";
+    sha256 = "17ynhxcci6dyn1yi871fd8yli4924fh12pmk510djwkcj5crhas6";
+    fetchSubmodules = true;
+  };
+
+  prePatch = ''
+    ln -s ${pfft-source} dep/jpommier-pffft-source
+
+    mkdir -p dep/include
+
+    cp dep/jpommier-pffft-source/*.h dep/include
+    cp dep/nanosvg/src/*.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" ""
+    substituteInPlace Makefile \
+       --replace "-Wl,-Bstatic" "" \
+       --replace "-lglfw3" "-lglfw"
+  '';
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+  buildInputs = [ glfw-git alsaLib curl glew gtk2-x11 jansson libjack2 libzip rtaudio rtmidi speex ];
+
+  buildFlags = "Rack";
+
+  installPhase = ''
+    install -D -m755 -t $out/bin Rack
+    cp -r res $out/
+
+    mkdir -p $out/share/rack
+    cp LICENSE.txt LICENSE-dist.txt $out/share/rack
+
+    # Override the default global resource file directory
+    wrapProgram $out/bin/Rack --add-flags "-g $out"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Open-source virtual modular synthesizer";
+    homepage = http://vcvrack.com/;
+    # The source is BSD-3 licensed, some of the art is CC-BY-NC 4.0 or unfree
+    license = [ licenses.bsd3 licenses.cc-by-nc-40 licenses.unfree ];
+    maintainers = with maintainers; [ moredread ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/vimpc/default.nix b/nixpkgs/pkgs/applications/audio/vimpc/default.nix
new file mode 100644
index 000000000000..96a6081c4d8f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/vimpc/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, mpd_clientlib, ncurses, pcre, pkgconfig
+, taglib }:
+
+stdenv.mkDerivation rec {
+  version = "0.09.1";
+  name = "vimpc-${version}";
+
+  src = fetchFromGitHub {
+    owner = "boysetsfrog";
+    repo = "vimpc";
+    rev = "v${version}";
+    sha256 = "1495a702df4nja8mlxq98mkbic2zv88sjiinimf9qddrfb38jxk6";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ mpd_clientlib ncurses pcre taglib ];
+
+  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/nixpkgs/pkgs/applications/audio/vkeybd/default.nix b/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
new file mode 100644
index 000000000000..b7b0fba2d548
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/vkeybd/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, alsaLib, libX11, makeWrapper, tcl, tk }:
+
+stdenv.mkDerivation  rec {
+  name = "vkeybd-${version}";
+  version = "0.1.18d";
+
+  src = fetchurl {
+    url = "ftp://ftp.suse.com/pub/people/tiwai/vkeybd/${name}.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 = http://www.alsa-project.org/~tiwai/alsa.html;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/vmpk/default.nix b/nixpkgs/pkgs/applications/audio/vmpk/default.nix
new file mode 100644
index 000000000000..dde96764fe6c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/vmpk/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, cmake, pkgconfig
+, qt4, libjack2
+}:
+
+let
+  version = "0.5.1";
+in stdenv.mkDerivation rec {
+  name = "vmpk-${version}";
+
+  meta = with stdenv.lib; {
+    description = "Virtual MIDI Piano Keyboard";
+    homepage    = "http://vmpk.sourceforge.net/";
+    license     = licenses.gpl3Plus;
+    platforms   = platforms.linux;
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/vmpk/${version}/${name}.tar.bz2";
+    sha256 = "11fqnxgs9hr9255d93n7lazxzjwn8jpmn23nywdksh0pb1ffvfrc";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ qt4 libjack2 ];
+}
diff --git a/nixpkgs/pkgs/applications/audio/vocal/default.nix b/nixpkgs/pkgs/applications/audio/vocal/default.nix
new file mode 100644
index 000000000000..75f67adf4645
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/vocal/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, vala_0_40, gtk3, libxml2, granite, webkitgtk, clutter-gtk
+, clutter-gst, libunity, libnotify, sqlite, gst_all_1, libsoup, json-glib, gnome3, gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "vocal";
+  version = "2.3.0";
+
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "needle-and-thread";
+    repo = pname;
+    rev = version;
+    sha256 = "1wkkyai14in4yk3q4qq23wk3l49px2xi8z819y3glna236qsq6qp";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    gobject-introspection
+    libxml2
+    ninja
+    pkgconfig
+    vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
+    wrapGAppsHook
+  ];
+
+  buildInputs = with gst_all_1; [
+    clutter-gst
+    clutter-gtk
+    gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
+    gnome3.libgee
+    granite
+    gst-plugins-base
+    gst-plugins-good
+    gstreamer
+    json-glib
+    libnotify
+    libunity
+    sqlite
+    webkitgtk
+  ];
+
+  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/nixpkgs/pkgs/applications/audio/vorbis-tools/default.nix b/nixpkgs/pkgs/applications/audio/vorbis-tools/default.nix
new file mode 100644
index 000000000000..f815ac02e6e5
--- /dev/null
+++ b/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-6.debian.tar.xz";
+    sha256 = "1xmmpdvxyr84lazlg23c6ck5ic97ga2rkiqabb1d98ix2zdzyqz5";
+  };
+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/nixpkgs/pkgs/applications/audio/wavegain/default.nix b/nixpkgs/pkgs/applications/audio/wavegain/default.nix
new file mode 100644
index 000000000000..5f56fb7297f4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/whipper/default.nix b/nixpkgs/pkgs/applications/audio/whipper/default.nix
new file mode 100644
index 000000000000..07ab9b55e5bd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/whipper/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, python2, cdparanoia, cdrdao, flac
+, sox, accuraterip-checksum, utillinux, substituteAll }:
+
+python2.pkgs.buildPythonApplication rec {
+  name = "whipper-${version}";
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "whipper-team";
+    repo = "whipper";
+    rev = "v${version}";
+    sha256 = "0ypbgc458i7yvbyvg6wg6agz5yzlwm1v6zw7fmyq9h59xsv27mpr";
+  };
+
+  pythonPath = with python2.pkgs; [
+    pygobject3 musicbrainzngs urllib3 chardet
+    pycdio setuptools mutagen CDDB
+    requests
+  ];
+
+  checkInputs = with python2.pkgs; [
+    twisted
+  ];
+
+  patches = [
+    (substituteAll {
+      src = ./paths.patch;
+      inherit cdparanoia;
+    })
+  ];
+
+  makeWrapperArgs = [
+    "--prefix" "PATH" ":" "${stdenv.lib.makeBinPath [ accuraterip-checksum cdrdao utillinux flac sox ]}"
+  ];
+
+  # 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 jgeerds ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/whipper/paths.patch b/nixpkgs/pkgs/applications/audio/whipper/paths.patch
new file mode 100644
index 000000000000..14b5384330da
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/wolf-shaper/default.nix b/nixpkgs/pkgs/applications/audio/wolf-shaper/default.nix
new file mode 100644
index 000000000000..562fdc1be8b6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/wolf-shaper/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub , libjack2, lv2, xorg, liblo, libGL, libXcursor, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "wolf-shaper-${version}";
+  version = "0.1.6";
+
+  src = fetchFromGitHub {
+    owner = "pdesaulniers";
+    repo = "wolf-shaper";
+    rev = "v${version}";
+    sha256 = "01h5dm1nrr0i54ancwznr7wn4vpw08dw0b69v3axy32r5j7plw6s";
+    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/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix b/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
new file mode 100644
index 000000000000..e6041dc9b1c5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig
+, libltc, libsndfile, libsamplerate, ftgl, freefont_ttf, libjack2
+, libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
+
+stdenv.mkDerivation rec {
+  version = "20181103";
+  name = "x42-plugins-${version}";
+
+  src = fetchurl {
+    url = "https://gareus.org/misc/x42-plugins/${name}.tar.xz";
+    sha256 = "085d6qjj7nl22f0xamqdrnfxwi8zrfwgkwm1svm73bjkdv270438";
+  };
+
+  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
+    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/nixpkgs/pkgs/applications/audio/xmp/default.nix b/nixpkgs/pkgs/applications/audio/xmp/default.nix
new file mode 100644
index 000000000000..d234f6b6b8cc
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix b/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
new file mode 100644
index 000000000000..a55b47a6c16b
--- /dev/null
+++ b/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 {
+  name = "xsynth-dssi-${version}";
+  version = "0.9.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dssi/${name}.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/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations b/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations
new file mode 100644
index 000000000000..f575af5ecd31
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations
@@ -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/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen b/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen
new file mode 100644
index 000000000000..386c6cbf22bd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen
@@ -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/nixpkgs/pkgs/applications/audio/yasr/30_conf b/nixpkgs/pkgs/applications/audio/yasr/30_conf
new file mode 100644
index 000000000000..98e959f55f31
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/yasr/30_conf
@@ -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/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars b/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars
new file mode 100644
index 000000000000..cc1f0af86065
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars
@@ -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/nixpkgs/pkgs/applications/audio/yasr/default.nix b/nixpkgs/pkgs/applications/audio/yasr/default.nix
new file mode 100644
index 000000000000..ca6d6240688a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/yasr/default.nix
@@ -0,0 +1,28 @@
+{stdenv,fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "yasr-${version}";
+
+  version = "0.6.9";
+
+  src = fetchurl {
+    url = "https://sourceforge.net/projects/yasr/files/yasr/${version}/${name}.tar.gz";
+    sha256 = "1prv9r9y6jb5ga5578ldiw507fa414m60xhlvjl29278p3x7rwa1";
+  };
+
+  patches = [
+    ./10_fix_openpty_forkpty_declarations
+    ./20_maxpathlen
+    ./30_conf
+    ./40_dectalk_extended_chars
+  ]; # 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/nixpkgs/pkgs/applications/audio/ympd/default.nix b/nixpkgs/pkgs/applications/audio/ympd/default.nix
new file mode 100644
index 000000000000..b800df016c9a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ympd/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, mpd_clientlib, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "ympd-${version}";
+  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/nixpkgs/pkgs/applications/audio/yoshimi/default.nix b/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
new file mode 100644
index 000000000000..d35c7b05a893
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/yoshimi/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk, pcre
+, libjack2, libsndfile, libXdmcp, readline, lv2, libGLU_combined, minixml, pkgconfig, zlib, xorg
+}:
+
+assert stdenv ? glibc;
+
+stdenv.mkDerivation  rec {
+  name = "yoshimi-${version}";
+  version = "1.5.9";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
+    sha256 = "1nqwxwq6814m860zrh33r85vdyi2bgkvjg5372h3ngcdmxnb7wr0";
+  };
+
+  buildInputs = [
+    alsaLib boost cairo fftwSinglePrec fltk libjack2 libsndfile libXdmcp readline lv2 libGLU_combined
+    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/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix b/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix
new file mode 100644
index 000000000000..210d0f7e989d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/zam-plugins/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit , boost, libX11, libGLU_combined, liblo, libjack2, ladspaH, lv2, pkgconfig, rubberband, libsndfile, fftwFloat, libsamplerate }:
+
+stdenv.mkDerivation rec {
+  name = "zam-plugins-${version}";
+  version = "3.10";
+
+  src = fetchgit {
+    url = "https://github.com/zamaudio/zam-plugins.git";
+    deepClone = true;
+    rev = "a3321af1892a6994d64fb705e48ae8adf8d7df20";
+    sha256 = "0yqrs21ph2lx00p0jlc70qkmzfrnf9ihg1r3i9j5n2r903ljdg5p";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ boost libX11 libGLU_combined liblo libjack2 ladspaH lv2 rubberband libsndfile fftwFloat libsamplerate ];
+
+  patchPhase = ''
+    patchShebangs ./dpf/utils/generate-ttl.sh
+  '';
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  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/nixpkgs/pkgs/applications/audio/zita-njbridge/default.nix b/nixpkgs/pkgs/applications/audio/zita-njbridge/default.nix
new file mode 100644
index 000000000000..faa90e684aea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/zita-njbridge/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, libjack2, zita-resampler }:
+
+stdenv.mkDerivation rec {
+  version = "0.4.4";
+  name = "zita-njbridge-${version}";
+
+  src = fetchurl {
+    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.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/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix b/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
new file mode 100644
index 000000000000..1b3429f39d7f
--- /dev/null
+++ b/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 {
+  name = "zynaddsubfx-${version}";
+  version = "3.0.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/zynaddsubfx/zynaddsubfx-${version}.tar.bz2";
+    sha256 = "1hfpiqdm337gl4ynkmmp2qss2m5z8mzqzjrbiyg6w1v4js7l9phi";
+  };
+
+  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/nixpkgs/pkgs/applications/backup/areca/default.nix b/nixpkgs/pkgs/applications/backup/areca/default.nix
new file mode 100644
index 000000000000..7a7f6f2ac496
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/areca/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, ant, jre, jdk, swt, acl, attr }:
+
+stdenv.mkDerivation rec {
+  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"
+
+    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/nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff b/nixpkgs/pkgs/applications/backup/areca/fix-javah-bug.diff
new file mode 100644
index 000000000000..5d5feaf9b943
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanDesktop.patch b/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanDesktop.patch
new file mode 100644
index 000000000000..7fa68ba4a388
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanDesktop.patch
@@ -0,0 +1,12 @@
+--- ./scripts/CrashPlanDesktop	2016-03-02 21:01:58.000000000 -0500
++++ ./scripts/CrashPlanDesktop-1	2016-03-18 20:52:10.117686266 -0400
+@@ -11,7 +11,7 @@
+ cd ${TARGETDIR}
+ 
+ if [ "_${VERSION_5_UI}" == "_true" ]; then
+-	${TARGETDIR}/electron/crashplan > ${TARGETDIR}/log/ui_output.log 2> ${TARGETDIR}/log/ui_error.log &
++	${TARGETDIR}/electron/crashplan &
+ else
+-	${JAVACOMMON} ${GUI_JAVA_OPTS} -classpath "./lib/com.backup42.desktop.jar:./lang:./skin" com.backup42.desktop.CPDesktop > ${TARGETDIR}/log/ui_output.log 2> ${TARGETDIR}/log/ui_error.log &
++	${JAVACOMMON} ${GUI_JAVA_OPTS} -classpath "./lib/com.backup42.desktop.jar:./lang:./skin" com.backup42.desktop.CPDesktop &
+ fi
diff --git a/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanEngine.patch b/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanEngine.patch
new file mode 100644
index 000000000000..de2afe2da684
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/crashplan/CrashPlanEngine.patch
@@ -0,0 +1,37 @@
+--- ./scripts/CrashPlanEngine	2014-02-19 23:17:19.000000000 +0000
++++ ./scripts/CrashPlanEngine.1	2014-07-24 17:36:37.330333581 +0100
+@@ -11,7 +11,7 @@
+ 	
+ 	cd $TARGETDIR
+ 		
+-	nice -n 19 $JAVACOMMON $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $TARGETDIR/log/engine_output.log 2> $TARGETDIR/log/engine_error.log & 
++	nice -n 19 $JAVACOMMON $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $VARDIR/log/engine_output.log 2> $VARDIR/log/engine_error.log & 
+ 	
+ 	if [[ $! -gt 0 ]]; then
+ 		echo $! > $PIDFILE
+@@ -26,7 +26,7 @@
+ 
+ 	echo "Using Ubuntu 9.04 startup"
+ 	
+-	start-stop-daemon -v --pidfile $PIDFILE --make-pidfile --background --chdir $TARGETDIR --start --nicelevel 19 --exec $JAVACOMMON -- $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $TARGETDIR/log/engine_output.log 2> $TARGETDIR/log/engine_error.log
++	start-stop-daemon -v --pidfile $PIDFILE --make-pidfile --background --chdir $TARGETDIR --start --nicelevel 19 --exec $JAVACOMMON -- $SRV_JAVA_OPTS -classpath $FULL_CP com.backup42.service.CPService > $VARDIR/log/engine_output.log 2> $VARDIR/log/engine_error.log
+ 	
+ 	# This test isn't as useful as one might like; start-stop-daemon can't accurately report the state of child processes when --background is used.
+ 	# We use this mainly to report the specific error value returned by start-stop-daemon if something goes wrong, but be aware that a return value
+@@ -91,7 +91,6 @@
+ DESC="CrashPlan Engine"
+ NAME=CrashPlanEngine
+ DAEMON=$TARGETDIR/lib/com.backup42.desktop.jar
+-PIDFILE="$TARGETDIR/${NAME}.pid"
+ 
+ if [[ -f $TARGETDIR/install.vars ]]; then
+ 	. $TARGETDIR/install.vars
+@@ -100,6 +99,8 @@
+ 	exit 1
+ fi
+ 
++PIDFILE="$VARDIR/${NAME}.pid"
++
+ if [[ ! -f $DAEMON ]]; then
+ 	echo "Could not find JAR file $DAEMON"
+ 	exit 0
diff --git a/nixpkgs/pkgs/applications/backup/crashplan/crashplan-small-business.nix b/nixpkgs/pkgs/applications/backup/crashplan/crashplan-small-business.nix
new file mode 100644
index 000000000000..2016d21c5926
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/crashplan/crashplan-small-business.nix
@@ -0,0 +1,103 @@
+{ stdenv, fetchurl, makeWrapper, getopt, jre, cpio, gawk, gnugrep, gnused,
+  procps, which, gtk2, atk, glib, pango, gdk_pixbuf, cairo, freetype,
+  fontconfig, dbus, gconf, nss, nspr, alsaLib, cups, expat, udev,
+  libX11, libxcb, libXi, libXcursor, libXdamage, libXrandr, libXcomposite,
+  libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nodePackages,
+  maxRam ? "1024m" }:
+
+stdenv.mkDerivation rec {
+  version = "6.7.0";
+  rev = "1512021600670_4503";
+  pname = "CrashPlanSmb";
+  name = "${pname}_${version}_${rev}";
+
+  src = fetchurl {
+    url = "https://web-eam-msp.crashplanpro.com/client/installers/${name}_Linux.tgz";
+    sha256 = "0f7ykfxaqjlvv4hv12yc5z8y1vjsysdblv53byml7i1fy1r0q26q";
+  };
+
+  nativeBuildInputs = [ makeWrapper cpio nodePackages.asar ];
+  buildInputs = [ getopt which ];
+
+  vardir = "/var/lib/crashplan";
+  manifestdir = "${vardir}/manifest";
+
+  postPatch = ''
+    # patch scripts/CrashPlanEngine
+    substituteInPlace scripts/CrashPlanEngine \
+      --replace /bin/ps ${procps}/bin/ps \
+      --replace awk ${gawk}/bin/awk \
+      --replace '`sed' '`${gnused}/bin/sed' \
+      --replace grep ${gnugrep}/bin/grep \
+      --replace TARGETDIR/log VARDIR/log \
+      --replace TARGETDIR/\''${NAME} VARDIR/\''${NAME} \
+      --replace \$TARGETDIR/bin/run.conf $out/bin/run.conf \
+      --replace \$VARDIR ${vardir}
+
+    # patch scripts/CrashPlanDesktop
+    substituteInPlace scripts/CrashPlanDesktop \
+      --replace awk ${gawk}/bin/awk \
+      --replace "\"\$SCRIPTDIR/..\"" "$out" \
+      --replace "\$(dirname \$SCRIPT)" "$out" \
+      --replace "\''${TARGETDIR}/log" ${vardir}/log \
+      --replace "\''${TARGETDIR}" "$out"
+  '';
+
+  installPhase = ''
+    mkdir $out
+    zcat -v ${pname}_${version}.cpi | (cd $out; cpio -i -d -v --no-preserve-owner)
+
+    install -D -m 755 scripts/CrashPlanDesktop $out/bin/CrashPlanDesktop
+    install -D -m 755 scripts/CrashPlanEngine $out/bin/CrashPlanEngine
+    install -D -m 644 scripts/run.conf $out/bin/run.conf
+    install -D -m 644 scripts/CrashPlan.desktop $out/share/applications/CrashPlan.desktop
+
+    # unpack, patch and repack app.asar to stop electron from creating /usr/local/crashplan/log to store the ui logs.
+    asar e $out/app.asar $out/app.asar-unpacked
+    rm -v $out/app.asar
+    substituteInPlace $out/app.asar-unpacked/shared_modules/shell/platform_paths.js \
+      --replace "getLogFileParentPath();" "\"$vardir/log\";"
+    asar p $out/app.asar-unpacked $out/app.asar
+
+    mv -v $out/*.asar $out/electron/resources
+    chmod 755 "$out/electron/crashplan"
+
+    rm -r $out/log
+    mv -v $out/conf $out/conf.template
+    ln -s $vardir/log $out/log
+    ln -s $vardir/cache $out/cache
+    ln -s $vardir/conf $out/conf
+
+    substituteInPlace $out/bin/run.conf \
+      --replace "-Xmx1024m" "-Xmx${maxRam}"
+
+    echo "JAVACOMMON=${jre}/bin/java" > $out/install.vars
+    echo "APP_BASENAME=CrashPlan" >> $out/install.vars
+    echo "TARGETDIR=$out" >> $out/install.vars
+    echo "BINSDIR=$out/bin" >> $out/install.vars
+    echo "MANIFESTDIR=${manifestdir}" >> $out/install.vars
+    echo "VARDIR=${vardir}" >> $out/install.vars
+    echo "INITDIR=" >> $out/install.vars
+    echo "RUNLVLDIR=" >> $out/install.vars
+    echo "INSTALLDATE=" >> $out/install.vars
+
+  '';
+
+  postFixup = ''
+    patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/electron/crashplan
+    wrapProgram $out/bin/CrashPlanDesktop --prefix LD_LIBRARY_PATH ":" "${stdenv.lib.makeLibraryPath [
+      stdenv.cc.cc.lib gtk2 atk glib pango gdk_pixbuf cairo freetype
+      fontconfig dbus gconf nss nspr alsaLib cups expat udev
+      libX11 libxcb libXi libXcursor libXdamage libXrandr libXcomposite
+      libXext libXfixes libXrender libXtst libXScrnSaver]}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An online backup solution";
+    homepage = http://www.crashplan.com/business/;
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ xvapx ];
+    broken = true; # 2018-12-06
+  };
+}
diff --git a/nixpkgs/pkgs/applications/backup/crashplan/default.nix b/nixpkgs/pkgs/applications/backup/crashplan/default.nix
new file mode 100644
index 000000000000..2c76891b3f9e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/crashplan/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, makeWrapper, jre, cpio, gawk, gnugrep, gnused, procps, gtk2, glib, libXtst }:
+
+stdenv.mkDerivation rec {
+  version = "4.8.3";
+  rev = "1"; #tracks unversioned changes that occur on download.code42.com from time to time
+  name = "crashplan-${version}-r${rev}";
+
+  src = fetchurl {
+    url = "https://download.code42.com/installs/linux/install/CrashPlan/CrashPlan_${version}_Linux.tgz";
+    sha256 = "c25d87ec1d442a396b668547e39b70d66dcfe02250cc57a25916ebb42a407113";
+  };
+
+  meta = with stdenv.lib; {
+    description = "An online/offline backup solution";
+    homepage = http://www.crashplan.org;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ sztupi domenkozar jerith666 ];
+  };
+
+  buildInputs = [ makeWrapper cpio ];
+
+  vardir = "/var/lib/crashplan";
+
+  manifestdir = "${vardir}/manifest";
+
+  patches = [ ./CrashPlanEngine.patch ./CrashPlanDesktop.patch ];
+
+  installPhase = ''
+    mkdir $out
+    zcat -v CrashPlan_${version}.cpi | (cd $out; cpio -i -d -v --no-preserve-owner)
+
+    # sed -i "s|<manifestPath>manifest</manifestPath>|<manifestPath>${manifestdir}</manifestPath>|g" $out/conf/default.service.xml
+
+    # Fix for encoding troubles (CrashPlan ticket 178827)
+    # Make sure the daemon is running using the same localization as
+    # the (installing) user
+    echo "" >> run.conf
+    echo "LC_ALL=en_US.UTF-8" >> run.conf
+
+    install -d -m 755 unpacked $out
+
+    install -D -m 644 run.conf $out/bin/run.conf
+    install -D -m 755 scripts/CrashPlanDesktop $out/bin/CrashPlanDesktop
+    install -D -m 755 scripts/CrashPlanEngine $out/bin/CrashPlanEngine
+    install -D -m 644 scripts/CrashPlan.desktop $out/share/applications/CrashPlan.desktop
+
+    rm -r $out/log
+    mv -v $out/conf $out/conf.template
+    ln -s $vardir/log $out/log
+    ln -s $vardir/cache $out/cache
+    ln -s $vardir/backupArchives $out/backupArchives
+    ln -s $vardir/conf $out/conf
+
+    echo "JAVACOMMON=${jre}/bin/java" > $out/install.vars
+    echo "APP_BASENAME=CrashPlan" >> $out/install.vars
+    echo "TARGETDIR=${vardir}" >> $out/install.vars
+    echo "BINSDIR=$out/bin" >> $out/install.vars
+    echo "MANIFESTDIR=${manifestdir}" >> $out/install.vars
+    echo "VARDIR=${vardir}" >> $out/install.vars
+    echo "INITDIR=" >> $out/install.vars
+    echo "RUNLVLDIR=" >> $out/install.vars
+    echo "INSTALLDATE=" >> $out/install.vars
+  '';
+
+  postFixup = ''
+    for f in $out/bin/CrashPlanDesktop $out/bin/CrashPlanEngine; do
+      echo "substitutions in $f"
+      substituteInPlace $f --replace /bin/ps  ${procps}/bin/ps
+      substituteInPlace $f --replace awk      ${gawk}/bin/awk
+      substituteInPlace $f --replace sed      ${gnused}/bin/sed
+      substituteInPlace $f --replace grep     ${gnugrep}/bin/grep
+    done
+    
+    substituteInPlace $out/share/applications/CrashPlan.desktop \
+      --replace /usr/local  $out \
+      --replace crashplan/skin skin \
+      --replace bin/CrashPlanDesktop CrashPlanDesktop
+
+    wrapProgram $out/bin/CrashPlanDesktop --prefix LD_LIBRARY_PATH ":" "${stdenv.lib.makeLibraryPath [ gtk2 glib libXtst ]}"
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/backup/deja-dup/default.nix b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
new file mode 100644
index 000000000000..43cc171e05f1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchurl, substituteAll, meson, ninja, pkgconfig, vala_0_40, gettext
+, gnome3, libnotify, itstool, glib, gtk3, libxml2
+, coreutils, libsecret, pcre, libxkbcommon, wrapGAppsHook
+, libpthreadstubs, libXdmcp, epoxy, at-spi2-core, dbus, libgpgerror
+, appstream-glib, desktop-file-utils, duplicity
+}:
+
+stdenv.mkDerivation rec {
+  name = "deja-dup-${version}";
+  version = "38.1";
+
+  src = fetchurl {
+    url = "https://launchpad.net/deja-dup/${stdenv.lib.versions.major version}/${version}/+download/deja-dup-${version}.tar.xz";
+    sha256 = "0wm7z72qbsljzsysxg8h5sbpg56ignn9mp8v3xynn12dv3gv6rba";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit coreutils;
+    })
+    ./hardcode-gsettings.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace deja-dup/nautilus/NautilusExtension.c --subst-var-by DEJA_DUP_GSETTINGS_PATH $out/share/gsettings-schemas/${name}/glib-2.0/schemas
+  '';
+
+  nativeBuildInputs = [
+    meson ninja pkgconfig vala_0_40 gettext itstool
+    appstream-glib desktop-file-utils libxml2 wrapGAppsHook
+  ];
+
+  buildInputs = [
+   libnotify gnome3.libpeas glib gtk3 libsecret
+   pcre libxkbcommon libpthreadstubs libXdmcp epoxy gnome3.nautilus
+   at-spi2-core dbus gnome3.gnome-online-accounts libgpgerror
+  ];
+
+  propagatedUserEnvPkgs = [ duplicity ];
+
+  PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
+
+  postInstall = ''
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
+
+  postFixup = ''
+    # Unwrap accidentally wrapped library
+    mv $out/libexec/deja-dup/tools/.libduplicity.so-wrapped $out/libexec/deja-dup/tools/libduplicity.so
+  '';
+
+  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://launchpad.net/deja-dup;
+    license = with licenses; gpl3;
+    maintainers = with maintainers; [ jtojnar joncojonathan ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch b/nixpkgs/pkgs/applications/backup/deja-dup/fix-paths.patch
new file mode 100644
index 000000000000..26126fdc9d56
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch b/nixpkgs/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch
new file mode 100644
index 000000000000..50bf2ba4fbd5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch
@@ -0,0 +1,38 @@
+--- a/deja-dup/nautilus/NautilusExtension.c
++++ b/deja-dup/nautilus/NautilusExtension.c
+@@ -24,6 +24,8 @@
+ #include <glib/gi18n-lib.h>
+ 
+ GList *dirs = NULL;
++GSettingsSchemaSource *schema_source = NULL;
++GSettingsSchema *schema = NULL;
+ GSettings *settings = NULL;
+ 
+ // This will treat a < b iff a is 'lower' in the file tree than b
+@@ -313,7 +315,13 @@
+   bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
+   bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+ 
+-  settings = g_settings_new("org.gnome.DejaDup");
++  schema_source = g_settings_schema_source_new_from_directory ("@DEJA_DUP_GSETTINGS_PATH@",
++    g_settings_schema_source_get_default (), TRUE, NULL);
++
++  schema = g_settings_schema_source_lookup (schema_source,
++                                            "org.gnome.DejaDup", FALSE);
++
++  settings = g_settings_new_full (schema, NULL, NULL);
+   g_signal_connect(settings, "changed::include-list",
+                    update_include_excludes, NULL);
+   g_signal_connect(settings, "changed::exclude-list",
+@@ -329,7 +337,11 @@
+ 
+ void nautilus_module_shutdown(void)
+ {
++  g_settings_schema_source_unref(schema_source);
++  g_settings_schema_unref(schema);
+   g_object_unref(settings);
++  schema_source = NULL;
++  schema = NULL;
+   settings = NULL;
+ 
+   update_include_excludes(); /* will clear it now that settings is NULL */
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
new file mode 100644
index 000000000000..38270a25c9c9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchgit, pkgconfig
+, dbus, pcre, epoxy, libXdmcp, at-spi2-core, libxklavier, libxkbcommon, libpthreadstubs
+, gtk3, vala, cmake, libgee, libX11, lightdm, gdk_pixbuf, clutter-gtk }:
+
+stdenv.mkDerivation rec {
+  version = "0.2.1";
+  name = "lightdm-enso-os-greeter-${version}";
+
+  src = fetchgit {
+    url = https://github.com/nick92/Enso-OS;
+    rev = "ed48330bfd986072bd82ac542ed8f8a7365c6427";
+    sha256 = "11jm181jq1vbn83h235avpdxz7pqq6prqyzki5yryy53mkj4kgxz";
+  };
+
+  buildInputs = [
+    dbus
+    gtk3
+    pcre
+    vala
+    cmake
+    epoxy
+    libgee
+    libX11
+    lightdm
+    libXdmcp
+    gdk_pixbuf
+    clutter-gtk
+    libxklavier
+    at-spi2-core
+    libxkbcommon
+    libpthreadstubs
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+  ];
+
+  postPatch = ''
+    sed -i "s@\''${CMAKE_INSTALL_PREFIX}/@@" greeter/CMakeLists.txt
+  '';
+
+  preConfigure = ''
+    cd greeter
+  '';
+
+  installFlags = [
+    "DESTDIR=$(out)"
+  ];
+
+  preFixup = ''
+    mv $out/usr/* $out
+    rm -r $out/usr
+  '';
+
+  postFixup = ''
+    rm -r $out/sbin
+  '';
+
+  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/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
new file mode 100644
index 000000000000..91446f73507e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, lightdm, gtk3 }:
+
+stdenv.mkDerivation rec {
+  name = "lightdm-mini-greeter-${version}";
+  version = "0.3.4";
+
+  src = fetchFromGitHub {
+    owner = "prikhi";
+    repo = "lightdm-mini-greeter";
+    rev = version;
+    sha256 = "1qi0bsqi8z2zv3303ww0kd7bciz6qx8na5bkvgrqlwyvq31czai5";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ lightdm gtk3 ];
+
+  configureFlags = [ "--sysconfdir=/etc" ];
+  makeFlags = [ "configdir=$(out)/etc" ];
+
+  postInstall = ''
+    substituteInPlace "$out/share/xgreeters/lightdm-mini-greeter.desktop" \
+      --replace "Exec=lightdm-mini-greeter" "Exec=$out/bin/lightdm-mini-greeter"
+  '';
+
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
new file mode 100644
index 000000000000..36928a29897b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
@@ -0,0 +1,84 @@
+{ stdenv, fetchFromGitHub, pam, pkgconfig, autoconf, automake, libtool, libxcb
+, glib, libXdmcp, itstool, intltool, libxklavier, libgcrypt, audit, busybox
+, polkit, accountsservice, gtk-doc, gnome3, gobject-introspection, vala
+, withQt4 ? false, qt4
+, withQt5 ? false, qtbase
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "lightdm";
+  version = "1.28.0";
+
+  name = "${pname}-${version}";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitHub {
+    owner = "CanonicalLtd";
+    repo = pname;
+    rev = version;
+    sha256 = "1mmqy1jdvgc0h0h9gli7n4vdv5p8m5019qjr5ni4h73iz6mjdj2b";
+  };
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    gnome3.yelp-tools
+    gnome3.yelp-xsl
+    gobject-introspection
+    gtk-doc
+    intltool
+    itstool
+    libtool
+    pkgconfig
+    vala
+  ];
+
+  buildInputs = [
+    accountsservice
+    audit
+    glib
+    libgcrypt
+    libxcb
+    libXdmcp
+    libxklavier
+    pam
+    polkit
+  ] ++ optional withQt4 qt4
+    ++ optional withQt5 qtbase;
+
+  patches = [ ./run-dir.patch ];
+
+  preConfigure = "NOCONFIGURE=1 ./autogen.sh";
+
+  configureFlags = [
+    "--localstatedir=/var"
+    "--sysconfdir=/etc"
+    "--disable-tests"
+    "--disable-static"
+  ] ++ optional withQt4 "--enable-liblightdm-qt"
+    ++ optional withQt5 "--enable-liblightdm-qt5";
+
+  installFlags = [
+    "sysconfdir=\${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
+  '';
+
+  meta = {
+    homepage = https://github.com/CanonicalLtd/lightdm;
+    description = "A cross-desktop display manager.";
+    platforms = platforms.linux;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ ocharles wkennington worldofpeace ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
new file mode 100644
index 000000000000..51cb28d02d26
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, lightdm, pkgconfig, intltool
+, hicolor-icon-theme, makeWrapper
+, useGTK2 ? false, gtk2, gtk3 # gtk3 seems better supported
+, exo
+}:
+
+#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.6";
+in
+stdenv.mkDerivation rec {
+  name = "lightdm-gtk-greeter-${version}";
+
+  src = fetchurl {
+    url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.gz";
+    sha256 = "1pis5qyg95pg31dvnfqq34bzgj00hg4vs547r8h60lxjk81z8p15";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ lightdm exo intltool makeWrapper hicolor-icon-theme ]
+    ++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]);
+
+  configureFlags = [
+    "--localstatedir=/var"
+    "--sysconfdir=/etc"
+  ] ++ stdenv.lib.optional useGTK2 "--with-gtk2";
+
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ];
+
+  installFlags = [
+    "localstatedir=\${TMPDIR}"
+    "sysconfdir=\${out}/etc"
+  ];
+
+  postInstall = ''
+    substituteInPlace "$out/share/xgreeters/lightdm-gtk-greeter.desktop" \
+      --replace "Exec=lightdm-gtk-greeter" "Exec=$out/sbin/lightdm-gtk-greeter"
+    wrapProgram "$out/sbin/lightdm-gtk-greeter" \
+      --prefix XDG_DATA_DIRS ":" "${hicolor-icon-theme}/share"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://launchpad.net/lightdm-gtk-greeter;
+    platforms = platforms.linux;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ ocharles wkennington ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/run-dir.patch b/nixpkgs/pkgs/applications/display-managers/lightdm/run-dir.patch
new file mode 100644
index 000000000000..eb8e5a0f4d7e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm/run-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/data/lightdm.conf b/data/lightdm.conf
+index 16b80f7..b3af435 100644
+--- a/data/lightdm.conf
++++ b/data/lightdm.conf
+@@ -28,7 +28,7 @@
+ #guest-account-script=guest-account
+ #logind-check-graphical=false
+ #log-directory=/var/log/lightdm
+-#run-directory=/var/run/lightdm
++run-directory=/run/lightdm
+ #cache-directory=/var/cache/lightdm
+ #sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
+ #remote-sessions-directory=/usr/share/lightdm/remote-sessions
diff --git a/nixpkgs/pkgs/applications/display-managers/ly/default.nix b/nixpkgs/pkgs/applications/display-managers/ly/default.nix
new file mode 100644
index 000000000000..e8edcc3f634c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/ly/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchFromGitHub, linux-pam }:
+
+stdenv.mkDerivation rec { 
+  name = "ly-${version}";
+  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/nixpkgs/pkgs/applications/display-managers/sddm/default.nix b/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
new file mode 100644
index 000000000000..3de4067f55d5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/sddm/default.nix
@@ -0,0 +1,66 @@
+{ mkDerivation, lib, fetchFromGitHub
+, cmake, extra-cmake-modules, pkgconfig, libxcb, libpthreadstubs
+, libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd
+}:
+
+let
+  version = "0.18.0";
+
+in mkDerivation rec {
+  name = "sddm-${version}";
+
+  src = fetchFromGitHub {
+    owner = "sddm";
+    repo = "sddm";
+    rev = "v${version}";
+    sha256 = "16xnm02iqgy4hydzd6my0widq981glbazbhxnihhclgsaczh8mfq";
+  };
+
+  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 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"
+  ];
+
+  preConfigure = ''
+    export cmakeFlags="$cmakeFlags -DQT_IMPORTS_DIR=$out/$qtQmlPrefix -DCMAKE_INSTALL_SYSCONFDIR=$out/etc -DSYSTEMD_SYSTEM_UNIT_DIR=$out/lib/systemd/system"
+  '';
+
+  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/nixpkgs/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch b/nixpkgs/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
new file mode 100644
index 000000000000..aac09dfe876b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch
@@ -0,0 +1,43 @@
+diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp
+index 4b5983c..911c511 100644
+--- a/src/common/ConfigReader.cpp
++++ b/src/common/ConfigReader.cpp
+@@ -147,16 +147,13 @@ 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());
+                 foreach (const QFileInfo &file, dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware)) {
+                     files << (file.absoluteFilePath());
+-                    latestModificationTime = std::max(latestModificationTime, file.lastModified());
+                 }
+             }
+         }
+@@ -164,21 +161,14 @@ 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());
+                 foreach (const QFileInfo &file, dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware)) {
+                     files << (file.absoluteFilePath());
+-                    latestModificationTime = std::max(latestModificationTime, file.lastModified());
+                 }
+             }
+         }
+ 
+         files << m_path;
+ 
+-        if (latestModificationTime <= m_fileModificationTime) {
+-            return;
+-        }
+-        m_fileModificationTime = latestModificationTime;
+-
+         foreach (const QString &filepath, files) {
+             loadInternal(filepath);
+         }
diff --git a/nixpkgs/pkgs/applications/display-managers/slim/default.nix b/nixpkgs/pkgs/applications/display-managers/slim/default.nix
new file mode 100644
index 000000000000..e504c09e43e6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/slim/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, fetchpatch, cmake, pkgconfig, xorg, libjpeg, libpng
+, fontconfig, freetype, pam, dbus, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "slim-1.3.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/slim.berlios/${name}.tar.gz";
+    sha256 = "1pqhk22jb4aja4hkrm7rjgbgzjyh7i4zswdgf5nw862l2znzxpi1";
+  };
+
+  patches =
+    [ # Allow the paths of the configuration file and theme directory to
+      # be set at runtime.
+      ./runtime-paths.patch
+
+      # Exit after the user's session has finished.  This works around
+      # slim's broken PAM session handling (see
+      # http://developer.berlios.de/bugs/?func=detailbug&bug_id=19102&group_id=2663).
+      ./run-once.patch
+
+      # Ensure that sessions appear in sort order, rather than in
+      # directory order.
+      ./sort-sessions.patch
+
+      # Allow to set logfile to a special "/dev/stderr" in order to continue
+      # logging to stderr and thus to the journal.
+      ./no-logfile.patch
+    ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
+      url = "https://raw.githubusercontent.com/gentoo/musl/8eddda8072add075ebf56cf6d288bc1450d6b5f8/x11-misc/slim/files/slim-1.3.6-add-missing-libgen_h.patch";
+      sha256 = "0f82672s2r2cmdqfn2mbg3di76mbla9n0ik20p2gv4igi6p866xm";
+    });
+
+  preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib";
+
+  cmakeFlags = [ "-DUSE_PAM=1" ];
+
+  NIX_CFLAGS_COMPILE = "-I${freetype.dev}/include/freetype -std=c++11";
+
+  enableParallelBuilding = true;
+
+  buildInputs =
+    [ cmake pkgconfig libjpeg libpng fontconfig freetype
+      pam dbus
+      xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft makeWrapper
+    ];
+
+  NIX_CFLAGS_LINK = "-lXmu";
+
+  meta = {
+    homepage = https://sourceforge.net/projects/slim.berlios/; # berlios shut down; I found no replacement yet
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/display-managers/slim/no-logfile.patch b/nixpkgs/pkgs/applications/display-managers/slim/no-logfile.patch
new file mode 100644
index 000000000000..f2f5f1549930
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/slim/no-logfile.patch
@@ -0,0 +1,80 @@
+diff --git a/log.cpp b/log.cpp
+index b44677a..7c89dda 100644
+--- a/log.cpp
++++ b/log.cpp
+@@ -1,23 +1,31 @@
+ #include "log.h"
+ #include <iostream>
++#include <cstring>
+ 
+ bool
+ LogUnit::openLog(const char * filename)
+ {
+-	if (logFile.is_open()) {
++	if (isFile && logFile.is_open()) {
+ 		cerr << APPNAME
+ 			<< ": opening a new Log file, while another is already open"
+ 			<< endl;
+-		logFile.close();
++		closeLog();
+ 	}
+-	logFile.open(filename, ios_base::app);
+ 
+-	return !(logFile.fail());
++	if (strcmp(filename, "/dev/stderr") == 0) {
++		isFile = false;
++		return true;
++	} else {
++		logFile.open(filename, ios_base::app);
++		isFile = true;
++		return !(logFile.fail());
++	}
+ }
+ 
+ void
+ LogUnit::closeLog()
+ {
++	if (!isFile) return;
+ 	if (logFile.is_open())
+ 		logFile.close();
+ }
+diff --git a/log.h b/log.h
+index b7810be..ad548a2 100644
+--- a/log.h
++++ b/log.h
+@@ -9,11 +9,14 @@
+ #endif
+ #include "const.h"
+ #include <fstream>
++#include <iostream>
+ 
+ using namespace std;
+ 
+ static class LogUnit {
+ 	ofstream logFile;
++	bool isFile;
++	inline ostream &getStream() { return isFile ? logFile : cerr; }
+ public:
+ 	bool openLog(const char * filename);
+ 	void closeLog();
+@@ -22,17 +25,17 @@ public:
+ 
+ 	template<typename Type>
+ 	LogUnit & operator<<(const Type & text) {
+-		logFile << text; logFile.flush();
++		getStream() << text; getStream().flush();
+ 		return *this;
+ 	}
+ 
+ 	LogUnit & operator<<(ostream & (*fp)(ostream&)) {
+-		logFile << fp; logFile.flush();
++		getStream() << fp; getStream().flush();
+ 		return *this;
+ 	}
+ 
+ 	LogUnit & operator<<(ios_base & (*fp)(ios_base&)) {
+-		logFile << fp; logFile.flush();
++		getStream() << fp; getStream().flush();
+ 		return *this;
+ 	}
+ } logStream;
diff --git a/nixpkgs/pkgs/applications/display-managers/slim/run-once.patch b/nixpkgs/pkgs/applications/display-managers/slim/run-once.patch
new file mode 100644
index 000000000000..78f1454a883e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/slim/run-once.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
+--- slim-1.3.6-orig/app.cpp	2013-10-15 11:02:55.629263422 +0200
++++ slim-1.3.6/app.cpp	2013-10-15 13:00:10.141210784 +0200
+@@ -816,7 +822,7 @@
+ 	StopServer();
+ 	RemoveLock();
+ 	while (waitpid(-1, NULL, WNOHANG) > 0); /* Collects all dead childrens */
+-	Run();
++	exit(OK_EXIT);
+ }
+ 
+ void App::KillAllClients(Bool top) {
diff --git a/nixpkgs/pkgs/applications/display-managers/slim/runtime-paths.patch b/nixpkgs/pkgs/applications/display-managers/slim/runtime-paths.patch
new file mode 100644
index 000000000000..5a8e07bfbf07
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/slim/runtime-paths.patch
@@ -0,0 +1,70 @@
+diff -ru slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
+--- slim-1.3.6-orig/app.cpp	2013-10-02 00:38:05.000000000 +0200
++++ slim-1.3.6/app.cpp	2014-03-30 19:01:04.115414201 +0200
+@@ -200,7 +200,9 @@
+ 
+ 	/* Read configuration and theme */
+ 	cfg = new Cfg;
+-	cfg->readConf(CFGFILE);
++	char *cfgfile = getenv("SLIM_CFGFILE");
++	if (!cfgfile) cfgfile = CFGFILE;
++	cfg->readConf(cfgfile);
+ 	string themebase = "";
+ 	string themefile = "";
+ 	string themedir = "";
+@@ -208,7 +210,9 @@
+ 	if (testing) {
+ 		themeName = testtheme;
+ 	} else {
+-		themebase = string(THEMESDIR) + "/";
++		char *themesdir = getenv("SLIM_THEMESDIR");
++		if (!themesdir) themesdir = THEMESDIR;
++		themebase = string(themesdir) + "/";
+ 		themeName = cfg->getOption("current_theme");
+ 		string::size_type pos;
+ 		if ((pos = themeName.find(",")) != string::npos) {
+diff -ru slim-1.3.6-orig/CMakeLists.txt slim-1.3.6/CMakeLists.txt
+--- slim-1.3.6-orig/CMakeLists.txt	2013-10-02 00:38:05.000000000 +0200
++++ slim-1.3.6/CMakeLists.txt	2014-03-30 19:16:48.445069729 +0200
+@@ -23,7 +23,7 @@
+ 
+ set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
+ set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/slim")
+-set(SYSCONFDIR "/etc")
++set(SYSCONFDIR "$ENV{out}/etc")
+ set(LIBDIR "/lib")
+ set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
+ 
+@@ -40,7 +40,7 @@
+ set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPACKAGE=\"slim\"")
+ set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DVERSION=\"${SLIM_VERSION}\"")
+ set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPKGDATADIR=\"${PKGDATADIR}\"")
+-set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"${SYSCONFDIR}\"")
++set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"/etc\"")
+ 
+ # Flags
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -O2")
+Only in slim-1.3.6: CMakeLists.txt~
+diff -ru slim-1.3.6-orig/slimlock.cpp slim-1.3.6/slimlock.cpp
+--- slim-1.3.6-orig/slimlock.cpp	2013-10-02 00:38:05.000000000 +0200
++++ slim-1.3.6/slimlock.cpp	2014-03-30 19:01:04.115414201 +0200
+@@ -106,13 +106,17 @@
+ 	unsigned int cfg_passwd_timeout;
+ 	// Read user's current theme
+ 	cfg = new Cfg;
+-	cfg->readConf(CFGFILE);
++	char *cfgfile = getenv("SLIM_CFGFILE");
++	if (!cfgfile) cfgfile = CFGFILE;
++	cfg->readConf(cfgfile);
+ 	cfg->readConf(SLIMLOCKCFG);
+ 	string themebase = "";
+ 	string themefile = "";
+ 	string themedir = "";
+ 	themeName = "";
+-	themebase = string(THEMESDIR) + "/";
++	char *themesdir = getenv("SLIM_THEMESDIR");
++	if (!themesdir) themesdir = THEMESDIR;
++	themebase = string(themesdir) + "/";
+ 	themeName = cfg->getOption("current_theme");
+ 	string::size_type pos;
+ 	if ((pos = themeName.find(",")) != string::npos) {
diff --git a/nixpkgs/pkgs/applications/display-managers/slim/sort-sessions.patch b/nixpkgs/pkgs/applications/display-managers/slim/sort-sessions.patch
new file mode 100644
index 000000000000..cab5610f44fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/slim/sort-sessions.patch
@@ -0,0 +1,40 @@
+diff -ru -x '*~' slim-1.3.6-orig/cfg.cpp slim-1.3.6/cfg.cpp
+--- slim-1.3.6-orig/cfg.cpp	2013-10-02 00:38:05.000000000 +0200
++++ slim-1.3.6/cfg.cpp	2016-01-30 10:35:51.108766802 +0100
+@@ -14,6 +14,7 @@
+ #include <iostream>
+ #include <unistd.h>
+ #include <stdlib.h>
++#include <algorithm>
+ 
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -293,6 +294,8 @@
+ 
+ 	sessions.clear();
+ 
++        typedef pair<string,string> session_t;
++
+ 	if( !strSessionDir.empty() ) {
+ 		DIR *pDir = opendir(strSessionDir.c_str());
+ 
+@@ -325,7 +328,7 @@
+                                      }
+                              }
+                              desktop_file.close();
+-                             pair<string,string> session(session_name,session_exec);
++                             session_t session(session_name,session_exec);
+                              sessions.push_back(session);
+                              cout << session_exec << " - " << session_name << endl;
+                         }
+@@ -341,6 +344,10 @@
+         pair<string,string> session("","");
+         sessions.push_back(session);
+ 	}
++
++        std::sort(sessions.begin(), sessions.end(), [](session_t& a, session_t& b) -> bool{
++                return a.first < b.first;
++        });
+ }
+ 
+ pair<string,string> Cfg::nextSession() {
diff --git a/nixpkgs/pkgs/applications/display-managers/slim/themes.nix b/nixpkgs/pkgs/applications/display-managers/slim/themes.nix
new file mode 100644
index 000000000000..b1be24f3e1d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/display-managers/slim/themes.nix
@@ -0,0 +1,183 @@
+{ stdenv, fetchurl, slim }:
+
+# Inspired on aspell buildDict expression
+
+let
+  buildTheme =
+    {fullName, src, version ? "testing"}:
+
+    stdenv. mkDerivation rec {
+      name = "${fullName}-${version}";
+
+      inherit src;
+
+      buildInputs = [ slim ];
+
+      dontBuild = true;
+
+      installPhase = ''
+        install -dm755 $out/share/slim/themes/${name}
+        install -m644 * $out/share/slim/themes/${name}
+      '';
+
+      meta = {
+        description = "Slim theme for ${fullName}";
+        platforms = stdenv.lib.platforms.linux;
+      };
+    };
+
+in {
+
+  archlinuxSimple = buildTheme {
+    fullName = "archlinux-simple";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-archlinux-simple.tar.gz";
+      sha256 = "7d60d6782fa86302646fe67253467c04692d247f89bdbe87178f690f32b270db";
+    };
+  };
+
+  capernoited = buildTheme {
+    fullName = "capernoited";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-capernoited.tar.gz";
+      sha256 = "fb9163c6a2656d60f088dc4f2173aa7556a6794495122acfa7d3be7182f16b41";
+    };
+  };
+
+  debianMoreblue = buildTheme {
+    fullName = "debian-moreblue";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-debian-moreblue.tar.bz2";
+      sha256 = "5b76929827d4a4d604ddca4f42668cca3309b6f7bd659901021c6f49d6d2c481";
+    };
+  };
+
+  fingerprint = buildTheme {
+    fullName = "fingerprint";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-fingerprint.tar.gz";
+      sha256 = "48b703f84ce7b814cda0824f65cafebf695cd71a14166b481bb44616097d3144";
+    };
+  };
+
+  flat = buildTheme {
+    fullName = "flat";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-flat.tar.gz";
+      sha256 = "0092d531540f9da8ef07ad173e527c4ef9c088d04962d142be3c11f0c5c0c5e9";
+    };
+  };
+
+  flower2 = buildTheme {
+    fullName = "flower2";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-flower2.tar.gz";
+      sha256 = "840faf6459ffd6c2c363160c85cb98000717f9a425102976336f5d8f68ed95ee";
+    };
+  };
+
+  gentooSimple = buildTheme {
+    fullName = "gentoo-simple";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-gentoo-simple.tar.bz2";
+      sha256 = "27c8614cc930ca200acf81f1192febc102501744939d5cbe997141e37c96d8c2";
+    };
+  };
+
+  lake = buildTheme {
+    fullName = "lake";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-lake.tar.gz";
+      sha256 = "f7d662e37068a6c64cbf910adf3c192f1b50724baa427a8c9487cb9f7ed95851";
+    };
+  };
+
+  lunar = buildTheme {
+    fullName = "lunar-0.4";
+    version = "";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-lunar-0.4.tar.bz2";
+      sha256 = "1543eb45e4d664377e0dd4f7f954aba005823034ba9692624398b3d58be87d76";
+    };
+  };
+
+  mindlock = buildTheme {
+    fullName = "mindlock";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-mindlock.tar.gz";
+      sha256 = "99a6e6acd55bf55ece18a3f644299517b71c1adc49efd87ce2d7e654fb67033c";
+    };
+  };
+
+  parallelDimensions = buildTheme {
+    fullName = "parallel-dimensions";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-parallel-dimensions.tar.gz";
+      sha256 = "2b17c3e6d3967a6a0744e20e6e05c9d3938f4ef04c62d49ddbd416bc4743046f";
+    };
+  };
+
+  previous = buildTheme {
+    fullName = "previous";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-previous.tar.gz";
+      sha256 = "1f2a69f8fc0dc8ed8eb86a4c1d1087ba7be486973fb81efab52a63c661d726f8";
+    };
+  };
+
+  rainbow = buildTheme {
+    fullName = "rainbow";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-rainbow.tar.gz";
+      sha256 = "d83e3afdb05be50cff7da037bb31208b2c152539d1a009740b13857f5f910072";
+    };
+  };
+
+  rear-window = buildTheme {
+    fullName = "rear-window";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-rear-window.tar.gz";
+      sha256 = "0b123706ccb67e94f626c183530ec5732b209bab155bc661d6a3f5cd5ee39511";
+    };
+  };
+
+  scotlandRoad = buildTheme {
+    fullName = "scotland-road";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-scotland-road.tar.gz";
+      sha256 = "fd60a434496ed39b968ffa1e5457b36cd12f64a4e2ecedffc675f97ca3f3bba1";
+    };
+  };
+
+  subway = buildTheme {
+    fullName = "subway";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-subway.tar.gz";
+      sha256 = "0205568e3e157973b113a83b26d8829ce9962a85ef7eb8a33d3ae2f3f9292253";
+    };
+  };
+
+  wave = buildTheme {
+    fullName = "wave";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-wave.tar.gz";
+      sha256 = "be75676da5bf8670daa48379bb9cc1be0b9a5faa09adbea967dfd7125320b959";
+    };
+  };
+
+  zenwalk = buildTheme {
+    fullName = "zenwalk";
+    src = fetchurl {
+      url = "mirror://sourceforge/slim.berlios/slim-zenwalk.tar.gz";
+      sha256 = "f0f41d17ea505b0aa96a036e978fabaf673a51d3f81a919cb0d43364d4bc7a57";
+    };
+  };
+
+  nixosSlim = buildTheme {
+    fullName = "nixos-slim";
+    src = fetchurl {
+      url = "https://github.com/jagajaga/nixos-slim-theme/archive/2.0.tar.gz";
+      sha256 = "0lldizhigx7bjhxkipii87y432hlf5wdvamnfxrryf9z7zkfypc8";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/aewan/default.nix b/nixpkgs/pkgs/applications/editors/aewan/default.nix
new file mode 100644
index 000000000000..214b435429ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/aewan/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, zlib, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "aewan-${version}";
+  version = "1.0.01";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/aewan/${name}.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/nixpkgs/pkgs/applications/editors/android-studio/common.nix b/nixpkgs/pkgs/applications/editors/android-studio/common.nix
new file mode 100644
index 000000000000..23e0584cb7f0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/android-studio/common.nix
@@ -0,0 +1,166 @@
+{ channel, pname, version, build, sha256Hash }:
+
+{ bash
+, buildFHSUserEnv
+, coreutils
+, fetchurl
+, findutils
+, file
+, fontsConf
+, git
+, glxinfo
+, gnugrep
+, gnused
+, gnutar
+, gtk2, gnome_vfs, glib, GConf
+, gzip
+, fontconfig
+, freetype
+, libpulseaudio
+, libGL
+, libX11
+, libXext
+, libXi
+, libXrandr
+, libXrender
+, libXtst
+, makeWrapper
+, pciutils
+, pkgsi686Linux
+, setxkbmap
+, stdenv
+, unzip
+, which
+, runCommand
+, xkeyboard_config
+, zlib
+, makeDesktopItem
+}:
+
+let
+  drvName = "android-studio-${channel}-${version}";
+  androidStudio = stdenv.mkDerivation {
+    name = drvName;
+
+    src = fetchurl {
+      url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.zip";
+      sha256 = sha256Hash;
+    };
+
+    buildInputs = [
+      makeWrapper
+      unzip
+    ];
+    installPhase = ''
+      cp -r . $out
+      wrapProgram $out/bin/studio.sh \
+        --set ANDROID_EMULATOR_USE_SYSTEM_LIBS 1 \
+        --set 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
+        ]}" \
+        --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
+          libpulseaudio
+          libX11
+          libGL
+
+          # 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 ];
+  };
+in runCommand
+  "${drvName}-wrapper"
+  {
+    startScript = ''
+      #!${bash}/bin/bash
+      ${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh
+    '';
+    preferLocalBuild = true;
+    allowSubstitutes = false;
+    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 = licenses.asl20;
+      platforms = [ "x86_64-linux" ];
+      maintainers = with maintainers; [ primeos ];
+    };
+  }
+  ''
+    mkdir -p $out/{bin,share/pixmaps}
+
+    # TODO: Rename preview -> beta (and add -stable suffix?):
+    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/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
new file mode 100644
index 000000000000..96e39cdc6293
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, callPackage, makeFontsConf, gnome2 }:
+
+let
+  mkStudio = opts: callPackage (import ./common.nix opts) {
+    fontsConf = makeFontsConf {
+      fontDirectories = [];
+    };
+    inherit (gnome2) GConf gnome_vfs;
+  };
+  stableVersion = {
+    version = "3.2.1.0"; # "Android Studio 3.2.1"
+    build = "181.5056338";
+    sha256Hash = "117skqjax1xz9plarhdnrw2rwprjpybdc7mx7wggxapyy920vv5r";
+  };
+  betaVersion = {
+    version = "3.3.0.19"; # "Android Studio 3.3 RC 3"
+    build = "182.5183351";
+    sha256Hash = "1rql4kxjic4qjcd8zssw2mmi55cxpzd0wp5g0kzwk5wybsfdcqhy";
+  };
+  latestVersion = { # canary & dev
+    version = "3.4.0.8"; # "Android Studio 3.4 Canary 9"
+    build = "183.5186062";
+    sha256Hash = "04i7ys0qzj3039h41q4na6737gl55wpp6hiwfas2h6zwvj25a9z9";
+  };
+in rec {
+  # Old alias
+  preview = beta;
+
+  # Attributes are named by their corresponding release channels
+
+  stable = mkStudio (stableVersion // {
+    channel = "stable";
+    pname = "android-studio";
+  });
+
+  beta = mkStudio (betaVersion // {
+    channel = "beta";
+    pname = "android-studio-preview";
+  });
+
+  dev = mkStudio (latestVersion // {
+    channel = "dev";
+    pname = "android-studio-dev";
+  });
+
+  canary = mkStudio (latestVersion // {
+    channel = "canary";
+    pname = "android-studio-canary";
+  });
+}
diff --git a/nixpkgs/pkgs/applications/editors/aseprite/default.nix b/nixpkgs/pkgs/applications/editors/aseprite/default.nix
new file mode 100644
index 000000000000..7af3742349a6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/aseprite/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, cmake, pkgconfig
+, curl, freetype, giflib, harfbuzz, libjpeg, libpng, libwebp, pixman, tinyxml, zlib
+, libX11, libXext, libXcursor, libXxf86vm
+, 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
+
+stdenv.mkDerivation rec {
+  name = "aseprite-${version}";
+  version = if unfree then "1.2.9" else "1.1.7";
+
+  src = fetchFromGitHub {
+    owner = "aseprite";
+    repo = "aseprite";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = if unfree
+      then "0a9xk163j0984n8nn6pqf27n83gr6w7g25wkiv591zx88pa6cpbd"
+      else "0gd49lns2bpzbkwax5jf9x1xmg1j8ij997kcxr2596cwiswnw4di";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    curl freetype giflib harfbuzz libjpeg libpng libwebp pixman tinyxml zlib
+    libX11 libXext libXcursor libXxf86vm
+  ] ++ lib.optionals unfree [ cmark harfbuzz ];
+
+  patches = lib.optionals unfree [
+    (fetchpatch {
+      url = "https://github.com/aseprite/aseprite/commit/cfb4dac6feef1f39e161c23c886055a8f9acfd0d.patch";
+      sha256 = "1qhjfpngg8b1vvb9w26lhjjfamfx57ih0p31km3r5l96nm85l7f9";
+    })
+    (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"
+  ];
+
+  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;
+
+  meta = with lib; {
+    homepage = https://www.aseprite.org/;
+    description = "Animated sprite editor & pixel art tool";
+    license = if unfree then licenses.unfree else licenses.gpl2;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/atom/default.nix b/nixpkgs/pkgs/applications/editors/atom/default.nix
new file mode 100644
index 000000000000..710c3ca335a6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/atom/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, pkgs, fetchurl, makeWrapper, wrapGAppsHook, gvfs, gtk3, atomEnv }:
+
+let
+  versions = {
+    atom = {
+      version = "1.33.0";
+      sha256 = "0f6m6zwgz94m3q11ipyiliap3s5a3zlrg3ldjwkqnxjl6gwlxc2r";
+    };
+
+    atom-beta = {
+      version = "1.34.0";
+      beta = 0;
+      sha256 = "1xnrr4z55sj46hqr0il26sfs6s3knv60m340cw3rzzic271b3ifw";
+    };
+  };
+
+  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
+    ];
+
+    preFixup = ''
+      gappsWrapperArgs+=(
+        --prefix "PATH" : "${gvfs}/bin" \
+      )
+    '';
+
+    buildCommand = ''
+      mkdir -p $out/usr/
+      ar p $src data.tar.xz | tar -C $out -xJ ./usr
+      sed -i -e "s|Exec=.*$|Exec=$out/bin/${pname}|" $out/usr/share/applications/${pname}.desktop
+      mv $out/usr/* $out/
+      rm -r $out/share/lintian
+      rm -r $out/usr/
+      sed -i "s/${pname})/.${pname}-wrapped)/" $out/bin/${pname}
+
+      fixupPhase
+
+      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" {} \;
+
+      paxmark m $share/atom
+      paxmark m $share/resources/app/apm/bin/node
+    '';
+
+    meta = with stdenv.lib; {
+      description = "A hackable text editor for the 21st Century";
+      homepage = https://atom.io/;
+      license = licenses.mit;
+      maintainers = with maintainers; [ offline nequissimus ysndr ];
+      platforms = platforms.x86_64;
+    };
+  };
+in stdenv.lib.mapAttrs common versions
diff --git a/nixpkgs/pkgs/applications/editors/atom/env.nix b/nixpkgs/pkgs/applications/editors/atom/env.nix
new file mode 100644
index 000000000000..da78c39324a5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/atom/env.nix
@@ -0,0 +1,20 @@
+{ 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
+}:
+
+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
+  ];
+
+  libPathNative = lib.makeLibraryPath packages;
+  libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
+  libPath = "${libPathNative}:${libPath64}";
+
+in { inherit packages libPath; }
diff --git a/nixpkgs/pkgs/applications/editors/bluefish/default.nix b/nixpkgs/pkgs/applications/editors/bluefish/default.nix
new file mode 100644
index 000000000000..1c2e3a425782
--- /dev/null
+++ b/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.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/bluefish/${name}.tar.bz2";
+    sha256 = "1ciygj79q6i3ga5x1j8aivc05nh6rhhnm7hrq8q8xd9vd4ms3v5g";
+  };
+
+  nativeBuildInputs = [ intltool pkgconfig wrapGAppsHook ];
+  buildInputs = [ gnome3.defaultIconTheme 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/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix b/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix
new file mode 100644
index 000000000000..9f1db1464482
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/bonzomatic/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, makeWrapper, fetchFromGitHub, cmake, alsaLib, mesa_glu, libXcursor, libXinerama, libXrandr, xorgserver }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  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/nixpkgs/pkgs/applications/editors/brackets/default.nix b/nixpkgs/pkgs/applications/editors/brackets/default.nix
new file mode 100644
index 000000000000..1065564f7b4c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/brackets/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, gtk2, glib, gdk_pixbuf, alsaLib, nss, nspr, gconf
+, cups, libgcrypt_1_5, systemd, dbus }:
+with stdenv.lib;
+
+let
+  bracketsLibs = makeLibraryPath [
+    gtk2 glib gdk_pixbuf stdenv.cc.cc.lib alsaLib nss nspr gconf cups libgcrypt_1_5 dbus systemd
+  ];
+in
+stdenv.mkDerivation rec {
+  name = "brackets-${version}";
+  version = "1.9";
+
+  src = fetchurl {
+    url = "https://github.com/adobe/brackets/releases/download/release-${version}/Brackets.Release.${version}.64-bit.deb";
+    sha256 = "0c4l2rr0853xd21kw8hhxlmrx8mqwb7iqa2k24zvwyjp4nnwkgbp";
+    name = "${name}.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 ${systemd.lib}/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/nixpkgs/pkgs/applications/editors/bvi/default.nix b/nixpkgs/pkgs/applications/editors/bvi/default.nix
new file mode 100644
index 000000000000..f3f44f769a99
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/bvi/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "bvi-${version}";
+  version = "1.4.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/bvi/${name}.src.tar.gz";
+    sha256 = "00pq9rv7s8inqxq2m3xshxi58691i3pxw9smibcrgh6768l3qnh1";
+  };
+
+  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 = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/bviplus/default.nix b/nixpkgs/pkgs/applications/editors/bviplus/default.nix
new file mode 100644
index 000000000000..d08e006ec5b3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/bviplus/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "bviplus-${version}";
+  version = "0.9.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/bviplus/bviplus/${version}/bviplus-${version}.tgz";
+    sha256 = "10x6fbn8v6i0y0m40ja30pwpyqksnn8k2vqd290vxxlvlhzah4zb";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/codeblocks/default.nix b/nixpkgs/pkgs/applications/editors/codeblocks/default.nix
new file mode 100644
index 000000000000..72642cfbe63f
--- /dev/null
+++ b/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" ]
+    ++ optional 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/nixpkgs/pkgs/applications/editors/codeblocks/writable-projects.patch b/nixpkgs/pkgs/applications/editors/codeblocks/writable-projects.patch
new file mode 100644
index 000000000000..3b6364a52a1c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/deadpixi-sam/default.nix b/nixpkgs/pkgs/applications/editors/deadpixi-sam/default.nix
new file mode 100644
index 000000000000..4ab11064eae3
--- /dev/null
+++ b/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";
+  name = "deadpixi-sam-unstable-${version}";
+
+  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/nixpkgs/pkgs/applications/editors/dhex/default.nix b/nixpkgs/pkgs/applications/editors/dhex/default.nix
new file mode 100644
index 000000000000..ff9ec73a2ef6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/dhex/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "dhex-${version}";
+  version = "0.68";
+
+  src = fetchurl {
+    url = "http://www.dettus.net/dhex/dhex_${version}.tar.gz";
+    sha256 = "126c34745b48a07448cfe36fe5913d37ec562ad72d3f732b99bd40f761f4da08";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/dit/default.nix b/nixpkgs/pkgs/applications/editors/dit/default.nix
new file mode 100644
index 000000000000..33d80a577dbe
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/dit/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, coreutils, ncurses, lua }:
+
+stdenv.mkDerivation rec {
+  name = "dit-${version}";
+  version = "0.4";
+
+  src = fetchurl {
+    url = "https://hisham.hm/dit/releases/${version}/${name}.tar.gz";
+    sha256 = "0bwczbv7annbbpg7bgbsqd5kwypn81sza4v7v99fin94wwmcn784";
+  };
+
+  buildInputs = [ coreutils ncurses lua ];
+
+  prePatch = ''
+    patchShebangs tools/GenHeaders
+  '';
+
+  # needs GNU tail for tail -r
+  postPatch = ''
+    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/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix b/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix
new file mode 100644
index 000000000000..389608ad8249
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -0,0 +1,60 @@
+{ stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender
+, zlib, jdk, glib, gtk3, libXtst, gsettings-desktop-schemas, webkitgtk
+, makeWrapper, ... }:
+
+{ 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 = "Application;Development;";
+  };
+
+  buildInputs = [
+    fontconfig freetype glib gsettings-desktop-schemas gtk3 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 gtk3 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
+  ''; # */
+
+  meta = {
+    homepage = http://www.eclipse.org/;
+    inherit description;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/default.nix b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
new file mode 100644
index 000000000000..55bbc778e3ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
@@ -0,0 +1,294 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper
+, freetype, fontconfig, libX11, libXrender, zlib
+, glib, gtk3, libXtst, jdk, gsettings-desktop-schemas
+, webkitgtk ? null  # for internal web browser
+, buildEnv, runCommand
+, callPackage
+}:
+
+assert stdenv ? glibc;
+
+# http://download.eclipse.org/eclipse/downloads/ is the main place to
+# find the downloads needed for new versions
+
+rec {
+
+  buildEclipse = import ./build-eclipse.nix {
+    inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib
+            jdk glib gtk3 libXtst gsettings-desktop-schemas webkitgtk
+            makeWrapper;
+  };
+
+  ### Eclipse CPP
+
+  eclipse-cpp = eclipse-cpp-47; # always point to latest
+
+  eclipse-cpp-47 = buildEclipse {
+    name = "eclipse-cpp-4.7.0";
+    description = "Eclipse IDE for C/C++ Developers, Oxygen release";
+    src =
+      if stdenv.hostPlatform.system == "x86_64-linux" then
+        fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-cpp-oxygen-R-linux-gtk-x86_64.tar.gz;
+          sha512 = "813c791e739d7d0e2ab242a5bacadca135bbeee20ef97aa830353cd90f63fa6e9c89cfcc6aadf635c742befe035bd6e3f15103013f63c419f6144e86ebde3ed1";
+        }
+      else if stdenv.hostPlatform.system == "i686-linux" then
+        fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-cpp-oxygen-R-linux-gtk.tar.gz;
+          sha512 = "2b50f4a00306a89cda1aaaa606e62285cacbf93464a9dd3f3319dca3e2c578b802e685de6f78e5e617d269e21271188effe73d41f491a6de946e28795d82db8a";
+        }
+      else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+  };
+
+  eclipse-cpp-37 = buildEclipse {
+    name = "eclipse-cpp-3.7";
+    description = "Eclipse IDE for C/C++ Developers";
+    src =
+      if stdenv.hostPlatform.system == "x86_64-linux" then
+        fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk-x86_64.tar.gz;
+          sha256 = "14ppc9g9igzvj1pq7jl01vwhzb66nmzbl9wsdl1sf3xnwa9wnqk3";
+        }
+      else
+        fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/indigo/R/eclipse-cpp-indigo-incubation-linux-gtk.tar.gz;
+          sha256 = "1cvg1vgyazrkinwzlvlf0dpl197p4784752srqybqylyj5psdi3b";
+        };
+  };
+  eclipse_cpp_37 = eclipse-cpp-37; # backward compatibility, added 2016-01-30
+
+  ### Eclipse Modeling
+
+  eclipse-modeling = eclipse-modeling-47; # always point to latest
+
+  eclipse-modeling-47 = buildEclipse {
+    name = "eclipse-modeling-4.7";
+    description = "Eclipse Modeling Tools";
+    src =
+      if stdenv.hostPlatform.system == "x86_64-linux" then
+        fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-modeling-oxygen-R-linux-gtk-x86_64.tar.gz;
+          sha512 = "3b9a7ad4b5d6b77fbdd64e8d323e0adb6c2904763ad042b374b4d87cef8607408cb407e395870fc755d58c0c800e20818adcf456ebe193d76cede16c5fe12271";
+        }
+      else
+        fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/oxygen/R/eclipse-modeling-oxygen-R-linux-gtk.tar.gz;
+          sha512 = "b8597c1dec117e69c72a5e1a53e09b1f81a7c9de86ed7e71a9d007664603202df301745f186ded02b2e76410345863e80a2ba40867d6848e5375601289999206";
+        };
+  };
+
+  eclipse-modeling-36 = buildEclipse {
+    name = "eclipse-modeling-3.6.2";
+    description = "Eclipse Modeling Tools (includes Incubating components)";
+    src =
+      if stdenv.hostPlatform.system == "x86_64-linux" then
+        fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk-x86_64.tar.gz;
+          sha1 = "e96f5f006298f68476f4a15a2be8589158d5cc61";
+        }
+      else
+        fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/helios/SR2/eclipse-modeling-helios-SR2-incubation-linux-gtk.tar.gz;
+          sha1 = "696377895bb26445de39d82a916b7e69edb1d939";
+        };
+  };
+  eclipse_modeling_36 = eclipse-modeling-36; # backward compatibility, added 2016-01-30
+
+  ### Eclipse Platform
+
+  eclipse-platform = eclipse-platform-49; # always point to latest
+
+  eclipse-platform-47 = buildEclipse {
+    name = "eclipse-platform-4.7.3a";
+    description = "Eclipse Platform Oxygen";
+    sources = {
+      "x86_64-linux" = fetchurl {
+        url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.3a-201803300640/eclipse-platform-4.7.3a-linux-gtk-x86_64.tar.gz;
+          sha512 = "caf86cd6efaf66258c75434f1adf552587a7395d57dba4cfd20f86196308cf942866d931f4b352f9d39a6fbf14444fcd2167e6bfd146a28c96c229bb9988156a";
+        };
+      "i686-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.3a-201803300640/eclipse-platform-4.7.3a-linux-gtk.tar.gz;
+          sha512 = "c633da467774e4ab40f8d51d07b8e7d8403f26f23365c3c3ceeaeec1039b8c23c7508cee1f786bf52db64c7b84e0f91cb31a2848a74ac8271f8504934407bd5c";
+        };
+    };
+  };
+
+  eclipse-platform-48 = buildEclipse {
+    name = "eclipse-platform-4.8";
+    description = "Eclipse Platform Photon";
+    sources = {
+      "x86_64-linux" = fetchurl {
+        url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-platform-4.8-linux-gtk-x86_64.tar.gz;
+          sha512 = "ccce2b954938479e42ef3f9b78f74b24ae4cae7499546fa4f9a55ec1849e1acfd06315d4529b11474a8b3d1142c9409c581edfa571baaf1342ab062f02467af2";
+        };
+      "i686-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-platform-4.8-linux-gtk.tar.gz;
+          sha512 = "f5f407727e22b848931cf38f71b1a0c30a9778aa227c3df137dcceec2fba2ecc309cbfa8b4a660b814d2edb60f65110381497b4325781cab4d6402784139e32b";
+        };
+    };
+  };
+
+  eclipse-platform-49 = buildEclipse {
+    name = "eclipse-platform-4.9";
+    description = "Eclipse Platform 2018-09";
+    sources = {
+      "x86_64-linux" = fetchurl {
+        url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/eclipse-platform-4.9-linux-gtk-x86_64.tar.gz;
+          sha512 = "875714bb411145c917fccedf2f7c4fd2757640b2debf4a18f775604233abd6f0da893b350cc03da44413d7ec6fae3f773ef08634e632058e4b705e6cda2893eb";
+        };
+      "i686-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/eclipse-platform-4.9-linux-gtk.tar.gz;
+          sha512 = "758bc0de30fa5c4b76b343ea0325611d87b6928ef5002244f2f1ba2a9fa937de89b2a94ce2c8d33d79344fd574d6e8a72c5d127fe416d785f48600e9e85fce86";
+        };
+    };
+  };
+
+  ### Eclipse Scala SDK
+
+  eclipse-scala-sdk = eclipse-scala-sdk-441; # always point to latest
+
+  eclipse-scala-sdk-441 = buildEclipse {
+    name = "eclipse-scala-sdk-4.4.1";
+    description = "Eclipse IDE for Scala Developers";
+    src =
+      if stdenv.hostPlatform.system == "x86_64-linux" then
+        fetchurl { # tested
+          url = https://downloads.typesafe.com/scalaide-pack/4.4.1-vfinal-luna-211-20160504/scala-SDK-4.4.1-vfinal-2.11-linux.gtk.x86_64.tar.gz;
+          sha256  = "4c2d1ac68384e12a11a851cf0fc7757aea087eba69329b21d539382a65340d27";
+        }
+      else
+        fetchurl { # untested
+          url = https://downloads.typesafe.com/scalaide-pack/4.4.1-vfinal-luna-211-20160504/scala-SDK-4.4.1-vfinal-2.11-linux.gtk.x86.tar.gz;
+          sha256 = "35383cb09567187e14a30c15de9fd9aa0eef99e4bbb342396ce3acd11fb5cbac";
+        };
+  };
+
+  ### Eclipse SDK
+
+  eclipse-sdk = eclipse-sdk-49; # always point to latest
+
+  eclipse-sdk-47 = buildEclipse {
+    name = "eclipse-sdk-4.7.3a";
+    description = "Eclipse Oxygen Classic";
+    sources = {
+      "x86_64-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.3a-201803300640/eclipse-SDK-4.7.3a-linux-gtk-x86_64.tar.gz;
+          sha512 = "d77e42aca16d26526cef32e363d038258bb8a4616d9dbe6e76dd3656dc2217369436390a82555bde4566bbbdb631813bbaca08602f7bb885cb30e8a26a14873f";
+        };
+      "i686-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.3a-201803300640/eclipse-SDK-4.7.3a-linux-gtk.tar.gz;
+          sha512 = "b0b936fd4142ae86ec5c30535cd5e4caf6fe313d814ae5b16f300635e4163a79b748b1eee11792a135114f2265678a74821ec80c2bfd69872769b6d0ccbcde3a";
+        };
+    };
+  };
+
+  eclipse-sdk-48 = buildEclipse {
+    name = "eclipse-sdk-4.8";
+    description = "Eclipse Photon Classic";
+    sources = {
+      "x86_64-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-SDK-4.8-linux-gtk-x86_64.tar.gz;
+          sha512 = "357ea9e7f426c68ced693f1c7b76eae23f9e3c7893de1f12d17994ec17b447896b5daa7292d5fbf6d9c4e5b7fd637ca5b2a6ba8ce40a2a7c2fe06f2124d31b75";
+        };
+      "i686-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-SDK-4.8-linux-gtk.tar.gz;
+          sha512 = "c7cae7baa3978d48477090bb9941e85b4c7484021ece9c5c77a7e859e57e5c1f13556262f92b561cfb11f828b934bad7a6018be7b8fd9454e3991e8d5cae9917";
+        };
+    };
+  };
+
+  eclipse-sdk-49 = buildEclipse {
+    name = "eclipse-sdk-4.9";
+    description = "Eclipse 2018-09 Classic";
+    sources = {
+      "x86_64-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/eclipse-SDK-4.9-linux-gtk-x86_64.tar.gz;
+          sha512 = "5e74a0411f56b3973b7c6d8c3727392297d55ad458a814b4cc3f2f6a57dbeebc64852d1a6a958db5c3b08c620093bfb5bcc0d2c6a400f5594b82c2ef5d5fa9fb";
+        };
+      "i686-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/eclipse-SDK-4.9-linux-gtk.tar.gz;
+          sha512 = "b1861bd99c8e43f1d04247226584246aa7844af5e2da820fe98a51018dbe8ff4c25dbb9fa655f56e103f95c0696f40a65dcce13430c63aa080f786738e70eb8b";
+        };
+    };
+  };
+
+  eclipse-sdk-37 = buildEclipse {
+    name = "eclipse-sdk-3.7";
+    description = "Eclipse Classic";
+    sources = {
+      "x86_64-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz;
+          sha256 = "0nf4nv7awhp1k8b1hjb7chpjyjrqnyszsjbc4dlk9phpjv3j4wg5";
+        };
+      "i686-linux" = fetchurl {
+          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk.tar.gz;
+          sha256 = "1isn7i45l9kyn2yx6vm88jl1gnxph8ynank0aaa218cg8kdygk7j";
+        };
+    };
+  };
+  eclipse_sdk_37 = eclipse-sdk-37; # backward compatibility, added 2016-01-30
+
+  ### Eclipse Java
+
+  eclipse-java = eclipse-java-49;
+
+  eclipse-java-49 = buildEclipse {
+    name = "eclipse-java-4.9.0";
+    description = "Eclipse IDE for Java Developers";
+    src =
+      if stdenv.system == "x86_64-linux" then
+        fetchurl {
+          url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/2018-09/R/eclipse-java-2018-09-linux-gtk-x86_64.tar.gz;
+          sha512 = "9dac5d040cdabf779de3996de87290e352130c7e860c1d0a98772f41da828ad45f90748b68e0a8a4f8d1ebbbbe5fdfe6401b7d871b93af34103d4a81a041c6a5";
+        }
+      else if stdenv.system == "i686-linux" then
+        fetchurl {
+          url = http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/2018-09/R/eclipse-java-2018-09-linux-gtk.tar.gz;
+          sha512 = "24208e95b972e848d6b65ed8108d9e81584cf051397f2f43fb6269f5a625b8d7552ad77c7980a1a5653c87f06776e2926fd85607aae44e44657b4f6cc9b3e2e3";
+        }
+      else throw "Unsupported system: ${stdenv.system}";
+  };
+
+  ### 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/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
new file mode 100644
index 000000000000..30f381644ac1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
@@ -0,0 +1,660 @@
+{ 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 = "http://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 = http://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 = "http://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 = http://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}";
+    version = "9.0.1";
+
+    src = fetchzip {
+      stripRoot = false;
+      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/9.0/${name}.zip";
+      sha256 = "0vdx0j9ci533wnk7y17qjvjyqx38hlrdw67z6pi05vfv3r6ys39x";
+    };
+
+    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 = http://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 ];
+    };
+  };
+
+  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 = http://www.eclemma.org/;
+      description = "EclEmma is a free Java code coverage tool for Eclipse";
+      license = licenses.epl10;
+      platforms = platforms.all;
+      maintainers = [ maintainers.rycee ];
+    };
+  };
+
+  emacsplus = buildEclipsePlugin rec {
+    name = "emacsplus-${version}";
+    version = "4.2.0";
+
+    srcFeature = fetchurl {
+      url = "http://www.mulgasoft.com/emacsplus/e4/update-site/features/com.mulgasoft.emacsplus.feature_${version}.jar";
+      sha256 = "0wja3cd7gq8w25797fxnafvcncjnmlv8qkl5iwqj7zja2f45vka8";
+    };
+
+    srcPlugin = fetchurl {
+      url = "http://www.mulgasoft.com/emacsplus/e4/update-site/plugins/com.mulgasoft.emacsplus_${version}.jar";
+      sha256 = "08yw45nr90mlpdzim74vsvdaxj41sgpxcrqk5ia6l2dzvrqlsjs1";
+    };
+
+    meta = with stdenv.lib; {
+      homepage = http://www.mulgasoft.com/emacsplus/;
+      description = "Provides a more Emacs-like experience in the Eclipse text editors";
+      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.9";
+
+    src = fetchzip {
+      stripRoot = false;
+      url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.9-201809060745/org.eclipse.jdt-4.9.zip;
+      sha256 = "144rqrw0crxd2v862dqxm2p5y60n4pbzdryv709xnhcw54rycm7n";
+    };
+
+    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.10";
+
+    src = fetchzip {
+      stripRoot = false;
+      url = "https://github.com/spotbugs/spotbugs/releases/download/${version}/eclipsePlugin.zip";
+      sha256 = "0xrflgw0h05z3za784ach2fx6dh04lgmfr426m1q235vv2ibds5y";
+    };
+
+    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 = http://testng.org/;
+      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/nixpkgs/pkgs/applications/editors/ed/default.nix b/nixpkgs/pkgs/applications/editors/ed/default.nix
new file mode 100644
index 000000000000..afbd6d908c32
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/ed/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, lzip
+}:
+
+stdenv.mkDerivation (rec {
+  name = "ed-${version}";
+  version = "1.14.2";
+
+  src = fetchurl {
+    url = "mirror://gnu/ed/${name}.tar.lz";
+    sha256 = "1nqhk3n1s1p77g2bjnj55acicsrlyb2yasqxqwpx0w0djfx64ygm";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/edbrowse/default.nix b/nixpkgs/pkgs/applications/editors/edbrowse/default.nix
new file mode 100644
index 000000000000..28775e48e1a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/edbrowse/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, duktape, curl, pcre, readline, openssl, perl, html-tidy }:
+
+stdenv.mkDerivation rec {
+  name = "edbrowse-${version}";
+  version = "3.7.4";
+
+  buildInputs = [ curl pcre readline openssl duktape perl html-tidy ];
+
+  patchPhase = ''
+    for i in ./tools/*.pl
+    do
+      substituteInPlace $i --replace "/usr/bin/perl" "${perl}/bin/perl"
+    done
+  '';
+
+  makeFlags = "-C src prefix=$(out)";
+
+  src = fetchFromGitHub {
+    owner = "CMB";
+    repo = "edbrowse";
+    rev = "v${version}";
+    sha256 = "0i9ivyfy1dd16c89f392kwx6wxgkkpyq2hl32jhzra0fb0zyl0k6";
+  };
+  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 = http://edbrowse.org/;
+    maintainers = [ maintainers.schmitthenner maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/edit/default.nix b/nixpkgs/pkgs/applications/editors/edit/default.nix
new file mode 100644
index 000000000000..17fa75fe6343
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/edit/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchgit, unzip, pkgconfig, ncurses, libX11, libXft, cwebbin }:
+
+stdenv.mkDerivation rec {
+  name = "edit-nightly-${version}";
+  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/nixpkgs/pkgs/applications/editors/elvis/default.nix b/nixpkgs/pkgs/applications/editors/elvis/default.nix
new file mode 100644
index 000000000000..078b8a03b5d9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/elvis/default.nix
@@ -0,0 +1,46 @@
+{ fetchurl, fetchpatch, stdenv, ncurses }:
+
+stdenv.mkDerivation rec {
+  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.vi-editor.org/;
+    description = "A vi clone for Unix and other operating systems";
+    license = stdenv.lib.licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/auto-complete/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/auto-complete/default.nix
new file mode 100644
index 000000000000..40f172316efc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/auto-complete/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "auto-complete-1.3.1";
+
+  src = fetchurl {
+    url = "http://cx4a.org/pub/auto-complete/${name}.tar.bz2";
+    sha256 = "124qxfp0pcphwlmrasbfrci48brxnrzc38h4wcf2sn20x1mvcrlj";
+  };
+
+  buildInputs = [ emacs ];
+
+  preInstall = ''
+    install -d $out/share/emacs/site-lisp
+  '';
+
+  installFlags = "DIR=$(out)/share/emacs/site-lisp";
+
+  postInstall = ''
+    ln -s javascript-mode $out/share/emacs/site-lisp/ac-dict/js2-mode
+  '';
+
+  meta = {
+    description = "Auto-complete extension for Emacs";
+    homepage = http://cx4a.org/software/auto-complete/;
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/3.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/3.nix
new file mode 100644
index 000000000000..d20ab53bf7e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/3.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "bbdb-3.1.2";
+
+  src = fetchurl {
+    url = "https://download.savannah.gnu.org/releases/bbdb/${name}.tar.gz";
+    sha256 = "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05";
+  };
+
+  buildInputs = [ emacs ];
+
+  # Hack to disable documentation as there is no way to tell bbdb to
+  # NOT build pdfs. I really don't want to pull in TexLive here...
+  preConfigure = ''
+   substituteInPlace ./Makefile.in \
+     --replace "SUBDIRS = lisp doc tex" "SUBDIRS = lisp"
+  '';
+
+  meta = {
+    homepage = https://savannah.nongnu.org/projects/bbdb/;
+    description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs, version 3";
+    license = "GPL";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/default.nix
new file mode 100644
index 000000000000..689bcfc9adfd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, emacs, texinfo, ctags}:
+
+stdenv.mkDerivation rec {
+  name = "bbdb-2.36";
+
+  src = fetchurl {
+    # not using mirror:// because it produces a different file
+    url = "http://bbdb.sourceforge.net/${name}.tar.gz";
+    sha256 = "1rmw94l71ahfbynyy0bijfy488q9bl5ksl4zpvg7j9dbmgbh296r";
+  };
+
+  patches = [ ./install-infodir.patch ];
+
+  buildInputs = [emacs texinfo ctags];
+  configureFlags = [ "--with-package-dir=$$out/share/emacs/site-lisp" ];
+  preInstall = "mkdir -p $out/info";
+  installTargets = "install-pkg texinfo";
+  postInstall = ''
+    mv  $out/info $out/share/
+    mv "$out/share/emacs/site-lisp/lisp/bbdb/"* $out/share/emacs/site-lisp/
+    mv $out/share/emacs/site-lisp/etc/bbdb $out/share/
+    rm -rf $out/share/emacs/site-lisp/{lisp,etc}
+    mv bits $out/share/bbdb/
+    # Make optional modules from bbdb available for import, but symlink
+    # them into the site-lisp directory to make it obvious that they are
+    # not a genuine part of the distribution.
+    ln -s "$out/share/bbdb/bits/"*.el $out/share/emacs/site-lisp/
+  '';
+
+  meta = {
+    homepage = http://bbdb.sourceforge.net/;
+    description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs";
+    license = "GPL";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/install-infodir.patch b/nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/install-infodir.patch
new file mode 100644
index 000000000000..31ae6b266980
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/bbdb/install-infodir.patch
@@ -0,0 +1,28 @@
+--- bbdb-2.35/texinfo/Makefile.in	2001-11-20 09:00:12.000000000 +0100
++++ bbdb-2.35/texinfo/Makefile.in	2008-02-20 12:07:36.000000000 +0100
+@@ -27,22 +27,22 @@ all: info bbdb.dvi
+ install-pkg: uninstall-pkg info
+ 	@if test "x$(SYMLINKS)" = "xno" ; then                         \
+           for i in `ls bbdb.info* ` ; do                               \
+-            $(INSTALL_DATA) $$i $(PACKAGEDIR)/info/ ;                  \
++            $(INSTALL_DATA) $$i $(infodir)/ ;                  \
+           done ;                                                       \
+         else                                                           \
+           if test "x$(LINKPATH)" = "x" ; then                          \
+             for i in `ls bbdb.info* ` ; do                             \
+-              $(LN_S) `pwd`/$$i $(PACKAGEDIR)/info/$$i ;               \
++              $(LN_S) `pwd`/$$i $(infodir)/$$i ;               \
+             done ;                                                     \
+           else                                                         \
+             for i in `ls bbdb.info* ` ; do                             \
+-              $(LN_S) $(LINKPATH)/texinfo/$$i $(PACKAGEDIR)/info/$$i ; \
++              $(LN_S) $(LINKPATH)/texinfo/$$i $(infodir)/$$i ; \
+             done ;                                                     \
+           fi ;                                                         \
+         fi
+ 
+ uninstall-pkg:
+-	-$(RM) $(PACKAGEDIR)/info/bbdb.info*
++	-$(RM) $(infodir)/bbdb.info*
+ 
+ info: bbdb.info
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/calfw/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/calfw/default.nix
new file mode 100644
index 000000000000..091635feda6f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/calfw/default.nix
@@ -0,0 +1,34 @@
+{ fetchgit, stdenv, emacs }:
+
+# TODO: byte-compile in build phase - a buildEmacsPackage that does
+# that would be nice
+
+stdenv.mkDerivation rec {
+  name = "calfw-1.3-5-ga9b6615";
+
+  src = fetchgit {
+    url = "git://github.com/kiwanami/emacs-calfw.git";
+    rev = "a9b6615b6666bbebe78257c557fd9a2e3a325d8d";
+    sha256 = "524acc8fec7e64ebe0d370ddb1d96eee6a409d650b79011fa910c35225a7f393";
+  };
+
+  buildInputs = [ emacs ];
+
+  installPhase =
+    ''
+       mkdir -p "$out/share/doc/${name}"
+       cp -v readme.md "$out/share/doc/${name}"
+
+       mkdir -p "$out/share/emacs/site-lisp/"
+       cp *.el "$out/share/emacs/site-lisp/"
+    '';
+
+  meta = {
+    description = "A calendar framework for Emacs";
+
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    maintainers = with stdenv.lib.maintainers; [ chaoflow ];
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/cask/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/cask/default.nix
new file mode 100644
index 000000000000..aed976051f20
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/cask/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchFromGitHub, emacs, python }:
+
+stdenv.mkDerivation rec {
+  version = "0.8.4";
+  name = "cask-${version}";
+
+  src = fetchFromGitHub {
+    owner = "cask";
+    repo = "cask";
+    rev = "v${version}";
+    sha256 = "1p37lq8xpyq0rc7phxgsw3b73h8vf9rkpa5959rb5k46w6ps9686";
+  };
+
+  buildInputs = [ emacs python ];
+
+  # byte-compiling emacs files automatically triggers cask's bootstrap
+  # mechanism, what we don't want.
+  dontBuild = true;
+
+  installPhase = ''
+    install -d "$out/share/emacs/site-lisp"
+    install cask*.el* "$out/share/emacs/site-lisp"
+
+    install -d "$out/bin"
+    install bin/cask "$out/bin"
+
+    # We also need to install cask's templates in order for 'cask
+    # init' to work properly.
+    install -d "$out/templates"
+    install templates/* "$out/templates"
+
+    # In order to work with cask's hard coded file paths (during bootstrap),
+    # we have to create these links.
+    ln -s "$out/share/emacs/site-lisp/"* "$out"
+
+    # This file disables cask's self-updating function.
+    touch "$out/.no-upgrade"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Project management tool for Emacs";
+    longDescription =
+      ''
+        Cask is a project management tool for Emacs that helps automate the
+        package development cycle; development, dependencies, testing,
+        building, packaging and more. Cask can also be used to manage
+        dependencies for your local Emacs configuration.
+      '';
+    homepage = https://github.com/cask/cask;
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.jgeerds ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix
new file mode 100644
index 000000000000..e350dc08e71c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/cedet/default.nix
@@ -0,0 +1,48 @@
+{ 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/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix
new file mode 100644
index 000000000000..2d1cbb75981e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/cedille/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, cedille, emacs }:
+
+stdenv.mkDerivation rec {
+  name    = "cedille-mode-${version}";
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/coffee/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/coffee/default.nix
new file mode 100644
index 000000000000..495b1aca4b53
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/coffee/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "coffee-mode-0.4.1";
+
+  src = fetchgit {
+    url = "https://github.com/defunkt/coffee-mode.git";
+    rev = "c45c5f7a529363bc7aa57db0f3df26389fd233d8";
+    sha256 = "36a7792b5ffbcc5a580e8d5b2425494c60a8015cfde0e3f8a946a685da231ce2";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -f batch-byte-compile coffee-mode.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install coffee-mode.el coffee-mode.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Emacs major mode for CoffeeScript, unfancy JavaScript";
+    homepage = https://github.com/defunkt/coffee-mode;
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
new file mode 100644
index 000000000000..6b51f117ad85
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchzip, emacs, colorTheme}:
+let
+  commit = "412713a0fcedd520d208a7b783fea03d710bcc61";
+in
+stdenv.mkDerivation rec {
+  name = "color-theme-solarized-1.0.0";
+
+  src = fetchzip {
+
+    url = "https://github.com/sellout/emacs-color-theme-solarized/archive/${commit}.zip";
+    sha256 = "1xd2yk7p39zxgcf91s80pqknzdxw9d09cppjb87g7ihj6f0wxqjv";
+  };
+
+  buildInputs = [ emacs ];
+  propagatedUserEnvPkgs = [ colorTheme ];
+
+
+  buildPhase = ''
+    emacs -L . -L ${colorTheme}/share/emacs/site-lisp --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/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/default.nix
new file mode 100644
index 000000000000..407b9e58f0bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation rec {
+  name = "color-theme-6.6.0";
+
+  src = fetchurl {
+    url = "mirror://savannah/color-theme/${name}.tar.gz";
+    sha256 = "0yx1ghcjc66s1rl0v3d4r1k88ifw591hf814ly3d73acvh15zlsn";
+  };
+
+  # patches from http://aur.archlinux.org/packages.php?ID=54883
+  patches = [ ./fix-build.patch ./gnus-bug.diff ];
+
+  buildInputs = [ emacs ];
+
+  installFlags = [ "ELISPDIR=$(out)/share/emacs/site-lisp" ];
+  installTargets = "install-bin";
+
+  meta = {
+    description = "Emacs-lisp mode for skinning your Emacs";
+    homepage = https://www.nongnu.org/color-theme;
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/fix-build.patch b/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/fix-build.patch
new file mode 100644
index 000000000000..cfc237c8cdc1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/fix-build.patch
@@ -0,0 +1,19 @@
+--- a/Makefile	2009-05-15 18:22:49.000000000 +0200
++++ b/Makefile	2009-05-16 08:59:36.000000000 +0200
+@@ -15,6 +15,7 @@
+ TARGET	= $(patsubst %.el,%.elc,$(SPECIAL) $(SOURCE))
+ MANUAL  = color-theme
+ MISC	= AUTHORS COPYING ChangeLog Makefile.defs Makefile $(AUTOLOADFILE).in
++LOADPATH = "$(shell pwd)" "$(shell pwd)/themes"
+ #AUTHORS CREDITS HISTORY NEWS README Makefile ChangeLog \
+ #ChangeLog.2005 ChangeLog.2004 ChangeLog.2003 ChangeLog.2002 \
+ #ChangeLog.2001 servers.pl color-theme-auto.in color-theme.texi
+@@ -47,7 +48,7 @@
+ 
+ %.elc: %.el
+ 	@$(EMACS) $(OPTIONCOMPILE) \
+-	--eval '(setq load-path (cons "." load-path))' \
++	--eval '(setq load-path (append load-path (list $(LOADPATH))))' \
+ 	-f batch-byte-compile $<
+ 
+ %.info: %.texi
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/gnus-bug.diff b/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/gnus-bug.diff
new file mode 100644
index 000000000000..9d227df562e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/color-theme/gnus-bug.diff
@@ -0,0 +1,28 @@
+diff -Naur color-theme-6.6.0.orig/color-theme.el color-theme-6.6.0.new/color-theme.el
+--- color-theme-6.6.0.orig/color-theme.el	2011-11-18 01:17:29.000000000 +0100
++++ color-theme-6.6.0.new/color-theme.el	2011-11-18 01:24:07.000000000 +0100
+@@ -73,9 +73,10 @@
+   "Non-nil if running XEmacs.")
+ 
+ ;; Add this since it appears to miss in emacs-2x
+-(or (fboundp 'replace-in-string)
+-    (defun replace-in-string (target old new)
+-      (replace-regexp-in-string old new  target)))
++(if (fboundp 'replace-in-string)
++    (defalias 'color-theme-replace-in-string 'replace-in-string)
++  (defsubst color-theme-replace-in-string (target old new &optional literal)
++    (replace-regexp-in-string old new target nil literal)))
+ 
+ ;; face-attr-construct has a problem in Emacs 20.7 and older when
+ ;; dealing with inverse-video faces.  Here is a short test to check
+@@ -1626,8 +1627,8 @@
+        (add-to-list 'color-themes
+                     (list ',n
+                           (upcase-initials
+-                           (replace-in-string
+-                            (replace-in-string 
++                           (color-theme-replace-in-string
++                            (color-theme-replace-in-string 
+                              (symbol-name ',n) "^color-theme-" "") "-" " "))
+                           ,author))
+        (defun ,n ()
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/cryptol/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/cryptol/default.nix
new file mode 100644
index 000000000000..5b408ad7999d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/cryptol/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name    = "cryptol-mode-${version}";
+  version = "0.1.0";
+
+  src = fetchurl {
+    url    = "https://github.com/thoughtpolice/cryptol-mode/archive/v${version}.tar.gz";
+    sha256 = "1qyrqvfgpg1nyk1clv7v94r3amm02613hrak5732xzn6iak81cc0";
+  };
+
+  buildInputs = [ emacs ];
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Emacs major mode for Cryptol";
+    homepage    = "https://thoughtpolice/cryptol-mode";
+    license     = stdenv.lib.licenses.gpl3Plus;
+    platforms   = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/cua/builder.sh b/nixpkgs/pkgs/applications/editors/emacs-modes/cua/builder.sh
new file mode 100644
index 000000000000..6f7bb428c1a6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/cua/builder.sh
@@ -0,0 +1,4 @@
+source $stdenv/setup
+
+mkdir -p $out/emacs/site-lisp
+cp $src $out/emacs/site-lisp/cua.el
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/cua/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/cua/default.nix
new file mode 100644
index 000000000000..0305be28ad62
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/cua/default.nix
@@ -0,0 +1,8 @@
+{stdenv, fetchurl}: stdenv.mkDerivation {
+  name = "cua-mode-2.10";
+  builder = ./builder.sh;
+  src = fetchurl {
+    url = http://tarballs.nixos.org/cua-mode-2.10.el;
+    sha256 = "01877xjbq0v9wrpcbnhvppdn9wxliwkkjg3dr6k795mjgslwhr1b";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/d/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/d/default.nix
new file mode 100644
index 000000000000..28736acded2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/d/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, emacs}:
+
+# Note: Don't have a version, using date as fallback.
+let version = "20150111";
+
+in stdenv.mkDerivation {
+  name = "emacs-d-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode/archive/53efec4d83c7cee8227597f010fe7fc400ff05f1.tar.gz";
+    sha256 = "0vb0za51lc6qf1qgqisap4vzk36caa5k17zajjn034rhjsqfw0w7";
+  };
+
+  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
+  '';
+
+  meta = {
+    description = "Major mode for editing D code";
+    homepage = https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/darcsum/darcs_context b/nixpkgs/pkgs/applications/editors/emacs-modes/darcsum/darcs_context
new file mode 100644
index 000000000000..7e9de1ed80b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/darcsum/darcs_context
@@ -0,0 +1,7 @@
+
+Context:
+
+[TAG 1.3
+Simon Michael <simon@joyful.com>**20131103203640
+ Ignore-this: d12bac373e4aa0e5ffe6c390e1dfe269
+] 
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/darcsum/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/darcsum/default.nix
new file mode 100644
index 000000000000..0a1c2c77b2a2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/darcsum/default.nix
@@ -0,0 +1,34 @@
+# To automatically load darcsum when needed, add the following to your emacs init file:
+#
+#   (autoload 'darcsum-changes "darcsum" nil t)
+#   (autoload 'darcsum-whatsnew "darcsum" nil t)
+#   (autoload 'darcsum-view "darcsum" nil t)
+#
+# (These lines were copied from 50darcsum.el in the darcsum repository.)
+
+
+{ fetchdarcs, stdenv }:
+
+stdenv.mkDerivation {
+  name = "darcsum-1.3";
+
+  src = fetchdarcs {
+    url = http://hub.darcs.net/simon/darcsum;
+    context = ./darcs_context;
+    sha256 = "18dyk2apmnjapd604a5njfqwjri1mc7lgjaajy9phicpibgdrwzh";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    install -d "$out/share/emacs/site-lisp"
+    install darcsum.el "$out/share/emacs/site-lisp"
+  '';
+
+  meta = {
+    description = "A pcl-cvs like interface for managing darcs patches";
+    homepage = http://hub.darcs.net/simon/darcsum;
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.falsifian ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/ecb/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/ecb/default.nix
new file mode 100644
index 000000000000..807bb91f850c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/ecb/default.nix
@@ -0,0 +1,48 @@
+{ fetchurl, stdenv, emacs, cedet, jdee, texinfo }:
+
+stdenv.mkDerivation rec {
+  name = "ecb-2.40";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ecb/${name}.tar.gz";
+    sha256 = "0gp56ixfgnyk2j1fps4mk1yv1vpz81kivb3gq9f56jw4kdlhjrjs";
+  };
+
+  buildInputs = [ emacs ];
+  propagatedBuildInputs = [ cedet jdee ];
+  propagatedUserEnvPkgs = propagatedBuildInputs;
+
+  patchPhase = ''
+    sed -i "Makefile" \
+        -e 's|CEDET[[:blank:]]*=.*$|CEDET = ${cedet}/share/emacs/site-lisp|g ;
+            s|INSTALLINFO[[:blank:]]*=.*$|INSTALLINFO = ${texinfo}/bin/install-info|g ;
+            s|MAKEINFO[[:blank:]]*=.*$|MAKEINFO = ${texinfo}/bin/makeinfo|g ;
+            s|common/cedet.el|cedet.el|g'
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/share/emacs/site-lisp"
+    cp -rv *.el *.elc ecb-images "$out/share/emacs/site-lisp"
+
+    mkdir -p "$out/share/info"
+    cp -v info-help/*.info* "$out/share/info"
+  '';
+
+  meta = {
+    description = "ECB, the Emacs Code browser";
+
+    longDescription = ''
+      ECB stands for "Emacs Code Browser".  While Emacs already has
+      good editing support for many modes, its browsing support is
+      somewhat lacking.  That's where ECB comes in: it displays a
+      number of informational windows that allow for easy source code
+      navigation and overview.
+    '';
+
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    homepage = http://ecb.sourceforge.net/;
+
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
new file mode 100644
index 000000000000..5674f64b30a2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -0,0 +1,3153 @@
+{ 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.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ack-1.5.tar";
+          sha256 = "0sljshiy44z27idy0rxjs2fx4smlm4v607wic7md1vihp6qp4l9r";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/ack.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ada-mode = callPackage ({ cl-lib ? null
+                            , elpaBuild
+                            , emacs
+                            , fetchurl
+                            , lib
+                            , wisi }:
+      elpaBuild {
+        pname = "ada-mode";
+        ename = "ada-mode";
+        version = "6.0.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ada-mode-6.0.1.tar";
+          sha256 = "12ryblyqnhqibaffibs7qq3xq9rf5d4y9dishq82pbbh9y8s17hj";
+        };
+        packageRequires = [ cl-lib emacs 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 = "2012.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ada-ref-man-2012.3.tar";
+          sha256 = "0w88xw51jb85nmqbi3i9kj9kx2fa6zlazk3x7afll7njc6g4105z";
+        };
+        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.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/adjust-parens-3.0.tar";
+          sha256 = "16gmrgdfyqs7i617669f7xy5mds1svbyfv12xhdjk96rbssfngzg";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/adjust-parens.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.95";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/arbitools-0.95.el";
+          sha256 = "1v6i9d35xqag9a8j12n3xjircwzndjwgb84qm7rsgbns60v3ci8y";
+        };
+        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 ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "async";
+        ename = "async";
+        version = "1.9.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/async-1.9.2.tar";
+          sha256 = "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/async.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auctex = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "auctex";
+        ename = "auctex";
+        version = "12.1.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/auctex-12.1.1.tar";
+          sha256 = "10l96569dy9pfp8bm64pndhk1skg65kqhsyllwfa0zvb7mjkm70l";
+        };
+        packageRequires = [];
+        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.4.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/avy-0.4.0.tar";
+          sha256 = "1vbp37ndv5930x120n0isxxxfs8d5wqlrbnxvp6h3ahbbv0zdcsn";
+        };
+        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;
+        };
+      }) {};
+    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;
+        };
+      }) {};
+    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;
+        };
+      }) {};
+    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.9";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/company-0.9.9.tar";
+          sha256 = "1qinkz8gwgc27p3p3c9kddrrwx0jb4w0vgx7jq8fwpfj1n92m1rv";
+        };
+        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";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/company-ebdb-1.el";
+          sha256 = "1awriwvjpf9k2r6hzawai5kxz28j40zk9fvpb946kd5yj0hxr9nc";
+        };
+        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.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/company-math-1.1.tar";
+          sha256 = "10yi5jmv7njcaansgy2aw7wm1j3acch1j9x6lfg9mxk0j21zvgwp";
+        };
+        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-ebdb = callPackage ({ ebdb, elpaBuild, fetchurl, ivy, lib }:
+      elpaBuild {
+        pname = "counsel-ebdb";
+        ename = "counsel-ebdb";
+        version = "1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/counsel-ebdb-1.el";
+          sha256 = "0p919gq871rxlrn6lpjbwws7h6i2gc9vgcxzj8bzgz8xk5hq9mis";
+        };
+        packageRequires = [ ebdb ivy ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/counsel-ebdb.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 ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "csv-mode";
+        ename = "csv-mode";
+        version = "1.7";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/csv-mode-1.7.el";
+          sha256 = "0r4bip0w3h55i8h6sxh06czf294mrhavybz0zypzrjw91m1bi7z6";
+        };
+        packageRequires = [];
+        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.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/darkroom-0.1.el";
+          sha256 = "0fif8fm1h7x7g16949shfnaik5f5488clsvkf8bi5izpqp3vi6ak";
+        };
+        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 ({ cl-lib ? null
+                           , elpaBuild
+                           , fetchurl
+                           , lib
+                           , soap-client }:
+      elpaBuild {
+        pname = "debbugs";
+        ename = "debbugs";
+        version = "0.16";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/debbugs-0.16.tar";
+          sha256 = "0y3bq803c7820h15g66d1648skxfhlfa2v6vincj6xk5ssp44s9p";
+        };
+        packageRequires = [ cl-lib soap-client ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/debbugs.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    delight = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "delight";
+        ename = "delight";
+        version = "1.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/delight-1.5.el";
+          sha256 = "0kzlvzwmn6zj0874086q2xw0pclyi7wlkq48zh2lkd2796xm8vw7";
+        };
+        packageRequires = [];
+        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.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/diff-hl-1.8.5.tar";
+          sha256 = "1vxc7z7c2qs0mx7l5sa4sybi5qbzv0s79flj74p1ynw8dl3qxg3d";
+        };
+        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.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/dired-du-0.5.1.tar";
+          sha256 = "1091scnrjh0a4gja4z6jxic6ghy1yryv46qk9c76pmh50cpw6766";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/dired-du.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 = "0.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/djvu-0.5.el";
+          sha256 = "1wpyv4ismfsz5hfaj75j3h3nni1mnk33czhw3rd45cf32a2zkqsj";
+        };
+        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.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ebdb-0.6.2.tar";
+          sha256 = "1b37962mvm80vk5sdk9kfvvxsxn83z5z6zvm20m9997ggl5dv4dz";
+        };
+        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.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ebdb-i18n-chn-1.2.el";
+          sha256 = "1qgrlk625mhfd6n1mc0kqfzbisnb61kx3vrrl3bzlz4viq3kcc10";
+        };
+        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 = "1.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ediprolog-1.2.el";
+          sha256 = "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/ediprolog.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eglot = callPackage ({ elpaBuild
+                         , emacs
+                         , fetchurl
+                         , flymake ? null
+                         , jsonrpc
+                         , lib }:
+      elpaBuild {
+        pname = "eglot";
+        ename = "eglot";
+        version = "1.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/eglot-1.3.tar";
+          sha256 = "0hndqabxvrq4ak5kx2xlds5pkayi2bfd1f1xk8aidzk5i70f7yry";
+        };
+        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.8.7";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/el-search-1.8.7.tar";
+          sha256 = "0jlalcz8hppra2chmppd6b2g5dz8w6yscqylkx28pd7wy6aadx1r";
+        };
+        packageRequires = [ cl-print emacs stream ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/el-search.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;
+        };
+      }) {};
+    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.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/excorporate-0.8.1.tar";
+          sha256 = "1k89472x80wsn14y16km5bgynmmd2kbdfhylb3cc17jvdn1xr53y";
+        };
+        packageRequires = [ emacs fsm nadvice soap-client url-http-ntlm ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/excorporate.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exwm = callPackage ({ elpaBuild, fetchurl, lib, xelb }:
+      elpaBuild {
+        pname = "exwm";
+        ename = "exwm";
+        version = "0.21";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/exwm-0.21.tar";
+          sha256 = "07ng1pgsnc3isfsyzh2gfc7391p9il8lb5xqf1z6yqn20w7k6xzj";
+        };
+        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 ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "flymake";
+        ename = "flymake";
+        version = "1.0.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/flymake-1.0.3.el";
+          sha256 = "1algny2zhcl4vc7kp5czcqvxzpgqfjnz2rnkv26r0ylxig3s98v7";
+        };
+        packageRequires = [ 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.6.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/fountain-mode-2.6.1.el";
+          sha256 = "0p0h28cmryhsgrp2ghk28i1xkfz4gvdwaa38galn4jksn9dh0dyb";
+        };
+        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;
+        };
+      }) {};
+    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.5.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/gited-0.5.3.tar";
+          sha256 = "1bayfclczdzrmay8swszs8lliz5p4nnmjzzz2gh68rc16isjgh2z";
+        };
+        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.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/gnorb-1.6.1.tar";
+          sha256 = "0n4460hsmcc3l0y3nb3fysvh33cjwgv0a3mkc26xcx8v85zl7m63";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/gnorb.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.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/gnus-mock-0.4.0.tar";
+          sha256 = "058bd4f8za9bxayrd2j5b05qvk8lxxm8mmfwxb73d7k15z3z3l3s";
+        };
+        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.3.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/gpastel-0.3.0.el";
+          sha256 = "0426y55f7mbfbyjhl2bn0c2cn57jd4d8xvzri2pbqakff8ij470a";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/gpastel.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;
+        };
+      }) {};
+    helm-ebdb = callPackage ({ ebdb, elpaBuild, fetchurl, helm, lib }:
+      elpaBuild {
+        pname = "helm-ebdb";
+        ename = "helm-ebdb";
+        version = "1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/helm-ebdb-1.el";
+          sha256 = "17gpna0hywxnhfwc9zsm2r35mskyfi416qqmmdba26r4zmpb9r63";
+        };
+        packageRequires = [ ebdb helm ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/helm-ebdb.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.0.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/hyperbole-7.0.2.tar";
+          sha256 = "1hgwa740941a9s5wf1cqf76h3af8qbiiw9sc76biz6m3vx0hy1zs";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/hyperbole.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ioccur = callPackage ({ elpaBuild, 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 = [];
+        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.10.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ivy-0.10.0.tar";
+          sha256 = "01m58inpd8jbfvzqsrwigzjfld9a66nf36cbya26dmdy7vwdm8xm";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/ivy.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    javaimp = callPackage ({ elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "javaimp";
+        ename = "javaimp";
+        version = "0.6";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/javaimp-0.6.tar";
+          sha256 = "015kchx6brsjk7q6lz9y44a18n5imapd95czx50hqdscjczmj2ff";
+        };
+        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 = "20180301";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/js2-mode-20180301.tar";
+          sha256 = "0kcs70iygbpaxs094q6agsjs56sz03jy4fwk178f9hr93x95pynx";
+        };
+        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.7";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/jsonrpc-1.0.7.el";
+          sha256 = "19z35gjphl4mlgpznfhlccgipnmbb3c1dvax48f4hw8qwksfcac1";
+        };
+        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;
+        };
+      }) {};
+    let-alist = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "let-alist";
+        ename = "let-alist";
+        version = "1.0.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/let-alist-1.0.5.el";
+          sha256 = "0r7b9jni50la1m79kklml11syg8d2fmdlr83pv005sv1wh02jszw";
+        };
+        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";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/load-relative-1.3.el";
+          sha256 = "1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps";
+        };
+        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 ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "loccur";
+        ename = "loccur";
+        version = "1.2.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/loccur-1.2.3.el";
+          sha256 = "09pxp03g4pg95cpqiadyv9dz6qrwd9igrkwrhm4s38cscmqm7dzq";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/loccur.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.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/math-symbol-lists-1.1.tar";
+          sha256 = "06klvnqipz0n9slw72fxmhrydrw6bi9fs9vnn8hrja8gsqf8inlz";
+        };
+        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.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/minimap-1.2.el";
+          sha256 = "1vcxdxy7mv8mi4lrri3kmyf9kly3rb02z4kpfx5d1xv493havvb8";
+        };
+        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.7";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/mmm-mode-0.5.7.tar";
+          sha256 = "0c4azrkgagyfm9znh7hmw93gkvddpsxlr0dwjp96winymih7mahf";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/mmm-mode.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.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/nhexl-mode-1.2.el";
+          sha256 = "031h22p564qdvr9khs05qcba06pmsk68cr7zyc7c04hfr3y3ziaf";
+        };
+        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.8.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/nlinum-1.8.1.el";
+          sha256 = "0fx560yfjy6nqgs1d3fiv0h46i8q3r592clsia7nihkriah7rlwf";
+        };
+        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.11";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/oauth2-0.11.el";
+          sha256 = "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/oauth2.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.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/on-screen-1.3.2.el";
+          sha256 = "15d18mjgv1pnwl6kf3pr5w64q1322p1l1qlfvnckglwmzy5sl2qv";
+        };
+        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.1.14";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/org-9.1.14.tar";
+          sha256 = "17vd9hig26rqv90l6y92hc2i0x29g44lsdsp0xd4m53s8r3zdikz";
+        };
+        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.0.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/org-edna-1.0.1.tar";
+          sha256 = "0xzyzx3pq1q6d66qcqx38pgxzn160y9yrzpy0ka8ap5xsm7ngn7m";
+        };
+        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.9";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/orgalist-1.9.el";
+          sha256 = "1rmmcyiiqkq54hn74nhzxzl4nvd902hv6gq341jwhrm7yiagffi6";
+        };
+        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.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/osc-0.1.el";
+          sha256 = "09nzbbzvxfrjm91wawbv6bg6fqlcx1qi0711qc73yfrbc8ndsnsb";
+        };
+        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;
+        };
+      }) {};
+    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.4.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/posframe-0.4.2.el";
+          sha256 = "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/posframe.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;
+        };
+      }) {};
+    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.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/rainbow-mode-1.0.1.el";
+          sha256 = "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf";
+        };
+        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 ({ cl-lib ? null
+                           , elpaBuild
+                           , emacs
+                           , fetchurl
+                           , lib
+                           , load-relative
+                           , loc-changes
+                           , test-simple }:
+      elpaBuild {
+        pname = "realgud";
+        ename = "realgud";
+        version = "1.4.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/realgud-1.4.5.tar";
+          sha256 = "108wgxg7fb4byaiasgvbxv2hq7b00biq9f0mh9hy6vw4160y5w24";
+        };
+        packageRequires = [
+          cl-lib
+          emacs
+          load-relative
+          loc-changes
+          test-simple
+        ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/realgud.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;
+        };
+      }) {};
+    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;
+        };
+      }) {};
+    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;
+        };
+      }) {};
+    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;
+        };
+      }) {};
+    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;
+        };
+      }) {};
+    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.9";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/sml-mode-6.9.el";
+          sha256 = "1bdg9ywpvj85hxqah9w1raxlcrhkyx67nw22jwd1bd5j0fhmgqij";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/sml-mode.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 ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "sokoban";
+        ename = "sokoban";
+        version = "1.4.6";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/sokoban-1.4.6.tar";
+          sha256 = "112cl1l36zn5q9cw81rxi96zflf7ddp3by1h7fsz48yjfidpfbzn";
+        };
+        packageRequires = [ 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.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/sql-indent-1.3.tar";
+          sha256 = "0zira8my1q975bad2h76bz4yddjzf0dskvy6x865np86rmzd0c9w";
+        };
+        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.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/ssh-deploy-3.0.tar";
+          sha256 = "0lv9qwm1dhcd2l2mnhjfpqsz6xx0wabjg5j5sm3425fjsaqws6m7";
+        };
+        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.4";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/stream-2.2.4.tar";
+          sha256 = "1fdjjxfnpzfv5jsy0wmmnrsk821bg8d3magsng609fb2pkwvk1ij";
+        };
+        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 = "0.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/svg-0.2.el";
+          sha256 = "14yfi27v3zdzh1chcjiq4l63iwh0vd99wv1z4w7agr33540jybc5";
+        };
+        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.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/svg-clock-1.0.el";
+          sha256 = "0j6zk7fsv72af12phqdw8axbn2y8y4rfgxiab1p3pxq3y7k47jid";
+        };
+        packageRequires = [ emacs svg ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/svg-clock.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    system-packages = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "system-packages";
+        ename = "system-packages";
+        version = "1.0.10";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/system-packages-1.0.10.tar";
+          sha256 = "1vwf2j0fxrsqmrgc7x5nkkg0vlhwgxppc4w7kb5is6dgrssskpb5";
+        };
+        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, 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 ];
+        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-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.6.5";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/undo-tree-0.6.5.el";
+          sha256 = "0bs97xyxwfkjvzax9llg0zsng0vyndnrxj5d2n5mmynaqcn89d37";
+        };
+        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;
+        };
+      }) {};
+    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;
+        };
+      }) {};
+    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;
+        };
+      }) {};
+    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-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 = "2016.1.30";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/wcheck-mode-2016.1.30.el";
+          sha256 = "0hzrxnslfl04h083njy7wp4hhgrqpyz0cnm73v348kr1i4wx9xjq";
+        };
+        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.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/web-server-0.1.1.tar";
+          sha256 = "1q51fhqw5al4iycdlighwv7jqgdpjb1a66glwd5jnc9b651yk42n";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/web-server.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    websocket = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "websocket";
+        ename = "websocket";
+        version = "1.8";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/websocket-1.8.tar";
+          sha256 = "0dcxmnnm8z7cvsc7nkb822a1g6w03klp7cijjnfq0pz84p3w9cd9";
+        };
+        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;
+        };
+      }) {};
+    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 ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
+      elpaBuild {
+        pname = "wisi";
+        ename = "wisi";
+        version = "2.0.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/wisi-2.0.1.tar";
+          sha256 = "1h0g6y33jrafcabgyi7j700hpv4p56v84c2mlqb334k1g9rq3709";
+        };
+        packageRequires = [ cl-lib emacs seq ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/wisi.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.7";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/xclip-1.7.el";
+          sha256 = "0jpy3zzbyb16vqa9l6m45crzlypwvscvs76h8lci7kvp91kq954r";
+        };
+        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.16";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/xelb-0.16.tar";
+          sha256 = "03wsr1jr7f7zfd80h864rd4makwh4widdnj1kjv2xyjwdgap9rl8";
+        };
+        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;
+        };
+      }) {};
+    yasnippet = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+      elpaBuild {
+        pname = "yasnippet";
+        ename = "yasnippet";
+        version = "0.13.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/yasnippet-0.13.0.tar";
+          sha256 = "1klnvyy8az3h7i7yrpbhad4ka9p9vlgf918ha1vf7i3wbcbm0s5z";
+        };
+        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 = "2018.11.21";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/zones-2018.11.21.el";
+          sha256 = "0s68mnynjd08gyga7xdnb0zy3irsxl1jryidpcrkzg821vfrk11i";
+        };
+        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/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix
new file mode 100644
index 000000000000..26f4b791cc02
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/elpa-packages.nix
@@ -0,0 +1,52 @@
+/*
+
+# Updating
+
+To update the list of packages from MELPA,
+
+1. Clone https://github.com/ttuegel/emacs2nix.
+2. Run `./elpa-packages.sh` from emacs2nix.
+3. Copy the new `elpa-generated.nix` file into Nixpkgs.
+4. Check for evaluation errors: `nix-instantiate ./. -A emacsPackagesNg.elpaPackages`.
+5. `git add pkgs/applications/editors/emacs-modes/elpa-generated.nix && git commit -m "elpa-packages $(date -Idate)"`
+
+*/
+
+{ fetchurl, lib, stdenv, texinfo }:
+
+self:
+
+  let
+
+    imported = import ./elpa-generated.nix {
+      inherit (self) callPackage;
+    };
+
+    super = removeAttrs imported [ "dash" ];
+
+    elpaBuild = import ../../../build-support/emacs/elpa.nix {
+      inherit lib stdenv texinfo;
+      inherit (self) emacs;
+    };
+
+    markBroken = pkg: pkg.override {
+      elpaBuild = args: self.elpaBuild (args // {
+        meta = (args.meta or {}) // { broken = true; };
+      });
+    };
+
+    overrides = {
+      # upstream issue: missing footer
+      ebdb-i18n-chn = markBroken super.ebdb-i18n-chn;
+      el-search = markBroken super.el-search; # requires emacs-25
+      iterators = markBroken super.iterators; # requires emacs-25
+      midi-kbd = markBroken super.midi-kbd; # requires emacs-25
+      rcirc-menu = markBroken super.rcirc-menu; # Missing file header
+      stream = markBroken super.stream; # requires emacs-25
+      cl-lib = null; # builtin
+      tle = null; # builtin
+    };
+
+    elpaPackages = super // overrides;
+
+  in elpaPackages // { inherit elpaBuild elpaPackages; }
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix
new file mode 100644
index 000000000000..66ac9a3d77e6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/default.nix
@@ -0,0 +1,30 @@
+{ clangStdenv, fetchgit, llvmPackages }:
+
+clangStdenv.mkDerivation {
+  name = "emacs-clang-complete-async-20130218";
+  src = fetchgit {
+    url = "git://github.com/Golevka/emacs-clang-complete-async.git";
+    rev = "f01488971ec8b5752780d130fb84de0c16a46f31";
+    sha256 = "01smjinrvx0w5z847a43fh2hyr6rrq1kaglfakbr6dcr313w89x9";
+  };
+
+  buildInputs = [ llvmPackages.llvm ];
+
+  patches = [ ./fix-build.patch ];
+
+  CFLAGS = "-I${llvmPackages.clang}/include";
+  LDFLAGS = "-L${llvmPackages.clang}/lib";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/emacs/site-lisp
+    install -m 755 clang-complete $out/bin
+    install -m 644 auto-complete-clang-async.el $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    homepage = https://github.com/Golevka/emacs-clang-complete-async;
+    description = "An emacs plugin to complete C and C++ code using libclang";
+    license = clangStdenv.lib.licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/fix-build.patch b/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/fix-build.patch
new file mode 100644
index 000000000000..89de339a436b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-clang-complete-async/fix-build.patch
@@ -0,0 +1,10 @@
+--- old/src/completion.h	2014-11-16 16:58:16.625150124 +0100
++++ new/src/completion.h	2014-11-16 16:58:28.020207508 +0100
+@@ -3,6 +3,7 @@
+ 
+ 
+ #include <clang-c/Index.h>
++#include <stdio.h>
+ 
+ 
+ typedef struct __completion_Session_struct
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-libvterm/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-libvterm/default.nix
new file mode 100644
index 000000000000..8d39c185acad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-libvterm/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, cmake, emacs, libvterm-neovim }:
+
+let
+  emacsSources = stdenv.mkDerivation {
+    name = emacs.name + "-sources";
+    src = emacs.src;
+
+    configurePhase = ":";
+    dontBuild = true;
+    doCheck = false;
+    fixupPhase = ":";
+
+    installPhase = ''
+      mkdir -p $out
+      cp -a * $out
+    '';
+
+  };
+
+in stdenv.mkDerivation rec {
+  name = "emacs-libvterm-${version}";
+  version = "unstable-2018-11-16";
+
+  src = fetchFromGitHub {
+    owner = "akermu";
+    repo = "emacs-libvterm";
+    rev = "8be9316156be75a685c0636258b2fec2daaf5ab5";
+    sha256 = "059js4aa7xgqcpaicgy4gz683hppa1iyp1r98mnms5hd31a304k8";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ emacs libvterm-neovim ];
+
+  cmakeFlags = [ "-DEMACS_SOURCE=${emacsSources}" ];
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install ../*.el $out/share/emacs/site-lisp
+    install ./*.so $out/share/emacs/site-lisp
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix
new file mode 100644
index 000000000000..8e1d7092e6a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix
@@ -0,0 +1,61 @@
+{ fetchcvs, stdenv, emacs, w3m, imagemagick, texinfo, autoreconfHook }:
+
+let date = "2013-03-21"; in
+stdenv.mkDerivation rec {
+  name = "emacs-w3m-cvs${date}";
+
+  # Get the source from CVS because the previous release (1.4.4) is old and
+  # doesn't work with GNU Emacs 23.
+  src = fetchcvs {
+    inherit date;
+    cvsRoot = ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot";
+    module = "emacs-w3m";
+    sha256 = "1lmcj8rf83w13q8q68hh7sa1abc2m6j2zmfska92xdp7hslhdgc5";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ emacs w3m texinfo ];
+
+  # XXX: Should we do the same for xpdf/evince, gv, gs, etc.?
+  patchPhase = ''
+    sed -i "w3m.el" \
+        -e 's|defcustom w3m-command nil|defcustom w3m-command "${w3m}/bin/w3m"|g ;
+            s|(w3m-which-command "display")|"${imagemagick.out}/bin/display"|g'
+
+    sed -i "w3m-image.el" \
+        -e 's|(w3m-which-command "convert")|"${imagemagick.out}/bin/convert"|g ;
+            s|(w3m-which-command "identify")|"${imagemagick.out}/bin/identify"|g'
+  '';
+
+  configureFlags = [
+    "--with-lispdir=$(out)/share/emacs/site-lisp"
+    "--with-icondir=$(out)/share/emacs/site-lisp/images/w3m"
+  ];
+
+  postInstall = ''
+    cd "$out/share/emacs/site-lisp"
+    for i in ChangeLog*
+    do
+      mv -v "$i" "w3m-$i"
+    done
+  '';
+
+  meta = {
+    description = "Emacs-w3m, a simple Emacs interface to the w3m web browser";
+
+    longDescription = ''
+      Emacs/W3 used to be known as the most popular WEB browser on Emacs, but
+      it worked so slowly that we wanted a simple and speedy alternative.
+
+      w3m is a pager with WWW capability, developed by Akinori ITO. Although
+      it is a pager, it can be used as a text-mode WWW browser. Then we
+      developed a simple Emacs interface to w3m.
+    '';
+
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    homepage = http://emacs-w3m.namazu.org/;
+
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/emms/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/emms/default.nix
new file mode 100644
index 000000000000..f966989b5a30
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/emms/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, emacs, texinfo
+, mpg321, vorbis-tools, taglib, mp3info, alsaUtils }:
+
+# XXX: EMMS also supports Xine, MPlayer, Jack, etc.
+
+stdenv.mkDerivation rec {
+  name = "emms-3.0";
+
+  src = fetchurl {
+    # These guys don't use ftp.gnu.org...
+    url = "https://www.gnu.org/software/emms/download/${name}.tar.gz";
+    sha256 = "151mfx97x15lfpd1qc2sqbvhwhvg46axgh15qyqmdy42vh906xav";
+  };
+
+  buildInputs = [ emacs texinfo ];
+
+  configurePhase = ''
+    sed -i "Makefile" -e "s|PREFIX *=.*\$|PREFIX = $out|g ;
+                          s|/usr/sbin/install-info|install-info|g ;
+                          s|/usr/include/taglib|${taglib}/include/taglib|g ;
+                          s|/usr/lib|${taglib}/lib|g ;
+                          s|^all:\(.*\)\$|all:\1 emms-print-metadata|g"
+    mkdir -p "$out/share/man/man1"
+
+    sed -i "emms-player-mpg321-remote.el" \
+        -e 's|emms-player-mpg321-remote-command[[:blank:]]\+"mpg321"|emms-player-mpg321-remote-command "${mpg321}/bin/mpg321"|g'
+    sed -i "emms-player-simple.el" \
+        -e 's|"ogg123"|"${vorbis-tools}/bin/ogg123"|g'
+    sed -i "emms-info-ogginfo.el" \
+        -e 's|emms-info-ogginfo-program-name[[:blank:]]\+"ogginfo"|emms-info-ogginfo-program-name "${vorbis-tools}/bin/ogginfo"|g'
+    sed -i "emms-info-libtag.el" \
+        -e "s|\"emms-print-metadata\"|\"$out/bin/emms-print-metadata\"|g"
+    sed -i "emms-volume-amixer.el" \
+        -e 's|"amixer"|"${alsaUtils}/bin/amixer"|g'
+
+    # Use the libtag info back-end for MP3s since we're building it.
+    sed -i "emms-setup.el" \
+        -e 's|emms-info-mp3info|emms-info-libtag|g'
+
+    # But use mp3info for the tag editor.
+    sed -i "emms-info-mp3info.el" \
+        -e 's|emms-info-mp3info-program-name[[:blank:]]\+"mp3info"|emms-info-mp3info-program-name "${mp3info}/bin/mp3info"|g'
+    sed -i "emms-tag-editor.el" \
+        -e 's|"mp3info"|"${mp3info}/bin/mp3info"|g'
+  '';
+
+  postInstall = ''
+    mkdir -p "$out/bin" && cp emms-print-metadata "$out/bin"
+  '';
+
+  meta = {
+    description = "GNU EMMS, The Emacs Multimedia System";
+
+    longDescription = ''
+      EMMS is the Emacs Multimedia System.  It tries to be a clean and
+      small application to play multimedia files from Emacs using
+      external players.  Many of it's ideas are derived from
+      MpthreePlayer, but it tries to be more general and cleaner.
+
+      The fact that EMMS is based on external players makes it
+      powerful, because it supports all formats that those players
+      support, with no effort from your side.
+    '';
+
+    homepage = https://www.gnu.org/software/emms/;
+
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    maintainers = [ ];
+    platforms = stdenv.lib.platforms.unix;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/ensime/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/ensime/default.nix
new file mode 100644
index 000000000000..d776103a6627
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/ensime/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, emacs, unzip, autoComplete, dash, s, scalaMode2, sbtMode }:
+
+stdenv.mkDerivation {
+  name = "emacs-ensime-2014-09-04";
+
+  src = fetchurl {
+    url = "https://github.com/ensime/ensime-emacs/archive/d3820a3f362975f6e14b817988ec07bfef2b4dad.zip";
+    sha256 = "0gwr0r92z2hh2x8g0hpxaar2vvfk1b91cp6v04gaasw0fvl5i7g5";
+  };
+
+  buildInputs = [ emacs unzip ];
+  propagatedUserEnvPkgs = [ autoComplete dash s scalaMode2 sbtMode ];
+
+  buildPhase = ''
+    emacs -L . -L ${autoComplete}/share/emacs/site-lisp --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/nixpkgs/pkgs/applications/editors/emacs-modes/erlang/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/erlang/default.nix
new file mode 100644
index 000000000000..463d7fc7e159
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/erlang/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, erlang }:
+
+stdenv.mkDerivation {
+
+  name = "erlang-mode-${erlang.version}";
+
+  buildInputs = [ ];
+
+  inherit erlang;
+
+  buildCommand = ''
+    mkdir -p "$out/share/emacs/site-lisp"
+    cp "$erlang/lib/erlang/lib/tools"*/emacs/*.el $out/share/emacs/site-lisp/
+  '';
+
+  # emacs highlighting */
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/erlang/otp;
+    description = "Erlang mode for Emacs";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.samuelrivas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/ess-R-object-popup/default.nix
new file mode 100644
index 000000000000..077e72f55764
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/emacs-modes/ess/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/ess/default.nix
new file mode 100644
index 000000000000..ce335a5d4827
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/ess/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, emacs, texinfo }:
+
+stdenv.mkDerivation rec {
+  name = "ess-14.09";
+
+  src = fetchurl {
+    url = "http://ess.r-project.org/downloads/ess/${name}.tgz";
+    sha256 = "0wa507jfmq3k7x0vigd2yzb4j2190ix4wnnpv7ql4bjy0vfvmwdn";
+  };
+
+  buildInputs = [ emacs texinfo ];
+
+  configurePhase = "makeFlags=PREFIX=$out";
+
+  meta = {
+    description = "Emacs Speaks Statistics";
+    homepage = http://ess.r-project.org/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    hydraPlatforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/filesets-plus/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/filesets-plus/default.nix
new file mode 100644
index 000000000000..ad22faf3dff7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/filesets-plus/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, melpaBuild }:
+
+melpaBuild {
+  pname = "filesets-plus";
+  version = "20170222.55";
+
+  src = fetchurl {
+    url = "https://www.emacswiki.org/emacs/download/filesets%2b.el";
+    sha256 = "0iajkgh0n3pbrwwxx9rmrrwz8dw2m7jsp4mggnhq7zsb20ighs00";
+    name = "filesets+.el";
+  };
+
+  recipe = fetchurl {
+    url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/filesets-plus+";
+    sha256 = "1wn99cb53ykds87lg9mrlfpalrmjj177nwskrnp9wglyqs65lk4g";
+    name = "filesets-plus";
+  };
+
+  meta = {
+    homepage = "https://melpa.org/#/filesets+";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
new file mode 100644
index 000000000000..eae338d241de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "flymake-cursor-0.1.5";
+
+  src = fetchurl {
+    url = "http://www.emacswiki.org/emacs/download/flymake-cursor.el";
+    sha256 = "10cpzrd588ya52blghxss5zkn6x8hc7bx1h0qbcdlybbmkjgpkxr";
+  };
+
+  phases = [ "buildPhase" "installPhase"];
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    cp $src flymake-cursor.el
+    emacs --batch -f batch-byte-compile flymake-cursor.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install flymake-cursor.el flymake-cursor.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Displays flymake error msg in minibuffer after delay";
+    homepage = http://www.emacswiki.org/emacs/flymake-cursor.el;
+    license = stdenv.lib.licenses.publicDomain;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/font-lock-plus/default.nix
new file mode 100644
index 000000000000..fdb28f447192
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/emacs-modes/gh/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/gh/default.nix
new file mode 100644
index 000000000000..aa59eace2ae3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/gh/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, emacs, pcache, logito }:
+
+stdenv.mkDerivation rec {
+  name = "gh-0.5.3";
+
+  src = fetchgit {
+    url = "https://github.com/sigma/gh.el.git";
+    rev = "ef03b63d063ec22f03af449aa955c98dfad7f80e";
+    sha256 = "1pciq16vl5l4kvj08q4ib1jzk2bb2y1makcsyaw8k9jblqviw756";
+  };
+
+  buildInputs = [ emacs ];
+  propagatedUserEnvPkgs = [ pcache logito ];
+
+  patchPhase = ''
+    sed -i Makefile \
+      -e "s|^ *EFLAGS *=|& -L ${pcache}/share/emacs/site-lisp -L ${logito}/share/emacs/site-lisp --eval '(setq user-emacs-directory \"./\")'|" \
+      -e "s|/usr/local|$out|" \
+      -e "s|/site-lisp/\$(PKGNAME)|/site-lisp|"
+  '';
+
+  buildPhase = "make lisp";
+
+  meta = {
+    description = "A (very early) GitHub client library for Emacs";
+    homepage = https://github.com/sigma/gh.el;
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/gist/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/gist/default.nix
new file mode 100644
index 000000000000..08471247f081
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/gist/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, emacs, gh, pcache, logito }:
+
+stdenv.mkDerivation rec {
+  name = "gist-1.0";
+
+  src = fetchgit {
+    url = "https://github.com/sigma/gist.el.git";
+    rev = "bbb457e4eaaf5f96cfaaa4f63021e3e542bfbfed";
+    sha256 = "469f9df52076d0c6038183cff4b9415bca98de66c08814a60b69729b44bdf294";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs -L ${gh}/share/emacs/site-lisp \
+          -L ${pcache}/share/emacs/site-lisp \
+          -L ${logito}/share/emacs/site-lisp \
+          --eval '(setq user-emacs-directory "./")' \
+          --batch -f batch-byte-compile gist.el
+  '';
+
+  propagatedUserEnvPkgs = [ gh pcache logito ];
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install gist.el gist.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Emacs integration for gist.github.com";
+    homepage = https://github.com/sigma/gist.el;
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/gn/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/gn/default.nix
new file mode 100644
index 000000000000..39e7d1abf386
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/gn/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation {
+  name = "gn-mode-2017-09-21";
+  src = fetchgit {
+    url = "https://chromium.googlesource.com/chromium/src/tools/gn";
+    rev = "34f2780efb3fe14fe361ec161ad58440de5a6b36";
+    sha256 = "10cisqz3l6ny3471yi7y1z8v622lpl65zh0liqr6absvmy63g866";
+  };
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -f batch-byte-compile misc/emacs/gn-mode.el
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp/
+    cp misc/emacs/gn-mode.el* $out/share/emacs/site-lisp/
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/graphviz-dot/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/graphviz-dot/default.nix
new file mode 100644
index 000000000000..ce5522571339
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/graphviz-dot/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "graphviz-dot-mode-0.3.3";
+
+  src = fetchurl {
+    url = "http://www.graphviz.org/Misc/graphviz-dot-mode.el";
+    sha256 = "6465c18cfaa519a063cf664207613f70b0a17ac5eabcfaa949b3c4c289842953";
+  };
+
+  buildInputs = [ emacs ];
+
+  unpackPhase = ":";
+
+  installPhase = ''
+    mkdir -p "$out/share/emacs/site-lisp"
+    cp -v ${src} "$out/share/emacs/site-lisp/graphviz-dot-mode.el"
+    emacs -batch --eval '(setq load-path (cons "." load-path))' -f batch-byte-compile "$out/share/emacs/site-lisp/graphviz-dot-mode.el"
+  '';
+
+  meta = {
+    homepage = http://www.graphviz.org/;
+    description = "An emacs mode for the DOT Language, used by graphviz";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/haskell/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/haskell/default.nix
new file mode 100644
index 000000000000..6b10766bedb7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/haskell/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, emacs, texinfo }:
+
+# Use "emacsMelpa.haskell-mode" instead.
+
+let
+  version = "13.14-169-g0d3569d";      # git describe --tags
+in
+stdenv.mkDerivation {
+  name = "haskell-mode-${version}";
+
+  src = fetchFromGitHub {
+    owner = "haskell";
+    repo = "haskell-mode";
+    rev = "v${version}";
+    sha256 = "0v5iy9wy05hf44wy7qs0c9q0v34m4k6wrqg4kyvji61568k1yx3k";
+  };
+
+  buildInputs = [ emacs texinfo ];
+
+  makeFlags = "VERSION=v${version} GIT_VERSION=v${version}";
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp *.el *.elc *.hs $out/share/emacs/site-lisp/
+    mkdir -p $out/share/info
+    cp -v *.info* $out/share/info/
+  '';
+
+  # The test suite must run *after* copying the generated files to $out
+  # because "make check" implies "make clean".
+  doInstallCheck = true;
+  installCheckTarget = "check";
+
+  meta = {
+    homepage = https://github.com/haskell/haskell-mode;
+    description = "Haskell mode for Emacs";
+
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.peti ];
+    broken = true;  # no longer compiles and this package is obsolete anyway
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/header2/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/header2/default.nix
new file mode 100644
index 000000000000..171d8c6b16ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/header2/default.nix
@@ -0,0 +1,23 @@
+{ fetchurl, lib, melpaBuild }:
+
+melpaBuild {
+  pname = "header2";
+  version = "20170223.1949";
+
+  src = fetchurl {
+    url = "https://www.emacswiki.org/emacs/download/header2.el";
+    sha256 = "0cv74cfihr13jrgyqbj4x0na659djfyrhflxni6jdbgbysi4zf6k";
+    name = "header2.el";
+  };
+
+  recipe = fetchurl {
+    url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/header2";
+    sha256 = "1dg25krx3wxma2l5vb2ji7rpfp17qbrl62jyjpa52cjfsvyp6v06";
+    name = "header2";
+  };
+
+  meta = {
+    homepage = "https://melpa.org/#/header2";
+    license = lib.licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix
new file mode 100644
index 000000000000..b28d0ae24a34
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/helm-words/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation {
+  name = "helm-words-20150413";
+
+  src = fetchgit {
+    url = "https://github.com/pronobis/helm-words.git";
+    rev = "637aa3a7e9cfd34e0127472c5b1f993a4da26185";
+    sha256 = "19l8vysjygscr1nsddjz2yv0fjhbsswfq40rdny8zsmaa6qhpj35";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/hexrgb/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/hexrgb/default.nix
new file mode 100644
index 000000000000..8b9ebcd60262
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/hexrgb/default.nix
@@ -0,0 +1,23 @@
+{ fetchurl, lib, melpaBuild }:
+
+melpaBuild {
+  pname = "hexrgb";
+  version = "20170304.1017";
+
+  src = fetchurl {
+    url = "https://www.emacswiki.org/emacs/download/hexrgb.el";
+    sha256 = "1aj1fsc3wr8174xs45j2wc2mm6f8v6zs40xn0r4qisdw0plmsbsy";
+    name = "hexrgb.el";
+  };
+
+  recipe = fetchurl {
+    url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/hexrgb";
+    sha256 = "0mzqslrrf7sc262syj3ja7b7rnbg80dwf2p9bzxdrzx6b8vvsx06";
+    name = "hexrgb";
+  };
+
+  meta = {
+    homepage = "https://melpa.org/#/hexrgb";
+    license = lib.licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/hol_light/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/hol_light/default.nix
new file mode 100644
index 000000000000..c32669239f88
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/hol_light/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchsvn }:
+
+stdenv.mkDerivation rec {
+  name    = "hol_light-mode-${version}";
+  version = "73";
+
+  src = fetchsvn {
+    url = http://seanmcl-ocaml-lib.googlecode.com/svn/trunk/workshop/software/emacs;
+    rev = version;
+    sha256 = "3ca83098960439da149a47e1caff32536601559a77f04822be742a390c67feb7";
+  };
+
+  installPhase = ''
+    DEST=$out/share/emacs/site-lisp
+    mkdir -p $DEST
+    cp -a * $DEST
+  '';
+
+  meta = {
+    description = "A HOL Light mode for Emacs";
+    homepage    = http://www.cl.cam.ac.uk/~jrh13/hol-light/;
+    license     = stdenv.lib.licenses.gpl2Plus;
+    platforms   = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix
new file mode 100644
index 000000000000..150bd3593fdb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/hsc3/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, emacs }:
+
+# this package installs the emacs-mode which
+# resides in the hsc3 sources.
+
+let version = "0.15";
+
+in stdenv.mkDerivation {
+  name = "hsc3-mode-${version}";
+  src = fetchurl {
+    url = http://hackage.haskell.org/package/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/nixpkgs/pkgs/applications/editors/emacs-modes/htmlize/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/htmlize/default.nix
new file mode 100644
index 000000000000..c16f449c3a24
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/htmlize/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  name = "htmlize-1.47";
+
+  src = fetchFromGitHub {
+    owner = "emacsmirror";
+    repo = "htmlize";
+    rev = "release/1.47";
+    name = "htmlize-1.47-src";
+    sha256 = "1vkqxgirc82vc44g7xhhr041arf93yirjin3h144kjyfkgkplnkp";
+  };
+
+  installPhase = ''
+     mkdir -p $out/share/emacs/site-lisp
+     cp htmlize.el $out/share/emacs/site-lisp/
+  '';
+
+  meta = {
+    description = "Convert buffer text and decorations to HTML";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/icicles/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/icicles/default.nix
new file mode 100644
index 000000000000..884d1724ef8d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/icicles/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, emacs }:
+
+let
+  modules = [
+    { name = "icicles.el"; sha256 = "0wxak7wh0rrb3h77ay2vypbb53skcfbrv71xkajhax0w12q6zpaj"; }
+    { name = "icicles-chg.el"; sha256 = "0qavq9vy566l3qi9n8akrqjcgy8n6k0j8d7vsc7p1jhqvvq812gh"; }
+    { name = "icicles-cmd1.el"; sha256 = "0lgk6ngl9090iqvvw1c227q7p37mr73cc6ap3ky6b0nv3ql8rkyi"; }
+    { name = "icicles-cmd2.el"; sha256 = "15swxk7fr7wsqpf26xzbvyk12ikkvfcyh9w8wmnpc38dmpyq79rb"; }
+    { name = "icicles-doc1.el"; sha256 = "04j5qvj7pqnjh8h2y2sdgi7x55czdp9xn7yysr3bzcmr1rq5p4bz"; }
+    { name = "icicles-doc2.el"; sha256 = "1k8vfhi3fa4bzsxr074bw5q6srvq6z6hi61rzlxdw7pah6qf7hcz"; }
+    { name = "icicles-face.el"; sha256 = "1pvygqzmh6ag0zhfjn1vhdvlhxybwxzj22ah2pc0ls80dlywhi4l"; }
+    { name = "icicles-fn.el"; sha256 = "05v7sc2k2mjm1mbnlkpi01aaxnxnb40540y7g70dg534scjd7w36"; }
+    { name = "icicles-mac.el"; sha256 = "0nhbwswz6xz7q4g8flszgx12q4gi4nx1d3n4jgz6svr2kk2vmlb4"; }
+    { name = "icicles-mcmd.el"; sha256 = "05dniz6337v9r15w8r2zad0n2h6jlygzjp7vw75vvq8mds0acmia"; }
+    { name = "icicles-mode.el"; sha256 = "1xfv8nryf5y2gygg02naawzm5qhrkba3h84g43518r1xc6rgbpp6"; }
+    { name = "icicles-opt.el"; sha256 = "10n4p999ylkapirs75y5fh33lpiyx42i3ajzl2zjfwyr1zksg1iz"; }
+    { name = "icicles-var.el"; sha256 = "1r5gb01zg8nf2qryq9saxfpnzlymmppsk7w1g09lac35c87vh8yl"; }
+  ];
+
+  forAll = f: map f modules;
+in
+stdenv.mkDerivation rec {
+  version = "2018-07-02";
+  name = "icicles-${version}";
+
+  srcs = forAll ({name, sha256}: fetchurl { url = "http://www.emacswiki.org/emacs/download/${name}"; inherit sha256; });
+
+  buildInputs = [ emacs ];
+
+  unpackPhase = "for m in $srcs; do cp $m $(echo $m | cut -d- -f2-); done";
+
+  buildPhase = "emacs --batch -L . -f batch-byte-compile *.el";
+
+  installPhase = "mkdir -p $out/share/emacs/site-lisp/emacswiki/${name}/; cp *.el *.elc $out/share/emacs/site-lisp/emacswiki/${name}/";
+
+  meta = {
+    homepage = http://www.emacswiki.org/emacs/Icicles;
+    description = "Enhance Emacs minibuffer input with cycling and powerful completion";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms   = emacs.meta.platforms;
+    maintainers = with stdenv.lib.maintainers; [ scolobb ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix
new file mode 100644
index 000000000000..3cc8156337e0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/ido-ubiquitous/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, emacs }:
+
+let
+  version = "3.6-4-gb659bf8";
+in
+stdenv.mkDerivation {
+  name = "ido-ubiquitous-${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/nixpkgs/pkgs/applications/editors/emacs-modes/idris/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/idris/default.nix
new file mode 100644
index 000000000000..2e168b3abf7f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/idris/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "idris-mode";
+  version = "0.9.18";
+
+  src = fetchurl {
+    url = "https://github.com/idris-hackers/${pname}/archive/${version}.tar.gz";
+    sha256 = "06rw5lrxqqnw0kni3x9jm73x352d1vb683d41v8x3yzqfa2sxmwg";
+  };
+
+  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
+  '';
+
+  meta = {
+    description = "Emacs major mode for Idris";
+    homepage = https://github.com/idris-hackers/idris-mode;
+    license = stdenv.lib.licenses.gpl3;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/jabber/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/jabber/default.nix
new file mode 100644
index 000000000000..c0ddbc88cf27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/jabber/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, emacs }:
+stdenv.mkDerivation rec {
+  pname  = "emacs-jabber";
+  version = "0.8.0";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${name}.tar.bz2";
+    sha256 = "75e3b7853de4783b8ab8270dcbe6a1e4f576224f77f7463116532e11c6498c26";
+  };
+  buildInputs = [ emacs ];
+  meta = with stdenv.lib; {
+    description = "A Jabber client for Emacs";
+    longDescription = ''
+      jabber.el is a Jabber client for Emacs. It may seem strange to have a
+      chat client in an editor, but consider that chatting is, after all, just
+      a special case of text editing.
+    '';
+    homepage = http://emacs-jabber.sourceforge.net/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ astsmtl ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/jade/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/jade/default.nix
new file mode 100644
index 000000000000..925fa54c735f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/jade/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation {
+  name = "jade-mode-0-20120802";
+
+  src = fetchgit {
+    url = "https://github.com/brianc/jade-mode.git";
+    rev = "275ab149edb0f6bcfae6ac17ba456f3351191604";
+    sha256 = "3cd2bebcd66e59d60b8e5e538e65a8ffdfc9a53b86443090a284e8329d7cb09b";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -L . -f batch-byte-compile *.el
+  '';
+
+  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/jade-mode;
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/build-properties.patch b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/build-properties.patch
new file mode 100644
index 000000000000..d0a733b912e3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/build-properties.patch
@@ -0,0 +1,12 @@
+Make sure `build.properties' is honored.
+
+--- jde/build.xml
++++ jde/build.xml
+@@ -14,6 +14,7 @@
+   <property name="project.version" value="2.4.0"/>
+   <property name="config.dir" location="./config"/>
+ 
++  <property file="build.properties"/>
+ 
+   <!-- everything depends on this initialization target -->
+   <target name="init">
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/cedet-paths.patch b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/cedet-paths.patch
new file mode 100644
index 000000000000..8c866e2d1db3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/cedet-paths.patch
@@ -0,0 +1,18 @@
+JDE insists on seeing CEDET's source tree layout, with various
+sub-directories (`common', `eieio', etc.).  However, the installed CEDET
+is flat, with everything under ${cedet}/share/emacs/site-lisp.
+
+--- jde/config/build.el	(revision 90)
++++ jde/config/build.el	(working copy)
+@@ -50,10 +50,5 @@ PATHS are sub directories under CEDET-DI
+ (jde-make-autoloads-and-compile (expand-file-name "@{build.lisp.dir}")
+ 				"@{src.lisp.dir}"
+ 				"@{cedet.dir}"
+-				'("common"
+-				  "eieio"
+-				  "semantic"
+-				  "semantic/bovine"
+-				  "speedbar"
+-				  )
++				'(".")
+ 				"@{build.lisp.autoload.libname}")
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/default.nix
new file mode 100644
index 000000000000..306fe66823c8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/default.nix
@@ -0,0 +1,99 @@
+{ fetchsvn, stdenv, emacs, cedet, ant }:
+
+let
+  revision = "137";
+in
+  stdenv.mkDerivation rec {
+    name = "jdee-svn${revision}";
+
+    # Last release is too old, so use SVN.
+    # See http://www.emacswiki.org/emacs/JavaDevelopmentEnvironment .
+    src = fetchsvn {
+      url = "https://jdee.svn.sourceforge.net/svnroot/jdee/trunk/jdee";
+      rev = revision;
+      sha256 = "1z1y957glbqm7z3dhah9h4jysw3173pq1gpx5agfwcw614n516xz";
+    };
+
+    patchFlags = "-p1 --ignore-whitespace";
+
+    patches = [
+      ./build-properties.patch
+      ./cedet-paths.patch ./elib-avltree.patch
+      ./java-directory.patch
+    ];
+
+    configurePhase = ''
+      mkdir -p "dist"
+      cat > build.properties <<EOF
+        dist.lisp.dir = dist/share/emacs/site-lisp
+        dist.java.lib.dir = dist/share/java
+        dist.jar.jde.file = dist/share/java/jde.jar
+        dist.java.src.dir = dist/src/${name}/java
+        dist.doc.dir  dist/doc/${name}
+        prefix.dir = $out
+        cedet.dir = ${cedet}/share/emacs/site-lisp
+        elib.dir = /nowhere
+        build.bin.emacs = ${emacs}/bin/emacs
+      EOF
+
+      # Substitute variables, à la Autoconf.
+      for i in "lisp/"*.el
+      do
+        sed -i "$i" -e "s|@out@|$out|g ;
+                        s|@javadir@|$out/share/java|g ;
+                        s|@datadir@|$out/share/${name}|g"
+      done
+    '';
+
+    buildPhase = "ant dist";
+
+    installPhase = ''
+      ant install
+
+      mkdir -p "$out/share/${name}"
+      cp -rv java/bsh-commands "$out/share/${name}"
+
+      # Move everything that's not a JAR to $datadir.  This includes
+      # `sun_checks.xml', license files, etc.
+      cd "$out/share/java"
+      for i in *
+      do
+        if echo $i | grep -qv '\.jar''$'
+        then
+            mv -v "$i" "$out/share/${name}"
+        fi
+      done
+    '';
+
+    buildInputs = [ emacs ant ];
+    propagatedBuildInputs = [ cedet ];
+    propagatedUserEnvPkgs = propagatedBuildInputs; # FIXME: Not honored
+
+    meta = {
+      description = "JDEE, a Java development environment for Emacs";
+
+      longDescription = ''
+        The JDEE is a software package that interfaces Emacs to
+        command-line Java development tools (for example, JavaSoft's
+        JDK).  JDEE features include:
+
+        * JDEE menu with compile, run, debug, build, browse, project,
+          and help commands
+        * syntax coloring
+        * auto indentation
+        * compile error to source links
+        * source-level debugging
+        * source code browsing
+        * make file support
+        * automatic code generation
+        * Java source interpreter (Pat Neimeyer's BeanShell)
+      '';
+
+      license = stdenv.lib.licenses.gpl2Plus;
+
+      maintainers = [ ];
+      platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
+
+      broken = true;
+    };
+  }
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/elib-avltree.patch b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/elib-avltree.patch
new file mode 100644
index 000000000000..db891b1655e0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/elib-avltree.patch
@@ -0,0 +1,105 @@
+JDEE refers to the `avltree' module from GNU Elib, but GNU Elib
+no longer exists (see http://www.gnu.org/software/elib/).  This
+patch updates the module names to what's current in Emacs.
+
+--- jde/config/build.el
++++ jde/config/build.el
+@@ -33,11 +33,10 @@ compile.
+ CEDET-DIR is the cedet lisp code base directory (see PATHS).
+ 
+ PATHS are sub directories under CEDET-DIR we use to compile."
+-  (dolist (path (list dir lisp-src-dir elib-dir cedet-dir))
++  (dolist (path (list dir lisp-src-dir cedet-dir))
+     (if (not (file-directory-p path))
+ 	(error "Doesn't exist or not a directory: %s" path)))
+   (let ((autoload-buf (jde-make-autoloads dir autoload-libname)))
+-    (add-to-list 'load-path elib-dir t)
+     (dolist (path paths)
+       (add-to-list 'load-path (expand-file-name path cedet-dir) t))
+     (add-to-list 'load-path lisp-src-dir t)
+
+--- jde/lisp/jde-parse.el	(revision 90)
++++ jde/lisp/jde-parse.el	(working copy)
+@@ -24,7 +24,7 @@
+ 
+ (require 'semantic-sb)
+ (require 'semantic-ctxt)
+-(require 'avltree)
++(require 'avl-tree)
+ (require 'thingatpt)
+ (require 'eieio)
+ (require 'jde-imenu)                    ; All the imenu stuff is here now!
+@@ -869,7 +869,8 @@ in a method; otherwise, nil."
+ 
+ (defclass jde-avl-tree ()
+   ((tree        :initarg tree
+-	        :type list
++		;; FIXME: Emacs 23 `avl-tree' objects are not lists.
++	        ;;:type list
+ 	        :documentation
+ 	        "The tree")
+    (compare-fcn :initarg compare-fcn
+@@ -887,51 +887,51 @@ in a method; otherwise, nil."
+ 
+   (assert (typep  (oref this compare-fcn)  'function))
+ 
+-  (oset this  tree (avltree-create (oref this compare-fcn))))
++  (oset this  tree (avl-tree-create (oref this compare-fcn))))
+ 
+ (defmethod jde-avl-tree-add ((this jde-avl-tree) item)
+   "Inserts ITEM in this tree."
+-  (avltree-enter (oref this tree) item))
++  (avl-tree-enter (oref this tree) item))
+ 
+ (defmethod jde-avl-tree-delete ((this jde-avl-tree) item)
+   "Deletes ITEM from THIS tree."
+-  (avltree-delete (oref this tree) item))
++  (avl-tree-delete (oref this tree) item))
+ 
+ (defmethod jde-avl-tree-is-empty ((this jde-avl-tree))
+   "Return t if THIS tree is empty, otherwise return nil."
+-  (avltree-empty (oref this tree)))
++  (avl-tree-empty (oref this tree)))
+ 
+ (defmethod jde-avl-tree-find ((this jde-avl-tree) item)
+   "Return the element in THIS tree that matches item."
+-  (avltree-member (oref this tree) item))
++  (avl-tree-member (oref this tree) item))
+ 
+ (defmethod jde-avl-tree-map ((this jde-avl-tree) map-function)
+   "Applies MAP-FUNCTION to all elements of THIS tree."
+-  (avltree-map map-function (oref this tree)))
++  (avl-tree-map map-function (oref this tree)))
+ 
+ (defmethod jde-avl-tree-first ((this jde-avl-tree))
+   "Return the first item in THIS tree."
+-  (avltree-first (oref this tree)))
++  (avl-tree-first (oref this tree)))
+   
+ (defmethod jde-avl-tree-last ((this jde-avl-tree))
+   "Return the last item in THIS tree."
+-  (avltree-last (oref this tree)))
++  (avl-tree-last (oref this tree)))
+ 
+ (defmethod jde-avl-tree-copy ((this jde-avl-tree))
+   "Return a copy of THIS tree."
+-  (avltree-copy (oref this tree)))
++  (avl-tree-copy (oref this tree)))
+ 
+ (defmethod jde-avl-tree-flatten ((this jde-avl-tree))
+   "Return a sorted list containing all elements of THIS tree."
+-  (avltree-flatten (oref this tree)))
++  (avl-tree-flatten (oref this tree)))
+ 
+ (defmethod jde-avl-tree-size ((this jde-avl-tree))
+   "Return the number of elements in THIS tree."
+-  (avltree-size (oref this tree)))
++  (avl-tree-size (oref this tree)))
+ 
+ (defmethod jde-avl-tree-clear ((this jde-avl-tree))
+   "Delete all elements of THIS tree."
+-  (avltree-clear (oref this tree)))
++  (avl-tree-clear (oref this tree)))
+ 
+ (defclass jde-parse-method-map (jde-avl-tree) 
+   ()
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/java-directory.patch b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/java-directory.patch
new file mode 100644
index 000000000000..ec03749daa67
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/jdee/java-directory.patch
@@ -0,0 +1,82 @@
+Tell the elisp code about the right Java directory.
+
+--- jde/lisp/jde.el	(revision 90)
++++ jde/lisp/jde.el	(working copy)
+@@ -2448,17 +2448,14 @@ environment variable."
+ (defmethod initialize-instance ((this jde-bsh) &rest fields)
+   "Constructor for the JDEE BeanShell instance."
+   (call-next-method)
+-  (let* ((jde-java-directory
+-          (concat
+-           (jde-find-jde-data-directory)
+-           "java/")))
+-
+-    (oset this bsh-cmd-dir (expand-file-name "bsh-commands" jde-java-directory))
+-    (oset this checkstyle-jar  (expand-file-name "lib/checkstyle-all.jar" jde-java-directory))
+-    (oset this regexp-jar (expand-file-name "lib/jakarta-regexp.jar" jde-java-directory))
++  (let ((jde-java-directory "@out@/share/java"))
++
++    (oset this bsh-cmd-dir "@datadir@/bsh-commands")
++    (oset this checkstyle-jar  (expand-file-name "checkstyle-all.jar" jde-java-directory))
++    (oset this regexp-jar (expand-file-name "jakarta-regexp.jar" jde-java-directory))
+     (oset this jde-classes-dir (expand-file-name "classes" jde-java-directory))
+-    (oset this jde-jar (expand-file-name "lib/jde.jar" jde-java-directory))
+-    (oset this jar  (expand-file-name "lib/bsh.jar" jde-java-directory))
++    (oset this jde-jar (expand-file-name "jde.jar" jde-java-directory))
++    (oset this jar  (expand-file-name "bsh.jar" jde-java-directory))
+     (oset-default 'jde-bsh the-bsh this)))
+ 
+ (defmethod bsh-create-buffer ((this jde-bsh))
+
+--- jde/lisp/jde-checkstyle.el	(revision 90)
++++ jde/lisp/jde-checkstyle.el	(working copy)
+@@ -316,10 +316,7 @@ string describing how the compilation fi
+ 	 (vm-path (oref (jde-run-get-vm) :path))
+ 	 (source-file 
+ 	  (concat (file-name-nondirectory buffer-file-name)))
+-	 (jde-java-directory
+-	  (concat
+-	   (jde-find-jde-data-directory)
+-	   "java/"))
++	 (jde-java-directory "@out@/share/java")
+ 	 (args (append
+ 		(unless jde-checkstyle-expanded-properties-file
+ 		  (jde-checkstyle-get-property-args this))
+@@ -328,12 +325,12 @@ string describing how the compilation fi
+ 		      (if jde-checkstyle-classpath
+ 			  (jde-build-classpath jde-checkstyle-classpath)
+ 			(jde-normalize-path
+-			 (expand-file-name "lib/checkstyle-all.jar" jde-java-directory))))
++			 (expand-file-name "checkstyle-all.jar" jde-java-directory))))
+ 		(list jde-checkstyle-class)		
+ 		(list "-c" 
+ 		      (if jde-checkstyle-style
+ 			  (jde-normalize-path jde-checkstyle-style)
+-			(concat (jde-find-jde-data-directory) "java/lib/sun_checks.xml")))
++			"@datadir@/sun_checks.xml"))
+ 		(if jde-checkstyle-expanded-properties-file
+                     (list "-p" (jde-normalize-path jde-checkstyle-expanded-properties-file)))
+ 		(if jde-checkstyle-module-package-names-file
+
+--- jde/lisp/jde-dbs.el	(revision 90)
++++ jde/lisp/jde-dbs.el	(working copy)
+@@ -899,9 +899,7 @@ for the breakpoint."
+ 		  (jde-normalize-path 'jde-run-working-directory)
+ 		source-directory))	     
+              (vm (oref (jde-run-get-vm) :path))
+-	     (jde-java-directory
+-	      (expand-file-name "java"
+-	       (jde-find-jde-data-directory)))
++	     (jde-java-directory "@out@/share/java")
+ 	     (vm-args 
+ 		(let (args)
+ 		  (setq args 
+@@ -912,7 +910,7 @@ for the breakpoint."
+ 			  (jde-build-classpath
+ 			       (list
+ 				 (expand-file-name 
+-				  (if jde-bug-debug "classes" "lib/jde.jar")
++				  (if jde-bug-debug "classes" "jde.jar")
+ 				  jde-java-directory)
+ 				 (if (jde-bug-vm-includes-jpda-p)
+                                    (jde-get-tools-jar)
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/js2/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/js2/default.nix
new file mode 100644
index 000000000000..bc94828ec51d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/js2/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation {
+  name = "js2-mode-0-20141118";
+
+  src = fetchgit {
+    url = "git://github.com/mooz/js2-mode.git";
+    rev = "3abcd90ddc2f446ddf0fb874dd79ba870c26ad2d";
+    sha256 = "0sh9ax2w0ydhjjn4vnwbgy3926p7ad6h6nmsnm0a3zlldj9a4vwn";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -f batch-byte-compile js2-mode.el
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp js2-mode.el js2-mode.elc $out/share/emacs/site-lisp/
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/let-alist/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/let-alist/default.nix
new file mode 100644
index 000000000000..f6fee846f920
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/let-alist/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "let-alist-1.0.3";
+
+  src = fetchurl {
+    url = "https://elpa.gnu.org/packages/let-alist-1.0.3.el";
+    sha256 = "12n1cmjc7hzyy0jmsdxqz1hqzg4ri4nvvi0p9mw1d6v44xzfm0mx";
+  };
+
+  buildInputs = [ emacs ];
+
+  unpackPhase = "cp -v ${src} let-alist.el";
+  buildPhase = "emacs --batch -f batch-byte-compile let-alist.el";
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp
+    mv -v *.el *.elc $out/share/emacs/site-lisp/
+  '';
+
+  meta = {
+    homepage = https://elpa.gnu.org/packages/let-alist.html;
+    description = "Easily let-bind values of an assoc-list by their names";
+    license = stdenv.lib.licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/lib-requires/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/lib-requires/default.nix
new file mode 100644
index 000000000000..84dae10127e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/lib-requires/default.nix
@@ -0,0 +1,23 @@
+{ fetchurl, lib, melpaBuild }:
+
+melpaBuild {
+  pname = "lib-requires";
+  version = "20170307.757";
+
+  src = fetchurl {
+    url = "https://www.emacswiki.org/emacs/download/lib-requires.el";
+    sha256 = "04lrkdjrhsgg7vgvw1mkr9a5m9xlyvjvnj2aj6w453bgmnp1mbvv";
+    name = "lib-requires.el";
+  };
+
+  recipe = fetchurl {
+    url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/lib-requires";
+    sha256 = "1g22jh56z8rnq0h80wj10gs38yig1rk9xmk3kmhmm5mm6b14iwdx";
+    name = "lib-requires";
+  };
+
+  meta = {
+    homepage = "https://melpa.org/#/lib-requires";
+    license = lib.licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/logito/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/logito/default.nix
new file mode 100644
index 000000000000..c324e395fa9e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/logito/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "logito-0.1";
+
+  src = fetchgit {
+    url = "https://github.com/sigma/logito.git";
+    rev = "824acb89d2cc18cb47281a4fbddd81ad244a2052";
+    sha256 = "b9a7433417eafc5bc158f63dddf559b2044368eb3061f0264169de319c68fe4a";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -f batch-byte-compile logito.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install logito.el logito.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Tiny logging framework for Emacs";
+    homepage = https://github.com/sigma/logito;
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix
new file mode 100644
index 000000000000..b75c51d3bd74
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "lorem-ipsum-0.1";
+
+  src = fetchurl {
+    url = "http://www.emacswiki.org/emacs/download/lorem-ipsum.el";
+    sha256 = "122d0z3xqfaikgk34l7bh989mfxddin2ljinysp2lqw8djfi7jsl";
+  };
+
+  phases = [ "buildPhase" "installPhase"];
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    cp $src lorem-ipsum.el
+    emacs --batch -f batch-byte-compile lorem-ipsum.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install lorem-ipsum.el lorem-ipsum.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Insert dummy pseudo Latin text for Emacs";
+    homepage = http://www.emacswiki.org/emacs/LoremIpsum;
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/markdown-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/markdown-mode/default.nix
new file mode 100644
index 000000000000..7176b289b8b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/markdown-mode/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, emacs }:
+
+let
+  version = "2.0-82-gfe30ef7";
+in
+stdenv.mkDerivation {
+  name = "markdown-mode-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "defunkt";
+    repo   = "markdown-mode";
+    rev    = "v${version}";
+    sha256 = "14a6r05j0g2ppq2q4kd14qyxwr6yv5jwndavbwzkmp6qhmm9k8nz";
+  };
+
+  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
+  '';
+
+  meta.license = stdenv.lib.licenses.gpl3Plus;
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/maude/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/maude/default.nix
new file mode 100644
index 000000000000..9b737a938a12
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/maude/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation {
+  name = "maude-mode-0.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/maude-mode/maude-mode-0.2.tar.gz";
+    sha256 = "19jdd7la0bxxxnnq4ryckf63jykg0r3v92z126x6djaigi3xn1yx";
+  };
+
+  buildInputs = [emacs];
+  configureFlags = [ "--with-lispdir=$$out/share/emacs/site-lisp" ];
+
+  meta = {
+    description = "Emacs mode for the programming language Maude";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.peti ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-generated.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-generated.nix
new file mode 100644
index 000000000000..128e34479a74
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-generated.nix
@@ -0,0 +1,106232 @@
+{ callPackage }:
+  {
+    _0blayout = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "_0blayout";
+        ename = "0blayout";
+        version = "20161007.2307";
+        src = fetchFromGitHub {
+          owner = "etu";
+          repo = "0blayout-mode";
+          rev = "4bc6ff06abf298270abb7ef40db605e08caa9287";
+          sha256 = "1ddzifckgac4k6invpvvad1avdrly0k5n0jnmc738xxnpc3fk6h6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/0blayout";
+          sha256 = "027k85h34998i8vmbg2hi4q1m4f7jfva5jm38k0g9m1db700gk92";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/0blayout";
+          license = lib.licenses.free;
+        };
+      }) {};
+    _0xc = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "_0xc";
+        ename = "0xc";
+        version = "20170125.1953";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "0xc";
+          rev = "31890af88234e4e098f1c340a5990515b934c7f7";
+          sha256 = "1yp3wm0h6rkzxw950fnhw310npn56s9vl294sw8nyij85s2hw5qk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/0xc";
+          sha256 = "0lxcz1x1dymsh9idhkn7jn8vphr724d6sb88a4g55x2m1rlmzg3w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/0xc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    _2048-game = callPackage ({ fetchhg
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "_2048-game";
+        ename = "2048-game";
+        version = "20151026.1233";
+        src = fetchhg {
+          url = "https://bitbucket.com/zck/2048.el";
+          rev = "ea6c3bce8ac1";
+          sha256 = "1p9qn9n8mfb4z62h1s94mlg0vshpzafbhsxgzvx78sqlf6bfc80l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/2048-game";
+          sha256 = "0z7x9bnyi3qlq7l0fskb61i6yr9gm7w7wplqd28wz8p1j5yw8aa0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/2048-game";
+          license = lib.licenses.free;
+        };
+      }) {};
+    _4clojure = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , json ? null
+                             , lib
+                             , melpaBuild
+                             , request }:
+      melpaBuild {
+        pname = "_4clojure";
+        ename = "4clojure";
+        version = "20131014.1507";
+        src = fetchFromGitHub {
+          owner = "losingkeys";
+          repo = "4clojure.el";
+          rev = "45f1aa34b8c9688885deede4fac652bd61a4b70d";
+          sha256 = "14klf786m0i5ij70pnyvsirafbv8giby481vfxlfbffsyf51afp1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/4clojure";
+          sha256 = "09bmdxkkp676sn1sbbly44k99i47w83yznq950nkxv6x8753ifgk";
+          name = "recipe";
+        };
+        packageRequires = [ json request ];
+        meta = {
+          homepage = "https://melpa.org/#/4clojure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    a = callPackage ({ emacs
+                     , fetchFromGitHub
+                     , fetchurl
+                     , lib
+                     , melpaBuild }:
+      melpaBuild {
+        pname = "a";
+        ename = "a";
+        version = "20180907.253";
+        src = fetchFromGitHub {
+          owner = "plexus";
+          repo = "a.el";
+          rev = "8583685c32069a73ccae0100e990e7b39c901737";
+          sha256 = "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/a";
+          sha256 = "1xqja47iw1c78kiv4854z47iblvvzrc1l35zjdhmhkh9hh10z886";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/a";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aa-edit-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , navi2ch }:
+      melpaBuild {
+        pname = "aa-edit-mode";
+        ename = "aa-edit-mode";
+        version = "20170118.1920";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "aa-edit-mode";
+          rev = "1dd801225b7ad3c23ad09698f5e77f0df7012a65";
+          sha256 = "17kxpyfprdyj96c4ivv8bxwyls69cgh2r3gwrgj6bwinbiszh9rr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aa-edit-mode";
+          sha256 = "00b99ik04xx4b2a1cm1z8dl42hjnb5r32qypjyyx8924n1dhxzgn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs navi2ch ];
+        meta = {
+          homepage = "https://melpa.org/#/aa-edit-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    abc-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "abc-mode";
+        ename = "abc-mode";
+        version = "20171020.319";
+        src = fetchFromGitHub {
+          owner = "mkjunker";
+          repo = "abc-mode";
+          rev = "238deedeb6c90df168045552eb463cfae9e1f88f";
+          sha256 = "1wkjdvsav2x9zsl25h87iyfl6r0md86i2gmxqhvf63acxqgrgb2q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/abc-mode";
+          sha256 = "0qf5lbszyscmagiqhc0d05vzkhdky7ini4w33z1h3j5417sscrcx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/abc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    abgaben = callPackage ({ f
+                           , fetchFromGitLab
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , pdf-tools
+                           , s }:
+      melpaBuild {
+        pname = "abgaben";
+        ename = "abgaben";
+        version = "20171118.2246";
+        src = fetchFromGitLab {
+          owner = "akoehn";
+          repo = "abgaben";
+          rev = "966bfcfdd3b2e288576ffe363d676ad282902090";
+          sha256 = "0zmzn8rdn1q0dfql3awivhrxd1nrvqr6mb8gv2ynaldyidgsb487";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/abgaben";
+          sha256 = "1xywghyp6aahzin1ygwzqfg9640dliycl4g02jz3gpix8hd3g8gy";
+          name = "recipe";
+        };
+        packageRequires = [ f pdf-tools s ];
+        meta = {
+          homepage = "https://melpa.org/#/abgaben";
+          license = lib.licenses.free;
+        };
+      }) {};
+    abl-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "abl-mode";
+        ename = "abl-mode";
+        version = "20181031.130";
+        src = fetchFromGitHub {
+          owner = "afroisalreadyinu";
+          repo = "abl-mode";
+          rev = "b4c65b5a60a83200fe06f6caa77073316e5a4228";
+          sha256 = "1farkn2zap0aww3nfrby4hkp7a2442sqn5g77w1krsxl9wf71fc3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/abl-mode";
+          sha256 = "0h25lc87pa8irgxflnmnmkr9dcv4kz841nfc45fcz4awrn75kkzb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/abl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    abyss-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "abyss-theme";
+        ename = "abyss-theme";
+        version = "20170808.645";
+        src = fetchFromGitHub {
+          owner = "mgrbyte";
+          repo = "emacs-abyss-theme";
+          rev = "18791c6e8d9cc2b4815c9f08627a2e94fc0eeb14";
+          sha256 = "07z0djv7h3yrv4iw9n633j6dxzxb4nnzijsqkmz22ik6fbwxg5mh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/abyss-theme";
+          sha256 = "0ckrgfd7fjls6g510v8fqpkd0fd18lr0spg3lf5s88gky8ihdg6c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/abyss-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-alchemist = callPackage ({ alchemist
+                                , auto-complete
+                                , cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ac-alchemist";
+        ename = "ac-alchemist";
+        version = "20150907.2356";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-alchemist";
+          rev = "b1891c3d41aed83f61d78a609ea97be5cc2758d9";
+          sha256 = "19msfx3f3px1maj41bzh139s6sv2pjk9vm3bphn7758fqhzyin0f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-alchemist";
+          sha256 = "02ll3hcixgdb8zyszn78714gy1h2q0vkhpbnwap9302mr2racwl0";
+          name = "recipe";
+        };
+        packageRequires = [ alchemist auto-complete cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-alchemist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-c-headers = callPackage ({ auto-complete
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ac-c-headers";
+        ename = "ac-c-headers";
+        version = "20151021.134";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "ac-c-headers";
+          rev = "de13a1d35b311e6601556d8ef163de102057deea";
+          sha256 = "1z6rj15p5gjv0jwnnck8789n9csf1pwxfvsz37graihgfy2khj0y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-c-headers";
+          sha256 = "1cq5rz2w79bj185va7y13x7bciihrpsvyxwk6msmcxb4g86s9phv";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-c-headers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-capf = callPackage ({ auto-complete
+                           , cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ac-capf";
+        ename = "ac-capf";
+        version = "20151031.1917";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-capf";
+          rev = "17571dba0a8f98111f2ab758e9bea285b263781b";
+          sha256 = "0nyq34yq4jcp3p30ygma3iz1h0q551p33792byj76pa5ps09g1da";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-capf";
+          sha256 = "1drgk5iz2wp3rxzd39pj0n4cfmm5z8zqlp50jw5z7ffbbg35qxbm";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-capf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-cider = callPackage ({ auto-complete
+                            , cider
+                            , cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ac-cider";
+        ename = "ac-cider";
+        version = "20161006.19";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "ac-cider";
+          rev = "d8670939bbf88079263d5ace2b8bc04cf325be36";
+          sha256 = "01g1h2j0rfih8v0yvvr5gjh3abcj2mz3jmfbis8a60ivmngab732";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-cider";
+          sha256 = "1dszpb706h34miq2bxqyq1ycbran5ax36vcniwp8vvhgcjsw5sz6";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cider cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-cider";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-clang = callPackage ({ auto-complete
+                            , cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , pos-tip
+                            , yasnippet }:
+      melpaBuild {
+        pname = "ac-clang";
+        ename = "ac-clang";
+        version = "20180709.2246";
+        src = fetchFromGitHub {
+          owner = "yaruopooner";
+          repo = "ac-clang";
+          rev = "3294b968eb1a8317049190940193f9da47c085ef";
+          sha256 = "160hda911vsc2zcs56560cpv7kj0966vjzwmc0md6fkz3wrj7w0n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-clang";
+          sha256 = "070s06xhkzaqfc3j8c4i44rks6gn8z66lwd54j17p8d91x3qjpr4";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib emacs pos-tip yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-clang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-dcd = callPackage ({ auto-complete
+                          , fetchFromGitHub
+                          , fetchurl
+                          , flycheck-dmd-dub
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ac-dcd";
+        ename = "ac-dcd";
+        version = "20170323.601";
+        src = fetchFromGitHub {
+          owner = "atilaneves";
+          repo = "ac-dcd";
+          rev = "1614aa624252e3445b0392c8a9b7197084f3e422";
+          sha256 = "02slswlcjh1rjc9hglvbizhvwp57xcnbhs8cmlcayw0yjwp6mnvb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-dcd";
+          sha256 = "086jp9c6bilc361n1hscza3pbhgvqlq944z7cil2jm1kicsf8s7r";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete flycheck-dmd-dub ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-dcd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-emacs-eclim = callPackage ({ auto-complete
+                                  , eclim
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ac-emacs-eclim";
+        ename = "ac-emacs-eclim";
+        version = "20180911.421";
+        src = fetchFromGitHub {
+          owner = "emacs-eclim";
+          repo = "emacs-eclim";
+          rev = "edff7e0e30c87036710d88fb0b7a4644750858e8";
+          sha256 = "0ywifqdhv7cibgl42m7i15widna9i1dk5kl5rglyql7hy05nk9gj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-emacs-eclim";
+          sha256 = "0bkh7x6zj5drdvm9ji4vwqdxv7limd9a1idy8lsg0lcca3rjq3s5";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete eclim ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-emacs-eclim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-emmet = callPackage ({ auto-complete
+                            , emmet-mode
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ac-emmet";
+        ename = "ac-emmet";
+        version = "20131015.858";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "ac-emmet";
+          rev = "88f24876ee3b759978d4614a758280b5d512d543";
+          sha256 = "1lkhqmfkjga7qi4r1m7mjax3pyf9m6minsn57cbzm2z2kvkhq22g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-emmet";
+          sha256 = "09ycjllfpdgqaf5iis5bkkhal1vxvl3qkxrn2759p67s97c49f3x";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete emmet-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-emmet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-emoji = callPackage ({ auto-complete
+                            , cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ac-emoji";
+        ename = "ac-emoji";
+        version = "20150823.11";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-emoji";
+          rev = "53677f754929ead403ccde64b714ebb6b8fc808e";
+          sha256 = "0cc3jpc4pihbyznyzvf6i3xwc2x78gb5m36ba9gkvxhabsljnlfg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-emoji";
+          sha256 = "0msh3dh89jzk6hxva34gp9d5pazchgdknxjbi72z26rss9bkp1mw";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-emoji";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-etags = callPackage ({ auto-complete
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ac-etags";
+        ename = "ac-etags";
+        version = "20161001.807";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-etags";
+          rev = "7983e631c226fe0fa53af3b2d56bf4eca3d785ce";
+          sha256 = "1vvgcy5hybrip4jn4pj9r3fahr6rc70k28w5aw951h0x7g7laipr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-etags";
+          sha256 = "0ag49k9izrs4ikzac9lifvvwhcn5n89lr2vb20pngsvg1czdyhzb";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-etags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-geiser = callPackage ({ auto-complete
+                             , fetchFromGitHub
+                             , fetchurl
+                             , geiser
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ac-geiser";
+        ename = "ac-geiser";
+        version = "20130928.2347";
+        src = fetchFromGitHub {
+          owner = "xiaohanyu";
+          repo = "ac-geiser";
+          rev = "0e2e36532336f27e3dc3b01fff55ad1a4329817d";
+          sha256 = "02ifz25rq64z0ifxs52aqdz0iz4mi6xvj88hcn3aakkmsj749vvn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-geiser";
+          sha256 = "0v558qz1mp8b1bgk8kgdk5sx5mpd353mw77n5b0pw4b2ikzpz2mx";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete geiser ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-geiser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-haskell-process = callPackage ({ auto-complete
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , haskell-mode
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "ac-haskell-process";
+        ename = "ac-haskell-process";
+        version = "20150423.702";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ac-haskell-process";
+          rev = "0362d4323511107ec70e7165cb612f3ab01b712f";
+          sha256 = "0m33v9iy3y37sicfmpx7kvmn8v1a8k6cs7d0v9v5k93p4d5ila41";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-haskell-process";
+          sha256 = "0kv4z850kv03wiax1flnrp6sgqja25j23l719w7rkr7ck110q8rw";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-haskell-process";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-helm = callPackage ({ auto-complete
+                           , cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild
+                           , popup }:
+      melpaBuild {
+        pname = "ac-helm";
+        ename = "ac-helm";
+        version = "20160318.1933";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "ac-helm";
+          rev = "baf2b1e04bcffa835084389c0fab415f26efbf32";
+          sha256 = "1fyikdwn0gzng7pbmfg7zb7jphjv228776vsjc12j7g1aqz92n4l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-helm";
+          sha256 = "16ajxlhcah5zbvywpc6l4l1arr308gjpgvdx6l1nrv2zvpckhlwq";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib helm popup ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-html = callPackage ({ auto-complete
+                           , dash
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "ac-html";
+        ename = "ac-html";
+        version = "20151005.31";
+        src = fetchFromGitHub {
+          owner = "zhangkaiyulw";
+          repo = "ac-html";
+          rev = "3de94a46d8cb93e8e62a1b6bdebbde4d65dc7cc2";
+          sha256 = "1sip87j4wvlf9pfnpr0zyyhys1dd9smh6hy3zs08ihbdh98krgs5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-html";
+          sha256 = "1vidmvylwwvraf8k63dvxv47ism49n6pp0f38l5rl4iaznhkdr84";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-html-angular = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , web-completion-data }:
+      melpaBuild {
+        pname = "ac-html-angular";
+        ename = "ac-html-angular";
+        version = "20151224.2319";
+        src = fetchFromGitHub {
+          owner = "osv";
+          repo = "ac-html-angular";
+          rev = "6bafe09afe03112ca4183d58461c1a6f6c2b3c67";
+          sha256 = "1v3ia439h4n2i204n0sazzbwwm0l5k6j31gq58iv2rqrq2ysikny";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-html-angular";
+          sha256 = "05rbxf5kbr4jlskrhvfvhf82qvb55zl5cb6z1ymfh9l3h9j9xk3s";
+          name = "recipe";
+        };
+        packageRequires = [ web-completion-data ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-html-angular";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-html-bootstrap = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , web-completion-data }:
+      melpaBuild {
+        pname = "ac-html-bootstrap";
+        ename = "ac-html-bootstrap";
+        version = "20160302.901";
+        src = fetchFromGitHub {
+          owner = "osv";
+          repo = "ac-html-bootstrap";
+          rev = "481e6e441cd566554ce71cd8cb28c9e7ebb1c24b";
+          sha256 = "0ry398awbsyswc87v275x4mdyv64kr0s647y6nagqg1h3n3jhvsq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-html-bootstrap";
+          sha256 = "0z71m6xws0k9smhsswaivpikr64mv0wh6klnmi5cwhwcqas6kdi1";
+          name = "recipe";
+        };
+        packageRequires = [ web-completion-data ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-html-bootstrap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-html-csswatcher = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , web-completion-data }:
+      melpaBuild {
+        pname = "ac-html-csswatcher";
+        ename = "ac-html-csswatcher";
+        version = "20151208.1313";
+        src = fetchFromGitHub {
+          owner = "osv";
+          repo = "ac-html-csswatcher";
+          rev = "b0f3e7e1a3fe49e88b6eb6432377232fc715f221";
+          sha256 = "0swbw62zh5rjjf73pvmp8brrrmk6bp061k793z4z83v7ic0cicrr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-html-csswatcher";
+          sha256 = "0jb9dnm2lxadrxssf0rjqw8yvvskcq4hys8c21shjyj3gkvwbfqn";
+          name = "recipe";
+        };
+        packageRequires = [ web-completion-data ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-html-csswatcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-inf-ruby = callPackage ({ auto-complete
+                               , fetchFromGitHub
+                               , fetchurl
+                               , inf-ruby
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ac-inf-ruby";
+        ename = "ac-inf-ruby";
+        version = "20131115.350";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ac-inf-ruby";
+          rev = "094d86761088ab0b16ddac75cf57eeb9c2afbee2";
+          sha256 = "0cabg054mpxrxaw95pfh7bv7rwpfpjhyqg8ghgd8j2vvj95p1m2z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-inf-ruby";
+          sha256 = "04jclf0yxz78x1fsaf5sh1p466947nqrcx337kyhqn0nkj3hplqr";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-inf-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-ispell = callPackage ({ auto-complete
+                             , cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ac-ispell";
+        ename = "ac-ispell";
+        version = "20151031.1926";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-ispell";
+          rev = "7e054793fe77f5fa1ced59d97da9c31df9807c48";
+          sha256 = "1jidg08jz6np7jfg11qzijmsrbv1i3kdsqmmnz1xlybj1933xjvq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-ispell";
+          sha256 = "1vsy2qjh60n5lavivpqhhcpg5pk8zz2r0wy1sb65capn841zdi67";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-ispell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-js2 = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , js2-mode
+                          , lib
+                          , melpaBuild
+                          , skewer-mode }:
+      melpaBuild {
+        pname = "ac-js2";
+        ename = "ac-js2";
+        version = "20140906.442";
+        src = fetchFromGitHub {
+          owner = "ScottyB";
+          repo = "ac-js2";
+          rev = "721c482e1d4a08f4a29a74437257d573e8f69969";
+          sha256 = "0yn9333rjs2pzb1wk1japclsqagdcl28j0yjl3q5b70g5gi5vx7k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-js2";
+          sha256 = "0gcr0xdi89nj3854v2z3nndfgazmcdzmd6wdndl0i4s7pdfl96fa";
+          name = "recipe";
+        };
+        packageRequires = [ js2-mode skewer-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-js2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-math = callPackage ({ auto-complete
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , math-symbol-lists
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ac-math";
+        ename = "ac-math";
+        version = "20141116.1327";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "ac-math";
+          rev = "89478063dead68894f0d27687b63896633048c6f";
+          sha256 = "0mzbc3ninsz970xly90zbxlxqy4b0s8yrp1mlj8jzpk5dzlc4g51";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-math";
+          sha256 = "02c821zabxp9qkwx252pxjmssdbmas0iwanw09r03bmiby9d4nsl";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete math-symbol-lists ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-math";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-mozc = callPackage ({ auto-complete
+                           , cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , mozc }:
+      melpaBuild {
+        pname = "ac-mozc";
+        ename = "ac-mozc";
+        version = "20150227.819";
+        src = fetchFromGitHub {
+          owner = "igjit";
+          repo = "ac-mozc";
+          rev = "4c6c8be4701010d9362184437c0f783e0335c631";
+          sha256 = "19cb8kq8gmrplkxil22ahvbyq5cng1l2vh2lrfiyqpjsap7zfjz5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-mozc";
+          sha256 = "1v3iiid8cq50i076q98ycks9m827xzncgxqwqs2rqhab0ncy3h0f";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib mozc ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-mozc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-octave = callPackage ({ auto-complete
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ac-octave";
+        ename = "ac-octave";
+        version = "20180405.2034";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "ac-octave";
+          rev = "fe0f931f2024f43de3c4fff4b1ace672413adeae";
+          sha256 = "1yj5fapbp79k88k1cxrmmf91fb0j6s4s7f2dhk2afcf7z83mqkwb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-octave";
+          sha256 = "1g5s4dk1rcgkjn17jfw6g201pw0vfhqcx1nhigmnizpnzy0man9z";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-octave";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-php = callPackage ({ ac-php-core
+                          , auto-complete
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , yasnippet }:
+      melpaBuild {
+        pname = "ac-php";
+        ename = "ac-php";
+        version = "20171201.134";
+        src = fetchFromGitHub {
+          owner = "xcwen";
+          repo = "ac-php";
+          rev = "f489da3ceb04ff6efd9da5c5f56d71f49966e1d4";
+          sha256 = "081v4srqzzwd8v07z013m756qrxll5fpzwf8km0686nc5gcg6q9l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-php";
+          sha256 = "1wqwwgdln98snlq5msdx94b7985krvqfn264hxs1h94r85kgn1ba";
+          name = "recipe";
+        };
+        packageRequires = [ ac-php-core auto-complete yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-php";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-php-core = callPackage ({ dash
+                               , emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , php-mode
+                               , popup
+                               , s
+                               , xcscope }:
+      melpaBuild {
+        pname = "ac-php-core";
+        ename = "ac-php-core";
+        version = "20181115.642";
+        src = fetchFromGitHub {
+          owner = "xcwen";
+          repo = "ac-php";
+          rev = "1883d3178ded71534a7e93189bc789d65e4a000e";
+          sha256 = "0z1sshcjcviniyizim6z9vbk3b5bfix6im3216vl3pa19x9c4i1y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-php-core";
+          sha256 = "0vk3jsxb7dgk5a6pap3bdqkqwpszil0rck1c3y0wyxrlj2y1jcvn";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f php-mode popup s xcscope ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-php-core";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-racer = callPackage ({ auto-complete
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , racer }:
+      melpaBuild {
+        pname = "ac-racer";
+        ename = "ac-racer";
+        version = "20170114.9";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-racer";
+          rev = "4408c2d652dec0432e20c05e001db8222d778c6b";
+          sha256 = "01154kqzh3pjy57vxhv27nm69p85a1fwl7r95c7pzmzxgxigfz1p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-racer";
+          sha256 = "1vkvh8y3ckvzvqxj4i2k6jqri94121wbfjziybli74qba8dca4yp";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete emacs racer ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-racer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-rtags = callPackage ({ auto-complete
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , rtags }:
+      melpaBuild {
+        pname = "ac-rtags";
+        ename = "ac-rtags";
+        version = "20181117.1149";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "5e51faa79016b3302d8037e13329a4320de524f5";
+          sha256 = "0qw6l96k2hxv3jvjw3nvas7m73jqj7mcchawzss8by92l61n0cx7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-rtags";
+          sha256 = "1w9v32di9135mm598c4506gxf0xr5jyz8dyd9dhga5d60q7g9641";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-skk = callPackage ({ auto-complete
+                          , cl-lib ? null
+                          , ddskk
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , tinysegmenter }:
+      melpaBuild {
+        pname = "ac-skk";
+        ename = "ac-skk";
+        version = "20141229.1719";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "ac-skk.el";
+          rev = "d25a265930430d080329789fb253d786c01dfa24";
+          sha256 = "1nvz0jfz4x99xc5ywspl8fdpyqns5zd0j7i4bwzlwplmy3qakjwm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-skk";
+          sha256 = "0iycyfgv8v15ygngvyx66m3w3sv8p9h6q6j1hbpzwd8azl8fzj5z";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib ddskk tinysegmenter ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-skk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-slime = callPackage ({ auto-complete
+                            , cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , slime }:
+      melpaBuild {
+        pname = "ac-slime";
+        ename = "ac-slime";
+        version = "20171027.1400";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ac-slime";
+          rev = "a91f664510d3da24b02e87e4aa59d049483a6529";
+          sha256 = "04qjj5jw7yp49nbb0p70cxlad8m4nq5mhil4k6pav74nkgjrldcl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-slime";
+          sha256 = "0mk3k1lcbqa16xvsbgk28x09vzqyaidqaqpq934xdbrwhdgwgckg";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib slime ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-slime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-sly = callPackage ({ auto-complete
+                          , cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , sly }:
+      melpaBuild {
+        pname = "ac-sly";
+        ename = "ac-sly";
+        version = "20170728.327";
+        src = fetchFromGitHub {
+          owner = "qoocku";
+          repo = "ac-sly";
+          rev = "bf69c687c4ecf1994349d20c182e9b567399912e";
+          sha256 = "09g6v2yp3wl566488zsb79lklqpai9dgz6xwv1y5h6zkghxvkhpy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-sly";
+          sha256 = "1ng81b5f8w2s9mm9s7h5kwyx8fdwndnlsbzx50slmqyaz2ad15mx";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib sly ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-sly";
+          license = lib.licenses.free;
+        };
+      }) {};
+    academic-phrases = callPackage ({ dash
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , ht
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "academic-phrases";
+        ename = "academic-phrases";
+        version = "20180723.321";
+        src = fetchFromGitHub {
+          owner = "nashamri";
+          repo = "academic-phrases";
+          rev = "25d9cf67feac6359cb213f061735e2679c84187f";
+          sha256 = "0m32jpg6n0azz2f4y57y92zfvzm54ankx5cm06gli2zw2v1218fw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/academic-phrases";
+          sha256 = "18y6lff7xwg6hczwgavwp32848gnlmc30afra9x7m8wmdddps1bh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/academic-phrases";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-flyspell = callPackage ({ avy
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ace-flyspell";
+        ename = "ace-flyspell";
+        version = "20170308.2109";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "ace-flyspell";
+          rev = "538d4f8508d305262ba0228dfe7c819fb65b53c9";
+          sha256 = "1yplf5klgjjzx3cb1ihqb9f9cwn898l0vhasc3cwiqz6ldyq2na8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-flyspell";
+          sha256 = "1zgywb90cg64nllbbk0x9ipm6znyc5yh7vkajrrnw06r5vabyp9y";
+          name = "recipe";
+        };
+        packageRequires = [ avy ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-flyspell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-isearch = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ace-isearch";
+        ename = "ace-isearch";
+        version = "20170506.12";
+        src = fetchFromGitHub {
+          owner = "tam17aki";
+          repo = "ace-isearch";
+          rev = "0502f95e333c8059a678745e5a112542965661d1";
+          sha256 = "1gzvhxkx7dl7wh2fkkiq9vplfhrqyxl0vzlzf617j4gggjbkpzps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-isearch";
+          sha256 = "0n8qf08z9n8c2sp5ks29nxcfks5mil1jj6wq348apda8safk36hm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-isearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-jump-buffer = callPackage ({ avy
+                                   , dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ace-jump-buffer";
+        ename = "ace-jump-buffer";
+        version = "20171031.850";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "ace-jump-buffer";
+          rev = "ae5be0415c823f7bb66833aa4af2180d4cf99cef";
+          sha256 = "0zg4x5faxkp0gnjq7209hn74qkzmk8k7wbr7k8wxpssjbnmxkvd1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-jump-buffer";
+          sha256 = "0hkxa0ps0v1hwmjafqbnyr6rc4s0w95igk8y3w53asl7f5sj5mpi";
+          name = "recipe";
+        };
+        packageRequires = [ avy dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-jump-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-jump-helm-line = callPackage ({ avy
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "ace-jump-helm-line";
+        ename = "ace-jump-helm-line";
+        version = "20160918.1136";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "ace-jump-helm-line";
+          rev = "1483055255df3f8ae349f7520f05b1e43ea3ed37";
+          sha256 = "191a2g1if1jliikbxkpwmvlp4v1sp541j71xrlymili8ygm0idq5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-jump-helm-line";
+          sha256 = "04q8wh6jskvbiq6y2xsp2ir23vgz5zw09rm127sgiqrmn0jc61b9";
+          name = "recipe";
+        };
+        packageRequires = [ avy helm ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-jump-helm-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-jump-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ace-jump-mode";
+        ename = "ace-jump-mode";
+        version = "20140616.115";
+        src = fetchFromGitHub {
+          owner = "winterTTr";
+          repo = "ace-jump-mode";
+          rev = "8351e2df4fbbeb2a4003f2fb39f46d33803f3dac";
+          sha256 = "17axrgd99glnl6ma4ls3k01ysdqmiqr581wnrbsn3s4gp53mm2x6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-jump-mode";
+          sha256 = "0yk0kppjyblr5wamncrjm3ym3n8jcl0r0g0cbnwni89smvpngij6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ace-jump-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-jump-zap = callPackage ({ ace-jump-mode
+                                , dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ace-jump-zap";
+        ename = "ace-jump-zap";
+        version = "20170717.1149";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "ace-jump-zap";
+          rev = "52b5d4c6c73bd0fc833a0dcb4e803a5287d8cae8";
+          sha256 = "1iw90mk6hdrbskxgv67xj27qd26w5dlh4s6a6xqqsj8ld56nzbvr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-jump-zap";
+          sha256 = "07bkmly3lvlbby2m13nj3m1q0gcnwy5sas7d6ws6vr9jh0d36byb";
+          name = "recipe";
+        };
+        packageRequires = [ ace-jump-mode dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-jump-zap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-link = callPackage ({ avy
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ace-link";
+        ename = "ace-link";
+        version = "20181103.1406";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "ace-link";
+          rev = "dfd0fdf649703790a9a5ee027f2f86d6f1269d55";
+          sha256 = "0bf2y1l9n8xjf6q0q17zrp9gfi75kjq50jmw4swrb39hkr2zb2r2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-link";
+          sha256 = "1jl805r2s3wa0xyhss1q28rcy6y2fngf0yfcrcd9wf8kamhpajk5";
+          name = "recipe";
+        };
+        packageRequires = [ avy ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-mc = callPackage ({ ace-jump-mode
+                          , dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , multiple-cursors }:
+      melpaBuild {
+        pname = "ace-mc";
+        ename = "ace-mc";
+        version = "20160408.1737";
+        src = fetchFromGitHub {
+          owner = "mm--";
+          repo = "ace-mc";
+          rev = "b106bf6a6c78c3e026fbe9a99a34d6239adce4fd";
+          sha256 = "1zgmqgh5dff914dw7i8s142znd849gv4xh86f8q8agx5r7almx14";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-mc";
+          sha256 = "1kca6ha2glhv7lkamqx3sxp7dy05c7f6xxy3lr3v2bik8r50jss8";
+          name = "recipe";
+        };
+        packageRequires = [ ace-jump-mode dash multiple-cursors ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-mc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-pinyin = callPackage ({ avy
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pinyinlib }:
+      melpaBuild {
+        pname = "ace-pinyin";
+        ename = "ace-pinyin";
+        version = "20170430.2326";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "ace-pinyin";
+          rev = "a9df88c1e6a32a4f4895acbb8c45383693c494c1";
+          sha256 = "18xi669c15k0m1wb7x231ch1kzqgpi4nm54c42ajrkfq7l8kxq8w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-pinyin";
+          sha256 = "1b3asvzm3k66lsdkmlsgmnf8xlyic8zv294j1iahzkwm6bzqj8wd";
+          name = "recipe";
+        };
+        packageRequires = [ avy pinyinlib ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-pinyin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-popup-menu = callPackage ({ avy-menu
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ace-popup-menu";
+        ename = "ace-popup-menu";
+        version = "20171231.2215";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "ace-popup-menu";
+          rev = "7b8ad628a058d32c420f7615927a34a5d51a7ad3";
+          sha256 = "183gc5lidxahfzik9ima2vph2sdi2rd9805kfnghsmwhck275i2r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-popup-menu";
+          sha256 = "1cq1mpv7v98bqrpsm598krq1741b6rwih71cx3yjifpbagrv4m5s";
+          name = "recipe";
+        };
+        packageRequires = [ avy-menu emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-popup-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-window = callPackage ({ avy
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ace-window";
+        ename = "ace-window";
+        version = "20181008.849";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "ace-window";
+          rev = "5b88de026cea5fc57e62bb490034392815be5f0f";
+          sha256 = "14m2z0ghz88c2fc9achkakfilb1y7mzx61d1dpm9w5gwg8lgwfbf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-window";
+          sha256 = "1k0x8m1phmvgdxb5aj841iai9q96a5lfq8i4b5vnlbc3w888n3xa";
+          name = "recipe";
+        };
+        packageRequires = [ avy ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    achievements = callPackage ({ fetchhg
+                                , fetchurl
+                                , keyfreq
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "achievements";
+        ename = "achievements";
+        version = "20150530.1126";
+        src = fetchhg {
+          url = "https://bitbucket.com/gvol/emacs-achievements";
+          rev = "18a422131c12";
+          sha256 = "0nk1zhqx0lvckjc98b36125148zgx1l2axln8gvkdwlhrd2cc6vj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/achievements";
+          sha256 = "1pwlibq87ph20z2pssk5hbgs6v8kdym9193jjdx2rxp0nic4k0cr";
+          name = "recipe";
+        };
+        packageRequires = [ keyfreq ];
+        meta = {
+          homepage = "https://melpa.org/#/achievements";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ack-menu = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , mag-menu
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ack-menu";
+        ename = "ack-menu";
+        version = "20150504.1322";
+        src = fetchFromGitHub {
+          owner = "chumpage";
+          repo = "ack-menu";
+          rev = "f77be93a4697926ecf3195a355eb69580f695f4d";
+          sha256 = "02ba4d8qkvgy52g0zcbyfvsnhr9685gq569nkwa2as30xdcq3khm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ack-menu";
+          sha256 = "1d2kw04ndxji2qjcm1b65qnxpp08zx8gbia8bl6x6mnjb2isc2d9";
+          name = "recipe";
+        };
+        packageRequires = [ mag-menu ];
+        meta = {
+          homepage = "https://melpa.org/#/ack-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    actionscript-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "actionscript-mode";
+        ename = "actionscript-mode";
+        version = "20180527.1001";
+        src = fetchFromGitHub {
+          owner = "austinhaas";
+          repo = "actionscript-mode";
+          rev = "65abd58e198458a8e46748c5962c41d80d60c4ea";
+          sha256 = "0cb8kkhh43wg63abjx6d4x55f0l3r6ziqcaz8rz1zr12jffnac8z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/actionscript-mode";
+          sha256 = "1dkiay9jmizvslji5kzab4dxm1dq0jm8ps7sjq6710g7a5aqdvwq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/actionscript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    activity-watch-mode = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , projectile
+                                       , request }:
+      melpaBuild {
+        pname = "activity-watch-mode";
+        ename = "activity-watch-mode";
+        version = "20181112.334";
+        src = fetchFromGitHub {
+          owner = "pauldub";
+          repo = "activity-watch-mode";
+          rev = "abbe2cd735177b94cbbc1cfa3918c2e433dac99e";
+          sha256 = "0a8m64qh5br4ksp5xsgbx4v4f6851ka3vs0bssrd36mqcwiqc7pp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/activity-watch-mode";
+          sha256 = "0k0ai6658gb43c4ylrq66zqzrfh6ksvkf0kxj2qx8a5a1aw9bd4d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs projectile request ];
+        meta = {
+          homepage = "https://melpa.org/#/activity-watch-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    adafruit-wisdom = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "adafruit-wisdom";
+        ename = "adafruit-wisdom";
+        version = "20180224.1652";
+        src = fetchFromGitHub {
+          owner = "gonewest818";
+          repo = "adafruit-wisdom.el";
+          rev = "473b973885589a4843e80daf5c8503ea4cedf2ff";
+          sha256 = "0xzzyvnvv0951rr5l5l1vgls3cj5884nhfgqb8w5ian28jsf28bx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/adafruit-wisdom";
+          sha256 = "0ckh420cirspwg2yd5q9y1az03j2l1jzd67g8dpvqjkgdp485gad";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/adafruit-wisdom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    add-hooks = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "add-hooks";
+        ename = "add-hooks";
+        version = "20171216.1723";
+        src = fetchFromGitHub {
+          owner = "nickmccurdy";
+          repo = "add-hooks";
+          rev = "1845137703461fc44bd77cf24014ba58f19c369d";
+          sha256 = "02s9mv26ycypn4qfshrh17v1hsys2q9vffxj3g4lgq0lykplvkkm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/add-hooks";
+          sha256 = "09a5b3prznibkb5igfn8x3vsjrlkh3534zycs8g25g4li87mcb6p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/add-hooks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    add-node-modules-path = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "add-node-modules-path";
+        ename = "add-node-modules-path";
+        version = "20180710.1642";
+        src = fetchFromGitHub {
+          owner = "codesuki";
+          repo = "add-node-modules-path";
+          rev = "f31e69ccb681f882aebb806ce6e9478e3ac39708";
+          sha256 = "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/add-node-modules-path";
+          sha256 = "0gbl875fgqr5np6r4cs8njs6fil1qmy8a5wir88x78ybdwwxsmbl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/add-node-modules-path";
+          license = lib.licenses.free;
+        };
+      }) {};
+    addressbook-bookmark = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "addressbook-bookmark";
+        ename = "addressbook-bookmark";
+        version = "20171107.2234";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "addressbook-bookmark";
+          rev = "4f560af8397a46772e4b39f74f44a9ec9309a224";
+          sha256 = "166iih6fzfizb1yxfhwzh9w9c3wi2xb25qjgialp5rwxlwdwy9dr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/addressbook-bookmark";
+          sha256 = "15p00v4ndrsbadal0ss176mks4ynj39786bmrnil29b6sqibd43r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/addressbook-bookmark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    adoc-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , markup-faces
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "adoc-mode";
+        ename = "adoc-mode";
+        version = "20160314.1430";
+        src = fetchFromGitHub {
+          owner = "sensorflo";
+          repo = "adoc-mode";
+          rev = "745884359a1b8826ede2c4cfd2f0b5478953ac40";
+          sha256 = "199da15f6p84809z33w3m35lrk9bgx8qpgnxsxgisli373mpzvd8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/adoc-mode";
+          sha256 = "0jd3zr4zpb4qqn504azl0y02cryv7n9wphv64b0fbpipr7w5hm2c";
+          name = "recipe";
+        };
+        packageRequires = [ markup-faces ];
+        meta = {
+          homepage = "https://melpa.org/#/adoc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aes = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "aes";
+        ename = "aes";
+        version = "20171028.2323";
+        src = fetchFromGitHub {
+          owner = "Sauermann";
+          repo = "emacs-aes";
+          rev = "b7d5da89c3443292e4f0b1c9d254d459933cf5af";
+          sha256 = "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aes";
+          sha256 = "11vl9x3ldrv7q7rd29xk4xmlvfxs0m6iys84f6mlgf00190l5r5v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/aes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    afternoon-theme = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "afternoon-theme";
+        ename = "afternoon-theme";
+        version = "20140104.1059";
+        src = fetchFromGitHub {
+          owner = "osener";
+          repo = "emacs-afternoon-theme";
+          rev = "89b1d778a1f8b385775c122f2bd1c62f0fbf931a";
+          sha256 = "19d5d6qs5nwmpf26rsb86ranb5p4236qp7p2b4i88cimcmzspylb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/afternoon-theme";
+          sha256 = "13xgdw8px58sxpl7nyhkcdxwqdpp13i8wghvlb3l4471plw3vqgj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/afternoon-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ag = callPackage ({ cl-lib ? null
+                      , dash
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild
+                      , s }:
+      melpaBuild {
+        pname = "ag";
+        ename = "ag";
+        version = "20180225.240";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "ag.el";
+          rev = "77b4f50c5372bf219da496567b2b867261f0d354";
+          sha256 = "0kwp6bb8fwv76x9r35rz4mvwica1fsappp82rjr1xlhnwwdsc120";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ag";
+          sha256 = "1r4ai09vdckkg4h4i7dp781qqmm4kky53p4q8azp3n2c78i1vz6g";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/ag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aggressive-fill-paragraph = callPackage ({ dash
+                                             , fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "aggressive-fill-paragraph";
+        ename = "aggressive-fill-paragraph";
+        version = "20180910.116";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "aggressive-fill-paragraph-mode";
+          rev = "39eb7ac73976d4d4044ef3d750c3ade967d036e1";
+          sha256 = "1ly79z9aqy3b2wq11ifvvkls9qqbpkbb8hj7nsvpq59vqa9fknli";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aggressive-fill-paragraph";
+          sha256 = "1df4bk3ks09805y67af6z1gpfln0lz773jzbbckfl0fy3yli0dja";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/aggressive-fill-paragraph";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aggressive-indent = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "aggressive-indent";
+        ename = "aggressive-indent";
+        version = "20181017.1936";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "aggressive-indent-mode";
+          rev = "cc8da01e32684e1b75d2901400e6723b2c2d42f8";
+          sha256 = "1ypsqlyka6cc8rvdmhnf62ix26hr20vlsc477g1wwd64ygvys79s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aggressive-indent";
+          sha256 = "1qi8jbr28gax35siim3hnnkiy8pa2vcrzqzc6axr98wzny46x0i2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/aggressive-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ahg = callPackage ({ fetchhg
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ahg";
+        ename = "ahg";
+        version = "20180921.122";
+        src = fetchhg {
+          url = "https://bitbucket.com/agriggio/ahg";
+          rev = "6a5b7e9e91a3";
+          sha256 = "0w5chpjygkf1b1r8c637r9hzsy1ip0cwmr2a8bi8qb8hd7d2vbwn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ahg";
+          sha256 = "0kw138lfzwp54fmly3jzzml11y7fhcjp3w0irmwdzr68lc206lr4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ahg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ahk-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ahk-mode";
+        ename = "ahk-mode";
+        version = "20181113.438";
+        src = fetchFromGitHub {
+          owner = "ralesi";
+          repo = "ahk-mode";
+          rev = "fde5be2cd4a0a48dc876031fb25be82892f700e0";
+          sha256 = "1fr7wc9avk5z07s5jf2bry1wx5kmcr85hmn2m54wj7ryv5gm30d9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ahk-mode";
+          sha256 = "0jx5vhlfw5r6l4125bjjbf7dl1589ac6j419swx26k3p8p58d93r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ahk-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ahungry-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ahungry-theme";
+        ename = "ahungry-theme";
+        version = "20180130.1928";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "color-theme-ahungry";
+          rev = "a038d91ec593d1f1b19ca66a0576d59bbc24c523";
+          sha256 = "0f86xp7l8bv4z5dgf3pamjgqyiq3kfx9gbi9wcw0m6lbza8db15a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ahungry-theme";
+          sha256 = "0fhim0qscpqx9siprp3ax1azxzmqkzvrjx517d9bnd68z7xxbpqy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ahungry-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    airline-themes = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , powerline }:
+      melpaBuild {
+        pname = "airline-themes";
+        ename = "airline-themes";
+        version = "20180410.2106";
+        src = fetchFromGitHub {
+          owner = "AnthonyDiGirolamo";
+          repo = "airline-themes";
+          rev = "8b528fbae0e557461315bed82883275d58df41f2";
+          sha256 = "1xydgf9w0i2anpmjhy8m0zv1hql4gb37i11xfn6xzwna572z1ml9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/airline-themes";
+          sha256 = "0jkhb6nigyjmwqny7g59h4ssfy64vl3qnwcw46wnx5k9i73cjyih";
+          name = "recipe";
+        };
+        packageRequires = [ powerline ];
+        meta = {
+          homepage = "https://melpa.org/#/airline-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    airplay = callPackage ({ deferred
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , request
+                           , simple-httpd }:
+      melpaBuild {
+        pname = "airplay";
+        ename = "airplay";
+        version = "20130212.426";
+        src = fetchFromGitHub {
+          owner = "gongo";
+          repo = "airplay-el";
+          rev = "46fad71d293a3e18551cf464fe6c6208a7a32d9d";
+          sha256 = "1dlmkx17lafkxz3sfajylc5fml5rq339xn6v2qj463gg4n8sdgij";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/airplay";
+          sha256 = "095nibgs197iplphk6csvkgsrgh1fcfyy33py860v6qmihvk538f";
+          name = "recipe";
+        };
+        packageRequires = [ deferred request simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/airplay";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alan-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , flycheck
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "alan-mode";
+        ename = "alan-mode";
+        version = "20181011.429";
+        src = fetchFromGitHub {
+          owner = "M-industries";
+          repo = "AlanForEmacs";
+          rev = "130511906423732fdb941e51ca3e26194f65685a";
+          sha256 = "1yfvpgnsrh9ca2aj7z28x7fvrb08nv6m041rfmbl8dsnr2dmrfix";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alan-mode";
+          sha256 = "1528rh26kr9zj43djbrfb7vmq78spfay3k3ps5apc580ipx1a4hg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck s ];
+        meta = {
+          homepage = "https://melpa.org/#/alan-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alarm-clock = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "alarm-clock";
+        ename = "alarm-clock";
+        version = "20181114.1535";
+        src = fetchFromGitHub {
+          owner = "wlemuel";
+          repo = "alarm-clock";
+          rev = "bf3f8e638c21d7ec27a63c28a90a4456de1ee50c";
+          sha256 = "0lvv8r7j7j998y9fx07zf85h1smbqnp5jgf765gskxfp8bj2d048";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alarm-clock";
+          sha256 = "1cgrj6dzpx0q15qzr9d342wg8w92c2r4zmk7rif2h87qxr66fbrg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/alarm-clock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alchemist = callPackage ({ company
+                             , dash
+                             , elixir-mode
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , pkg-info
+                             , s }:
+      melpaBuild {
+        pname = "alchemist";
+        ename = "alchemist";
+        version = "20180312.604";
+        src = fetchFromGitHub {
+          owner = "tonini";
+          repo = "alchemist.el";
+          rev = "6f99367511ae209f8fe2c990779764bbb4ccb6ed";
+          sha256 = "12f95rwxs11sqf1w9pnf6cxc2lh2jz4nqkq33p8b5yamnl8cq9kg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alchemist";
+          sha256 = "18jxw0zb7y34qbm4bcpfpb2656f0h9grmrbfskgp4ra4q5q3n369";
+          name = "recipe";
+        };
+        packageRequires = [ company dash elixir-mode emacs pkg-info s ];
+        meta = {
+          homepage = "https://melpa.org/#/alchemist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alda-mode = callPackage ({ emacs
+                             , fetchFromGitLab
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "alda-mode";
+        ename = "alda-mode";
+        version = "20180607.2305";
+        src = fetchFromGitLab {
+          owner = "jgkamat";
+          repo = "alda-mode";
+          rev = "ebc4232e754a3a49c937f59ebd849520b901e54c";
+          sha256 = "1rnvchb2rh7yzp2nw7qs9nh9m2r9cvhmkvh1qda3avf1ha9q20hp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alda-mode";
+          sha256 = "0qvaxh4392rpxikylcnn31z13wabaydj5aa4jyn499ggqdz7liw9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/alda-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alect-themes = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "alect-themes";
+        ename = "alect-themes";
+        version = "20180504.1020";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "alect-themes";
+          rev = "4d90833a7381123a979f73fa97a013071ca7ff00";
+          sha256 = "19cb6zgg495d62wb6jn6cql5fhv8qd7rxpgxx90klp8yfizr0gmj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alect-themes";
+          sha256 = "04fq65qnxlvl5nc2q037c6yb4nf422dfw2913gv6zfh9rdmxsks8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/alect-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alert = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , gntp
+                         , lib
+                         , log4e
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "alert";
+        ename = "alert";
+        version = "20181022.1042";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "alert";
+          rev = "9f329be87820474925f29b52a1131084c8ea95b9";
+          sha256 = "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alert";
+          sha256 = "0x3cvczq09jvshz435jw2fjm69457x2wxdvvbbjq46nfnybhi118";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib gntp log4e ];
+        meta = {
+          homepage = "https://melpa.org/#/alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    align-cljlet = callPackage ({ clojure-mode
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "align-cljlet";
+        ename = "align-cljlet";
+        version = "20160112.1301";
+        src = fetchFromGitHub {
+          owner = "gstamp";
+          repo = "align-cljlet";
+          rev = "ebcf0a912e836579a3a9d386e22c1c4bef7fba17";
+          sha256 = "1g0fp77zrnpa9dplj41my2wsin6qxpw49f7451km29mjayh2zhfj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/align-cljlet";
+          sha256 = "0pnhhv33rvlmb3823xpy9v5h6q99fa7fn38djbwry4rymi4jmlih";
+          name = "recipe";
+        };
+        packageRequires = [ clojure-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/align-cljlet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    all-ext = callPackage ({ all
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "all-ext";
+        ename = "all-ext";
+        version = "20170114.1805";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "all-ext";
+          rev = "9f4ef84a147cf4e0af6ef45826d6cb3558db6b88";
+          sha256 = "0gdrsi9n9i1ibijkgk5kyjdjdmnsccfbpifpv679371glap9f68b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/all-ext";
+          sha256 = "0vmpa5p7likg2xgck18sa0jvmvnhjs9v1fbl82sxx7qy2f3cggql";
+          name = "recipe";
+        };
+        packageRequires = [ all ];
+        meta = {
+          homepage = "https://melpa.org/#/all-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    all-the-icons = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , memoize }:
+      melpaBuild {
+        pname = "all-the-icons";
+        ename = "all-the-icons";
+        version = "20180125.757";
+        src = fetchFromGitHub {
+          owner = "domtronn";
+          repo = "all-the-icons.el";
+          rev = "52d1f2d36468146c93aaf11399f581401a233306";
+          sha256 = "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/all-the-icons";
+          sha256 = "00ba4gkfvg38l4s0gsb4asvv1hfw9yjl2786imybzy7bkg9f9x3q";
+          name = "recipe";
+        };
+        packageRequires = [ emacs memoize ];
+        meta = {
+          homepage = "https://melpa.org/#/all-the-icons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    all-the-icons-dired = callPackage ({ all-the-icons
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "all-the-icons-dired";
+        ename = "all-the-icons-dired";
+        version = "20170418.1431";
+        src = fetchFromGitHub {
+          owner = "jtbm37";
+          repo = "all-the-icons-dired";
+          rev = "980b7747d6c4a7992a1ec56afad908956db0a519";
+          sha256 = "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/all-the-icons-dired";
+          sha256 = "1qj639z24ln29hv6c51g1vsa2jsy4qrlhf8c7d5w9bxcrcn2fnr9";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/all-the-icons-dired";
+          license = lib.licenses.free;
+        };
+      }) {};
+    all-the-icons-gnus = callPackage ({ all-the-icons
+                                      , dash
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "all-the-icons-gnus";
+        ename = "all-the-icons-gnus";
+        version = "20180510.2354";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "all-the-icons-gnus";
+          rev = "27f78996da0725943bcfb2d18038e6f7bddfa9c7";
+          sha256 = "0yi3nbhx7cdxq2192kh5ra2n0a3qg20p342prz3a0bm3w7q2ym11";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/all-the-icons-gnus";
+          sha256 = "0vdqhpa49p8vzbad426gl0dvniapyk73kbscvjv7mdl4bwhcr309";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/all-the-icons-gnus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    all-the-icons-ivy = callPackage ({ all-the-icons
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , ivy
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "all-the-icons-ivy";
+        ename = "all-the-icons-ivy";
+        version = "20180826.1316";
+        src = fetchFromGitHub {
+          owner = "asok";
+          repo = "all-the-icons-ivy";
+          rev = "7baba16410e78ca3c7a564c3731baa75b2e8d93a";
+          sha256 = "0whd8ywsy88g5y068n1z7s3d6yh62jgylf03rg1rp1mf6x6j2m16";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/all-the-icons-ivy";
+          sha256 = "1xv67gxd2sqj6zld4i3qcid0x5qsbd7baz55m93y1ivdqi7x7gr2";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/all-the-icons-ivy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    amd-mode = callPackage ({ emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , js2-mode
+                            , js2-refactor
+                            , lib
+                            , makey
+                            , melpaBuild
+                            , projectile
+                            , s
+                            , seq }:
+      melpaBuild {
+        pname = "amd-mode";
+        ename = "amd-mode";
+        version = "20180111.602";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "amd-mode.el";
+          rev = "01fd19e0d635ccaf8e812364d8720733f2e84126";
+          sha256 = "040g07k2hcwqspansjqfpng0lxzkmip26ipz26q6mvkpwm2wilv4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/amd-mode";
+          sha256 = "17ry6vm5xlmdfs0mykdyn05cik38yswq5axdgn8hxrvvb6f58d06";
+          name = "recipe";
+        };
+        packageRequires = [
+          emacs
+          f
+          js2-mode
+          js2-refactor
+          makey
+          projectile
+          s
+          seq
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/amd-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ample-regexps = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ample-regexps";
+        ename = "ample-regexps";
+        version = "20151023.300";
+        src = fetchFromGitHub {
+          owner = "immerrr";
+          repo = "ample-regexps.el";
+          rev = "884c712a82773d3af500e71d20bebe52340352c5";
+          sha256 = "18cicz11i19cpabrq6khnl9ks1khn6gw5a4ckaq4y65r40x0cr6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ample-regexps";
+          sha256 = "00y07pd438v7ldkn5f1w84cpxa1mvcnzjkj6sf5l5pm97xqiz7j2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ample-regexps";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ample-theme = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ample-theme";
+        ename = "ample-theme";
+        version = "20180207.945";
+        src = fetchFromGitHub {
+          owner = "jordonbiondo";
+          repo = "ample-theme";
+          rev = "366698400c555211c2082962a5d74f3dd79a78c8";
+          sha256 = "1kzb15aqy7n2wxibmnihya7n6ajs34jxp9iin96n758nza92m59c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ample-theme";
+          sha256 = "055c6jy2q761za4cl1vlqdskcd3mc1j58k8b4418q7h2lv2zc0ry";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ample-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ample-zen-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ample-zen-theme";
+        ename = "ample-zen-theme";
+        version = "20150119.1354";
+        src = fetchFromGitHub {
+          owner = "mjwall";
+          repo = "ample-zen";
+          rev = "b277bb7abd4b6624e8d59f02474b79af50a007bd";
+          sha256 = "18z9jl5d19a132k6g1dvwqfbbdh5cx66b2qxlcjsfiqxlxglc2sa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ample-zen-theme";
+          sha256 = "0xygk80mh05qssrbfj4h6k50pg557dyj6kzc2pdlmnr5r4gnzdn3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ample-zen-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    amx = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , s }:
+      melpaBuild {
+        pname = "amx";
+        ename = "amx";
+        version = "20181011.1551";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "amx";
+          rev = "4b08edb34c4d9c807ef1a820a629cda15e2347a0";
+          sha256 = "1vs9hrldg3amxv61m2gpph8fdjidsa7x17djxx23r7px5mhkwqgn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/amx";
+          sha256 = "1ikhjvkca0lsb9j719yf6spg6nwc0qaydkd8aax162sis7kp9fap";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/amx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anaconda-mode = callPackage ({ dash
+                                 , emacs
+                                 , f
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , pythonic
+                                 , s }:
+      melpaBuild {
+        pname = "anaconda-mode";
+        ename = "anaconda-mode";
+        version = "20181030.1409";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "anaconda-mode";
+          rev = "21a6218c2299575c82573a5c2c773d72b0f8be0d";
+          sha256 = "05765rh3r6zs18zyhssck90k654xkl5y3k11sjxdkj5r7bmky8d6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anaconda-mode";
+          sha256 = "0gz16aam4zrm3s9ms13h4qcdflf55506kgkpyncq3bi54cvv8n1r";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f pythonic s ];
+        meta = {
+          homepage = "https://melpa.org/#/anaconda-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anaphora = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "anaphora";
+        ename = "anaphora";
+        version = "20180618.1500";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "anaphora";
+          rev = "3b2da3f759b244975852e79721c4a2dbad3905cf";
+          sha256 = "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anaphora";
+          sha256 = "1wb7fb3pc4gxvpjlm6gjbyx0rbhjiwd93qwc4vfw6p865ikl19y2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/anaphora";
+          license = lib.licenses.free;
+        };
+      }) {};
+    android-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "android-mode";
+        ename = "android-mode";
+        version = "20181016.9";
+        src = fetchFromGitHub {
+          owner = "remvee";
+          repo = "android-mode";
+          rev = "f8cabafaa266b56fcf4b3c6942b3ae062735251a";
+          sha256 = "0npx54w565mkxkgkpv02dgmfc44i1256p0w331pf3nfxq145xh27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/android-mode";
+          sha256 = "1nqrvq411yg4b9xb5cvc7ai7lfalwc2rfhclzprvymc4vxh6k4cc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/android-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    angry-police-captain = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "angry-police-captain";
+        ename = "angry-police-captain";
+        version = "20120829.552";
+        src = fetchFromGitHub {
+          owner = "rolpereira";
+          repo = "angry-police-captain-el";
+          rev = "d11931c5cb63368dcc4a48797962428cca6d3e9d";
+          sha256 = "1m0c7ns7aiycg86cgglir8bkw730fslyg1n15m9ki0da4cnmm97a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/angry-police-captain";
+          sha256 = "00r3dx33h0wjxj0687ln8nbl1ff2badm3mk3r3bplfrd61z2qzld";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/angry-police-captain";
+          license = lib.licenses.free;
+        };
+      }) {};
+    angular-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "angular-mode";
+        ename = "angular-mode";
+        version = "20151201.1327";
+        src = fetchFromGitHub {
+          owner = "rudolfolah";
+          repo = "angularjs-mode";
+          rev = "8720cde86af0f1859ccc8580571e8d0ad1c52cff";
+          sha256 = "04kg2x0lif91knmkkh05mj42xw3dkzsnysjda6ian95v57wfg377";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/angular-mode";
+          sha256 = "0pq4lyhppzi806n1k07n0gdhr8z8z71ri12my0pl81rl5j2z69l2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/angular-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    angular-snippets = callPackage ({ dash
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "angular-snippets";
+        ename = "angular-snippets";
+        version = "20140513.2223";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "angular-snippets.el";
+          rev = "af5ae0a4a8603b040446c28afcf6ca01a8b4bd7b";
+          sha256 = "0hdm1a323mzxjfdply8ri3addk146f21d8cmpd18r7dw3j3cdfrn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/angular-snippets";
+          sha256 = "057phgizn1c6njvdfigb23ljs31knq247gr0rcpqfrdaxsnnzm5c";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/angular-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anki-editor = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , request }:
+      melpaBuild {
+        pname = "anki-editor";
+        ename = "anki-editor";
+        version = "20181005.138";
+        src = fetchFromGitHub {
+          owner = "louietan";
+          repo = "anki-editor";
+          rev = "0bee0064bc23ff2b3b6fc29beba97346576b380d";
+          sha256 = "1zm055bl4yh3yljvsyk4sins2iddr7iydg02a1pbxilahh7snqhf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anki-editor";
+          sha256 = "18c5p82llq11vg1svqvbjrcnm7695nbbc6pwwl9jdjplasar585l";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/anki-editor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anki-mode = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , markdown-mode
+                             , melpaBuild
+                             , request
+                             , s }:
+      melpaBuild {
+        pname = "anki-mode";
+        ename = "anki-mode";
+        version = "20181106.1037";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "anki-mode";
+          rev = "095fbe74604892a131a4ffc1f6bb9404717028be";
+          sha256 = "08vn9xkp6894s8580gj36ink3bqgcw932rpy6yn6n5qcfykmhpnq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anki-mode";
+          sha256 = "1d429ws6kmswcyk0dnb303z01kq475n60a520hj258x23vp8802q";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs markdown-mode request s ];
+        meta = {
+          homepage = "https://melpa.org/#/anki-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    annotate = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "annotate";
+        ename = "annotate";
+        version = "20171110.2336";
+        src = fetchFromGitHub {
+          owner = "bastibe";
+          repo = "annotate.el";
+          rev = "dedbd9e5d5286f1ca8ad73e489d408a20f06156c";
+          sha256 = "12s5jc1i78x90s34ijljd75v1z6sisfrpix852gcisb9lpibbpz7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/annotate";
+          sha256 = "1ajykgara2m713blj2kfmdz12fzm8jw7klyakkyi6i3c3a9m44jy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/annotate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    annotate-depth = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "annotate-depth";
+        ename = "annotate-depth";
+        version = "20160520.1340";
+        src = fetchFromGitHub {
+          owner = "netromdk";
+          repo = "annotate-depth";
+          rev = "fcb24fa36287250e40d195590c4ca4a8a696277b";
+          sha256 = "18cav5wl3d0yq15273rqmdwvrgw96lmqiq9x5fxhf3wjb543mifl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/annotate-depth";
+          sha256 = "1j1pwnj7k6gl1p4npxsgrib0j1rzisq40pkm2wchjh86j3ybv2l4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/annotate-depth";
+          license = lib.licenses.free;
+        };
+      }) {};
+    annoying-arrows-mode = callPackage ({ cl-lib ? null
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "annoying-arrows-mode";
+        ename = "annoying-arrows-mode";
+        version = "20161023.2346";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "annoying-arrows-mode.el";
+          rev = "3c42e9807d7696da2da2a21b63beebf9cdb3f5dc";
+          sha256 = "06gs5ln3w1xvq8f8k9225rwiipbh9cs0dzyyb7z05717rmqixcc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/annoying-arrows-mode";
+          sha256 = "1vswlfypn6ijn0wwa3dsqkz5n3pillpmli2ha4q9snhd3a667vyh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/annoying-arrows-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ansi = callPackage ({ dash
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "ansi";
+        ename = "ansi";
+        version = "20150703.126";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ansi.el";
+          rev = "a042c5954453bab9a74177e2b78ad17a824caebc";
+          sha256 = "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ansi";
+          sha256 = "0b5xnv6z471jm53g37njxin6l8yflsgm80y4wxahfgy8apipcq89";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/ansi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ansible = callPackage ({ f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "ansible";
+        ename = "ansible";
+        version = "20180812.1814";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "emacs-ansible";
+          rev = "8a097176d6772b6667254dbbe19c5fb64527bf5d";
+          sha256 = "1m2cb88jb1wxa9rydkbn5llx2gql453l87b4cgzsjllha6j1488k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ansible";
+          sha256 = "1xdc05fdglqfbizra6s1zl6knnvaq526dkxqnw9g7w269j8f4z8g";
+          name = "recipe";
+        };
+        packageRequires = [ f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ansible";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ansible-doc = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ansible-doc";
+        ename = "ansible-doc";
+        version = "20160924.124";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "ansible-doc.el";
+          rev = "bc8128a85a79b14f4a121105d87a5eddc33975ad";
+          sha256 = "0z3y69sfzka764wjbx31dywdq4d6bfsafv2gmmbpmxqmwfmy8sz4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ansible-doc";
+          sha256 = "03idvnn79fr9id81aivkm7g7cmlsg0c520wcq4da8g013xvi342w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ansible-doc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ansible-vault = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ansible-vault";
+        ename = "ansible-vault";
+        version = "20181116.906";
+        src = fetchFromGitHub {
+          owner = "zellio";
+          repo = "ansible-vault-mode";
+          rev = "d16389f44a4e76a12c789fe65df20692c7113685";
+          sha256 = "1gppgqsnn5qfhjzfkdy5br5p0k3f7v5mpigcmzzqmjniz49l0015";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ansible-vault";
+          sha256 = "0pmsvpc866rgcajb2ihhb62g3rwhda7vvq2kxkvr566y609vv021";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ansible-vault";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ant = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ant";
+        ename = "ant";
+        version = "20160211.743";
+        src = fetchFromGitHub {
+          owner = "apg";
+          repo = "ant-el";
+          rev = "510b5a3f57ee4b2855422d88d359a28922c1ab70";
+          sha256 = "0jb5vl3cq5m3r23fjhcxgxl4g011zkjkkyn5mqqxx22a1sydsvab";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ant";
+          sha256 = "06028xjic14yv3rfqyc3k6jyjgm6fqfrf1mv8lvbh2sri2d5ifqa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ant";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anti-zenburn-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "anti-zenburn-theme";
+        ename = "anti-zenburn-theme";
+        version = "20180712.1138";
+        src = fetchFromGitHub {
+          owner = "m00natic";
+          repo = "anti-zenburn-theme";
+          rev = "dbafbaa86be67c1d409873f57a5c0bbe1e7ca158";
+          sha256 = "1h4lachmrpjiblah4rjd2cpvz6n6qh3i5cdp4wra2dk177h7kj6h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anti-zenburn-theme";
+          sha256 = "1sp9p6m2jy4m9fdn1hz25cmasy0mwwgn46qmvm92i56f5x6jlzzk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/anti-zenburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anx-api = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "anx-api";
+        ename = "anx-api";
+        version = "20140208.714";
+        src = fetchFromGitHub {
+          owner = "rmloveland";
+          repo = "emacs-appnexus-api";
+          rev = "b2411ebc966ac32c3ffc61bc22bf183834df0fa0";
+          sha256 = "0fzxzar8m9qznfxv3wr7vfj9y2110wf6mm5cj55k3sd5djdjhmf1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anx-api";
+          sha256 = "1vzg3wsqyfb9rsfxrpz8k2gazjlz2nwnf4gnn1dypsjspjnzcb8r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/anx-api";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anybar = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "anybar";
+        ename = "anybar";
+        version = "20160816.721";
+        src = fetchFromGitHub {
+          owner = "tie-rack";
+          repo = "anybar-el";
+          rev = "7a0743e0d31bcb36ab1bb2e351f3e7139c422ac5";
+          sha256 = "1s7vnp2xzffdj4pqdqn6mrirw33ms0yqlpxzz5pwj6xrbp2x5r6s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anybar";
+          sha256 = "0prnr8wjhishpf2zmn4b7054vfahk10w05nzsg2p6whaxywcachm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/anybar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anyins = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "anyins";
+        ename = "anyins";
+        version = "20131229.241";
+        src = fetchFromGitHub {
+          owner = "antham";
+          repo = "anyins";
+          rev = "cd5e3c1abd471c8a67aafc42c4c985a2796f4b9f";
+          sha256 = "0j36wrvc3kj1afigpc230d92gwszk1qrmiz38jyi9anr6an4ch3p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anyins";
+          sha256 = "0ncf3kn8rackcidkgda2zs60km3hx87rwr9daj7ksmbb6am09s7c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/anyins";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anzu = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "anzu";
+        ename = "anzu";
+        version = "20161017.907";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-anzu";
+          rev = "799f26ee0e3ce598b36983f4dce539f47739e656";
+          sha256 = "1rpdw0vxss071kb995xyihdx21dv18d9cn666jvsy43g49fb803p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anzu";
+          sha256 = "181hzwy9bc0zfhax26p20q9cjibrmi9ngps5fa3ja5g6scxfs9g1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/anzu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aozora-view = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "aozora-view";
+        ename = "aozora-view";
+        version = "20140310.617";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "aozora-view";
+          rev = "b0390616d19e45f15f9a2f5d5688274831e721fd";
+          sha256 = "0528z3axjmplg2fdbv4jxgy1p39vr4rnsm4a3ps2fanf8bwsyx3l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aozora-view";
+          sha256 = "0pd2574a6dkhrfr0jf5gvv34ganp6ddylyb6cfpg2d4znwbc2r2w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/aozora-view";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apache-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "apache-mode";
+        ename = "apache-mode";
+        version = "20180723.2051";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "apache-mode";
+          rev = "d2ac57942f852a727db4fc73004e1e8f046cb657";
+          sha256 = "1srlkqa2bq2p1nyh6r7f3b2754dqlgw28h0wbafmdlfk12jc8xy3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apache-mode";
+          sha256 = "0wzfx3kaiwvya30ihq3vpdhy6znkzf25w5x43x457ifdn2vrh9zi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/apache-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apel = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "apel";
+        ename = "apel";
+        version = "20170122.1458";
+        src = fetchFromGitHub {
+          owner = "wanderlust";
+          repo = "apel";
+          rev = "339eb28ffae3165255a79de9b1fd362f43cd37c3";
+          sha256 = "1f0zxydh2pkwbjx5bh1bzl3r5g50vqg18azvqkvv9r0nn42hkhmi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apel";
+          sha256 = "0zrm8m66p3aqr0108s3cj6z4xqbg2hx37z1pam4c65bqlhh74s8y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/apel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apib-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , markdown-mode
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "apib-mode";
+        ename = "apib-mode";
+        version = "20170520.658";
+        src = fetchFromGitHub {
+          owner = "w-vi";
+          repo = "apib-mode";
+          rev = "6cc7c6f21b8e415b1718bb6a07ab2182e9e9dde6";
+          sha256 = "1717f78kaqkmbhfwb9kzsv5wi2zabcbwb4wh1jklhcaalvmk3z7d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apib-mode";
+          sha256 = "0y3n0xmyc4gkypq07v4sp0i6291qaj2m13zkg6mxp61zm669v2fb";
+          name = "recipe";
+        };
+        packageRequires = [ markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/apib-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apiwrap = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "apiwrap";
+        ename = "apiwrap";
+        version = "20180602.1531";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "apiwrap.el";
+          rev = "e4c9c57d6620a788ec8a715ff1bb50542edea3a6";
+          sha256 = "0xpb8mmssajy42r2h1m9inhv1chx19wkp5p0p63nwpk7mhjj8bis";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apiwrap";
+          sha256 = "0n50n1n5pvcgcp1gmna3ci36pnbanjdbjpgv7zyarlb80hywbiyw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/apiwrap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apples-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "apples-mode";
+        ename = "apples-mode";
+        version = "20110120.2018";
+        src = fetchFromGitHub {
+          owner = "tequilasunset";
+          repo = "apples-mode";
+          rev = "83a9ab0d6ba82496e2f7df386909b1a55701fccb";
+          sha256 = "0br0jl6xnajdx37s5cvs13srn9lldg58y9587a11s3s651xjdq0z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apples-mode";
+          sha256 = "05ssnxs9ybc26jhr69xl9jpb41bz1688minmlc9msq2nvyfnj97s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/apples-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    applescript-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "applescript-mode";
+        ename = "applescript-mode";
+        version = "20090320.2332";
+        src = fetchFromGitHub {
+          owner = "ieure";
+          repo = "applescript-mode";
+          rev = "8f888cd80af1e0902b5609143facd3051bc94892";
+          sha256 = "0d3bqx6346vmniv001jgd6wggp80kv1kqc38sdgd88862gkqnqyg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/applescript-mode";
+          sha256 = "0rj03xw8yx79xj9ahdwfxicxna0a0lykn2n39xng5gnm4bh2n6z4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/applescript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aproject = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "aproject";
+        ename = "aproject";
+        version = "20150605.206";
+        src = fetchFromGitHub {
+          owner = "vietor";
+          repo = "aproject";
+          rev = "3c7d23c341862dfd77fd0a64775df12ddb44ab54";
+          sha256 = "1wyz8jvdy4m0cn75mm3zvxagm2gl10q51479f91gnqv14b4rndfc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aproject";
+          sha256 = "0v3gx2mff2s7knm69y253pm1yr4svy8w00pqbn1chrvymb62jhp2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/aproject";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apropospriate-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "apropospriate-theme";
+        ename = "apropospriate-theme";
+        version = "20181111.1312";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "apropospriate-theme";
+          rev = "88c243ec90c1df7918c463b5a7ec875d057e8999";
+          sha256 = "1ild7jr4yszbg1c0vwkd57i8jvgnws7nkv4jd4lzzwnaxb66f5qj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apropospriate-theme";
+          sha256 = "10bj2bsi7b104m686z8mgvbh493liidsvivxfvfxzbndc8wyjsw9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/apropospriate-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apt-sources-list = callPackage ({ emacs
+                                    , fetchgit
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "apt-sources-list";
+        ename = "apt-sources-list";
+        version = "20180527.541";
+        src = fetchgit {
+          url = "https://git.korewanetadesu.com/apt-sources-list.git";
+          rev = "44112833b3fa7f4d7e43708e5996782e22bb2fa3";
+          sha256 = "0av8v9ibqws5vb2sg3bfk0g1pyraqjgwmcg2n23whmpbl5xdnh6k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apt-sources-list";
+          sha256 = "1gnl6zqv6imk2qpv4lj7qyjgf1ldxib3k14gsmwqm0c1zwjsid3j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/apt-sources-list";
+          license = lib.licenses.free;
+        };
+      }) {};
+    arch-packer = callPackage ({ async
+                               , dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "arch-packer";
+        ename = "arch-packer";
+        version = "20170730.621";
+        src = fetchFromGitHub {
+          owner = "brotzeit";
+          repo = "arch-packer";
+          rev = "940e96f7d357c6570b675a0f942181c787f1bfd7";
+          sha256 = "0m80ka51m7a1797q6br41x96znvqfmpwzh3vk4mz66mdx2r4xk77";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/arch-packer";
+          sha256 = "04kv22vpcpjhc047yz6k6dizmwwdjk6vcm8imri76gi9ns1w5n5z";
+          name = "recipe";
+        };
+        packageRequires = [ async dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/arch-packer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    archive-region = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "archive-region";
+        ename = "archive-region";
+        version = "20140201.1542";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "archive-region";
+          rev = "0d357d4c42a6a248c457f358f81b20fd20fede2f";
+          sha256 = "03pmwgvlxxlp4wh0sg5czpx1i88i43lz8lwdbfa6l28g1sv0f264";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/archive-region";
+          sha256 = "1aiz6a0vdc2zm2q5r80cj5xixqfhsgmr7ldj9ff40k4sf3z5xny3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/archive-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    archive-rpm = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "archive-rpm";
+        ename = "archive-rpm";
+        version = "20180706.532";
+        src = fetchFromGitHub {
+          owner = "legoscia";
+          repo = "archive-rpm";
+          rev = "59f83caebbd2f92fd634f6968e6d17b50ffa3dc7";
+          sha256 = "11ssqaax4jl7r3z5agzmc74sjsfvl0m3xvp015ncqzpzysla47g3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/archive-rpm";
+          sha256 = "0s53zbn71lb008gw3f0b5w4q0pw0vgiqbffgnyib24sh03ijl7z7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/archive-rpm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    arduino-mode = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , spinner }:
+      melpaBuild {
+        pname = "arduino-mode";
+        ename = "arduino-mode";
+        version = "20180508.1736";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "arduino-mode";
+          rev = "e39cb1c02acb6676aea35f93fbd0d86badce6a38";
+          sha256 = "1sg6n4ys5lq2m7q876qi88r11c08y05ggyv9r85ahins2pbgbv95";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/arduino-mode";
+          sha256 = "1amqah0sx95866ikdlc7h7n9hmrwaqizc0rj0gliv15kjjggv55v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs spinner ];
+        meta = {
+          homepage = "https://melpa.org/#/arduino-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aria2 = callPackage ({ emacs
+                         , fetchFromGitLab
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "aria2";
+        ename = "aria2";
+        version = "20141107.1517";
+        src = fetchFromGitLab {
+          owner = "ukaszg";
+          repo = "aria2";
+          rev = "3c54254e424c6c8b4eb0d8e7c4907b094c27a3f0";
+          sha256 = "1xkgz3l7idw5bk1xlffdaddf5v1q6fm3grbryl4xvssrbwgnyisf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aria2";
+          sha256 = "1gsqdqs3q86k7q88rf7qamc0sp5ca00xn9kr1r717vf6qq6a0c3c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/aria2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ariadne = callPackage ({ bert
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ariadne";
+        ename = "ariadne";
+        version = "20131117.911";
+        src = fetchFromGitHub {
+          owner = "manzyuk";
+          repo = "ariadne-el";
+          rev = "6fe401c7f996bcbc2f685e7971324c6f5e5eaf15";
+          sha256 = "0vh9wfc3657sd12ybjcrxpg6f757x2ghkcl1lw01szmyy5vmj27h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ariadne";
+          sha256 = "0lfhving19wcfr40gjb2gnginiz8cncixiyyxhwx08lm84qb3a7p";
+          name = "recipe";
+        };
+        packageRequires = [ bert ];
+        meta = {
+          homepage = "https://melpa.org/#/ariadne";
+          license = lib.licenses.free;
+        };
+      }) {};
+    arjen-grey-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "arjen-grey-theme";
+        ename = "arjen-grey-theme";
+        version = "20170522.1347";
+        src = fetchFromGitHub {
+          owner = "credmp";
+          repo = "arjen-grey-theme";
+          rev = "4cd0be72b65d42390e2105cfdaa408a1ead8d8d1";
+          sha256 = "1n5axwn498ahb6984ir1zfl8vvwgbvq9bbrdfzydkmjljhgrp0rd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/arjen-grey-theme";
+          sha256 = "18q66f7hhys2ab9ljsdp9013mp7d6v6d1lrb0d1bb035r1b4pfj7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/arjen-grey-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    artbollocks-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "artbollocks-mode";
+        ename = "artbollocks-mode";
+        version = "20170523.2122";
+        src = fetchFromGitHub {
+          owner = "sachac";
+          repo = "artbollocks-mode";
+          rev = "4a907e470bf345b88c3802c1241ce2b8cf4123ee";
+          sha256 = "1l1dwhdfd5bwx92k84h5v47pv9my4p4wj0wq8hrwvwzwlv8dzn2w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/artbollocks-mode";
+          sha256 = "0dlnxicn6nzyiz44y92pbl4nzr9jxfb9a99wacjrwq2ahdrwhhjp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/artbollocks-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    arview = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "arview";
+        ename = "arview";
+        version = "20160419.1409";
+        src = fetchFromGitHub {
+          owner = "afainer";
+          repo = "arview";
+          rev = "5437b4221b64b238c273a651d4792c577dba6d45";
+          sha256 = "1yvirfmvf6v5khl7zhx2ddv9bbxnx1qhwfzi0gy2nmbxlykb6s2j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/arview";
+          sha256 = "0d935lj0x3rbar94l7288xrgbcp1wmz6r2l0b7i89r5piczyiy1y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/arview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    asilea = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "asilea";
+        ename = "asilea";
+        version = "20150105.725";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "asilea";
+          rev = "2aab1cc63b64ef08d12e84fd7ba5c94065f6039f";
+          sha256 = "1s973vzivibaqjb8acn4ylrdasxh17jcfmmvqp4wm05nwhg75597";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/asilea";
+          sha256 = "1lb8nr6r6yy06m4pxg8w9ja4zv8k5xwhl95v2wv95y1qwhgnwg3j";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/asilea";
+          license = lib.licenses.free;
+        };
+      }) {};
+    asn1-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "asn1-mode";
+        ename = "asn1-mode";
+        version = "20170728.1926";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "asn1-mode";
+          rev = "d5d4a8259daf708411699bcea85d322f18beb972";
+          sha256 = "067khpi4ghzyifrk1vhi57n3alp67qks4k4km11hasiavi5gsjmp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/asn1-mode";
+          sha256 = "0iswisb08dqz7jc5ra4wcdhbmglildgyrb547dm5362xmvm9ifmy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/asn1-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    assess = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , m-buffer
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "assess";
+        ename = "assess";
+        version = "20170504.657";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "assess";
+          rev = "e5b0415126c6bd24bd220759ff04220d963a0195";
+          sha256 = "04242jhrajd9qi9dzngv33730sqhymgr0f18hf92fgb2k5649lqk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/assess";
+          sha256 = "0xj3f48plwxmibax00qn15ya7s0h560xzwr8nkwl5r151v1mc9rr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs m-buffer ];
+        meta = {
+          homepage = "https://melpa.org/#/assess";
+          license = lib.licenses.free;
+        };
+      }) {};
+    async = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "async";
+        ename = "async";
+        version = "20180527.1030";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "emacs-async";
+          rev = "6fa6a866b4b31908166e010ac60e77927bdbfc5a";
+          sha256 = "0m4nwc032xhwx3k1948zs3nz80rxnr1qsfdqmbxwm5vyx9mmqm9n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/async";
+          sha256 = "0s2qrmkqqfgi1ilzbj0rfk27f89p4dycdl1lqkbsm23j0zya53w4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/async";
+          license = lib.licenses.free;
+        };
+      }) {};
+    async-await = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , promise }:
+      melpaBuild {
+        pname = "async-await";
+        ename = "async-await";
+        version = "20170208.350";
+        src = fetchFromGitHub {
+          owner = "chuntaro";
+          repo = "emacs-async-await";
+          rev = "da472e38bb7b8eaeea3f81ffd13e4006c31e9e6f";
+          sha256 = "02mqlf07bq24c4gg12zgyyg3a3dqnwygxkm70w7ziwr6hv05kzdh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/async-await";
+          sha256 = "1534rhr4j74qbndafdj9q2wggcn8gphhjn3id8p27wyxr5sh93ms";
+          name = "recipe";
+        };
+        packageRequires = [ emacs promise ];
+        meta = {
+          homepage = "https://melpa.org/#/async-await";
+          license = lib.licenses.free;
+        };
+      }) {};
+    at = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "at";
+        ename = "@";
+        version = "20181013.1128";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "at-el";
+          rev = "fe78a75c88429343f017ccd74e62bd9465dba50a";
+          sha256 = "1c11r3rlj1ddsyx789960crmwbm0ck7yg9yb8zirq139j5wn2nsx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/@";
+          sha256 = "0da0xqk8fhz8aij3zmpp4bz3plpvfq2riyy17i7ny4ralxb3g08z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/@";
+          license = lib.licenses.free;
+        };
+      }) {};
+    atom-dark-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "atom-dark-theme";
+        ename = "atom-dark-theme";
+        version = "20181022.902";
+        src = fetchFromGitHub {
+          owner = "whitlockjc";
+          repo = "atom-dark-theme-emacs";
+          rev = "5c8610d0b45a536b8f7f9777297c86362685a357";
+          sha256 = "15mjn5z7f7x8k4lbab5xv2r88s9ch9b58znv6vwpqakp63rx8hsx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/atom-dark-theme";
+          sha256 = "1ci61blm7wc83wm2iyax017ai4jljyag5j1mvw86rimmmjzr0v8f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/atom-dark-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    atom-one-dark-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "atom-one-dark-theme";
+        ename = "atom-one-dark-theme";
+        version = "20181010.648";
+        src = fetchFromGitHub {
+          owner = "jonathanchu";
+          repo = "atom-one-dark-theme";
+          rev = "8cba629dce7a2c53c690337915fdcaa80b4af769";
+          sha256 = "1ajfw5mr6mm5qmxlmw09k8i4cpx6jchgxrpmrgnk17h04r5fznmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/atom-one-dark-theme";
+          sha256 = "0wwnkhq7vyysqiqcxc1jsn98155ri4mf4w03k7inl1f8ffpwahvw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/atom-one-dark-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    atomic-chrome = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , let-alist
+                                 , lib
+                                 , melpaBuild
+                                 , websocket }:
+      melpaBuild {
+        pname = "atomic-chrome";
+        ename = "atomic-chrome";
+        version = "20180617.24";
+        src = fetchFromGitHub {
+          owner = "alpha22jp";
+          repo = "atomic-chrome";
+          rev = "a505f638866f9e7b913784be0dc84f338e9ad449";
+          sha256 = "081465ahis2rvlklzn2vakbwn5dgr43ks4csp3arnlj11b43f3ai";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/atomic-chrome";
+          sha256 = "0dx12mjdc4vhbvrcl61a7j247mgs71vvy0qqj6czbpfawfl46am9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist websocket ];
+        meta = {
+          homepage = "https://melpa.org/#/atomic-chrome";
+          license = lib.licenses.free;
+        };
+      }) {};
+    attrap = callPackage ({ dash
+                          , emacs
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , flycheck
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "attrap";
+        ename = "attrap";
+        version = "20181114.41";
+        src = fetchFromGitHub {
+          owner = "jyp";
+          repo = "attrap";
+          rev = "f0336cf81a7e3a368a29d7125db652494d28ad61";
+          sha256 = "0sgn45lv5ca5hw8zrv76d663k1v5g9jdzrxyxfyr1yjrr90x72cr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/attrap";
+          sha256 = "1gxnrlsn9xcnnx0nhjxnhrz9bdpk2kpzjhj8jhjmwws9y361fimh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f flycheck s ];
+        meta = {
+          homepage = "https://melpa.org/#/attrap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auctex-latexmk = callPackage ({ auctex
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "auctex-latexmk";
+        ename = "auctex-latexmk";
+        version = "20170618.936";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "auctex-latexmk";
+          rev = "64967712b1bbfac8069aa5940fddef938a692a1a";
+          sha256 = "0syd65b6x6lz6as5ih5pldmwgbmq0v3d9pay2n04vqrvsij6m3qy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auctex-latexmk";
+          sha256 = "1rdlgkiwlgm06i1gjxcfciz6wgdskfhln8qhixyfxk7pnz0ax327";
+          name = "recipe";
+        };
+        packageRequires = [ auctex ];
+        meta = {
+          homepage = "https://melpa.org/#/auctex-latexmk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auctex-lua = callPackage ({ auctex
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , lua-mode
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "auctex-lua";
+        ename = "auctex-lua";
+        version = "20151121.810";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "auctex-lua";
+          rev = "799cd8ac10c96991bb63d9aa60528ae5d8c786b5";
+          sha256 = "0lgfgvnaln5rhhwgcrzwrhbj0gz8sgaf6xxdl7njf3sa6bfgngsz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auctex-lua";
+          sha256 = "0v999jvinljkvhbn205p36a6jfzppn0xvflvzr8mid1hnqlrpjhf";
+          name = "recipe";
+        };
+        packageRequires = [ auctex lua-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/auctex-lua";
+          license = lib.licenses.free;
+        };
+      }) {};
+    audio-notes-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "audio-notes-mode";
+        ename = "audio-notes-mode";
+        version = "20170611.1459";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "audio-notes-mode";
+          rev = "fa38350829c7e97257efc746a010471d33748a68";
+          sha256 = "1srg6rg3j9ri2cyr4g78dfqq3fhpn6hf3mq4iz2jfqjayppfv38b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/audio-notes-mode";
+          sha256 = "0q88xmi7jbrx47nvbbmwggbm6i7agzpnv5y7cpdh73lg165xsz2h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/audio-notes-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aurel = callPackage ({ bui
+                         , dash
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "aurel";
+        ename = "aurel";
+        version = "20170114.137";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "aurel";
+          rev = "fc7ad208f43f8525f84a18941c9b55f956df8961";
+          sha256 = "0mcbw8p4wrnnr39wzkfz9kc899w0k1jb00q1926mchf202cmnz94";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aurel";
+          sha256 = "13zyi55ksv426pcksbm3l9s6bmp102w7j1xbry46bc48al6i2nnl";
+          name = "recipe";
+        };
+        packageRequires = [ bui dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/aurel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aurora-config-mode = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "aurora-config-mode";
+        ename = "aurora-config-mode";
+        version = "20180216.1502";
+        src = fetchFromGitHub {
+          owner = "bdd";
+          repo = "aurora-config-mode.el";
+          rev = "8273ec7937a21b469b9dbb6c11714255b890f410";
+          sha256 = "1dlhf35hhjgkd9bqbpwrb825g1z6nh14mg31jg2avv55s28j0riy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aurora-config-mode";
+          sha256 = "1hpjwidqmjxanijsc1imc7ww9abbylmkin1p0846fbz1hz3a603c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/aurora-config-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auth-source-pass = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "auth-source-pass";
+        ename = "auth-source-pass";
+        version = "20181106.548";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "auth-password-store";
+          rev = "63c0631896b2f2ed6b359e026c6a7949932aa0bf";
+          sha256 = "1hf9106fdkmr9kzpykbx8s0krnpgjv2w42c4ly1yxw9d5dg0kkb6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auth-source-pass";
+          sha256 = "0icwdwz2zy3f9ynksr81pgq482iapsbx8lpyssiklyw0xgd1k8ak";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/auth-source-pass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-async-byte-compile = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "auto-async-byte-compile";
+        ename = "auto-async-byte-compile";
+        version = "20160915.2154";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "auto-async-byte-compile";
+          rev = "8681e74ddb8481789c5dbb3cafabb327db4c4484";
+          sha256 = "1g98gla9qdqmifsxakhkbxlljy2ln1s3wfahk9zycrwgzfjlsdf4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-async-byte-compile";
+          sha256 = "0ks6xsxzayiyd0jl8m36xlc5p57p21qbhgq2mmz50a2lhpxxfiyg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-async-byte-compile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-auto-indent = callPackage ({ cl-lib ? null
+                                    , es-lib
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "auto-auto-indent";
+        ename = "auto-auto-indent";
+        version = "20131106.1103";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "auto-auto-indent";
+          rev = "0139378577f936d34b20276af6f022fb457af490";
+          sha256 = "1whbvqylwnxg8d8gn55kcky39rgyc49rakyxlbkplh813lk6lxb7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-auto-indent";
+          sha256 = "08s73pnyrmklb660jl5rshncpq31z3m9fl55v7453ch8syp7gzh7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib es-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-auto-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-compile = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , packed }:
+      melpaBuild {
+        pname = "auto-compile";
+        ename = "auto-compile";
+        version = "20180321.807";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "auto-compile";
+          rev = "6ce4255ab9a0b010ef8414c5bd9a6d6d9eea012f";
+          sha256 = "013vw4sgw6hpz7kskilndv7i7ik40asrkgicghjbygwk0lj5ran3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-compile";
+          sha256 = "08k9wqk4yysps8n5n50v7lpadwsnm553pv9p7m242fwbgbsgz6nf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs packed ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-compile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , popup }:
+      melpaBuild {
+        pname = "auto-complete";
+        ename = "auto-complete";
+        version = "20170124.1845";
+        src = fetchFromGitHub {
+          owner = "auto-complete";
+          repo = "auto-complete";
+          rev = "2e83566ddfa758c69afe50b8a1c62a66f47471e3";
+          sha256 = "1rkqjq7wr4aavg08i8mq13w85z14xdhfmpbipj5mhwlpyrrci4bk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete";
+          sha256 = "1c4ij5bnclg94jdzhkqvq2vxwv6wvs051mbki1ibjm5f2hlacvh3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib popup ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-auctex = callPackage ({ auto-complete
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , yasnippet }:
+      melpaBuild {
+        pname = "auto-complete-auctex";
+        ename = "auto-complete-auctex";
+        version = "20140223.958";
+        src = fetchFromGitHub {
+          owner = "monsanto";
+          repo = "auto-complete-auctex";
+          rev = "855633f668bcc4b9408396742a7cb84e0c4a2f77";
+          sha256 = "1wri8q5llpy1q1h4ac4kjnnkgj6fby8i9vrpr6mrb13d4gnk4gr2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-auctex";
+          sha256 = "00npvryds5wd3d5a13r9prlvw6vvjlag8d32x5xf9bfmmvs0fgqh";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-auctex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-c-headers = callPackage ({ auto-complete
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-c-headers";
+        ename = "auto-complete-c-headers";
+        version = "20150911.2023";
+        src = fetchFromGitHub {
+          owner = "mooz";
+          repo = "auto-complete-c-headers";
+          rev = "52fef720c6f274ad8de52bef39a343421006c511";
+          sha256 = "12mzi6bwg702sp0f0wd1ag555blbpk252rr9rqs03bn8pkw89h4n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-c-headers";
+          sha256 = "02pkrxvzrpyjrr2fkxnl1qw06aspzv8jlp2c1piln6zcjd92l3j7";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-c-headers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-chunk = callPackage ({ auto-complete
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-chunk";
+        ename = "auto-complete-chunk";
+        version = "20140225.146";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "auto-complete-chunk";
+          rev = "a9aa77ffb84a1037984a7ce4dda25074272f13fe";
+          sha256 = "1zhbpxpl443ghpkl9i68jcjfcw1vnf8ky06pf5qjjmqbxlcyd9li";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-chunk";
+          sha256 = "1937j1xm20vfcqm9ig4nvciqfkz7rpw0nsfhlg69gkmv0nqszdr3";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-chunk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-clang = callPackage ({ auto-complete
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-clang";
+        ename = "auto-complete-clang";
+        version = "20140409.52";
+        src = fetchFromGitHub {
+          owner = "brianjcj";
+          repo = "auto-complete-clang";
+          rev = "a195db1d0593b4fb97efe50885e12aa6764d998c";
+          sha256 = "12y6f47xbjl4gy14j2f5wlisy5vl6rhx74n27w61pjv38m0a7mi1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-clang";
+          sha256 = "1rnmphl7ml5ryjl5ka2l58hddir8b34iz1rm905wdwh164piljva";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-clang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-clang-async = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-clang-async";
+        ename = "auto-complete-clang-async";
+        version = "20130526.814";
+        src = fetchFromGitHub {
+          owner = "Golevka";
+          repo = "emacs-clang-complete-async";
+          rev = "5eb63c8a1e4ca3af124baf0f8f801b949888f9b8";
+          sha256 = "09f8hqs9n13lkb7b352ig07b9xm1w0mbbnqfy2s5cw4cppmakf2n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-clang-async";
+          sha256 = "1jj0jn1v3070g7g0j5gvpybv145kki8nsjxqb8fjf9qag8ilfkjh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-clang-async";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-distel = callPackage ({ auto-complete
+                                        , distel-completion-lib
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-distel";
+        ename = "auto-complete-distel";
+        version = "20180827.644";
+        src = fetchFromGitHub {
+          owner = "sebastiw";
+          repo = "distel-completion";
+          rev = "acc4c0a5521904203d797fe96b08e5fae4233c7e";
+          sha256 = "0yvp3dwa9mwfyrqla27ycwyjad4bp1267bxv0chxcr4528hnygl3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-distel";
+          sha256 = "0ca242gl8dl4rmg8qqyhgxvf46fprl2npbq2w8f6s546s9nql4jk";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete distel-completion-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-distel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-exuberant-ctags = callPackage ({ auto-complete
+                                                 , fetchFromGitHub
+                                                 , fetchurl
+                                                 , lib
+                                                 , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-exuberant-ctags";
+        ename = "auto-complete-exuberant-ctags";
+        version = "20140320.24";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "auto-complete-exuberant-ctags";
+          rev = "ff6121ff8b71beb5aa606d28fd389c484ed49765";
+          sha256 = "1fqgyg986fg1dzac5wa97bx82mfddqb6qrfnpr3zksmw3vgykxr0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-exuberant-ctags";
+          sha256 = "1i2s3ycc8jafkzdsz3kbvx1hh95ydi5s6rq6n0wzw1kyy3km35gd";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-exuberant-ctags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-nxml = callPackage ({ auto-complete
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-nxml";
+        ename = "auto-complete-nxml";
+        version = "20140220.2058";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "auto-complete-nxml";
+          rev = "ac7b09a23e45f9bd02affb31847263de4180163a";
+          sha256 = "18bf1kw85mab0zp7rn85cm1nxjxg5c1dmiv0j0mjwzsv8an4px5y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-nxml";
+          sha256 = "0viscr5k1carn9vhflry16kgihr6fvh6h36b049pgnk6ww085k6a";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-nxml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-pcmp = callPackage ({ auto-complete
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , log4e
+                                      , melpaBuild
+                                      , yaxception }:
+      melpaBuild {
+        pname = "auto-complete-pcmp";
+        ename = "auto-complete-pcmp";
+        version = "20140226.2251";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "auto-complete-pcmp";
+          rev = "dc5c0af834d327dd686d74a4171e5d9170007a6c";
+          sha256 = "0ygak7hypc27d0wvciksnmg8c5njw2skf1ml60vs63a1krkax63i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-pcmp";
+          sha256 = "1mpgkwj8jwpvxphlm6iaprwjrldmihbgg97jav0fbm1kjnm4azna";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-pcmp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-rst = callPackage ({ auto-complete
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-rst";
+        ename = "auto-complete-rst";
+        version = "20140225.144";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "auto-complete-rst";
+          rev = "4803ce41a96224e6fa54e6741a5b5f40ebed7351";
+          sha256 = "107svb82cgfns9kcrmy3hh56cab81782jkbz5i9959ms81xizfb8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-rst";
+          sha256 = "0dazkpnzzr0imb2a01qq8l60jxhhlknzjx7wccnbm7d2rk3338m6";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-rst";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-sage = callPackage ({ auto-complete
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , sage-shell-mode }:
+      melpaBuild {
+        pname = "auto-complete-sage";
+        ename = "auto-complete-sage";
+        version = "20160514.51";
+        src = fetchFromGitHub {
+          owner = "stakemori";
+          repo = "auto-complete-sage";
+          rev = "51b8e3905196d266e1f8aa47881189833151b398";
+          sha256 = "139in1jgxg43v7ji4i1qmxbgspr71h95lzlz0fvdk78vkxc5842b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-sage";
+          sha256 = "02sxbir3arvmnkvxgndlkln9y05jnlv6i8czd6a0wcxk4nj43lq1";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete sage-shell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-sage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-dictionary = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "auto-dictionary";
+        ename = "auto-dictionary";
+        version = "20150410.910";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "auto-dictionary-mode";
+          rev = "b364e08009fe0062cf0927d8a0582fad5a12b8e7";
+          sha256 = "0rfjx0x2an28821shgb4v5djza4kwn5nnrsl2cvh3px4wrvw3izp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-dictionary";
+          sha256 = "1va485a8lxvb3507kr83cr6wpssxnf8y4l42mamn9daa8sjx3q16";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-dictionary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-dim-other-buffers = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "auto-dim-other-buffers";
+        ename = "auto-dim-other-buffers";
+        version = "20180612.1641";
+        src = fetchFromGitHub {
+          owner = "mina86";
+          repo = "auto-dim-other-buffers.el";
+          rev = "ec74b4803adeadf06296c84595fb6ccf4e1b4a3f";
+          sha256 = "0l08kx12k97nag8khb63rz5fl1r9gahgmjg5073h25lypl74895n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-dim-other-buffers";
+          sha256 = "0n9d23sfcmkjfqlm80vrgf856wy08ak4n4rk0z7vadq07yj46zxh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-dim-other-buffers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-highlight-symbol = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "auto-highlight-symbol";
+        ename = "auto-highlight-symbol";
+        version = "20130313.243";
+        src = fetchFromGitHub {
+          owner = "gennad";
+          repo = "auto-highlight-symbol";
+          rev = "26573de912d760e04321b350897aea70958cee8b";
+          sha256 = "0jfiax1qqnyznhlnqkjsr9nnv7fpjywvfhj9jq59460j0nbrgs5c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-highlight-symbol";
+          sha256 = "02mkji4sxym07jf5ww5kgv1c18x0xdfn8cmvgns5h4gij64lnr66";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-highlight-symbol";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-indent-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "auto-indent-mode";
+        ename = "auto-indent-mode";
+        version = "20171221.2106";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "auto-indent-mode.el";
+          rev = "28069360a7f89ad0286fd6a53db550752ec58488";
+          sha256 = "14sqmv320ryfljpxbjw9xphj6bz1ccjk3ih4cm1r8aryyhxiacii";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-indent-mode";
+          sha256 = "1nk78p8lqs8cx90asfs8iaqnwwyy8fi5bafaprm9c0nrxz299ibz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-indent-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-minor-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "auto-minor-mode";
+        ename = "auto-minor-mode";
+        version = "20180527.423";
+        src = fetchFromGitHub {
+          owner = "joewreschnig";
+          repo = "auto-minor-mode";
+          rev = "c62f4e04c7b73835c399f0348bea0ade2720bcbb";
+          sha256 = "0vqqy6nbb884h8qhzqvjycvfqbm9pbhqxr3dlxrhfx8m6c3iasq1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-minor-mode";
+          sha256 = "1dpdylrpw1pvlmhh229b3lqs07drx9kdhw4vcv5a48qah14dz6qa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-org-md = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "auto-org-md";
+        ename = "auto-org-md";
+        version = "20180213.1543";
+        src = fetchFromGitHub {
+          owner = "jamcha-aa";
+          repo = "auto-org-md";
+          rev = "9318338bdb7fe8bd698d88f3af89b2d6413efdd2";
+          sha256 = "1dzxc1f4yvj8xww5drcpzmn3fyi8ziimh1cmy6l3i399l1zl0njj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-org-md";
+          sha256 = "1yh9g8407kym6r0b8kr18qshxlrkw47ac17a9lvql0ksshfmnqvk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-org-md";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-package-update = callPackage ({ dash
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "auto-package-update";
+        ename = "auto-package-update";
+        version = "20180712.1345";
+        src = fetchFromGitHub {
+          owner = "rranelli";
+          repo = "auto-package-update.el";
+          rev = "55870d313fbe9db40b1a2b59dbc420ba66a9297e";
+          sha256 = "06hnr7id7w774adip0yffxh6c2xk27j2kch03r8y0v19mnfrvb39";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-package-update";
+          sha256 = "0fdcniq5mrwbc7yvma4088r0frdfvc2ydfil0s003faz0nrjcp8k";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-package-update";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-pause = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "auto-pause";
+        ename = "auto-pause";
+        version = "20160426.516";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "auto-pause";
+          rev = "a4d778de774ca3895542cb559a953e0d98657338";
+          sha256 = "1pxhqwvg059pslin6z87jd8d0q44ljwvdn6y23ffrz9kfpn3m5m2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-pause";
+          sha256 = "0cdak2kicxylj5f161kia0bzzqad426y8cj4zf04gcl0nndijyrc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-pause";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-read-only = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "auto-read-only";
+        ename = "auto-read-only";
+        version = "20170305.2043";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "auto-read-only.el";
+          rev = "20e26d9eb017e6ab61fbd53f2ac2511b0afe3446";
+          sha256 = "140w3gdbvyajy9rq82mc24mk7zsvhq4wc8yrrdwlzhzmqaflcz76";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-read-only";
+          sha256 = "1cvh2c7pgdxgnl0fr1lymz9pf573hj6dn8cjcb64wdczkrci7yk5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-read-only";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-save-buffers-enhanced = callPackage ({ fetchFromGitHub
+                                              , fetchurl
+                                              , lib
+                                              , melpaBuild }:
+      melpaBuild {
+        pname = "auto-save-buffers-enhanced";
+        ename = "auto-save-buffers-enhanced";
+        version = "20161108.2310";
+        src = fetchFromGitHub {
+          owner = "kentaro";
+          repo = "auto-save-buffers-enhanced";
+          rev = "461e8c816c1b7c650be5f209078b381fe55da8c6";
+          sha256 = "0ckjijjpqpbv9yrqfnl3x9hcdwwdgvm5r2vyx1a9nk4d3i0hd9i5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-save-buffers-enhanced";
+          sha256 = "123vf6nnvdhrrfjn8n8h8a11mkqmy2zm3w3yn99np0zj31x8z7bb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-save-buffers-enhanced";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-shell-command = callPackage ({ deferred
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , popwin }:
+      melpaBuild {
+        pname = "auto-shell-command";
+        ename = "auto-shell-command";
+        version = "20180817.802";
+        src = fetchFromGitHub {
+          owner = "ongaeshi";
+          repo = "auto-shell-command";
+          rev = "a8f9213e3c773b5687b81881240e6e648f2f56ba";
+          sha256 = "1b0kgqh521y16cx84rbsr244i4fs3l8h4wqjy2zdpwbpbikx1hxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-shell-command";
+          sha256 = "1i78fh72i8yv91rnabf0vs78r43qrjkr36hndmn5ya2xs3b1g41j";
+          name = "recipe";
+        };
+        packageRequires = [ deferred popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-shell-command";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-sudoedit = callPackage ({ emacs
+                                 , f
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "auto-sudoedit";
+        ename = "auto-sudoedit";
+        version = "20180915.6";
+        src = fetchFromGitHub {
+          owner = "ncaq";
+          repo = "auto-sudoedit";
+          rev = "16bfa23e6d9c30968a6b6364ada17c88138255f3";
+          sha256 = "1f2rqi5nqa40lgcsnbxk9r4dzn6kcachh3qjv76lm9lzyc41c8ln";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-sudoedit";
+          sha256 = "1clp52fqxsilyi62p1cabhan55lbwax6fqlhccyjbl36yrdig3fh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-sudoedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-virtualenv = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , pyvenv
+                                   , s }:
+      melpaBuild {
+        pname = "auto-virtualenv";
+        ename = "auto-virtualenv";
+        version = "20170125.1117";
+        src = fetchFromGitHub {
+          owner = "marcwebbie";
+          repo = "auto-virtualenv";
+          rev = "fd98a2d34cb6828e59317a50f8763ee1fd672b00";
+          sha256 = "1fsigqngd9a2zkkwzz86ynpr8gvm56329clw8zb8vq0058rdxsjk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-virtualenv";
+          sha256 = "0xv51g74l5pxa3s185867dpc98m6y26xbj5wgz7f9177qchvdbhk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib pyvenv s ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-virtualenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-virtualenvwrapper = callPackage ({ cl-lib ? null
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild
+                                          , s
+                                          , virtualenvwrapper }:
+      melpaBuild {
+        pname = "auto-virtualenvwrapper";
+        ename = "auto-virtualenvwrapper";
+        version = "20181006.237";
+        src = fetchFromGitHub {
+          owner = "robert-zaremba";
+          repo = "auto-virtualenvwrapper.el";
+          rev = "72cc9168db475e8328019f9592493560dab832a5";
+          sha256 = "1cvc2k5x0ircnpppwwmm813h7c59pyswz4dfgwqqrk325zcnp80f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-virtualenvwrapper";
+          sha256 = "1v82z922d9sadwvyrl4iddsa19f5k43s6iwn8w146jcl0v42bkmd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib s virtualenvwrapper ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-virtualenvwrapper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-yasnippet = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yasnippet }:
+      melpaBuild {
+        pname = "auto-yasnippet";
+        ename = "auto-yasnippet";
+        version = "20180503.1208";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "auto-yasnippet";
+          rev = "438c160b94975e9332b4ae3845e986ae6166dd47";
+          sha256 = "07i46xfphvsspd0ls5jjlch650h24h79yfvhbmizrpyrh3616smd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-yasnippet";
+          sha256 = "02281gyy07cy72a29fjsixg9byqq3izb9m1jxv98ni8pcy3bpsqa";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-yasnippet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autobookmarks = callPackage ({ cl-lib ? null
+                                 , dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "autobookmarks";
+        ename = "autobookmarks";
+        version = "20180531.1206";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "autobookmarks";
+          rev = "e971aa49d97da9f7ed760b37e0b674e45f1c5673";
+          sha256 = "04453h3s9g7ka028s4f97z606czq3vsvphrmba533jkl8lk3hpi8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autobookmarks";
+          sha256 = "11zhg3y9fb5mq67fwsnjrql9mnwkp3hwib7fpllb3yyf2yywc8zp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/autobookmarks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autodisass-java-bytecode = callPackage ({ fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "autodisass-java-bytecode";
+        ename = "autodisass-java-bytecode";
+        version = "20151005.912";
+        src = fetchFromGitHub {
+          owner = "gbalats";
+          repo = "autodisass-java-bytecode";
+          rev = "3d61dbe266133c950b39e880f78d142751c7dc4c";
+          sha256 = "1pf2mwnicj5x2kksxwmrzz2vfxj9y9r6rzgc1fl8028mfrmrmg8s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autodisass-java-bytecode";
+          sha256 = "1k19nkbxnysm3qkpdhz4gv2x9nnrp94xl40x84q8n84s6xaan4dc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/autodisass-java-bytecode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autodisass-llvm-bitcode = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "autodisass-llvm-bitcode";
+        ename = "autodisass-llvm-bitcode";
+        version = "20150410.1825";
+        src = fetchFromGitHub {
+          owner = "gbalats";
+          repo = "autodisass-llvm-bitcode";
+          rev = "14bb1bfe2be3b04d6e0c87a7a9d1e88ce15506d0";
+          sha256 = "1hyp49bidwc53cr25wwwyzcd0cbbqzxkfcpnccimphv24qfsai85";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autodisass-llvm-bitcode";
+          sha256 = "0bh73nzll9jp7kiqfnb5dwkipw85p3c3cyq58s0nghig02z63j01";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/autodisass-llvm-bitcode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    automargin = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "automargin";
+        ename = "automargin";
+        version = "20131112.14";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "automargin";
+          rev = "f0dce37b7ece368dd805e03b5e2af6e571038bc6";
+          sha256 = "0p95kszsllkj11dyn9vq9ycp8mlir2mzh80gj5kwmkvd10s2s3c6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/automargin";
+          sha256 = "0llqz01wmacc0f8j3h7r0j57vkmzksl9vj1h0igfxzpm347mm9q8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/automargin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autopair = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "autopair";
+        ename = "autopair";
+        version = "20160304.437";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "autopair";
+          rev = "2b6d72bccb0ebba6e7e711528872b898b0c65b0a";
+          sha256 = "09p56vi5zgm2djglimwyhv4n4gyydjndzn46vg9qzzlxvvmw66i1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autopair";
+          sha256 = "0l2ypsj3dkasm0lj9jmnaqjs3rv97ldfw8cmayv77mzfd6lhjmh3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/autopair";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autotest = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "autotest";
+        ename = "autotest";
+        version = "20180323.1542";
+        src = fetchFromGitHub {
+          owner = "zenspider";
+          repo = "elisp";
+          rev = "24ee17ae5023362758f0762bf711d5e470dcfe73";
+          sha256 = "10al1r0fs6bpz4mfikyb9rm0zgpg56n12y0mv4kz856sdbzgllcv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autotest";
+          sha256 = "0f46m5pc40i531dzfnhkcn192dcs1q20y083c1c0wg2zhjcdr5iy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/autotest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autotetris-mode = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "autotetris-mode";
+        ename = "autotetris-mode";
+        version = "20141114.846";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "autotetris-mode";
+          rev = "7d348d33829bc89ddbd2b4d5cfe5073c3b0cbaaa";
+          sha256 = "14pjsb026mgjf6l3dggy255knr7c1vfmgb6kgafmkzvr96aglcdc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autotetris-mode";
+          sha256 = "0k4yq4pvrs1zaf9aqxmlb6l2v4k774zbxj4zcx49w3l1h8gwxpbb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/autotetris-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autothemer = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "autothemer";
+        ename = "autothemer";
+        version = "20180920.223";
+        src = fetchFromGitHub {
+          owner = "jasonm23";
+          repo = "autothemer";
+          rev = "69488c71dfc182cf2e7be2d745037f230ade678e";
+          sha256 = "0l3xsnp5j46jcjc1nkfbfg0pyzdi94rn0h5idfpqikj6f3ralh10";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autothemer";
+          sha256 = "0wahmbihyr3dx4lgiwi7041gvmmqlzlv7ss25fw90srs9n2h05gj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/autothemer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autumn-light-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "autumn-light-theme";
+        ename = "autumn-light-theme";
+        version = "20150515.747";
+        src = fetchFromGitHub {
+          owner = "aalpern";
+          repo = "emacs-color-theme-autumn-light";
+          rev = "26a52a79e7fff401af6d24c4365bb4a250c1136a";
+          sha256 = "0nc71mxp57h5dnd1vrgc9vh0lrjzq5mfm8li4b11l2gpnbv4s4wi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autumn-light-theme";
+          sha256 = "0g3wqv1yw3jycq30mcj3w4sn9nj6i6gyd2ljzimf547ggcai536a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/autumn-light-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avandu = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "avandu";
+        ename = "avandu";
+        version = "20170101.1103";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "avandu";
+          rev = "f44588d8e747fa880411cb4542cc39962252b90a";
+          sha256 = "097wls9k6qrf12nn8mpszfbqsaqc81956yqxns1sjs6dmjqi0c7z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avandu";
+          sha256 = "174bd3vbvh0l9282bg8575nqc71zkg90bwbxbv1b7dz8qaaczhcy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/avandu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avk-emacs-themes = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "avk-emacs-themes";
+        ename = "avk-emacs-themes";
+        version = "20180921.533";
+        src = fetchFromGitHub {
+          owner = "avkoval";
+          repo = "avk-emacs-themes";
+          rev = "c0669408cfa423e0d38f990778232a771f63f05e";
+          sha256 = "0fyfv8nqkm3a58nhaj823cgazpcggw33dbpjnh4plp5l70gvc5hc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avk-emacs-themes";
+          sha256 = "0yimnfm50qsq505fc67b3qnxx2aiyz5a7bw87zkjrdnar12vv144";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/avk-emacs-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avy = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "avy";
+        ename = "avy";
+        version = "20181009.948";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "avy";
+          rev = "df4c4ac488ee59bc44f8658d9fcca0c86fb32c5c";
+          sha256 = "1kwxyv4x3jbfh0c769narkigwly95zyc0dr9vz23plis1cxp9s8z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avy";
+          sha256 = "0gjq79f8jagbngp0shkcqmwhisc3hpgwfk34kq30nb929nbnlmag";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/avy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avy-flycheck = callPackage ({ avy
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , lib
+                                , melpaBuild
+                                , seq }:
+      melpaBuild {
+        pname = "avy-flycheck";
+        ename = "avy-flycheck";
+        version = "20160720.800";
+        src = fetchFromGitHub {
+          owner = "magicdirac";
+          repo = "avy-flycheck";
+          rev = "5522f3bbbed1801d9278ed696ec0cbba38352985";
+          sha256 = "1nwc8xid0k6bnnpgsrrlwx71a04llkiapjsbchp9jgcf11l5mghw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avy-flycheck";
+          sha256 = "0xvgysbx8yxhypms6639kk3cn0x6y6njnhnn9lf6hxsi96wd9y96";
+          name = "recipe";
+        };
+        packageRequires = [ avy emacs flycheck seq ];
+        meta = {
+          homepage = "https://melpa.org/#/avy-flycheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avy-menu = callPackage ({ avy
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "avy-menu";
+        ename = "avy-menu";
+        version = "20171231.2220";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "avy-menu";
+          rev = "990cc94d708c923f761be083b3a57f6f844566c8";
+          sha256 = "0kjxfg8wx5c8cixazih24s0mv4crk648v9bb6pd1i6lmh266rc6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avy-menu";
+          sha256 = "1g2bsm0jpig51jwn9f9mx6z5glb0bn4s21194xam768qin0rf4iw";
+          name = "recipe";
+        };
+        packageRequires = [ avy emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/avy-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avy-migemo = callPackage ({ avy
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , migemo }:
+      melpaBuild {
+        pname = "avy-migemo";
+        ename = "avy-migemo";
+        version = "20180716.755";
+        src = fetchFromGitHub {
+          owner = "momomo5717";
+          repo = "avy-migemo";
+          rev = "922a6dd82c0bfa316b0fbb56a9d4dd4ffa5707e7";
+          sha256 = "1a4421h15ba7lsnbh8kqm3hvs06fp830wb1nvwgpsk7vmqqi2qgl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avy-migemo";
+          sha256 = "1zvgkhma445gj1zjl8j25prw95bdpjbvfy8yr0r5liay6g2hf296";
+          name = "recipe";
+        };
+        packageRequires = [ avy emacs migemo ];
+        meta = {
+          homepage = "https://melpa.org/#/avy-migemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avy-zap = callPackage ({ avy
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "avy-zap";
+        ename = "avy-zap";
+        version = "20160921.1444";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "avy-zap";
+          rev = "6081738668ab726099ce1c711c580d9745dfaede";
+          sha256 = "0byanv32kxsd1lzvyq82xmyfx4drx5j5i10whyyq8a5hhvrpg1qy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avy-zap";
+          sha256 = "1zbkf21ggrmg1w0xaw40i3swgc1g4fz0j8p0r9djm9j120d94zkx";
+          name = "recipe";
+        };
+        packageRequires = [ avy ];
+        meta = {
+          homepage = "https://melpa.org/#/avy-zap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aws-ec2 = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , tblui }:
+      melpaBuild {
+        pname = "aws-ec2";
+        ename = "aws-ec2";
+        version = "20161007.1214";
+        src = fetchFromGitHub {
+          owner = "Yuki-Inoue";
+          repo = "aws.el";
+          rev = "5601d4f268fc34b86a02ca90cde7d3771619a368";
+          sha256 = "15idbbxsghzn737s9jppnx820nnm1srcl1418458hwfy3wqhq38g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aws-ec2";
+          sha256 = "040c69g8rhpcmrdjjg4avdmqarxx3dfzylmz62yxhfpn02qh48xd";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs tblui ];
+        meta = {
+          homepage = "https://melpa.org/#/aws-ec2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aws-snippets = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , yasnippet }:
+      melpaBuild {
+        pname = "aws-snippets";
+        ename = "aws-snippets";
+        version = "20180410.845";
+        src = fetchFromGitHub {
+          owner = "baron42bba";
+          repo = "aws-snippets";
+          rev = "a2ebae582a8c8a5f5f16dbc42ecd2ded9d70fca8";
+          sha256 = "08mbi5g321n4ir7a7ggxmh7qpl8pr06pg4rcsk8pklylvkf89k2w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aws-snippets";
+          sha256 = "1p2il4ig3nafsapa87hgghw6ri9d5qqi0hl8zjyypa06rcnag9g9";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/aws-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    axiom-environment = callPackage ({ emacs
+                                     , fetchgit
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "axiom-environment";
+        ename = "axiom-environment";
+        version = "20180823.255";
+        src = fetchgit {
+          url = "https://bitbucket.org/pdo/axiom-environment";
+          rev = "5d6b2cd12f639c11b032185c4c5fe4f5bba15b08";
+          sha256 = "1pgz24snvjii7ajha2hqqv59pjygzr60i76r4cyy0abvjxpc4xg5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/axiom-environment";
+          sha256 = "1hzfxdwhgv0z9136k7bdjhqjrkawsjmvqch6za6p7nkpd9ikr2zb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/axiom-environment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    babel = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "babel";
+        ename = "babel";
+        version = "20181115.410";
+        src = fetchFromGitHub {
+          owner = "juergenhoetzel";
+          repo = "babel";
+          rev = "972b133ca9054b900de4be8288f79c9896fef548";
+          sha256 = "0czf79yqqv5zb1jyg84fc4my8jp7gk32j3wrhr6l1a71hzydppk0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/babel";
+          sha256 = "0sdpp4iym61ni32zv75n48ylj4jib8ca6n9hyqwj1b7nqg76mm1c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/babel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    babel-repl = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "babel-repl";
+        ename = "babel-repl";
+        version = "20160504.1501";
+        src = fetchFromGitHub {
+          owner = "hung-phan";
+          repo = "babel-repl";
+          rev = "0faa2f6518a2b46236f116ca1736a314f7d9c034";
+          sha256 = "0sp0ja0346k401q5zpx3zl4pnxp4ml2jqkgk7z8i08rhdbp0c4nr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/babel-repl";
+          sha256 = "0h11i8w8s4ia1x0lm5n7bnc3db4bv0a7f7hzl27qrg38m3c7dl6x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/babel-repl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    back-button = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , list-utils
+                               , melpaBuild
+                               , nav-flash
+                               , pcache
+                               , persistent-soft
+                               , smartrep
+                               , ucs-utils }:
+      melpaBuild {
+        pname = "back-button";
+        ename = "back-button";
+        version = "20150804.1304";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "back-button";
+          rev = "98d92984a740acd1547bd7ed05cca0affdb21c3e";
+          sha256 = "0rj6a8rdwa0h2ckz7h4d91hnxqcin98l4ikbfyak2whfb47z909l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/back-button";
+          sha256 = "0vyhvm445d0rs14j5xi419akk5nd88d4hvm4251z62fmnvs50j85";
+          name = "recipe";
+        };
+        packageRequires = [
+          list-utils
+          nav-flash
+          pcache
+          persistent-soft
+          smartrep
+          ucs-utils
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/back-button";
+          license = lib.licenses.free;
+        };
+      }) {};
+    backlight = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "backlight";
+        ename = "backlight";
+        version = "20180629.1459";
+        src = fetchFromGitHub {
+          owner = "mschuldt";
+          repo = "backlight.el";
+          rev = "096e632bf100d318754d6c961c90ebb0ef29dce5";
+          sha256 = "0w9ng4rhsawcf96mnpy71h50j4mankmvjnfknxlmwiwlmx4sp0f1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/backlight";
+          sha256 = "0gzshxs9vw5wrb6pnxdaw5q4c8i0vsmc7wb0y2jyhxsr81mlxdpi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/backlight";
+          license = lib.licenses.free;
+        };
+      }) {};
+    backline = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , outline-minor-faces }:
+      melpaBuild {
+        pname = "backline";
+        ename = "backline";
+        version = "20181111.32";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "backline";
+          rev = "960deaef1d87658f79a0bd95c85946371d211590";
+          sha256 = "017w7qa74laq04h359znn9kjsqpl91gypsqsldpnlrb25jw0z0gl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/backline";
+          sha256 = "0y5y048s6r3mcgjfxpmwarnhn6lh00j9cla6qjsd83f79hw5cq4y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs outline-minor-faces ];
+        meta = {
+          homepage = "https://melpa.org/#/backline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    backup-each-save = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "backup-each-save";
+        ename = "backup-each-save";
+        version = "20180226.2157";
+        src = fetchFromGitHub {
+          owner = "conornash";
+          repo = "backup-each-save";
+          rev = "3c414b9d6b278911c95c5b8b71819e6af6f8a02a";
+          sha256 = "13pliz2ra020hhxcidkyhfa0767n188l1w5r0vpvv6zqyc2p414i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/backup-each-save";
+          sha256 = "1l7lx3vd27qypkxa0cdm8zbd9fv08xn1bf6xj6g9c49ql95xbyiv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/backup-each-save";
+          license = lib.licenses.free;
+        };
+      }) {};
+    backup-walker = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "backup-walker";
+        ename = "backup-walker";
+        version = "20130720.816";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "backup-walker";
+          rev = "934a4128c122972ac32bb9952addf279a60a94da";
+          sha256 = "0z4d8x9lkad50720lgvr8f85p1ligv07865i30lgr9ck0q04w68v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/backup-walker";
+          sha256 = "0hfr27yiiblrd0p3zhpapbj4vijfdk7wqh406xnlwf2yvnfsqycd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/backup-walker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    backward-forward = callPackage ({ emacs
+                                    , fetchFromGitLab
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "backward-forward";
+        ename = "backward-forward";
+        version = "20161228.2150";
+        src = fetchFromGitLab {
+          owner = "vancan1ty";
+          repo = "emacs-backward-forward";
+          rev = "58489957a62a0da25dfb5df902624d2548d800b4";
+          sha256 = "14v9q58vd0iggs8x8hjh24cv58g2pbwnr6zghd2anaygbj74ij24";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/backward-forward";
+          sha256 = "0kpy761xdk2s21s92cw03fgw5xq9glybrhnjv2v89xrg16vdvamf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/backward-forward";
+          license = lib.licenses.free;
+        };
+      }) {};
+    badger-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "badger-theme";
+        ename = "badger-theme";
+        version = "20140716.1932";
+        src = fetchFromGitHub {
+          owner = "ccann";
+          repo = "badger-theme";
+          rev = "80fb9f8ace37b2e8807da639f7da499a53ffefd4";
+          sha256 = "0g8smx6pi2wqv78mhxfgwg51mx5msqsgcc55xcz29aq0q3naw4z1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/badger-theme";
+          sha256 = "01h5bsqllgn6gs0wpl0y2h041007mn3ldjswkz6f3mayrgl4c6yf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/badger-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    badwolf-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "badwolf-theme";
+        ename = "badwolf-theme";
+        version = "20161004.15";
+        src = fetchFromGitHub {
+          owner = "bkruczyk";
+          repo = "badwolf-emacs";
+          rev = "ea01a3d9358e968f75e3ed15dec6a2a96ce3d9a1";
+          sha256 = "0a6adsxvmw3mgji17is75jrq3ifmzpch8rwqqyfgc99xzndvab7l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/badwolf-theme";
+          sha256 = "15n33l0iaq2pk70rpw7qdm8dlwcinfclpnlr3bs7vcb1dknp4g9v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/badwolf-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    banner-comment = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "banner-comment";
+        ename = "banner-comment";
+        version = "20180923.1211";
+        src = fetchFromGitHub {
+          owner = "WJCFerguson";
+          repo = "banner-comment";
+          rev = "ac52f6b24e590787a385c08cc3751d6f2ddca815";
+          sha256 = "1630py97ldh3w71s26jbcxk58529g03sl0padnzqj0rbqy82yw8w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/banner-comment";
+          sha256 = "0i5nkfdwfr9mcir2ijdhw563azmr5p7hyl6rfy1r04fzs8j7w2pc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/banner-comment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bap-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "bap-mode";
+        ename = "bap-mode";
+        version = "20180802.610";
+        src = fetchFromGitHub {
+          owner = "fkie-cad";
+          repo = "bap-mode";
+          rev = "dde47d417473d7c8e9f78e930c35edda31def2d6";
+          sha256 = "02083b66syd5lx3v5hw5ffkanqqg8jiimcnfam5pcxga2rfi1dpi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bap-mode";
+          sha256 = "1n0sv6d6vnv40iks18vws16psbv83v401pdd8w2d2cfhhsmmi4ii";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bap-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bar-cursor = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "bar-cursor";
+        ename = "bar-cursor";
+        version = "20180226.1645";
+        src = fetchFromGitHub {
+          owner = "ajsquared";
+          repo = "bar-cursor";
+          rev = "20cb59bedc3532a712fe7feeff3660ebd72a8107";
+          sha256 = "06b0nkcp8yjixps72nrgk2zmljc9f71cdr96jdpgssydfhn4pcdf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bar-cursor";
+          sha256 = "0f7z3mlnh3p28pmn1bnqbszcy1j68dwm8xra1wz8jgykvrdlyf2s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bar-cursor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bart-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "bart-mode";
+        ename = "bart-mode";
+        version = "20180131.1829";
+        src = fetchFromGitHub {
+          owner = "mschuldt";
+          repo = "bart-mode";
+          rev = "f6b82f0df2e2b863be7b9383a22413a2fc77f9e0";
+          sha256 = "09z1fk5wbdlqps1102l9fcccz4vb0wcxbbrc4w2r2xrphwjxy6wc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bart-mode";
+          sha256 = "0wyfsf7kqfghnci9rlk9x0rkai6x7hy3vfzkgh7s2yz081p1kfam";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bart-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    base16-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "base16-theme";
+        ename = "base16-theme";
+        version = "20181116.1043";
+        src = fetchFromGitHub {
+          owner = "belak";
+          repo = "base16-emacs";
+          rev = "629c7e3eee756c088808322bbad996d05255f0e4";
+          sha256 = "1hv7axfhi8wcq6a2pzr6pvq136yq22sq6qw7hr77nlfyz51n3kqb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/base16-theme";
+          sha256 = "115dhr3gfvdz5wv76fwpv3b4dywiwbk69qrhkfhij8vpcfybrpzx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/base16-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bash-completion = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "bash-completion";
+        ename = "bash-completion";
+        version = "20180519.920";
+        src = fetchFromGitHub {
+          owner = "szermatt";
+          repo = "emacs-bash-completion";
+          rev = "fbdc78b8770833752ac4bda28e2c3ea764bf8e76";
+          sha256 = "1ihmj2nx8sr4cfx03xrpmiqjljri6wv5ib8rgnl8ip42nqhv2g6c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bash-completion";
+          sha256 = "0l41yj0sb87i27hw6dh35l32hg4qkka6r3bpkckjnfm0xifrd9hj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bash-completion";
+          license = lib.licenses.free;
+        };
+      }) {};
+    basic-c-compile = callPackage ({ cl-lib ? null
+                                   , f
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "basic-c-compile";
+        ename = "basic-c-compile";
+        version = "20170302.312";
+        src = fetchFromGitHub {
+          owner = "nick96";
+          repo = "basic-c-compile";
+          rev = "335e96e19647ad7245fb68cf7e68cf86c5023d23";
+          sha256 = "1sq6mmg5361z30psn6x2ylpr8yxsbg3d47qai9px7p889p63384l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/basic-c-compile";
+          sha256 = "0g595d1vd97b5qqydpb6cr3ibgcm08cw8c154h35vz3cl4w86mwd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib f ];
+        meta = {
+          homepage = "https://melpa.org/#/basic-c-compile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    basic-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , seq }:
+      melpaBuild {
+        pname = "basic-mode";
+        ename = "basic-mode";
+        version = "20180919.1052";
+        src = fetchFromGitHub {
+          owner = "dykstrom";
+          repo = "basic-mode";
+          rev = "812f078240f9de09491701853569335ba6d9b5ff";
+          sha256 = "1492klgbkxb46x02kmhngccx4p9fmjvf6m4ay89j7pyaixvcqj8v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/basic-mode";
+          sha256 = "1l0ylzww7jg6l804fdrklhay4is0wx1drfi9l9wn7gcdjh76mr6g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/basic-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    basic-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "basic-theme";
+        ename = "basic-theme";
+        version = "20160817.127";
+        src = fetchFromGitHub {
+          owner = "fgeller";
+          repo = "basic-theme.el";
+          rev = "9d0fd5f56898a5237c1de3363ad416aeab7f880e";
+          sha256 = "1bnv8kkg6yy09kxns78xlbl0vwc5dz0azvgvry2a0361f48f0315";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/basic-theme";
+          sha256 = "16rgff1d0s65alh328lr93zc06zmgbzgwx1rf3k3l4d10ki4cc27";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/basic-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bats-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "bats-mode";
+        ename = "bats-mode";
+        version = "20160513.2315";
+        src = fetchFromGitHub {
+          owner = "dougm";
+          repo = "bats-mode";
+          rev = "d519f7c89f5ae17dfc33400596df4564b478315f";
+          sha256 = "1ikb4rb20ng1yq95g3ydwpk37axmiw38rjzn1av9m4cs81qby4jv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bats-mode";
+          sha256 = "1l5winy30w8fs3f5cylc3a3j3mfkvchwanlgsin7q76jivn87h7w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bats-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bazel-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "bazel-mode";
+        ename = "bazel-mode";
+        version = "20180222.2253";
+        src = fetchFromGitHub {
+          owner = "codesuki";
+          repo = "bazel-mode";
+          rev = "b7aa14516feaed40ee4910eafa81db719de0fe56";
+          sha256 = "16yjxs62h8dm63nzc04i60bnbyhm2vrpvn98ap8rad6wib2ka3vj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bazel-mode";
+          sha256 = "10590pbpg6mwkcwlm01nxf0ypw694h1b57frvn5rnc53al87i586";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bazel-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbcode-mode = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "bbcode-mode";
+        ename = "bbcode-mode";
+        version = "20180505.227";
+        src = fetchFromGitHub {
+          owner = "lassik";
+          repo = "bbcode-mode";
+          rev = "ee30d43f9029e0919a06be0dde0ed16f201647c1";
+          sha256 = "046rdjpsm0lmkyaiv3y59hab3m8mdcj4asz5n06vb83a5xibm68s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbcode-mode";
+          sha256 = "1kfxzp0916gdphp4dkk4xbramsbqmg6mazvfqni86mra41rdq6sb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/bbcode-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb = callPackage ({ fetchgit
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "bbdb";
+        ename = "bbdb";
+        version = "20180906.2011";
+        src = fetchgit {
+          url = "https://git.savannah.nongnu.org/git/bbdb.git";
+          rev = "1a6ad82b11c7059f6a19fba575146cc31c6ffa8b";
+          sha256 = "0x1f1c91py5wp0npay7xv3f3qcdaak1imr2h6xpwg611mr07848r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb";
+          sha256 = "0mm8n3dbi8lap3pjr97n2f675iy7sg476sm1vxygbc3j67rq1zb2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb- = callPackage ({ bbdb
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , log4e
+                         , melpaBuild
+                         , yaxception }:
+      melpaBuild {
+        pname = "bbdb-";
+        ename = "bbdb-";
+        version = "20140221.1554";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "bbdb-";
+          rev = "2839e84c894de2513af41053e80a277a1b483d22";
+          sha256 = "17nbnkg0zn6p89r27mk9hl6qhv6xscwdsq8iyikdw03svpr16lnp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb-";
+          sha256 = "1vzbalcchay4pxl9f1sxg0zclgc095f59dlj15pj0bqq61sbl9jf";
+          name = "recipe";
+        };
+        packageRequires = [ bbdb log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb-";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb-csv-import = callPackage ({ bbdb
+                                   , dash
+                                   , fetchFromGitLab
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , pcsv }:
+      melpaBuild {
+        pname = "bbdb-csv-import";
+        ename = "bbdb-csv-import";
+        version = "20180121.1649";
+        src = fetchFromGitLab {
+          owner = "iankelling";
+          repo = "bbdb-csv-import";
+          rev = "dbc2e0fe9e8ae65e494011044d905ae79b3cee3e";
+          sha256 = "0n52arydcsmarkpqqwxvw686cypl7iz73kzizirdjhcqmzimx9pl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb-csv-import";
+          sha256 = "0r7pc2ypd1ydqrnvcqmsg69rm047by7k0zhm563538ra82597wnm";
+          name = "recipe";
+        };
+        packageRequires = [ bbdb dash pcsv ];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb-csv-import";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb-ext = callPackage ({ bbdb
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "bbdb-ext";
+        ename = "bbdb-ext";
+        version = "20151220.1213";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "bbdb-ext";
+          rev = "fee97b1b3faa83edaea00fbc5ad3cbca5e791a55";
+          sha256 = "1ydf89mmp3zjfqdymnrwg18wclyf7psarz9f2k82pl58h0khh71g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb-ext";
+          sha256 = "0fnxcvzdyh0602rdfz3lz3vmvza4s0syz1vn2fgsn2lg3afqq7li";
+          name = "recipe";
+        };
+        packageRequires = [ bbdb ];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb-vcard = callPackage ({ bbdb
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "bbdb-vcard";
+        ename = "bbdb-vcard";
+        version = "20181005.319";
+        src = fetchFromGitHub {
+          owner = "tohojo";
+          repo = "bbdb-vcard";
+          rev = "3e8630a8c45add7b495d7ef290ba9f402b359489";
+          sha256 = "0f4ccbffp5j1jzgpqb26dgsb8k3aikzam21ilqfcq8ac4sl6l4g6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb-vcard";
+          sha256 = "1kn98b7mh9a28933r4yl8qfl9p92rpix4vkp71sar9cka0m71ilj";
+          name = "recipe";
+        };
+        packageRequires = [ bbdb ];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb-vcard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb2erc = callPackage ({ bbdb
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "bbdb2erc";
+        ename = "bbdb2erc";
+        version = "20170221.554";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "bbdb2erc";
+          rev = "15db2bd29df0f6ee32c499fdeffb960b6a7f97a0";
+          sha256 = "0jlm6qffhh84vy5wmkxmsm5i4dp87cfh7zr5kvrw72zyww986kn4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb2erc";
+          sha256 = "0k1f6mq9xd3568vg01dqqvcdbdshbdsi4ivkjyxis6dqfnqhlfdd";
+          name = "recipe";
+        };
+        packageRequires = [ bbdb ];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb2erc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbyac = callPackage ({ browse-kill-ring
+                         , cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "bbyac";
+        ename = "bbyac";
+        version = "20180206.641";
+        src = fetchFromGitHub {
+          owner = "baohaojun";
+          repo = "bbyac";
+          rev = "9f0de9cad13801891ffb590dc09f51ff9a7cb225";
+          sha256 = "0q0i1j8ljfd61rk6d5fys7wvdbym9pz5nhwyfvmm0ijmy19d1ppz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbyac";
+          sha256 = "1pb12b8xrcgyniwqc90z3kr3rq9kkzxjawwcz7xwzymq39fx0897";
+          name = "recipe";
+        };
+        packageRequires = [ browse-kill-ring cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/bbyac";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bdo = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "bdo";
+        ename = "bdo";
+        version = "20140126.101";
+        src = fetchFromGitHub {
+          owner = "chrisdone";
+          repo = "bdo";
+          rev = "c96cb6aa9e97fa3491185c50dee0f77a13241010";
+          sha256 = "0d5b7zyl2vg621w1ll2lw3kjz5hx6lqxc0jivh0i449gckk5pzkm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bdo";
+          sha256 = "1n2kpaps6992nxl0v1003czcbw1k4xq906an56694wkh05az505j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bdo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    beacon = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , seq }:
+      melpaBuild {
+        pname = "beacon";
+        ename = "beacon";
+        version = "20181008.650";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "beacon";
+          rev = "07a2e9566be2a0b8f59b8ac8668448f1e250a400";
+          sha256 = "1r7v4yip67rwvi75i6z0al95yjyqjk3f29fsm5kblvg9zivfbp9g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/beacon";
+          sha256 = "1pwxvdfzs9qjd44wvgimipi2hg4qw5sh5wlsl8h8mq2kyx09s7hq";
+          name = "recipe";
+        };
+        packageRequires = [ seq ];
+        meta = {
+          homepage = "https://melpa.org/#/beacon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    beeminder = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "beeminder";
+        ename = "beeminder";
+        version = "20180413.1229";
+        src = fetchFromGitHub {
+          owner = "Sodaware";
+          repo = "beeminder.el";
+          rev = "3fcee7a7003a37171ddb59171c7f4b5dd4b34349";
+          sha256 = "0phiyv4n5y052fgxngl3yy74akb378sr6manx21s360gnxzcblwd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/beeminder";
+          sha256 = "1cb8xmgsv23b464hpchm9f9i64p3fyf7aillrwk1aa2l1008kyww";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/beeminder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    beginend = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "beginend";
+        ename = "beginend";
+        version = "20180827.226";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "beginend";
+          rev = "e4ff077de4a2c80e1f42adfc86837537899447a5";
+          sha256 = "15mcwh6189581l9abzm2japdv8fzpwf1vlr9ql8xb1mn3nih9qi5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/beginend";
+          sha256 = "1y81kr9q0zrsr3c3s14rm6l86y5wf1a0kia6d98112fy4fwdm7kq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/beginend";
+          license = lib.licenses.free;
+        };
+      }) {};
+    belarus-holidays = callPackage ({ fetchgit
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "belarus-holidays";
+        ename = "belarus-holidays";
+        version = "20180615.611";
+        src = fetchgit {
+          url = "https://bitbucket.org/EugeneMakei/belarus-holidays.el";
+          rev = "410a7dcf46fdcbee762a0c0aa0c7af03230b9656";
+          sha256 = "186dka9ba9hx1xhd0lfj1x1njikixm09wd4xiqawgdczgfwyv4sq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/belarus-holidays";
+          sha256 = "0ls4y0bjdz37zvzp2xppsa4qdgmpwkz2l6ycjf9134brdnhm9gqy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/belarus-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    benchmark-init = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "benchmark-init";
+        ename = "benchmark-init";
+        version = "20150905.238";
+        src = fetchFromGitHub {
+          owner = "dholm";
+          repo = "benchmark-init-el";
+          rev = "8e4c32f32ec869fe521fb4d3c0a69406830b4178";
+          sha256 = "058mic9jkwiqvmp3k9sfd6gb70ysdphnb1iynlszhixbrz5w7zs2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/benchmark-init";
+          sha256 = "0dknch4b1j7ff1079z2fhqng7kp4903b3v7mhj15b5vzspbp3wal";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/benchmark-init";
+          license = lib.licenses.free;
+        };
+      }) {};
+    benchstat = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "benchstat";
+        ename = "benchstat";
+        version = "20171013.2012";
+        src = fetchFromGitHub {
+          owner = "Quasilyte";
+          repo = "benchstat.el";
+          rev = "fee86f521f22ef0f99564903d63e2023b591fc7f";
+          sha256 = "1rzb6ai5f5mf9kn0nnjfxjn3l3h5b9ksbkqr1bi52fagryxrfgl2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/benchstat";
+          sha256 = "0h2zi4gh23bas1zfj7j2x994lwgd3xyys96ipg1vq7z2b06572k9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/benchstat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bert = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "bert";
+        ename = "bert";
+        version = "20131117.214";
+        src = fetchFromGitHub {
+          owner = "manzyuk";
+          repo = "bert-el";
+          rev = "a3eec6980a725aa4abd2019e4c00246450260490";
+          sha256 = "06izbc0ksyhgh4gsjiifhj11v0gx9x5xjx9aqci5mc4kc6mg05sf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bert";
+          sha256 = "1zhz1dcy1nf84p244x6lc4ajancv5fgmqmbrm080yhb2ral1z8x7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    better-defaults = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "better-defaults";
+        ename = "better-defaults";
+        version = "20170613.2104";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "better-defaults";
+          rev = "12d9e6dbf24a8a3369b19650d74471b17b27f78d";
+          sha256 = "1rx3p6syp6axnxbscg0l73yihgwdq7bdnkcrvfikz79yflxrsnmq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/better-defaults";
+          sha256 = "13bqcmx2gagm2ykg921ik3awp8zvw5d4lb69rr6gkpjlqp7nq2cm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/better-defaults";
+          license = lib.licenses.free;
+        };
+      }) {};
+    better-shell = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "better-shell";
+        ename = "better-shell";
+        version = "20180625.616";
+        src = fetchFromGitHub {
+          owner = "killdash9";
+          repo = "better-shell";
+          rev = "cfcd9d57f87ad68cd72bf4935fd1aaa1d9f059a9";
+          sha256 = "1z2c2w7p9clijzsfjhcghl76ycy6s0lyymxglzzk7js5np8idmdr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/better-shell";
+          sha256 = "0si8nj18i3jlhdb8m6f21rmi0lxians34vhw4xhvxw2yr9l85lj6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/better-shell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bf-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bf-mode";
+        ename = "bf-mode";
+        version = "20130403.742";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "bf-mode";
+          rev = "7cc4d09aed64d9db6be95646f5f5067de68f8895";
+          sha256 = "02b2m0cq04ynjcmr4j8gpdzjv9mpf1fysn736xv724xgaymj396n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bf-mode";
+          sha256 = "0b1yf9bx1ldkzry7v5qvcnl059rq62a50dvpa10i2f5v0y96n1q9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bfbuilder = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "bfbuilder";
+        ename = "bfbuilder";
+        version = "20150924.950";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "bfbuilder";
+          rev = "bb4c8a7be39af97ea5016099b320edd6d2b78149";
+          sha256 = "1n87db51ff3bqk3dk6rzipcl9mxr74a6wwkkpxq607wjxhxz0b9y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bfbuilder";
+          sha256 = "16ckybqd0a8l75ascm3k4cdzp969lzq7m050aymdyjhwif6ld2r7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/bfbuilder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    biblio = callPackage ({ biblio-core
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "biblio";
+        ename = "biblio";
+        version = "20161014.1604";
+        src = fetchFromGitHub {
+          owner = "cpitclaudel";
+          repo = "biblio.el";
+          rev = "a5a68fcf677f286f205f32dc7486f6c9f66aa6af";
+          sha256 = "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/biblio";
+          sha256 = "0ym7xvcfd7hh3qdpfb8zpa7w8s4lpg0vngh9d0ns3s3lnhz4mi0g";
+          name = "recipe";
+        };
+        packageRequires = [ biblio-core emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/biblio";
+          license = lib.licenses.free;
+        };
+      }) {};
+    biblio-core = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , let-alist
+                               , lib
+                               , melpaBuild
+                               , seq }:
+      melpaBuild {
+        pname = "biblio-core";
+        ename = "biblio-core";
+        version = "20160901.1115";
+        src = fetchFromGitHub {
+          owner = "cpitclaudel";
+          repo = "biblio.el";
+          rev = "0036495a2e0d4b02b9e957e498f9437e394d6ed9";
+          sha256 = "1f0p5fgvabdpafil7s8sy82hgcfzg1skxfgj72ylv3crq36bn4vp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/biblio-core";
+          sha256 = "0zpfamrb2gka41h834a05hxdbw4h55777kh6rhjikjfmy765nl97";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs let-alist seq ];
+        meta = {
+          homepage = "https://melpa.org/#/biblio-core";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bibliothek = callPackage ({ a
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pdf-tools }:
+      melpaBuild {
+        pname = "bibliothek";
+        ename = "bibliothek";
+        version = "20180429.1515";
+        src = fetchFromGitHub {
+          owner = "cadadr";
+          repo = "elisp";
+          rev = "ffe03506694c94de0444995f973a925deccc400a";
+          sha256 = "02wcvka96zdlq3myfar7dqywfil2b77bc6ydmgcphwn3as3kl08r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bibliothek";
+          sha256 = "011wnya65vfnn17fn1vhq0sk8c1mli81x0nb44yi6zl1hwxivb55";
+          name = "recipe";
+        };
+        packageRequires = [ a emacs pdf-tools ];
+        meta = {
+          homepage = "https://melpa.org/#/bibliothek";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bibretrieve = callPackage ({ auctex
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "bibretrieve";
+        ename = "bibretrieve";
+        version = "20180901.228";
+        src = fetchFromGitHub {
+          owner = "pzorin";
+          repo = "bibretrieve";
+          rev = "600fa1fcc4c5d79c628457f2316f3429c96be006";
+          sha256 = "17jy0a4j97vxnj9659q0jr32nx8kj12j9vhi5hnfw2nqxz33x7gr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bibretrieve";
+          sha256 = "1mf884c6adx7rq5c2z5wrnjpb6znljy30mscxskwqiyfs8c62mii";
+          name = "recipe";
+        };
+        packageRequires = [ auctex emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bibretrieve";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bibslurp = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "bibslurp";
+        ename = "bibslurp";
+        version = "20151202.1546";
+        src = fetchFromGitHub {
+          owner = "mkmcc";
+          repo = "bibslurp";
+          rev = "aeba96368f2a06959e4fe945375ce2a54d34b189";
+          sha256 = "077shjz9sd0k0akvxzzgjd8a626ck650xxlhp2ws4gs7rjd7a823";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bibslurp";
+          sha256 = "178nhng87bdi8s0r2bdh2gk31w9mmjkyi6ncnddk3v7p8fsh4jjp";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/bibslurp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bibtex-utils = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "bibtex-utils";
+        ename = "bibtex-utils";
+        version = "20170817.1219";
+        src = fetchFromGitHub {
+          owner = "plantarum";
+          repo = "bibtex-utils";
+          rev = "ed5ccce46c2088a28a2f0c49caa679d2f20567f0";
+          sha256 = "0cy0w4986lngzhzmfvk9r5xf0qa9bdz2ybzgv3nkwl48pjqvvi15";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bibtex-utils";
+          sha256 = "13llsyyvy0xc9s51cqqc1rz13m3qdqh8jw07gwywfbixlma59z8l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bibtex-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bicycle = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bicycle";
+        ename = "bicycle";
+        version = "20180909.1426";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "bicycle";
+          rev = "42a5db3514019d539500a67f913411f5533a1eb3";
+          sha256 = "1nanf0dp7kqzs2mc8gzr9qzn9v6q86sdr35pzysdl41xqydxpsrd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bicycle";
+          sha256 = "16ikqbmsjyknj3580wdnp8ffs85bq9idf9hvxm0ihgw5gy469xqj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bicycle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bifocal = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bifocal";
+        ename = "bifocal";
+        version = "20181109.1941";
+        src = fetchFromGitHub {
+          owner = "riscy";
+          repo = "bifocal-mode";
+          rev = "add30c678488cec04976a85ba8cda20805938a01";
+          sha256 = "01j8s6c3qm4scxy1dk07l41y0n55gz83zzfi254kc2vyx02vqg7f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bifocal";
+          sha256 = "07qrxsby611l3cwsmw3d53h1n7cd1vg53j4vlc2isg56l2m4qks5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bifocal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    binclock = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "binclock";
+        ename = "binclock";
+        version = "20170802.416";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "binclock.el";
+          rev = "87042230d7f3fe3e9a77fae0dbab7d8f7e7794ad";
+          sha256 = "0bbcn3aif3qvmgbga7znivcbgn1n79278x7xvbha52zpj584xp8d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/binclock";
+          sha256 = "1s0072kcd1xp8355j8aph94gb3a1wqmzx1hhfp9d6bzqf6cij8gk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/binclock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bind-chord = callPackage ({ bind-key
+                              , fetchFromGitHub
+                              , fetchurl
+                              , key-chord
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "bind-chord";
+        ename = "bind-chord";
+        version = "20171204.1210";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "use-package";
+          rev = "33127b706e66fb20dfa40d94eb553dd7d6ef9197";
+          sha256 = "1iz7ibdvf3bnfkwfhakigvrdzg69qgx3z7qayq54spx3rpxf7x0b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bind-chord";
+          sha256 = "1hyhs3iypyg5730a20axcfzrrglm4nbgdz8x1ifkaa0iy5zc9hb0";
+          name = "recipe";
+        };
+        packageRequires = [ bind-key key-chord ];
+        meta = {
+          homepage = "https://melpa.org/#/bind-chord";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bind-key = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "bind-key";
+        ename = "bind-key";
+        version = "20180512.2130";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "use-package";
+          rev = "c03d153e5882109e24c016d3afa6940af673ede6";
+          sha256 = "0zyl8dfg8acf99966sp8i5iky1mvn2h016viqk48s0hjv9va0wii";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bind-key";
+          sha256 = "1qw2c27016d3yfg0w10is1v72y2jvzhq07ca4h6v17yi94ahj5xm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bind-key";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bind-map = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "bind-map";
+        ename = "bind-map";
+        version = "20161207.711";
+        src = fetchFromGitHub {
+          owner = "justbur";
+          repo = "emacs-bind-map";
+          rev = "bf4181e3a41463684adfffc6c5c305b30480e30f";
+          sha256 = "0vrk17yg3jbww92p433p64ijmjf7cjg2wmzi9w418235w1xdfzz8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bind-map";
+          sha256 = "1jzkp010b4vs1bdhccf5igmymfxab4vxs1pccpk9n5n5a4xaa358";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bind-map";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bing-dict = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "bing-dict";
+        ename = "bing-dict";
+        version = "20181110.1800";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "bing-dict.el";
+          rev = "51266b11bca22923c3a86bc101abf9145d1397d3";
+          sha256 = "0c6d1kmgf9gyrqqfxisdlaavb4rx5scnh7dgqswlmj2fqws3yvna";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bing-dict";
+          sha256 = "1cqjndq8xm2bwjvdj95dn377bp9r6rrkp1z4a45faj408mipahli";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bing-dict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    birds-of-paradise-plus-theme = callPackage ({ fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild }:
+      melpaBuild {
+        pname = "birds-of-paradise-plus-theme";
+        ename = "birds-of-paradise-plus-theme";
+        version = "20130419.1429";
+        src = fetchFromGitHub {
+          owner = "jimeh";
+          repo = "birds-of-paradise-plus-theme.el";
+          rev = "bb9f9d4ef7f7872a388ec4eee1253069adcadb6f";
+          sha256 = "1n5icy29ks5rxrxp7v4sf0523z7wxn0fh9lx4y6jb7ppdjnff12s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/birds-of-paradise-plus-theme";
+          sha256 = "0vdv2siy30kf1qhzrc39sygjk17lwm3ix58pcs3shwkg1y5amj3m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/birds-of-paradise-plus-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bison-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "bison-mode";
+        ename = "bison-mode";
+        version = "20160616.2252";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "bison-mode";
+          rev = "314af3b7af7eb897fd3932616cb8600a85228cea";
+          sha256 = "0ymjgwyi73vl81i7v1g2ad09lxp4mhp47r6zcijqa5hbx9l1skik";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bison-mode";
+          sha256 = "097gimlzmyrsfnl76cbzyyi9dm0d2y3f9107672h56ncri35mh66";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bison-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bitbake = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , mmm-mode
+                           , s }:
+      melpaBuild {
+        pname = "bitbake";
+        ename = "bitbake";
+        version = "20180326.58";
+        src = fetchFromGitHub {
+          owner = "canatella";
+          repo = "bitbake-el";
+          rev = "040498f9375f3b3eb67514c6497f43b77acd764f";
+          sha256 = "0jpgc4ps82qwagmh3lh49m11f8b3nbjgaw9wy43q9q1mslx14hf3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bitbake";
+          sha256 = "1k2n1i8g0jc78sp1icm64rlhi1q0vqar2a889nldp134a1l7bfah";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs mmm-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/bitbake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bitbucket = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , request
+                             , s }:
+      melpaBuild {
+        pname = "bitbucket";
+        ename = "bitbucket";
+        version = "20170404.2146";
+        src = fetchFromGitHub {
+          owner = "tjaartvdwalt";
+          repo = "bitbucket.el";
+          rev = "db001a9d936e6b5c3cc5d5ec22794e234e0d162d";
+          sha256 = "0iwmhnnscj3axxzgcb9ma7n5wn3zpjiwkh1dxrlk2kcclbzlbjha";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bitbucket";
+          sha256 = "1d0v6hvmxky3k2m89b7xm1igx9fmzvhdpn1bi8zln61m4zgr3yz0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request s ];
+        meta = {
+          homepage = "https://melpa.org/#/bitbucket";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bitlbee = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bitlbee";
+        ename = "bitlbee";
+        version = "20151202.1600";
+        src = fetchFromGitHub {
+          owner = "pjones";
+          repo = "bitlbee-el";
+          rev = "f3342da46b0864ae8db4e82b553d9e617b090534";
+          sha256 = "1qbp15w4g9j9qhrgb04dwqa76i8sh1nbfd8gbpgp91sz9gackgkq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bitlbee";
+          sha256 = "1lmbmlshr8b645qsb88rswmbbcbbawzl04xdjlygq4dnpkxc8w0f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bitlbee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    blackboard-bold-mode = callPackage ({ cl-lib ? null
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "blackboard-bold-mode";
+        ename = "blackboard-bold-mode";
+        version = "20160812.1906";
+        src = fetchFromGitHub {
+          owner = "grettke";
+          repo = "blackboard-bold-mode";
+          rev = "5299cb064ba71baa3e331b8560bf8dd38cbbc4ed";
+          sha256 = "00xbcgx4snz4sd7q7ys24rsnf5wdxjn402v8y5dgn4ayx88y1rrj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/blackboard-bold-mode";
+          sha256 = "08fmzm5lblkk503zr4d6hkp45075pwwd8zinngasrsf1r01isksj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/blackboard-bold-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    blackboard-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "blackboard-theme";
+        ename = "blackboard-theme";
+        version = "20161215.2256";
+        src = fetchFromGitHub {
+          owner = "don9z";
+          repo = "blackboard-theme";
+          rev = "d8b984f2541bb86eb4363a2b4c94631e49843d4a";
+          sha256 = "1jh2960yab6rhdq7ci1slpmnr43619cza0g8bfbq759yz5b7xryh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/blackboard-theme";
+          sha256 = "19cnfxrm85985ic55y5x7nwxdynjp7djyd33dhj8r7s92cs25fn7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/blackboard-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    blacken = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "blacken";
+        ename = "blacken";
+        version = "20181025.1114";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "blacken";
+          rev = "d6929cf32adb180ac3c11da9861f62f57a66a64f";
+          sha256 = "0ncf5ahl4lg5a0wm00gjy98w81ij0441r5k8pqhjx3q2d2yxrh3k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/blacken";
+          sha256 = "16lbs76jkhcq0vg09x1n8mrd4pgz5bdjsprr9260xr7g3dx8xacc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/blacken";
+          license = lib.licenses.free;
+        };
+      }) {};
+    blgrep = callPackage ({ clmemo
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "blgrep";
+        ename = "blgrep";
+        version = "20150401.716";
+        src = fetchFromGitHub {
+          owner = "ataka";
+          repo = "blgrep";
+          rev = "605beda210610a5829750a987f5fcebea97af546";
+          sha256 = "1pslwyaq18d1z7fay2ih3n27i6b49ss62drqqb095l1jxk42xxm0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/blgrep";
+          sha256 = "0w7453vh9c73hdfgr06693kwvhznn9xr1hqa65izlsx2fjhqc9gm";
+          name = "recipe";
+        };
+        packageRequires = [ clmemo ];
+        meta = {
+          homepage = "https://melpa.org/#/blgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    blimp = callPackage ({ eimp
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "blimp";
+        ename = "blimp";
+        version = "20180903.1540";
+        src = fetchFromGitHub {
+          owner = "walseb";
+          repo = "blimp";
+          rev = "b048b037129b68674b99310bcc08fb96d44fdbb4";
+          sha256 = "0az7bjxc6awn56sv49w3d0ws6w7i0gqm99sbkbnjrfgj3ha8xz4d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/blimp";
+          sha256 = "1k70x0gs9ns7652ahq2b8fhmichsmajzqmm46v1imji238zr7kb1";
+          name = "recipe";
+        };
+        packageRequires = [ eimp emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/blimp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bliss-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "bliss-theme";
+        ename = "bliss-theme";
+        version = "20170808.607";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-bliss-theme";
+          rev = "c3cf6d8a666ab26909b7da158f9e94df71a5fbbf";
+          sha256 = "1bpyhsjfdjfa1iw9kv7fsl30vz48qllqgjg1rsxdl3vcripcbc9z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bliss-theme";
+          sha256 = "1kzvi6zymfgirr41l8r2kazfz1y4xkigbp5qa1fafcdmw81anmdh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bliss-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bln-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "bln-mode";
+        ename = "bln-mode";
+        version = "20180730.523";
+        src = fetchFromGitHub {
+          owner = "mgrachten";
+          repo = "bln-mode";
+          rev = "b5e86b1bc8b7ac25bf8ec07056824861c4c3f050";
+          sha256 = "12bf5l8x1bfg3hpnw3lg3qkxyyhsn6n6cmghdnf3gmd73arpzcbd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bln-mode";
+          sha256 = "0w4abaqx9gz04ls1hn1qz8qg9jpvi80b9jb597ddjcbnwqq9z83r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bln-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    blockdiag-mode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "blockdiag-mode";
+        ename = "blockdiag-mode";
+        version = "20160426.2224";
+        src = fetchFromGitHub {
+          owner = "xcezx";
+          repo = "blockdiag-mode";
+          rev = "f3b21ba433d60327cebd103ae4492200750e24a9";
+          sha256 = "111i897dnkbx4xq62jfkqq4li4gm16lxbgkgg2gn13zv0f0lzgvy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/blockdiag-mode";
+          sha256 = "0v48w4slzx8baxrf10jrzcpqmcv9d3z2pz0xqn8czlzm2f6id3ya";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/blockdiag-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    blog-admin = callPackage ({ cl-lib ? null
+                              , ctable
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , names
+                              , s }:
+      melpaBuild {
+        pname = "blog-admin";
+        ename = "blog-admin";
+        version = "20170923.709";
+        src = fetchFromGitHub {
+          owner = "CodeFalling";
+          repo = "blog-admin";
+          rev = "b5f2e1dad7d68ec903619f7280bb0bcb7e398a1e";
+          sha256 = "0fgzmmjxhl8i9yqx1bvb7hgkk9w4ylx73xy990qf1bl7fg21v636";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/blog-admin";
+          sha256 = "03wnci5903c6jikkvlzc2vfma9h9qk673cc3wm756rx94jxinmyk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ctable f names s ];
+        meta = {
+          homepage = "https://melpa.org/#/blog-admin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    blog-minimal = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , ht
+                                , lib
+                                , melpaBuild
+                                , mustache
+                                , org
+                                , s
+                                , simple-httpd }:
+      melpaBuild {
+        pname = "blog-minimal";
+        ename = "blog-minimal";
+        version = "20181021.149";
+        src = fetchFromGitHub {
+          owner = "thiefuniverse";
+          repo = "blog-minimal";
+          rev = "a634a2db0b80cb445ef0b072d1a1482ced91f9ad";
+          sha256 = "0mxfrp7gwg07d8vkipqf8p6mli9y5sqh25k1dkcsidmc6m09j5qn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/blog-minimal";
+          sha256 = "1qj25b6n3slvmbqvzfd37v4xmy1vvz37686jdr29bw5qk4prgxff";
+          name = "recipe";
+        };
+        packageRequires = [ ht mustache org s simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/blog-minimal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bm = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "bm";
+        ename = "bm";
+        version = "20181012.931";
+        src = fetchFromGitHub {
+          owner = "joodland";
+          repo = "bm";
+          rev = "b85d407b53e1d852c47fcea2a245a4e67e48c38a";
+          sha256 = "1ypa1971yh6g0kximqxiv90h1l3m6fprwza6l88gwgackhg9wiz0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bm";
+          sha256 = "07459r7m12j2nsb7qrb26bx32alylhaaq3z448n42lz02a8dc63g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bmx-mode = callPackage ({ cl-lib ? null
+                            , company
+                            , dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "bmx-mode";
+        ename = "bmx-mode";
+        version = "20180929.432";
+        src = fetchFromGitHub {
+          owner = "josteink";
+          repo = "bmx-mode";
+          rev = "536b332edc3b98cc97588c937c7368803ba5961c";
+          sha256 = "0hbkh4fb1cb1fd7fq1999i9rffr2xc0l16b0m5sajcrsir3gq4nr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bmx-mode";
+          sha256 = "04g8l4cw20k3yhbija9mz1l4nx3bzhzj7nb35s0xdyvwbc2mhrwb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/bmx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bnfc = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "bnfc";
+        ename = "bnfc";
+        version = "20160605.1227";
+        src = fetchFromGitHub {
+          owner = "jmitchell";
+          repo = "bnfc-mode";
+          rev = "1b58df1dd0cb9b81900632fb2843a03b94f56fdb";
+          sha256 = "0lmqrcy80nw6vmf81kh6q39x8pwhzrj6lbk31xpl8mvwnpqaykmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bnfc";
+          sha256 = "0h6qhyi7vcikg7zhv8lywdz033kp27a8z1ymq5wgs4aqs184igm6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bnfc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bog = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "bog";
+        ename = "bog";
+        version = "20180815.1513";
+        src = fetchFromGitHub {
+          owner = "kyleam";
+          repo = "bog";
+          rev = "b5df3647f55359f8546dcfa991a351673a069a49";
+          sha256 = "1rfv036wzlrbqbki5i24871a9f2h6zk7yqd1lq6gnqrc4y7m477c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bog";
+          sha256 = "1ci8xxca7dclmi5v37y5k45qlmzs6a9hi6m7czgiwxii902w5pkl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/bog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bolt-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "bolt-mode";
+        ename = "bolt-mode";
+        version = "20180310.10";
+        src = fetchFromGitHub {
+          owner = "mpontus";
+          repo = "bolt-mode";
+          rev = "85a5a752bfbebb4aed884326c25db64c000e9934";
+          sha256 = "03nxcmpm5n8jcca39ivrl7cjqz3gzsl3w6qc30hcp278qf2jq6va";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bolt-mode";
+          sha256 = "03x89k8v0m9kv1fhyys2gwympb70qlmg7gdib8wsmdxs34ys5igz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bolt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bongo = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "bongo";
+        ename = "bongo";
+        version = "20171118.1842";
+        src = fetchFromGitHub {
+          owner = "dbrock";
+          repo = "bongo";
+          rev = "3d246be1e8d14865f5253567ab8fee5d4e9c470c";
+          sha256 = "1zxk6x08gmir3qv07xanlsd2fb777jdbfzdksv1qh6srxbk3qfjq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bongo";
+          sha256 = "07i9gw067r2igp6s2g2iakm1ybvw04q6zznna2cfdf08nax64ghv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bongo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bonjourmadame = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "bonjourmadame";
+        ename = "bonjourmadame";
+        version = "20170919.434";
+        src = fetchFromGitHub {
+          owner = "pierre-lecocq";
+          repo = "bonjourmadame";
+          rev = "d3df185fce78aefa689fded8e56a654f0fde4ac0";
+          sha256 = "1acn63hd7s2z8viy52hmhncdic7m86rcqczxnz9aivikqy4hfnsi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bonjourmadame";
+          sha256 = "0d36yradh37359fjk59s54hxkbh4qcc17sblj2ylcdyw7181iwfn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bonjourmadame";
+          license = lib.licenses.free;
+        };
+      }) {};
+    boogie-friends = callPackage ({ cl-lib ? null
+                                  , company
+                                  , dash
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild
+                                  , yasnippet }:
+      melpaBuild {
+        pname = "boogie-friends";
+        ename = "boogie-friends";
+        version = "20171024.1955";
+        src = fetchFromGitHub {
+          owner = "boogie-org";
+          repo = "boogie-friends";
+          rev = "7fea709f13c6cb93e4ed672955484201ebe6c123";
+          sha256 = "1sfw59vd2ah054va5q52wf22cdrinv5m207prfzdqs9bsq1qfdac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/boogie-friends";
+          sha256 = "0cfs7gvjxsx2027dbzh4yypz500nmk503ikiiprbww8jyvc8grk7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company dash flycheck yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/boogie-friends";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bool-flip = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "bool-flip";
+        ename = "bool-flip";
+        version = "20161215.739";
+        src = fetchFromGitHub {
+          owner = "michaeljb";
+          repo = "bool-flip";
+          rev = "0f7cc9b387429239fb929896511727d4e49a795b";
+          sha256 = "1051gy7izy25jwh079231d4lh9azchbqc6nvfrkv8s9ck407a65a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bool-flip";
+          sha256 = "1xfspqxshx7m8gh6g1snkaahka9f71fnq7hx81nik4s9s8pmxj9c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bool-flip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    boon = callPackage ({ dash
+                        , emacs
+                        , expand-region
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , multiple-cursors }:
+      melpaBuild {
+        pname = "boon";
+        ename = "boon";
+        version = "20181014.227";
+        src = fetchFromGitHub {
+          owner = "jyp";
+          repo = "boon";
+          rev = "675719ec1f6608a690fc613214920ac3c0d350a3";
+          sha256 = "1h2mfvpsci60g7gwwwbb62n85sl1xvrmc1n2w3k8xvmszrmk05kq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/boon";
+          sha256 = "0gryw7x97jd46jgrm93cjagj4p7w93cjc36i2ps9ajf0d8m4gajb";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs expand-region multiple-cursors ];
+        meta = {
+          homepage = "https://melpa.org/#/boon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    borg = callPackage ({ dash
+                        , emacs
+                        , epkg
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , magit
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "borg";
+        ename = "borg";
+        version = "20181031.1502";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "borg";
+          rev = "a3573f6d8073b21f261fc96bdf80915d3e719381";
+          sha256 = "0pc0p2kdaklfg9jszf0rmwfgdd9l277g4lw4svz7i634j3v44zpq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/borg";
+          sha256 = "0gn4hf7hn190gl0kg59nr6jzjnb39c0hy9b3brrsfld9hyxga9jr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs epkg magit ];
+        meta = {
+          homepage = "https://melpa.org/#/borg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    borland-blue-theme = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "borland-blue-theme";
+        ename = "borland-blue-theme";
+        version = "20160117.521";
+        src = fetchFromGitHub {
+          owner = "fourier";
+          repo = "borland-blue-theme";
+          rev = "db74eefebbc89d3c62575f8f50b319e87b4a3470";
+          sha256 = "0yzfxxv2bw4x320268bixfc7yf97851804bz3829vbdhnr4kp6y5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/borland-blue-theme";
+          sha256 = "1sc8qngm40bwdym8k1dgbahg48i73c00zxd99kqqwm9fnd6nm7qx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/borland-blue-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    boron-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "boron-theme";
+        ename = "boron-theme";
+        version = "20170808.608";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-boron-theme";
+          rev = "87ae1a765e07429fec25d2f29b004f84b52d2e0a";
+          sha256 = "1kdf71af1s67vshgwkdgi7swxx942i605awhmhrhdjbkra29v4yn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/boron-theme";
+          sha256 = "1rrqlq08jnh9ihb99ji1vvmamj742assnm4a7xqz6gp7f248nb81";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/boron-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    boxquote = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "boxquote";
+        ename = "boxquote";
+        version = "20170802.417";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "boxquote.el";
+          rev = "7e47e0e2853bc1215739b2e28f260e9eed93b2c5";
+          sha256 = "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/boxquote";
+          sha256 = "0s6cxb8y1y8w9vxxhj1izs8d0gzk4z2zm0cm9gkw1h7k2kyggx6s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/boxquote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bpe = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "bpe";
+        ename = "bpe";
+        version = "20141228.1405";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "bpe";
+          rev = "7b5b25f83506e6c9f4075d3803fa32404943a189";
+          sha256 = "0chmarbpqingdma54d6chbr6v6jg8lapbw56cpvcpbl04fz980r0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bpe";
+          sha256 = "08zfqcgs7i2ram2qpy8vrzksx5722aahr66vdi4d9bcxm03s19fm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bpe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bpr = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "bpr";
+        ename = "bpr";
+        version = "20180220.1044";
+        src = fetchFromGitHub {
+          owner = "ilya-babanov";
+          repo = "emacs-bpr";
+          rev = "af84a83dea09d86e77d87ac30604f2c5b4bf4117";
+          sha256 = "1r2prq9j6fmzzkl1f3r9drn6lna2wzd9qv127x7z5g6n8pgb6ipx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bpr";
+          sha256 = "0rjxn40n4s4xdq51bq0w3455g9pli2pvcf1gnbr96zawbngrw6x2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bpr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bracketed-paste = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "bracketed-paste";
+        ename = "bracketed-paste";
+        version = "20160407.1648";
+        src = fetchFromGitHub {
+          owner = "hchbaw";
+          repo = "bracketed-paste.el";
+          rev = "843ce3bbb63d560face889e13a57a2f7543957d5";
+          sha256 = "1l6j2zs12psc15cfhqq6hm1bg012jr49zd2i36cmappbsiax1l8m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bracketed-paste";
+          sha256 = "1v7zwi29as0218vy6ch21iqqcxfhyh373m3dbcdzm2pb8bpcg58j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bracketed-paste";
+          license = lib.licenses.free;
+        };
+      }) {};
+    brainfuck-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , langdoc
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "brainfuck-mode";
+        ename = "brainfuck-mode";
+        version = "20150113.42";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "brainfuck-mode";
+          rev = "36e69552bb3b97a4f888d362c59845651bd0d492";
+          sha256 = "1nzgjgzidyrplfs4jl8nikd5wwvb4rmrnm51qxmw9y2if0hpq0jd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/brainfuck-mode";
+          sha256 = "08jzx329mrr3c2pifs3hb4i79dsw606b0iviagaaja8s808m40cd";
+          name = "recipe";
+        };
+        packageRequires = [ langdoc ];
+        meta = {
+          homepage = "https://melpa.org/#/brainfuck-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    broadcast = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "broadcast";
+        ename = "broadcast";
+        version = "20151204.1812";
+        src = fetchFromGitHub {
+          owner = "killdash9";
+          repo = "broadcast.el";
+          rev = "f6f9cd2e0e3f8c31d6b8e7446c27eb0e50b25f16";
+          sha256 = "0w6b9rxdciy1365kgf6fh3vgrjr8xd5ar6xcn0g4h56f2zg9hdmj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/broadcast";
+          sha256 = "1h2c3mb49q3vlpalrsrx8q3rmy1zg0y45ayvzbvzdkfgs8idgbib";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/broadcast";
+          license = lib.licenses.free;
+        };
+      }) {};
+    browse-at-remote = callPackage ({ cl-lib ? null
+                                    , f
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "browse-at-remote";
+        ename = "browse-at-remote";
+        version = "20180621.2331";
+        src = fetchFromGitHub {
+          owner = "rmuslimov";
+          repo = "browse-at-remote";
+          rev = "0a06018e3500f36917284d552917702de3c5fae5";
+          sha256 = "1vci2azq00n2vx1kf0adhzddqj607l5341ym4p6ndk6xhdhqhkbs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/browse-at-remote";
+          sha256 = "0s088ba047azba60rlfn3jbqr321vnm953i7dqw2gj9xml90kbm4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib f s ];
+        meta = {
+          homepage = "https://melpa.org/#/browse-at-remote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    browse-kill-ring = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "browse-kill-ring";
+        ename = "browse-kill-ring";
+        version = "20171219.1108";
+        src = fetchFromGitHub {
+          owner = "browse-kill-ring";
+          repo = "browse-kill-ring";
+          rev = "8debc43e41d7e51532698331c6f283905890b904";
+          sha256 = "18yg35raks0kbzg5wjay6liingdcv4glyzl9n14sgr9vzc7h96f9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/browse-kill-ring";
+          sha256 = "1d97ap0vrg5ymp96z7y6si98fspxzy02jh1i4clvw5lggjfibhq4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/browse-kill-ring";
+          license = lib.licenses.free;
+        };
+      }) {};
+    browse-url-dwim = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , string-utils }:
+      melpaBuild {
+        pname = "browse-url-dwim";
+        ename = "browse-url-dwim";
+        version = "20140731.1222";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "browse-url-dwim";
+          rev = "11f1c53126619c7ef1bb5f5d6914ce0b3cce0e30";
+          sha256 = "08qz9l0gb7fvknzkp67srhldzkk8cylnbn0qwkflxgcs6ndfk95y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/browse-url-dwim";
+          sha256 = "13bv2ka5pp9k4kwrxfqfawwxzsqlakvpi9a32gxgx7qfi0dcb1rf";
+          name = "recipe";
+        };
+        packageRequires = [ string-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/browse-url-dwim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    brutalist-theme = callPackage ({ fetchgit
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "brutalist-theme";
+        ename = "brutalist-theme";
+        version = "20181023.522";
+        src = fetchgit {
+          url = "https://git.madhouse-project.org/algernon/brutalist-theme.el.git";
+          rev = "15ea5d881cad24c40d02a1980891b3c17853ad20";
+          sha256 = "1zlkx9l8srdw4f95355mng08sx9r23dl7318bpkrw6q56lnp79sf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/brutalist-theme";
+          sha256 = "0dg0432r3cpjgdlpz583vky4hj5vld9d25dvaj6nxlir2ph9g9hn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/brutalist-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bshell = callPackage ({ buffer-manage
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "bshell";
+        ename = "bshell";
+        version = "20170903.1137";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "bshell";
+          rev = "884a8b906617d305e9d5d2c3750618d2f86f9aed";
+          sha256 = "16qh71yhpxs5cxjmkiqiia8xrxa0ym2n32znp4yc7xiv2xfw2ss4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bshell";
+          sha256 = "1ds8xvh74i6wqswjp8i30knr74l4gbalkb2jil8qjb9wp9l1gw9z";
+          name = "recipe";
+        };
+        packageRequires = [ buffer-manage emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bshell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    btc-ticker = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , json ? null
+                              , lib
+                              , melpaBuild
+                              , request }:
+      melpaBuild {
+        pname = "btc-ticker";
+        ename = "btc-ticker";
+        version = "20151113.659";
+        src = fetchFromGitHub {
+          owner = "niedbalski";
+          repo = "emacs-btc-ticker";
+          rev = "845235b545f070d0812cd1654cbaa4997565824f";
+          sha256 = "022j0gw5qkxjz8f70vqjxysifv2mz6cigf9n5z03zmpvwwvxmx2z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/btc-ticker";
+          sha256 = "1vfnx114bvnly1k3fmcpkqq4m9558wqr5c9k9yj8f046dgfh8dp1";
+          name = "recipe";
+        };
+        packageRequires = [ json request ];
+        meta = {
+          homepage = "https://melpa.org/#/btc-ticker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bts = callPackage ({ dash
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , log4e
+                       , melpaBuild
+                       , pos-tip
+                       , s
+                       , widget-mvc
+                       , yaxception }:
+      melpaBuild {
+        pname = "bts";
+        ename = "bts";
+        version = "20151109.533";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-bts";
+          rev = "df42d58a36447697f93b56e69f5e700b2baef1f9";
+          sha256 = "1qgasaqhqm0birjmb6k6isd2f5pn58hva8db8qfhva9g5kg1f38w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bts";
+          sha256 = "1i1lbjracrgdxr52agxhxxgkra4w291dmz85s195lcx38rva7ib3";
+          name = "recipe";
+        };
+        packageRequires = [ dash log4e pos-tip s widget-mvc yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/bts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bts-github = callPackage ({ bts
+                              , fetchFromGitHub
+                              , fetchurl
+                              , gh
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "bts-github";
+        ename = "bts-github";
+        version = "20170401.549";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-bts-github";
+          rev = "ef2cf9202dc2128e5efdb613bfde9276a8cd95ad";
+          sha256 = "173i9n4c8mg93gpc7ljxh3nhm4lq2c04yhrvjz6fwwwqvmnkha5f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bts-github";
+          sha256 = "03lz12bbkjqbs82alc97k6s1pmk721qip3h9cifq8a5ww5cbq9ln";
+          name = "recipe";
+        };
+        packageRequires = [ bts gh ];
+        meta = {
+          homepage = "https://melpa.org/#/bts-github";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bubbleberry-theme = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "bubbleberry-theme";
+        ename = "bubbleberry-theme";
+        version = "20141017.244";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-bubbleberry-theme";
+          rev = "22e9adf4586414024e4592972022ec297321b320";
+          sha256 = "1aha8rzilv4k300rr4l9qjfygydfwllkbw17lhm8jz0kh9w6bd28";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bubbleberry-theme";
+          sha256 = "1mjygck5ra30j44msccqas8v6gkpyv74p6y6hidm8v4f8n6m8dcz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bubbleberry-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buckwalter = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "buckwalter";
+        ename = "buckwalter";
+        version = "20180107.843";
+        src = fetchFromGitHub {
+          owner = "joehakimrahme";
+          repo = "buckwalter.el";
+          rev = "2aa5451c3682c268adebc6b1191a796466732f53";
+          sha256 = "0g270jyf2fd3x8p0jcd86j751spfphgsmwjxl61rk1x1kiql4icd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buckwalter";
+          sha256 = "08pnmfy910n5l00kmkn4533x48m3scsxzyra0nl6iry2n39y2kr1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buckwalter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-buttons = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-buttons";
+        ename = "buffer-buttons";
+        version = "20150106.639";
+        src = fetchFromGitHub {
+          owner = "rpav";
+          repo = "buffer-buttons";
+          rev = "2feb8494fa7863b98256bc85da670d74a3a8a975";
+          sha256 = "1p5a29bpjqr1gs6sb6rr7y0j06nlva23wxkwfskap25zvjpgwbvq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-buttons";
+          sha256 = "1p0ydbrff9197sann3s0d7hpav7r9g461w4llncafmy31w7m1dn6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-buttons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-flip = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-flip";
+        ename = "buffer-flip";
+        version = "20180307.1451";
+        src = fetchFromGitHub {
+          owner = "killdash9";
+          repo = "buffer-flip.el";
+          rev = "e093360e05164c78255866c1ac8f966aa38ba514";
+          sha256 = "1s35llycdhhclf9kl1q9l7zzzfqrnnvbiqv5csfw0mngfj0lz77f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-flip";
+          sha256 = "0ka9ynj528yp1p31hbhm89627v6dpwspybly806n92vxavxrn098";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-flip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-manage = callPackage ({ choice-program
+                                 , dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-manage";
+        ename = "buffer-manage";
+        version = "20180528.913";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "buffer-manage";
+          rev = "8bbe342a4dafcfdaf305baea98bd4208036ab89a";
+          sha256 = "027d71ppkcq60lkzgal8wv4xpjs4hzgih5ry9q2d4g0dr7wkjp3j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-manage";
+          sha256 = "0fwri332faybv2apjh8zajqpryi0g4kk3and8djibpvci40l42jb";
+          name = "recipe";
+        };
+        packageRequires = [ choice-program dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-manage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-move = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-move";
+        ename = "buffer-move";
+        version = "20160615.1103";
+        src = fetchFromGitHub {
+          owner = "lukhas";
+          repo = "buffer-move";
+          rev = "cb517ecf8409b5fdcda472d7190c6021f0c49751";
+          sha256 = "0gxy58v8nyv6pmzfn8552m8a14f5lzcbkndp5xpzq4g9qvmifmj6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-move";
+          sha256 = "0wysywff2bggrha7lpl83c8x6ln7zgdj9gsqmjva6gramqb260fg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-move";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-sets = callPackage ({ cl-lib ? null
+                               , fetchgit
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-sets";
+        ename = "buffer-sets";
+        version = "20170717.2040";
+        src = fetchgit {
+          url = "https://git.flintfam.org/swf-projects/buffer-sets.git";
+          rev = "4a4ccb0d6916c3e9fba737bb7b48e8aac921954e";
+          sha256 = "1rg6iwswi82w8938pavwhvvr2z3ismb42asam2fkad47h2sgn0gz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-sets";
+          sha256 = "1xj9fn2x4kbx8kp999wvz1j68znp7j81zl6rnbaipbx7hjpqrsin";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-sets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-utils = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-utils";
+        ename = "buffer-utils";
+        version = "20140512.700";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "buffer-utils";
+          rev = "32e1f23817b9c6caedb53e5359baad29e99eaa2b";
+          sha256 = "0fajk0qjm1cq1a7ps2fa584g23bjlbccxv7s0x6n5yqpgn1f79ax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-utils";
+          sha256 = "0cfipdn4fc4fvz513mwiaihvbdi05mza3z5z1379wlljw6r539z2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-watcher = callPackage ({ cl-lib ? null
+                                  , f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-watcher";
+        ename = "buffer-watcher";
+        version = "20170913.139";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "buffer-watcher";
+          rev = "b32c67c8a5d724257d759f4c903d0dedc32246ef";
+          sha256 = "0mygs48mk2z8cw1csz2wfyn7kln9662d16hwpmbxs5x8k71aq8jx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-watcher";
+          sha256 = "0v096021xk7k821bxb5zddw6sljqa6fs8f7s8j0w3pv6lmhra1ln";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib f ];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-watcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bufshow = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bufshow";
+        ename = "bufshow";
+        version = "20130726.1138";
+        src = fetchFromGitHub {
+          owner = "pjones";
+          repo = "bufshow";
+          rev = "42d7fb74c3f914e127d5447c63d209bf19f5d517";
+          sha256 = "1gmk0p9rkhkpzg38rf642w2qancj5gb43dhqnhh3asgmij7f6nk3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bufshow";
+          sha256 = "027cd0jzb8yxm66q1bhyi75f2m9f2pq3aswgav1d18na3ybwg65h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bufshow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bug-reference-github = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "bug-reference-github";
+        ename = "bug-reference-github";
+        version = "20180128.514";
+        src = fetchFromGitHub {
+          owner = "arnested";
+          repo = "bug-reference-github";
+          rev = "f570a0532bfb44f095b42cf68ab1f69799101137";
+          sha256 = "09rbxgrk7jp9xajya6nccj0ak7fc48wyxq4sfmjmy3q1qfszdsc3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bug-reference-github";
+          sha256 = "18yzxwanbrxsab6ba75z1196x0m6dapdhbvy6df5b5x5viz99cf6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bug-reference-github";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bui = callPackage ({ dash
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "bui";
+        ename = "bui";
+        version = "20180812.1413";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "bui.el";
+          rev = "bd3c5ee32d28d80c6eb54b0340626103c32e3093";
+          sha256 = "0ixia5s41f2nbal3wsixacbhbc0mk9yb75ir1amqakip30sq4apv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bui";
+          sha256 = "0a4g55k02hi3cwvk4d35lk2x5kc4fabskl2025i83hx0rqw4w3f1";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bui";
+          license = lib.licenses.free;
+        };
+      }) {};
+    build-farm = callPackage ({ bui
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , magit-popup
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "build-farm";
+        ename = "build-farm";
+        version = "20180906.1158";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "build-farm.el";
+          rev = "e244dea35566a10253d61be430d3caf81b779af8";
+          sha256 = "1a4ky0hca26p7f3i2c2s5517ygkyaaz52vs0vxy6f5q95rhlgdhd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/build-farm";
+          sha256 = "0dbq3sc1x0cj06hv3mlk0zw0cijdwjszicylv14m1wahal33xjrw";
+          name = "recipe";
+        };
+        packageRequires = [ bui emacs magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/build-farm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    build-helper = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , projectile }:
+      melpaBuild {
+        pname = "build-helper";
+        ename = "build-helper";
+        version = "20161009.1055";
+        src = fetchFromGitHub {
+          owner = "afonso360";
+          repo = "build-helper";
+          rev = "d1962858734253eca791721ccf62d1c4a10719f5";
+          sha256 = "07bhagf206p8q0nmz3sy2frd3zzi96snm3bm0rp6mffai0p58vps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/build-helper";
+          sha256 = "1asgpf2k4i7p88ask1i6ra4krhsxr6j2d2qv0gfxlsa5p330mmgh";
+          name = "recipe";
+        };
+        packageRequires = [ projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/build-helper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    build-status = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "build-status";
+        ename = "build-status";
+        version = "20171111.1147";
+        src = fetchFromGitHub {
+          owner = "sshaw";
+          repo = "build-status";
+          rev = "ef44185d9dd748ea578d68398f3f729a8adb45b5";
+          sha256 = "00zcmmdccgzb5cp1nd9kjpiqs3zd9rh0z7aj9kmwsffaq339g55n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/build-status";
+          sha256 = "0ckyf0asll50gifx1v0qqzpimjms8i1rgw9bnqiyj861qn5hch92";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/build-status";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bundler = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , inf-ruby
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bundler";
+        ename = "bundler";
+        version = "20160815.215";
+        src = fetchFromGitHub {
+          owner = "endofunky";
+          repo = "bundler.el";
+          rev = "f981f67c33b42243e57a78c358dffff70022b56b";
+          sha256 = "1hfcvlkwa3hh70qan3q5mvld1hqqbnmbwqycvlqi6qr8dcdfl3cx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bundler";
+          sha256 = "1jvcrxwsf9yd5vhirfdmjl52n6hffr1vikd386qbn32vgqcsba7a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/bundler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bury-successful-compilation = callPackage ({ fetchFromGitHub
+                                               , fetchurl
+                                               , lib
+                                               , melpaBuild }:
+      melpaBuild {
+        pname = "bury-successful-compilation";
+        ename = "bury-successful-compilation";
+        version = "20181105.2003";
+        src = fetchFromGitHub {
+          owner = "EricCrosson";
+          repo = "bury-successful-compilation";
+          rev = "674644c844184605a1bb4f9487a60f7a780a6fe7";
+          sha256 = "13ilv4zbzwb5rz0gf69z8pvxazvwlmb5shkb055l42ksxslp49hh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bury-successful-compilation";
+          sha256 = "1gkq4r1573m6m57fp7x69k7kcpqchpcqfcz3792v0wxr22zhkwr3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bury-successful-compilation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buster-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "buster-mode";
+        ename = "buster-mode";
+        version = "20140928.513";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "buster-mode";
+          rev = "de6958ef8369400922618b8d1e99abfa91b97ac5";
+          sha256 = "1viq7cb41r8klr8i38c5zjrhdnww31gh4j51xdgy4v2lc3z321zi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buster-mode";
+          sha256 = "0nylkxy9qlj1h5v0pja4g315xcj5qzvkys4dsnzbh3xq4xzyj6xj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buster-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buster-snippets = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , yasnippet }:
+      melpaBuild {
+        pname = "buster-snippets";
+        ename = "buster-snippets";
+        version = "20151125.210";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "buster-snippets.el";
+          rev = "bb8769dae132659858e74d52f3f4e8790399423a";
+          sha256 = "11djqlw4qf3qs2rwiz7dn5q2zw5i8sykwdf4hg4awsgv8g0bbxn6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buster-snippets";
+          sha256 = "0k36c2k7wwix10rgmjxipc77fkn9jahjyvl191af6w41wla47x4x";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/buster-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    busybee-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "busybee-theme";
+        ename = "busybee-theme";
+        version = "20170719.228";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "busybee-theme";
+          rev = "66b2315b030582d0ebee605cf455d386d8c30fcd";
+          sha256 = "1cvj5m45f5ky3w86khh6crvdqrdjxg2z6b34jlm32qpgmn0s5g45";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/busybee-theme";
+          sha256 = "0w0z5x2fbnalv404av3mapfkqbfgyk81a1mzvngll8x0pirbyi10";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/busybee-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    butler = callPackage ({ deferred
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , json ? null
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "butler";
+        ename = "butler";
+        version = "20150811.1708";
+        src = fetchFromGitHub {
+          owner = "AshtonKem";
+          repo = "Butler";
+          rev = "8ceb35737107572455cca9a61ff46b3ff78f1016";
+          sha256 = "0pp604r2gzzdpfajw920607pklwflk842difdyl4hy9w87fgc0jg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/butler";
+          sha256 = "1jv74l9jy55qpwf5np9nlj6a1wqsm3xirm7wm89d1h2mbsfcr0mq";
+          name = "recipe";
+        };
+        packageRequires = [ deferred emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/butler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buttercup = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "buttercup";
+        ename = "buttercup";
+        version = "20181103.406";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "emacs-buttercup";
+          rev = "4089d5f66dcf1dd25d8e56fe6508f1fa48ac097c";
+          sha256 = "1h1p03ds7vbzr75g2ayg86igx2ibgz4cgcxsq2q5wcr6j164lhnz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buttercup";
+          sha256 = "1grrrdk5pl9l1jvnwzl8g0102gipvxb5qn6k2nmv28jpl57v8dkb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buttercup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    button-lock = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "button-lock";
+        ename = "button-lock";
+        version = "20150223.554";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "button-lock";
+          rev = "f9082feb329432fcf2ac49a95e64bed9fda24d58";
+          sha256 = "06qjvybf65ffrcnhhbqs333lg51fawaxnva3jvdg7zbrsv4m9acl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/button-lock";
+          sha256 = "1arrdmb3nm570hgs18y9sz3z9v0wlkr3vwa2zgfnc15lmf0y34mp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/button-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    c-c-combo = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "c-c-combo";
+        ename = "c-c-combo";
+        version = "20151223.1855";
+        src = fetchFromGitHub {
+          owner = "CestDiego";
+          repo = "c-c-combo.el";
+          rev = "a261a833499a7fdc29610863b3aafc74818770ba";
+          sha256 = "040mcq2cwzbrf96f9mghb4314cd8xwp7ki2ix9fxpmbwiy323ld5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/c-c-combo";
+          sha256 = "09rvh6n2hqls7qki5dc34s2hmcmlvdsbgzcxgglhcmrhwx5w4vxn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/c-c-combo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    c-eldoc = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "c-eldoc";
+        ename = "c-eldoc";
+        version = "20181108.2039";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "c-eldoc";
+          rev = "e35c0e40f71c25804919f6c01fd27e95c2e2adb7";
+          sha256 = "0rwxlq8w6507lkvvj0krwvg4ai1wyj466nhns1f857kry7cssnzy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/c-eldoc";
+          sha256 = "13grkww14w39y2x6mrbfa9nzljsnl5l7il8dnj6sjdyv0hz9x8vm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/c-eldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    c0-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "c0-mode";
+        ename = "c0-mode";
+        version = "20151110.1052";
+        src = fetchFromGitHub {
+          owner = "catern";
+          repo = "c0-mode";
+          rev = "c214093c36864d6208fcb9e6a72413ed17ed5d60";
+          sha256 = "10k90r4ckkkdjn9pqcbfyp6ynvrd5k0ngqcn5d0v1qvkn6jifxjx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/c0-mode";
+          sha256 = "0s3h4b3lpz4jsk222yyfdxh780dvykhaqgyv6r3ambz95vrmmpl4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/c0-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cabledolphin = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , seq }:
+      melpaBuild {
+        pname = "cabledolphin";
+        ename = "cabledolphin";
+        version = "20160204.138";
+        src = fetchFromGitHub {
+          owner = "legoscia";
+          repo = "cabledolphin";
+          rev = "fffc192cafa61558e924323d6da8166fe5f2a6f9";
+          sha256 = "1h395hvia7r76zlgr10qdr9q2159qyrs89znhkp2czikwm8kjiqk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cabledolphin";
+          sha256 = "04slrx0vkcm66q59158limn0cpxn18ghlqyx7z8nrn7frrc03z03";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/cabledolphin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cache = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "cache";
+        ename = "cache";
+        version = "20111019.1600";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "cache";
+          rev = "7499586b6c8224df9f5c5bc4dec96b008258d580";
+          sha256 = "1hp6dk84vvgkmj5lzghvqlpq3axwzgx9c7gly2yx6497fgf9jlby";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cache";
+          sha256 = "15pj7f4n0lk8qqsfafdj19iy0hz4xpfcf2fnby7ziq2dldyqrax9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cache";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cacoo = callPackage ({ concurrent
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "cacoo";
+        ename = "cacoo";
+        version = "20120319.1659";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-cacoo";
+          rev = "c9fa04fbe97639b24698709530361c2bb5f3273c";
+          sha256 = "07kzhyqr8ycjvkknijqhsfr26zd5jc8wxm9sl8bp6pzn4jbs1dmx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cacoo";
+          sha256 = "0kri4vi6dpsf0zk24psm16f3aa27cq5b54ga7zygmr02csq24a6z";
+          name = "recipe";
+        };
+        packageRequires = [ concurrent ];
+        meta = {
+          homepage = "https://melpa.org/#/cacoo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cake-inflector = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "cake-inflector";
+        ename = "cake-inflector";
+        version = "20140415.158";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "emacs-cake-inflector";
+          rev = "d9c6298fbca53efeb6f0f37140395659d9a6d7cc";
+          sha256 = "09p04bssiqyp74947ivsl09x93bd6ik48ycgimafmx8aycnrjfla";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cake-inflector";
+          sha256 = "04mrqcm1igb638skaq2b3nr5yzxnck2vwhln61rnh7lkfxq7wbwf";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/cake-inflector";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cakecrumbs = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "cakecrumbs";
+        ename = "cakecrumbs";
+        version = "20180928.1839";
+        src = fetchFromGitHub {
+          owner = "kuanyui";
+          repo = "cakecrumbs.el";
+          rev = "cf8c1df885eee004602f73c4f841301e200e5850";
+          sha256 = "0s5ga39dpn9rjxjk5inkylqh56w3qgaq2wmwwgv5gsydqdyil31f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cakecrumbs";
+          sha256 = "1s5j8w0y47qpdq4f34l7hmdhxp560wg1lgzqz6p3p3lg1l89sv47";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cakecrumbs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cal-china-x = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "cal-china-x";
+        ename = "cal-china-x";
+        version = "20180211.1101";
+        src = fetchFromGitHub {
+          owner = "xwl";
+          repo = "cal-china-x";
+          rev = "e9b309065829af3a9a0c526509bd64d9228fdced";
+          sha256 = "0wipcsr0dry2r9sw7lcz5hw16b5gpax7qr2nbdlcwj3j9axqipyg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cal-china-x";
+          sha256 = "06mh2p14m2axci8vy1hr7jpy53jj215z0djyn8h7zpr0k62ajhka";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/cal-china-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calendar-norway = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "calendar-norway";
+        ename = "calendar-norway";
+        version = "20180906.802";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "calendar-norway.el";
+          rev = "8d1fda8268caa74ba5e712c7675ed3c34e46e2d4";
+          sha256 = "011c8pz1g805a7c3djai39yasd2idfp4c2dcrvf7kbls27ayrl6d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calendar-norway";
+          sha256 = "1i23ks0bnq62bvn3szvqf0ikcam4s92yvr998mkjxhdhc94zd19c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calendar-norway";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "calfw";
+        ename = "calfw";
+        version = "20180117.1645";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "03abce97620a4a7f7ec5f911e669da9031ab9088";
+          sha256 = "0wiggihw9ackjdssqgp2cqccd3sil13n3pfn33d3r320fmxfjbch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw";
+          sha256 = "0am1nafc16zax8082gjlz0pi85lryjhrx0v80nzgr23iybj5mfx4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw-cal = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "calfw-cal";
+        ename = "calfw-cal";
+        version = "20170320.506";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "136dce009a26e7d8a8064af422c2cf8170e852c5";
+          sha256 = "1hiip8hfl7myimgba7ggs1ki1pk3ag7nyfa8j2zzm87n93g5xia4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw-cal";
+          sha256 = "1wylkd7jl1ifq56jj04l5b9wfrjkhwncxzrjgnbgg1cl2klf6v4m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw-cal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw-gcal = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "calfw-gcal";
+        ename = "calfw-gcal";
+        version = "20120111.200";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "calfw-gcal.el";
+          rev = "14aab20687d6cc9e6c5ddb9e11984c4e14c3d870";
+          sha256 = "14n5rci4bkbl7037xvkd69gfxnjlgvd2j1xzciqcgz92f06ir3xi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw-gcal";
+          sha256 = "0pzjs8kvf9vxdzziq7zd59vniq21k4a6yygpv4fz2by3s3bvnrid";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw-gcal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw-howm = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "calfw-howm";
+        ename = "calfw-howm";
+        version = "20170703.1704";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "bcfc0c546c3c58e1f635a9a29efdf56c9421a3ce";
+          sha256 = "0n7kn0g7mxylp28w5llrz22w12qjvypa1g82660qr2d9ga9mb0v9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw-howm";
+          sha256 = "08cv16cq211sy2v1i0gk7d81f0gyywv0i9szmamnrbjif3rrv2m0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw-howm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw-ical = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "calfw-ical";
+        ename = "calfw-ical";
+        version = "20150703.119";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "a67fa1023b3fddc1d1f38114c1d207376c8e6289";
+          sha256 = "0g8s3pgivqk1vqdgkndznkl48c4m5yiahkjxyqyv2781hdb4f6xa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw-ical";
+          sha256 = "1bh9ahwp9b5knjxph79kl19fgs48x3w7dga299l0xvbxq2jhs95q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw-ical";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw-org = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "calfw-org";
+        ename = "calfw-org";
+        version = "20160302.1858";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "e03ae470788778e7714b73520014eadc03a88abd";
+          sha256 = "0rhasr818qijd2pcgifi0j3q4fkbiw2ck1nivajk7m810p53bxbj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw-org";
+          sha256 = "1cfpjh08djz3k067w3580yb15p1csks3gzch9c4cbrbcjvg8inh5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    call-graph = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , hierarchy
+                              , ivy
+                              , lib
+                              , melpaBuild
+                              , tree-mode }:
+      melpaBuild {
+        pname = "call-graph";
+        ename = "call-graph";
+        version = "20180509.635";
+        src = fetchFromGitHub {
+          owner = "beacoder";
+          repo = "call-graph";
+          rev = "1ba83f20e56cfe77f6165df4ffde1d152647ec3b";
+          sha256 = "0qs3wg6ls4s400hdcimwf9lj9mz6g39sk3nqxvp4fk01jjzcas39";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/call-graph";
+          sha256 = "0cklr79gqqrb94jq8aq65wqriamay78vv9sd3jrvp86ixl3ig5xc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs hierarchy ivy tree-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/call-graph";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calmer-forest-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "calmer-forest-theme";
+        ename = "calmer-forest-theme";
+        version = "20130925.2210";
+        src = fetchFromGitHub {
+          owner = "caldwell";
+          repo = "calmer-forest-theme";
+          rev = "31a0bed8e5db1e314557175a719a10804ac089f4";
+          sha256 = "1rqd46ngnjln6vvcx7vsmwsjn4r3wfdpip6gqjqbsznav2g74bra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calmer-forest-theme";
+          sha256 = "0riz5n8fzvxdnzgg650xqc2zwc4xvhwjlrrzls5h0pl5adaxz96p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calmer-forest-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    camcorder = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , names }:
+      melpaBuild {
+        pname = "camcorder";
+        ename = "camcorder";
+        version = "20160404.2134";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "camcorder.el";
+          rev = "c96b3392c99b9f83c968bffa330ec4356c41518e";
+          sha256 = "0am8asrzjs3iwak9c86fxb4zwgx5smbb9ywp0zn4y7j37blygswj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/camcorder";
+          sha256 = "1kbnpz3kn8ycpy8nlp8bsnnd1k1h7m02h7w5f7raw97sk4cnpvbi";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs names ];
+        meta = {
+          homepage = "https://melpa.org/#/camcorder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    caml = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "caml";
+        ename = "caml";
+        version = "20181011.628";
+        src = fetchFromGitHub {
+          owner = "ocaml";
+          repo = "ocaml";
+          rev = "e52b1c65189bb7833feb72fe6b9975eda6635bf3";
+          sha256 = "0pj1v4lbwnx1nviwrxvkh24k3rxhl7sj21blnqdfzyrf3hlk01r4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/caml";
+          sha256 = "1ixs0626nsg1ilqdwj5rd8kicjy7mprswwy0kprppmpmc8y7xf7c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/caml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cangjie = callPackage ({ dash
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "cangjie";
+        ename = "cangjie";
+        version = "20181015.520";
+        src = fetchFromGitHub {
+          owner = "kisaragi-hiu";
+          repo = "cangjie.el";
+          rev = "ed95825417650b7a8c735ccb73c3f7ecd4a41c13";
+          sha256 = "1ihak40krrw7ayzfdpkgcszwza3v64zf4mxcgagqazr2wzdxg92r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cangjie";
+          sha256 = "0gdp6dlkzkkd8r3cmwakwxlxsbysb351n1lr9sq4d60gbbskklln";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/cangjie";
+          license = lib.licenses.free;
+        };
+      }) {};
+    capture = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "capture";
+        ename = "capture";
+        version = "20130828.944";
+        src = fetchFromGitHub {
+          owner = "pashinin";
+          repo = "capture.el";
+          rev = "9140c207b48b3520a2f06674b3e1bee2fc92b80c";
+          sha256 = "1fqqiari3r2dib65gc1jayhj5rca249g1ll9lxdcc7mfifjc4pqk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/capture";
+          sha256 = "1hxrvyq8my5886q7wj5w3mhyja7d6cf19gyclap492ci7kmrkdk2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/capture";
+          license = lib.licenses.free;
+        };
+      }) {};
+    carbon-now-sh = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "carbon-now-sh";
+        ename = "carbon-now-sh";
+        version = "20180331.1035";
+        src = fetchFromGitHub {
+          owner = "veelenga";
+          repo = "carbon-now-sh.el";
+          rev = "b5f1e5487301b230078f3ab8032e19969d738aea";
+          sha256 = "1x987rvbz56ppjys7xbkzkn53cdjzxay3nkvr9w555kc24qsg2qf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/carbon-now-sh";
+          sha256 = "1casq1b71rlwanayixs6rrn96jn1w7bzkq77lg0ini5hrfd3w18p";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/carbon-now-sh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cargo = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , markdown-mode
+                         , melpaBuild
+                         , rust-mode }:
+      melpaBuild {
+        pname = "cargo";
+        ename = "cargo";
+        version = "20181111.2322";
+        src = fetchFromGitHub {
+          owner = "kwrooijen";
+          repo = "cargo.el";
+          rev = "f8504cd51021741a3931c28dc5e87cc16687420b";
+          sha256 = "0glrxirvp9fv6rrjiv5kvcvf08rxqvg5f6rcpn757wvaaw1qz9ps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cargo";
+          sha256 = "06zq657cxfk5l4867qqsvhskcqc9wswyl030wj27a43idj8n41jx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs markdown-mode rust-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/cargo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    caroline-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "caroline-theme";
+        ename = "caroline-theme";
+        version = "20160317.2220";
+        src = fetchFromGitHub {
+          owner = "xjackk";
+          repo = "caroline-theme";
+          rev = "222fd483db304509f9e422dc82883d808e023ceb";
+          sha256 = "055w1spba0q9rqqg4rjds0iakr9d8xg66959xahxq8268mq5446n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/caroline-theme";
+          sha256 = "178nxcz73lmvnjcr6x6as25d8m5knc21jpr66b4rg0rmlmhchkal";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/caroline-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    caseformat = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "caseformat";
+        ename = "caseformat";
+        version = "20160115.815";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "caseformat";
+          rev = "e4961889309408b3425da9b69c16ddfadd17a674";
+          sha256 = "08bypv8dijzv05hml4lzzy0ynhsgkma9bspw8sq3zgz5q92gnvrk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/caseformat";
+          sha256 = "1qwyr74jbx4jpfcw8sccg47q1vdg094rr06m111gsz2yaj9m0gfk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/caseformat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cask = callPackage ({ ansi
+                        , cl-lib ? null
+                        , dash
+                        , epl
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , package-build
+                        , s
+                        , shut-up }:
+      melpaBuild {
+        pname = "cask";
+        ename = "cask";
+        version = "20181107.142";
+        src = fetchFromGitHub {
+          owner = "cask";
+          repo = "cask";
+          rev = "199b4380dd3e178ff9df3a9d13d044d67e522b3f";
+          sha256 = "14q76wdlnwg08ais2gpmdrjvshly1wp8p8ckyhdmnwq7x39qvh7d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cask";
+          sha256 = "11nr6my3vlb1xiyai7qwii3nszda2mnkhkjlbh3d0699h0yw7dk5";
+          name = "recipe";
+        };
+        packageRequires = [ ansi cl-lib dash epl f package-build s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/cask";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cask-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cask-mode";
+        ename = "cask-mode";
+        version = "20160410.749";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "cask-mode";
+          rev = "c97755267b7215f02df7b0c16b4210c04aee6566";
+          sha256 = "162vvyycvv9pd93hsb8blbjqf22d40xinm5340b3vnsqgg33l4jl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cask-mode";
+          sha256 = "0fs9zyihipr3klnh3w22h43qz0wnxplm62x4kx7pm1chq9bc9kz6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cask-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cask-package-toolset = callPackage ({ ansi
+                                        , cl-lib ? null
+                                        , commander
+                                        , dash
+                                        , emacs
+                                        , f
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , s
+                                        , shut-up }:
+      melpaBuild {
+        pname = "cask-package-toolset";
+        ename = "cask-package-toolset";
+        version = "20170921.1556";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "cask-package-toolset.el";
+          rev = "2c74cd827e88c7f8360581a841e45f0b794510e7";
+          sha256 = "1hk5q6p1j7cqg5srr3v21xfyy7aas4hfj1a66h21c2xvfjra3hxw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cask-package-toolset";
+          sha256 = "13ix093c0a58rjqj7zfp3914xj3hvj276gb2d8zhvrx9vvs1345g";
+          name = "recipe";
+        };
+        packageRequires = [ ansi cl-lib commander dash emacs f s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/cask-package-toolset";
+          license = lib.licenses.free;
+        };
+      }) {};
+    caskxy = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , log4e
+                          , melpaBuild
+                          , yaxception }:
+      melpaBuild {
+        pname = "caskxy";
+        ename = "caskxy";
+        version = "20140513.839";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "caskxy";
+          rev = "279f3ab79bd77fe69cb3148a79896b9bf118a9b3";
+          sha256 = "1j1lw5zifp7q1ykm6si0nzxfp7n3z2lzla2njkkxmc2s6m7w4x1a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/caskxy";
+          sha256 = "0x4s3c8m75zxsvqpgfc5xwll0489zzdnngmnq048z9gkgcd7pd2s";
+          name = "recipe";
+        };
+        packageRequires = [ log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/caskxy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    catmacs = callPackage ({ emacs
+                           , fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "catmacs";
+        ename = "catmacs";
+        version = "20170826.457";
+        src = fetchgit {
+          url = "https://bitbucket.org/pymaximus/catmacs";
+          rev = "6ea9ee195661fe95355413856476c45dcc8e24e8";
+          sha256 = "057fqmpzhpslhcyvz4s7lp2v448fy7xicfk9kaw3fjhlrnkhi603";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/catmacs";
+          sha256 = "0ym1szmq9ib75yiyy5jw647fcs7gg0d5dkskqc293pg81qf3im50";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/catmacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cbm = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "cbm";
+        ename = "cbm";
+        version = "20171116.440";
+        src = fetchFromGitHub {
+          owner = "akermu";
+          repo = "cbm.el";
+          rev = "5b41c936ba9f6d170309a85ffebc9939c1050b31";
+          sha256 = "091ln3d0jhdgahbwfdm1042b19886n3kwipw5gk8d0jnq5vwrkws";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cbm";
+          sha256 = "02ch0gdw610c8dfxxjxs7ijsc9lzbhklj7hqgwfwksnyc36zcjmn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/cbm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ccc = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ccc";
+        ename = "ccc";
+        version = "20151205.543";
+        src = fetchFromGitHub {
+          owner = "skk-dev";
+          repo = "ddskk";
+          rev = "e18c04d63712a5b40853bee3ca3f1bde8ba5bdba";
+          sha256 = "17grxms81xb00bhg8j2yzc3j74njakgv4r80w0vj8fp1357j12xd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ccc";
+          sha256 = "0fckhmz4svcg059v4acbn13yf3ijs09fxmq1axc1b9bm3xxig2cq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ccc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ccls = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , lsp-mode
+                        , melpaBuild
+                        , projectile }:
+      melpaBuild {
+        pname = "ccls";
+        ename = "ccls";
+        version = "20181105.2146";
+        src = fetchFromGitHub {
+          owner = "MaskRay";
+          repo = "emacs-ccls";
+          rev = "07ad553950e69f862f7c74c9b1f02c00ab450d22";
+          sha256 = "00vf5cdq1pmbff8w2wgzdlpwfjwx6js4alq798l2nr0a5qqmg8h0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ccls";
+          sha256 = "0kiv0n6pdpa75wjcimpwccwbjbhga4gjnphjrkpj4qz5qv42rbnm";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs lsp-mode projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/ccls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cd-compile = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "cd-compile";
+        ename = "cd-compile";
+        version = "20141108.1157";
+        src = fetchFromGitHub {
+          owner = "jamienicol";
+          repo = "emacs-cd-compile";
+          rev = "10284ccae86afda4a37b09ba90acd1e2efedec9f";
+          sha256 = "1a93cim1w96aaj81clhjv25r7v9bwqm9a818mn8lk4aj1bmhgc4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cd-compile";
+          sha256 = "1a24rv1jbb883vwhjkw6qxv3h3qy039iqkhkx3jkq1ydidr9f0hv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cd-compile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cdb = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "cdb";
+        ename = "cdb";
+        version = "20151205.543";
+        src = fetchFromGitHub {
+          owner = "skk-dev";
+          repo = "ddskk";
+          rev = "e18c04d63712a5b40853bee3ca3f1bde8ba5bdba";
+          sha256 = "17grxms81xb00bhg8j2yzc3j74njakgv4r80w0vj8fp1357j12xd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cdb";
+          sha256 = "1gx34062h25gqsl3j1fjlklha19snvmfaw068q6bv6x9r92niqnf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cdlatex = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "cdlatex";
+        ename = "cdlatex";
+        version = "20140707.426";
+        src = fetchFromGitHub {
+          owner = "cdominik";
+          repo = "cdlatex";
+          rev = "1d491c2dddb05cdace1ae0e1f56a36009b065d85";
+          sha256 = "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cdlatex";
+          sha256 = "021gj0jw93r8gk0cacw1ldfibpwr6fpkcrnign7b4nqqnb3135k9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cdlatex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cdnjs = callPackage ({ dash
+                         , deferred
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pkg-info }:
+      melpaBuild {
+        pname = "cdnjs";
+        ename = "cdnjs";
+        version = "20161031.822";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "cdnjs.el";
+          rev = "ce19880d3ec3d81e6c665d0b1dfea99cc7a3f908";
+          sha256 = "02j45ngddx7n5gvy42r8y3s22bmxlnvg2pqjfh0li8m599fnd11h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cdnjs";
+          sha256 = "1clm86n643z1prxrlxlg59jg43l9wwm34x5d88bj6yvix8g6wkb7";
+          name = "recipe";
+        };
+        packageRequires = [ dash deferred f pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/cdnjs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cedit = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "cedit";
+        ename = "cedit";
+        version = "20141231.814";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "cedit";
+          rev = "0878d851b6307c162bfbddd2bb02789e5e27bc2c";
+          sha256 = "1f8gdj3p54q3410c66716y3l7i7nnkmq6hqz0dg1a1sc6jwdij3v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cedit";
+          sha256 = "169sy7a1bgczwfxkkzjiggb7vdjxhrx7i3a39g6zv9f1zs6byk6m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    celery = callPackage ({ dash-functional
+                          , deferred
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "celery";
+        ename = "celery";
+        version = "20170225.124";
+        src = fetchFromGitHub {
+          owner = "ardumont";
+          repo = "emacs-celery";
+          rev = "b3378dd81e5a717432123fb13d70201da5dc841a";
+          sha256 = "0xm9dhcw7p60rckq9i4aqpv050n2244yi8w5rvqlqb2i4pnkb0fh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/celery";
+          sha256 = "0m3hmvp6xz2m7z1kbb0ii0j3c95zi19652gfixq5a5x23kz8y59h";
+          name = "recipe";
+        };
+        packageRequires = [ dash-functional deferred emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/celery";
+          license = lib.licenses.free;
+        };
+      }) {};
+    celestial-mode-line = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "celestial-mode-line";
+        ename = "celestial-mode-line";
+        version = "20180518.122";
+        src = fetchFromGitHub {
+          owner = "ecraven";
+          repo = "celestial-mode-line";
+          rev = "3f5794aca99b977f1592cf1ab4516ae7922196a1";
+          sha256 = "01kdpfjnfnjll40n1zdp641gw8pk2vnv93a59lyx1mw1f30yvfr6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/celestial-mode-line";
+          sha256 = "1s6vn71mxfvvafjs25j12z1gnmxnkvnw716zy5ifx1bs8s5960kq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/celestial-mode-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    centered-cursor-mode = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "centered-cursor-mode";
+        ename = "centered-cursor-mode";
+        version = "20180112.755";
+        src = fetchFromGitHub {
+          owner = "andre-r";
+          repo = "centered-cursor-mode.el";
+          rev = "319636448ffb7dba5fade3b2599ed9c1fd3bf8c8";
+          sha256 = "1fib5db8rjyjrr86nw1jvf30pz2zva0v21khyz7fkh2nkf8b3a7i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/centered-cursor-mode";
+          sha256 = "1yy50p3xprkqiak3vfly5s5kpbbdmxmw6fhgz13fw97553hr3w5x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/centered-cursor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    centered-window = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "centered-window";
+        ename = "centered-window";
+        version = "20171127.149";
+        src = fetchFromGitHub {
+          owner = "anler";
+          repo = "centered-window-mode";
+          rev = "1234a364c9fa3a54087884ced2a7357b93fbb5d7";
+          sha256 = "1z3zi6zy1z68g4sfiv21l998n04hbbqp660khind6ap8yjjn8ik8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/centered-window";
+          sha256 = "0w6na4ld79bpmkiv6glbrphc32v6g2rcrpi28259i94jhgy1kxqk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/centered-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    centimacro = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "centimacro";
+        ename = "centimacro";
+        version = "20140306.627";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "centimacro";
+          rev = "1b97a9b558ed9c49d5da1bfbf29b2506575c2742";
+          sha256 = "0zqrpaq9c3lm12jxnvysh8f3m3193k22zaj0ycscdqd1jpq4wcgh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/centimacro";
+          sha256 = "1qbyfi6s4hdp5sv394w3sib8g2kx06i06q8gh6hdv5pis5kq9fx6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/centimacro";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cerbere = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , pkg-info }:
+      melpaBuild {
+        pname = "cerbere";
+        ename = "cerbere";
+        version = "20181113.841";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "cerbere";
+          rev = "bb18d932b16541105d41a668dbf6fc4e833a6dc2";
+          sha256 = "1sx61pgh12iqby4yvslrmn634hn4hk2bh2zfybj1b5p3iwzzmpzd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cerbere";
+          sha256 = "1g3svmh5dlh5mvyag3hmiy90dfkk6f7ppd9qpwckxqyll9vl7r06";
+          name = "recipe";
+        };
+        packageRequires = [ pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/cerbere";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ceylon-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ceylon-mode";
+        ename = "ceylon-mode";
+        version = "20180606.624";
+        src = fetchFromGitHub {
+          owner = "lucaswerkmeister";
+          repo = "ceylon-mode";
+          rev = "948515672bc596dc118e8e3ede3ede5ec6a3c95a";
+          sha256 = "1a9f9h5kywfy8c2kmaxc9vf5zcykbhghpi3ra2l3z5hm0knq54ay";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ceylon-mode";
+          sha256 = "0dgqmmb8qmvzn557h0fw1mx4y0p96870l8f8glizkk3fifg7wgq4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ceylon-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cfengine-code-style = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "cfengine-code-style";
+        ename = "cfengine-code-style";
+        version = "20171115.1308";
+        src = fetchFromGitHub {
+          owner = "cfengine";
+          repo = "core";
+          rev = "10e43677e99a29d8072bb120e7cd7b9d03b1218f";
+          sha256 = "0mncl7wb2vi620snk4z01k0wdbvvd5b2nw9nlnfr9a4hkn3fg44r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cfengine-code-style";
+          sha256 = "1ny8xvdnz740qmw9m81xnwd0gh0a516arpvl3nfimglaai5bfc9a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cfengine-code-style";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cff = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "cff";
+        ename = "cff";
+        version = "20160118.1218";
+        src = fetchFromGitHub {
+          owner = "fourier";
+          repo = "cff";
+          rev = "b6ab2a28e64ef06f281ec74cfe3114e450644dfa";
+          sha256 = "019vqjmq6hb2f5lddqy0ya5q0fd47xix29cashlchz0r034rc32r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cff";
+          sha256 = "04b2ck1jkhsrka6dbyn6rpsmmc2bn13kpyhzibd781hj73d93jgc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cfml-mode = callPackage ({ cftag-mode
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , mmm-mode }:
+      melpaBuild {
+        pname = "cfml-mode";
+        ename = "cfml-mode";
+        version = "20170903.1949";
+        src = fetchFromGitHub {
+          owner = "am2605";
+          repo = "cfml-mode";
+          rev = "86e77dcbb583191a3e755bdc29534f33d82bfc56";
+          sha256 = "0b0261ap0jiys9d0x31xg7x36kpq06fni2c0cjhi58wpcykq3s1p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cfml-mode";
+          sha256 = "0q88lxhkzzab4jjihk0livdpn6lsmd8l2s4brcbl8402m285sylp";
+          name = "recipe";
+        };
+        packageRequires = [ cftag-mode emacs mmm-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/cfml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cframe = callPackage ({ buffer-manage
+                          , dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "cframe";
+        ename = "cframe";
+        version = "20170917.1509";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "cframe";
+          rev = "61844d948e4464625f7023de62aeb27ca742b36f";
+          sha256 = "1v413kvygfkdiqi9zg6ypihf2vcks0vs80qshg0ynm5zy27f984y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cframe";
+          sha256 = "0pngdaflk1pk2xmwbij4b520b3mlacnjab4r3jby0phah44ziv4l";
+          name = "recipe";
+        };
+        packageRequires = [ buffer-manage dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cftag-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "cftag-mode";
+        ename = "cftag-mode";
+        version = "20170811.2240";
+        src = fetchFromGitHub {
+          owner = "am2605";
+          repo = "cfml-mode";
+          rev = "395c5a9422f7bda619fd67875a8a2173aaf9c807";
+          sha256 = "1q0hy0baf8vcnnbanpl3za4q5ykxm33fyq2n863jp9v6b6wbc71d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cftag-mode";
+          sha256 = "0qnq8h5nwhw464ax8qpbsvflpaar44zw0mh2y7kc358v27n3qy6c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cftag-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cg = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "cg";
+        ename = "cg";
+        version = "20181022.616";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "cg";
+          rev = "34a892aa77c9870006bae988c79f694f2e5a68a3";
+          sha256 = "0jjjqy7rmr2yzjqzvhz0nxs3nvwjh4gjf8rrh3maivw0wd1l8pl1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cg";
+          sha256 = "0yl2w48953vym4gxcxvjfaq3jgsv5jlya9vq3iwlfxqpapd3r3k9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    challenger-deep-theme = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "challenger-deep-theme";
+        ename = "challenger-deep-theme";
+        version = "20180816.1558";
+        src = fetchFromGitHub {
+          owner = "challenger-deep-theme";
+          repo = "emacs";
+          rev = "443ca72dca966b3d27dbec9eab54a09cbd76eac0";
+          sha256 = "19gv0fczdy8hpv836ak2aa70cz0hwm0mw7dinrwz9kyw3wkfi8yv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/challenger-deep-theme";
+          sha256 = "02k0irp27wv1b5g2a6g86zp7cdprv17c0mlhkjsq2brls274ch3y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/challenger-deep-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    change-inner = callPackage ({ expand-region
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "change-inner";
+        ename = "change-inner";
+        version = "20150707.844";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "change-inner.el";
+          rev = "52c543a4b9808c0d15b565fcdf646c9779de33e8";
+          sha256 = "1m9sq93bwajbld3lnlzkjbsby5zlm9sxjzqynryyvsb9zr1d0a9z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/change-inner";
+          sha256 = "09y076vhhvp21jsvw9f5z4yk6cnmmjavg7600flxg5g27ydgix57";
+          name = "recipe";
+        };
+        packageRequires = [ expand-region ];
+        meta = {
+          homepage = "https://melpa.org/#/change-inner";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chapel-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "chapel-mode";
+        ename = "chapel-mode";
+        version = "20160504.108";
+        src = fetchFromGitHub {
+          owner = "russel";
+          repo = "Emacs-Chapel-Mode";
+          rev = "816a1a54ff5ffdd20b6a4d249ace774740a3924c";
+          sha256 = "0kp18xlc1005hbkfhng03y4xgaicqf6b5vwgnwbbw9s5qzirmhix";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chapel-mode";
+          sha256 = "0hmnsv8xf85fc4jqkaqz5j3sf56hgib4jp530vvyc2dl2sps6vzz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chapel-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    char-menu = callPackage ({ avy-menu
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "char-menu";
+        ename = "char-menu";
+        version = "20171231.2218";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "char-menu";
+          rev = "3235f8e3c88848ce10d25f84a5da39061fd35c0d";
+          sha256 = "05pjfj6g4gdbdj4z63283j5qzkvhvrzsx1jhbc5iih0nsffwapc3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/char-menu";
+          sha256 = "11jkwghrmmvpv7piznkpa0wilwjdsps9rix3950pfabhlllw268l";
+          name = "recipe";
+        };
+        packageRequires = [ avy-menu emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/char-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    charmap = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "charmap";
+        ename = "charmap";
+        version = "20160309.146";
+        src = fetchFromGitHub {
+          owner = "lateau";
+          repo = "charmap";
+          rev = "e0477f08c56c93c420e01452bba64b0da732f309";
+          sha256 = "05k19q7iihvhi0gflmkpsg5q3ydkdlvf0xh7kjk4lx9yvi0am7m2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/charmap";
+          sha256 = "1j7762d2i17ysn9ys8j7wfv989avmax8iylml2hc26mwbpyfpm84";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/charmap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chatwork = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "chatwork";
+        ename = "chatwork";
+        version = "20170510.2142";
+        src = fetchFromGitHub {
+          owner = "ataka";
+          repo = "chatwork";
+          rev = "fea231d479f06bf40dbfcf45de143eecc9ed744c";
+          sha256 = "163xr18lm4awfgh4lcp7pr04jirpvlk8w1g4445zbxbpjfvv268z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chatwork";
+          sha256 = "0p71swcpfqbx2zmp5nh57f0m30cn68g3019005wa5x4fg7dx746p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chatwork";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cheat-sh = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cheat-sh";
+        ename = "cheat-sh";
+        version = "20170802.418";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "cheat-sh.el";
+          rev = "e90445124f3f145a047779e42d070a3c5e150f70";
+          sha256 = "06avap8w833syhz7pdpsm73nbsgbwzmpagd7f3khzaf6r6c90jmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cheat-sh";
+          sha256 = "0f6wqyh3c3ap0l6khikqlw8sqqi6fsl468gn157faza4x63j9z80";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cheat-sh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cheatsheet = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "cheatsheet";
+        ename = "cheatsheet";
+        version = "20170126.1350";
+        src = fetchFromGitHub {
+          owner = "darksmile";
+          repo = "cheatsheet";
+          rev = "e4f8e0110167ea16a17a74517d1f10cb7ff805b8";
+          sha256 = "1vy2qmx9872hfrfcycpsmy0si481rwv4q4gwiy8f2w04zb92szbn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cheatsheet";
+          sha256 = "11z3svlzvmhdy0pkxbx9qz9bnq056cgkbfyw9z34aq1yxazi2cpq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cheatsheet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    checkbox = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "checkbox";
+        ename = "checkbox";
+        version = "20141116.1658";
+        src = fetchFromGitHub {
+          owner = "camdez";
+          repo = "checkbox.el";
+          rev = "2afc2011fa35ccfa0ce9ef46cb1896911fa340d1";
+          sha256 = "09ypxhfad3v1pz0xhw4xgxvfj7ad2kb3ff9zy1mnw7fzsa7gw6nj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/checkbox";
+          sha256 = "17gw6w1m6bs3sfx8nqa8nzdq26m8w85a0fca5qw3bmd18bcmknqa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/checkbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chee = callPackage ({ dash
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "chee";
+        ename = "chee";
+        version = "20171123.1433";
+        src = fetchFromGitHub {
+          owner = "eikek";
+          repo = "chee";
+          rev = "669ff9ee429f24c3c2d03b83d9cb9aec5f86bb8b";
+          sha256 = "1k64mjzqmjirsld40dvmpq4llpb7ggx80r1hvsjqazc4mr16pbri";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chee";
+          sha256 = "1sw84qaca2cwgrw332wfqjp3kg3axgi9n6wx5a6h2n3liq5yr1wj";
+          name = "recipe";
+        };
+        packageRequires = [ dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/chee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cheerilee = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , xelb }:
+      melpaBuild {
+        pname = "cheerilee";
+        ename = "cheerilee";
+        version = "20160313.1135";
+        src = fetchFromGitHub {
+          owner = "Vannil";
+          repo = "cheerilee.el";
+          rev = "41bd81b5b0bb657241ceda5be6af5e07254d7376";
+          sha256 = "1jdlp5cnsiza55vx4kxacqgk7yqg9fvd9swhwdxkczadb2d5l9p1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cheerilee";
+          sha256 = "15igjlnq35cg9nslyqa63i1inqipx3y8g7zg4r26m69k25simqrv";
+          name = "recipe";
+        };
+        packageRequires = [ xelb ];
+        meta = {
+          homepage = "https://melpa.org/#/cheerilee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chef-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "chef-mode";
+        ename = "chef-mode";
+        version = "20180628.753";
+        src = fetchFromGitHub {
+          owner = "mpasternacki";
+          repo = "chef-mode";
+          rev = "048d691cb63981ae235763d4a6ced4af5c729924";
+          sha256 = "1niin51xwkd8q3wbwcgb0gyk3sw1829qj2p2zv7fm8ljy1jicn2d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chef-mode";
+          sha256 = "1pz82s82d4z3vkm8mpmwdxb9pd11kq09g23mg461lzqxjjw734rr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chef-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cherry-blossom-theme = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "cherry-blossom-theme";
+        ename = "cherry-blossom-theme";
+        version = "20150621.2042";
+        src = fetchFromGitHub {
+          owner = "inlinestyle";
+          repo = "emacs-cherry-blossom-theme";
+          rev = "e5ea23694c0f20ab670c0aa87214c27f2232d922";
+          sha256 = "0gmbsiyh075gmv3cq9675wf6mpls5wlwgcavha31cdbsdb9frsk1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cherry-blossom-theme";
+          sha256 = "1i3kafj3m7iij5mr0vhg45zdnkl9pg9ndrq0b0i3k3mw7d5siq7w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cherry-blossom-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chicken-scheme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "chicken-scheme";
+        ename = "chicken-scheme";
+        version = "20141116.1139";
+        src = fetchFromGitHub {
+          owner = "dleslie";
+          repo = "chicken-scheme.el";
+          rev = "19b0b08b5592063e852cae094b394c7d1f923639";
+          sha256 = "0j61lvr99viaharg4553whcppp7lxhimkk5lps0izz9mnd8y2wm5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chicken-scheme";
+          sha256 = "0ns49p7nsifpi7wrzr02ljrr0p6hxanrg54zaixakvjkxwcgfabr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chicken-scheme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chinese-conv = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "chinese-conv";
+        ename = "chinese-conv";
+        version = "20170807.1428";
+        src = fetchFromGitHub {
+          owner = "gucong";
+          repo = "emacs-chinese-conv";
+          rev = "b56815bbb163d642e97fa73093b5a7e87cc32574";
+          sha256 = "1bc3yn8y60y6a4vpqv39arn1pkcpl4s4n0sz9446f6m1lcal4c3r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chinese-conv";
+          sha256 = "1lqpq7pg0nqqqj29f8is6c724vl75wscmm1v08j480pfks3l8cnr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/chinese-conv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chinese-number = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "chinese-number";
+        ename = "chinese-number";
+        version = "20161007.2209";
+        src = fetchFromGitHub {
+          owner = "zhcosin";
+          repo = "chinese-number";
+          rev = "1d0c440181848dfcd1d1e618b2650fb0562a32ac";
+          sha256 = "1zm0wjhqsb11szvxs2rnq63396cbi6ffynpbn07p6gk5agxzfy0j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chinese-number";
+          sha256 = "0cjfxhd5izahkncs2nzpdv8brsxlwr2dx4hi07ymr62cr0hh0jgy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chinese-number";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chinese-wbim = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "chinese-wbim";
+        ename = "chinese-wbim";
+        version = "20150623.2050";
+        src = fetchFromGitHub {
+          owner = "zilongshanren";
+          repo = "chinese-wbim";
+          rev = "57ff61ff3895d77335709d24b40cefc4d10b0095";
+          sha256 = "0cx1g6drkr8gyqqdxjf7j4wprxcbq30gam2racgnvdicgij0apwg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chinese-wbim";
+          sha256 = "1pax3kpmvg170mpvfrjbpj9czq0xykmfbany2f7vbn96jb5xfmsb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chinese-wbim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chinese-word-at-point = callPackage ({ cl-lib ? null
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "chinese-word-at-point";
+        ename = "chinese-word-at-point";
+        version = "20170811.241";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "chinese-word-at-point.el";
+          rev = "8223d7439e005555b86995a005b225ae042f0538";
+          sha256 = "13gva1ld4f9wwb2m4fpk6bd9342qvvmaf5i1r3x3h84czmk0nq1r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chinese-word-at-point";
+          sha256 = "0pjs4ckncv84qrdj0pyibrbiy86f1gmjla9n2cgh10xbc7j9y0c4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/chinese-word-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chinese-yasdcv = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , pyim }:
+      melpaBuild {
+        pname = "chinese-yasdcv";
+        ename = "chinese-yasdcv";
+        version = "20171014.1844";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "chinese-yasdcv";
+          rev = "5ab830daf1273d5a5cddcb94b56a9737f12d996f";
+          sha256 = "1mv1n6m73aamxj18i851ww53q7p4ydiqgaapxyvjbm6sx8ddz9ak";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chinese-yasdcv";
+          sha256 = "1y2qywldf8b8b0km1lcf74p0w6rd8gr86qcj7ikwhhbvd19dfglm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib pyim ];
+        meta = {
+          homepage = "https://melpa.org/#/chinese-yasdcv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    choice-program = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "choice-program";
+        ename = "choice-program";
+        version = "20180920.2013";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "choice-program";
+          rev = "08ce5a5dd79690aed12fd9d152d8cb4be988fdb1";
+          sha256 = "19mq8z00g12cpyrb8z0m9sxqs8adp4hbcbqxcila53myfcf7v92h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/choice-program";
+          sha256 = "0a21yd3b8sb15vms9mclaa7xnnk0as08p6q38mwdwjp9sgcfyh1b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/choice-program";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chronos = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "chronos";
+        ename = "chronos";
+        version = "20150602.829";
+        src = fetchFromGitHub {
+          owner = "dxknight";
+          repo = "chronos";
+          rev = "b360d9dae57aa553cf2a14ffa0756a51ad71de09";
+          sha256 = "1mqdz3rvx0jm80fgzw3s3lqn448kqrlrifdwcg36cqq4qmkpalq4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chronos";
+          sha256 = "1fwpll0mk6pc37qagbq3b3z32d2qwz993nxp9pjw4qbmlnq6sy9d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chronos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chruby = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "chruby";
+        ename = "chruby";
+        version = "20180114.852";
+        src = fetchFromGitHub {
+          owner = "plexus";
+          repo = "chruby.el";
+          rev = "42bc6d521f832eca8e2ba210f30d03ad5529788f";
+          sha256 = "06pvjw40qk017py9km26vjrh90acycnkr5r04nxf664qqkjlg2mc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chruby";
+          sha256 = "0pk6vdvmifiq52n452lbrkklxa69c40bfyzra9qhrghxr2q5v3mk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/chruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chyla-theme = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "chyla-theme";
+        ename = "chyla-theme";
+        version = "20180302.858";
+        src = fetchFromGitHub {
+          owner = "chyla";
+          repo = "ChylaThemeForEmacs";
+          rev = "ae5e7ecace2ab474151eb0ac5ef07fba2dc32f8a";
+          sha256 = "1gqzwwr3fnhd9iqn7zmqpxgxvmrhq7g849ndjwizksk0bfj3b596";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chyla-theme";
+          sha256 = "1mgr6483bjjwk8bi6kijyw61s52nq6g2svhy5n1jnffi3gaw7hl5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chyla-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cider = callPackage ({ clojure-mode
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pkg-info
+                         , queue
+                         , seq
+                         , sesman
+                         , spinner }:
+      melpaBuild {
+        pname = "cider";
+        ename = "cider";
+        version = "20181118.936";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "cider";
+          rev = "1fd1275a5621096bb3320498e032db3764d09f56";
+          sha256 = "16gmi8mknvy1vrq0yns98d0rz9imhh2w0g9xkz2ls85ib1r5m8c7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cider";
+          sha256 = "1a6hb728a3ir18c2dn9zfd3jn79fi5xjn5gqr7ljy6qb063xd4qx";
+          name = "recipe";
+        };
+        packageRequires = [
+          clojure-mode
+          emacs
+          pkg-info
+          queue
+          seq
+          sesman
+          spinner
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/cider";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cider-decompile = callPackage ({ cider
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , javap-mode
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "cider-decompile";
+        ename = "cider-decompile";
+        version = "20151121.2137";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "cider-decompile";
+          rev = "5d87035f3c3c14025e8f01c0c53d0ce2c8f56651";
+          sha256 = "1w4y65s3m2irga4iqfqqkcmvl6ss24zmaxqzbfib8jmi84r4lpac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cider-decompile";
+          sha256 = "0jhsm31zcfwkbpsdh1lvmjm1fv2m7y849930sjvf5nxv3ffhx3b4";
+          name = "recipe";
+        };
+        packageRequires = [ cider javap-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/cider-decompile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cider-eval-sexp-fu = callPackage ({ emacs
+                                      , eval-sexp-fu
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , highlight
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "cider-eval-sexp-fu";
+        ename = "cider-eval-sexp-fu";
+        version = "20160907.100";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "cider-eval-sexp-fu";
+          rev = "06fefc17ea8a87997d1f18b25e78d874b10299ad";
+          sha256 = "1lhf5g5gi31pv2c80fsnw62zfikj3prbs6xwaikbywp48dzhx02y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cider-eval-sexp-fu";
+          sha256 = "1n4sgv042qd9560pllabysx0c5snly6i22bk126y8f8rn0zj58iq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs eval-sexp-fu highlight ];
+        meta = {
+          homepage = "https://melpa.org/#/cider-eval-sexp-fu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cider-hydra = callPackage ({ cider
+                               , fetchFromGitHub
+                               , fetchurl
+                               , hydra
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "cider-hydra";
+        ename = "cider-hydra";
+        version = "20181015.27";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "cider-hydra";
+          rev = "5956c3909cd9beae11f64973e4f0d830cea7860d";
+          sha256 = "1hnari85c4y5sc8cdv2idkg2qv058crz54xdidnphr1wgw5zhvpk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cider-hydra";
+          sha256 = "1qjgfrj3ck70vkyc9c00mif0jq5hc2yan2hql31qzbpqzg3pi2r7";
+          name = "recipe";
+        };
+        packageRequires = [ cider hydra ];
+        meta = {
+          homepage = "https://melpa.org/#/cider-hydra";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ciel = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "ciel";
+        ename = "ciel";
+        version = "20180914.115";
+        src = fetchFromGitHub {
+          owner = "cs14095";
+          repo = "ciel.el";
+          rev = "429773a3c551691a463ecfddd634b8bae2f48503";
+          sha256 = "0xykdwsjgx44c0l5v9swkjjv0xa673krzlc71b1sc4dw9l526s4m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ciel";
+          sha256 = "0rz7z3shhsvky91b581nn3hw760nlsc94fl35flm1973kvm9lvdp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ciel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cil-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cil-mode";
+        ename = "cil-mode";
+        version = "20160622.730";
+        src = fetchFromGitHub {
+          owner = "ForNeVeR";
+          repo = "cil-mode";
+          rev = "8023b45ec60961bf4c3a3d8a564727c463ed09d1";
+          sha256 = "06p6hz6jrnvnlbxdr1pjgf5wh4n34kf6al4589qg1s88r2lf86bl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cil-mode";
+          sha256 = "1h18r086bqspyn5n252yzw8x2zgyaqzdd8pbcf5gqlh1w8kapq4y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cil-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cinspect = callPackage ({ cl-lib ? null
+                            , deferred
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , python-environment }:
+      melpaBuild {
+        pname = "cinspect";
+        ename = "cinspect";
+        version = "20150715.1933";
+        src = fetchFromGitHub {
+          owner = "inlinestyle";
+          repo = "cinspect-mode";
+          rev = "4e199a90f89b335cccda1518aa0963e0a1d4fbab";
+          sha256 = "190n4kdcqdwglhnawnj9mqjarmcaqylxipc07whmrii0jv279kjw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cinspect";
+          sha256 = "0djh61mrfgcm3767ll1l5apw6646j4fdcaripksrmvn5aqfn8rjj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib deferred emacs python-environment ];
+        meta = {
+          homepage = "https://melpa.org/#/cinspect";
+          license = lib.licenses.free;
+        };
+      }) {};
+    circadian = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "circadian";
+        ename = "circadian";
+        version = "20181024.556";
+        src = fetchFromGitHub {
+          owner = "guidoschmidt";
+          repo = "circadian.el";
+          rev = "e0547c1779f2653dac09192951a0756ce2e2ea89";
+          sha256 = "120b6wr2b4dmgaz5y3vpc5f68nqm1lfkgwpcxwxncspds7qb987j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/circadian";
+          sha256 = "1xxrhifw371yc4i2cddzcdmqh5dfc905wyl88765098685q8k4bp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/circadian";
+          license = lib.licenses.free;
+        };
+      }) {};
+    circe = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "circe";
+        ename = "circe";
+        version = "20180525.531";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "circe";
+          rev = "fedfa7eb8516a53fa70b6a1f4fce4b5ab66ea91f";
+          sha256 = "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/circe";
+          sha256 = "1f54d8490gfx0r0cdvgmcjdxqpni43msy0k2mgqd1qz88a4b5l07";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/circe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    circe-notifications = callPackage ({ alert
+                                       , circe
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "circe-notifications";
+        ename = "circe-notifications";
+        version = "20180102.1518";
+        src = fetchFromGitHub {
+          owner = "eqyiel";
+          repo = "circe-notifications";
+          rev = "291149ac12877bbd062da993479d3533a26862b0";
+          sha256 = "18mva5nn919c86sgk6kdh437vdnlh9bk7fg10xqcpics1yv3viaw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/circe-notifications";
+          sha256 = "06y525x5yc0xgbw0cf16mc72ca9bv8j8z4gpgznbad2qp7psf53c";
+          name = "recipe";
+        };
+        packageRequires = [ alert circe emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/circe-notifications";
+          license = lib.licenses.free;
+        };
+      }) {};
+    citeproc = callPackage ({ dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org
+                            , queue
+                            , s
+                            , string-inflection }:
+      melpaBuild {
+        pname = "citeproc";
+        ename = "citeproc";
+        version = "20180429.57";
+        src = fetchFromGitHub {
+          owner = "andras-simonyi";
+          repo = "citeproc-el";
+          rev = "44f147d228d2d652cdd404d31e987e14519c3eef";
+          sha256 = "01cr362zgswplv0582hrw4y0wz5xgknd2a74ylffax38ws4lydd1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/citeproc";
+          sha256 = "1qphg2bg7vvjzgvnsscbyf40llxxh4aa2s2ffk8vsbfd4p8208cq";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f org queue s string-inflection ];
+        meta = {
+          homepage = "https://melpa.org/#/citeproc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cl-format = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cl-format";
+        ename = "cl-format";
+        version = "20160412.1745";
+        src = fetchFromGitHub {
+          owner = "alvinfrancis";
+          repo = "cl-format";
+          rev = "4380cb8009c47cc6d9098b383082b93b1aefa460";
+          sha256 = "108s96viral3s62a77jfgvjam08hdk97frfmxjg3xpp2ifccjs7h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cl-format";
+          sha256 = "09jwy0fgaz2f04dvcdns6w859s6izvrkp8ib4lws3x8kx8z918fy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cl-format";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cl-lib-highlight = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "cl-lib-highlight";
+        ename = "cl-lib-highlight";
+        version = "20140127.1312";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "cl-lib-highlight";
+          rev = "fd1b308e6e989791d1df14438efa6b77d20f7c7e";
+          sha256 = "1mc8kayw8fmvpl0z09v6i68s2lharlwpzff0cvcsfn0an2imj2d0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cl-lib-highlight";
+          sha256 = "13qdrvpxq928p27b1xdcbsscyhqk042rwfa17037gp9h02fd42j8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/cl-lib-highlight";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clang-format = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "clang-format";
+        ename = "clang-format";
+        version = "20180406.814";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "clang-format";
+          rev = "d11600d94e9aaeb807b4ab7b4ae8069d8bd5f075";
+          sha256 = "0zlw1qdchzpr93wqmkn7590w0frmhvd82jjfl1dngwa8j14pf97k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clang-format";
+          sha256 = "1w2w8hhyxp73s1ziyd0n7f1yi0x46v93630xxpjnf9bgr1psfk5f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/clang-format";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clean-aindent-mode = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "clean-aindent-mode";
+        ename = "clean-aindent-mode";
+        version = "20171017.1343";
+        src = fetchFromGitHub {
+          owner = "pmarinov";
+          repo = "clean-aindent-mode";
+          rev = "a97bcae8f43a9ff64e95473e4ef0d8bafe829211";
+          sha256 = "07dgx09j6nn5dl9vpqfcs5yqm79kza3h3r1lb7r09wpkmrg0c2cr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clean-aindent-mode";
+          sha256 = "1whzbs2gg2ar24kw29ffv94dgvrlfy2v4zdn0g7ksjjmmdr8ahh4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/clean-aindent-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clean-buffers = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "clean-buffers";
+        ename = "clean-buffers";
+        version = "20160529.1559";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "clean-buffers";
+          rev = "1be6c54e3095761b6b64bf749faae3dfce94e72a";
+          sha256 = "1h7kmj53fqwfzam3ywz3yn4abl2n94v0lxnyv7x4qzwi2ggizc3l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clean-buffers";
+          sha256 = "025sxrqxm24yg1wpfncrjw1nm91h0h7jy2xd5g20xqlinqqvdihj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/clean-buffers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clear-text = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "clear-text";
+        ename = "clear-text";
+        version = "20160406.1343";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "clear-text.el";
+          rev = "b50669b6077d6948f72cb3c649281d206e0c2f2b";
+          sha256 = "0y5z2pfhzpv67w2lnw1q06mflww90sfcilj89kqx2jhhrnrnn2ka";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clear-text";
+          sha256 = "1cx2lbcbhd024pq9njan7xrlvj3k4c3wdsvgbz5qyna0k06ix8dv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/clear-text";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clevercss = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "clevercss";
+        ename = "clevercss";
+        version = "20131228.1755";
+        src = fetchFromGitHub {
+          owner = "jschaf";
+          repo = "CleverCSS-Mode";
+          rev = "b8a3c0dd674367c62b1a1ffec84d88fe0c0219bc";
+          sha256 = "19q6zbnl9fg4cwgi56d7p4qp6y3g0fdyihinpakby49xv2n2k8dx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clevercss";
+          sha256 = "189f2l4za1j9ds0bhxrzyp7da9p6svh5dx2vnzf4vql7qhjk3gf0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/clevercss";
+          license = lib.licenses.free;
+        };
+      }) {};
+    click-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "click-mode";
+        ename = "click-mode";
+        version = "20180610.1744";
+        src = fetchFromGitHub {
+          owner = "bmalehorn";
+          repo = "click-mode";
+          rev = "b94ea8cce89cf0e753b2ab915202d49ffc470fb6";
+          sha256 = "0bz0wp40khha96k74g9vgnzm7xzsrh0wh4vks205pjhaxabhb5vh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/click-mode";
+          sha256 = "1p5dz4a74w5zxdlw17h5z9dglapia4p29880liw3bif2c7dzkg0r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/click-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cliphist = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ivy
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cliphist";
+        ename = "cliphist";
+        version = "20171112.2138";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "cliphist";
+          rev = "e454254f8bd9dbaea28e95c786d7297a2d4e920a";
+          sha256 = "1lxsy78kmrrb82y7nlaaaq2qsly7f3wa8jw1bagjax4rwvld0vim";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cliphist";
+          sha256 = "0mg6pznijba3kvp3r57pi54v6mgih2vfwj2kg6qmcy1abrc0xq29";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/cliphist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clipmon = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "clipmon";
+        ename = "clipmon";
+        version = "20180129.254";
+        src = fetchFromGitHub {
+          owner = "bburns";
+          repo = "clipmon";
+          rev = "95dc56c7ed84a654ec90f4740eb6df1050de8cf1";
+          sha256 = "0mfb4k0i71y49hn0xk5a1mv4zaj249qcan0y0nzvgf7mmvr32n9w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clipmon";
+          sha256 = "0qhav3scmk3zsa7v3hg3zczps0as3mzrz3cl34n3xlvf4f6ifd9k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/clipmon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clippy = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , pos-tip }:
+      melpaBuild {
+        pname = "clippy";
+        ename = "clippy";
+        version = "20161028.1254";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "clippy.el";
+          rev = "ad4b5dba4cede6d4b21533186303d3d3e9a2510f";
+          sha256 = "0rnqwzbr5hdap276ana0iz3lk2ih8kkj1m9cydavqqdrwzk4ldrm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clippy";
+          sha256 = "0nqmc8f2qrsp25vzc66xw6b232n7fyw6g06mwn2cdpm3d2pgb7rg";
+          name = "recipe";
+        };
+        packageRequires = [ pos-tip ];
+        meta = {
+          homepage = "https://melpa.org/#/clippy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clips-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "clips-mode";
+        ename = "clips-mode";
+        version = "20170909.123";
+        src = fetchFromGitHub {
+          owner = "clips-mode";
+          repo = "clips-mode";
+          rev = "dd38e2822640a38f7d8bfec4f69d8dd24be27074";
+          sha256 = "1q2jz72wi8d2pdrjic9kwqixp5sczjkkx8rf67rgaz37ysjpcbf6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clips-mode";
+          sha256 = "1ckk8ajr1x8y2h8jx2q233xs69nip3kjn0wp3xgfbwx7hjcbk7kr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/clips-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clj-refactor = callPackage ({ cider
+                                , clojure-mode
+                                , edn
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , hydra
+                                , inflections
+                                , lib
+                                , melpaBuild
+                                , multiple-cursors
+                                , paredit
+                                , seq
+                                , yasnippet }:
+      melpaBuild {
+        pname = "clj-refactor";
+        ename = "clj-refactor";
+        version = "20180826.1449";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "clj-refactor.el";
+          rev = "ec158357c4f7a375bc47f89de71ea28028a3bfa0";
+          sha256 = "06iymh1n3kyfw4q6kwghqilas1wvpsj5ryvkmgh7lg4da97037fx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clj-refactor";
+          sha256 = "05x0820x34pidcz03z96qs685y2700g7ha0dx4vy1xr7fg356c3z";
+          name = "recipe";
+        };
+        packageRequires = [
+          cider
+          clojure-mode
+          edn
+          emacs
+          hydra
+          inflections
+          multiple-cursors
+          paredit
+          seq
+          yasnippet
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/clj-refactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cljr-helm = callPackage ({ cl-lib ? null
+                             , clj-refactor
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm-core
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cljr-helm";
+        ename = "cljr-helm";
+        version = "20160913.128";
+        src = fetchFromGitHub {
+          owner = "philjackson";
+          repo = "cljr-helm";
+          rev = "f2fc7b698a56e4a44d5dfbc6a55d77a93c0fa9a4";
+          sha256 = "0jy6hkz8sr1bplymwxnjg4q408cw2dgfrv70chlw3y5ddc4cingj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cljr-helm";
+          sha256 = "108a1xgnc6qy088vs41j3npwk25a5vny0xx4r3yh76jsmpdpcgnc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib clj-refactor helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/cljr-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cljsbuild-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "cljsbuild-mode";
+        ename = "cljsbuild-mode";
+        version = "20160402.1000";
+        src = fetchFromGitHub {
+          owner = "kototama";
+          repo = "cljsbuild-mode";
+          rev = "fa2315660cb3ce944b5e16c679dcf5afd6a97f4c";
+          sha256 = "0flnfivz6w3pkham3g08m3xzy3jg1rzvxfa00vkr7ll8iyv4ypqc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cljsbuild-mode";
+          sha256 = "0qvb990dgq4v75lwnd661wxszbdbhlgxpsyv4zaj6h10gp1vi214";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cljsbuild-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clmemo = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "clmemo";
+        ename = "clmemo";
+        version = "20160326.923";
+        src = fetchFromGitHub {
+          owner = "ataka";
+          repo = "clmemo";
+          rev = "846a81b984d71edf8278a4d9f9b886e44d5b8365";
+          sha256 = "152qf7i5bf7xvr35gyawl8abkh7v5dsz957zxslrbbnc8bb1k6bz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clmemo";
+          sha256 = "03qa79ip0gqinj1kk898lcvixk98hf6gknz0yc2fnqcrm642k2vs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/clmemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cloc = callPackage ({ cl-lib ? null
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "cloc";
+        ename = "cloc";
+        version = "20170728.1124";
+        src = fetchFromGitHub {
+          owner = "cosmicexplorer";
+          repo = "cloc-emacs";
+          rev = "f30f0472e465cc8d433d2473e9d3b8dfe2c94491";
+          sha256 = "0g8hklc0914dsi3ks7g251w58ixa78qsh87dx914cc8sahpc0ws2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cloc";
+          sha256 = "1ny5wixa9x4fq5jvhs01jmyvwkfvwwi9aamrcqsl42s9sx6ygz7a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/cloc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clocker = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , projectile }:
+      melpaBuild {
+        pname = "clocker";
+        ename = "clocker";
+        version = "20160125.1505";
+        src = fetchFromGitHub {
+          owner = "roman";
+          repo = "clocker.el";
+          rev = "07338bc4b850d262eb263ac306ae3366cac6e078";
+          sha256 = "0f6qav92lyp36irdlamcxhzfd4p1i4iq18d5cmr7fgfwi894ikcg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clocker";
+          sha256 = "0cckrk40k1labiqjh7ghzpx5zi136xz70j3ipp117x52qf24k10k";
+          name = "recipe";
+        };
+        packageRequires = [ dash projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/clocker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clojars = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , request-deferred }:
+      melpaBuild {
+        pname = "clojars";
+        ename = "clojars";
+        version = "20180825.1251";
+        src = fetchFromGitHub {
+          owner = "joshuamiller";
+          repo = "clojars.el";
+          rev = "c78e4d5ddacda064c253e2b38d1c35188aa1ad71";
+          sha256 = "1xa0c3i8mq3n8mh37i5avgfkcnjyqkg6h668d9lf3w0bnz5cw0x7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clojars";
+          sha256 = "1skvd29347hwapgdqznbzwfcp2nf077qkdzknxc8ylmqa32yf5w1";
+          name = "recipe";
+        };
+        packageRequires = [ request-deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/clojars";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clojure-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "clojure-mode";
+        ename = "clojure-mode";
+        version = "20181119.400";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "clojure-mode";
+          rev = "0d2e6a6d744c31b2c0992e5a7a0eb348daa29b7d";
+          sha256 = "0qal0147bl8nr6njy0a2bj7g8f0p07qi1l59ipyjj0ghza85qz0c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clojure-mode";
+          sha256 = "11n0rjhs1mmlzdqy711g432an5ybdka5xj0ipsk8dx6xcyab70np";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/clojure-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clojure-mode-extra-font-locking = callPackage ({ clojure-mode
+                                                   , fetchFromGitHub
+                                                   , fetchurl
+                                                   , lib
+                                                   , melpaBuild }:
+      melpaBuild {
+        pname = "clojure-mode-extra-font-locking";
+        ename = "clojure-mode-extra-font-locking";
+        version = "20180114.911";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "clojure-mode";
+          rev = "9bbc8d59b3b4dfe3f0564f0d06832a309b4e4e4e";
+          sha256 = "0brwcxlz337bd1y1vjlix2aq6qjzqqrl0g9hag5lmpkimnbbnbv1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clojure-mode-extra-font-locking";
+          sha256 = "00nff9mkj61i76dj21x87vhz0bbkzgvkx1ypkxcv6yf3pfhq7r8n";
+          name = "recipe";
+        };
+        packageRequires = [ clojure-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/clojure-mode-extra-font-locking";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clojure-quick-repls = callPackage ({ cider
+                                       , dash
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "clojure-quick-repls";
+        ename = "clojure-quick-repls";
+        version = "20150814.36";
+        src = fetchFromGitHub {
+          owner = "symfrog";
+          repo = "clojure-quick-repls";
+          rev = "8fe4e44939e8a01a4cdf60c0001d9a6abf8a73c3";
+          sha256 = "1wqml4psqqkzp8afccli4y2agbm8sz1fykycl3553cb2cidxgjga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clojure-quick-repls";
+          sha256 = "10glzyd4y3918pwp048pc1y7y7fa34fkqckn1nbys841dbssmay0";
+          name = "recipe";
+        };
+        packageRequires = [ cider dash ];
+        meta = {
+          homepage = "https://melpa.org/#/clojure-quick-repls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clojure-snippets = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "clojure-snippets";
+        ename = "clojure-snippets";
+        version = "20180314.608";
+        src = fetchFromGitHub {
+          owner = "mpenet";
+          repo = "clojure-snippets";
+          rev = "6068dca90467a0f4ebc2cd39338a173d6f5ddc04";
+          sha256 = "0vvadcydpsz4b17dlm1jd4fbddzfqibh3mlzv3k4gvp67vv10cqy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clojure-snippets";
+          sha256 = "15622mdd6b3fpwp22d32p78yap08pyscs2vc83sv1xz4338i0lij";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/clojure-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clomacs = callPackage ({ cider
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , simple-httpd }:
+      melpaBuild {
+        pname = "clomacs";
+        ename = "clomacs";
+        version = "20181003.1035";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "clomacs";
+          rev = "6c83a0e2ac13e8fcc4b99183dbb3426bfe8bbb9c";
+          sha256 = "0kngsi650sjqn2z9fi1v66kfa9ib1pl7gzzfwdvzal38lnmdrm2k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clomacs";
+          sha256 = "1vfjzrzp58ap75i0dh5bwnlkb8qbpfmrd3fg9n6aaibvvd2m3hyh";
+          name = "recipe";
+        };
+        packageRequires = [ cider emacs s simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/clomacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    closql = callPackage ({ emacs
+                          , emacsql-sqlite
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "closql";
+        ename = "closql";
+        version = "20181031.1458";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "closql";
+          rev = "012b94f8695e194455111fd54eff0b94dd0dd0db";
+          sha256 = "1xhpfjjkjqfc1k2rj77cscclz5r7gpvv3hi202x178vdcpipjwar";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/closql";
+          sha256 = "13ybna20w2d1b3n0y5p1ybhkw0j0zh5nd43p1yvf8h1haj983l87";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emacsql-sqlite ];
+        meta = {
+          homepage = "https://melpa.org/#/closql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    closure-lint-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "closure-lint-mode";
+        ename = "closure-lint-mode";
+        version = "20101118.1324";
+        src = fetchFromGitHub {
+          owner = "r0man";
+          repo = "closure-lint-mode";
+          rev = "bc3d2fd5c35580bf1b8af43b12484c95a343b4b5";
+          sha256 = "0v0wdq0b5jz4x0d7dl3ilgf3aqp2hk375db366ij6gxwd0b9i3na";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/closure-lint-mode";
+          sha256 = "11kxgvfwngdjryrrihlpn0509axwv4zwkxzs4h1pw5vi7sv1n6xd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/closure-lint-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cloud-to-butt-erc = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "cloud-to-butt-erc";
+        ename = "cloud-to-butt-erc";
+        version = "20130627.1608";
+        src = fetchFromGitHub {
+          owner = "leathekd";
+          repo = "cloud-to-butt-erc";
+          rev = "6710c03d1bc91736435cbfe845924940cae34e5c";
+          sha256 = "07kvnb6p35swkyj92c4wymsqq4r2885wdpqhv7nhicvi6n658kpf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cloud-to-butt-erc";
+          sha256 = "061mmw39dq8sqzi2589lf7svy15n2iyiwbfiram48r2yhma5dd0f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cloud-to-butt-erc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clues-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "clues-theme";
+        ename = "clues-theme";
+        version = "20161213.327";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-clues-theme";
+          rev = "abd61f2b7f3e98de58ca26e6d1230e70c6406cc7";
+          sha256 = "118k5bnlk9sc2n04saaxjncmc1a4m1wlf2y7xyklpffkazbd0m72";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clues-theme";
+          sha256 = "0b0gypmxx8qjd8hgxf4kbvci1nwacsxl7rm5s1bcnk9cwc6k2jpr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/clues-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cm-mode = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "cm-mode";
+        ename = "cm-mode";
+        version = "20170203.1307";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "criticmarkup-emacs";
+          rev = "276d49c859822265070ae5dfbb403fd7d8d06436";
+          sha256 = "0mqbjw9wiaq735v307hd7g0g6i3a4k7h71bi4g9rr2jbgiljmql4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cm-mode";
+          sha256 = "1rgfpxbnp8wiq9j8aywm2n07rxzkhqljigwynrkyvrnsgxlq2a9x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/cm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cmake-font-lock = callPackage ({ cmake-mode
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "cmake-font-lock";
+        ename = "cmake-font-lock";
+        version = "20170117.1225";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "cmake-font-lock";
+          rev = "8be491b4b13338078e524e2fe6213c93e18a101e";
+          sha256 = "0h96c670gki6csqfrhlnjxkpzx0m92l6pcsdhx93l3qbh23imcmm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cmake-font-lock";
+          sha256 = "0ws4kd94m8fh55d7whsf3rj9qrxjp1wsgxh0valsjxyp2ck9zrz0";
+          name = "recipe";
+        };
+        packageRequires = [ cmake-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/cmake-font-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cmake-ide = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , levenshtein
+                             , lib
+                             , melpaBuild
+                             , s
+                             , seq }:
+      melpaBuild {
+        pname = "cmake-ide";
+        ename = "cmake-ide";
+        version = "20181023.730";
+        src = fetchFromGitHub {
+          owner = "atilaneves";
+          repo = "cmake-ide";
+          rev = "53cda742eadb5bdb5d60ac089717154b34694fbe";
+          sha256 = "1h7932f2mywghng7yacnydlwrjbrrg5rqimwas2rxdndg5zcfci7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cmake-ide";
+          sha256 = "0xvy7l80zw67jgvk1rkhwzjvsqjqckmd8zj6s67rgbm56z6ypmcg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs levenshtein s seq ];
+        meta = {
+          homepage = "https://melpa.org/#/cmake-ide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cmake-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "cmake-mode";
+        ename = "cmake-mode";
+        version = "20180709.726";
+        src = fetchFromGitHub {
+          owner = "Kitware";
+          repo = "CMake";
+          rev = "8d478c0003cc9bb4836038fc1a27d3bbd40348d2";
+          sha256 = "0i4rs8m7qf9milc9csy38r7m0j5xqy2q75fqmyxd4xpfmkf4a2v7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cmake-mode";
+          sha256 = "0zbn8syb5lw5xp1qcy3qcl75zfiyik30xvqyl38gdqddm9h7qmz7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cmake-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cmake-project = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "cmake-project";
+        ename = "cmake-project";
+        version = "20171121.315";
+        src = fetchFromGitHub {
+          owner = "alamaison";
+          repo = "emacs-cmake-project";
+          rev = "d3f408f226eff3f77f7e00dd519f4efc78fd292d";
+          sha256 = "1r8a3arpkkn91k619z4b6ywnq15glc4n1ji33l0q2m59f5sfk8mp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cmake-project";
+          sha256 = "13n6j9ljvzjzkknbm9zkhxljcn12avl39gxqq95hah44dr11rns3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cmake-project";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cmd-to-echo = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s
+                               , shell-split-string }:
+      melpaBuild {
+        pname = "cmd-to-echo";
+        ename = "cmd-to-echo";
+        version = "20161203.1333";
+        src = fetchFromGitHub {
+          owner = "mallt";
+          repo = "cmd-to-echo";
+          rev = "e0e874fc0e1ad6d291e39ed76023445297ad438a";
+          sha256 = "0wi097yk9p1xcfmps1g58xvvlv60akwky4y0pxdz6pa31w9jd1q8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cmd-to-echo";
+          sha256 = "1b4mw1ips4695ixgw2hyinq9ry3bx4d1842kr7k6155a1v34s4zh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s shell-split-string ];
+        meta = {
+          homepage = "https://melpa.org/#/cmd-to-echo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cmm-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cmm-mode";
+        ename = "cmm-mode";
+        version = "20150224.2346";
+        src = fetchFromGitHub {
+          owner = "bgamari";
+          repo = "cmm-mode";
+          rev = "c3ad514dff3eb30434f6b20d953276d4c00de1ee";
+          sha256 = "0xdcw329d2gssx86iajwrgpr7yv69b9nflmzjgb4jvg4pskj4pgx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cmm-mode";
+          sha256 = "184b8x19cnvx8z4dr9alv62wchzc7vr7crzz8jiyqw9d544zs50h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cmm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cnfonts = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "cnfonts";
+        ename = "cnfonts";
+        version = "20180830.1428";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "cnfonts";
+          rev = "6d07b14e5c04033966056dd231047f110ce925c0";
+          sha256 = "01m3aw9racrdqy6dz3nyk8x6n4sggja70mh6jj30sfm5w1y8z46s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cnfonts";
+          sha256 = "1pryn08fkdrdj7w302205nj1qhfbk1jzqxx6717crrxakkdqmn9w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cnfonts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cobalt = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "cobalt";
+        ename = "cobalt";
+        version = "20180304.355";
+        src = fetchFromGitHub {
+          owner = "cobalt-org";
+          repo = "cobalt.el";
+          rev = "634ace275697e188746ca22a30ff94380ec756be";
+          sha256 = "1mrydmzldgabkkdpmlwfrfb6iddj4by7scc14k9bak5y6hj6ix7l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cobalt";
+          sha256 = "0r3fx1xx24x4qapbj2p8krc67rjmrjm88y89baf1x2swk7xdza92";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cobalt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cobra-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "cobra-mode";
+        ename = "cobra-mode";
+        version = "20140116.1316";
+        src = fetchFromGitHub {
+          owner = "Nekroze";
+          repo = "cobra-mode";
+          rev = "acd6e53f6286af5176471d01f25257e5ddb6dd01";
+          sha256 = "1sx8grp3j7zcma3nb7zj6kijkdqx166vw1qgmm29hvx48bys6vlp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cobra-mode";
+          sha256 = "11jscpbclxlq2xqy2nsfa4y575bp8h0kpkp8cfjqb05lm5ybcp89";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cobra-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    code-archive = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "code-archive";
+        ename = "code-archive";
+        version = "20180705.1913";
+        src = fetchFromGitHub {
+          owner = "mschuldt";
+          repo = "code-archive";
+          rev = "735ba47be3db59d9af784f2a47f8585caa55a6fd";
+          sha256 = "1q022cw22xzn2ragx113ir04z37ff8y66fgc7hzcs32xs3l03g6z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/code-archive";
+          sha256 = "0rj7cvwzhgam25jxjw5aqx9cxa86008gx2mwcyjlbnjrkhcbi97a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/code-archive";
+          license = lib.licenses.free;
+        };
+      }) {};
+    code-library = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , gist
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "code-library";
+        ename = "code-library";
+        version = "20160426.518";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "code-library";
+          rev = "3c79338eae5c892bfb4e4882298422d9fd65d2d7";
+          sha256 = "0gc56pdyzcnv3q1a82c79i8w58q9r6ccfix9s1s6msjxzxkznap5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/code-library";
+          sha256 = "0gi8lz2q0vis4nyziykq15jp3m3vykfwycbk6amhf1ybkn9k3ywj";
+          name = "recipe";
+        };
+        packageRequires = [ gist ];
+        meta = {
+          homepage = "https://melpa.org/#/code-library";
+          license = lib.licenses.free;
+        };
+      }) {};
+    code-stats = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , request }:
+      melpaBuild {
+        pname = "code-stats";
+        ename = "code-stats";
+        version = "20181110.1152";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "code-stats-emacs";
+          rev = "20d60ded0743f01206c3c2e92ab73788def9adcb";
+          sha256 = "0g8pqqpwmc646krdpfkri8q7pwnj8sb3pma5mfkwg8lvj6ddcx27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/code-stats";
+          sha256 = "0mwjlhpmrbh3mbw3hjlsbv1fr4mxh068c9g0zcxq7wkksxx707if";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/code-stats";
+          license = lib.licenses.free;
+        };
+      }) {};
+    codebug = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "codebug";
+        ename = "codebug";
+        version = "20140929.1437";
+        src = fetchFromGitHub {
+          owner = "shano";
+          repo = "emacs-codebug";
+          rev = "d95e5182fa1465406964873d9db1fdac77206f5b";
+          sha256 = "1a3ifz9bv4ai9hiyvx0x3f9ygnrv6aqgpa6hxidhxdgg4ph5i4di";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/codebug";
+          sha256 = "1cb2wvawp3wqslhgbmbw9xwcqgwfscqg0jfgqzi3nr42mjp9zgqj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/codebug";
+          license = lib.licenses.free;
+        };
+      }) {};
+    codesearch = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , log4e
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "codesearch";
+        ename = "codesearch";
+        version = "20181006.731";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-codesearch";
+          rev = "f6eb96f034a925444412cfa03e45e0ccbbafe3f2";
+          sha256 = "1xdkm1f04z1h3ivd6zm8hckf3n3fbi5rwybg4dwi5mim6w84i7j9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/codesearch";
+          sha256 = "1zm7fqwiknk07c8aks1silnkxifkfbdzvbzg77wrap48k8mnw03l";
+          name = "recipe";
+        };
+        packageRequires = [ log4e ];
+        meta = {
+          homepage = "https://melpa.org/#/codesearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    codic = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "codic";
+        ename = "codic";
+        version = "20150926.427";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-codic";
+          rev = "52bbb6997ef4ab9fb7fea43bbfff7f04671aa557";
+          sha256 = "14jcxrs3b02pbppvdsabr7c74i3c6d1lmd6l1p9dj8gv413pghsz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/codic";
+          sha256 = "0fq2qfqhkd6injgl66vcpd61j67shl9xj260aj6cgb2nriq0jxgn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/codic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    coffee-fof = callPackage ({ coffee-mode
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "coffee-fof";
+        ename = "coffee-fof";
+        version = "20131012.530";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "coffee-fof";
+          rev = "211529594bc074721c6cbc4edb73a63cc05f89ac";
+          sha256 = "010v886ak0rbbhqwxwj6m0mkgh19s232igy7wwbv07l2pdqszf3p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/coffee-fof";
+          sha256 = "02cqza46qp8y69jd33cg4nmcgvrpwz23vyxqnmzwwvlmnbky96yc";
+          name = "recipe";
+        };
+        packageRequires = [ coffee-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/coffee-fof";
+          license = lib.licenses.free;
+        };
+      }) {};
+    coffee-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "coffee-mode";
+        ename = "coffee-mode";
+        version = "20170324.240";
+        src = fetchFromGitHub {
+          owner = "defunkt";
+          repo = "coffee-mode";
+          rev = "a4d07f123e42e8c8e356e825e922bc83929fc3cb";
+          sha256 = "0w3b3mwv5rlp305j7321izki9lrbnc8ks0v7r9m1ih26b8zci1gv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/coffee-mode";
+          sha256 = "1px50hs0x30psa5ljndpcc22c0qwcaxslpjf28cfgxinawnp74g1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/coffee-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    coin-ticker = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , request }:
+      melpaBuild {
+        pname = "coin-ticker";
+        ename = "coin-ticker";
+        version = "20170611.27";
+        src = fetchFromGitHub {
+          owner = "eklitzke";
+          repo = "coin-ticker-mode";
+          rev = "45108e239e1d129c0cc1ff37f2870cf73087780b";
+          sha256 = "1xqp9p19az4ajbaj734vn0fn6z3hbq44m4clj5xvd0rddai9c57n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/coin-ticker";
+          sha256 = "0v4zyswhghknlsal9xfsgwf8ckjwrjkjrg8w7p6yjqrxmfsbw93b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/coin-ticker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    colemak-evil = callPackage ({ evil
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "colemak-evil";
+        ename = "colemak-evil";
+        version = "20171015.1607";
+        src = fetchFromGitHub {
+          owner = "patbl";
+          repo = "colemak-evil";
+          rev = "192c779281ae1fbf2405dcdb55b3c5b2a1d0b3d1";
+          sha256 = "1clnvr7n6mx5b8pq1c6zchq7n1g8ip8hwgzc61ywrmiyv0v8rnc6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/colemak-evil";
+          sha256 = "1bfzs5px1k6g3cnwjdaq2m78bbnfy3lxhjzkcch7zdv3nyacwl5z";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/colemak-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    colonoscopy-theme = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "colonoscopy-theme";
+        ename = "colonoscopy-theme";
+        version = "20170808.609";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-colonoscopy-theme";
+          rev = "64bbb322b13dae91ce9f1e3581f836f94f800ead";
+          sha256 = "1r0is6zjkzikm565fvmj0gx8ms5ig9l5xihnka4fig7jy6ak33z5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/colonoscopy-theme";
+          sha256 = "0x9bfr4j0sp41jkgnyjlaxnnjjrc102x6sznn6cgcmqk5qhswl4q";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/colonoscopy-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-identifiers-mode = callPackage ({ dash
+                                          , emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "color-identifiers-mode";
+        ename = "color-identifiers-mode";
+        version = "20181011.1414";
+        src = fetchFromGitHub {
+          owner = "ankurdave";
+          repo = "color-identifiers-mode";
+          rev = "1ff90e1ec416cdb78802afe281a073a1b35e2308";
+          sha256 = "15gv6rcrnz6fqh300w7zzcm01b83f7dff1z59gxaf7cpla39n4w9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-identifiers-mode";
+          sha256 = "1hxp8lzn7kfckn5ngxic6qiz3nbynilqlxhlq9k1n1llfg216gfq";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/color-identifiers-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-moccur = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "color-moccur";
+        ename = "color-moccur";
+        version = "20141222.1635";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "color-moccur.el";
+          rev = "4f1c59ffd1ccc2ab1a171cd6b721e8cb9e002fb7";
+          sha256 = "1p1f30qz4nd5a8ym2iwrgp6vhws0dls2qlc0apblj9nj3b0ziv0x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-moccur";
+          sha256 = "17b9walfc5c9qfdvl9pcwb2gjikc3wxk1d3v878ckypmxd38vciq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/color-moccur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme";
+        ename = "color-theme";
+        version = "20080305.34";
+        src = fetchFromGitHub {
+          owner = "emacsattic";
+          repo = "color-theme";
+          rev = "f6bbc9eb7a136dd5f6e094cf1e9072b78a05e2de";
+          sha256 = "1jlwz8wyilrry13pihmpa9v7zn4l4r6hrxr8qf3l7yinbhzs70p1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme";
+          sha256 = "0sgjyiqi65ylvd926ywfjzh752bpch3szvx4z3la1r9gpkrnwspd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-approximate = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-approximate";
+        ename = "color-theme-approximate";
+        version = "20140227.2036";
+        src = fetchFromGitHub {
+          owner = "tungd";
+          repo = "color-theme-approximate";
+          rev = "f54301ca39bc5d2ffb000f233f8114184a3e7d71";
+          sha256 = "1b0ymwszqsjcihcbfp7s4fjam983ixh3yb7sdc0rmqlyric1zwxq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-approximate";
+          sha256 = "1wdnia9q42x7vky3ks555iic5s50g4mx7ss5ppaljvgxvbxyxqh1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-approximate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-buffer-local = callPackage ({ color-theme
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-buffer-local";
+        ename = "color-theme-buffer-local";
+        version = "20170125.2201";
+        src = fetchFromGitHub {
+          owner = "vic";
+          repo = "color-theme-buffer-local";
+          rev = "faf7415c99e132094f1f09c6b6974ec118a18d87";
+          sha256 = "1zk5clvkrq2grmm1bws2l5vbv1ycp41978bb902c563aws2rb8c0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-buffer-local";
+          sha256 = "1448rffyzn5k5mr31hwd28wlj7if7rp5sjlqcsvbxd2mnbgkgjz0";
+          name = "recipe";
+        };
+        packageRequires = [ color-theme ];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-buffer-local";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-modern = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-modern";
+        ename = "color-theme-modern";
+        version = "20161219.344";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "replace-colorthemes";
+          rev = "42a79266f1d7b473e9328e67a455e505e6c3eff5";
+          sha256 = "0mw5rnzzc4yfcflg59viy81ziws680r44xr05qg032b5x02l8ar9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-modern";
+          sha256 = "0f662ham430fgxpqw96zcl1whcm28cv710g6wvg4fma60sblaxcm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-modern";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-sanityinc-solarized = callPackage ({ fetchFromGitHub
+                                                   , fetchurl
+                                                   , lib
+                                                   , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-sanityinc-solarized";
+        ename = "color-theme-sanityinc-solarized";
+        version = "20181021.1355";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "color-theme-sanityinc-solarized";
+          rev = "fa2afc66beebdf7936b9f1391878798d6426730c";
+          sha256 = "0fw2x763xfs8c8xw5ard46hc7ypfyx5nc3d3r2v17vbq19syy550";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-sanityinc-solarized";
+          sha256 = "0xg79hgb893f1nqx6q4q6hp4w6rvgp1aah1v2r3scg2jk057qxkf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-sanityinc-solarized";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-sanityinc-tomorrow = callPackage ({ fetchFromGitHub
+                                                  , fetchurl
+                                                  , lib
+                                                  , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-sanityinc-tomorrow";
+        ename = "color-theme-sanityinc-tomorrow";
+        version = "20181024.1028";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "color-theme-sanityinc-tomorrow";
+          rev = "d3c694f4c423bc8cfc74bd80d624b974ebc94e02";
+          sha256 = "1vyndpza2hfhxcpan33lr3si2w18i0gkis8d2hg37i7fc0wg4vl9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-sanityinc-tomorrow";
+          sha256 = "1k8iwjc7iidq5sxybs47rnswa6c5dwqfdzfw7w0by2h1id2z6nqd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-sanityinc-tomorrow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-solarized = callPackage ({ color-theme
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-solarized";
+        ename = "color-theme-solarized";
+        version = "20171024.825";
+        src = fetchFromGitHub {
+          owner = "sellout";
+          repo = "emacs-color-theme-solarized";
+          rev = "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee";
+          sha256 = "16d7adqi07lzzr0qipl1fbag9l8kiyr3xrqxi528pimcisbg85d3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-solarized";
+          sha256 = "011rzq38ffmq7f2nzwrq96wwz67p82p1f0p5nib4nwqa47xlx7kf";
+          name = "recipe";
+        };
+        packageRequires = [ color-theme ];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-solarized";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-x = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-x";
+        ename = "color-theme-x";
+        version = "20180226.1646";
+        src = fetchFromGitHub {
+          owner = "ajsquared";
+          repo = "color-theme-x";
+          rev = "6c2264aa6c5d9a72caeae67ebaa4472090e70350";
+          sha256 = "1fyz8bampcqzpbyg0l1g0nvv2m5n8000xy5yl05217dlxb448nnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-x";
+          sha256 = "0nb2hqmmj1rhqjcbv5m8r9g2bf993lp45ka9rrxqp0pkmyd9fvs2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    colormaps = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "colormaps";
+        ename = "colormaps";
+        version = "20171008.1524";
+        src = fetchFromGitHub {
+          owner = "lepisma";
+          repo = "colormaps.el";
+          rev = "3a88961ba66b09a49ea5aa92b2b8776b2c92d68c";
+          sha256 = "083hks2zzalizdsgabiwc1kd114r748v5i3w3kfk8pv37i2gay35";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/colormaps";
+          sha256 = "16plhgpfz1wb58p6h8wxjhplhgv0mbj3f2xj34p6vydh44l8w8q2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/colormaps";
+          license = lib.licenses.free;
+        };
+      }) {};
+    column-enforce-mode = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "column-enforce-mode";
+        ename = "column-enforce-mode";
+        version = "20171030.1200";
+        src = fetchFromGitHub {
+          owner = "jordonbiondo";
+          repo = "column-enforce-mode";
+          rev = "2341a2b6a33d4b8b74c35062ec9cfe1bffd61944";
+          sha256 = "0rcxb7daxxrp5f1i5cbv25viwawbbsn4ij1mnlclp5wz7ilcy2rs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/column-enforce-mode";
+          sha256 = "1qh7kwr65spbbnzvq744gkksx50x04zs0nwn5ly60swc05d05lcg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/column-enforce-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    com-css-sort = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "com-css-sort";
+        ename = "com-css-sort";
+        version = "20180927.843";
+        src = fetchFromGitHub {
+          owner = "jcs090218";
+          repo = "com-css-sort";
+          rev = "27397d5be6cd247e9c827dac94a92f448dd10983";
+          sha256 = "0ryx6v2xw2ldjibf0s9a3qh55r0n847vbjq12knq1vpy78iz5vbk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/com-css-sort";
+          sha256 = "0hga2m735lvyj1wzybgp6wh1yv98xnandvavvg7g7mscvf2sl89f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/com-css-sort";
+          license = lib.licenses.free;
+        };
+      }) {};
+    comb = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "comb";
+        ename = "comb";
+        version = "20180831.21";
+        src = fetchFromGitHub {
+          owner = "cyrus-and";
+          repo = "comb";
+          rev = "8a68d313bf429763eb8aa78ece00230a668f2a1f";
+          sha256 = "1hh1lkan1ch5xyzrpfgzibf8dxmvaa1jfwlxyyhpnfs5h69h3245";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/comb";
+          sha256 = "0n4pkigr07hwj5nb0ngs6ay80psqv7nppp82rg5w38qf0mjs3pkp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/comb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    comint-intercept = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "comint-intercept";
+        ename = "comint-intercept";
+        version = "20170317.528";
+        src = fetchFromGitHub {
+          owner = "hying-caritas";
+          repo = "comint-intercept";
+          rev = "84c41e60e1ea3e9d5da1eb99e9926a52b6658d6d";
+          sha256 = "0jyi698abpjdaxb9l9ndq599w77svp7vgd3b708kn461gmqmkxv7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/comint-intercept";
+          sha256 = "1m2fn02n7aphlqmiaxgwp8jqg60sq4001cnkdxn5wb3w1hxy5qvq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/comint-intercept";
+          license = lib.licenses.free;
+        };
+      }) {};
+    command-log-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "command-log-mode";
+        ename = "command-log-mode";
+        version = "20160412.2147";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "command-log-mode";
+          rev = "af600e6b4129c8115f464af576505ea8e789db27";
+          sha256 = "06hll2frlx4sg9fj13a7ipq9y24isbjkjm6034xswhak40m7g1ii";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/command-log-mode";
+          sha256 = "11jq6055bvpwvrm0b8cgab25wa2mcyylpz4j56h1nqj7cnhb6ppj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/command-log-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    command-queue = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "command-queue";
+        ename = "command-queue";
+        version = "20160328.1025";
+        src = fetchFromGitHub {
+          owner = "Yuki-Inoue";
+          repo = "command-queue";
+          rev = "f327c6f852592229a755ec6de0c62c6aeafd6659";
+          sha256 = "0216hzdl4h1jssw5g2y95z4yx7abqsaxpk1s78r35w5cnx7kplrc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/command-queue";
+          sha256 = "1jaywdg8vcf1v6ayy1zd5mjs0x3s96845ig9ssb08397lfqasx1k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/command-queue";
+          license = lib.licenses.free;
+        };
+      }) {};
+    commander = callPackage ({ cl-lib ? null
+                             , dash
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "commander";
+        ename = "commander";
+        version = "20140120.1052";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "commander.el";
+          rev = "2c8a57b9c619e29ccbe2d5a85921b9c689e95bf9";
+          sha256 = "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/commander";
+          sha256 = "17y0hg6a90hflgwn24ww23qmvc1alzivpipca8zvpf0nih4fl393";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/commander";
+          license = lib.licenses.free;
+        };
+      }) {};
+    comment-dwim-2 = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "comment-dwim-2";
+        ename = "comment-dwim-2";
+        version = "20170809.1354";
+        src = fetchFromGitHub {
+          owner = "remyferre";
+          repo = "comment-dwim-2";
+          rev = "8da8aba4cab4a0a1eef3aea2de219227526876e4";
+          sha256 = "1bvgdm52bp39gdcqxb02bnxssmih887jgr82m3c09yfwkpnr2qry";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/comment-dwim-2";
+          sha256 = "1w9w2a72ygsj5w47vjqcljajmmbz0mi8dhz5gjnpwxjwsr6fn6lj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/comment-dwim-2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    comment-tags = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "comment-tags";
+        ename = "comment-tags";
+        version = "20170910.1035";
+        src = fetchFromGitHub {
+          owner = "vincekd";
+          repo = "comment-tags";
+          rev = "7ae64a8d7aca098f360e03e9a3e780e27715c6e3";
+          sha256 = "16bdc1kv2a15mn8ms170ahb4apz5csbwnxy227pg46kwfmxxqs2m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/comment-tags";
+          sha256 = "13slv150zch0b7zpxa2dbqjzpqh0iy559m6rc0zs0dwdagzryp3i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/comment-tags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    commentary-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "commentary-theme";
+        ename = "commentary-theme";
+        version = "20180816.1415";
+        src = fetchFromGitHub {
+          owner = "pzel";
+          repo = "commentary-theme";
+          rev = "1e2a64719b9d52992c6cdb91911ab313bcd69a77";
+          sha256 = "1bs7dz10f25pi5wfszxgf6afrsbfw6fwp8sm55fa6c46l3pi9jpm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/commentary-theme";
+          sha256 = "1s3g40f0r0v8m1qqldvw64vs43i5xza7rwkvhxqcqmj6p1a7mqqw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/commentary-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    commenter = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , let-alist
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "commenter";
+        ename = "commenter";
+        version = "20160219.827";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "commenter";
+          rev = "6d1885419434ba779270c6fda0e30d390bb074bd";
+          sha256 = "1jwd3whag39qhzhbsfivzdlcr6vj37dv5ychkhmilw8v6dfdnpdb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/commenter";
+          sha256 = "01bm8jbj6xw23nls4fps6zwjkgvcsjhmn3l3ncqd764kwhxdx8q3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/commenter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    commify = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "commify";
+        ename = "commify";
+        version = "20161106.1534";
+        src = fetchFromGitHub {
+          owner = "ddoherty03";
+          repo = "commify";
+          rev = "78732c2fa6c1a10288b7436d7c561ec9ebdd41be";
+          sha256 = "1kb3cbjp69niq8ravh273dma0mnkf1v2ja372ahxfsq1janrkkm6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/commify";
+          sha256 = "1jc6iqa4hna3277hx13scfcqzkr43yv6gndbxv7qf4ydi01ysd0m";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/commify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    common-lisp-snippets = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , yasnippet }:
+      melpaBuild {
+        pname = "common-lisp-snippets";
+        ename = "common-lisp-snippets";
+        version = "20180226.723";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "common-lisp-snippets";
+          rev = "1ddf808311ba4d9e8444a1cb50bd5ee75e4111f6";
+          sha256 = "0zalsvs47hv33dmbs94srpb8q354sr52sxbad182p69dn1khlwyp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/common-lisp-snippets";
+          sha256 = "0ig8cz00cbfx0jckqk1xhsvm18ivl2mjvcn65s941nblsywfvxjl";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/common-lisp-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "company";
+        ename = "company";
+        version = "20181105.1512";
+        src = fetchFromGitHub {
+          owner = "company-mode";
+          repo = "company-mode";
+          rev = "c95a6b41d621de4253b77e512aa61fc0e75acddc";
+          sha256 = "1gpapjxs4l6fmmj22q0q1pyhj1yd9j5iqfqnjf1abskkj69lqkpj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company";
+          sha256 = "0v4x038ly970lkzb0n8fbqssfqwx1p46xldr7nss32jiqvavr4m4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-anaconda = callPackage ({ anaconda-mode
+                                    , cl-lib ? null
+                                    , company
+                                    , dash
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "company-anaconda";
+        ename = "company-anaconda";
+        version = "20181025.605";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "company-anaconda";
+          rev = "0ab70de1740e67cee451abcf3685c7525ff9e95a";
+          sha256 = "182cijh6l82jj1r7iwd93h3np9c8fvcibjhv7860rk9ik41n7wil";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-anaconda";
+          sha256 = "1s7y47ghy7q35qpfqavh4p9wr91i6r579mdbpvv6h5by856yn4gl";
+          name = "recipe";
+        };
+        packageRequires = [ anaconda-mode cl-lib company dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-anaconda";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ansible = callPackage ({ company
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "company-ansible";
+        ename = "company-ansible";
+        version = "20180701.1113";
+        src = fetchFromGitHub {
+          owner = "krzysztof-magosa";
+          repo = "company-ansible";
+          rev = "c6dc714e3a15f89671ae5e8fe668858b20ef63e8";
+          sha256 = "01nly13i2bs77lrvkm26i96vrrigbxpb9cakski9fv3xrvfxq9bv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ansible";
+          sha256 = "084l9dr2hvm00952y4m3jhchzxjhcd61sfn5ywj9b9a1d4sr110d";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ansible";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-arduino = callPackage ({ arduino-mode
+                                   , cl-lib ? null
+                                   , company
+                                   , company-c-headers
+                                   , company-irony
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , irony
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "company-arduino";
+        ename = "company-arduino";
+        version = "20160306.939";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "company-arduino";
+          rev = "5958b917cc5cc729dc64d74d947da5ee91c48980";
+          sha256 = "08766m35s0r2fyv32y0h3sns9d5jykbgg24d2z8czklnc8hay7jc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-arduino";
+          sha256 = "1bch447lllikip1xd90kdgssgc67sl04a70fxqkqlrc1bs6gkkws";
+          name = "recipe";
+        };
+        packageRequires = [
+          arduino-mode
+          cl-lib
+          company
+          company-c-headers
+          company-irony
+          emacs
+          irony
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/company-arduino";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-auctex = callPackage ({ auctex
+                                  , company
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yasnippet }:
+      melpaBuild {
+        pname = "company-auctex";
+        ename = "company-auctex";
+        version = "20180725.1212";
+        src = fetchFromGitHub {
+          owner = "alexeyr";
+          repo = "company-auctex";
+          rev = "48c42c58ce2f0e693301b0cb2d085055410c1b25";
+          sha256 = "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-auctex";
+          sha256 = "1jia80sqmm83kzjcf1h1d9iz2k4k9albzvfka5hx6hpa4h8nm5q4";
+          name = "recipe";
+        };
+        packageRequires = [ auctex company yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/company-auctex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-axiom = callPackage ({ axiom-environment
+                                 , company
+                                 , emacs
+                                 , fetchgit
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-axiom";
+        ename = "company-axiom";
+        version = "20171024.1310";
+        src = fetchgit {
+          url = "https://bitbucket.org/pdo/axiom-environment";
+          rev = "11ae39b2fcb344932b3f4b6a9fb6341880e3b8fa";
+          sha256 = "1mygz9cd79w56sk3szh0mkgnng7mgr5jqqfd32yfjc3spvs6yzlh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-axiom";
+          sha256 = "061n8zn11r5a9m96sqnw8kx252n1m401cmcyqla8n9valjbnvsag";
+          name = "recipe";
+        };
+        packageRequires = [ axiom-environment company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-axiom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-bibtex = callPackage ({ cl-lib ? null
+                                  , company
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , parsebib }:
+      melpaBuild {
+        pname = "company-bibtex";
+        ename = "company-bibtex";
+        version = "20171104.2344";
+        src = fetchFromGitHub {
+          owner = "gbgar";
+          repo = "company-bibtex";
+          rev = "225c6f5c0c070c94c8cdbbd452ea548cd94d76f4";
+          sha256 = "0bv2jcmyirdxm158w2766l3q7kh7h71l9milwc9fl8qfz7wb5l80";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-bibtex";
+          sha256 = "1b96p5qyxl6jlq0kz0dbma5pwvgqcy4x4gmpknjqrjabafbq1ynn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company parsebib ];
+        meta = {
+          homepage = "https://melpa.org/#/company-bibtex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-box = callPackage ({ company
+                               , dash
+                               , dash-functional
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "company-box";
+        ename = "company-box";
+        version = "20180607.845";
+        src = fetchFromGitHub {
+          owner = "sebastiencs";
+          repo = "company-box";
+          rev = "6e047e6fd7226a1b8292a74985db82bbccc679c7";
+          sha256 = "0m6rzwg08jcr9kibzxf18rsxjb13igscjyf5zkx1cx7y16zv1i6b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-box";
+          sha256 = "0v39gja3jp8b2xfn9da93xsh8mihizwbg0gqp2yyczaxjm8ga23i";
+          name = "recipe";
+        };
+        packageRequires = [ company dash dash-functional emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-box";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-c-headers = callPackage ({ company
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "company-c-headers";
+        ename = "company-c-headers";
+        version = "20180814.1030";
+        src = fetchFromGitHub {
+          owner = "randomphrase";
+          repo = "company-c-headers";
+          rev = "41331192b3961c8e3a51540678e1d11eaa346f03";
+          sha256 = "1hl14pv8splirzr9riak8m48ngxy1c6wa2q6ds6aq849zx9dafqh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-c-headers";
+          sha256 = "1715vnjr5cjiq8gjcd3idnpnijg5cg3sw3f8gr5x2ixcrip1hx3a";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-c-headers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-cabal = callPackage ({ cl-lib ? null
+                                 , company
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-cabal";
+        ename = "company-cabal";
+        version = "20170917.617";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "company-cabal";
+          rev = "62112a7259e24bd6c08885629a185afe512b7d3d";
+          sha256 = "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-cabal";
+          sha256 = "0pbjidj88c9qri6xw8023yqwnczad5ig224cbsz6vsmdla2nlxra";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-cabal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-childframe = callPackage ({ company-posframe
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "company-childframe";
+        ename = "company-childframe";
+        version = "20180704.2246";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "company-childframe";
+          rev = "562eaa1e3a0c39dd36f10cda37a3724384fde1df";
+          sha256 = "0g40i3qwh0wnspwd4a5p08ndfjj21zmqv155c7ngp7bxnhvkn6vh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-childframe";
+          sha256 = "1l8bd9fnw49apvwjgrlfywascbczavpaxns2ydymmb6ksj00rvzy";
+          name = "recipe";
+        };
+        packageRequires = [ company-posframe emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-childframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-coq = callPackage ({ cl-lib ? null
+                               , company
+                               , company-math
+                               , dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , yasnippet }:
+      melpaBuild {
+        pname = "company-coq";
+        ename = "company-coq";
+        version = "20181107.1336";
+        src = fetchFromGitHub {
+          owner = "cpitclaudel";
+          repo = "company-coq";
+          rev = "24f33527c5917cdd4c3c139f966c49c33b21d4d0";
+          sha256 = "1y956x0d42qjl6id8a3qfqaa9bzbnradii67g7bl2673kvb0lf63";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-coq";
+          sha256 = "1iagm07ckf60kg4i8m4n0gfmv0brqc4dcn7lkcz229r3f4kyqksa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company company-math dash yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/company-coq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-dcd = callPackage ({ cl-lib ? null
+                               , company
+                               , fetchFromGitHub
+                               , fetchurl
+                               , flycheck-dmd-dub
+                               , ivy
+                               , lib
+                               , melpaBuild
+                               , popwin
+                               , yasnippet }:
+      melpaBuild {
+        pname = "company-dcd";
+        ename = "company-dcd";
+        version = "20170516.210";
+        src = fetchFromGitHub {
+          owner = "tsukimizake";
+          repo = "company-dcd";
+          rev = "4832188a9e42287539a69c372fe1643166a6a7aa";
+          sha256 = "07caaff8chabrgl4hqanq13p5qhzqx5fcg2synl8856d7v1456vc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-dcd";
+          sha256 = "03849k4jzs23iglk9ghcq6283c9asffcq4dznypcjax7y4x113vd";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          company
+          flycheck-dmd-dub
+          ivy
+          popwin
+          yasnippet
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/company-dcd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-dict = callPackage ({ company
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , parent-mode }:
+      melpaBuild {
+        pname = "company-dict";
+        ename = "company-dict";
+        version = "20180216.156";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-company-dict";
+          rev = "7ab6331d8095e9b93c726da754102fd708c0002e";
+          sha256 = "18lfqankivzdijsklyi49a1v6nqixbmk4d1m6syqd63qj849aixa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-dict";
+          sha256 = "1377b40f1j4rmw7lnhy1zsm6r234ds5zsn02v1ajm3bzrpkkmin0";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs parent-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-dict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-distel = callPackage ({ distel-completion-lib
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "company-distel";
+        ename = "company-distel";
+        version = "20180827.644";
+        src = fetchFromGitHub {
+          owner = "sebastiw";
+          repo = "distel-completion";
+          rev = "acc4c0a5521904203d797fe96b08e5fae4233c7e";
+          sha256 = "0yvp3dwa9mwfyrqla27ycwyjad4bp1267bxv0chxcr4528hnygl3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-distel";
+          sha256 = "1jklxwkm2dvpcasmy9vl48dxq3q9s4dlk159ica39z0kqpkpzmgw";
+          name = "recipe";
+        };
+        packageRequires = [ distel-completion-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/company-distel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-edbi = callPackage ({ cl-lib ? null
+                                , company
+                                , edbi
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "company-edbi";
+        ename = "company-edbi";
+        version = "20160221.1123";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "company-edbi";
+          rev = "08dc69ccfbcf10ca83f7075e9b735c6885cd7e11";
+          sha256 = "0n2hvrfbybsp57w6m9mm7ywjq30fwwx9bzc2rllfr06d2ms7naai";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-edbi";
+          sha256 = "067ff1xdyqy4qzgk5pmqf4kksfjk1glkrslcj3rk4zmhcalwrfrm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company edbi s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-edbi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-emacs-eclim = callPackage ({ cl-lib ? null
+                                       , company
+                                       , eclim
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "company-emacs-eclim";
+        ename = "company-emacs-eclim";
+        version = "20180911.421";
+        src = fetchFromGitHub {
+          owner = "emacs-eclim";
+          repo = "emacs-eclim";
+          rev = "edff7e0e30c87036710d88fb0b7a4644750858e8";
+          sha256 = "0ywifqdhv7cibgl42m7i15widna9i1dk5kl5rglyql7hy05nk9gj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-emacs-eclim";
+          sha256 = "1l56hcy0y3cr38z1pjf0ilsdqdzvj3zwd40markm6si2xhdr8xig";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company eclim ];
+        meta = {
+          homepage = "https://melpa.org/#/company-emacs-eclim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-emoji = callPackage ({ cl-lib ? null
+                                 , company
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-emoji";
+        ename = "company-emoji";
+        version = "20180925.1308";
+        src = fetchFromGitHub {
+          owner = "dunn";
+          repo = "company-emoji";
+          rev = "f0d91d5be0077b20b418a3ba37d36f431fae322f";
+          sha256 = "0aqqi1ksyglx7w347a99flpfa9pm1jakdvsgk4jr2ahv6j13nawg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-emoji";
+          sha256 = "1mflqqw9gnfcqjb6g8ivdfl7s4mdyjg7j0457hamgyvgvpxsh8x3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company ];
+        meta = {
+          homepage = "https://melpa.org/#/company-emoji";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-erlang = callPackage ({ company
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , ivy-erlang-complete
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "company-erlang";
+        ename = "company-erlang";
+        version = "20170122.2138";
+        src = fetchFromGitHub {
+          owner = "s-kostyaev";
+          repo = "company-erlang";
+          rev = "bc0524a16f17b66c7397690e4ca0e004f09ea6c5";
+          sha256 = "04wm3i65fpzln7sdcny88hfjfm0n7wy44ffsr3697x4l95d0bnyh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-erlang";
+          sha256 = "0qlc89c05523kjzsb7j3yfi022la47kgixl74ggkafhn60scwdm7";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ivy-erlang-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/company-erlang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-flow = callPackage ({ company
+                                , dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "company-flow";
+        ename = "company-flow";
+        version = "20180225.1359";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "company-flow";
+          rev = "76ef585c70d2a3206c2eadf24ba61e59124c3a16";
+          sha256 = "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-flow";
+          sha256 = "07brjfgiwv4dxjf0sca84allcy3qlp4jrkz7ki1qc5wmb5sd209l";
+          name = "recipe";
+        };
+        packageRequires = [ company dash ];
+        meta = {
+          homepage = "https://melpa.org/#/company-flow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-flx = callPackage ({ company
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , flx
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "company-flx";
+        ename = "company-flx";
+        version = "20180102.2118";
+        src = fetchFromGitHub {
+          owner = "PythonNut";
+          repo = "company-flx";
+          rev = "05efcafb488f587bb6e60923078d97227462eb68";
+          sha256 = "12cg8amyk1pg1d2n8fb0mmls14jzwx08hq6s6g7wyd9s7y96hkhb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-flx";
+          sha256 = "1r4jcfzrhdpclblfrmi4qbl8dnhc2d7d4c1425xnslg7bhwd2vxn";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs flx ];
+        meta = {
+          homepage = "https://melpa.org/#/company-flx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ghc = callPackage ({ cl-lib ? null
+                               , company
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ghc
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "company-ghc";
+        ename = "company-ghc";
+        version = "20170918.133";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "company-ghc";
+          rev = "dab111cb5067c545ccdc6b2d0ba70c1c4bbce060";
+          sha256 = "0ygw3dhlz247qzmcsbnkkdry2w2ni60j1rbyqprnzp8sd5yk97r1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ghc";
+          sha256 = "07adykza4dqs64bk8vjmgryr54khxmcy28hms5z8i1qpsk9vmvnn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs ghc ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ghc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ghci = callPackage ({ company
+                                , fetchFromGitHub
+                                , fetchurl
+                                , haskell-mode
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "company-ghci";
+        ename = "company-ghci";
+        version = "20160310.1800";
+        src = fetchFromGitHub {
+          owner = "orimh";
+          repo = "company-ghci";
+          rev = "c2d74a41166e76de2e78c87f582ba3a1179b2aa6";
+          sha256 = "02gq083lpbszy8pf7s5j61bjlm0hacv4md4g17n0q6448rix9yny";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ghci";
+          sha256 = "11sygcn8jb4rcc1hfiadhsyanbhsmnalpz2qvh5iaba0l165bsgg";
+          name = "recipe";
+        };
+        packageRequires = [ company haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ghci";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-glsl = callPackage ({ company
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , glsl-mode
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "company-glsl";
+        ename = "company-glsl";
+        version = "20171015.1049";
+        src = fetchFromGitHub {
+          owner = "guidoschmidt";
+          repo = "company-glsl";
+          rev = "a262c12c3bcd0807718c4edcaf2b054e30ef0e26";
+          sha256 = "0338bym8ifvkgpbc4vyzf3nmlp6rc8lihyxcbym5m08612ln78mk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-glsl";
+          sha256 = "1wzfdp6xz4nydfdcba8vs1za60lbfa0v4b8007dzn2fyg26rl326";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs glsl-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-glsl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-go = callPackage ({ company
+                              , fetchFromGitHub
+                              , fetchurl
+                              , go-mode
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "company-go";
+        ename = "company-go";
+        version = "20180427.1156";
+        src = fetchFromGitHub {
+          owner = "mdempsky";
+          repo = "gocode";
+          rev = "bf5e5d0215cbdfb334c65c2c6aca36ca89e429a2";
+          sha256 = "1bffkyxj3k9dbmdlpj97lq5sih9vlm5zk4fsdzczkyiln8k5jaww";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-go";
+          sha256 = "1zhdckq1c9jzi5cf90w2m77fq6l67rjri4lnf8maq82gxqzk6wa5";
+          name = "recipe";
+        };
+        packageRequires = [ company go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-go";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-inf-ruby = callPackage ({ company
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , inf-ruby
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "company-inf-ruby";
+        ename = "company-inf-ruby";
+        version = "20140805.1354";
+        src = fetchFromGitHub {
+          owner = "company-mode";
+          repo = "company-inf-ruby";
+          rev = "9c2eab3bb82e8838c54013026e6ffb51cccbd37e";
+          sha256 = "0sns1j74mbwkamiyfcq0jp6flzqknm0vbhr6vvg5nsw5b9lfir0a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-inf-ruby";
+          sha256 = "0cb1w0sxgb5jf0p2a5s2i4d511lsjjhyaqkqlwjz8nk4w14n0zxm";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/company-inf-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-irony = callPackage ({ cl-lib ? null
+                                 , company
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , irony
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-irony";
+        ename = "company-irony";
+        version = "20170905.1346";
+        src = fetchFromGitHub {
+          owner = "Sarcasm";
+          repo = "company-irony";
+          rev = "52aca45bcd0f2cb0648fcafa2bbb4f8ad4b2fee7";
+          sha256 = "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-irony";
+          sha256 = "15adamk1b9y1i6k06i5ahf1wn70cgwlhgk0x6fk8pl5izg05z1km";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs irony ];
+        meta = {
+          homepage = "https://melpa.org/#/company-irony";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-irony-c-headers = callPackage ({ cl-lib ? null
+                                           , company
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , irony
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "company-irony-c-headers";
+        ename = "company-irony-c-headers";
+        version = "20151018.209";
+        src = fetchFromGitHub {
+          owner = "hotpxl";
+          repo = "company-irony-c-headers";
+          rev = "ba304fe7eebdff90bbc7dea063b45b82638427fa";
+          sha256 = "1x2dfjmy86icyv2g1y5bjlr87w8rixqdcndkwm1sba6ha277wp9i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-irony-c-headers";
+          sha256 = "0kiag5ggmc2f5c3gd8nn40x16i686jpdrfrflgrz2aih8p3g6af8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company irony ];
+        meta = {
+          homepage = "https://melpa.org/#/company-irony-c-headers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-jedi = callPackage ({ cl-lib ? null
+                                , company
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , jedi-core
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "company-jedi";
+        ename = "company-jedi";
+        version = "20151216.1921";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-company-jedi";
+          rev = "ad49407451c7f28fe137f9c8f3a7fc89e8693a1b";
+          sha256 = "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-jedi";
+          sha256 = "1krrgrjq967c3j02y0i345yx6w4crisnj1k3bhih6j849fvy3fvj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs jedi-core ];
+        meta = {
+          homepage = "https://melpa.org/#/company-jedi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-lean = callPackage ({ company
+                                , dash
+                                , dash-functional
+                                , emacs
+                                , f
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lean-mode
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "company-lean";
+        ename = "company-lean";
+        version = "20171102.754";
+        src = fetchFromGitHub {
+          owner = "leanprover";
+          repo = "lean-mode";
+          rev = "c0af876c967fc969d67c467bc6767210d19c5d87";
+          sha256 = "04qzck156wb2bvrb8adbn7rx2v0bsjcirlbx4ajajjsqy858ayn9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-lean";
+          sha256 = "1hqkn7w5dyznf7i3r3132q8x31r74q188jsm5kdrjqgbwak2p91a";
+          name = "recipe";
+        };
+        packageRequires = [ company dash dash-functional emacs f lean-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-lean";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-lsp = callPackage ({ company
+                               , dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , lsp-mode
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "company-lsp";
+        ename = "company-lsp";
+        version = "20181105.844";
+        src = fetchFromGitHub {
+          owner = "tigersoldier";
+          repo = "company-lsp";
+          rev = "d333e5594f8d5e5cb96309f8a913747ff83ab089";
+          sha256 = "0lav8zjiqq7zi0hsnbx8hnph623mk2js5263gngwgmci5g8x8xi1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-lsp";
+          sha256 = "09nbi6vxw8l26gfgsc1k3bx4m8i1px1b0jxaywszky5bv4fdy03l";
+          name = "recipe";
+        };
+        packageRequires = [ company dash emacs lsp-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-lsp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-lua = callPackage ({ company
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , lua-mode
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "company-lua";
+        ename = "company-lua";
+        version = "20171108.1506";
+        src = fetchFromGitHub {
+          owner = "ptrv";
+          repo = "company-lua";
+          rev = "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52";
+          sha256 = "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-lua";
+          sha256 = "13sm7ya2ndqxwdjarhxbmg7fvr3413c7p3n6yf1i4rabbliqsf2c";
+          name = "recipe";
+        };
+        packageRequires = [ company f lua-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-lua";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-math = callPackage ({ company
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , math-symbol-lists
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "company-math";
+        ename = "company-math";
+        version = "20171016.814";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "company-math";
+          rev = "3481f03ebb6a613ff85b71ca8edd2d5842c49012";
+          sha256 = "0nbnqgl2jly1n5nx20hr2i84r2shxjb3axv2p597b5kw2bdbsva5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-math";
+          sha256 = "0chig8k8l65bnd0a6734fiy0ikl20k9v2wlndh3ckz5a8h963g87";
+          name = "recipe";
+        };
+        packageRequires = [ company math-symbol-lists ];
+        meta = {
+          homepage = "https://melpa.org/#/company-math";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-nand2tetris = callPackage ({ cl-lib ? null
+                                       , company
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , nand2tetris }:
+      melpaBuild {
+        pname = "company-nand2tetris";
+        ename = "company-nand2tetris";
+        version = "20171201.1013";
+        src = fetchFromGitHub {
+          owner = "CestDiego";
+          repo = "nand2tetris.el";
+          rev = "fe37ee41367ceff6f7d7a472a5f80cf1285e1e01";
+          sha256 = "0g1gwayas7claa9cn3mv8dnlz46n78014qxb2ix25428dnsrridy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-nand2tetris";
+          sha256 = "1g2i33jjh7kbpzk835kbnqicf0w4cq5rqv934bqzz5kavj9cg886";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company nand2tetris ];
+        meta = {
+          homepage = "https://melpa.org/#/company-nand2tetris";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-nginx = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-nginx";
+        ename = "company-nginx";
+        version = "20180603.1702";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "company-nginx";
+          rev = "3074a5d322562f36867ef67bffeb25f1c0d8aca9";
+          sha256 = "04nq6cihb5kymi3rjfx53337fx4g042cw1jxiv016sq88z24lznx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-nginx";
+          sha256 = "15pxz0v3zpshwri0v15yh995k7ih9h46y81n4xywlyyh34wys3sj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-nginx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ngram = callPackage ({ cl-lib ? null
+                                 , company
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-ngram";
+        ename = "company-ngram";
+        version = "20170129.1113";
+        src = fetchFromGitHub {
+          owner = "kshramt";
+          repo = "company-ngram";
+          rev = "d15182df3eac72b29772802759b77c9eafef5066";
+          sha256 = "05108s2a3c857n9j3c34hdni3fyq149pva4m3f51lis4wqrm4zv7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ngram";
+          sha256 = "1y9k9s8c248m91xld4f5l75j4swml333rpwq590bsx7mrsq131xx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ngram";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-nixos-options = callPackage ({ cl-lib ? null
+                                         , company
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , nixos-options }:
+      melpaBuild {
+        pname = "company-nixos-options";
+        ename = "company-nixos-options";
+        version = "20160215.57";
+        src = fetchFromGitHub {
+          owner = "travisbhartwell";
+          repo = "nix-emacs";
+          rev = "a4e1d9ea9f2e773170caa3afbe54ecdf73d04ec8";
+          sha256 = "1zcm74691bsay0l9vk2ffxgamrz8zyfmwkb9y915qylfwb48gyr2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-nixos-options";
+          sha256 = "1yrqqdadmf7qfxpqp8wwb325zjnwwjmn2hhnl7i3j0ckg6hqyqf0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company nixos-options ];
+        meta = {
+          homepage = "https://melpa.org/#/company-nixos-options";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-php = callPackage ({ ac-php-core
+                               , cl-lib ? null
+                               , company
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "company-php";
+        ename = "company-php";
+        version = "20181109.1903";
+        src = fetchFromGitHub {
+          owner = "xcwen";
+          repo = "ac-php";
+          rev = "11234d073f363edff255e8632b728777e2807d01";
+          sha256 = "15rinvamhzbx0n1fxwpq7nbjqgqvksgf4q8k3lkyy6ifchwiqys4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-php";
+          sha256 = "1gnhklfkg17vxfx7fw65lr4nr07jx71y84mhs9zszwcr9p840hh5";
+          name = "recipe";
+        };
+        packageRequires = [ ac-php-core cl-lib company ];
+        meta = {
+          homepage = "https://melpa.org/#/company-php";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-phpactor = callPackage ({ cl-lib ? null
+                                    , company
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , phpactor }:
+      melpaBuild {
+        pname = "company-phpactor";
+        ename = "company-phpactor";
+        version = "20181110.102";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phpactor.el";
+          rev = "eda8b34a729b3acb641aafa30552c501dec27d37";
+          sha256 = "1i96v9167hsw5wwmlq07kiyxqz035ianid1cj8ym17bfj0js0j97";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-phpactor";
+          sha256 = "1a6szs85hmxm2xpkmc3dyx2daap7bjvpnrl4gcmbq26zbz2f0z0a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs phpactor ];
+        meta = {
+          homepage = "https://melpa.org/#/company-phpactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-plsense = callPackage ({ cl-lib ? null
+                                   , company
+                                   , dash
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , s }:
+      melpaBuild {
+        pname = "company-plsense";
+        ename = "company-plsense";
+        version = "20180117.1658";
+        src = fetchFromGitHub {
+          owner = "CeleritasCelery";
+          repo = "company-plsense";
+          rev = "b48e3181e08ec597269621d621aa06636f02d883";
+          sha256 = "14rawd5xfgnkhdpp43mz4a5mf480949ny5hr5w6v5djmsibqxw5s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-plsense";
+          sha256 = "0k8k2vpkknd4nyxzwdj7698lgm5d85byxd49x7w5nrxmh2h1w3c7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-plsense";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-pollen = callPackage ({ company
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , pollen-mode }:
+      melpaBuild {
+        pname = "company-pollen";
+        ename = "company-pollen";
+        version = "20160812.810";
+        src = fetchFromGitHub {
+          owner = "lijunsong";
+          repo = "pollen-mode";
+          rev = "9779f7f13b1e0cfb58af01af5d8ee9e783bb8a43";
+          sha256 = "1i49js8y09d6bd5jp4fkl7z7gldaw2bfg5m2f504av73gqzqkxf8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-pollen";
+          sha256 = "1pz5d8j7scrv2ci9mxvyikwsk8badkrbp8dznnb5qq1ycqv24bl1";
+          name = "recipe";
+        };
+        packageRequires = [ company pollen-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-pollen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-posframe = callPackage ({ company
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , posframe }:
+      melpaBuild {
+        pname = "company-posframe";
+        ename = "company-posframe";
+        version = "20180610.1010";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "company-posframe";
+          rev = "47861f501891d3c67958353c25f4dce13b386c3d";
+          sha256 = "03fs5w72wfnk0mr31q5kczlpk0rbim850pj6wzr0f6zn8j0p2lci";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-posframe";
+          sha256 = "1pd68m3hcn6wggw8a026x5kxn73f3zs278vs96q6cb5gbxyyhirs";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs posframe ];
+        meta = {
+          homepage = "https://melpa.org/#/company-posframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-prescient = callPackage ({ company
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , prescient }:
+      melpaBuild {
+        pname = "company-prescient";
+        ename = "company-prescient";
+        version = "20181022.1556";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "prescient.el";
+          rev = "1623a0d4e5b9a752db45923fd91da48b49c85068";
+          sha256 = "0yan4m9xf4iia4ns8kqa0zsham4h2mcnwsq9xnfwm26rkn94xrw0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-prescient";
+          sha256 = "0cp918ihbjqxfgqnifknl5hphmvq5bl42dhp5ylvijsfa8kvbsb9";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs prescient ];
+        meta = {
+          homepage = "https://melpa.org/#/company-prescient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-qml = callPackage ({ company
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , qml-mode }:
+      melpaBuild {
+        pname = "company-qml";
+        ename = "company-qml";
+        version = "20170428.1008";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "company-qml";
+          rev = "4af4f32a7ad86d86bb9293fb0b675aec513b5736";
+          sha256 = "09d733r07gr4cxp7npyhi93xchvirxh1v00fr487v4a0mdaahpxf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-qml";
+          sha256 = "0sva7i93dam8mc2z3cp785vmgcg7cphrpkwyvqyqhq8w51qg8mxx";
+          name = "recipe";
+        };
+        packageRequires = [ company qml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-qml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-quickhelp = callPackage ({ company
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , pos-tip }:
+      melpaBuild {
+        pname = "company-quickhelp";
+        ename = "company-quickhelp";
+        version = "20180525.303";
+        src = fetchFromGitHub {
+          owner = "expez";
+          repo = "company-quickhelp";
+          rev = "479676cade80a9f03802ca3d956591820ed5c537";
+          sha256 = "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-quickhelp";
+          sha256 = "042bwv0wd4hksbm528zb7pbllzk83p8qjq5f8z46p84c8mmxfp9g";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs pos-tip ];
+        meta = {
+          homepage = "https://melpa.org/#/company-quickhelp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-racer = callPackage ({ cl-lib ? null
+                                 , company
+                                 , deferred
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-racer";
+        ename = "company-racer";
+        version = "20171204.1910";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "company-racer";
+          rev = "a00381c9d416f375f783fcb6ae8d40669ce1f567";
+          sha256 = "13m3yzn4xbyl13z7h1cl6vqjbzikjycy7wydpy4a44yhr466zjr5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-racer";
+          sha256 = "0zc8dzvsjz5qsrwhv7x9f7djzvb9awacc3pgjirsv8f8sp7p3am4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company deferred emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-racer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-reftex = callPackage ({ company
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "company-reftex";
+        ename = "company-reftex";
+        version = "20180713.141";
+        src = fetchFromGitHub {
+          owner = "TheBB";
+          repo = "company-reftex";
+          rev = "d96ce340851499452c8d4d64bee80a3d7f9e9275";
+          sha256 = "1bh9h6frp6yibw1qyca1f2s375s5pn27ry2n4j036c5r4kx4wpx6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-reftex";
+          sha256 = "0xfl8cfpd2bdk91aj0nygp5gm808pnbi7zjdp4z6l21dsrawhbxz";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-reftex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-restclient = callPackage ({ cl-lib ? null
+                                      , company
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , know-your-http-well
+                                      , lib
+                                      , melpaBuild
+                                      , restclient }:
+      melpaBuild {
+        pname = "company-restclient";
+        ename = "company-restclient";
+        version = "20151202.401";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "company-restclient";
+          rev = "12f05ab964ca811b5b8dcbe4f19e2eeba119cbe1";
+          sha256 = "0bra9rsxng3zbxk0q1sny3rabf2iwzz00snr65xswayjddigp33k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-restclient";
+          sha256 = "1md0n4k4wmbh9rmbwqh3kg2fj0c34rzqfd56jsq8lcdg14k0kdcb";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          company
+          emacs
+          know-your-http-well
+          restclient
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/company-restclient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-rtags = callPackage ({ company
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , rtags }:
+      melpaBuild {
+        pname = "company-rtags";
+        ename = "company-rtags";
+        version = "20180729.2038";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "7c470ba8e15740f37c3a7a9c56331c1cc4c0b1bb";
+          sha256 = "05czbkgq48jv0f9vainflikil51xiwd0h24jmmx5886wi3v1wb4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-rtags";
+          sha256 = "0dicxbp3xn02pflrpfndj7hs494prvz64llsk1xpc2z23kfarp6f";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/company-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-shell = callPackage ({ cl-lib ? null
+                                 , company
+                                 , dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-shell";
+        ename = "company-shell";
+        version = "20170517.2241";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "company-shell";
+          rev = "acdbf8cba6ad9831d81a77bab7bbfd50f19edd86";
+          sha256 = "1dk927da7g4a39sva9bda978bx6hpiz5kf341fj8sb7xhryvh5r2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-shell";
+          sha256 = "0my9jghf3s4idkgrpki8mj1lm5ichfvznb09lfwf07fjhg0q1apz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-shell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-solidity = callPackage ({ cl-lib ? null
+                                    , company
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , solidity-mode }:
+      melpaBuild {
+        pname = "company-solidity";
+        ename = "company-solidity";
+        version = "20181117.718";
+        src = fetchFromGitHub {
+          owner = "ethereum";
+          repo = "emacs-solidity";
+          rev = "d6c48a1cb64d3c8a825dc0d06c839f2cacd4d289";
+          sha256 = "14v71xf3z60s1fhpsz8b3l1v4na2ds0ddcp41y412fnrg4scbrhr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-solidity";
+          sha256 = "118sjl9gpx9xmpb2m3sd5wmbgqvp7ak5dxrr5ja3rhd0rsnp2q5w";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company solidity-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-solidity";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-sourcekit = callPackage ({ company
+                                     , dash
+                                     , dash-functional
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , sourcekit }:
+      melpaBuild {
+        pname = "company-sourcekit";
+        ename = "company-sourcekit";
+        version = "20170126.353";
+        src = fetchFromGitHub {
+          owner = "nathankot";
+          repo = "company-sourcekit";
+          rev = "8ba62ac25bf533b7f148f333bcb5c1db799f749b";
+          sha256 = "01dh0wdaydiai4v13r8g05rpiwqr5qqi34wif8vbk2mrr25wc7i9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-sourcekit";
+          sha256 = "0hr5j1ginf43h4qf3fvsh3z53z0c7w5a9lhrvdwmlzj396qhqmzs";
+          name = "recipe";
+        };
+        packageRequires = [ company dash dash-functional emacs sourcekit ];
+        meta = {
+          homepage = "https://melpa.org/#/company-sourcekit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-statistics = callPackage ({ company
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "company-statistics";
+        ename = "company-statistics";
+        version = "20170210.1133";
+        src = fetchFromGitHub {
+          owner = "company-mode";
+          repo = "company-statistics";
+          rev = "e62157d43b2c874d2edbd547c3bdfb05d0a7ae5c";
+          sha256 = "12mwviz1mwx4ywks2lkmybbgh1wny67wkzlq5y3ml8gvyc288n3i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-statistics";
+          sha256 = "1fl4ldj17m3xhi6xbw3bp9c2jir34xv3jh9daiw8g912fv2l5dcj";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-statistics";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-suggest = callPackage ({ company
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "company-suggest";
+        ename = "company-suggest";
+        version = "20180527.931";
+        src = fetchFromGitHub {
+          owner = "juergenhoetzel";
+          repo = "company-suggest";
+          rev = "81fe56fae3a3d2d3cd1be09d7eb96422a4ad6f09";
+          sha256 = "0ys9m11l8csyv2p0f7b13b9l5wqn73y5m4c29rj4xf2yy5b9p8sr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-suggest";
+          sha256 = "1w5fp4mydc4av14sjb8di6jjvzfqwnasnxpf9720pk0rsj05i972";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-suggest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-tabnine = callPackage ({ cl-lib ? null
+                                   , company
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , s
+                                   , unicode-escape }:
+      melpaBuild {
+        pname = "company-tabnine";
+        ename = "company-tabnine";
+        version = "20181113.2017";
+        src = fetchFromGitHub {
+          owner = "TommyX12";
+          repo = "company-tabnine";
+          rev = "85277a840357142c44843172b2a2898ad74587a7";
+          sha256 = "11bmil8jhc56252p10wz81q1jjqgkq2svj2c0shj328m0qb4ywml";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-tabnine";
+          sha256 = "1x37xacrscmh9hq9mljbgdcl3pwfn2kmn567qv0jqys8ihbzi3v7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs s unicode-escape ];
+        meta = {
+          homepage = "https://melpa.org/#/company-tabnine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-tern = callPackage ({ cl-lib ? null
+                                , company
+                                , dash
+                                , dash-functional
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s
+                                , tern }:
+      melpaBuild {
+        pname = "company-tern";
+        ename = "company-tern";
+        version = "20161004.1147";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "company-tern";
+          rev = "b20b3e490bf277c8480712210e3c92ea489859ef";
+          sha256 = "1l4b54rqwsb32r8zwwrag7s35zc3kpviafdrqkq8r1nyshg2yccm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-tern";
+          sha256 = "17pw4jx3f1hymj6sc0ri18jz9ngggj4a41kxx14fnmmm8adqn6wh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company dash dash-functional s tern ];
+        meta = {
+          homepage = "https://melpa.org/#/company-tern";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-terraform = callPackage ({ company
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , terraform-mode }:
+      melpaBuild {
+        pname = "company-terraform";
+        ename = "company-terraform";
+        version = "20180703.533";
+        src = fetchFromGitHub {
+          owner = "rafalcieslak";
+          repo = "emacs-company-terraform";
+          rev = "9c1146bfe23d4c461f4a59577faf4e46fcca7fe9";
+          sha256 = "10b23azzgy51zrrmyi29mgy74f2zkrqrqvlk0r2iz9f7fydk8dpp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-terraform";
+          sha256 = "198ppqn6f7y9bg582z5s4cl9gg1q9ibsr7mmn68b50zvma7ankzh";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs terraform-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-terraform";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-try-hard = callPackage ({ company
+                                    , dash
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "company-try-hard";
+        ename = "company-try-hard";
+        version = "20150902.1506";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "company-try-hard";
+          rev = "0401e8afa6bd4d3e9d2cf18e58955b83aef93005";
+          sha256 = "18hy60fm3b3dmp29cmzbs6grlihkwifjbzv30gprwj5f6x7m8knf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-try-hard";
+          sha256 = "1rwn521dc8kxh43vcd3rf0h8jc53d4gmid3szj2msi0da1sk0mmj";
+          name = "recipe";
+        };
+        packageRequires = [ company dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-try-hard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-web = callPackage ({ cl-lib ? null
+                               , company
+                               , dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , web-completion-data }:
+      melpaBuild {
+        pname = "company-web";
+        ename = "company-web";
+        version = "20180402.455";
+        src = fetchFromGitHub {
+          owner = "osv";
+          repo = "company-web";
+          rev = "f0cc9187c9c34f72ad71f5649a69c74f996bae9a";
+          sha256 = "1xcwwcy2866vzaqgn7hrl7j8k48mk74i4shm40v7ybacws47s9nr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-web";
+          sha256 = "1q2am684l4d038a3ymyy6gg2ds9lq5mcfc4in8dmvap5grdhia4b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company dash web-completion-data ];
+        meta = {
+          homepage = "https://melpa.org/#/company-web";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ycm = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , ycm }:
+      melpaBuild {
+        pname = "company-ycm";
+        ename = "company-ycm";
+        version = "20140904.1117";
+        src = fetchFromGitHub {
+          owner = "neuromage";
+          repo = "ycm.el";
+          rev = "b2cb611503cf8d256fa19fc76362d7d5d9449d01";
+          sha256 = "1xmmk5pg59w8cc1s9v3c65l8m388yl25ngjd0vibi22lm1k5ri8j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ycm";
+          sha256 = "1q4d63c7nr3g7q0smd55pp636vqa9lf1pkwjn9iq265369npvina";
+          name = "recipe";
+        };
+        packageRequires = [ ycm ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ycm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ycmd = callPackage ({ company
+                                , dash
+                                , deferred
+                                , f
+                                , fetchFromGitHub
+                                , fetchurl
+                                , let-alist
+                                , lib
+                                , melpaBuild
+                                , s
+                                , ycmd }:
+      melpaBuild {
+        pname = "company-ycmd";
+        ename = "company-ycmd";
+        version = "20180520.353";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-ycmd";
+          rev = "966594701c1eef1f6d4dad0c71c6d43a029977d7";
+          sha256 = "05b8l82l3p15r072zhmmwpcnxyyyrhzka5gc3vkzz2sa7wa7sp7j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ycmd";
+          sha256 = "1dycbp2q8grvv94mwp9n8s7xpz2zjs05l3lf471j3nlbk6xfsn5d";
+          name = "recipe";
+        };
+        packageRequires = [ company dash deferred f let-alist s ycmd ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ycmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    composable = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "composable";
+        ename = "composable";
+        version = "20170723.2347";
+        src = fetchFromGitHub {
+          owner = "paldepind";
+          repo = "composable.el";
+          rev = "ac981974f89607393cc61314aaa19672d45b0650";
+          sha256 = "0xg46r6ibga27cdycbysm80n2ayi8vmxcff1b6bqjjrsc0wbdnac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/composable";
+          sha256 = "1fs4pczjn9sv12sladf6zbkz0cmzxr0jaqkiwryydal1l5nqqxcy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/composable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    composer = callPackage ({ emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , php-runtime
+                            , request
+                            , s
+                            , seq }:
+      melpaBuild {
+        pname = "composer";
+        ename = "composer";
+        version = "20180923.440";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "composer.el";
+          rev = "6c1578b2352c81cc9a22616a70db2a14b7d2b67f";
+          sha256 = "0fijw3kcl4vyc5x7a1syqslsj13mwkq1k3bs4p60v2jg1fxqarrb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/composer";
+          sha256 = "01w9cywhfngkrl9az8kfpzm12nc0zwmax01pyxlbi2l2icmvp5s1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f php-runtime request s seq ];
+        meta = {
+          homepage = "https://melpa.org/#/composer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    concurrent = callPackage ({ deferred
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "concurrent";
+        ename = "concurrent";
+        version = "20161228.1930";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-deferred";
+          rev = "9668749635472a63e7a9282e2124325405199b79";
+          sha256 = "1ch5br9alvwcpijl9g8w5ypjrah29alpfpk4hjw23rwzyq5p4izq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/concurrent";
+          sha256 = "09wjw69bqrr3424h0mpb2kr5ixh96syjjsqrcyd7z2lsas5ldpnf";
+          name = "recipe";
+        };
+        packageRequires = [ deferred emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/concurrent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    conda = callPackage ({ dash
+                         , emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pythonic
+                         , s }:
+      melpaBuild {
+        pname = "conda";
+        ename = "conda";
+        version = "20181107.1151";
+        src = fetchFromGitHub {
+          owner = "necaris";
+          repo = "conda.el";
+          rev = "ac304a85a1af2e0fb180a3fbe7989c26a5cfee37";
+          sha256 = "1c0nl0wfz16qyaq7w4w31kb91ryadyi8i3zx6bsdbh8xbnngl7cy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/conda";
+          sha256 = "1hi292h6ccl7vkvyxcwwcdxw8q2brv3hy0mnlikzj2qy5pbnfg4y";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f pythonic s ];
+        meta = {
+          homepage = "https://melpa.org/#/conda";
+          license = lib.licenses.free;
+        };
+      }) {};
+    config-general-mode = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "config-general-mode";
+        ename = "config-general-mode";
+        version = "20171024.1140";
+        src = fetchFromGitHub {
+          owner = "TLINDEN";
+          repo = "config-general-mode";
+          rev = "b4a8e6ba0bb027a77e4a0f701409f3e57bb2e4c0";
+          sha256 = "115sk0h6i1bfnxw1v11719926cvnq7gyisjcysvkam40hp3d5fx5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/config-general-mode";
+          sha256 = "1pqivnyb1yljzs3fd554s0971wr9y6g1dx3lgym9gi5jhpyza38z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/config-general-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    config-parser = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "config-parser";
+        ename = "config-parser";
+        version = "20160426.519";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "el-config-parser";
+          rev = "85d559e7889d8f5b98b8794b79426ae25ec3caa5";
+          sha256 = "09vq7hcsw4027whn3xrnfz9hkgkakva619hyz0zfgpvppqah9n1p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/config-parser";
+          sha256 = "0wncg1v4wccb9j16rcmwz8fcmrscj7knfisq0r4qqx3skrmpccah";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/config-parser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    confluence = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , xml-rpc }:
+      melpaBuild {
+        pname = "confluence";
+        ename = "confluence";
+        version = "20151020.1828";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "confluence";
+          rev = "442d6e14b51f8322fb7f0fe30682d2429f48ed73";
+          sha256 = "18859zi60s2y79add998vxh084znbdxxq31m12flg7makxlamyh7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/confluence";
+          sha256 = "0xa2g168mm31kh5h7smhx35cjsk1js88nzs19yakjljf56b1khlf";
+          name = "recipe";
+        };
+        packageRequires = [ xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/confluence";
+          license = lib.licenses.free;
+        };
+      }) {};
+    conkeror-minor-mode = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "conkeror-minor-mode";
+        ename = "conkeror-minor-mode";
+        version = "20150114.804";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "conkeror-minor-mode";
+          rev = "476e81c27b056e21c192391fe674a2bf875466b0";
+          sha256 = "0sz3qx1bn0lwjhka2l6wfl4b5486ji9dklgjs7fdlkg3dgpp1ahx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/conkeror-minor-mode";
+          sha256 = "1ch108f20k7xbf79azsp31hh4wmw7iycsxddcszgxkbm7pj11933";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/conkeror-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    conllu-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , flycheck
+                               , hydra
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "conllu-mode";
+        ename = "conllu-mode";
+        version = "20181104.942";
+        src = fetchFromGitHub {
+          owner = "odanoburu";
+          repo = "conllu-mode";
+          rev = "1813121d8aafa0edf28741ad6f013573168cd4a6";
+          sha256 = "18dr733iv91raq4ds73n6f757hjfq2gss2hbqpmqyakqfvm7z6h3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/conllu-mode";
+          sha256 = "1wffvvs8d0xcnz6mcm9rbr8imyj4npyc148yh0gzfzlgjm0fiz1v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs flycheck hydra s ];
+        meta = {
+          homepage = "https://melpa.org/#/conllu-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    connection = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "connection";
+        ename = "connection";
+        version = "20140717.2029";
+        src = fetchFromGitHub {
+          owner = "myrkr";
+          repo = "dictionary-el";
+          rev = "a5619fb275520d699eaae214e41ebcfde23c17f3";
+          sha256 = "176w46j3m343vlkjn9jyaaz3ikzdzxffrvhalgc76ydw9wyivbf8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/connection";
+          sha256 = "1y68d2kay8p5vapailxhrc5dl7b8k8nkvp7pa54md3fsivwp1d0q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/connection";
+          license = lib.licenses.free;
+        };
+      }) {};
+    constant-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "constant-theme";
+        ename = "constant-theme";
+        version = "20180921.312";
+        src = fetchFromGitHub {
+          owner = "Jannis";
+          repo = "emacs-constant-theme";
+          rev = "0feb9f99d708633d62fa548c953ebbe68fd70de0";
+          sha256 = "14w92qh791zz22c1r47ncglh92ifgqxmz0pk5w61ka7zi7xqylg1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/constant-theme";
+          sha256 = "13m4r37gscnqg3qmb0rs2r8sslp0irm7n4p6p496mmvljvjmpv6b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/constant-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    contextual = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "contextual";
+        ename = "contextual";
+        version = "20180726.100";
+        src = fetchFromGitHub {
+          owner = "e-user";
+          repo = "contextual";
+          rev = "7ad2bb36426fd182d4d5ee7fd9be1cc0db8c7a84";
+          sha256 = "0zk85y01w23zb9x60bc5w4q3p40cnyk9bsc6pd5h85rlaazbrpby";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/contextual";
+          sha256 = "1xwjjchmn3xqxbgvqishh8i75scc4kjgdzlp5j64d443pfgyr56a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/contextual";
+          license = lib.licenses.free;
+        };
+      }) {};
+    contextual-menubar = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "contextual-menubar";
+        ename = "contextual-menubar";
+        version = "20180204.2309";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "contextual-menubar";
+          rev = "f76f55232ac07df76ef9a334a0c527dfab97c40b";
+          sha256 = "0zks4w99nbhz1xvr67isgg6yjghpzbh5s5wd839zi0ly30x4riqf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/contextual-menubar";
+          sha256 = "0r9bsnvf45h7gsdfhsz7h02nskjvflfa2yjarjv9fcl7aipz8rr6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/contextual-menubar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    contrast-color = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "contrast-color";
+        ename = "contrast-color";
+        version = "20160903.1107";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "contrast-color-el";
+          rev = "6ff1b807e09ef6a775e4ab1032bb2ea3fc442d9e";
+          sha256 = "1qvx00yrkl0zf2bnb46gw18nrhg3gwlc0az622bh5brckpn9dasv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/contrast-color";
+          sha256 = "0pa88mfla7g7wpia0q1lkv2dncw63ivvh83hf73f75a22rvl8jcx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/contrast-color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    control-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "control-mode";
+        ename = "control-mode";
+        version = "20160624.1010";
+        src = fetchFromGitHub {
+          owner = "stephendavidmarsh";
+          repo = "control-mode";
+          rev = "6bf487144119b03f9cc54168f70e3d7d8d84e22b";
+          sha256 = "0y6a0fcz6ic5ai5jibyd740mclzx88x3l6wp2vs8rw6qs15cr7xf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/control-mode";
+          sha256 = "1biq4p2w8rqcbvr09gxbchjqlaixjf1fzv7xv8lpv81dlhi7dgz6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/control-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    copy-as-format = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "copy-as-format";
+        ename = "copy-as-format";
+        version = "20171215.1616";
+        src = fetchFromGitHub {
+          owner = "sshaw";
+          repo = "copy-as-format";
+          rev = "971957166fe64d914ec4be209b4f80efeeabbb19";
+          sha256 = "0ynzy2sb75w24d2kwjpkb3vl98yyz0sbcj6nd31y2r2n2kkdna24";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/copy-as-format";
+          sha256 = "1yij5mqm0dg6326yms0a2w8gs42kdxq0ih8dhkpdar54r0bk3m8k";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/copy-as-format";
+          license = lib.licenses.free;
+        };
+      }) {};
+    copy-file-on-save = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , f
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , s }:
+      melpaBuild {
+        pname = "copy-file-on-save";
+        ename = "copy-file-on-save";
+        version = "20180604.719";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "emacs-auto-deployment";
+          rev = "5af6d5fcc35ddf9050eada96fd5f334bf0661b62";
+          sha256 = "1q9liby1dmwwmg2jz13gx2ld47bpcqb9c7vx4qgky75wb5c2q1xz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/copy-file-on-save";
+          sha256 = "1mcwgkhd241aijnmzrrqqn9f7hiq5k1w4fj83v50aixrcs049gc3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/copy-file-on-save";
+          license = lib.licenses.free;
+        };
+      }) {};
+    copyit = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "copyit";
+        ename = "copyit";
+        version = "20161126.429";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "emacs-copyit";
+          rev = "f50d033b129d467fb517a351adf3f16cabd82a62";
+          sha256 = "1s1ddwxgvig7skibicm9j8jii651n1v5ivfj4j6d1kkc79lpq69n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/copyit";
+          sha256 = "1m28irqixzl44c683dxvc5x6l3qcqlpy6jzk6629paqkdi5mx1c0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/copyit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    copyit-pandoc = callPackage ({ copyit
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , pandoc }:
+      melpaBuild {
+        pname = "copyit-pandoc";
+        ename = "copyit-pandoc";
+        version = "20160624.1328";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "emacs-copyit";
+          rev = "c973d3650208a033aaf845989d023f9c6e572ddd";
+          sha256 = "1fwndjbzwhl4dzrw5jxbq66yggxkl81ga3cnnl7rm3s63pkb6l3w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/copyit-pandoc";
+          sha256 = "03v448gh6glq126r95w4y6s2p08jgjhkc6zgsplx0v9d5f2mwaqk";
+          name = "recipe";
+        };
+        packageRequires = [ copyit emacs pandoc ];
+        meta = {
+          homepage = "https://melpa.org/#/copyit-pandoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    coq-commenter = callPackage ({ cl-lib ? null
+                                 , dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , s }:
+      melpaBuild {
+        pname = "coq-commenter";
+        ename = "coq-commenter";
+        version = "20170822.1609";
+        src = fetchFromGitHub {
+          owner = "Ailrun";
+          repo = "coq-commenter";
+          rev = "7fe9a2cc0ebdb0b1e54a24eb7971d757fb588ac3";
+          sha256 = "1rq0j6ds9snv21k2lzyja96qxxz8nrai5aj1k1si9zshld28mapx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/coq-commenter";
+          sha256 = "1d6a40f8b4r8x08sy7qs335c9z744xmll326qzsjmxiqdkjv7h2k";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/coq-commenter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    corral = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "corral";
+        ename = "corral";
+        version = "20160502.1";
+        src = fetchFromGitHub {
+          owner = "nivekuil";
+          repo = "corral";
+          rev = "8813288de240956641b37deafaaa4811548246df";
+          sha256 = "06l2imhxm6dijkqlhk9s0vsa5a0ghybpy7qk7wpkgv0dlm3k3w7n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/corral";
+          sha256 = "1drccqk4qzkgvkgkzlrrfd1dcgj8ziqriijrjihrzjgjsbpzv6da";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/corral";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cosmo = callPackage ({ emacs
+                         , fetchFromGitLab
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "cosmo";
+        ename = "cosmo";
+        version = "20170922.44";
+        src = fetchFromGitLab {
+          owner = "montanari";
+          repo = "cosmo-el";
+          rev = "dd83b09a49a2843606b28279b674b2207040b36b";
+          sha256 = "0phcg81g3dy67s1hfymvj0lkcpwygwql8iixf940nv31qllgzvd7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cosmo";
+          sha256 = "1pk34d0kv1jm2fq72qa5lj0y39x1yf2nbkjjg8jcj8ari28h9vfk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cosmo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , swiper }:
+      melpaBuild {
+        pname = "counsel";
+        ename = "counsel";
+        version = "20181119.1013";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper";
+          rev = "2dea224dfe12b09f9b1a18758d7d9b37d48eeddf";
+          sha256 = "1ncypklx07wgmk77ynhbwdmbh3dpjwzg9y8ankjqvsmcww68ww1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel";
+          sha256 = "0y8cb2q4mqvzan5n8ws5pjpm7bkjcghg5q19mzc3gqrq9vrvyzi6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-bbdb = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , ivy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-bbdb";
+        ename = "counsel-bbdb";
+        version = "20171129.1737";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "counsel-bbdb";
+          rev = "c86f4b9ef99c9db0b2c4196a300d61300dc2d0c1";
+          sha256 = "1dchyg8cs7n0zbj6mr2z840yi06b2wja65k04idlcs6ngy1vc3sr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-bbdb";
+          sha256 = "14d9mk44skpmyj0zkqwz97j80r630j7s5hfrrhlsafdpl5aafjxp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-bbdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-codesearch = callPackage ({ codesearch
+                                      , counsel
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , ivy
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-codesearch";
+        ename = "counsel-codesearch";
+        version = "20180925.103";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-counsel-codesearch";
+          rev = "b7989fad3e06f301c31d5e896c42b6cc549a0e0c";
+          sha256 = "1qv82nvj0kddmajm6pniadnz96mqz8rhl0g2w2z5834r48higxqv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-codesearch";
+          sha256 = "0y547cfxjq59zvi36av0rd1wdydf8d96ma438ja0x726f53nxd3g";
+          name = "recipe";
+        };
+        packageRequires = [ codesearch counsel emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-codesearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-css = callPackage ({ cl-lib ? null
+                               , counsel
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-css";
+        ename = "counsel-css";
+        version = "20180302.236";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-counsel-css";
+          rev = "0536af00236cdce1ed08b40dd46c917e8b4b8869";
+          sha256 = "04qm5dqxnl4s0axbrin7a7dpj3h8rx096q01bwzfs10qsdx3l7c0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-css";
+          sha256 = "1sckfq8kv68q1anqmslrvhcf83m7b5r0clny6q33b9x0qypkv9xp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib counsel emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-css";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-dash = callPackage ({ counsel
+                                , dash
+                                , dash-functional
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm-dash
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-dash";
+        ename = "counsel-dash";
+        version = "20160729.829";
+        src = fetchFromGitHub {
+          owner = "nathankot";
+          repo = "counsel-dash";
+          rev = "07fa74a94ff4da5b6c8c4810f5e143e701b480d2";
+          sha256 = "17h2m9zsadq270mkq12kmdzmpbfjiwjbg8n1rg2apqnm1ndgcwf8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-dash";
+          sha256 = "0pzh8ww1p2jb859gdjr5ypya3rwhiyg3c79xhx8filxrqxgjv5fk";
+          name = "recipe";
+        };
+        packageRequires = [ counsel dash dash-functional emacs helm-dash ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-dash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-etags = callPackage ({ counsel
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-etags";
+        ename = "counsel-etags";
+        version = "20181119.335";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "counsel-etags";
+          rev = "ccbfe83926f989e67bf84ee46f825bb1194fffef";
+          sha256 = "11wivqsldyg9sd1qcv94jdmy68pl9r9c8q36mwk9h8y5yqsh6l5x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-etags";
+          sha256 = "1h3dlczm1m21d4h41vz9ngg5fi02g6f95qalfxdnsvz0d4w4yxk0";
+          name = "recipe";
+        };
+        packageRequires = [ counsel emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-etags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-gtags = callPackage ({ counsel
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-gtags";
+        ename = "counsel-gtags";
+        version = "20170326.559";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-counsel-gtags";
+          rev = "220ebb48419ee6891ecbf9ea8fe130b494b17ee2";
+          sha256 = "12ml45gwfh0lyvmf24pvryylrjx5g60yqpbjfcak7zvy7x5wmc1s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-gtags";
+          sha256 = "12qyb1lnzyd2rr4ankpqi30h0bj66ap5qw87y4605k0j44vhnsax";
+          name = "recipe";
+        };
+        packageRequires = [ counsel emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-gtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-notmuch = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , ivy
+                                   , lib
+                                   , melpaBuild
+                                   , notmuch
+                                   , s }:
+      melpaBuild {
+        pname = "counsel-notmuch";
+        ename = "counsel-notmuch";
+        version = "20180713.1740";
+        src = fetchFromGitHub {
+          owner = "fuxialexander";
+          repo = "counsel-notmuch";
+          rev = "f4c864eca400abe0bb7420bcee80f2f8259ca0ff";
+          sha256 = "0f5w4m5qripca5agbgil0qvd4h9ypi63kpz90n744v60r3lddcjl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-notmuch";
+          sha256 = "1n4jp9fa5fbv55am0w1b832ncdih8gi6xflwabpwqqj4k5mj94p1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy notmuch s ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-notmuch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-org-capture-string = callPackage ({ emacs
+                                              , fetchFromGitHub
+                                              , fetchurl
+                                              , ivy
+                                              , lib
+                                              , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-org-capture-string";
+        ename = "counsel-org-capture-string";
+        version = "20180816.24";
+        src = fetchFromGitHub {
+          owner = "akirak";
+          repo = "counsel-org-capture-string";
+          rev = "0fd5d72397a9268a89dd26de2a6c355f127453ac";
+          sha256 = "19ijjiidxxysvkz9vnsgiymxd7w7zcs5bazn7dmahp5yaprlsjld";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-org-capture-string";
+          sha256 = "1jqp4qscv8shx1kfnrm6642a83ba3rpzm7v9hz46j3aw6f3psw9g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-org-capture-string";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-org-clock = callPackage ({ dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , ivy
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-org-clock";
+        ename = "counsel-org-clock";
+        version = "20180623.617";
+        src = fetchFromGitHub {
+          owner = "akirak";
+          repo = "counsel-org-clock";
+          rev = "7b172847f19571fa8f4092899bff75fab0821b07";
+          sha256 = "08ci1pb0w1aalhhsg8v0b37xapy72svfkzclk54f3813vxd2naxs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-org-clock";
+          sha256 = "16pai05qqaw31ghdy1h164qy56mqsdsf2925i0qhlhysslkki8gh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-org-clock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-osx-app = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , ivy
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-osx-app";
+        ename = "counsel-osx-app";
+        version = "20160821.109";
+        src = fetchFromGitHub {
+          owner = "d12frosted";
+          repo = "counsel-osx-app";
+          rev = "5cc93ec684f837dc31ce20e7625407f2c0445691";
+          sha256 = "03gnxk2midiczq5w1k69ddhnlhml1pnwr9yjaw3b30dgv6r29dpw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-osx-app";
+          sha256 = "0zc74szalyazbvi0lh3zy08kb8kzlwcwnc8d1sj5n23ymvvs5nn3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-osx-app";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-projectile = callPackage ({ counsel
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , projectile }:
+      melpaBuild {
+        pname = "counsel-projectile";
+        ename = "counsel-projectile";
+        version = "20181020.1206";
+        src = fetchFromGitHub {
+          owner = "ericdanan";
+          repo = "counsel-projectile";
+          rev = "7607fb8bb4eb7fbe0ec20f9644b6bbaa5c363330";
+          sha256 = "0mzxkzhwqw2fgb5x5ny84vkmqkn1vx4ycmgb7gm14ipkc7ma88ip";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-projectile";
+          sha256 = "1gshphxaa902kq878rnizn3k1zycakwqkciz92z3xxb3bdyy0hnl";
+          name = "recipe";
+        };
+        packageRequires = [ counsel projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-pydoc = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , ivy
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-pydoc";
+        ename = "counsel-pydoc";
+        version = "20171018.1342";
+        src = fetchFromGitHub {
+          owner = "co-dh";
+          repo = "pydoc_utils";
+          rev = "08a4a1020da3d06604156303024c8a5e31ec36e4";
+          sha256 = "0658pm99vnm50xq2c79mdbywrgmbs0wwl90hnc493652bznrsgmc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-pydoc";
+          sha256 = "1a3vwh4jf5y03z95bd4blk75n6wjd24l6yw6vpr3991bi4qrxclz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-pydoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-spotify = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , ivy
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-spotify";
+        ename = "counsel-spotify";
+        version = "20180319.2022";
+        src = fetchFromGitHub {
+          owner = "Lautaro-Garcia";
+          repo = "counsel-spotify";
+          rev = "9033e207dccdfea7fe590d2e102d50fcd2bd22e3";
+          sha256 = "00mjcp3x558gh7f8yrj8y4ivq3pvml7y46rms8xah5zxavg6q52b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-spotify";
+          sha256 = "1xs4km5vjhn6dnlmrscz7airip07n1ppybp8mr17hinb8scfpv47";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-spotify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-tramp = callPackage ({ counsel
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-tramp";
+        ename = "counsel-tramp";
+        version = "20180910.1857";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-counsel-tramp";
+          rev = "5e3345f3d11f965e80763a3f68dca8a05f597224";
+          sha256 = "0rjkgf5idbnkjscmg4n8wvwh2s7dpj0ic848icil2xhc4i189z7k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-tramp";
+          sha256 = "1ga57v6whnpigciw54k3hs0idq4cbl35qrysarik72f46by859v5";
+          name = "recipe";
+        };
+        packageRequires = [ counsel emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-world-clock = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , ivy
+                                       , lib
+                                       , melpaBuild
+                                       , s }:
+      melpaBuild {
+        pname = "counsel-world-clock";
+        ename = "counsel-world-clock";
+        version = "20171201.2337";
+        src = fetchFromGitHub {
+          owner = "kchenphy";
+          repo = "counsel-world-clock";
+          rev = "9834461002e1ea0c1669705e7a2b99dec969bb30";
+          sha256 = "1gkbcq7fkh08cwmbf1q99s2m5hcja73vl8bfdx2iif74f81p89jf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-world-clock";
+          sha256 = "151vm7g7g0jwjlp0wrwlxrjnh9qsckc10whkfgaz9czzvvmsf4cv";
+          name = "recipe";
+        };
+        packageRequires = [ ivy s ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-world-clock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cov = callPackage ({ elquery
+                       , emacs
+                       , f
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , s }:
+      melpaBuild {
+        pname = "cov";
+        ename = "cov";
+        version = "20180415.1331";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "cov";
+          rev = "2371d01e6b2928eb6cee6b7bfa8d50f96c47e750";
+          sha256 = "1z1092xyn2zlmggp7dkr7cynmvrr4hjdsq2pgnri5lizp3bjyd4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cov";
+          sha256 = "02wk8ikanl5lcwqb9wqc8xx5vwzhn2hpqpxdchg5mdi7fifa1rni";
+          name = "recipe";
+        };
+        packageRequires = [ elquery emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/cov";
+          license = lib.licenses.free;
+        };
+      }) {};
+    coverage = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , ov }:
+      melpaBuild {
+        pname = "coverage";
+        ename = "coverage";
+        version = "20180226.2057";
+        src = fetchFromGitHub {
+          owner = "trezona-lecomte";
+          repo = "coverage";
+          rev = "c73d984168955ca0f47f44b0464aa45282df42b6";
+          sha256 = "1kn61j91x4r4kc498y2jas5il4pc4qzhkj8392g2qiq5m3lbv4vl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/coverage";
+          sha256 = "0ja7wsx2sj0h01sk1l3c0aidbs1ld4gj3kiwq6brs7r018sz45pm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ov ];
+        meta = {
+          homepage = "https://melpa.org/#/coverage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    coverlay = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "coverlay";
+        ename = "coverlay";
+        version = "20180518.1555";
+        src = fetchFromGitHub {
+          owner = "twada";
+          repo = "coverlay.el";
+          rev = "8205a845d58755dd7640b2e2b5991bf842998935";
+          sha256 = "1mppan4ml4dblwxdgr8pli7nj864frc7n7c6h47q4vfb4flg29n0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/coverlay";
+          sha256 = "1n0fblacwps94mhbdwpi22frhqp3pxg4323ghb79rvszb7in9i8j";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/coverlay";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cp5022x = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "cp5022x";
+        ename = "cp5022x";
+        version = "20120323.1635";
+        src = fetchFromGitHub {
+          owner = "awasira";
+          repo = "cp5022x.el";
+          rev = "ea7327dd75e54539576916f592ae1be98179ae35";
+          sha256 = "1z67x4a0aricd9q6i2w33k74alddl6w0rijjhzyxwml7ibhbvphz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cp5022x";
+          sha256 = "0v1jhkix01l299m67jag43rnps68m19zy83vvdglxa8dj3naz5dl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cp5022x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cpanfile-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "cpanfile-mode";
+        ename = "cpanfile-mode";
+        version = "20161001.10";
+        src = fetchFromGitHub {
+          owner = "zakame";
+          repo = "cpanfile-mode";
+          rev = "b09908b4342b3aa97940159dbe91ac074ec98e0b";
+          sha256 = "12nbfgvhd8gxakq787i1v3h2kcn1r76f9lhqx44gjwqy3yx201i5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cpanfile-mode";
+          sha256 = "1sflykfrhx9sn5dqlaa4s7w34nczh4xqwcig5rmlpwj9yl2mk2dm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cpanfile-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cpputils-cmake = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "cpputils-cmake";
+        ename = "cpputils-cmake";
+        version = "20181005.2028";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "cpputils-cmake";
+          rev = "64b2b05eff5398b4cd522e66efaf14553ab18ff4";
+          sha256 = "0kmqk0ba9cacss3m34a8sdnmdir4ci7mv3j176ylm5af0x9yqc45";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cpputils-cmake";
+          sha256 = "0fswmmmrjv897n51nidmn8gs8yp00595g35vwjafsq6rzfg58j60";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cpputils-cmake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cql-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cql-mode";
+        ename = "cql-mode";
+        version = "20160720.2039";
+        src = fetchFromGitHub {
+          owner = "Yuki-Inoue";
+          repo = "cql-mode";
+          rev = "2529ade55c125a89d8215f096a74733a90611c5d";
+          sha256 = "1ikmz037bv7h0bjrr8qia5g127a0vd223y04ndbyd950gqc1lx4h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cql-mode";
+          sha256 = "0wdal8w0i73xjak2g0wazs54z957f4lj4n8qdmzpcylzpl1lqd88";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cql-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cquery = callPackage ({ dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , lsp-mode
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "cquery";
+        ename = "cquery";
+        version = "20180811.1431";
+        src = fetchFromGitHub {
+          owner = "cquery-project";
+          repo = "emacs-cquery";
+          rev = "a803e92e77e1ffc74c13a753c1eb4f6f47127a97";
+          sha256 = "0b5f8lk790iavs1fd7hwihqrwx0ipg67hsx7qrs3cw96icl9vjcs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cquery";
+          sha256 = "01mw6aqiazpzcn6h5h5xcnra8a04yg1ibvpfajx70m5iw9f5w6l6";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/cquery";
+          license = lib.licenses.free;
+        };
+      }) {};
+    crappy-jsp-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "crappy-jsp-mode";
+        ename = "crappy-jsp-mode";
+        version = "20140311.231";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "crappy-jsp-mode";
+          rev = "6c45ab92b452411cc0fab9bcee2f456276b4fc40";
+          sha256 = "12g6l6xlbs9h24q5lk8yjgk91xqd7r3v7r6czy10r09cmfjmkxbb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/crappy-jsp-mode";
+          sha256 = "17m404kdz9avihz52xd7hn5qx06a6k74gmn0gbhly4gl84w3zc6y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/crappy-jsp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    creamsody-theme = callPackage ({ autothemer
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "creamsody-theme";
+        ename = "creamsody-theme";
+        version = "20170222.258";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-theme-creamsody";
+          rev = "32fa3f4e461da92700523b1b20e7b28974c19a26";
+          sha256 = "01q1l8ajw6lpp1bb4yp8r70d86hcl4hy0mz7x1hzqsvb7flhppp0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/creamsody-theme";
+          sha256 = "0l3mq43bszxrz0bxmxb76drp4c8721cw8akgk3l5a800wqbfp2l7";
+          name = "recipe";
+        };
+        packageRequires = [ autothemer ];
+        meta = {
+          homepage = "https://melpa.org/#/creamsody-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    creds = callPackage ({ dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , s }:
+      melpaBuild {
+        pname = "creds";
+        ename = "creds";
+        version = "20140510.1006";
+        src = fetchFromGitHub {
+          owner = "ardumont";
+          repo = "emacs-creds";
+          rev = "00ebefd10005c170b790a01380cb6a98f798ce5c";
+          sha256 = "169ai0xkh3988racnhaapxw0v1pbxvcaq470x1qacdzdpka4a7bs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/creds";
+          sha256 = "0n11xxaf93bbc9ih25wj09zzw4sj32wb99qig4zcy8bpkl5y3llk";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/creds";
+          license = lib.licenses.free;
+        };
+      }) {};
+    creole = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , kv
+                          , lib
+                          , melpaBuild
+                          , noflet }:
+      melpaBuild {
+        pname = "creole";
+        ename = "creole";
+        version = "20140924.800";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "elwikicreole";
+          rev = "7d5cffe93857f6c75ca09ac79c0e47b8d4410e53";
+          sha256 = "18c4jfjnhb7asdhwj41g06cp9rz5xd7bbx2s1xvk6gahay27rlrv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/creole";
+          sha256 = "1q1c6f953g39xal1p7rj8dlcx2crk5cz1q07zp8bgp5jx4nd2z9n";
+          name = "recipe";
+        };
+        packageRequires = [ kv noflet ];
+        meta = {
+          homepage = "https://melpa.org/#/creole";
+          license = lib.licenses.free;
+        };
+      }) {};
+    creole-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "creole-mode";
+        ename = "creole-mode";
+        version = "20130721.1750";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "creole-mode";
+          rev = "b5e79b2ec5f19fb5aacf689b5febc3e0b61515c4";
+          sha256 = "0japww5x89vd1ahjm2bc3biz6wxv94vvqq5fyyzkqsblgk5bys0h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/creole-mode";
+          sha256 = "1lj9a0bgn7lmc2wyjzzvmpaz1f1spj02l51ki2wydjbfhxq61k0s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/creole-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cricbuzz = callPackage ({ dash
+                            , enlive
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "cricbuzz";
+        ename = "cricbuzz";
+        version = "20180804.1554";
+        src = fetchFromGitHub {
+          owner = "lepisma";
+          repo = "cricbuzz.el";
+          rev = "0b95d45991bbcd2fa58d96ce921f6a57ba42c153";
+          sha256 = "1s77a2lfy7nnaxm3ai9dg8lbdxp0892z4gr0yxqrgzawc4qcbb3x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cricbuzz";
+          sha256 = "18nmr7rpbylqgfx5q3ps38wx9q1ndj06msgyjyc8lqpipbsz0pip";
+          name = "recipe";
+        };
+        packageRequires = [ dash enlive f s ];
+        meta = {
+          homepage = "https://melpa.org/#/cricbuzz";
+          license = lib.licenses.free;
+        };
+      }) {};
+    crm-custom = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "crm-custom";
+        ename = "crm-custom";
+        version = "20160116.1606";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "crm-custom";
+          rev = "f1aaccf64306a5f99d9bf7ba815d7ea41c15518d";
+          sha256 = "1kl6blr4dlz40gfc845071nhfms4fm59284ja2177bhghy3wmw6r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/crm-custom";
+          sha256 = "14w15skxr44p9ilhpswlgdbqfw8jghxi69l37yk4m449m7g9694c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/crm-custom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    crux = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , seq }:
+      melpaBuild {
+        pname = "crux";
+        ename = "crux";
+        version = "20181108.27";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "crux";
+          rev = "308f17d914e2cd79cbc809de66d02b03ceb82859";
+          sha256 = "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/crux";
+          sha256 = "10lim1sngqbdqqwyq6ksqjjqpkm97aj1jk550sgwj28338lnw73c";
+          name = "recipe";
+        };
+        packageRequires = [ seq ];
+        meta = {
+          homepage = "https://melpa.org/#/crux";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cryptol-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "cryptol-mode";
+        ename = "cryptol-mode";
+        version = "20180321.1108";
+        src = fetchFromGitHub {
+          owner = "thoughtpolice";
+          repo = "cryptol-mode";
+          rev = "91f8ad617e5db2fad57a7be1da211f22f3b51550";
+          sha256 = "12jd2wc5icnkbvxjam7kgr8bdjavxjsy79vwi0hi3gzwiirx4ifg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cryptol-mode";
+          sha256 = "08iq69gqmps8cckybhj9065b8a2a49p0rpzgx883qxnypsmjfmf2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cryptol-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cryptsy-public-api = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , json ? null
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "cryptsy-public-api";
+        ename = "cryptsy-public-api";
+        version = "20141008.528";
+        src = fetchFromGitHub {
+          owner = "Sodaware";
+          repo = "cryptsy-public-api.el";
+          rev = "c65abdbb2fac49913c27b5183e3fad1092f78b3d";
+          sha256 = "1hiip5q2vg729kzidj0jmq4idvqxhbkwvncfj9qnn51rmr23n17z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cryptsy-public-api";
+          sha256 = "1331nrx57136k09a7p6imv0k9g6w8ibpwn5xmv33dxc22hsmc41j";
+          name = "recipe";
+        };
+        packageRequires = [ json ];
+        meta = {
+          homepage = "https://melpa.org/#/cryptsy-public-api";
+          license = lib.licenses.free;
+        };
+      }) {};
+    crystal-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "crystal-mode";
+        ename = "crystal-mode";
+        version = "20180826.2029";
+        src = fetchFromGitHub {
+          owner = "crystal-lang-tools";
+          repo = "emacs-crystal-mode";
+          rev = "8649736fea8960a5e54c3ec934484f231a518ea5";
+          sha256 = "0ggg1zi3x7jphqa83zkcd19x2j30bqkfysn8cl8xahrikwhxmh49";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/crystal-mode";
+          sha256 = "1fgpz7zab6nc6kvjzjsbvrbg8shf4by0f20cvjvyky8kym72q0hk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/crystal-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    crystal-playground = callPackage ({ crystal-mode
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "crystal-playground";
+        ename = "crystal-playground";
+        version = "20180829.2201";
+        src = fetchFromGitHub {
+          owner = "jasonrobot";
+          repo = "crystal-playground";
+          rev = "532dc7e4239eb4bdd241bc4347d34760344c1ebb";
+          sha256 = "06vrmxikqi36wbnm66r5s5fxhkdlz76fjb3nhlighbqlym4bxpl1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/crystal-playground";
+          sha256 = "0789x443qrvxgrcha6rag11fwyr0aj1ixw6xc0l4d34fsy76ppwh";
+          name = "recipe";
+        };
+        packageRequires = [ crystal-mode emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/crystal-playground";
+          license = lib.licenses.free;
+        };
+      }) {};
+    csgo-conf-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "csgo-conf-mode";
+        ename = "csgo-conf-mode";
+        version = "20161209.819";
+        src = fetchFromGitHub {
+          owner = "wynro";
+          repo = "emacs-csgo-conf-mode";
+          rev = "df45ca833eb68c394dd03acce5733a33c3b06bf8";
+          sha256 = "0bq9dr1zq1lkdy80jqvxpb0igdnz9jqjh7pif3190mh7m46zyr7y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/csgo-conf-mode";
+          sha256 = "0djx6jraqlh9da2jqagj72vjnc8n3px2jp23jdy9rk40z10m5sbr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/csgo-conf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    csharp-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "csharp-mode";
+        ename = "csharp-mode";
+        version = "20181011.18";
+        src = fetchFromGitHub {
+          owner = "josteink";
+          repo = "csharp-mode";
+          rev = "239527c1f27cf5246505f1faf23269487fdbfdd2";
+          sha256 = "0ygc8mpsmicsm2j50kg22yllbj5ply56cwx9hvb6cflzmwlmgyvw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/csharp-mode";
+          sha256 = "17j84qrprq492dsn103dji8mvh29mbdlqlpsszbgfdgnpvfr1rv0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/csharp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    csound-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , multi
+                               , shut-up }:
+      melpaBuild {
+        pname = "csound-mode";
+        ename = "csound-mode";
+        version = "20180925.1114";
+        src = fetchFromGitHub {
+          owner = "hlolli";
+          repo = "csound-mode";
+          rev = "9bc2d0badf8316cca2d167348bb81a82e34297c8";
+          sha256 = "0r8c82wp1mpx8xvycncni02vymhr81jnxrqi6rr1majpgan5jvb5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/csound-mode";
+          sha256 = "047a78nhkn6qycsz8w9a0r1xyz5wyf4rds3z5yx9sn5wkv54w95d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs multi shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/csound-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    css-autoprefixer = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "css-autoprefixer";
+        ename = "css-autoprefixer";
+        version = "20180311.900";
+        src = fetchFromGitHub {
+          owner = "kkweon";
+          repo = "emacs-css-autoprefixer";
+          rev = "386a5defc8543a3b87820f1761c075c7d1d93b38";
+          sha256 = "0ymba9bhzfi7kkrha4d4sn0hrc3sid4b5k8lhakwwdwafhym0jjb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/css-autoprefixer";
+          sha256 = "0q40k8jvs4nc57kcljsx5qzylz9ms0kbr3dic3mr3bj0w062b1qg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/css-autoprefixer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    css-comb = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "css-comb";
+        ename = "css-comb";
+        version = "20160415.2259";
+        src = fetchFromGitHub {
+          owner = "channikhabra";
+          repo = "css-comb.el";
+          rev = "6fa45e5af8a8bd3af6c1154cde3540e32c4206ee";
+          sha256 = "0nvl6y90p9crk12j7aw0cqdjhli7xbrx3hqckxsnvrnxy4zax7nk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/css-comb";
+          sha256 = "1axwrvbc3xl1ixhh72bii3hhbi9d96y6i1my1rpvwqyd6f7wb2cf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/css-comb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    css-eldoc = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "css-eldoc";
+        ename = "css-eldoc";
+        version = "20150124.1923";
+        src = fetchFromGitHub {
+          owner = "zenozeng";
+          repo = "css-eldoc";
+          rev = "c558ac4c470742c98a37290e6b409db28183df30";
+          sha256 = "1mgc6bd0dzrp1dq1yj8m2qxjnpysd8ppdk2yp96d3zd07zllw4rx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/css-eldoc";
+          sha256 = "0k0yzpqwfh5rg8sbv60simdslag514768i0naimm8vyrvv87fzny";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/css-eldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cssh = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "cssh";
+        ename = "cssh";
+        version = "20150810.1009";
+        src = fetchFromGitHub {
+          owner = "dimitri";
+          repo = "cssh";
+          rev = "2fe2754235225a59b63f08b130cfd4352e2e1c3f";
+          sha256 = "1xf2hy077frfz8qf91c0l0qppcjxzr4bsbb622bx6fidqkpa3a1a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cssh";
+          sha256 = "10yvvyzqr06jvijmzis9clb1slzp2mn80yclis8wvrmg4p8djljk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cssh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    csv = callPackage ({ fetchFromGitLab
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "csv";
+        ename = "csv";
+        version = "20161113.710";
+        src = fetchFromGitLab {
+          owner = "u11";
+          repo = "csv.el";
+          rev = "aa1dfa1263565d5fac3879c21d8ddf5f8915e411";
+          sha256 = "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/csv";
+          sha256 = "1rvi5p27lsb284zqgv4cdqkbqc9r92axmvg7sv52rm7qcj8njwqd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/csv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ctable = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ctable";
+        ename = "ctable";
+        version = "20171005.1711";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-ctable";
+          rev = "b8830d1ca95abb100a81bc32011bd17d5ecba000";
+          sha256 = "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ctable";
+          sha256 = "040qmlgfvjc1f908n52m5ll2fizbrhjzbd0kgrsw37bvm3029rx1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ctable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ctags-update = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ctags-update";
+        ename = "ctags-update";
+        version = "20170728.58";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "ctags-update";
+          rev = "783bf91eba1cd27cbb739067a24e15e5e04564e6";
+          sha256 = "1navj3cm5gmp0h8wyk281i1gjry1kj0i73wlz1fjwkqm6awxfz4w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ctags-update";
+          sha256 = "07548jjpx4var2817y47i6br8iicjlj66n1b33h0av6r1h514nci";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ctags-update";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ctl-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ctl-mode";
+        ename = "ctl-mode";
+        version = "20151202.206";
+        src = fetchFromGitHub {
+          owner = "yyr";
+          repo = "emacs-grads";
+          rev = "1a13051db21b999c7682a015b33a03096ff9d891";
+          sha256 = "1d89gxyzv0z0nk7v1aa4qa0xfms2g2dsrr07cw0d99xsnyxfky31";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ctl-mode";
+          sha256 = "0fydq779b0y6hmh8srfdimr5rl9mk3sj08rbvlljxv3kqv5ajczj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ctl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ctxmenu = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , log4e
+                           , melpaBuild
+                           , popup
+                           , yaxception }:
+      melpaBuild {
+        pname = "ctxmenu";
+        ename = "ctxmenu";
+        version = "20140303.1342";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-ctxmenu";
+          rev = "5c2376859562b98c07c985d2b483658e4c0e888e";
+          sha256 = "1jlr2miwqsg06hk2clvsrw9fa98m2n76qfq8qv5svrb8dpil04wb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ctxmenu";
+          sha256 = "03g9px858mg19wapqszwav3599slljdyam8bvn1ri85fpa5ydvdp";
+          name = "recipe";
+        };
+        packageRequires = [ log4e popup yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/ctxmenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cubicaltt = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cubicaltt";
+        ename = "cubicaltt";
+        version = "20171108.602";
+        src = fetchFromGitHub {
+          owner = "mortberg";
+          repo = "cubicaltt";
+          rev = "a867f3d66172020e30dd0614bd7b50f90b6fddd7";
+          sha256 = "1d53i4dscssfmcdspjf692jhsvjfzxb8d6wvs7a4m8f6z31ygkvl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cubicaltt";
+          sha256 = "1wgy6965cnw201wx4a2pn71sa40mh2712y0d0470klr156krj0n9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cubicaltt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cubicle-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "cubicle-mode";
+        ename = "cubicle-mode";
+        version = "20171009.1257";
+        src = fetchFromGitHub {
+          owner = "cubicle-model-checker";
+          repo = "cubicle";
+          rev = "9d108b900e0123236b4991c2d06b5061f34feee8";
+          sha256 = "1n3x6m19swkq07zah4hh0ni6gx864bq1w0km06nq33x8189zczrr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cubicle-mode";
+          sha256 = "0xcmd0s6dfryl1ihfaqq0pfqc906yzzwk3d3nv8g6b6w78pv1lzv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cubicle-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cucumber-goto-step = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , pcre2el }:
+      melpaBuild {
+        pname = "cucumber-goto-step";
+        ename = "cucumber-goto-step";
+        version = "20131209.2119";
+        src = fetchFromGitHub {
+          owner = "gstamp";
+          repo = "cucumber-goto-step";
+          rev = "f2713ffb26ebe1b757d1f2ea80e900b55e5895aa";
+          sha256 = "184plai32sn0indvi1dma6ykz907zgnrdyxdw6f5mghwca96g5kx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cucumber-goto-step";
+          sha256 = "1ydsd455dvaw6a180b6570bfgg0kxn01sn6cb57smqj835am6gx8";
+          name = "recipe";
+        };
+        packageRequires = [ pcre2el ];
+        meta = {
+          homepage = "https://melpa.org/#/cucumber-goto-step";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cuda-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cuda-mode";
+        ename = "cuda-mode";
+        version = "20151213.1921";
+        src = fetchFromGitHub {
+          owner = "chachi";
+          repo = "cuda-mode";
+          rev = "9ae9eacfdba3559b5456342d0d03296290df8ff5";
+          sha256 = "1ms0z5zplcbdwwdbgsjsbm32i57z9i2i8j9y3wm0pwzyz4zr36zy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cuda-mode";
+          sha256 = "0ip4vax93x72bjrh6prik6ddmrvszpsmgm0fxfz772rp24smc300";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cuda-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cursor-test = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "cursor-test";
+        ename = "cursor-test";
+        version = "20131207.932";
+        src = fetchFromGitHub {
+          owner = "ainame";
+          repo = "cursor-test.el";
+          rev = "e09956e048b88fd2ee8dd90b5678baed8b04d31b";
+          sha256 = "0wmnhizv4jfcl1w9za4ydxf6xwxgm5vwmn1zi5vn70zmv4d6r49l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cursor-test";
+          sha256 = "1c1d5xq4alamlwyqxjx557aykz5dw87acp0lyglsrzzkdynbwlb1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cursor-test";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cwl-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , yaml-mode }:
+      melpaBuild {
+        pname = "cwl-mode";
+        ename = "cwl-mode";
+        version = "20171205.145";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "cwl-mode";
+          rev = "2fa8c8db68a8665ed555126975edd8749bcfc009";
+          sha256 = "0zgnnvf8k5zcigykcf6slgcjmwb1l0jdfaqm19r34wp3md8wf0v1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cwl-mode";
+          sha256 = "0x8akxxmphpgsc2m78h6b0fs6vvcfvmi1q2jrz8hwlmai8f7zi9j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/cwl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cyberpunk-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "cyberpunk-theme";
+        ename = "cyberpunk-theme";
+        version = "20180608.2209";
+        src = fetchFromGitHub {
+          owner = "n3mo";
+          repo = "cyberpunk-theme.el";
+          rev = "f8967e46b8bdb3eaf7b72474f2d70997dc1152e9";
+          sha256 = "0vrkb07vh5b1azih86s0j917frdp5g6qg1pipddcr6lacgb7n0zl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cyberpunk-theme";
+          sha256 = "0l2bwb5afkkhrbh99v2gns1vil9s5911hbnlq5w35nmg1wvbmbc9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cyberpunk-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cycbuf = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "cycbuf";
+        ename = "cycbuf";
+        version = "20131203.1237";
+        src = fetchFromGitHub {
+          owner = "martinp26";
+          repo = "cycbuf";
+          rev = "1079b41c3eb27d65b66d4399959bb6253f84858e";
+          sha256 = "1d5i8sm1xrsp4v4myidfyb40hm3wp7hgva7dizg9gbb7prmn1p5w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cycbuf";
+          sha256 = "0gyj48h5wgjawqq3j4hgk5a8d23nffmhd1q53kg7b9vfsda51hbw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cycbuf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cycle-resize = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "cycle-resize";
+        ename = "cycle-resize";
+        version = "20160521.857";
+        src = fetchFromGitHub {
+          owner = "pierre-lecocq";
+          repo = "cycle-resize";
+          rev = "7d255d6fe85f12c967a0f7fcfcf18633be194c88";
+          sha256 = "1bmdjr99g50dzr4y1jxixfjhqmhrzblmpiyjhh5l5gqmdhammm4k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cycle-resize";
+          sha256 = "0vp57plwqx4nf3pbv5g4frjriq8niiia9xc3bv6c3gzd4a0zm7xi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cycle-resize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cycle-themes = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "cycle-themes";
+        ename = "cycle-themes";
+        version = "20150402.2009";
+        src = fetchFromGitHub {
+          owner = "toroidal-code";
+          repo = "cycle-themes.el";
+          rev = "2660c3178be7b28c2cb5dde2dd70a4bd51dae3a2";
+          sha256 = "0wc9wssridy49vshwj7xgrcfmalrv1r9wlr8nvs9d8m3ds39dzh6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cycle-themes";
+          sha256 = "1whp9q26sgyf59wygbrvdf9gc94bn4dmhr2f2qivpajx550fjfbc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/cycle-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cyphejor = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cyphejor";
+        ename = "cyphejor";
+        version = "20171231.2218";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "cyphejor";
+          rev = "d2faf26420ac16c4056f6eda067b845d33e102cd";
+          sha256 = "0vg0n8xcqiv28i3xmnxzji77dbnyxrld4ncdzpa3hpc1j92s9a09";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cyphejor";
+          sha256 = "18l5km4xm5j3vv19k3fxs8i3rg4qnhrvx7b62vmyfcqmpiasrh6g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cyphejor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cypher-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "cypher-mode";
+        ename = "cypher-mode";
+        version = "20151110.342";
+        src = fetchFromGitHub {
+          owner = "fxbois";
+          repo = "cypher-mode";
+          rev = "ce8543d7877c736c574a17b49874c9dcdc7a06d6";
+          sha256 = "0vbcq807jpjssabmyjcdkpp6nnx1288is2c6x79dkrviw2xxw3qf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cypher-mode";
+          sha256 = "174rfbm7yzkznkfjmh9bdnm5fgqv9bjwm85h39317pv1g8c3mgv0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cypher-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cython-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "cython-mode";
+        ename = "cython-mode";
+        version = "20180213.854";
+        src = fetchFromGitHub {
+          owner = "cython";
+          repo = "cython";
+          rev = "9f3f99fd6378ffb17976d74356fd3ba7e22f85b3";
+          sha256 = "164ksml3i5gmcwripjsn5byfvnnjf86wrkkd9saw481ym6imii3c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cython-mode";
+          sha256 = "0asai1f1pncrfxx296fn6ky09hj1qam5j0dpxxkzhy0a34xz0k2i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cython-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    czech-holidays = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "czech-holidays";
+        ename = "czech-holidays";
+        version = "20160113.952";
+        src = fetchFromGitHub {
+          owner = "hydandata";
+          repo = "czech-holidays";
+          rev = "d19828122cf3322bcf50601cefa4ac385d2d8f82";
+          sha256 = "1ykcsfh5pj6b7ywdfggs8iqzfax0fyjnmr0ba76xwsj0vdrk3072";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/czech-holidays";
+          sha256 = "10c0zscbn7pr9xqdqksy4kh0cxjg9bhw8p4qzlk18fd4c8rhqn84";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/czech-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    d-mode = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "d-mode";
+        ename = "d-mode";
+        version = "20181011.1227";
+        src = fetchFromGitHub {
+          owner = "Emacs-D-Mode-Maintainers";
+          repo = "Emacs-D-Mode";
+          rev = "385cda4afad79000b4cb7704861faf34009b0fc2";
+          sha256 = "13g4kr380h8vb56x6inp8zcjhj7r1p73hr08jcc6lbbx228cw07n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/d-mode";
+          sha256 = "060k9ndjx0n5vlpzfxlv5zxnizx72d7y9vk7gz7gdvpm6w2ha0a2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/d-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dactyl-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dactyl-mode";
+        ename = "dactyl-mode";
+        version = "20140906.1025";
+        src = fetchFromGitHub {
+          owner = "luxbock";
+          repo = "dactyl-mode";
+          rev = "cc55fe6b987271d9647492b8df4c812d884f661f";
+          sha256 = "0fp40cyamchc9qq5vbpxgq3yp6vs8p3ncg46mjzr54psy3fc86dm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dactyl-mode";
+          sha256 = "0ppcabddcpwshfd04x42nbrbkagbyi1bg4vslysnlxn4kaxjs7pm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dactyl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dad-joke = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "dad-joke";
+        ename = "dad-joke";
+        version = "20170927.2358";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "dad-joke.el";
+          rev = "bee47e7b746b403228fa7d7361cb095de19ac9ba";
+          sha256 = "14snnnjs28jg6k8x6g90m3dbcx10306ipcd256d3l6czk9p17vpd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dad-joke";
+          sha256 = "1cg8iaq79w5zx1s3dirdl7ymcp162mmsy5c4vly90v20yrijblad";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dad-joke";
+          license = lib.licenses.free;
+        };
+      }) {};
+    daemons = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "daemons";
+        ename = "daemons";
+        version = "20180610.810";
+        src = fetchFromGitHub {
+          owner = "cbowdon";
+          repo = "daemons.el";
+          rev = "dcf42cb3178d7245d6d49de346d5e2b44e5b7498";
+          sha256 = "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/daemons";
+          sha256 = "14givkrw9p0m261hawahzi0n8jarapb63kv1s62faq57mqnq23jr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/daemons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dakrone-light-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "dakrone-light-theme";
+        ename = "dakrone-light-theme";
+        version = "20170808.1440";
+        src = fetchFromGitHub {
+          owner = "dakrone";
+          repo = "dakrone-light-theme";
+          rev = "06f198dc8b4ca7421990b30a23d89c8e0b8c5de4";
+          sha256 = "01vqlsv44h2ah79c8jqv8vkqvgmhqx2w3qbq07l7fx3zkpgjfmpy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dakrone-light-theme";
+          sha256 = "1njlpvfa4ar14zn51fdmby55vjgfkpskizg5rif2f3zn6y4np2xw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dakrone-light-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dakrone-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dakrone-theme";
+        ename = "dakrone-theme";
+        version = "20170801.1233";
+        src = fetchFromGitHub {
+          owner = "dakrone";
+          repo = "dakrone-theme";
+          rev = "232ad1be5f3572dcbdf528f1655109aa355a6937";
+          sha256 = "0p51zni42hv090vv6mk9v0v88achmgxlsmlr40y8y6ng57w51r4s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dakrone-theme";
+          sha256 = "0ma4rfmgwd6k24jzn6pgk46b88jfix7mz0ib7c7r90h5vmpiq814";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dakrone-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    danneskjold-theme = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "danneskjold-theme";
+        ename = "danneskjold-theme";
+        version = "20181101.57";
+        src = fetchFromGitHub {
+          owner = "rails-to-cosmos";
+          repo = "danneskjold-theme";
+          rev = "5c55c2ced259e8bbf658b23fc0cb74946caa009e";
+          sha256 = "14zrqvfx4243qd1ziqm76irnwgn00dh94qicl1f8bdksyiaz2mvr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/danneskjold-theme";
+          sha256 = "0cwab7qp293g92n9mjjz2vpg1pz2q3d40hfszf29rci89wsf3yxl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/danneskjold-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dante = callPackage ({ dash
+                         , emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , flycheck
+                         , haskell-mode
+                         , lcr
+                         , lib
+                         , melpaBuild
+                         , s }:
+      melpaBuild {
+        pname = "dante";
+        ename = "dante";
+        version = "20180916.29";
+        src = fetchFromGitHub {
+          owner = "jyp";
+          repo = "dante";
+          rev = "f16562abe570f5ca0e7abbf8c7058c81976a921f";
+          sha256 = "07j2fqwggnvsyryyyj6n2dxyzfb35kg1sxxc7bw8n7k7r39r2s4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dante";
+          sha256 = "1j0qwjshh2227k63vd06bvrsccymqssx26yfzams1xf7bp6y0krs";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f flycheck haskell-mode lcr s ];
+        meta = {
+          homepage = "https://melpa.org/#/dante";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dap-mode = callPackage ({ bui
+                            , dash
+                            , dash-functional
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , lsp-mode
+                            , melpaBuild
+                            , s
+                            , tree-mode }:
+      melpaBuild {
+        pname = "dap-mode";
+        ename = "dap-mode";
+        version = "20181026.1213";
+        src = fetchFromGitHub {
+          owner = "yyoncho";
+          repo = "dap-mode";
+          rev = "c99258d944f877bcf778375511582c852e4f3e76";
+          sha256 = "1c564xrx9vp6rzvfxrrwhhnx115rq1gjkvdrnzj5sd60lm1r228c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dap-mode";
+          sha256 = "1vxqgi50wa151k1gc8ja8nma1v2qrinp26lwrn2w2jlihh1jpb3f";
+          name = "recipe";
+        };
+        packageRequires = [
+          bui
+          dash
+          dash-functional
+          emacs
+          f
+          lsp-mode
+          s
+          tree-mode
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/dap-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    darcsum = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "darcsum";
+        ename = "darcsum";
+        version = "20140315.2110";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "darcsum";
+          rev = "5bb38e444cc12940c6933a43792a89accdc2ad0e";
+          sha256 = "11h2i0wn118anb9n3kab2hsv78zpiw4d95jal7c9xzhv6xxrz4g0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/darcsum";
+          sha256 = "0p3hwmwjjqwgkjws5b7gkad4yxh0gs2hr03ar18y43yahwgihvnv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/darcsum";
+          license = lib.licenses.free;
+        };
+      }) {};
+    darcula-theme = callPackage ({ fetchFromGitLab
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "darcula-theme";
+        ename = "darcula-theme";
+        version = "20171227.1045";
+        src = fetchFromGitLab {
+          owner = "fommil";
+          repo = "emacs-darcula-theme";
+          rev = "d9b82b58ded9014985be6658f4ab17e26ed9e93e";
+          sha256 = "1y8rsc63nl4n43pvn283f1vcpqyjnv6xl60fwyscwrqaz19bsnl1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/darcula-theme";
+          sha256 = "1n9mpkdyf5jpxc5azfs38ccp9p0b5ii87sz4c7z4khs94y0gxqh3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/darcula-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dark-krystal-theme = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "dark-krystal-theme";
+        ename = "dark-krystal-theme";
+        version = "20170808.600";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-dark-krystal-theme";
+          rev = "79084b99665dc9ffb0ec62cc092349a5ecebebbc";
+          sha256 = "1d3cdsaba71qxdqrbj1jrlq8a0iw3h50l5grcdjvxixdnf5nsa4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dark-krystal-theme";
+          sha256 = "056aql35502sgvdpbgphpqdxzbjf4ay01rra6pm11c1dya8avv0j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dark-krystal-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dark-mint-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "dark-mint-theme";
+        ename = "dark-mint-theme";
+        version = "20160301.2242";
+        src = fetchFromGitHub {
+          owner = "shaunvxc";
+          repo = "dark-mint-theme";
+          rev = "c8ad39b7115baf889b54c3e9bffe32daeab93c29";
+          sha256 = "1bz7n9ijk69kqc1sv74prm2d74gd4xj0vzkbgbwdsin1llkg00zv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dark-mint-theme";
+          sha256 = "0rljpwycarbn8rnac9vz7n23j69wmx35gn5dx77v0f0ws8ni4k9m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dark-mint-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dark-souls = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dark-souls";
+        ename = "dark-souls";
+        version = "20140314.428";
+        src = fetchFromGitHub {
+          owner = "tomjakubowski";
+          repo = "dark-souls.el";
+          rev = "2c9437265b52f966b2fb13a410a12f3b1e167cb7";
+          sha256 = "0d4zjbkzjcvlc1jaszicbln0dvwacbj6k1fb1bn34vgbabhckdys";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dark-souls";
+          sha256 = "1ilsn657mpl7v8vkbzqf3gp0gmvy0dgynfsn8w4cb49qaiy337xc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dark-souls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    darkburn-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "darkburn-theme";
+        ename = "darkburn-theme";
+        version = "20170423.952";
+        src = fetchFromGitHub {
+          owner = "gorauskas";
+          repo = "darkburn-theme";
+          rev = "b59053533246330e9107721da7977a0af312c915";
+          sha256 = "1ffmip31dnv3zzh1h9cpchl6lya49zn2j13acx6rj9r01ndlbrar";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/darkburn-theme";
+          sha256 = "18hwdnwmkf640vcyx8d66i424wwazbzjq3k0w0xjmwsn2mpyhm9w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/darkburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    darkmine-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "darkmine-theme";
+        ename = "darkmine-theme";
+        version = "20160405.2324";
+        src = fetchFromGitHub {
+          owner = "pierre-lecocq";
+          repo = "darkmine-theme";
+          rev = "7f7e82ca03bcad52911fa41fb3e204e32d6ee63e";
+          sha256 = "0d2g4iyp8gyfrcc1gkvl40p1shlw1sadswzhry0m1lgbyxiiklrz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/darkmine-theme";
+          sha256 = "06vzldyqlmfd11g8dqrqh5x244ikfa20qwpsmbgsiry3041k8iw5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/darkmine-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    darkokai-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "darkokai-theme";
+        ename = "darkokai-theme";
+        version = "20181019.1159";
+        src = fetchFromGitHub {
+          owner = "sjrmanning";
+          repo = "darkokai";
+          rev = "b887fc6080f8e021058bff7f53fad84c82c81a7a";
+          sha256 = "1rjpzf6n9vclyqfdz1nqaf9ky2jhk9jn1jmx9h2bd4kil9bjbyrm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/darkokai-theme";
+          sha256 = "0jw71xl4ihkyq4m0w8c35x5hr8ic07wcabmvpwmvspnj8hkfccwf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/darkokai-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    darktooth-theme = callPackage ({ autothemer
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "darktooth-theme";
+        ename = "darktooth-theme";
+        version = "20181013.206";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-theme-darktooth";
+          rev = "780f9e25ae4abccab4e053f2caba7add4bc9d3be";
+          sha256 = "0y19dzr9qd5qxvp8yjgrcawji7ahqcpqy0cbyy4hjbzi48si6126";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/darktooth-theme";
+          sha256 = "1vss0mg1vz4wvsal1r0ya8lid2c18ig11ip5v9nc80b5slbixzvs";
+          name = "recipe";
+        };
+        packageRequires = [ autothemer ];
+        meta = {
+          homepage = "https://melpa.org/#/darktooth-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dart-mode = callPackage ({ cl-lib ? null
+                             , dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , flycheck
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "dart-mode";
+        ename = "dart-mode";
+        version = "20181011.2046";
+        src = fetchFromGitHub {
+          owner = "bradyt";
+          repo = "dart-mode";
+          rev = "5d0a7cd09305d2dc4584e72a008db3f099228000";
+          sha256 = "1zy0h5bjmfw7qhck1lmwjfi2qg2bl6bipbyc733p2xcxys3sbk8k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dart-mode";
+          sha256 = "0zpvp86067a6l63wrpqxsm9fhv3n4ggbq8pg21vgiz54hk4x1xpp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs flycheck s ];
+        meta = {
+          homepage = "https://melpa.org/#/dart-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dash = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "dash";
+        ename = "dash";
+        version = "20180910.1156";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "dash.el";
+          rev = "6514359b8606a6a9a94068ccd601fcd6379d6584";
+          sha256 = "0s90f0j7x194k0w1iryd2clrvx992l9cy54w2iq83nw1z40fbg0i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dash";
+          sha256 = "0azm47900bk2frpjsgy108fr3p1jk4h9kmp4b5j5pibgsm26azgz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dash-at-point = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dash-at-point";
+        ename = "dash-at-point";
+        version = "20180710.656";
+        src = fetchFromGitHub {
+          owner = "stanaka";
+          repo = "dash-at-point";
+          rev = "4d795a23a8428c421d5107f1b005c9d8e0d1816c";
+          sha256 = "09rxyr22qxc9pdrkg0c4smifh2r797ggz5hg74q8j8jybvixsbls";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dash-at-point";
+          sha256 = "0x4nq42nbh2qgbg111lgbknc7w7m7lxd14mp9s8dcrpwsaxz960m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dash-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dash-functional = callPackage ({ dash
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "dash-functional";
+        ename = "dash-functional";
+        version = "20180107.818";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "dash.el";
+          rev = "528e5a51f1af668e3075f2beccd2b39785ccb2ba";
+          sha256 = "0c65wkyzqsi0jignbhl0j9hh0711069x0l54sqbfb72viy0sppck";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dash-functional";
+          sha256 = "0hx36hs12mf4nmskaaqrqpcgwrfjdqj6qcxn6bwb0s5m2jf9hs8p";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dash-functional";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dashboard = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , page-break-lines }:
+      melpaBuild {
+        pname = "dashboard";
+        ename = "dashboard";
+        version = "20180902.1148";
+        src = fetchFromGitHub {
+          owner = "rakanalh";
+          repo = "emacs-dashboard";
+          rev = "caef4564d50cc00b748d98f6180f26d4036cc8c6";
+          sha256 = "1q1q3ns7729icyp05dq2kvjall93wc85ws0d480fjk36vf4fc9dw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dashboard";
+          sha256 = "08pdpjfrg8v80gljy146cwpz624dshhbz8843zl1zszwp2p00kqy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs page-break-lines ];
+        meta = {
+          homepage = "https://melpa.org/#/dashboard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    date-at-point = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "date-at-point";
+        ename = "date-at-point";
+        version = "20150308.543";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "date-at-point.el";
+          rev = "258c0268cc4357640c2af78774ba9667beff28ee";
+          sha256 = "0cry52p29lr4lcwvpl96gam85m7d9jkskwmysb71mk6cg57zyjx5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/date-at-point";
+          sha256 = "0r26df6px6q5jlxj29nhl3qbp6kzy9hs5vd72kpiirgn4wlmagp0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/date-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    date-field = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , log4e
+                              , melpaBuild
+                              , yaxception }:
+      melpaBuild {
+        pname = "date-field";
+        ename = "date-field";
+        version = "20141128.1705";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-date-field";
+          rev = "3b0af9c49293fc4346078ed2e13a6ebf41bbe54e";
+          sha256 = "1skvkbbqvwbw58ahdbf2m1z7s0kfi5v7c0lavc9ifrs91pqpqx9z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/date-field";
+          sha256 = "0fmw13sa4ajs1xkrkdpcjpbp0jl9d81cgvwh93myg8yjjn7wbmvk";
+          name = "recipe";
+        };
+        packageRequires = [ dash log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/date-field";
+          license = lib.licenses.free;
+        };
+      }) {};
+    datetime = callPackage ({ emacs
+                            , extmap
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "datetime";
+        ename = "datetime";
+        version = "20181021.1050";
+        src = fetchFromGitHub {
+          owner = "doublep";
+          repo = "datetime";
+          rev = "178befd4881f407ad97c05fadb74589ade7297f2";
+          sha256 = "12f5jv6x3lm08lz674783cqppr9khi56s028zc6bndq3qc797h4d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/datetime";
+          sha256 = "0c000fnqg936dhjw5qij4lydzllw1x1jgnyy960zh6r61pk062xj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs extmap ];
+        meta = {
+          homepage = "https://melpa.org/#/datetime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    datetime-format = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "datetime-format";
+        ename = "datetime-format";
+        version = "20160612.1015";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "emacs-datetime";
+          rev = "e6427538b547cbe02e1bd6ed4b765c73620bdae8";
+          sha256 = "1573z8wq5m8qzbzmnsz2fmbwrj9c0ava0jjfchzmwm2b3jyvqh5r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/datetime-format";
+          sha256 = "19qccjz2lzh01glgkixya7bxd6pvyjqgmw8bmqlwag6cb68bwsyv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/datetime-format";
+          license = lib.licenses.free;
+        };
+      }) {};
+    datomic-snippets = callPackage ({ dash
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "datomic-snippets";
+        ename = "datomic-snippets";
+        version = "20180817.345";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "datomic-snippets";
+          rev = "4a14228840d5252e13d2bf6209670f26345bbb84";
+          sha256 = "1nvng479sy7ykwy9a86qq48yzv8n0903g724srhf42v9c81fc9s7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/datomic-snippets";
+          sha256 = "0lax0pj4k9c9n0gmrvil240pc9p25535q3n5m8nb2ar4sli8dn8r";
+          name = "recipe";
+        };
+        packageRequires = [ dash s yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/datomic-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dayone = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , ht
+                          , lib
+                          , melpaBuild
+                          , mustache
+                          , uuid }:
+      melpaBuild {
+        pname = "dayone";
+        ename = "dayone";
+        version = "20160105.440";
+        src = fetchFromGitHub {
+          owner = "mori-dev";
+          repo = "emacs-dayone";
+          rev = "ab628274f0806451f23bce16f62a6a11cbf91a2b";
+          sha256 = "1j0mk8vyr6sniliq0ix77jldx8vzl73nd5yhh82klzgyymal58ms";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dayone";
+          sha256 = "0hi09dj00h6g5r84jxglwkgbijhfxknx4mq5gcl5jzjis5affk8l";
+          name = "recipe";
+        };
+        packageRequires = [ ht mustache uuid ];
+        meta = {
+          homepage = "https://melpa.org/#/dayone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    db = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , kv
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "db";
+        ename = "db";
+        version = "20140421.1411";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-db";
+          rev = "b3a423fb8e72f9013009cbe033d654df2ce31438";
+          sha256 = "0syv4kr319d34yqi4q61b8jh5yy22wvd148x1m3pc511znh2ry5k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/db";
+          sha256 = "05jhga9n6gh1bmj8gda14sb703gn7jgjlvy55mlr5kdb2z3rqw1n";
+          name = "recipe";
+        };
+        packageRequires = [ kv ];
+        meta = {
+          homepage = "https://melpa.org/#/db";
+          license = lib.licenses.free;
+        };
+      }) {};
+    db-pg = callPackage ({ db
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pg }:
+      melpaBuild {
+        pname = "db-pg";
+        ename = "db-pg";
+        version = "20130131.1102";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-db-pg";
+          rev = "7d5ab86b74b05fe003b3b434d4835f37f3f3eded";
+          sha256 = "15r0qwjkl33p8kh2k5kxz9wnbkv1k470b1h0i6svvljkx9ynk68a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/db-pg";
+          sha256 = "06nfibw01ijv7nr0m142y80jbbpg9kk1dh19s5wq7i6fqf7g08xg";
+          name = "recipe";
+        };
+        packageRequires = [ db pg ];
+        meta = {
+          homepage = "https://melpa.org/#/db-pg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ddskk = callPackage ({ ccc
+                         , cdb
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "ddskk";
+        ename = "ddskk";
+        version = "20180706.2232";
+        src = fetchFromGitHub {
+          owner = "skk-dev";
+          repo = "ddskk";
+          rev = "cb727af4ca4e119be6e9509f14bfd61d9c6b758a";
+          sha256 = "0qpgj1zvx2y8rmba4pqiypqi6dalg5lalhfafcvhsnnz1553fp7n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ddskk";
+          sha256 = "01pb00p126q7swsl12yjrhghln2wgaj65jhjr0k7dkk64x4psyc9";
+          name = "recipe";
+        };
+        packageRequires = [ ccc cdb ];
+        meta = {
+          homepage = "https://melpa.org/#/ddskk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    deadgrep = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s
+                            , spinner }:
+      melpaBuild {
+        pname = "deadgrep";
+        ename = "deadgrep";
+        version = "20181021.649";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "deadgrep";
+          rev = "4e177d7c540f0a6d317f08a15dcfec6ba97609fc";
+          sha256 = "1fjdv9vknisb7ik4f90bwr0vanv24qqw3svn0j959n5pl3h99z8w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/deadgrep";
+          sha256 = "01m5ds7lic9g11a5iwzw86k6xcv56wbbzjm1343ckbbi255h9i09";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s spinner ];
+        meta = {
+          homepage = "https://melpa.org/#/deadgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    debian-el = callPackage ({ fetchgit
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "debian-el";
+        ename = "debian-el";
+        version = "20181020.813";
+        src = fetchgit {
+          url = "https://salsa.debian.org/emacsen-team/debian-el.git";
+          rev = "a499822afc2154ca83edf6a605ed22c5a932fa12";
+          sha256 = "0bfgh6v0q93lfd0q628r11jd45cys89z4874a19w61cb0mfpvks0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/debian-el";
+          sha256 = "0x74a4nm2p4w82kzrdqy90969sminsrhdzppld2mg63jg0wxb8ga";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/debian-el";
+          license = lib.licenses.free;
+        };
+      }) {};
+    debpaste = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , xml-rpc }:
+      melpaBuild {
+        pname = "debpaste";
+        ename = "debpaste";
+        version = "20160113.1547";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "debpaste.el";
+          rev = "038f0ff7824f4e3dd455e2232eeca70fa8abcec5";
+          sha256 = "1darxggvyv100cfb7imyzvgif8a09pnky62pf3bl2612hhvaijfb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/debpaste";
+          sha256 = "0h3hx3vgdhchmndabmzprddq3bxd80jnv4xvma9v6k1v07bl721v";
+          name = "recipe";
+        };
+        packageRequires = [ xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/debpaste";
+          license = lib.licenses.free;
+        };
+      }) {};
+    debug-print = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "debug-print";
+        ename = "debug-print";
+        version = "20140125.1619";
+        src = fetchFromGitHub {
+          owner = "kenoss";
+          repo = "debug-print";
+          rev = "d817fd9ea2d3f8d2c1ace4d8af155684f3a99dc5";
+          sha256 = "1n99nrp42slmyp5228d1nz174bysjn122jgs8fn1x0qxywg7jyxp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/debug-print";
+          sha256 = "01dsqq2qdsbxny6j9dhvg770493awxjhk1m85c14ysgh6sl199rm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/debug-print";
+          license = lib.licenses.free;
+        };
+      }) {};
+    decide = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "decide";
+        ename = "decide";
+        version = "20180316.1101";
+        src = fetchFromGitHub {
+          owner = "lifelike";
+          repo = "decide-mode";
+          rev = "257f0e39ac60ca375942950b44eeaee04cb9d961";
+          sha256 = "0hiv3wlqidj1qd8z5jy800spzrpbca2vgq4zg1lkzvbcmhqvcqqm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/decide";
+          sha256 = "1gjkays48lhrifi9jwja5n2dpxjbl7f9rmka1nsqg9vf7s59vhhc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/decide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    decl = callPackage ({ cl-lib ? null
+                        , dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "decl";
+        ename = "decl";
+        version = "20171212.658";
+        src = fetchFromGitHub {
+          owner = "preetpalS";
+          repo = "decl.el";
+          rev = "f16b96e322c646d6018dfbd3c3ba8b2b75fcb9e1";
+          sha256 = "07zg8grnqxg27fpksy8b94ry25ljrkag4ffq15d78k8nqmqmf3b8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/decl";
+          sha256 = "0wdhmp226wmrjvjgpbz8ihvhxxv3rrxh97sdqm3mgsav3n071n6k";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/decl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dedicated = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "dedicated";
+        ename = "dedicated";
+        version = "20090428.1231";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "dedicated";
+          rev = "8275fb672f9cc4ba6682ebda0ef91db827e32992";
+          sha256 = "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dedicated";
+          sha256 = "1ka8n02r3nd2ksbid23g2qd6707c7xsjx7lbbdi6pcmwam5mglw9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dedicated";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dedukti-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dedukti-mode";
+        ename = "dedukti-mode";
+        version = "20171103.512";
+        src = fetchFromGitHub {
+          owner = "rafoo";
+          repo = "dedukti-mode";
+          rev = "d7c3505a1046187de3c3aeb144455078d514594e";
+          sha256 = "1842wikq24c8rg0ac84vb1qby9ng1nssxswyyni4kq85lng5lcrp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dedukti-mode";
+          sha256 = "17adfmrhfks5f45ddr6ygjq870ac50vfzc5872ycv414zg0w4sa9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dedukti-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    default-text-scale = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "default-text-scale";
+        ename = "default-text-scale";
+        version = "20180520.2349";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "default-text-scale";
+          rev = "512d701df5e2079cad33329184fd7683c3b0b0af";
+          sha256 = "1zwrjlaxsxx7snyvyklhrchkbqg14lhr9xk7rhhik8fp4dy4f5yj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/default-text-scale";
+          sha256 = "18r90ic38fnlsbg4gi3r962vban398x2bf3rqhrc6z4jk4aiv3mi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/default-text-scale";
+          license = lib.licenses.free;
+        };
+      }) {};
+    deferred = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "deferred";
+        ename = "deferred";
+        version = "20170901.630";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-deferred";
+          rev = "2239671d94b38d92e9b28d4e12fd79814cfb9c16";
+          sha256 = "0vz59lm7pfz0gbsgrb44y555js85wbdjn0zm6p8wfqjiqf63ds3i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/deferred";
+          sha256 = "1i8jfapzmw86iqwhnnlqmcj6zh4hyhizdcwjxcnxdj6kvxmwyysm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/deferred";
+          license = lib.licenses.free;
+        };
+      }) {};
+    define-word = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "define-word";
+        ename = "define-word";
+        version = "20180706.1329";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "define-word";
+          rev = "637cd29837d4bd5567e17a11a479fd2edfb0e2c1";
+          sha256 = "1gni89sgs7bnl0h42jyqcph9mhgingybwcmf29j8zm440zii5f9p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/define-word";
+          sha256 = "035fdfwnxw0mir1dyvrimygx2gafcgnvlcsmwmry1rsfh39n5b9a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/define-word";
+          license = lib.licenses.free;
+        };
+      }) {};
+    defproject = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "defproject";
+        ename = "defproject";
+        version = "20151201.1419";
+        src = fetchFromGitHub {
+          owner = "kotfic";
+          repo = "defproject";
+          rev = "674d48a5e34cb4bba76faa38ee901322ec649086";
+          sha256 = "07jzr571q02l0lg5d40rnmzg16hmybi1nkjgslmvlx46z3c4xvyr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/defproject";
+          sha256 = "1gld2fkssrjh4smpp54017549d6aw3n1zisp5s4kkb6cmszwj5gm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/defproject";
+          license = lib.licenses.free;
+        };
+      }) {};
+    defrepeater = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "defrepeater";
+        ename = "defrepeater";
+        version = "20180829.2110";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "defrepeater.el";
+          rev = "62b00ede57d2e115b9ef9f21268c021ae1186873";
+          sha256 = "106q2h4djcf1q9v31wmimj59fiqmclgxw13s8zjnhv3sc2m3z1ka";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/defrepeater";
+          sha256 = "1zlp206dy5qipb7m3m77j4har258rxgwxg5ipflym4jj183maa39";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/defrepeater";
+          license = lib.licenses.free;
+        };
+      }) {};
+    deft = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "deft";
+        ename = "deft";
+        version = "20181028.1913";
+        src = fetchFromGitHub {
+          owner = "jrblevin";
+          repo = "deft";
+          rev = "47d268355b0d988804e19896770b29da7f01c7aa";
+          sha256 = "0650ij691d3ljp2ajnx69czy55lkj9xrkwr3fnr8a905439m2yw9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/deft";
+          sha256 = "0f6z9hsigbwdsmg0abk1ddl9j19d0rpj4gzkl0d5arcpqbla26hp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/deft";
+          license = lib.licenses.free;
+        };
+      }) {};
+    delim-kill = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "delim-kill";
+        ename = "delim-kill";
+        version = "20100516.2320";
+        src = fetchFromGitHub {
+          owner = "thomas11";
+          repo = "delim-kill";
+          rev = "1dbe47344f2d2cbc8c54beedf0cf0bf10fd203c1";
+          sha256 = "06a20sd8nc273azrgha40l1fbqvv9qmxsmkjiqbf6dcf1blkwjyf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/delim-kill";
+          sha256 = "1pplc456771hi52ap1p87y7pabxlvm6raszcxjvnxff3xzw56pig";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/delim-kill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    demangle-mode = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "demangle-mode";
+        ename = "demangle-mode";
+        version = "20180515.1945";
+        src = fetchFromGitHub {
+          owner = "liblit";
+          repo = "demangle-mode";
+          rev = "374c84a0b190f0f0ea76b956035003228077d1e0";
+          sha256 = "02z2mjillglyv65ijdlc62hbjddp3xv185xg7s93xz7ymg04c394";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/demangle-mode";
+          sha256 = "0ky0bb6rc99vrdli4lhs656qjndnla9b7inc2ji9l4n1zki5qxzk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/demangle-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    demo-it = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "demo-it";
+        ename = "demo-it";
+        version = "20180403.2032";
+        src = fetchFromGitHub {
+          owner = "howardabrams";
+          repo = "demo-it";
+          rev = "4f74e6f1bb6519587303e20fe59470853b1a0352";
+          sha256 = "15j4f7jjjhrcjycxwzqnwqhm3fyvjnisd41k5lw13dnhbmp1gzx6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/demo-it";
+          sha256 = "063v115xy9mcga4qv16v538k12rn9maz92khzwa35wx56bwz4gg7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/demo-it";
+          license = lib.licenses.free;
+        };
+      }) {};
+    describe-number = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , yabin }:
+      melpaBuild {
+        pname = "describe-number";
+        ename = "describe-number";
+        version = "20151031.1755";
+        src = fetchFromGitHub {
+          owner = "netromdk";
+          repo = "describe-number";
+          rev = "40618345a37831804b29589849a785ef5aa5ac24";
+          sha256 = "13fasbhdjwc4jh3cy25gm5sbbg56hq8la271098qpx6dhqm2wycq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/describe-number";
+          sha256 = "0gvriailni2ppz69g0bwnb1ik1ghjkj341k45vllz30j0frp9iji";
+          name = "recipe";
+        };
+        packageRequires = [ yabin ];
+        meta = {
+          homepage = "https://melpa.org/#/describe-number";
+          license = lib.licenses.free;
+        };
+      }) {};
+    desktop-environment = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "desktop-environment";
+        ename = "desktop-environment";
+        version = "20180423.153";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "desktop-environment";
+          rev = "62fbceded526b8e35c90803bcf80e33ebfe8473a";
+          sha256 = "1j2kvdj3k9amj93w8cbh49rbf3vhnkbisw67hjhif62ajc19ip4k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/desktop-environment";
+          sha256 = "0iai1awpkv4n8k263854mx95c8yh2vvif6z91mgn6hck8774v9zp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/desktop-environment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    desktop-plus = callPackage ({ dash
+                                , emacs
+                                , f
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "desktop-plus";
+        ename = "desktop+";
+        version = "20170107.1332";
+        src = fetchFromGitHub {
+          owner = "ffevotte";
+          repo = "desktop-plus";
+          rev = "d26f369bda96860eef18365cdb5c79f39a2c765c";
+          sha256 = "19z44rm2071hq3664gngywhr7k4wcbdzbixmwjl2x0sp0bdzg2v6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/desktop+";
+          sha256 = "0w7i6k4814hwb19l7ly9yq59674xiw57ylrwxq7yprwx52sgs2r8";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/desktop+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    desktop-registry = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "desktop-registry";
+        ename = "desktop-registry";
+        version = "20140119.1343";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "desktop-registry";
+          rev = "244c2e7f9f0a1050aa8a47ad0b38f4e4584682dd";
+          sha256 = "11qvhbz7149vqh61fgqqn4inw0ic6ib9lz2xgr9m54pdw9a901mp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/desktop-registry";
+          sha256 = "1sfj0w6hlrx37js63fn1v5xc9ngmahv07g42z68717md6w3c8g0v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/desktop-registry";
+          license = lib.licenses.free;
+        };
+      }) {};
+    devdocs = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "devdocs";
+        ename = "devdocs";
+        version = "20170731.150";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "DevDocs.el";
+          rev = "a2d51e824f0cc48a9dd611cc740bc8b86143e611";
+          sha256 = "0nzh7pgvj4cs5d29lrrmbas29xdslgqzsqjmpapzqzbnrgprnbx8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/devdocs";
+          sha256 = "14vab71fy5i1ccmzgfdg37lfs1ix3qwhcyk9lvbahcmwnbnimlzm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/devdocs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dfmt = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "dfmt";
+        ename = "dfmt";
+        version = "20170728.323";
+        src = fetchFromGitHub {
+          owner = "qsimpleq";
+          repo = "elisp-dfmt";
+          rev = "21b9094e907b7ac53f5ecb4ff4539613a9d12434";
+          sha256 = "11r1i8nlz98z49fqb447abg1pv6838q54ly19wyg82k52875ms7m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dfmt";
+          sha256 = "06g9yimw6q4wl2prspr8vjyv2pxk8bb0451wplpp70h5ajfwy3dz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dfmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dhall-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dhall-mode";
+        ename = "dhall-mode";
+        version = "20181103.1809";
+        src = fetchFromGitHub {
+          owner = "psibi";
+          repo = "dhall-mode";
+          rev = "1fa48e3aaa1623f2ac3d63a0681f3fb9343fee7a";
+          sha256 = "1nbn4m5glawl6y4iaay9z57dg3ic7by89s6r6viyfqpsm7yimg92";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dhall-mode";
+          sha256 = "1zkspjwllcw9k4nlnif6jdwzl08ki39vmx90apw029n87xhvx7mp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dhall-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diary-manager = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "diary-manager";
+        ename = "diary-manager";
+        version = "20181026.1922";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "diary-manager";
+          rev = "1960f854073d37ac0ba6855efda833a790263ee2";
+          sha256 = "0y8fhxwf8a1k6rz929vds5skvv5iniis60inaklf5ym8f3hf5462";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diary-manager";
+          sha256 = "1sk0pvadx4jmv93dj796ysn3jh2wvywayd7dd20v22kdvnlii73d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/diary-manager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dic-lookup-w3m = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , stem
+                                  , w3m }:
+      melpaBuild {
+        pname = "dic-lookup-w3m";
+        ename = "dic-lookup-w3m";
+        version = "20180526.921";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "dic-lookup-w3m";
+          rev = "3254ab10cbf0078c7162557dd1f68dac28459cf9";
+          sha256 = "0g8kzaxjka7n9jdldh45m22nizgv0m0v94ns7vmmhf1hpsf3zfxz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dic-lookup-w3m";
+          sha256 = "1kwbmzzf8sj4bn5kicmlp2hzv8ydcikwmdy7s40ggkgf1mk9zvqr";
+          name = "recipe";
+        };
+        packageRequires = [ stem w3m ];
+        meta = {
+          homepage = "https://melpa.org/#/dic-lookup-w3m";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dictcc = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , ivy
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "dictcc";
+        ename = "dictcc";
+        version = "20171213.1334";
+        src = fetchFromGitHub {
+          owner = "cqql";
+          repo = "dictcc.el";
+          rev = "a77cf1fadadcbde762466970b503c8a8916b35b2";
+          sha256 = "0aaah14nc8ajqhbjmwp7257k2n8ay6g87spb734kxfs8irzg52fa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dictcc";
+          sha256 = "0x1y742hb3dm7xmh5810dlqki38kybw68rmg9adcchm2rn86jqlm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/dictcc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dictionary = callPackage ({ connection
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , link
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dictionary";
+        ename = "dictionary";
+        version = "20140717.2029";
+        src = fetchFromGitHub {
+          owner = "myrkr";
+          repo = "dictionary-el";
+          rev = "a23b8f4a422d0de69a006ed010eff5795319db98";
+          sha256 = "0gz03hji6mcrzvxd74qim63g159sc8ggb6hq3x42x5l01g980fbm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dictionary";
+          sha256 = "0zr9sm5rmr0frxdr0za72wiffip9391fn9dm5y5x0aj1z4c1n28w";
+          name = "recipe";
+        };
+        packageRequires = [ connection link ];
+        meta = {
+          homepage = "https://melpa.org/#/dictionary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diff-hl = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "diff-hl";
+        ename = "diff-hl";
+        version = "20180201.355";
+        src = fetchFromGitHub {
+          owner = "dgutov";
+          repo = "diff-hl";
+          rev = "190622d3fa2c3237529ec073a8fa00aee06023a1";
+          sha256 = "0jh270anr2ralixgwsc3wn48jnw3qwz6m18lg0sgwgzyajh0fpb9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diff-hl";
+          sha256 = "135jgjfaiq6kj72ji5k22v4pqc8gjjmcv80r5rkjbjigzlvcvvj2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/diff-hl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    difflib = callPackage ({ cl-generic
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , ht
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "difflib";
+        ename = "difflib";
+        version = "20171227.718";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "difflib.el";
+          rev = "b08850251812d71e62fd6956081299590acdf37b";
+          sha256 = "03k5iy610f1m2nmkdk69p49fcfqfyxmy3h6fqvqsr2v1hix8i54a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/difflib";
+          sha256 = "07bm5hib3ihrrx0lhfsl6km9gfckl73qd4cb37h93zw0hc9xwhy6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-generic emacs ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/difflib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diffscuss-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "diffscuss-mode";
+        ename = "diffscuss-mode";
+        version = "20141014.1657";
+        src = fetchFromGitHub {
+          owner = "tomheon";
+          repo = "diffscuss";
+          rev = "bbc6dbed4b97d1eb9ae5dae021ed1e066129bd98";
+          sha256 = "0ppsgfzmdg0r418n2x0qxwhyqs7hjj8fgazc4xzgs8fsg4j3h7mr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diffscuss-mode";
+          sha256 = "1mycjis38gqwha7jgj05fzv0041ghk6khy5d2dlcyy2nh3bb68rb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/diffscuss-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diffview = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "diffview";
+        ename = "diffview";
+        version = "20150928.2211";
+        src = fetchFromGitHub {
+          owner = "mgalgs";
+          repo = "diffview-mode";
+          rev = "031b70913e755c5e55222680f80185032a7d1728";
+          sha256 = "0diw887x4q7kbgdvxbbnxdw51z33kqwxw3v9m45fczxbywyi4cxf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diffview";
+          sha256 = "0vlzmykvxjwjww313brl1nr13kz41jypsk0s3l8q3rbsnkpfic5k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/diffview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    digistar-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "digistar-mode";
+        ename = "digistar-mode";
+        version = "20160218.1155";
+        src = fetchFromGitHub {
+          owner = "retroj";
+          repo = "digistar-mode";
+          rev = "15288b1e1a04b79b5ab7097fdd26d48b2ff41076";
+          sha256 = "0qxdfv1p0140fqcxh677hhxwpx1fihvwhvh76pysn4q4pcfr6ldr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/digistar-mode";
+          sha256 = "0khzxlrm09h31i1nqz6rnzhrdssb3kppc4klpxza612l306fih0s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/digistar-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    digit-groups = callPackage ({ dash
+                                , fetchhg
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "digit-groups";
+        ename = "digit-groups";
+        version = "20160816.1926";
+        src = fetchhg {
+          url = "https://bitbucket.com/adamsmd/digit-groups";
+          rev = "ee1d6de37260";
+          sha256 = "0rkajjlw820gfx1kclkcvdq7milhiid2yzvn9hd275ydskrhhwlp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/digit-groups";
+          sha256 = "1wy1hf15qi9v0wz2rykpf40v3g2n4mha6h207m0zn8l8rb79hwjq";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/digit-groups";
+          license = lib.licenses.free;
+        };
+      }) {};
+    digitalocean = callPackage ({ emacs
+                                , fetchFromGitLab
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , request }:
+      melpaBuild {
+        pname = "digitalocean";
+        ename = "digitalocean";
+        version = "20180603.225";
+        src = fetchFromGitLab {
+          owner = "olymk2";
+          repo = "emacs-digitalocean";
+          rev = "1cac663c4bcb7f8325783954df6c0caf3dc20f6e";
+          sha256 = "0iinc4c3bpqqwp077437hl4z1ja7fwc1qq2ldbi7xbz4cn819f2l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/digitalocean";
+          sha256 = "086v4wrzkjgjks6lfp2hn97pcbplxmc7y7bbiriw4gixgqds6yx9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/digitalocean";
+          license = lib.licenses.free;
+        };
+      }) {};
+    digitalocean-helm = callPackage ({ digitalocean
+                                     , emacs
+                                     , fetchFromGitLab
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "digitalocean-helm";
+        ename = "digitalocean-helm";
+        version = "20180610.46";
+        src = fetchFromGitLab {
+          owner = "olymk2";
+          repo = "emacs-digitalocean-helm";
+          rev = "b125c9882eded7d73ec109d152b26625f333440b";
+          sha256 = "072v1800gjv566fqjxp8dvzkilwhbvl7lc5fqc0mr4xw8lpldkx9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/digitalocean-helm";
+          sha256 = "0q1ir6i9x1ql5c8vg1bff9px2jpwb0rxfiavk9fj3mqbjdifrz0w";
+          name = "recipe";
+        };
+        packageRequires = [ digitalocean emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/digitalocean-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dim = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "dim";
+        ename = "dim";
+        version = "20160818.249";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "dim.el";
+          rev = "110624657fec0c8a7b3589108230e6a635302ae0";
+          sha256 = "1qiqkppfpgyqm1z31i956gj96670kjxs7m33knmhngqk7i5yc94i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dim";
+          sha256 = "0gsyily47g3g55qmhp1wzfz319l1pkgjz4lbigafjzlzqxyclz52";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dim-autoload = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dim-autoload";
+        ename = "dim-autoload";
+        version = "20180318.1327";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "dim-autoload";
+          rev = "2ff7ded0c9f8bb582fb9018bea47ead44d048cf8";
+          sha256 = "0lbfgfx3015b1kspqrsnlpvzl7i06yxafj1i2lpcy7ay4fv5rp54";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dim-autoload";
+          sha256 = "0lhzzjrgfvbqnzwhjywrk3skdb7x10xdq7d21q6kdk3h5r0np9f9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dim-autoload";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diminish = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "diminish";
+        ename = "diminish";
+        version = "20170419.1036";
+        src = fetchFromGitHub {
+          owner = "myrjola";
+          repo = "diminish.el";
+          rev = "d5c61a14e1a5590a65f83c099a5bd42fcadff24d";
+          sha256 = "0c0p4b3nfnczmkjx64qz2w9dk0b7srfnhrnd902qn9z55k4n0wg8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diminish";
+          sha256 = "1h6a31jllypk47akjflz89xk6h47na96pim17d6g4rpqcafc2k43";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/diminish";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dimmer = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "dimmer";
+        ename = "dimmer";
+        version = "20180217.2011";
+        src = fetchFromGitHub {
+          owner = "gonewest818";
+          repo = "dimmer.el";
+          rev = "a418acf718697b5b1824856c9872aa7f4075b96d";
+          sha256 = "1rqga5mc2yapxsnk16fcpaj8vjxb6w6mbjxm59vv9l5ddkfagfsf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dimmer";
+          sha256 = "0w8n5svckk1jp8856pg2gkws9798prqjjkdqf8ili2hjcqnd1a3r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dimmer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dionysos = callPackage ({ alert
+                            , cl-lib ? null
+                            , dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , libmpdee
+                            , melpaBuild
+                            , pkg-info
+                            , s }:
+      melpaBuild {
+        pname = "dionysos";
+        ename = "dionysos";
+        version = "20160810.356";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "dionysos";
+          rev = "98bc789d20e41020d6e62d63d3c78f8032fa4bf2";
+          sha256 = "1hma72dyn3w6cwd3vrgg4hdlrxgwqs55cjyxb05vs9csz7r42208";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dionysos";
+          sha256 = "1wjgj74dnlwd79gc3l7ymbx75jka8rw9smzbb10dsfppw3rrzfmz";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib dash libmpdee pkg-info s ];
+        meta = {
+          homepage = "https://melpa.org/#/dionysos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dircmp = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "dircmp";
+        ename = "dircmp";
+        version = "20141204.956";
+        src = fetchFromGitHub {
+          owner = "matthewlmcclure";
+          repo = "dircmp-mode";
+          rev = "558ee0b601c2de9d247612085aafe2926f56a09f";
+          sha256 = "0mcsfsybpsxhzkd2m9bzc0np49azm6qf5x4x9h9lbxc8vfgh4z8s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dircmp";
+          sha256 = "0cnj7b0s8vc83sh9sai1cldw54krk5qbz1qmlvvd1whryf2pc95c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dircmp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-atool = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dired-atool";
+        ename = "dired-atool";
+        version = "20180302.2340";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "dired-atool";
+          rev = "b92e0106827d34fa686e189c7e9a537a3a947a8b";
+          sha256 = "1i40zd7y1jf9skr3wi2zqv4awrgff244p1h89r707aq67v1j19yk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-atool";
+          sha256 = "0qljx6fmz1hal9r2smjyc957wcvcpg16vp5mv65ip6d26k5qsj0w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-atool";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-avfs = callPackage ({ dash
+                              , dired-hacks-utils
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dired-avfs";
+        ename = "dired-avfs";
+        version = "20161012.404";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "dired-hacks";
+          rev = "bef0c7eb03474defa02bbba5c15401a766c8ff7c";
+          sha256 = "1l7kay58ix9gmn06nws04f642svy0s1zplh86m7ihq4b6jb04hxj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-avfs";
+          sha256 = "1q42pvrpmd525887iicd3m5gw4w2a78xb72v7fjfl30ay1kir4bm";
+          name = "recipe";
+        };
+        packageRequires = [ dash dired-hacks-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-avfs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-collapse = callPackage ({ dash
+                                  , dired-hacks-utils
+                                  , f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "dired-collapse";
+        ename = "dired-collapse";
+        version = "20180724.944";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "dired-hacks";
+          rev = "3fd347a0823312e966872bd0d26d9a75b2898c9c";
+          sha256 = "01q93n4b9js29r2grk53206f7blwp2pjyz8lf98x184f2sdrz9k7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-collapse";
+          sha256 = "1k8h5cl8r68rnr1a3jnbc0ydflzm5mad7v7f1q60wks5hv61dsd1";
+          name = "recipe";
+        };
+        packageRequires = [ dash dired-hacks-utils f ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-collapse";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-dups = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dired-dups";
+        ename = "dired-dups";
+        version = "20130527.1425";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "dired-dups";
+          rev = "694ad128c822c59348ced16c4a0c1356d43da47a";
+          sha256 = "1lcmpzwj43gix2q56bh2gw3gfqh8vl5j3mqr8s7v3k0aw816j0ni";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-dups";
+          sha256 = "05s02gw8b339yvsr7vvka1r2140y7mbjzs8px4kn4acgb5y7rk71";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-dups";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-efap = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dired-efap";
+        ename = "dired-efap";
+        version = "20140122.856";
+        src = fetchFromGitHub {
+          owner = "juan-leon";
+          repo = "dired-efap";
+          rev = "624757b2e54d9a13e2183118d6c113e37684b90c";
+          sha256 = "0jj9da880b4zwxba140fldai1x9p2sxc6hdf3wz6lnbvz1pyn1mv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-efap";
+          sha256 = "01j5v6584qi8ia7zmk03kx3i3kmm6hn6ycfgqlh5va6lp2h9sr00";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-efap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-explorer = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "dired-explorer";
+        ename = "dired-explorer";
+        version = "20180606.1921";
+        src = fetchFromGitHub {
+          owner = "jidaikobo-shibata";
+          repo = "dired-explorer";
+          rev = "3ade0a31b5340271d05e9bf443f2504960f6c6dd";
+          sha256 = "0lbm326na005k3pa11rqq5nbhvm55dydi2a7fzs3bzlqwbx7d6fq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-explorer";
+          sha256 = "12mymmcl663ci543vqzg8jai8kgfbb3gw5wsbcm4ln3j8d5fgzd9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-explorer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-fdclone = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dired-fdclone";
+        ename = "dired-fdclone";
+        version = "20180402.2308";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "dired-fdclone.el";
+          rev = "903d7a736d240ef7352989a4e5d0ff9129c2ee3c";
+          sha256 = "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-fdclone";
+          sha256 = "11aikq2q3m9h4zpgl24f8npvpwd98jgh8ygjwy2x5q8as8i89vf9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-fdclone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-filetype-face = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "dired-filetype-face";
+        ename = "dired-filetype-face";
+        version = "20180907.639";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "dired-filetype-face";
+          rev = "7ade7f7e8c2d7518c65f3f0343a10c272da0f47e";
+          sha256 = "0s8mqz331iw2bk4xdvj9zljklqj8dxv0yaw100lddg37qmdf7lgl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-filetype-face";
+          sha256 = "1g9wzkkqmlkxlxwx43446q9mlam035zwq0wzpf7m6394rw2xlwx6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-filetype-face";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-filter = callPackage ({ cl-lib ? null
+                                , dash
+                                , dired-hacks-utils
+                                , f
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dired-filter";
+        ename = "dired-filter";
+        version = "20180922.407";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "dired-hacks";
+          rev = "65ccc2487e87b11bc7ca1c0d3118003dcfd0a71b";
+          sha256 = "1fzzyp0lizk5avz96aa4k9yrabljjv69x9462fdxfpjh7hyb5zqf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-filter";
+          sha256 = "1mw94210i57wrqfyif6rh689xbwbpv1qp6bgc0j7z6g4xypvd52p";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash dired-hacks-utils f ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-filter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-hacks-utils = callPackage ({ dash
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "dired-hacks-utils";
+        ename = "dired-hacks-utils";
+        version = "20160527.1436";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "dired-hacks";
+          rev = "9bb7100d80b96bdfa2154c2b2f509d5b9f6cd7cd";
+          sha256 = "1pxvfrkxr4x0vbp313lhbwhrqhsv8kj3b8sbx89sym8f8fdn33js";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-hacks-utils";
+          sha256 = "1vgl0wqf7gc2nbiqjn0rkrdlnxfm3wrgspx5b3cixv2n8rqx8kyi";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-hacks-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-hide-dotfiles = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "dired-hide-dotfiles";
+        ename = "dired-hide-dotfiles";
+        version = "20170314.1339";
+        src = fetchFromGitHub {
+          owner = "mattiasb";
+          repo = "dired-hide-dotfiles";
+          rev = "b715f643ec805b3b8aca334595e6589320f04a49";
+          sha256 = "1n6l25lrhp1x8nhc54kqal96wq96kkfyvz5yzvlw1qd3yk4s567i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-hide-dotfiles";
+          sha256 = "0yy131cvj9a9sz02ari7pzwf22r5y7acyg757h3jvih317v6jyp0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-hide-dotfiles";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-icon = callPackage ({ emacs
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dired-icon";
+        ename = "dired-icon";
+        version = "20170222.2126";
+        src = fetchFromGitLab {
+          owner = "xuhdev";
+          repo = "dired-icon";
+          rev = "f60e10757a5011235b519231ad35974ff25963ed";
+          sha256 = "0r9qmr2l5kjwh1frp0k87nyaf13f7f9fjjf9yf9z92djqapfm9dd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-icon";
+          sha256 = "0nyiqcywc1p8kw3psisl4zxwmf2g0x82kanka85zxxdz15s509j1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-icon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-imenu = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dired-imenu";
+        ename = "dired-imenu";
+        version = "20140109.810";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "dired-imenu";
+          rev = "610e21fe0988c85931d34894d3eee2442c79ab0a";
+          sha256 = "088h9yn6wndq4pq6f7q4iz17f9f4ci29z9nh595idljp3vwr7qid";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-imenu";
+          sha256 = "09yix4fkr03jq6j2rmvyg6gkmcnraw49a8m9649r3m525qdnhxs1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-imenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-k = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "dired-k";
+        ename = "dired-k";
+        version = "20170313.803";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-dired-k";
+          rev = "c50e8f73358060a448bff66db2d330b52bbeffc1";
+          sha256 = "14yvsv7cvfviszii0bj0qf094rmnwzssinrqrkpxg4jil2n4bb9d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-k";
+          sha256 = "0lghdmy9qcjykscfxvfrz8cpp87qc0vfd03vw8nfpvwcs2sd28i8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-k";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-launch = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dired-launch";
+        ename = "dired-launch";
+        version = "20180607.1141";
+        src = fetchFromGitHub {
+          owner = "thomp";
+          repo = "dired-launch";
+          rev = "ad45940f76ef2f6c3bb55e998829b311de191dae";
+          sha256 = "057nqlvqnq30gxfidmynp33040bgdq4gbwk0qdm294c5ap2af5yj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-launch";
+          sha256 = "0vhf0iai60mp8sp7snishz6nrw0bcriq4cx64f41lk1adjb2mqaw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-launch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-narrow = callPackage ({ dash
+                                , dired-hacks-utils
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dired-narrow";
+        ename = "dired-narrow";
+        version = "20181114.923";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "dired-hacks";
+          rev = "c7184dc8f6ed3f2330db8d8f21f01c4b08056dd3";
+          sha256 = "1i5a6srd3fpqdvvhyv0swybznimx9ilpm3sd76ha3shispyij1x5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-narrow";
+          sha256 = "1rgqiscbizalh78jwc53zbj599dd13a6vzdgf75vzllc1w7jsg6d";
+          name = "recipe";
+        };
+        packageRequires = [ dash dired-hacks-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-narrow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-open = callPackage ({ dash
+                              , dired-hacks-utils
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dired-open";
+        ename = "dired-open";
+        version = "20180922.413";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "dired-hacks";
+          rev = "a45737d3a5aaac6928ebd7af041e5603dffaca64";
+          sha256 = "1bhz0x7sa4a56f5ha8h9w36y5pirvzhkhczyfwf4z74j4z5z44sm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-open";
+          sha256 = "0a4ksz2jkva4gvhprywjc1fzrbf95xdk8gn25nv1h1c1ckhr91qx";
+          name = "recipe";
+        };
+        packageRequires = [ dash dired-hacks-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-open";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-quick-sort = callPackage ({ fetchFromGitLab
+                                    , fetchurl
+                                    , hydra
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "dired-quick-sort";
+        ename = "dired-quick-sort";
+        version = "20161208.1312";
+        src = fetchFromGitLab {
+          owner = "xuhdev";
+          repo = "dired-quick-sort";
+          rev = "1845f978d313f750a5b70b832457ed803c4ffbdb";
+          sha256 = "014frvpszixn8cx7rdx704glmjbslv3py3kw0pb0xqf50k4scynf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-quick-sort";
+          sha256 = "01vrk3wqq2zmcblyp9abi2lvrzr2a5ca8r8gjjnr5223037ppl3l";
+          name = "recipe";
+        };
+        packageRequires = [ hydra ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-quick-sort";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-rainbow = callPackage ({ dash
+                                 , dired-hacks-utils
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dired-rainbow";
+        ename = "dired-rainbow";
+        version = "20171202.1448";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "dired-hacks";
+          rev = "edea7534b36297211fe1c0e493220a5cc1bdec93";
+          sha256 = "1g05r0krgyyj91digvd07vn6qi9m8yigj6w97bg8zgcsrxhlmc07";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-rainbow";
+          sha256 = "1b9yh8p2x1dg7dyqhjhnqqiiymyl6bwsam65j0lpvbdx8r4iw882";
+          name = "recipe";
+        };
+        packageRequires = [ dash dired-hacks-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-rainbow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-ranger = callPackage ({ dash
+                                , dired-hacks-utils
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dired-ranger";
+        ename = "dired-ranger";
+        version = "20180401.1506";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "dired-hacks";
+          rev = "89af4f12ce4a0692c9c9824eacf56875ca86cb36";
+          sha256 = "0nyc17b029ksa6aai5890g6ainncixgig9cnjjp7khcifmrrpw9s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-ranger";
+          sha256 = "19lbbzqflqda5b0alqfzdhpbgqssghqb4n4viq8x4l1fac8mby6h";
+          name = "recipe";
+        };
+        packageRequires = [ dash dired-hacks-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-ranger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-recent = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dired-recent";
+        ename = "dired-recent";
+        version = "20180921.1538";
+        src = fetchFromGitHub {
+          owner = "Vifon";
+          repo = "dired-recent.el";
+          rev = "b67f0fd346b03012f3c31d0a979d16290140557b";
+          sha256 = "0nnaxynvwz346mr26l1whkd6myynr5fl0mhih3q1bkwsd93s0k4q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-recent";
+          sha256 = "1qvw7m6wzahc0xmf37cyl9lv1k9442j0kkzx6dl6f0wclw0v6hgs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-recent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-rifle = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dired-rifle";
+        ename = "dired-rifle";
+        version = "20181012.1431";
+        src = fetchFromGitHub {
+          owner = "Vifon";
+          repo = "dired-rifle.el";
+          rev = "a4f7b1e798397688b9c00d3507fcd395ece17a40";
+          sha256 = "09jp54drbx1hb4fj6bzh8ava7nk56pp500xsa9712vscg1f38fpz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-rifle";
+          sha256 = "1x6i68i7f1c3k0w3w4zph16s046ccajyb2641fx0j8dl5367qgbc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-rifle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-rsync = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "dired-rsync";
+        ename = "dired-rsync";
+        version = "20180906.302";
+        src = fetchFromGitHub {
+          owner = "stsquad";
+          repo = "dired-rsync";
+          rev = "e112bf22c913d1491bb2149250be866ceb1806ff";
+          sha256 = "0q9q2b5ffwld87zs26nkkbim9zrpp3m4vf63lnqnbfzpgybx3b5m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-rsync";
+          sha256 = "0lykj7nfpaspwn90macvr7iir4jlrx88i0s9spii7iic2fnm51ql";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-rsync";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-sidebar = callPackage ({ dired-subtree
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dired-sidebar";
+        ename = "dired-sidebar";
+        version = "20181111.940";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "dired-sidebar";
+          rev = "f7782416e5e8e5018f775106dc61dd3a4e5dda84";
+          sha256 = "0vl5rpdgr0p5airh7l4glc03hghb0rmjgdxgk1l1g4a58m8cbhga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-sidebar";
+          sha256 = "19a4gsx9wmpc94jd992c7dj5mxfnnij2nc6qnb2lhk8ad69h1lmc";
+          name = "recipe";
+        };
+        packageRequires = [ dired-subtree emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-sidebar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-single = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dired-single";
+        ename = "dired-single";
+        version = "20180823.2012";
+        src = fetchFromGitHub {
+          owner = "crocket";
+          repo = "dired-single";
+          rev = "b0ccca83df0542c5525c047ae283c0eadf500f5c";
+          sha256 = "14q8lp1x1b78ra9mk90n6dyrm1j9ny5pr7valgpkg8agqyqn7xmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-single";
+          sha256 = "13h8dsn7bkz8ji2rrb7vyrqb2znxarpiynqi65mfli7dn5k086vf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-single";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-subtree = callPackage ({ dash
+                                 , dired-hacks-utils
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dired-subtree";
+        ename = "dired-subtree";
+        version = "20180922.915";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "dired-hacks";
+          rev = "c5e9dcdf2ee6fd5660e2bfbb8c635674053df7c9";
+          sha256 = "1qcsklrvs8dajj7nyhd70ql4df3ayjkgxyf8ldm48ajms5qslkfb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-subtree";
+          sha256 = "1vqcnkh3g6dwi2hwfkb534q0j19pkqzqk3yb7ah8ck4z4ln4ppfk";
+          name = "recipe";
+        };
+        packageRequires = [ dash dired-hacks-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-subtree";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-toggle = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dired-toggle";
+        ename = "dired-toggle";
+        version = "20140907.1349";
+        src = fetchFromGitHub {
+          owner = "fasheng";
+          repo = "dired-toggle";
+          rev = "84efb9ec9c327e4da53cdb7cda5b51dcd0ede0e5";
+          sha256 = "1yx20h16hc1b04knsqhrxni0j8qgwnq7i5b0dlggq3dakcvqfxma";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-toggle";
+          sha256 = "18v571kp440n5g1d7pj86rr8dgbbm324f9vblkdbdvn13c5dczf5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-toggle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-toggle-sudo = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "dired-toggle-sudo";
+        ename = "dired-toggle-sudo";
+        version = "20151109.206";
+        src = fetchFromGitHub {
+          owner = "renard";
+          repo = "dired-toggle-sudo";
+          rev = "02449dbda4e168f99fe5352c9628df5d39e11483";
+          sha256 = "0ajj8d6k5in2hclcrqckinfh80ylddplva0ryfbkzsjkfq167cv2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-toggle-sudo";
+          sha256 = "0fy05af9aq9791ij4j9pscdk5j44pbg0kmhpqli41qiazjw7v2va";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-toggle-sudo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diredfl = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "diredfl";
+        ename = "diredfl";
+        version = "20180210.1814";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "diredfl";
+          rev = "9b2a89951cee8bdf5c0cb67f9c3ad6ac73abf9cb";
+          sha256 = "0x4qhxysmcwllkbia6xkfmlpddxhfxxvawywp57zs8c00193nn1z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diredfl";
+          sha256 = "0cybq15yq07x2mnrnwapy020d598yymcy8y9wwf1m7f59p3h9hvn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/diredfl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diredful = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "diredful";
+        ename = "diredful";
+        version = "20160529.1317";
+        src = fetchFromGitHub {
+          owner = "thamer";
+          repo = "diredful";
+          rev = "b17b3087e0084a5571a9ac4d47ccfc36d96b109e";
+          sha256 = "1d8n8wj5k82a1sfg93kn3ajci804mpp9j206x5f185zd48wb25z8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diredful";
+          sha256 = "0y8x6q1yfsk0srxsh4g5nbsms1g9pk9d103jx7cfdac79mcigw7x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/diredful";
+          license = lib.licenses.free;
+        };
+      }) {};
+    direnv = callPackage ({ dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , with-editor }:
+      melpaBuild {
+        pname = "direnv";
+        ename = "direnv";
+        version = "20180513.123";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "emacs-direnv";
+          rev = "6cf079fe8171bdf4bebefe02e8353d7f13847ebd";
+          sha256 = "0vw9s70h5zjz5k225mzm893sv5pdb4lz5x7fc4r98iva0wipldgn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/direnv";
+          sha256 = "0zzmi5m6fh42kyf8dyjrjyrl03pkbipnh4mnssrhp83ljczxkyhd";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs with-editor ];
+        meta = {
+          homepage = "https://melpa.org/#/direnv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    direx = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "direx";
+        ename = "direx";
+        version = "20170422.627";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "direx-el";
+          rev = "a79bfdb5980cf6ed7bfb3b41ddc471a7b6c0ede4";
+          sha256 = "0fl9hdnrq54awx43635p6pmc8bqyppa02gs1d76nifi0q4g9v4m7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/direx";
+          sha256 = "1x3rnrhhyrrvgry9n7kc0734la1zp4gc4bpy50f2qpfd452jwqdm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/direx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    direx-grep = callPackage ({ direx
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "direx-grep";
+        ename = "direx-grep";
+        version = "20140515.806";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "direx-grep";
+          rev = "1109a512a80b2673a70b18b8568514049017faad";
+          sha256 = "0swdh0qynpijsv6a2d308i42hfa0jwqsnmf4sm8vrhaf3vv25f5h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/direx-grep";
+          sha256 = "0y2wrzq06prm55akwgaqjg56znknyvbayav13asirqzg258skvm2";
+          name = "recipe";
+        };
+        packageRequires = [ direx ];
+        meta = {
+          homepage = "https://melpa.org/#/direx-grep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dirtree = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , tree-mode
+                           , windata }:
+      melpaBuild {
+        pname = "dirtree";
+        ename = "dirtree";
+        version = "20140129.32";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "dirtree";
+          rev = "ba55f1e716e386fdd37cb8e7f48616e405dc7251";
+          sha256 = "0abs3r4zzfnf4igiakrv3bpyxz7qlnw26l57rynsk7c3w3s5ya29";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dirtree";
+          sha256 = "1fm003rix3sdfx8fq3ab5s8b2q65gbkjsn1j3fg5qmhv56p7lrs9";
+          name = "recipe";
+        };
+        packageRequires = [ tree-mode windata ];
+        meta = {
+          homepage = "https://melpa.org/#/dirtree";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dirtree-prosjekt = callPackage ({ dirtree
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , prosjekt }:
+      melpaBuild {
+        pname = "dirtree-prosjekt";
+        ename = "dirtree-prosjekt";
+        version = "20140129.104";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "prosjekt";
+          rev = "03e06910589ba5cd736868793eb436b3233c6a26";
+          sha256 = "06fw9730djlv86jj8nhd1ll9mi4z53qwn6yqpqxciqqlz64pvzid";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dirtree-prosjekt";
+          sha256 = "0pyb6c0gvc16z5rc5h0kpl8021hz2hzv86cmjsd20gbhz7imrqwk";
+          name = "recipe";
+        };
+        packageRequires = [ dirtree prosjekt ];
+        meta = {
+          homepage = "https://melpa.org/#/dirtree-prosjekt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    disable-mouse = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "disable-mouse";
+        ename = "disable-mouse";
+        version = "20171226.1715";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "disable-mouse";
+          rev = "541363bd6353b8b05375552bab884a6315ea545c";
+          sha256 = "1grs3cz2zdw49frvxy4vc1z3ld804kk5g2ad6ln5grprcd188bz9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/disable-mouse";
+          sha256 = "0c0ps39s6wg3grspvgck0cwxnas73nfaahfa87l0mmgsrsvas5m7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/disable-mouse";
+          license = lib.licenses.free;
+        };
+      }) {};
+    disaster = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "disaster";
+        ename = "disaster";
+        version = "20171016.1452";
+        src = fetchFromGitHub {
+          owner = "jart";
+          repo = "disaster";
+          rev = "10a785facc60d89d78e0d5177985ab1af1741bb4";
+          sha256 = "0iz43jdkh5qdllqdchliys84gn9bpj6688rpc4jnycp64141m6cx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/disaster";
+          sha256 = "1ad8q81n0s13cwmm216wqx3s92195pda1amc4wxvpb3lq7dbd3yn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/disaster";
+          license = lib.licenses.free;
+        };
+      }) {};
+    discourse = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , request
+                             , s }:
+      melpaBuild {
+        pname = "discourse";
+        ename = "discourse";
+        version = "20160911.119";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "discourse-api";
+          rev = "a86c7e608851e186fe12e892a573994f08c8e65e";
+          sha256 = "1p4crd7v94hmqzqh8bc7jx1pfhallmj4kn36f8l22z4r2mkyycxc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/discourse";
+          sha256 = "0j11pyly7qni3gqgywd9bkzfm1dfvhbfjc7pls9n9s26nbqdzcw9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib request s ];
+        meta = {
+          homepage = "https://melpa.org/#/discourse";
+          license = lib.licenses.free;
+        };
+      }) {};
+    discover = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , makey
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "discover";
+        ename = "discover";
+        version = "20140103.1339";
+        src = fetchFromGitHub {
+          owner = "mickeynp";
+          repo = "discover.el";
+          rev = "bbfda2b4e429985a8fa7971d264c942767cfa816";
+          sha256 = "0qxw30zrlcxhxb0alrgyiclrk44dysal8xsbz2mvgrb6jli8wg18";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/discover";
+          sha256 = "1hf57p90jn1zzhjl63zv9ascbgkcbr0p0zmd3fvzpjsw84235dga";
+          name = "recipe";
+        };
+        packageRequires = [ makey ];
+        meta = {
+          homepage = "https://melpa.org/#/discover";
+          license = lib.licenses.free;
+        };
+      }) {};
+    discover-clj-refactor = callPackage ({ clj-refactor
+                                         , discover
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "discover-clj-refactor";
+        ename = "discover-clj-refactor";
+        version = "20150328.759";
+        src = fetchFromGitHub {
+          owner = "maio";
+          repo = "discover-clj-refactor.el";
+          rev = "3fbd5c1162739e606d7cf5d4f5d7426547d99647";
+          sha256 = "0l2g58f55p8zmzv2q2hf163ggm9p0wk8hg93wlkyldrgyb94dgf4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/discover-clj-refactor";
+          sha256 = "08bz60fxcgzab77690mmv0f7wdxcpygmasazcss427k37z9ysm7r";
+          name = "recipe";
+        };
+        packageRequires = [ clj-refactor discover ];
+        meta = {
+          homepage = "https://melpa.org/#/discover-clj-refactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    discover-js2-refactor = callPackage ({ discover
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , js2-refactor
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "discover-js2-refactor";
+        ename = "discover-js2-refactor";
+        version = "20140129.752";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "discover-js2-refactor";
+          rev = "3812abf61f39f3e73a9f3daefa6fed4f21a429ba";
+          sha256 = "1vnbn4asz3lifscvy4shzisl6r0gkgq0qsa3kpgif3853wcd2rvn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/discover-js2-refactor";
+          sha256 = "139zq66cpcn4dnidf22h7x88p812ywrrz4c3c62w3915b75f71ki";
+          name = "recipe";
+        };
+        packageRequires = [ discover js2-refactor ];
+        meta = {
+          homepage = "https://melpa.org/#/discover-js2-refactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    discover-my-major = callPackage ({ fetchgit
+                                     , fetchurl
+                                     , lib
+                                     , makey
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "discover-my-major";
+        ename = "discover-my-major";
+        version = "20180605.2211";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/discover-my-major.git";
+          rev = "66081546eac360c83a9c3270db92a2164288b0d0";
+          sha256 = "1v95s15m37785ggs649q5a83jai0bnar1w1hkiaafwbmpzhd7hr7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/discover-my-major";
+          sha256 = "1b10bwhls5bx83hzhqq1ylc2civ3bsivd6db46f3s5hpgvr4q17n";
+          name = "recipe";
+        };
+        packageRequires = [ makey ];
+        meta = {
+          homepage = "https://melpa.org/#/discover-my-major";
+          license = lib.licenses.free;
+        };
+      }) {};
+    disk = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "disk";
+        ename = "disk";
+        version = "20171115.2331";
+        src = fetchFromGitHub {
+          owner = "kensanata";
+          repo = "disk";
+          rev = "283e54e3be7d08f959076240b2ab324e25632137";
+          sha256 = "15fkfl9kjlpsg9p5g0xhm384ipvrzclwxvqk8vz1zixq0wam2ajm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/disk";
+          sha256 = "1jzkqgjw8xl0jc6ssl5bsdjp2dxw88nss6szvjv7frrhsncaq28h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/disk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dispass = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "dispass";
+        ename = "dispass";
+        version = "20140202.731";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "dispass.el";
+          rev = "b6e8f89040ebaaf0e7609b04bc27a8979f0ae861";
+          sha256 = "075gj81rnhrvv061wnldixpfmlsyfbnvacnk107z6f9v3m2m3vl1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dispass";
+          sha256 = "09c9v41rh63hjpdh377rbfvpial33r41dn5bss3632fi34az5l9n";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/dispass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    display-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "display-theme";
+        ename = "display-theme";
+        version = "20140115.756";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "emacs-display-theme";
+          rev = "b180b3be7a74ae4799a14e7e4bc2fe10e3ff7a15";
+          sha256 = "0r560bpgw5p2pfcgkgcrlpp1bprv1f23dl4y5fjk06dg93fgaysa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/display-theme";
+          sha256 = "07nqscmfa6iykll1m6gyiqca1g5ncx3rx468iyf2ahygpvqvnbxa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/display-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dist-file-mode = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "dist-file-mode";
+        ename = "dist-file-mode";
+        version = "20180829.2118";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "dist-file-mode.el";
+          rev = "e1ce8f592bc5d4d86d2f09e334728ac0d524c761";
+          sha256 = "09rp83d81y9mm81isrwvacl21vgah7nhi5r4j2xbp13kgdn7my1w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dist-file-mode";
+          sha256 = "1gbnkb0537gw8flv4gdi4jzb7y9dnbf9cfj2jw8y84axyfzbb4mf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/dist-file-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    distel-completion-lib = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "distel-completion-lib";
+        ename = "distel-completion-lib";
+        version = "20180827.644";
+        src = fetchFromGitHub {
+          owner = "sebastiw";
+          repo = "distel-completion";
+          rev = "acc4c0a5521904203d797fe96b08e5fae4233c7e";
+          sha256 = "0yvp3dwa9mwfyrqla27ycwyjad4bp1267bxv0chxcr4528hnygl3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/distel-completion-lib";
+          sha256 = "0b06z3k30b4x5zpzk0jgcs7kcaix64xx81iskm1kys57r3gskzpa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/distel-completion-lib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    distinguished-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "distinguished-theme";
+        ename = "distinguished-theme";
+        version = "20151216.1215";
+        src = fetchFromGitHub {
+          owner = "Lokaltog";
+          repo = "distinguished-theme";
+          rev = "9b1d25ac59465a5016d187ea84b7614c95a29b3b";
+          sha256 = "03d8zb2is7n2y2z0k6j37cijjc3ndgasxsm9gqyq7drlq9bqwzsm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/distinguished-theme";
+          sha256 = "0h03aqgijrmisbgqga42zlb5yz4x3jn9jgr29rq8canyhayr3rk4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/distinguished-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ditz-mode = callPackage ({ fetchhg
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ditz-mode";
+        ename = "ditz-mode";
+        version = "20150729.240";
+        src = fetchhg {
+          url = "https://bitbucket.com/zondo/ditz-mode";
+          rev = "beac4c1f3b7e";
+          sha256 = "1cbsy4lchl41zmyxfq828cjpl3h2dwvn8xf1qgf2lbscdb6cwbwb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ditz-mode";
+          sha256 = "0shzm9l31n4ffjs1d26ykxsycd478lhlpl8xcwzbjryywg4gf5nd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ditz-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dix = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "dix";
+        ename = "dix";
+        version = "20170224.615";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "dix";
+          rev = "bcc7fd7aef5d25171978c386c620e09d0ba8d2f8";
+          sha256 = "12ny1a89xhjcnz03s1bw96y14kqb2w6cpf2rk8lv6kri7dasfq4n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dix";
+          sha256 = "0c5fmknpy6kwlz7nx0csbbia1maz0szj7yha1p7wq28s3a5426xq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/dix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dix-evil = callPackage ({ dix
+                            , evil
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "dix-evil";
+        ename = "dix-evil";
+        version = "20170105.623";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "dix";
+          rev = "1cfef0d3376a18c78dd1dfc1ac9ac3ad0e8c4475";
+          sha256 = "0p2cvr7mjpag86wacxm6s39y7p118gh2ccqw02jzabwxlfasfbw3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dix-evil";
+          sha256 = "1jscaksnl5qmpqgkjkv6sx56llz0w4p5h7j73c4a1hld94gwklh3";
+          name = "recipe";
+        };
+        packageRequires = [ dix evil ];
+        meta = {
+          homepage = "https://melpa.org/#/dix-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dizzee = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "dizzee";
+        ename = "dizzee";
+        version = "20171201.116";
+        src = fetchFromGitHub {
+          owner = "davidmiller";
+          repo = "dizzee";
+          rev = "e3cf1c2ea5d0fc00747524b6f3c5b905d0a8c8e1";
+          sha256 = "1i32msin8ra963w7af6612d038gxb25m1gj97kbjymjq1r8zbdrv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dizzee";
+          sha256 = "14y10k8s65cyn86m1z77817436m89l0xpwd1wr4d7qp3x2mmn215";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dizzee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    django-commands = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "django-commands";
+        ename = "django-commands";
+        version = "20181029.104";
+        src = fetchFromGitHub {
+          owner = "muffinmad";
+          repo = "emacs-django-commands";
+          rev = "4e6387175b56095e53732cf1d3b3422eb85696fb";
+          sha256 = "1wr1671wn8jpf3qx0y4ymnhapj2v6j5yav50z5dzg8j09n6csssi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/django-commands";
+          sha256 = "17k9bnig2cfnxbbz6k9vdk5k5gzhvn1h5j9wvww7n137c9vv0qmk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/django-commands";
+          license = lib.licenses.free;
+        };
+      }) {};
+    django-manage = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , hydra
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "django-manage";
+        ename = "django-manage";
+        version = "20160818.1912";
+        src = fetchFromGitHub {
+          owner = "gopar";
+          repo = "django-manage";
+          rev = "e72b1cf2fdbb5c624d19169176e60467b4918fe2";
+          sha256 = "0lyi64dfd2njlnf9dzb8i88rrw930jiq99xfn8zmh87y6qy1j79i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/django-manage";
+          sha256 = "0j95g7fps28xhlrikkg61xgpbpf52xb56swmns2qdib6x1xzd6rh";
+          name = "recipe";
+        };
+        packageRequires = [ hydra ];
+        meta = {
+          homepage = "https://melpa.org/#/django-manage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    django-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm-make
+                               , lib
+                               , melpaBuild
+                               , projectile
+                               , s }:
+      melpaBuild {
+        pname = "django-mode";
+        ename = "django-mode";
+        version = "20170522.14";
+        src = fetchFromGitHub {
+          owner = "myfreeweb";
+          repo = "django-mode";
+          rev = "a71b8dd984e7f724b8321246e5c353a4ae5c986e";
+          sha256 = "0xf33ri5phy2mrb1dwvqb8waba33gj9bwmf6jhl6n0ksm43x0z40";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/django-mode";
+          sha256 = "1rdkzqvicjpfh9k66m31ky6jshx9fqw7pza7add36bk6xg8lbara";
+          name = "recipe";
+        };
+        packageRequires = [ helm-make projectile s ];
+        meta = {
+          homepage = "https://melpa.org/#/django-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    django-snippets = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , yasnippet }:
+      melpaBuild {
+        pname = "django-snippets";
+        ename = "django-snippets";
+        version = "20131229.811";
+        src = fetchFromGitHub {
+          owner = "myfreeweb";
+          repo = "django-mode";
+          rev = "f1e6fea8878bebc9bc0b761376a14cd5c9feda0f";
+          sha256 = "16rh2yhpfv0c3arwkcnjz0r2mw3yx7ayys6wkzwgaxvx6nxpa7y1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/django-snippets";
+          sha256 = "1qs9fw104kidbr5zbxc1q71yy033nq3wxh98vvzk4z4fppnd29sw";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/django-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    django-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "django-theme";
+        ename = "django-theme";
+        version = "20131022.202";
+        src = fetchFromGitHub {
+          owner = "andrzejsliwa";
+          repo = "django-theme.el";
+          rev = "86c8142b3eb1addd94a43aa6f1d98dab06401af0";
+          sha256 = "1azf4p6salga7269l0kf13bqlxf9idp0ys8mm20qpyjpj79p5g9w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/django-theme";
+          sha256 = "1rydl857zfpbvd7aziz6h7n3rrh584z2cbfxlss3wgfclzmbyhgf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/django-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    djangonaut = callPackage ({ emacs
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , magit-popup
+                              , melpaBuild
+                              , pythonic
+                              , s }:
+      melpaBuild {
+        pname = "djangonaut";
+        ename = "djangonaut";
+        version = "20180727.844";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "djangonaut";
+          rev = "487dbd19a312cf5b45183df82d5d57f5c5a403a2";
+          sha256 = "1fpbbv5w54r70b1xma36lp3kh5cn184bvq28apll5bd5bclii56y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/djangonaut";
+          sha256 = "0038zqazzhxz82q8l1phxc3aiiwmzksz9c15by9v0apzwpmdkj38";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f magit-popup pythonic s ];
+        meta = {
+          homepage = "https://melpa.org/#/djangonaut";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dkdo = callPackage ({ dkmisc
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "dkdo";
+        ename = "dkdo";
+        version = "20131110.319";
+        src = fetchFromGitHub {
+          owner = "davidkeegan";
+          repo = "dkdo";
+          rev = "fd6bb105e8331fafb6385c5238c988c4c5bbe2da";
+          sha256 = "1nbvdnw9g3zbbb0n2sn2kxfzs5wichhl9qid3qjp8dsiq1wpv459";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dkdo";
+          sha256 = "0p7ybgldjs046jrkkbpli1iicfmblpxfz9lql8m8sz7lpjn7h300";
+          name = "recipe";
+        };
+        packageRequires = [ dkmisc emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dkdo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dkl = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "dkl";
+        ename = "dkl";
+        version = "20161004.1707";
+        src = fetchFromGitHub {
+          owner = "flexibeast";
+          repo = "dkl";
+          rev = "6b4584f86037bda3383960c678d51f340229fb91";
+          sha256 = "1xpidgj5xk0g4ajpglhbhi02s5il8qqcvh2ccf4ac9daa1r34kxp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dkl";
+          sha256 = "0bcv4ld8bfj2sk3sh4j1m9qqybw3l0a6b3d12qwy8lc3b8197lr0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dkl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dklrt = callPackage ({ dkmisc
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , ledger-mode
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "dklrt";
+        ename = "dklrt";
+        version = "20131110.541";
+        src = fetchFromGitHub {
+          owner = "davidkeegan";
+          repo = "dklrt";
+          rev = "4eceed270015b41d24a62a8b71bd239224a63063";
+          sha256 = "063nnln5m42qf190vr2z0ibacyn7n0xkxm3v5vaa4gxdvdwzhshs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dklrt";
+          sha256 = "11ss5x9sxgxp1wx2r1m0vsp5z5qm8m4ww20ybr6bqjw0a1gax561";
+          name = "recipe";
+        };
+        packageRequires = [ dkmisc emacs ledger-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/dklrt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dkmisc = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "dkmisc";
+        ename = "dkmisc";
+        version = "20131110.315";
+        src = fetchFromGitHub {
+          owner = "davidkeegan";
+          repo = "dkmisc";
+          rev = "fe3d49c6f8322b6f89466361acd97585bdfe0608";
+          sha256 = "1nz71g8pb19aqjcb4s94hhn6j30cc04q05kmwvcbxpjb11qqrv49";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dkmisc";
+          sha256 = "0nnbl272hldcmhyj47r463yvj7b06rjdkpkl5xk0gw9ikyja7w0z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dkmisc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dmenu = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "dmenu";
+        ename = "dmenu";
+        version = "20180118.445";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "el-dmenu";
+          rev = "6e492cd4ee4fb39ecda92776707fc270f54d25e7";
+          sha256 = "085ap58qfwr7gvrx68dy72z4ph1mvwka5i7ydx58m1a3bb9rshnw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dmenu";
+          sha256 = "1w1pgaj2yasfhsd1ibvrwy11ykq8v17h913g298h3ycsvqv8gic0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/dmenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dna-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "dna-mode";
+        ename = "dna-mode";
+        version = "20170804.114";
+        src = fetchFromGitHub {
+          owner = "jhgorrell";
+          repo = "dna-mode-el";
+          rev = "471d374de22c33eaddd8e41dd8ae29753fab2f6a";
+          sha256 = "05zsaypyavyn7gs0jk63chkxkm2rl4nbrqgv6zxrbqcar7gv86am";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dna-mode";
+          sha256 = "06vprwv1v4jzqzi2nj9hbhnypnvqxmixls8yf91hzwlk3fdkdywf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dna-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    docbook-snippets = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "docbook-snippets";
+        ename = "docbook-snippets";
+        version = "20150714.925";
+        src = fetchFromGitHub {
+          owner = "jhradilek";
+          repo = "emacs-docbook-snippets";
+          rev = "b06297fdec039a541aaa6312cb328a11062cfab4";
+          sha256 = "1nbm3wzd12rsrhnwlcc6b72b1ala328mfpcp5bwlfcdshw6mfcrq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/docbook-snippets";
+          sha256 = "1ipqfylgiw9iyjc1nckbay890clfkhda81nr00cq06sjmm71iniq";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/docbook-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    docean = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , request }:
+      melpaBuild {
+        pname = "docean";
+        ename = "docean";
+        version = "20180605.1044";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "docean.el";
+          rev = "bbe2298fd21f7876fc2d5c52a69b931ff59df979";
+          sha256 = "1fzs6k76nyz2xjvydks6v6d2ib7qqj181s7c8r57w9ylr2zqfacj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/docean";
+          sha256 = "1mqmn2i9axnv5vnkg9gwfdjpzr6gxx4ia9mcdpm200ix297dg7x9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/docean";
+          license = lib.licenses.free;
+        };
+      }) {};
+    docker = callPackage ({ dash
+                          , docker-tramp
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , json-mode
+                          , lib
+                          , magit-popup
+                          , melpaBuild
+                          , s
+                          , tablist }:
+      melpaBuild {
+        pname = "docker";
+        ename = "docker";
+        version = "20181031.2204";
+        src = fetchFromGitHub {
+          owner = "Silex";
+          repo = "docker.el";
+          rev = "c36bce1bad03833e0d35e260ed1e402c152606ba";
+          sha256 = "1w3p529sdvhsbwilja783rqw06pclcdx8g7ls9501krwm0dzpx9c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/docker";
+          sha256 = "10x05vli7lg1w3fdbkrl34y4mwbhp2c7nqdwnbdy53i81jisw2lk";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          docker-tramp
+          emacs
+          json-mode
+          magit-popup
+          s
+          tablist
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/docker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    docker-api = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , request
+                              , s }:
+      melpaBuild {
+        pname = "docker-api";
+        ename = "docker-api";
+        version = "20160525.20";
+        src = fetchFromGitHub {
+          owner = "Silex";
+          repo = "docker-api.el";
+          rev = "206144346b7fa4165223349cfeb64a75d47ddd1b";
+          sha256 = "0phmpranrgdi2gi89nxr1ii9xbr7h2ccpx1mkpnfxnjlzkdzq2fb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/docker-api";
+          sha256 = "1giqiapm4hf4dhfm3x69qqpir3jg7qz3parhbx88xxqrd1z18my0";
+          name = "recipe";
+        };
+        packageRequires = [ dash request s ];
+        meta = {
+          homepage = "https://melpa.org/#/docker-api";
+          license = lib.licenses.free;
+        };
+      }) {};
+    docker-compose-mode = callPackage ({ dash
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , yaml-mode }:
+      melpaBuild {
+        pname = "docker-compose-mode";
+        ename = "docker-compose-mode";
+        version = "20180324.1052";
+        src = fetchFromGitHub {
+          owner = "meqif";
+          repo = "docker-compose-mode";
+          rev = "c9f131d2c90d652435d407fd36c40feebfed1dad";
+          sha256 = "0d5d46i6hplmy7q2ihbvcrnk9jrwa2mswgbf8yca3m4k44wgk6la";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/docker-compose-mode";
+          sha256 = "1hldddl86h0i1ysxklkr1kyz44lzic1zr68x3vb0mha4n5d6bl5g";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/docker-compose-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    docker-tramp = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "docker-tramp";
+        ename = "docker-tramp";
+        version = "20170206.1925";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "docker-tramp.el";
+          rev = "8e2b671eff7a81af43b76d9dfcf94ddaa8333a23";
+          sha256 = "1lgjvrss25d4hwgygr1amsbkh1l4kgpsdjpxxpyfgil1542haan1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/docker-tramp";
+          sha256 = "19kky80qm68n2izpjfyiy4gjywav7ljcmp101kmziklpqdldgh1w";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/docker-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dockerfile-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , s }:
+      melpaBuild {
+        pname = "dockerfile-mode";
+        ename = "dockerfile-mode";
+        version = "20181104.1000";
+        src = fetchFromGitHub {
+          owner = "spotify";
+          repo = "dockerfile-mode";
+          rev = "7223d92718f78fa3ab15667cdb2ed90cfeb579e7";
+          sha256 = "0hmipgl4rk6aih11i8mnspwdijjiwk2y0wns6lzs8bgkvy3c064r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dockerfile-mode";
+          sha256 = "1dxvzn35a9qd3x8pjvrvb2g71yf84404g6vz81y0p353rf2zknpa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/dockerfile-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dokuwiki = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , xml-rpc }:
+      melpaBuild {
+        pname = "dokuwiki";
+        ename = "dokuwiki";
+        version = "20180101.1659";
+        src = fetchFromGitHub {
+          owner = "accidentalrebel";
+          repo = "emacs-dokuwiki";
+          rev = "594c4d4904dcc2796bbbd2c0845d9e7c09ccf6f7";
+          sha256 = "0vqx8npw0i02dhw2yb7s4z7njw60r3xyncw4z8l6fj99pp6pfh15";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dokuwiki";
+          sha256 = "0d92il37z1m1hgcgb6c6zaifllznzk1na4yv4bfsfqg25l0mid75";
+          name = "recipe";
+        };
+        packageRequires = [ emacs xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/dokuwiki";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dokuwiki-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dokuwiki-mode";
+        ename = "dokuwiki-mode";
+        version = "20170223.501";
+        src = fetchFromGitHub {
+          owner = "kai2nenobu";
+          repo = "emacs-dokuwiki-mode";
+          rev = "e4e116f6fcc373e3f5937c1a7daa5c2c9c6d3fa1";
+          sha256 = "0bmcm7lvzm8sg2l1j7bg02jasxb8g81q9ilycblmsl1ckbfwq0yp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dokuwiki-mode";
+          sha256 = "1jc3sn61mipkhgr91wp74s673jk2w5991p54jlw05qqpf5gmxd7v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dokuwiki-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dollaro = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "dollaro";
+        ename = "dollaro";
+        version = "20151123.502";
+        src = fetchFromGitHub {
+          owner = "laynor";
+          repo = "dollaro";
+          rev = "500127f0172ac7a1eec627e026b59136580a74ac";
+          sha256 = "1xyqsnymgdd8ic3az2lgwv7s7vld6d4pcycb234bxm4in9fixgdj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dollaro";
+          sha256 = "06kaqzb0nh8sndhk7p5n4acn5nc27dyxw3ldgcbp81wj6ipii26h";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/dollaro";
+          license = lib.licenses.free;
+        };
+      }) {};
+    doneburn-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "doneburn-theme";
+        ename = "doneburn-theme";
+        version = "20181110.1057";
+        src = fetchFromGitHub {
+          owner = "manuel-uberti";
+          repo = "doneburn-theme";
+          rev = "9c31dd6d664436df73c776560c7a660041b3a5bf";
+          sha256 = "042jfjlhyk2lc4wbqsyvb09q5k3jsxsdi89ymwl59j0mvhxws7lj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/doneburn-theme";
+          sha256 = "0j8fyb6wcjrfhfjp06w0bzp5vrcvydhjwkzg4c4s4j54xaw6laxx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/doneburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    doom = callPackage ({ cl-lib ? null
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "doom";
+        ename = "doom";
+        version = "20180301.1508";
+        src = fetchFromGitHub {
+          owner = "kensanata";
+          repo = "doom";
+          rev = "e59040aefc92dd9b3134eb623624307fb9e4327b";
+          sha256 = "14lwq30m0s7pkwkbn6vm5gdlkww7sszc6pdhxyinkhj67b0bxpin";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/doom";
+          sha256 = "1ji2fdiw5b13n76nv2wvkz6v155b0qgh1rxwmv3m5nnrbmklfjh5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/doom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    doom-modeline = callPackage ({ all-the-icons
+                                 , dash
+                                 , eldoc-eval
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , shrink-path }:
+      melpaBuild {
+        pname = "doom-modeline";
+        ename = "doom-modeline";
+        version = "20181117.1208";
+        src = fetchFromGitHub {
+          owner = "seagle0128";
+          repo = "doom-modeline";
+          rev = "700a0107f28a5f321485fa1e2f03a067be122594";
+          sha256 = "1g363lv54b64rx4sfwlwq6gk7qpb920cjslgbgwdpd82chxw79vd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/doom-modeline";
+          sha256 = "0pscrhhgk4wpz1f2r94ficgan4f9blbhqzvav1wjahwp7fn5m29j";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons dash eldoc-eval emacs shrink-path ];
+        meta = {
+          homepage = "https://melpa.org/#/doom-modeline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    doom-themes = callPackage ({ all-the-icons
+                               , cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "doom-themes";
+        ename = "doom-themes";
+        version = "20181031.1918";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-doom-themes";
+          rev = "2aa163b8322a55a69296552bc03b1b84413d5abc";
+          sha256 = "08aa95gv7xkb6qh580x9q9rfrabnvkxm09n28wgiq4kkjpjv2h44";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/doom-themes";
+          sha256 = "0plqhis9ki3ck1pbv4hiqk4x428fps8qsfx72mamdayyx2nncdrs";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/doom-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dot-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "dot-mode";
+        ename = "dot-mode";
+        version = "20180312.1600";
+        src = fetchFromGitHub {
+          owner = "wyrickre";
+          repo = "dot-mode";
+          rev = "6ca22b73bcdae2363ee9641b822a60685df16a3e";
+          sha256 = "10lmwra48ihxqxyl54m3yn1zy0q5w6cxqd2n5pbs4lva1yck0z4w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dot-mode";
+          sha256 = "039ylmbvw0wb3i2w4qn3dhckz7y3swbid4hwjcxljy4szc709p6k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dot-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dotenv-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dotenv-mode";
+        ename = "dotenv-mode";
+        version = "20180207.1114";
+        src = fetchFromGitHub {
+          owner = "preetpalS";
+          repo = "emacs-dotenv-mode";
+          rev = "f4c52bcd5313379b9f2460db7f7a33119dfa96ea";
+          sha256 = "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dotenv-mode";
+          sha256 = "1lwfzfri6vywcjkc9wassrz0rdrg0kvljxsm6b4smlnphp6pdbbs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dotenv-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dotnet = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "dotnet";
+        ename = "dotnet";
+        version = "20181117.731";
+        src = fetchFromGitHub {
+          owner = "julienXX";
+          repo = "dotnet.el";
+          rev = "70ed170caeeecba5fddbd82b0d6aec967b6c6ee4";
+          sha256 = "1hdghrcyic1jng1k08fsq9fscyqx6s3rmsh9k21b91dfaxyaqj6b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dotnet";
+          sha256 = "06k1ikwg9bis9kk4r41bm0a0d8a31wscqyr6n99d7836p1h4jfki";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dotnet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    download-region = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "download-region";
+        ename = "download-region";
+        version = "20180123.1733";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "download-region";
+          rev = "bbba3ecd80818d5d940d41fe89a6e2ec5dd2c53c";
+          sha256 = "1cwlbdmdils5rzhjpc3fqjmd3dhalk6i7bxskpahbrr9xxfq0iw4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/download-region";
+          sha256 = "1mrl2x6j708nchyh9y5avbf2cq10kpnhfj553l6akarvl5n5pvkl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/download-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    downplay-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "downplay-mode";
+        ename = "downplay-mode";
+        version = "20151125.1209";
+        src = fetchFromGitHub {
+          owner = "tobias";
+          repo = "downplay-mode";
+          rev = "4a2c3addc73c8ca3816345c3c11c08af265baedb";
+          sha256 = "0s7swvfd7h8r0n3cjmkps6ary9vwg61jylfm4qrkp3idsz6is548";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/downplay-mode";
+          sha256 = "1v6nga101ljzza8qj3lkmkzzl0vvzj4lsh1m69698s8prnczxr9b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/downplay-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dpaste = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "dpaste";
+        ename = "dpaste";
+        version = "20160303.1312";
+        src = fetchFromGitHub {
+          owner = "gregnewman";
+          repo = "dpaste.el";
+          rev = "e7a1a18de77f752eb0dbb4b878925f2265538d0b";
+          sha256 = "1493fan64lfq2gb9cgr7ja9xfd8jgqfbx9k84iaplavnpmqr5348";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dpaste";
+          sha256 = "0wrfy9w0yf5m15vmhg4l880v92cy557g332xniqs77ab0sga4vgc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dpaste";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dpaste_de = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , web }:
+      melpaBuild {
+        pname = "dpaste_de";
+        ename = "dpaste_de";
+        version = "20131015.525";
+        src = fetchFromGitHub {
+          owner = "theju";
+          repo = "dpaste_de.el";
+          rev = "ab041443884a7a4bfdc81b055688821e8efc9b02";
+          sha256 = "0aplwchr6r1nk2hfpqw2qxyp57zzkqydyzpc0mwz88halnkskblz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dpaste_de";
+          sha256 = "0022dd8l7jsyl0lv9x6iz882ln71js8brqcbiqz001zv45yrgvy0";
+          name = "recipe";
+        };
+        packageRequires = [ web ];
+        meta = {
+          homepage = "https://melpa.org/#/dpaste_de";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dpkg-dev-el = callPackage ({ debian-el
+                               , fetchgit
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dpkg-dev-el";
+        ename = "dpkg-dev-el";
+        version = "20181021.1708";
+        src = fetchgit {
+          url = "https://salsa.debian.org/emacsen-team/dpkg-dev-el.git";
+          rev = "a80f8ac5d81720cce90cf3bc5fbb45d50b1953d7";
+          sha256 = "0358c6gvyb85zr5r79ar3q46c83gz39rawyhgcg1h1hqxgj6a2lx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dpkg-dev-el";
+          sha256 = "1cgfzxlw4m3wsl5fhck08pc2w7fw91mxk58yaprk9lkw4jxd1yjy";
+          name = "recipe";
+        };
+        packageRequires = [ debian-el ];
+        meta = {
+          homepage = "https://melpa.org/#/dpkg-dev-el";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dr-racket-like-unicode = callPackage ({ emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "dr-racket-like-unicode";
+        ename = "dr-racket-like-unicode";
+        version = "20161021.511";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "dr-racket-like-unicode";
+          rev = "4953f1c8a68472e157a0dcd0a7e35a4ec2577133";
+          sha256 = "1i7k7d2gnzd2izplhdmjbkcxvkwnc3y3y0hrcp2rq60bjpkcl1gv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dr-racket-like-unicode";
+          sha256 = "0cqcbn4hmv99d8z03xc0rqw4yh5by6g09y33h75dhl9nh95rybgf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dr-racket-like-unicode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dracula-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dracula-theme";
+        ename = "dracula-theme";
+        version = "20180710.624";
+        src = fetchFromGitHub {
+          owner = "dracula";
+          repo = "emacs";
+          rev = "a1c9888b7876ace60a536d27fb290e788bffc9cb";
+          sha256 = "1bi257gp4rskwbvr1hkgz16r0pw4xqvaxgixzv4abb35vsc9gncx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dracula-theme";
+          sha256 = "1px162v7h7136rasafq875yzw0h8n6wvzbyh73c3w093kd30bmh8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dracula-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    draft-mode = callPackage ({ fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "draft-mode";
+        ename = "draft-mode";
+        version = "20140609.756";
+        src = fetchFromGitLab {
+          owner = "gaudecker";
+          repo = "draft-mode";
+          rev = "f059c04b044f62aec764c7698adddad301bfe89c";
+          sha256 = "01dspkv7g4xmmqgz6f1p190h5p4f4vrw8r9dikrjch02bb76wqir";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/draft-mode";
+          sha256 = "19lq1a3rj6fck3xq2vcz8fk30hpx25kyfz6c7hmq36kx4lv0mjpa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/draft-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    drag-stuff = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "drag-stuff";
+        ename = "drag-stuff";
+        version = "20161107.2349";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "drag-stuff.el";
+          rev = "d49fe376d24f0f8ac5ade67b6d7fccc2487c81db";
+          sha256 = "1jrr59iazih3imkl9ja1lbni9v3xv6b8gmqs015g2mxhlql35jka";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/drag-stuff";
+          sha256 = "1q67q20gfhixzkmddhzp6fd8z2qfpsmyyvymmaffjcscnjaz21w4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/drag-stuff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    drawille = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "drawille";
+        ename = "drawille";
+        version = "20160418.1138";
+        src = fetchFromGitHub {
+          owner = "josuah";
+          repo = "drawille-el";
+          rev = "d582b455c01432bc80933650c52a1f586bd1b5ad";
+          sha256 = "1z3akh0ywzihr0ghk6f8x9z38mwqy3zg29p0q69h4i6yzhxpdmxa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/drawille";
+          sha256 = "0nkhy00jx06a7899dgyajidah29p9536mvjr7cyqm99ari70m7y9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/drawille";
+          license = lib.licenses.free;
+        };
+      }) {};
+    drill-instructor-AZIK-force = callPackage ({ fetchFromGitHub
+                                               , fetchurl
+                                               , lib
+                                               , melpaBuild
+                                               , popup }:
+      melpaBuild {
+        pname = "drill-instructor-AZIK-force";
+        ename = "drill-instructor-AZIK-force";
+        version = "20151122.2114";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "drill-instructor-AZIK-force.el";
+          rev = "008cea202dc31d7d6fb1e7d8e6334d516403b7a5";
+          sha256 = "0lzq0mkhhj3s5yrcbs576qxkd8h0m2ikc4iplk97ddpzh4nz4127";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/drill-instructor-AZIK-force";
+          sha256 = "1bb698r11m58csd2rm17fmiw691p25npphzqgjiiqbn4vx35ja7f";
+          name = "recipe";
+        };
+        packageRequires = [ popup ];
+        meta = {
+          homepage = "https://melpa.org/#/drill-instructor-AZIK-force";
+          license = lib.licenses.free;
+        };
+      }) {};
+    drone = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "drone";
+        ename = "drone";
+        version = "20161106.118";
+        src = fetchFromGitHub {
+          owner = "olymk2";
+          repo = "emacs-drone";
+          rev = "1d4ee037ad3208847a4235426edf0c4a3e7b1899";
+          sha256 = "1dwxgzf32cvfi7b6zw3qzamj82zs2c0ap6i1w0jqqgzmkz20dqvf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/drone";
+          sha256 = "0wjbmgic715i4nxk90nasfamk04lskl8dll9y5klk32w1lsj546q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/drone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dropbox = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , json ? null
+                           , lib
+                           , melpaBuild
+                           , oauth }:
+      melpaBuild {
+        pname = "dropbox";
+        ename = "dropbox";
+        version = "20181104.1906";
+        src = fetchFromGitHub {
+          owner = "pavpanchekha";
+          repo = "dropbox.el";
+          rev = "d9f4198b3f670666220242e14460ebc3edf74e56";
+          sha256 = "19jw3649kzyvb6h78av5z34cz4fr2g50x90sa13aba0zbhfkj1z2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dropbox";
+          sha256 = "1dqjsn7wkjjvbwq3kgdd7bvwrirappwnhcwkj2ai19dpx6jd8wym";
+          name = "recipe";
+        };
+        packageRequires = [ json oauth ];
+        meta = {
+          homepage = "https://melpa.org/#/dropbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    drupal-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , php-mode }:
+      melpaBuild {
+        pname = "drupal-mode";
+        ename = "drupal-mode";
+        version = "20171120.1509";
+        src = fetchFromGitHub {
+          owner = "arnested";
+          repo = "drupal-mode";
+          rev = "47fda0a38a5b197f4606137d9c3b7d44aaeaa886";
+          sha256 = "1rg46prsymxc9lyhk7cbr53089p970mmmybiir2qsyx2s4m6mnfl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/drupal-mode";
+          sha256 = "14jvk4phq3wcff3yvhygix0c9cpbphh0dvm961i93jpsx7g9awgn";
+          name = "recipe";
+        };
+        packageRequires = [ php-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/drupal-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    drupal-spell = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "drupal-spell";
+        ename = "drupal-spell";
+        version = "20130520.955";
+        src = fetchFromGitHub {
+          owner = "arnested";
+          repo = "drupal-spell";
+          rev = "a69f5e3b62c4c0da74ce26c1d00d5b8f7395e4ae";
+          sha256 = "156cscpavrp695lp8pgjg5jnq3b8n9c2h8qg8w89dd4vfkc3iikd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/drupal-spell";
+          sha256 = "117rr2bfnc99g3qsr127grxwaqp54cxjaj3nl2nr6z78nja0fij3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/drupal-spell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dsvn = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "dsvn";
+        ename = "dsvn";
+        version = "20130120.1257";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "dsvn";
+          rev = "b01e3601ac26735efa3f1fedc81e9a4f6e173635";
+          sha256 = "1rfl10zqksvrry3l4g4h9gp3banmfas1n3qn9lsw8nbm259w1sf4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dsvn";
+          sha256 = "1kgc0b8as7w1h9dsknv2h7dzr6jcrs0j0p376050pshgzcm79nm6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dsvn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dtrace-script-mode = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "dtrace-script-mode";
+        ename = "dtrace-script-mode";
+        version = "20150213.2223";
+        src = fetchFromGitHub {
+          owner = "dotemacs";
+          repo = "dtrace-script-mode";
+          rev = "a92f76c65b9fb64d448e503b4ea7ff06085be8ee";
+          sha256 = "0maj816qrrawdpj72hd33qcgl4wrn9cbqz26l4zfb124z1m35yqv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dtrace-script-mode";
+          sha256 = "00ar2qahgqpf4an6v9lbzgj73ylbavvigsm8kqdq94ghm4awxi4z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dtrace-script-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dtrt-indent = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dtrt-indent";
+        ename = "dtrt-indent";
+        version = "20180921.1521";
+        src = fetchFromGitHub {
+          owner = "jscheid";
+          repo = "dtrt-indent";
+          rev = "e860db7235147ed5ac1fd8f12b51dbb7cf2e75f1";
+          sha256 = "0i98rrk5wil0aldmmh6xkjy1mr4438z0i77l176wgl50dkj7xa6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dtrt-indent";
+          sha256 = "1npn2jngy1wq0jpwmg1hkn8lx6ncbqsi587jl38lyp2xwchshfk5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dtrt-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dts-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "dts-mode";
+        ename = "dts-mode";
+        version = "20161103.523";
+        src = fetchFromGitHub {
+          owner = "bgamari";
+          repo = "dts-mode";
+          rev = "9ee0854446dcc6c53d2b8d2941051768dba50344";
+          sha256 = "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dts-mode";
+          sha256 = "1k8cbiayajbzwkm0s0kyin0qpq9yhymidz0srs4hbvsnb6hvp234";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dts-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ducpel = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ducpel";
+        ename = "ducpel";
+        version = "20140702.454";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "ducpel";
+          rev = "2f2ce2df269d99261c808a5c4ebc00d6d2cddabc";
+          sha256 = "19a8q9nakjzyzv7aryndifjr9c8jls9a2v7ilfjj8kscwxpjqlzb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ducpel";
+          sha256 = "1cqrkgg7n9bhjswnpl7yc6w6yjs4gfbliaqsimmf9z43wk2ml4pc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ducpel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dumb-diff = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "dumb-diff";
+        ename = "dumb-diff";
+        version = "20171211.1322";
+        src = fetchFromGitHub {
+          owner = "jacktasia";
+          repo = "dumb-diff";
+          rev = "1a2331d283049b71a07c1b06b1e0627a950d55f4";
+          sha256 = "05gmpp4s9y2ql27vb5vpqn3xh35qjfxgq9gzyvg86df43qfl8wvl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dumb-diff";
+          sha256 = "1h1dvxbj85kgi04lxh0bpx81f6sl1fd56lhjmq1cw9biwqw0sm0c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dumb-diff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dumb-jump = callPackage ({ dash
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , popup
+                             , s }:
+      melpaBuild {
+        pname = "dumb-jump";
+        ename = "dumb-jump";
+        version = "20181022.1524";
+        src = fetchFromGitHub {
+          owner = "jacktasia";
+          repo = "dumb-jump";
+          rev = "0c893392f6f5e797fc4dcda67cdc44c7ceed31ca";
+          sha256 = "1qdnqb8321j7rrw31s6nr3fq5n24sk5vpsm5rvqgsaf6rgdw3d9i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dumb-jump";
+          sha256 = "1j90n8gydsp2v07rysz1k5vf6hspybcl27214sib1iz3hbimid1w";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f popup s ];
+        meta = {
+          homepage = "https://melpa.org/#/dumb-jump";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dummyparens = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dummyparens";
+        ename = "dummyparens";
+        version = "20141009.324";
+        src = fetchFromGitHub {
+          owner = "snosov1";
+          repo = "dummyparens";
+          rev = "9798ef1d0eaa24e4fe66f8aa6022a8c62714cc89";
+          sha256 = "0g72nnz0j6dvllyxyrw20z1vg6p7sy46yy0fq017pa77sgqm0xzh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dummyparens";
+          sha256 = "1yah8kpqkk9ygm73iy51fzwc8q5nw0xlwqir2qld1fc5y1lkb7dk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dummyparens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    duplicate-thing = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "duplicate-thing";
+        ename = "duplicate-thing";
+        version = "20181031.800";
+        src = fetchFromGitHub {
+          owner = "ongaeshi";
+          repo = "duplicate-thing";
+          rev = "9d8fd05e3e5caa35d3f2a0c0032c92f0c0908e21";
+          sha256 = "05lflc0r84c95vb81wbn44kh11cbgm42zn3y4ss0ychbf13mzdb5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/duplicate-thing";
+          sha256 = "1jx2b6h23dj561xhizzbpxp3av69ic8zdw4kkf0py1jm3gnrmlm4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/duplicate-thing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dut-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "dut-mode";
+        ename = "dut-mode";
+        version = "20170729.1411";
+        src = fetchFromGitHub {
+          owner = "dut-lang";
+          repo = "dut-mode";
+          rev = "9235c7acaa6690942e9de8b7acd1e4be0c859dc1";
+          sha256 = "0fpqsm6y23anyx57gp4c6whzxrn8x03cp76iwx27c4gkq6ph1z8n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dut-mode";
+          sha256 = "0hlr5qvqcqdh2k1nyq621z6vq2yiflj4jy0pgg6lbiy3j6819mai";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dut-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dyalog-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchhg
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dyalog-mode";
+        ename = "dyalog-mode";
+        version = "20180605.1413";
+        src = fetchhg {
+          url = "https://bitbucket.com/harsman/dyalog-mode";
+          rev = "b2322f244c76";
+          sha256 = "0vgi6cw14fp8iihzmnk7jifdlbqhhcgnh26r30mnvsbycmbnvf0r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dyalog-mode";
+          sha256 = "0w61inyfvxiyihx5z9fk1ckawcd3cr6xiradbbwzmn25k99gkbgr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dyalog-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dylan-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dylan-mode";
+        ename = "dylan-mode";
+        version = "20180927.2205";
+        src = fetchFromGitHub {
+          owner = "dylan-lang";
+          repo = "dylan-mode";
+          rev = "a347998ae3ab69c181e09d73f49e11666e89fe71";
+          sha256 = "1jyfnxf5rgjl9dhpd2z7kisf2282pgp5z3vpa02qis2kgwfz2gy8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dylan-mode";
+          sha256 = "0kimvz8vmcvgxi0wvf7dqv6plj31xlksmvgip8h3bhyy7slxj3yy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dylan-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dynamic-fonts = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , font-utils
+                                 , lib
+                                 , melpaBuild
+                                 , pcache
+                                 , persistent-soft }:
+      melpaBuild {
+        pname = "dynamic-fonts";
+        ename = "dynamic-fonts";
+        version = "20140731.526";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "dynamic-fonts";
+          rev = "004ee6014dc7dbff8f14d26015c91d9229f6eac0";
+          sha256 = "04rz0nqnkv6cjvm1yb83r4nxgnpkzcxxhyxkqwdjhka2c5dbisr4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dynamic-fonts";
+          sha256 = "0a210ca41maa755lv1n7hhpxp0f7lfxrxbi0x34icbkfkmijhl6q";
+          name = "recipe";
+        };
+        packageRequires = [ font-utils pcache persistent-soft ];
+        meta = {
+          homepage = "https://melpa.org/#/dynamic-fonts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dynamic-ruler = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dynamic-ruler";
+        ename = "dynamic-ruler";
+        version = "20160602.108";
+        src = fetchFromGitHub {
+          owner = "rocher";
+          repo = "dynamic-ruler";
+          rev = "c9c0de6fe5721f06b50e01d9b4684b519c71b367";
+          sha256 = "09skp2d5likqjlrsfis3biqw59sjkgid5249fld9ahqm5f1wq296";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dynamic-ruler";
+          sha256 = "13jc3xbsyc3apkdfy0iafmsfvgqs0zfa5w8jxp7zj4dhb7pxpnmc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dynamic-ruler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dynamic-spaces = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "dynamic-spaces";
+        ename = "dynamic-spaces";
+        version = "20171027.1151";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "dynamic-spaces";
+          rev = "97ae8480c257ba573ca3d06dbf602f9b23c41d38";
+          sha256 = "0qs7gqjl6ilwwmd21663345az6766j7h1pv7wvd2kyh24yfs1xkj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dynamic-spaces";
+          sha256 = "0l4hwqivzv51j7h5sgd91dxb5slylmrfrvf7r6w0k04bhld6ry0c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dynamic-spaces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2ansi = callPackage ({ face-explorer
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "e2ansi";
+        ename = "e2ansi";
+        version = "20180403.1215";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "e2ansi";
+          rev = "f886e687d50ff58063a92d40623f2400fa913af0";
+          sha256 = "0wg16hdmhbhll0ffp2hrqmr12ddai2s6gql52q6pz9k3lw6v0d5m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2ansi";
+          sha256 = "0ns1sldipx5kyqpi0bw79kdmhi1ry5glwxfzfx8r01hbbkf0cc94";
+          name = "recipe";
+        };
+        packageRequires = [ face-explorer ];
+        meta = {
+          homepage = "https://melpa.org/#/e2ansi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , window-layout }:
+      melpaBuild {
+        pname = "e2wm";
+        ename = "e2wm";
+        version = "20170214.1636";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-window-manager";
+          rev = "4353d3394c77a49f8f0291c239858c8c5e877549";
+          sha256 = "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm";
+          sha256 = "0dp360jr3fgxqywkp7g88cp02g37kw2hdsc0f70hjak9n3sy03la";
+          name = "recipe";
+        };
+        packageRequires = [ window-layout ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-R = callPackage ({ e2wm
+                          , ess
+                          , fetchFromGitHub
+                          , fetchurl
+                          , inlineR
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "e2wm-R";
+        ename = "e2wm-R";
+        version = "20151230.126";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "e2wm-R.el";
+          rev = "4350601ee1a96bf89777b3f09f1b79b88e2e6e4d";
+          sha256 = "1g77gf24abwcvf7z52vs762s6jp978pnvza8zmzwkwfvp1mkx233";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-R";
+          sha256 = "09v4fz178lch4d6m801ipclfxm2qrap5601aysnzyvc2apvyr3sh";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm ess inlineR ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-R";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-bookmark = callPackage ({ e2wm
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "e2wm-bookmark";
+        ename = "e2wm-bookmark";
+        version = "20151122.2121";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "e2wm-bookmark.el";
+          rev = "bad816b6d8049984d69bcd277b7d325fb84d55eb";
+          sha256 = "121vd44f42bxqvdjswmjlghf1jalbs974b6cip2i049k1n08xgh0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-bookmark";
+          sha256 = "1myaqxzrgff5gxcn3zn1bsmyf5122ql1mwr05wamd450lq8nmbw5";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-bookmark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-direx = callPackage ({ direx
+                              , e2wm
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "e2wm-direx";
+        ename = "e2wm-direx";
+        version = "20170509.601";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "e2wm-direx";
+          rev = "b47f19d15436cc28233a812a1150689f61d11046";
+          sha256 = "0lihc02b0792kk61vcmhi0jwb7c4w2hi19g6a0q1598b3rci82nf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-direx";
+          sha256 = "0nv8aciq0swxi9ahwc2pvk9c7i3rmlp7vrzqcan58ml0i3nm17wg";
+          name = "recipe";
+        };
+        packageRequires = [ direx e2wm ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-direx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-pkgex4pl = callPackage ({ e2wm
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , plsense-direx }:
+      melpaBuild {
+        pname = "e2wm-pkgex4pl";
+        ename = "e2wm-pkgex4pl";
+        version = "20140525.347";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "e2wm-pkgex4pl";
+          rev = "b72561b75e98961f05544a2159d83592c964ba1e";
+          sha256 = "1cx6kdxhq9ybwwvc1vpwcfy08yf1h4xacgimm36kp9xayvxsmq2j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-pkgex4pl";
+          sha256 = "0hgdbqfw3015fr929m36kfiqqzsid6afs3222iqq0apg7gfj7jil";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm plsense-direx ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-pkgex4pl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-svg-clock = callPackage ({ e2wm
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , svg-clock }:
+      melpaBuild {
+        pname = "e2wm-svg-clock";
+        ename = "e2wm-svg-clock";
+        version = "20150106.506";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "e2wm-svg-clock.el";
+          rev = "d425925e3afffcbe2ff74edc80b714e4319d4c94";
+          sha256 = "0h1fnlpvy2mqfxjv64znghmiadh9qimj9q9a60cxhyc0bq0prz6f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-svg-clock";
+          sha256 = "0q02lksrbn43s8d9rzpglqybalglpi6qi9lix0cllag6i7fzcbms";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm svg-clock ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-svg-clock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-sww = callPackage ({ e2wm
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "e2wm-sww";
+        ename = "e2wm-sww";
+        version = "20140524.158";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "e2wm-sww";
+          rev = "db454ac3eddd53a62f2725f6e2d5ac455caf200c";
+          sha256 = "1a8z94z0wp9r4kh44bn2m74k866jwq7zvjihxmmzr0rfb85q2d99";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-sww";
+          sha256 = "0x45j62cjivf9v7jp1b41yya3f9akp92md6cbv0v7bwz98g2vsk8";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-sww";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-term = callPackage ({ e2wm
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , log4e
+                             , melpaBuild
+                             , yaxception }:
+      melpaBuild {
+        pname = "e2wm-term";
+        ename = "e2wm-term";
+        version = "20141009.608";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "e2wm-term";
+          rev = "65b5ac88043d5c4048920a048f3599904ca55981";
+          sha256 = "0qv3kh6q3q7vgfsd8x25x8agi3fp96dkpjnxdidkwk6k8h9n0jzw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-term";
+          sha256 = "0wrq06yap80a96l9l0hs7x7rng7sx6vi1hz778kknb6il4f2f45g";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-term";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eacl = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , ivy
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "eacl";
+        ename = "eacl";
+        version = "20180607.658";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "eacl";
+          rev = "ccf1401b1acff67fe445c95e8be7b09e8c3ae5d8";
+          sha256 = "0v02asdmhj5la9nqck2230s04gf518cjs7wa4lykf8j46bc13vac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eacl";
+          sha256 = "16afsf3diz498jb63q85lm5ifvm487clfl838qzagl1l4aywhlwr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/eacl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-after-load = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "easy-after-load";
+        ename = "easy-after-load";
+        version = "20170817.531";
+        src = fetchFromGitHub {
+          owner = "pd";
+          repo = "easy-after-load";
+          rev = "29e20145da49ac9ea40463c552130777408040de";
+          sha256 = "00xgd39qc760lmxpbggzn98aks5nad08b5ry54pkszjlmh37yqj7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-after-load";
+          sha256 = "1mn4hpx82nifphzx71yw3rbixbgis8bhvl3iyxcgcd88n5hqwvys";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/easy-after-load";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-escape = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "easy-escape";
+        ename = "easy-escape";
+        version = "20161209.744";
+        src = fetchFromGitHub {
+          owner = "cpitclaudel";
+          repo = "easy-escape";
+          rev = "8623aa9d715fe7677ea24d7164ea6e4ecdb3e65b";
+          sha256 = "12shxdr03l39vj3grsncym1mv2vn39k58vvhbwc1q591adqhwalz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-escape";
+          sha256 = "1zspb79x6s151wwiian45j1nh0xps8y8yd98byyn5lbwbj2pp2gk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/easy-escape";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-hugo = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , popup }:
+      melpaBuild {
+        pname = "easy-hugo";
+        ename = "easy-hugo";
+        version = "20181030.538";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-easy-hugo";
+          rev = "1f9e3c7baf570df4b23ed5297970a4d467b53467";
+          sha256 = "0yz6ph0n4if3h8s7ij31kjfqdl9g35vks2ad3y65s1lg2vkca57r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-hugo";
+          sha256 = "1m7iw6njxxsk82agyqay277iql578b3wz6z9wjs8ls30ps8s2b8g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs popup ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-hugo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-jekyll = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "easy-jekyll";
+        ename = "easy-jekyll";
+        version = "20181104.456";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-easy-jekyll";
+          rev = "2c1b42b6ffbb143d574653a9392d333a3be1651c";
+          sha256 = "0p2v8gj7b060jfi4zalmj2xkc11w1j4iha13zrpzar6swnnfmx5s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-jekyll";
+          sha256 = "16jj70fr23z5qsaijv4d4xfiiypny2cama8rsaci9fk9haq19lxv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-jekyll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-kill = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "easy-kill";
+        ename = "easy-kill";
+        version = "20181114.1530";
+        src = fetchFromGitHub {
+          owner = "leoliu";
+          repo = "easy-kill";
+          rev = "2a6309d98aa6b71df6bbbcdf15cab3187c521a6b";
+          sha256 = "1j8hl0f52fqb21775xn94sf9g12yqyg6z0ibgmxzmnl02ir4xr86";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-kill";
+          sha256 = "10jcv7a4vcnaj3wkabip2xwzcwlmvdlqkl409a9lnzfasxcpf32i";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-kill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-kill-extras = callPackage ({ easy-kill
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "easy-kill-extras";
+        ename = "easy-kill-extras";
+        version = "20180920.634";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "easy-kill-extras.el";
+          rev = "b8ce8350cc86e0229f195082557970cd51def960";
+          sha256 = "1f8db92zzk8g8yyj0g334mdbgqmzrs8xamm1d24jai1289hm29xa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-kill-extras";
+          sha256 = "0xzlzv57nvrc142saydwfib51fyqcdzjccc1hj6xvgcdbwadlnjy";
+          name = "recipe";
+        };
+        packageRequires = [ easy-kill ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-kill-extras";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-repeat = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "easy-repeat";
+        ename = "easy-repeat";
+        version = "20150516.148";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "easy-repeat.el";
+          rev = "060f0e6801c82c40c06961dc0528a00e18947a8c";
+          sha256 = "18bm5ns1qrxq0rrz9sylshr62wkymh1m6b7ch2y74f8rcwdwjgnq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-repeat";
+          sha256 = "1vx57gpw0nbxh976s18va4ali1nqxqffhaxv1c5rhf4pwlk2fa06";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-repeat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ebal = callPackage ({ emacs
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "ebal";
+        ename = "ebal";
+        version = "20171231.2216";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "ebal";
+          rev = "3a7a9a66efed30416e2013da80fed2f79b91def1";
+          sha256 = "0vxxswbx8l9jcv81akw1bd7ra4k51gjmv79z11fhbzf17n7y910a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ebal";
+          sha256 = "1kqnlp5n1aig1qbqdq9q50wgqkzd1l6h9wi1gv43cif8qa1kxhwg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/ebal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ebf = callPackage ({ cl-lib ? null
+                       , dash
+                       , dash-functional
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ebf";
+        ename = "ebf";
+        version = "20160211.958";
+        src = fetchFromGitHub {
+          owner = "rexim";
+          repo = "ebf";
+          rev = "b52dd2fa8c6a4a7acf4d93c16f54fbd9fbe087df";
+          sha256 = "1yyx6z251bgvcfi3jzdq4cnmyd8vmz3gffbzii5bdga4ms288j5d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ebf";
+          sha256 = "072w1hczzb4z0dadvqy8px9zfnfd2z0w8nwa7q2qm5njg30rrqpb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash dash-functional ];
+        meta = {
+          homepage = "https://melpa.org/#/ebf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ebib = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , parsebib
+                        , seq }:
+      melpaBuild {
+        pname = "ebib";
+        ename = "ebib";
+        version = "20181018.6";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "ebib";
+          rev = "0163cbaf843661b1bd612936cbf26e7d1d77235c";
+          sha256 = "00w10f7y152h0s9xryyps9gzsk19sdwx8g2p34fc9yrnka8azvmj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ebib";
+          sha256 = "1kdqf5nk9l6mr3698nqngrkw5dicgf7d24krir5wrcfbrsqrfmid";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs parsebib seq ];
+        meta = {
+          homepage = "https://melpa.org/#/ebib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ecb = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ecb";
+        ename = "ecb";
+        version = "20170728.1221";
+        src = fetchFromGitHub {
+          owner = "ecb-home";
+          repo = "ecb";
+          rev = "1330a44cf3c171781083b0b926ab7622f64e6e81";
+          sha256 = "0nx1blkvnzrxd2l7ckdihm9fvq5vkcghf6qccagkjzk4zbdalz30";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ecb";
+          sha256 = "0z61p9zgv7gcx04m4jv16a3mn9kjvnw0rdd65kpvbmzkgls0nk8d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ecb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eclim = callPackage ({ cl-lib ? null
+                         , dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , json ? null
+                         , lib
+                         , melpaBuild
+                         , popup
+                         , s
+                         , yasnippet }:
+      melpaBuild {
+        pname = "eclim";
+        ename = "eclim";
+        version = "20181108.334";
+        src = fetchFromGitHub {
+          owner = "emacs-eclim";
+          repo = "emacs-eclim";
+          rev = "23f5b294f833ce58516d7b9ae08a7792d70022a1";
+          sha256 = "17q972354nkkynfjmwih4vp7s5dzdvr3nf7ni3ci095lzb0zzf4g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eclim";
+          sha256 = "1n60ci6kjmzy2khr3gs7s8gf21j1f9zjaj5a1yy2dyygsarbxw7b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash json popup s yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/eclim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eclipse-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "eclipse-theme";
+        ename = "eclipse-theme";
+        version = "20160430.322";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "eclipse-theme";
+          rev = "dc54d9312d97210823b922038076e2b1b132eff2";
+          sha256 = "03yyagd37l9kgdnkqrkvrcgp5njyl4an0af7cfmcdnpyjghczf4d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eclipse-theme";
+          sha256 = "0mww0jysxqky1zkkhvhj7fn20w970n2w6501rdm5jwqfb58ivxfx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eclipse-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ecukes = callPackage ({ ansi
+                          , commander
+                          , dash
+                          , espuds
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "ecukes";
+        ename = "ecukes";
+        version = "20171216.408";
+        src = fetchFromGitHub {
+          owner = "ecukes";
+          repo = "ecukes";
+          rev = "3a77ba9f1064c2bca47b401974c009e65727c46e";
+          sha256 = "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ecukes";
+          sha256 = "0ava8hrc7r1mzv6xgbrb84qak5xrf6fj8g9qr4i4g0cr7843nrw0";
+          name = "recipe";
+        };
+        packageRequires = [ ansi commander dash espuds f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ecukes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edbi = callPackage ({ concurrent
+                        , ctable
+                        , epc
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "edbi";
+        ename = "edbi";
+        version = "20160224.1741";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-edbi";
+          rev = "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0";
+          sha256 = "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edbi";
+          sha256 = "0qq0j16n8lyvkqqlcsrq1m7r7f0in6b92d74mpx5c6siv6z2vxlr";
+          name = "recipe";
+        };
+        packageRequires = [ concurrent ctable epc ];
+        meta = {
+          homepage = "https://melpa.org/#/edbi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edbi-database-url = callPackage ({ edbi
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "edbi-database-url";
+        ename = "edbi-database-url";
+        version = "20160221.1123";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "edbi-database-url";
+          rev = "a6e4be7547ee8e0bb43a11ff173d6271b21b5012";
+          sha256 = "0f59s0a7zpa3dny1k7x6zrymrnzba184smq8v1vvz8hkc0ym1j1v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edbi-database-url";
+          sha256 = "018rxijmy0lvisy281d501ra9lnh5xi0wmvz5avbjpb0fi4q1zdn";
+          name = "recipe";
+        };
+        packageRequires = [ edbi emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/edbi-database-url";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edbi-django = callPackage ({ edbi
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , pythonic }:
+      melpaBuild {
+        pname = "edbi-django";
+        ename = "edbi-django";
+        version = "20180924.1534";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "edbi-django";
+          rev = "fc0b246c51a817595e803bb68dc5f9bf906b7dc3";
+          sha256 = "10f6kfh4yyzw3d9sqx6x88rxkkmh33i2d91whmjq9sd9b9sxjyfp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edbi-django";
+          sha256 = "1s59hab35hwnspyklxbhi0js0sgdn0rc7y33dqjk0psjcikqymg1";
+          name = "recipe";
+        };
+        packageRequires = [ edbi emacs pythonic ];
+        meta = {
+          homepage = "https://melpa.org/#/edbi-django";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edbi-minor-mode = callPackage ({ edbi
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "edbi-minor-mode";
+        ename = "edbi-minor-mode";
+        version = "20160706.747";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "edbi-minor-mode";
+          rev = "566a2141a6eb9d9d5d7e1bd7c251d1c5e8f0d2ec";
+          sha256 = "1g6mlmrwl8p5ffj9q298vymd9xi2kpp7mhbmz4by4f6a3g831c88";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edbi-minor-mode";
+          sha256 = "0p7vdf9cp6i7mhjxj82670pfflf1kacalmakb7ssgigs1nsf3spi";
+          name = "recipe";
+        };
+        packageRequires = [ edbi ];
+        meta = {
+          homepage = "https://melpa.org/#/edbi-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edbi-sqlite = callPackage ({ edbi
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "edbi-sqlite";
+        ename = "edbi-sqlite";
+        version = "20160221.1123";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "edbi-sqlite";
+          rev = "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f";
+          sha256 = "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edbi-sqlite";
+          sha256 = "1w53ypz3pdqaml3vq9j3f1w443n8s9hb2ys090kxvjqnb8x8v44y";
+          name = "recipe";
+        };
+        packageRequires = [ edbi emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/edbi-sqlite";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ede-compdb = callPackage ({ cl-lib ? null
+                              , ede ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , semantic ? null }:
+      melpaBuild {
+        pname = "ede-compdb";
+        ename = "ede-compdb";
+        version = "20150920.1333";
+        src = fetchFromGitHub {
+          owner = "randomphrase";
+          repo = "ede-compdb";
+          rev = "23c91082270fcef24ea791b848f1604e36888ff0";
+          sha256 = "03xphcdw4b6z8i3dgrmq0l8m5nfpsjn0jv0y1rlabrbvxw1gpcqq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ede-compdb";
+          sha256 = "1ypi7rxbgg2qck1b571hcw5m4ipllb48g6sindpdf180kbfbfpn7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ede semantic ];
+        meta = {
+          homepage = "https://melpa.org/#/ede-compdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ede-php-autoload = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ede-php-autoload";
+        ename = "ede-php-autoload";
+        version = "20180901.555";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "ede-php-autoload";
+          rev = "8a4eeeaa93b8d87b65a107c4ebcbeb14528d9449";
+          sha256 = "109cys3d4pfaa2c6gb33p5b40cd6wmisx63w20cxpj86drx8iabf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ede-php-autoload";
+          sha256 = "1255a1drpb50650i0yijahbp97chpw89mi9fvdrk3vf64xlysamq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ede-php-autoload";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ede-php-autoload-composer-installers = callPackage ({ ede-php-autoload
+                                                        , f
+                                                        , fetchFromGitHub
+                                                        , fetchurl
+                                                        , lib
+                                                        , melpaBuild
+                                                        , s }:
+      melpaBuild {
+        pname = "ede-php-autoload-composer-installers";
+        ename = "ede-php-autoload-composer-installers";
+        version = "20170221.1226";
+        src = fetchFromGitHub {
+          owner = "xendk";
+          repo = "ede-php-autoload-composer-installers";
+          rev = "3e2fde975a06757b363e235c67e6341ebe668f60";
+          sha256 = "11sjq86nm7yqxi0y5n37c2c3w0p6mc28n85j40qj8nd7b2nb9s3j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ede-php-autoload-composer-installers";
+          sha256 = "0s7dv81niz4h8kj0648x2nbmz47hqxchfs2rjmjpy2lcbifvj268";
+          name = "recipe";
+        };
+        packageRequires = [ ede-php-autoload f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ede-php-autoload-composer-installers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ede-php-autoload-drupal = callPackage ({ ede-php-autoload
+                                           , f
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild
+                                           , s }:
+      melpaBuild {
+        pname = "ede-php-autoload-drupal";
+        ename = "ede-php-autoload-drupal";
+        version = "20170316.1458";
+        src = fetchFromGitHub {
+          owner = "xendk";
+          repo = "ede-php-autoload-drupal";
+          rev = "54a04241d94fabc4f4d16ae4dc8ba4f0c6e3b435";
+          sha256 = "1ckfja95zk4f7fgvycia7nxhxjgz4byrz30ic63f6kcq4dx78scs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ede-php-autoload-drupal";
+          sha256 = "139sr7jy5hb8h5zmw5mw01r0dy7yvbbyaxzj62m1a589n8w6a964";
+          name = "recipe";
+        };
+        packageRequires = [ ede-php-autoload f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ede-php-autoload-drupal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edebug-x = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "edebug-x";
+        ename = "edebug-x";
+        version = "20130615.2325";
+        src = fetchFromGitHub {
+          owner = "ScottyB";
+          repo = "edebug-x";
+          rev = "a2c2c42553d3bcbd5ac11898554865acbed1bc46";
+          sha256 = "1zgiifi1k2d9g8sarfpjzamk8g1yx4ilgn60mqhy2pznp30b5qb2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edebug-x";
+          sha256 = "0mzrip6y346mix4ny1xj8rkji1w531ix24k3cczmlmm4hm7l29ql";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/edebug-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-at-point = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "edit-at-point";
+        ename = "edit-at-point";
+        version = "20150716.624";
+        src = fetchFromGitHub {
+          owner = "enoson";
+          repo = "edit-at-point.el";
+          rev = "3b800c11685102e1eab62ec71c5fc1589ebb81a7";
+          sha256 = "0crwdgng377sy1zbq7kqkz24v697mlzgdsvkdp1m8r7ympikkj6w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-at-point";
+          sha256 = "1mijasr4ww6vcjfyk7jdv4mh7w2rrspqbbmqayiy2918qg2x01df";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/edit-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-color-stamp = callPackage ({ cl-lib ? null
+                                    , es-lib
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "edit-color-stamp";
+        ename = "edit-color-stamp";
+        version = "20130529.1033";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "edit-color-stamp";
+          rev = "32dc1ca5bcf3dcf83fad5e39b55dc5b77becb3d3";
+          sha256 = "0vk954f44m2bq7qb122pzlb8fibrisx47ihvn3h96m8nmx0fv32r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-color-stamp";
+          sha256 = "1f8v8w3w7vb8jv29w06mplah8yfcs5qfjz2w4irv0rg7dwzy3zk8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib es-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/edit-color-stamp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-indirect = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "edit-indirect";
+        ename = "edit-indirect";
+        version = "20180422.1107";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "edit-indirect";
+          rev = "de645d8144e8a08f039a9c88185121ec81d957ef";
+          sha256 = "0xg6p3ccch9k920xhhpyhn5mkgc0sfyxsn8l1wsc6vbbp5h7wlad";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-indirect";
+          sha256 = "0q5jjmrvx5kaajllmhaxihsab2kr1vmcsfqrhxdhw3x3nf41s439";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/edit-indirect";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-indirect-region-latex = callPackage ({ edit-indirect
+                                              , emacs
+                                              , fetchFromGitHub
+                                              , fetchurl
+                                              , ht
+                                              , lib
+                                              , melpaBuild }:
+      melpaBuild {
+        pname = "edit-indirect-region-latex";
+        ename = "edit-indirect-region-latex";
+        version = "20161128.2245";
+        src = fetchFromGitHub {
+          owner = "niitsuma";
+          repo = "edit-indirect-region-latex";
+          rev = "05043f2c0c9838947d3ca4b51b695deb7c47612e";
+          sha256 = "0dgac0nk9x4sz4lisxb5badrzpcjqjwgi79hhl1y6mafzm0ncqs2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-indirect-region-latex";
+          sha256 = "0ys0fpfk259g14wvg0nnkc3wk1dbjjd2n4a636jblgq63w6g3h79";
+          name = "recipe";
+        };
+        packageRequires = [ edit-indirect emacs ht ];
+        meta = {
+          homepage = "https://melpa.org/#/edit-indirect-region-latex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-list = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "edit-list";
+        ename = "edit-list";
+        version = "20100930.743";
+        src = fetchFromGitHub {
+          owner = "emacsmirror";
+          repo = "edit-list";
+          rev = "f460d3f9e208a4e606fe6ded307f1b011916ca71";
+          sha256 = "0981hy1n50yizc3k06vbxqrpfml817a67kab1hkgkw5v6ymm1hc9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-list";
+          sha256 = "0mi12jfgx06i0yr8k5nk80xryqszjv0xykdnri505862rb90xakv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/edit-list";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-server = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "edit-server";
+        ename = "edit-server";
+        version = "20181016.425";
+        src = fetchFromGitHub {
+          owner = "stsquad";
+          repo = "emacs_chrome";
+          rev = "81eb5211f79cf5a2234b7a932f6006d27d506aa5";
+          sha256 = "0s30a2rr89qcw798xswmg2nnxhjf2rfl1z474vb37db22qnlnzgz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-server";
+          sha256 = "0ffxcgmnz0f2c1i3vfwm8vlm6jyd7ibf4kq5z8c6n50zkwfdmns0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/edit-server";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-server-htmlize = callPackage ({ edit-server
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "edit-server-htmlize";
+        ename = "edit-server-htmlize";
+        version = "20130329.1548";
+        src = fetchFromGitHub {
+          owner = "frobtech";
+          repo = "edit-server-htmlize";
+          rev = "e7f8dadfabe869c77ca241cd6fbd4c52bd908392";
+          sha256 = "174xq45xc632zrb916aw7q4bch96pbi6zgy3dk77qla3ky9cfpl3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-server-htmlize";
+          sha256 = "007lv3698a88wxan7kplz2117azxxpzzgshin9c1aabg059hszlj";
+          name = "recipe";
+        };
+        packageRequires = [ edit-server ];
+        meta = {
+          homepage = "https://melpa.org/#/edit-server-htmlize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    editorconfig = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "editorconfig";
+        ename = "editorconfig";
+        version = "20181114.2309";
+        src = fetchFromGitHub {
+          owner = "editorconfig";
+          repo = "editorconfig-emacs";
+          rev = "d6e48c863ed246be8894c6ee3c3c088ab4db4711";
+          sha256 = "0mlwyhkb059rhf6lhff6zqnyd7f5185j91ncl717lmn8w7fclqf6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/editorconfig";
+          sha256 = "0zv96m07ml8i3k7zm7sdci4hn611n3ypna7zppfkwbdyr7d5k2gc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/editorconfig";
+          license = lib.licenses.free;
+        };
+      }) {};
+    editorconfig-charset-extras = callPackage ({ editorconfig
+                                               , fetchFromGitHub
+                                               , fetchurl
+                                               , lib
+                                               , melpaBuild }:
+      melpaBuild {
+        pname = "editorconfig-charset-extras";
+        ename = "editorconfig-charset-extras";
+        version = "20180222.2057";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "editorconfig-charset-extras-el";
+          rev = "ddf60923c6f4841cb593b2ea04c9c710a01d262f";
+          sha256 = "1v5a6s4x7cm6i0bxaqdpsg8vqj479lp5h45glx4ipk0icdq8cvd9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/editorconfig-charset-extras";
+          sha256 = "15p9qpdwradcnjr0nf0ibhy94yi73l18xz7zxf6khmdirsirpwgh";
+          name = "recipe";
+        };
+        packageRequires = [ editorconfig ];
+        meta = {
+          homepage = "https://melpa.org/#/editorconfig-charset-extras";
+          license = lib.licenses.free;
+        };
+      }) {};
+    editorconfig-custom-majormode = callPackage ({ editorconfig
+                                                 , fetchFromGitHub
+                                                 , fetchurl
+                                                 , lib
+                                                 , melpaBuild }:
+      melpaBuild {
+        pname = "editorconfig-custom-majormode";
+        ename = "editorconfig-custom-majormode";
+        version = "20180815.1944";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "editorconfig-custom-majormode-el";
+          rev = "13ad1c83f847bedd4b3a19f9df7fd925853b19de";
+          sha256 = "1zagd6cliwm8xyhzfvpi7n7m58k78wv4ihc2snq00v7321jjh9bp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/editorconfig-custom-majormode";
+          sha256 = "0ykvjg3gwxky6w5cm0y5s63q9820b7d25fy9plw8sarxwy2a5lxy";
+          name = "recipe";
+        };
+        packageRequires = [ editorconfig ];
+        meta = {
+          homepage = "https://melpa.org/#/editorconfig-custom-majormode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    editorconfig-domain-specific = callPackage ({ cl-lib ? null
+                                                , editorconfig
+                                                , fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild }:
+      melpaBuild {
+        pname = "editorconfig-domain-specific";
+        ename = "editorconfig-domain-specific";
+        version = "20180505.224";
+        src = fetchFromGitHub {
+          owner = "lassik";
+          repo = "editorconfig-emacs-domain-specific";
+          rev = "e9824160fb2e466afa755240ee3ab7cc5657fb04";
+          sha256 = "0gkwhvywfpnay7rxb2bmsnywcd89qw710bsp53sk5fvilgfwfpkj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/editorconfig-domain-specific";
+          sha256 = "1rkan6q7z0qfq28zg114iik71nghd7fbs4g8qppzhgr3pwbpn73q";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib editorconfig ];
+        meta = {
+          homepage = "https://melpa.org/#/editorconfig-domain-specific";
+          license = lib.licenses.free;
+        };
+      }) {};
+    editorconfig-generate = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "editorconfig-generate";
+        ename = "editorconfig-generate";
+        version = "20181115.2235";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "editorconfig-generate-el";
+          rev = "2921b53700dedf16b57d684439add187663954cd";
+          sha256 = "0dqmq0hq603r2qn4wjdzlmsv4csci8d36i259jmwf71v8m1j4rc7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/editorconfig-generate";
+          sha256 = "1xfm3vnr5ngi1vihs7cack8a6zyipvdq260v43cr0y8dqg3sn89i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/editorconfig-generate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edn = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , peg }:
+      melpaBuild {
+        pname = "edn";
+        ename = "edn";
+        version = "20160215.419";
+        src = fetchFromGitHub {
+          owner = "expez";
+          repo = "edn.el";
+          rev = "be9e32d1b49e35247b263b0243df7cfdc8d413ab";
+          sha256 = "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edn";
+          sha256 = "00cy8axhy2p3zalzl8k2083l5a7s3aswb9qfk9wsmf678m8pqwqg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs peg ];
+        meta = {
+          homepage = "https://melpa.org/#/edn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edts = callPackage ({ auto-complete
+                        , auto-highlight-symbol
+                        , dash
+                        , erlang
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , popup
+                        , s }:
+      melpaBuild {
+        pname = "edts";
+        ename = "edts";
+        version = "20171030.9";
+        src = fetchFromGitHub {
+          owner = "tjarvstrand";
+          repo = "edts";
+          rev = "6ef4bdf571235ee1b078db321402270cabff7fda";
+          sha256 = "1nzf8wdv0hs4kp69cy3blwxh18c2bkxr4d4y6ggdp0vmwv41j3zi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edts";
+          sha256 = "0f0rbd0mqqwn743qmr1g5mmi1sbmlcglclww8jxvbvb61jq8vspr";
+          name = "recipe";
+        };
+        packageRequires = [
+          auto-complete
+          auto-highlight-symbol
+          dash
+          erlang
+          f
+          popup
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/edts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    efire = callPackage ({ circe
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "efire";
+        ename = "efire";
+        version = "20151009.1331";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "efire";
+          rev = "d38dd6dd7974b7cb11bff6fd84846fd01163211a";
+          sha256 = "15sc4648lkxsgv2frcfb878z86a7vynixsp1x5i5rg66bd9gzhfy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/efire";
+          sha256 = "0dhgms6s0c889xx75khn1mqfn8i32z4rjlx2w7i0chm2abxbgd3m";
+          name = "recipe";
+        };
+        packageRequires = [ circe ];
+        meta = {
+          homepage = "https://melpa.org/#/efire";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eg = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "eg";
+        ename = "eg";
+        version = "20170830.115";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "eg.el";
+          rev = "1c7f1613d2aaae728ef540305f6ba030616f86bd";
+          sha256 = "1g2ha6q9k6dmi63i2p4aypwf5mha699wr7yy5dsck39mqk15hx0f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eg";
+          sha256 = "1ic6qzk0zmay3vvbb8jg35irqkc0k68dmgbq4j9isiawy449zvp7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    egg = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "egg";
+        ename = "egg";
+        version = "20180713.218";
+        src = fetchFromGitHub {
+          owner = "byplayer";
+          repo = "egg";
+          rev = "5bf9879eec067e25a60f2363137c9e69f7b5cc68";
+          sha256 = "0k7j76hqgnlci944vz1gbyifqd4fh6agmpmf5a883vimw5fpm2q9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/egg";
+          sha256 = "144g1fvs2cmn3px0a98nvxl5cz70kx30v936k5ppyi8gvbj0md5i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/egg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    egison-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "egison-mode";
+        ename = "egison-mode";
+        version = "20181109.824";
+        src = fetchFromGitHub {
+          owner = "egison";
+          repo = "egison";
+          rev = "ddc6d910be421d891efc8c7c033b99b10364c4c3";
+          sha256 = "1rw5xjs4hnikj2swskczxn3x31811znsgzj72b975zbmd5vp98kd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/egison-mode";
+          sha256 = "0bch4863l9wxrss63fj46gy3nx3hp635709xr4c2arw0j7n82lzd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/egison-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eglot = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , jsonrpc
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "eglot";
+        ename = "eglot";
+        version = "20181117.312";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "eglot";
+          rev = "604c1b0c31f7202f83373dd97f620dbc2dddfa52";
+          sha256 = "1wjrf1ax7f7fagfql4j8axwndxi8xbry1kswa0hcmgb3qafqwgn4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eglot";
+          sha256 = "17w39hcgv4p49g841qaicjdx7xac72yxvsc83jf1rrakg713pj7y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs jsonrpc ];
+        meta = {
+          homepage = "https://melpa.org/#/eglot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ego = callPackage ({ dash
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , ht
+                       , htmlize
+                       , lib
+                       , melpaBuild
+                       , mustache
+                       , org
+                       , simple-httpd }:
+      melpaBuild {
+        pname = "ego";
+        ename = "ego";
+        version = "20180228.1704";
+        src = fetchFromGitHub {
+          owner = "emacs-china";
+          repo = "EGO";
+          rev = "719809679c1a60887735db41abae53b61f08ef59";
+          sha256 = "10f179kl53la4dyikzl1xysccx4gk04skzwaw3w1pgr8f5fjppxc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ego";
+          sha256 = "09k33ggc6n7wgykaawbmh6hyrl9dqp0azaq9zcjhjbc88nszj7fj";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ht htmlize mustache org simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/ego";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eide = callPackage ({ fetchgit
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "eide";
+        ename = "eide";
+        version = "20180626.1259";
+        src = fetchgit {
+          url = "https://framagit.org/eide/eide.git";
+          rev = "6bd4c3b67a532527b3514c72bf2d7371172b8a93";
+          sha256 = "1jrbvzf7mk8jpdm3i9vipq9wsgny3ni896s12n68d9chby5cj65n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eide";
+          sha256 = "1962shxcfn3v1ljann7182ca6ciy5xfbcd6l9l8rc8gikp55qv8m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eimp = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "eimp";
+        ename = "eimp";
+        version = "20120826.1339";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "eimp";
+          rev = "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f";
+          sha256 = "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eimp";
+          sha256 = "00g77bg49m38cjfbh17ccnmksz05qx7yvgl6i4i4hysbr2d8pgxd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eimp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ein = callPackage ({ auto-complete
+                       , cl-generic
+                       , dash
+                       , deferred
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , request
+                       , request-deferred
+                       , s
+                       , skewer-mode
+                       , websocket }:
+      melpaBuild {
+        pname = "ein";
+        ename = "ein";
+        version = "20181113.1317";
+        src = fetchFromGitHub {
+          owner = "millejoh";
+          repo = "emacs-ipython-notebook";
+          rev = "7a6781f05d6d322dbc2df9c5eb15507b81e0fd54";
+          sha256 = "0qybbrmi82g33222h90zapm39ag0pr5njm5iyq4pcgb0gkdprsxn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ein";
+          sha256 = "14blq1cbrp00rq0ilk7z9qppqfj0r4n3jidw3abcpchvh5ln086r";
+          name = "recipe";
+        };
+        packageRequires = [
+          auto-complete
+          cl-generic
+          dash
+          deferred
+          request
+          request-deferred
+          s
+          skewer-mode
+          websocket
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/ein";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ein-mumamo = callPackage ({ ein
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ein-mumamo";
+        ename = "ein-mumamo";
+        version = "20150301.1628";
+        src = fetchFromGitHub {
+          owner = "millejoh";
+          repo = "ein-mumamo";
+          rev = "57eb0876ab3fba52c1007ce5793d5319cae629c7";
+          sha256 = "1426d8lrkx5kml6m1b3pv4117z34v96d8iq24m1q5w6ar72mspxg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ein-mumamo";
+          sha256 = "029sk90xz9fhv2s56f5hp0aks1d6ybz517009vv4892bbzkpjv1w";
+          name = "recipe";
+        };
+        packageRequires = [ ein ];
+        meta = {
+          homepage = "https://melpa.org/#/ein-mumamo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eink-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "eink-theme";
+        ename = "eink-theme";
+        version = "20170717.807";
+        src = fetchFromGitHub {
+          owner = "maio";
+          repo = "eink-emacs";
+          rev = "4c990bb3428f725735fa1f733ef4c5ad61f632b0";
+          sha256 = "0jxs36qdsx58ni5185qyi1c7gchyla3dpv4v9drj1n072ls82ld4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eink-theme";
+          sha256 = "0z437cpf1b8bqyi7bv0w0dnc52q4f5g17530lwdcxjkr38s9b1zn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eink-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ejc-sql = callPackage ({ auto-complete
+                           , clomacs
+                           , dash
+                           , direx
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , spinner }:
+      melpaBuild {
+        pname = "ejc-sql";
+        ename = "ejc-sql";
+        version = "20181113.255";
+        src = fetchFromGitHub {
+          owner = "kostafey";
+          repo = "ejc-sql";
+          rev = "9eef50aeecf58fe7cc88722c8ade62edbe22c34e";
+          sha256 = "13f02adpxfqlx0qksc97srlidpfakb7nsvv56dacx1zavwfkba2a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ejc-sql";
+          sha256 = "0v9mmwc2gm58nky81q7fibj93zi7zbxq1jzjw55dg6cb6qb87vnx";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete clomacs dash direx emacs spinner ];
+        meta = {
+          homepage = "https://melpa.org/#/ejc-sql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-autoyas = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "el-autoyas";
+        ename = "el-autoyas";
+        version = "20120918.617";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "el-autoyas.el";
+          rev = "bde0251ecb504f585dfa27c205c8e312655310cc";
+          sha256 = "0dbp2zz993cm7mrd58c4iflbzqwg50wzgn2cpwfivk14w1mznh4n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-autoyas";
+          sha256 = "0hh5j79f3z82nmb3kqry8k8lgc1qswk6ni3g9jg60pasc3wkbh6c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-autoyas";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-fly-indent-mode = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "el-fly-indent-mode";
+        ename = "el-fly-indent-mode";
+        version = "20180421.1943";
+        src = fetchFromGitHub {
+          owner = "jiahaowork";
+          repo = "el-fly-indent-mode.el";
+          rev = "1dd4b907ff4d9581c18b4e38e8719e83ba0dace1";
+          sha256 = "15l74s3jissjs7jpdmrgy8ys50b0ir27nm0d25lbs4yxhsmvzq2b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-fly-indent-mode";
+          sha256 = "00iqiawbzijm515lswbkzxf1m6ys242xrg6lzf8k40g2ygyd1q1r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/el-fly-indent-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-get = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "el-get";
+        ename = "el-get";
+        version = "20181005.1925";
+        src = fetchFromGitHub {
+          owner = "dimitri";
+          repo = "el-get";
+          rev = "08005ef89b468aae2269021a82c7edca3dadb438";
+          sha256 = "07pljkgg4na929hdw8kaddf3z9a7m0dspmgrdqf1b0mw1xg7cl58";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-get";
+          sha256 = "1438v2sw5n67q404c93y2py226v469nagqwp4w9l6yyy40h4myhz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-get";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-init = callPackage ({ anaphora
+                           , cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "el-init";
+        ename = "el-init";
+        version = "20150728.220";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "el-init";
+          rev = "25fd21d820bca1cf576b8f70c8d5a3bc76792597";
+          sha256 = "1mzla7ijmq1mgzr6bf16mjdycbf8ylsf4zdk4j6fh5kw5n4k6c5n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-init";
+          sha256 = "121n6z8p9kzi7axp4i2kyi621gw20635w4j81i1bryblaqrv5kl5";
+          name = "recipe";
+        };
+        packageRequires = [ anaphora cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/el-init";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-init-viewer = callPackage ({ anaphora
+                                  , cl-lib ? null
+                                  , ctable
+                                  , dash
+                                  , el-init
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "el-init-viewer";
+        ename = "el-init-viewer";
+        version = "20150303.28";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "el-init-viewer";
+          rev = "c40417db7808c8b8c9b2f196a69de5da7eee84a2";
+          sha256 = "1dc2dr2s6agchg116189zdw96dwvik9d6dcw06jr5mh2gp4apvpa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-init-viewer";
+          sha256 = "0kkmsml9xf2n8nlrcicfg2l78s3dlhd6ssx0s62v77v4wdpl297m";
+          name = "recipe";
+        };
+        packageRequires = [ anaphora cl-lib ctable dash el-init emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/el-init-viewer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-mock = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "el-mock";
+        ename = "el-mock";
+        version = "20170824.1254";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "el-mock.el";
+          rev = "e65ec012a724d0f2518e6601279a07e34716cc45";
+          sha256 = "0iyjcihpd79rz2pzasc5c166py34n1fp66jgbm1dxspsid3cznn7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-mock";
+          sha256 = "07m7w7n202nijnxidy0j0r4nbcvlnbkm9b0n8qb2bwi3d4cfp77l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-mock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-patch = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "el-patch";
+        ename = "el-patch";
+        version = "20181018.910";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "el-patch";
+          rev = "38213a35bfbc600b732307c85d29365e4eb6f5cc";
+          sha256 = "0qwpcaqgkymgm3xvyffh8rsxxnx714xpd0jirl7xqjg8q7wm8ckb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-patch";
+          sha256 = "1imijmsni8c8fxjrzprnanf94c1pma3h5w9p75c4y99l8l3xmj7g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/el-patch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-pocket = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , web }:
+      melpaBuild {
+        pname = "el-pocket";
+        ename = "el-pocket";
+        version = "20170922.549";
+        src = fetchFromGitHub {
+          owner = "pterygota";
+          repo = "el-pocket";
+          rev = "a80abfb67efe68ada1d7d0a73aecee57e763baaa";
+          sha256 = "0q4nsgqpjmmxml5pcb6im1askk6q7c3ykzv6fgf1w8jgkvdifa6f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-pocket";
+          sha256 = "0fgylpfixsx5l1nrgz6n1c2ayf52p60f9q290hmkn36siyx5hixw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs web ];
+        meta = {
+          homepage = "https://melpa.org/#/el-pocket";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-spec = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "el-spec";
+        ename = "el-spec";
+        version = "20121018.4";
+        src = fetchFromGitHub {
+          owner = "uk-ar";
+          repo = "el-spec";
+          rev = "1dbc465401d4aea5560318c4f13ff30920a0718d";
+          sha256 = "1lsq7980pwcwlg7z37hrig8ddm9nyvaqrlczv1w0vy631vc5z2az";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-spec";
+          sha256 = "017syizs8qw5phwvpzzffzdnj6rh9q4n7s51qjvj8qfb3088igkh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-spec";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-spice = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "el-spice";
+        ename = "el-spice";
+        version = "20180128.921";
+        src = fetchFromGitHub {
+          owner = "vedang";
+          repo = "el-spice";
+          rev = "972dace20ec61cd27b9322432d0c7a688c6f061a";
+          sha256 = "1wrb46y4s4v0lwwyriz2qn1j1l804jyb4dmadf462jxln85rml70";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-spice";
+          sha256 = "0i0l3y9w1q9pf5zhvmsq4h427imix67jgcfwq21b6j82dzg5l4hg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-spice";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-sprunge = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , htmlize
+                              , lib
+                              , melpaBuild
+                              , web-server }:
+      melpaBuild {
+        pname = "el-sprunge";
+        ename = "el-sprunge";
+        version = "20140106.1739";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "el-sprunge";
+          rev = "37855ec60aeb4d565c49a4d711edc7341e9a22cb";
+          sha256 = "04k1fz0ypmfzgwamncp2vz0lq54bq6y7c8k9nm39csp2564vmbbc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-sprunge";
+          sha256 = "0rb1cr7zrfl1s5prxy3xwdqgnm8ddw33pcvk049km2qbccb08v6a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs htmlize web-server ];
+        meta = {
+          homepage = "https://melpa.org/#/el-sprunge";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-spy = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "el-spy";
+        ename = "el-spy";
+        version = "20131226.1208";
+        src = fetchFromGitHub {
+          owner = "uk-ar";
+          repo = "el-spy";
+          rev = "b1dead9d1877660856ada22d906ac4e54695aec7";
+          sha256 = "016l3inzb7dby0w58najj2pvymwk6gllsxvqj2fkz3599i36p1pn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-spy";
+          sha256 = "1bgv4mgsnkmjdyay7lhkqdszvnwpjy4dxxw11kq45w866ba8645n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-spy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-x = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "el-x";
+        ename = "el-x";
+        version = "20140111.1401";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "el-x";
+          rev = "b0b69b182f7a81a550ccf9b3a14d8d91560b4f70";
+          sha256 = "1dky0vydwh7l786w7gci4x17kkf6dg8gijmqzl4y0ij9zm9kfxzz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-x";
+          sha256 = "1721d9mljlcbdwb5b9934q7a48y30x6706pp4bjvgys0r64dml5g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el2markdown = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "el2markdown";
+        ename = "el2markdown";
+        version = "20170630.1158";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "el2markdown";
+          rev = "368d99313683cd943c99feaffca356be60bdb636";
+          sha256 = "1h0cr8qcvj9r3acb6bf5nyglvi5gdglwflkfl5jbzp0nm1p9iqcg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el2markdown";
+          sha256 = "1bpfddcvg9wgc5g14clj6wyiw8rsh45rgibvlmyan2m0gmwvmqx6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el2markdown";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el2org = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "el2org";
+        ename = "el2org";
+        version = "20180311.855";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "el2org";
+          rev = "81f1c97db8911f5bdf92c729630ab509de4ec73f";
+          sha256 = "152y6a6qjch2w84axghzcqiswhx1cq5bq1r1gjfffh41wsddqb53";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el2org";
+          sha256 = "02kyvzpjws2mrp414i4zm4fmrnzgkaax6bnrlyhp17a8aqaggbnh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/el2org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elbank = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , seq }:
+      melpaBuild {
+        pname = "elbank";
+        ename = "elbank";
+        version = "20180316.643";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "elbank";
+          rev = "6dbd21e31fdf7cf62491f6d24b8198d4f91a031b";
+          sha256 = "1krqvwh6a4cqbqawmydq16ardnn6ddf7wm5605794j145dd2268v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elbank";
+          sha256 = "1i1cdywcbdj9ykfczbagrqdpgf3c88f1kc0mdlj8mzyvjixx7mhk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/elbank";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elcontext = callPackage ({ emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ht
+                             , hydra
+                             , lib
+                             , melpaBuild
+                             , osx-location
+                             , uuidgen }:
+      melpaBuild {
+        pname = "elcontext";
+        ename = "elcontext";
+        version = "20180526.604";
+        src = fetchFromGitHub {
+          owner = "rollacaster";
+          repo = "elcontext";
+          rev = "f434ffc655e6349a4dd52285ff68a9194bcfc949";
+          sha256 = "0gbbnx969asq73ypc5lp4qpi4iwwfzm1mmxb1fdifl2lf18p8qwv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elcontext";
+          sha256 = "1firdsrag7r02qb3kjxc3j8l9psvh117z3qwycazhxdz82z0isw7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f ht hydra osx-location uuidgen ];
+        meta = {
+          homepage = "https://melpa.org/#/elcontext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elcord = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "elcord";
+        ename = "elcord";
+        version = "20181027.2350";
+        src = fetchFromGitHub {
+          owner = "Mstrodl";
+          repo = "elcord";
+          rev = "2224b0dd9137c04a62dd8ff7078ab80e9289643e";
+          sha256 = "1gi0hs0kakyrhh2g3555njs6g83zy4whf70gd9ysa8pvh05br8ga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elcord";
+          sha256 = "0a1f99mahaixx6j3lylc7w2zlq8f614m6xhd0x927afv3a6n50l6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elcord";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elcouch = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , json-mode
+                           , lib
+                           , libelcouch
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "elcouch";
+        ename = "elcouch";
+        version = "20180809.236";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "elcouch";
+          rev = "1491b04d2aa4a15dd61ef8df1710fd6724f0f384";
+          sha256 = "0a72nwy48sh97g75m3paj2h61j4a9jhar6n5jj6n0jk8jdrc0wwj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elcouch";
+          sha256 = "1dp7chvnz6gadqgyqbvdxpva3hm3sx60izsa690mp2rifjyxgqf1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs json-mode libelcouch ];
+        meta = {
+          homepage = "https://melpa.org/#/elcouch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eldoc-eval = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "eldoc-eval";
+        ename = "eldoc-eval";
+        version = "20180607.457";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "eldoc-eval";
+          rev = "f59a1ae7ecfa97ef659c7adb93e0673419acc485";
+          sha256 = "1anpshps44zx4qrkddbxd24q63fm5y93zbwmsb1l2cwbykf5s5iz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eldoc-eval";
+          sha256 = "0z4scgi2xgrgd47aqqmyv1ww8alh43s0qny5qmh3f1nnppz3nd7c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eldoc-eval";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eldoc-overlay = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , inline-docs
+                                 , lib
+                                 , melpaBuild
+                                 , quick-peek }:
+      melpaBuild {
+        pname = "eldoc-overlay";
+        ename = "eldoc-overlay";
+        version = "20171219.140";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "eldoc-overlay";
+          rev = "b13a5641f694cda92740ccdb1ee2c475507eb206";
+          sha256 = "0zn68h4mcdd3j8jfrpaa5d8f0irdwly5wj6v6pm54xc8x14wc141";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eldoc-overlay";
+          sha256 = "0nn6i89xbw8vkd5ybsnc1zpnf3ra4s8pf01jdj2i59ayjs64s28x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs inline-docs quick-peek ];
+        meta = {
+          homepage = "https://melpa.org/#/eldoc-overlay";
+          license = lib.licenses.free;
+        };
+      }) {};
+    electric-case = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "electric-case";
+        ename = "electric-case";
+        version = "20150417.412";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "electric-case";
+          rev = "984b6a4c6c4cdcefeecb59e941f5f184cc1dedff";
+          sha256 = "11rlj132xfrdp9wq0mx0dnza4k5s6ysgqs6nzjvwcw1w7a6jmwa3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/electric-case";
+          sha256 = "1ch108ljzg5xkk4pkfpfxm8v2yzqk79q3h2zhzzqhsydq7r07bdn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/electric-case";
+          license = lib.licenses.free;
+        };
+      }) {};
+    electric-operator = callPackage ({ dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "electric-operator";
+        ename = "electric-operator";
+        version = "20181030.1455";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "electric-operator";
+          rev = "6967ed6d90f92e0ebc501325223e87f366f00dfb";
+          sha256 = "18r44n9z0kp8asxjsxjfa0pbwvyf9irgvhqygqp8f82l06ph29dy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/electric-operator";
+          sha256 = "043bkpvvk42lmkll5jnz4q8i0m44y4wdxvkz6hiqhqcp1rv03nw2";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/electric-operator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    electric-spacing = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "electric-spacing";
+        ename = "electric-spacing";
+        version = "20161209.1157";
+        src = fetchFromGitHub {
+          owner = "xwl";
+          repo = "electric-spacing";
+          rev = "9d0f8a213133f2619a4e9dfbba3b00d4348c07b0";
+          sha256 = "1wzf8q2k2iwnm9b5kj16bwif7g0qc7ll3cjs20gbmcnq5xmhwx9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/electric-spacing";
+          sha256 = "0fcsz9wmibqp6ci0pa5r4gzlrsyj5klajxpgfksa0nfj3dc94cvg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/electric-spacing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elein = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "elein";
+        ename = "elein";
+        version = "20120120.316";
+        src = fetchFromGitHub {
+          owner = "remvee";
+          repo = "elein";
+          rev = "d4c0c0491dbb7c90e953d7a16172107c37103605";
+          sha256 = "1ijrhm9vrzh5wl1rr9ayl11dwm05bh1i43fnbz3ga58l6whgkfpw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elein";
+          sha256 = "01y5yrmm3biyrfgnl3qjfpn1xvjk2nabwjr8cls53ds697qpz5x2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/elein";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elf-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "elf-mode";
+        ename = "elf-mode";
+        version = "20161009.48";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "elf-mode";
+          rev = "cd280d683cd3341d8bb31af6db7e3b74a133e6ab";
+          sha256 = "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elf-mode";
+          sha256 = "0xwpaqg4mc0a0d8a4dxbd1sqzvi01gfhwr75f7i3sjzx0fj8vcwd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elfeed = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "elfeed";
+        ename = "elfeed";
+        version = "20180916.638";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "elfeed";
+          rev = "afafa1f7d9e29de55ce5b1709074738a7e185f2a";
+          sha256 = "1dhnimh0xvrydk5y99vzyinammryj0554dbmakf8bglbzpdbrk2r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elfeed";
+          sha256 = "1psga7fcjk2b8xjg10fndp9l0ib72l5ggf43gxp62i4lxixzv8f9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elfeed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elfeed-goodies = callPackage ({ ace-jump-mode
+                                  , cl-lib ? null
+                                  , elfeed
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , noflet
+                                  , popwin
+                                  , powerline }:
+      melpaBuild {
+        pname = "elfeed-goodies";
+        ename = "elfeed-goodies";
+        version = "20171126.2251";
+        src = fetchFromGitHub {
+          owner = "algernon";
+          repo = "elfeed-goodies";
+          rev = "fc0c3e72f9fcd7bbf5237f6f2323bc666e8240b4";
+          sha256 = "16qkh3cp764hayj4n003sm1q673bq7b3rzf1mii5f3xp6n8i84b7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elfeed-goodies";
+          sha256 = "0zpk6nx757hasgzcww90fzkcdn078my33p7yax7xslvi4msm37bi";
+          name = "recipe";
+        };
+        packageRequires = [
+          ace-jump-mode
+          cl-lib
+          elfeed
+          noflet
+          popwin
+          powerline
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/elfeed-goodies";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elfeed-org = callPackage ({ cl-lib ? null
+                              , dash
+                              , elfeed
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , org
+                              , s }:
+      melpaBuild {
+        pname = "elfeed-org";
+        ename = "elfeed-org";
+        version = "20181015.400";
+        src = fetchFromGitHub {
+          owner = "remyhonig";
+          repo = "elfeed-org";
+          rev = "607b8bf4923a995260a072559b77bee188614a06";
+          sha256 = "1m4v5z2ciqlmnr7gfzx6cbi81ck80fvy88fd0lpnhlqj2h9k5pys";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elfeed-org";
+          sha256 = "0rnxr2q2ib6xrdx41ams1z2ivw5zhcsmqdylyvbw62h20rlmlgm8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash elfeed org s ];
+        meta = {
+          homepage = "https://melpa.org/#/elfeed-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elfeed-protocol = callPackage ({ auth-source
+                                   , cl-lib ? null
+                                   , elfeed
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "elfeed-protocol";
+        ename = "elfeed-protocol";
+        version = "20181117.359";
+        src = fetchFromGitHub {
+          owner = "fasheng";
+          repo = "elfeed-protocol";
+          rev = "29895e39400a31750dfd3d9a327840d7a59384df";
+          sha256 = "0wqjs0j03x69afjf7clb0m37knb3mzdnvkc4x879y7bymxl0aq1d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elfeed-protocol";
+          sha256 = "1gd2ny764qsnnqf3j7rbdqhh7hqd5c0fzwxx6wacd0dpbq4w56qi";
+          name = "recipe";
+        };
+        packageRequires = [ auth-source cl-lib elfeed emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elfeed-protocol";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elfeed-web = callPackage ({ elfeed
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , simple-httpd }:
+      melpaBuild {
+        pname = "elfeed-web";
+        ename = "elfeed-web";
+        version = "20180829.1016";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "elfeed";
+          rev = "3d1c6ecbe585f9fe6ca5a97a3fc352d68f303f9e";
+          sha256 = "1bzpl6lc7kq9bph4bfz1fn19207blrnhjr2g7yinhn0nnnjmxi8i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elfeed-web";
+          sha256 = "14ydwvjjc6wbhkj4g4xdh0c3nh4asqsz8ln7my5vjib881vmaq1n";
+          name = "recipe";
+        };
+        packageRequires = [ elfeed emacs simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/elfeed-web";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elgrep = callPackage ({ async
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "elgrep";
+        ename = "elgrep";
+        version = "20181023.259";
+        src = fetchFromGitHub {
+          owner = "TobiasZawada";
+          repo = "elgrep";
+          rev = "d648df1f2bde466d74c4810d7abab700a10b30d0";
+          sha256 = "0r273hjc33y0lzicg0ilm322b7q0pdjb0mawvgqm6bqj11sp3dwc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elgrep";
+          sha256 = "0b8dma52zv57sh1jbrabfy6k5lzixs7f541s8dsqyrg0fzlq460j";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elhome = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , initsplit
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "elhome";
+        ename = "elhome";
+        version = "20161025.1342";
+        src = fetchFromGitHub {
+          owner = "demyanrogozhin";
+          repo = "elhome";
+          rev = "e789e806469af3e9705f72298683c21f6c3a516d";
+          sha256 = "1q9glli1czbfp62aalblaak55j8rj2nl8bm8nifnnb8jrzj1qrn0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elhome";
+          sha256 = "1k7936wxgslr29511dz9az38i9vi35rcxk68gzv35v9lpj89lalh";
+          name = "recipe";
+        };
+        packageRequires = [ initsplit ];
+        meta = {
+          homepage = "https://melpa.org/#/elhome";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-def = callPackage ({ dash
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "elisp-def";
+        ename = "elisp-def";
+        version = "20180806.23";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "elisp-def";
+          rev = "368b04da68783601b52e3169312183381871cf9e";
+          sha256 = "0l1kj7xd4332xk821z24c14lhkpcmca5gmivpb8shlk10cvjvxjw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-def";
+          sha256 = "1y29nsgjv9nb03g0jc5hb1a8k23r54ivdlv9h0a384cig8i91hsz";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-def";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-depend = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "elisp-depend";
+        ename = "elisp-depend";
+        version = "20161230.750";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "elisp-depend";
+          rev = "005fdef289fff4bd636a1deef8de6b2737e5d073";
+          sha256 = "1j39b6a6qhmxpknnxx8yn3sz39ldyvf4lmvi94c4cw7pq7dmmpma";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-depend";
+          sha256 = "0zpafwnm52g6v867f1ghfb492nnmm66imcwlhm5v9hhgwy3z17jm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-depend";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-docstring-mode = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "elisp-docstring-mode";
+        ename = "elisp-docstring-mode";
+        version = "20170304.815";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "elisp-docstring-mode";
+          rev = "b135d95b158048927f12184e5cfb8fe01fc44713";
+          sha256 = "0jyyvrgnplbsg82miawq4fjzb9ds2wyhpqlllyg0s7q49lwsb2fi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-docstring-mode";
+          sha256 = "0mdh3ikn6zfd3fbmifvivqih2fsijvlzalljdvm32crs9cy6fa96";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-docstring-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-format = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "elisp-format";
+        ename = "elisp-format";
+        version = "20160508.252";
+        src = fetchFromGitHub {
+          owner = "Yuki-Inoue";
+          repo = "elisp-format";
+          rev = "9fe516d39b349070537099a01fe34e47fbded2c8";
+          sha256 = "0dmx5c2lrp8a0836zv4sv1p5h7dnmyyzm45lj3h9rqr1c8l1h7jm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-format";
+          sha256 = "1l0596y4yjn3jdyy6pgws1pgz6i12fxfy27566lmxklbxp8sxgy8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-format";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-lint = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "elisp-lint";
+        ename = "elisp-lint";
+        version = "20180224.1242";
+        src = fetchFromGitHub {
+          owner = "gonewest818";
+          repo = "elisp-lint";
+          rev = "04b0d36ec0e4dc1bb54c2bf4c2d16b2af8cf6a39";
+          sha256 = "04hxpfgvkh4ivaxqbhnp3j68i1kqzg1v19bssnvcagll2mm4r3xg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-lint";
+          sha256 = "13cxcn0qp63f2nkv37c3w47dby9cqm4l1f8xilgpczdaxd86kd63";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-lint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-refs = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , loop
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "elisp-refs";
+        ename = "elisp-refs";
+        version = "20181111.1423";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "elisp-refs";
+          rev = "686aa5e6a6cc7cd20c6e11837251e19f303211b6";
+          sha256 = "0cnf4vjcnnwr9inl9g4nwlph4nfkmhj2ivbvf3khh7f3rjk9i2d5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-refs";
+          sha256 = "1pj3dm2z6m24179ibl7zhr8lhan2v2rjnm3abfciwp228piz1sfz";
+          name = "recipe";
+        };
+        packageRequires = [ dash loop s ];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-refs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-sandbox = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "elisp-sandbox";
+        ename = "elisp-sandbox";
+        version = "20131116.1042";
+        src = fetchFromGitHub {
+          owner = "joelmccracken";
+          repo = "elisp-sandbox";
+          rev = "ddd669266ca36d7e4ebba73eb1ab42523787e042";
+          sha256 = "1pwx0cksgf9qyd6nl1540jmp3p0adgz2sk38r5s8gbli3x109hy3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-sandbox";
+          sha256 = "1bazm1cf9ghh9b7jzqqgyfcalnrfg7vmxqbn4fiy2c76gbzlr2bp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-sandbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-slime-nav = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "elisp-slime-nav";
+        ename = "elisp-slime-nav";
+        version = "20160128.1109";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "elisp-slime-nav";
+          rev = "0e96d9f1f0d334f09414b509d44d5c000b51f432";
+          sha256 = "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-slime-nav";
+          sha256 = "009zgp68i4naprpjr8lcp06lh3i5ickn0nh0lgvrqs0niprnzh8c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-slime-nav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elixir-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , pkg-info }:
+      melpaBuild {
+        pname = "elixir-mode";
+        ename = "elixir-mode";
+        version = "20180711.545";
+        src = fetchFromGitHub {
+          owner = "elixir-editors";
+          repo = "emacs-elixir";
+          rev = "90323cd7669eb472ee1f97b9d070056ebe225d15";
+          sha256 = "06kq92r9nmw95l6isc87w0yb9jmd11bm09j3hwww4sn2bv5z2686";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elixir-mode";
+          sha256 = "0d25p6sal1qg1xsq5yk343afnrxa0lzpx5gsh72khnx2i8pi40vz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/elixir-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elixir-yasnippets = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , yasnippet }:
+      melpaBuild {
+        pname = "elixir-yasnippets";
+        ename = "elixir-yasnippets";
+        version = "20150417.539";
+        src = fetchFromGitHub {
+          owner = "hisea";
+          repo = "elixir-yasnippets";
+          rev = "980ca7626c14ef0573bec0035ec7942796062783";
+          sha256 = "1sdq4372i19wdxpdp3347a1rf5zf5w6sa0da6lr511m7ri0lj6hd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elixir-yasnippets";
+          sha256 = "0vmkcd88wfafv31lyw0983p4qjj387qf258q7py1ij47fcmfp579";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/elixir-yasnippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elm-mode = callPackage ({ dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , let-alist
+                            , lib
+                            , melpaBuild
+                            , s
+                            , seq }:
+      melpaBuild {
+        pname = "elm-mode";
+        ename = "elm-mode";
+        version = "20181114.1435";
+        src = fetchFromGitHub {
+          owner = "jcollard";
+          repo = "elm-mode";
+          rev = "a52c0c6216145ec1cf39d06541ad74f33f4816cc";
+          sha256 = "0gvnfkqy3245n5c5vyc3dbavmw35ha78lwr25ri0bag3h5w61fp9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elm-mode";
+          sha256 = "1gw9szkyr1spcx7qijddhxlm36h0hmfd53b4yzp1336yx44mlnd1";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f let-alist s seq ];
+        meta = {
+          homepage = "https://melpa.org/#/elm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elm-test-runner = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "elm-test-runner";
+        ename = "elm-test-runner";
+        version = "20180918.1555";
+        src = fetchFromGitHub {
+          owner = "juanedi";
+          repo = "elm-test-runner";
+          rev = "73696add403cee6547fcb6eb4e49798e1583d0e2";
+          sha256 = "1pphswh5dps98y4zm9fm5wvs3g0ayx7l2nv7wd6np3ydn3gwj25m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elm-test-runner";
+          sha256 = "1axzp93a0xmbprskql4bdfnxnmcpfnq6xf7c4x7cgn5pbd1p6inz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elm-test-runner";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elm-yasnippets = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yasnippet }:
+      melpaBuild {
+        pname = "elm-yasnippets";
+        ename = "elm-yasnippets";
+        version = "20160331.2224";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "elm-yasnippets";
+          rev = "45a11a0cef0c36633fb3477d3dc4167e82779ba4";
+          sha256 = "1zb5yra6znkr7yaq6wqlmlr054wkv9cy1dih8h4j2gp2wnfwg968";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elm-yasnippets";
+          sha256 = "0nnr0sxkxviw2i7b5s8jgvsv7lgqxqvirmvmband84q9gxlz24zb";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/elm-yasnippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elmacro = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "elmacro";
+        ename = "elmacro";
+        version = "20180628.711";
+        src = fetchFromGitHub {
+          owner = "Silex";
+          repo = "elmacro";
+          rev = "89b9b0feabafd01fee48111d67131c4c9b5fed9a";
+          sha256 = "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elmacro";
+          sha256 = "0644rgwawivrq1shsjx1x2p53z7jgr6bxqgn2smzql8pp6azy7xz";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/elmacro";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elmine = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "elmine";
+        ename = "elmine";
+        version = "20170511.20";
+        src = fetchFromGitHub {
+          owner = "leoc";
+          repo = "elmine";
+          rev = "432d2f2f7cb5b533f25b993d1001abcadcebe8ed";
+          sha256 = "02lsxj9zkcaiqlzy986n1f65cfyd8pkrdljgplsbd9p0w8ys0s94";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elmine";
+          sha256 = "1xkx1wwrzd2dl13z8n4qh3gl202j0i9crab5b3788z8mq0g4v4bn";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/elmine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elnode = callPackage ({ creole
+                          , dash
+                          , db
+                          , fakir
+                          , fetchFromGitHub
+                          , fetchurl
+                          , kv
+                          , lib
+                          , melpaBuild
+                          , noflet
+                          , s
+                          , web }:
+      melpaBuild {
+        pname = "elnode";
+        ename = "elnode";
+        version = "20140203.1506";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "elnode";
+          rev = "3f2bf225853e40a2a10386ee5ae0bd6ba5d44ce9";
+          sha256 = "0p3cj5vgka388i4dk9r7bx8pv8mywnfij9ahgqak5jlsddflh8hw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elnode";
+          sha256 = "0piy5gy9a7c8s10b99fmdyh6glhvjvdyrz0x2bv30h7wplx5szi6";
+          name = "recipe";
+        };
+        packageRequires = [ creole dash db fakir kv noflet s web ];
+        meta = {
+          homepage = "https://melpa.org/#/elnode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elog = callPackage ({ eieio ? null
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "elog";
+        ename = "elog";
+        version = "20160724.1555";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "elog";
+          rev = "a67237d9813c7591614d95e2ef31cc5e5ed3f31b";
+          sha256 = "0alg5nbmq56zsc032pvah92h5fw155fbfjc275k9vbh915hs6y0w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elog";
+          sha256 = "0hixsi60nf0khm9xmya3saf95ahn1gydp0l5wxawsc491qwg4vqd";
+          name = "recipe";
+        };
+        packageRequires = [ eieio ];
+        meta = {
+          homepage = "https://melpa.org/#/elog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elogcat = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "elogcat";
+        ename = "elogcat";
+        version = "20151120.1641";
+        src = fetchFromGitHub {
+          owner = "youngker";
+          repo = "elogcat.el";
+          rev = "cafe9bd5c0d6561d72066c70a55c246453693efd";
+          sha256 = "117vb19z006hjs0717r5l90h4rv6rciw3cijlgg006f4qqj3g9s5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elogcat";
+          sha256 = "0sqdqlpg4firswr742nrb6b8sz3bpijf6pbxvandq3ddpm0rx9ia";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/elogcat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eloud = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "eloud";
+        ename = "eloud";
+        version = "20160731.857";
+        src = fetchFromGitHub {
+          owner = "smythp";
+          repo = "eloud";
+          rev = "c1d8274ca207cd270f8ad7f62993bd6df304d561";
+          sha256 = "0ng3d82518i0d8dp8719ssinb1g7km18lcs38hzprgqy9ycqc1qb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eloud";
+          sha256 = "1h8wd5mfi1cn9bzrckgc5mdrr5jkqsx92ay008p650wvjl689rn2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eloud";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elpa-audit = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "elpa-audit";
+        ename = "elpa-audit";
+        version = "20141023.631";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "elpa-audit";
+          rev = "1ca4e6073f8c4cbb41688b69d3b3feaa1a392efc";
+          sha256 = "1dadf24x6v1vk57bp6w0g2dysigy5cqjzwldc8dn129f4pfrhipy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elpa-audit";
+          sha256 = "18a8n22g53d8fxzr3snb2px28gvxbkx44grrx8lywaprz1f1lwdi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/elpa-audit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elpa-clone = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "elpa-clone";
+        ename = "elpa-clone";
+        version = "20170502.514";
+        src = fetchFromGitHub {
+          owner = "dochang";
+          repo = "elpa-clone";
+          rev = "92f4c9d3570ad002575a90d0cc4a522c203a1110";
+          sha256 = "0m5w5wgyslvakcqpr3d198sy3561w2h002gflw0jp47v17hba1r7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elpa-clone";
+          sha256 = "172gpmpwf75y41n3v05l47w34x83vy63bqk97fd8a6b4dkj91lqa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elpa-clone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elpa-mirror = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "elpa-mirror";
+        ename = "elpa-mirror";
+        version = "20181012.1956";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "elpa-mirror";
+          rev = "7b881f881a0c8a8de14161cbd3869c2a7591706c";
+          sha256 = "1hrj6jkmk5b0q40nnpadn08b4cnals48rvlqrmfshjc7gz06kjcj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elpa-mirror";
+          sha256 = "1jnviav2ybr13cgllg26kfjrwrl25adggnqiiwyjwgbbzxfycah8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elpa-mirror";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elpy = callPackage ({ company
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , find-file-in-project
+                        , highlight-indentation
+                        , lib
+                        , melpaBuild
+                        , pyvenv
+                        , s
+                        , yasnippet }:
+      melpaBuild {
+        pname = "elpy";
+        ename = "elpy";
+        version = "20181103.405";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "elpy";
+          rev = "c60189ec9bba29b75f32dfab814a9c7af96520eb";
+          sha256 = "0wynzp5xmrgiggmam82n6lfaiqmfl4n3ccpsgnh86r6pbsmssxjk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elpy";
+          sha256 = "1ri3dwnkw005plj1g5grmmq9np41sqk4s2v18pwsvr18ysnq6nnr";
+          name = "recipe";
+        };
+        packageRequires = [
+          company
+          emacs
+          find-file-in-project
+          highlight-indentation
+          pyvenv
+          s
+          yasnippet
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/elpy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elpygen = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , yasnippet }:
+      melpaBuild {
+        pname = "elpygen";
+        ename = "elpygen";
+        version = "20171225.936";
+        src = fetchFromGitHub {
+          owner = "vkazanov";
+          repo = "elpygen";
+          rev = "21929c997a05968f9eefe52b85a76ceaab3b0d81";
+          sha256 = "093ck4dkdvbgafb1bmkmszg1ba81ns5kjbk2iq2b5p9dvfcjjr3k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elpygen";
+          sha256 = "01fak1dz9mna3p4c2r0scb0j10qk3lvpq270jy6rvzlcbwri4akl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/elpygen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elquery = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "elquery";
+        ename = "elquery";
+        version = "20180917.1517";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "elquery";
+          rev = "eac429d8550fbf1582c57d5e16fed9f320d6eb30";
+          sha256 = "1jkbrv5r5vzqjhadb4dcgks47gaj7aavzdkzc5gjn5zv5fmm1in2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elquery";
+          sha256 = "19yik9w4kcj7i9d3bwwdszznwcrh75hxd0540iqk5by861z5f3zr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/elquery";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elsa = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "elsa";
+        ename = "elsa";
+        version = "20181110.159";
+        src = fetchFromGitHub {
+          owner = "emacs-elsa";
+          repo = "Elsa";
+          rev = "b43830944fd18f0f9e414e4acf411ad9914f2df3";
+          sha256 = "0dkqfs3cdqsf53imnqzh88l4hlgzxy1s5q3zb6ib61s97y2p70ib";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elsa";
+          sha256 = "0g8l61fg9krqakp6fjvm6jr1lss3mll707rknhm5d2grr6ik3lvl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/elsa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elscreen = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "elscreen";
+        ename = "elscreen";
+        version = "20181008.2151";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "elscreen";
+          rev = "cc58337faf5ba1eae7e87f75f6ff3758675688f2";
+          sha256 = "15kffci7qlhjwz1rlr0zg0z9rq0vlsxy295dvg96wiiz4fvs4jk2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elscreen";
+          sha256 = "1mlqbw14ilk6d3ba38kfw50pnlhb9f6sm5hy9dw58gp59siark5s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elscreen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elscreen-buffer-group = callPackage ({ cl-lib ? null
+                                         , elscreen
+                                         , emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "elscreen-buffer-group";
+        ename = "elscreen-buffer-group";
+        version = "20181026.2228";
+        src = fetchFromGitHub {
+          owner = "jeffgran";
+          repo = "elscreen-buffer-group";
+          rev = "cd671c4a86ff6e481d24d060b4069e518940f9c9";
+          sha256 = "1nff1frlni7lbxrk26idzxlm0npzrjvfmzsv3y9nwy9v8djsiwy3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elscreen-buffer-group";
+          sha256 = "1clmhpk9zp6hsgz6a4jpmbrr9fr6k8b324s0x61n5yi4yzgdmc0v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib elscreen emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elscreen-buffer-group";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elscreen-fr = callPackage ({ elscreen
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , seq }:
+      melpaBuild {
+        pname = "elscreen-fr";
+        ename = "elscreen-fr";
+        version = "20160920.253";
+        src = fetchFromGitHub {
+          owner = "rocher";
+          repo = "elscreen-fr";
+          rev = "b9c11f80d277086d5d5bf88623e15fc7adbbbe3c";
+          sha256 = "1dz8jqd2agh06hya59vbybrmgyhyz2rk6c9panrm49w37v0bwksb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elscreen-fr";
+          sha256 = "1kmga1zz9mb3hxd2sxja2vz45pix5a52yl0g9z4vmak32x9rgqrm";
+          name = "recipe";
+        };
+        packageRequires = [ elscreen seq ];
+        meta = {
+          homepage = "https://melpa.org/#/elscreen-fr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elscreen-mew = callPackage ({ elscreen
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "elscreen-mew";
+        ename = "elscreen-mew";
+        version = "20160504.1135";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "elscreen-mew";
+          rev = "89871fad690ae161dc076e16ef481b1965612077";
+          sha256 = "14hwl5jzmm43qa4jbpsyswbz4hk1l2iwqh3ank6502bz58877k6c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elscreen-mew";
+          sha256 = "06g4wcfjs036nn64ac0zsvr08cfmak2hyj83y7a0r35yxr1853w4";
+          name = "recipe";
+        };
+        packageRequires = [ elscreen ];
+        meta = {
+          homepage = "https://melpa.org/#/elscreen-mew";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elscreen-multi-term = callPackage ({ elscreen
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , multi-term }:
+      melpaBuild {
+        pname = "elscreen-multi-term";
+        ename = "elscreen-multi-term";
+        version = "20151021.1933";
+        src = fetchFromGitHub {
+          owner = "wamei";
+          repo = "elscreen-multi-term";
+          rev = "7b6048a0dd80f69460a62bbc6f1af8856141a5ea";
+          sha256 = "1cninrbgxzg0gykkpjx0i8pk2yc7sgr2kliqd35lgcxz2q4jlr51";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elscreen-multi-term";
+          sha256 = "1zwrzblkag1d18xz450b7khsdssvsxyl1x6a682vy0dkn1y5qh1n";
+          name = "recipe";
+        };
+        packageRequires = [ elscreen emacs multi-term ];
+        meta = {
+          homepage = "https://melpa.org/#/elscreen-multi-term";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elscreen-separate-buffer-list = callPackage ({ elscreen
+                                                 , emacs
+                                                 , fetchFromGitHub
+                                                 , fetchurl
+                                                 , lib
+                                                 , melpaBuild }:
+      melpaBuild {
+        pname = "elscreen-separate-buffer-list";
+        ename = "elscreen-separate-buffer-list";
+        version = "20161106.1958";
+        src = fetchFromGitHub {
+          owner = "wamei";
+          repo = "elscreen-separate-buffer-list";
+          rev = "7652d827aa1b8c1b04303c5b4b0bda5e8f85565e";
+          sha256 = "1cpmpms3r9lywmxgciz4xq7vjw2c1mxmpd89shssqck16563zwxf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elscreen-separate-buffer-list";
+          sha256 = "1d8kc137cd8i3wglir1rlvk7w8mrdhd3xvcihi2f2f2g5nh2n5jk";
+          name = "recipe";
+        };
+        packageRequires = [ elscreen emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elscreen-separate-buffer-list";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elvish-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "elvish-mode";
+        ename = "elvish-mode";
+        version = "20180809.912";
+        src = fetchFromGitHub {
+          owner = "ALSchwalm";
+          repo = "elvish-mode";
+          rev = "c3a7e31564256b9755b1ab9fb40d32ad78cd1ad2";
+          sha256 = "0dxa8g49fq4h1ab3sawnbgy1fxaxxsdac3l6im34qfw4km8brp9y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elvish-mode";
+          sha256 = "1f5pyadmbh2ldd51srvlhbjq2849f1f0s8qmpjnsz9bc986yga34";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elvish-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elwm = callPackage ({ dash
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "elwm";
+        ename = "elwm";
+        version = "20150817.307";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "elwm";
+          rev = "c33b183f006ad476c3a44dab316f580f8b369930";
+          sha256 = "1k7npf93xbmrsq607x8zlgrpzqvplgia3ixz5w1lr1jlv1m2m8x2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elwm";
+          sha256 = "0rf663ih3lfg4n4pj4dpp133967zha5m1wr46riaxpha7xr59al9";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/elwm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elx = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "elx";
+        ename = "elx";
+        version = "20181111.207";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "elx";
+          rev = "c554db7e7f2c0c8a503def7739b8205193ba821f";
+          sha256 = "07i739v2w5dbhyfhvfw4phcrdk5sf7ncsd47y8hkf5m4zgw4kw4n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elx";
+          sha256 = "008nwa2gn3d2ayr8023pxyvph52gh9m56f77h41hp8hcw6hbdwrz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacs-setup = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "emacs-setup";
+        ename = "emacs-setup";
+        version = "20120727.726";
+        src = fetchFromGitHub {
+          owner = "echosa";
+          repo = "emacs-setup";
+          rev = "cc36ad5318c6c0e65d1b9ff8dff5ea2437675de2";
+          sha256 = "15l3ab11vcmzqibkd6h5zqw5a83k8dmgcp4n26px29c0gv6bkpy8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacs-setup";
+          sha256 = "1x4rh8vx6fsb2d6dz2g9j6jamin1vmpppwy3yzbl1dnf7w4hx4kh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emacs-setup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsagist = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "emacsagist";
+        ename = "emacsagist";
+        version = "20140331.1130";
+        src = fetchFromGitHub {
+          owner = "echosa";
+          repo = "emacsagist";
+          rev = "539b9c4c0652d793391135ba1fc2e503dbb7deba";
+          sha256 = "0n5cpmbyf8mhq03ikhzbycjwkxv3fmjwq1a9zvv3z9ik8yxnbw99";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsagist";
+          sha256 = "1cyz7nf0zxa21979jf5kdmkgwiyd17vsmpcmrw1af37ly27l8l64";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsagist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsc = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "emacsc";
+        ename = "emacsc";
+        version = "20161028.1006";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "emacsc";
+          rev = "421e0c567358769e32f670ae8e949d99abae0c28";
+          sha256 = "0zmb1qdbdlrycari1r1g65c9px357wz4f2gvmcacg83504mmf3d8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsc";
+          sha256 = "1fbf9al3yds0il18jz6hbpj1fsjlpb1kgp450gb6r09lc46x77mk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emacsc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsist-view = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "emacsist-view";
+        ename = "emacsist-view";
+        version = "20160426.523";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "emacsist-view";
+          rev = "f67761259ed779a9bc95c9a4e0474522990c5c6b";
+          sha256 = "1vhs9725fyl2j65lk014qz76iv4hsvyim06361h4lai634hp7ck6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsist-view";
+          sha256 = "0lf280ppi3zksqvx81y8mm9479j26kd5wywfghhwk36kz410hk99";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emacsist-view";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsql = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "emacsql";
+        ename = "emacsql";
+        version = "20181111.205";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacsql";
+          rev = "f8c3d9fce28ab7d5b0c9fcf2c1236151ca7add24";
+          sha256 = "0kfr3y54b7cj9zm3dnqfryilhgiaa78ani5fgi402l5h9i922isn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsql";
+          sha256 = "0c2d0kymzr53wh87fq1wy2x5ahfsymz0cw8qbrqx0k613l3mpr38";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsql-mysql = callPackage ({ emacs
+                                 , emacsql
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "emacsql-mysql";
+        ename = "emacsql-mysql";
+        version = "20171218.1827";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacsql";
+          rev = "ea613c5191dcaa2583d3f7d5737b31bb88a07ed5";
+          sha256 = "1i733wjvpd6lhdnwr8w2k0c8s7v7r9ivsmxxgdndlhdnkm17ca5j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsql-mysql";
+          sha256 = "1c20zhpdzfqjds6kcjhiq1m5ch53fsx6n1xk30i35kkg1wxaaqzy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emacsql ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsql-mysql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsql-psql = callPackage ({ emacs
+                                , emacsql
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "emacsql-psql";
+        ename = "emacsql-psql";
+        version = "20171218.1827";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacsql";
+          rev = "ea613c5191dcaa2583d3f7d5737b31bb88a07ed5";
+          sha256 = "1i733wjvpd6lhdnwr8w2k0c8s7v7r9ivsmxxgdndlhdnkm17ca5j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsql-psql";
+          sha256 = "1aa1g9jyjmz6w0lmi2cf67926ad3xvs0qsg7lrccnllr9k0flly3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emacsql ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsql-psql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsql-sqlite = callPackage ({ emacs
+                                  , emacsql
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "emacsql-sqlite";
+        ename = "emacsql-sqlite";
+        version = "20180128.1252";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacsql";
+          rev = "62d39157370219a1680265fa593f90ccd51457da";
+          sha256 = "0ghl3g8n8wlw8rnmgbivlrm99wcwn93bv8flyalzs0z9j7p7fdq9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsql-sqlite";
+          sha256 = "1y81nabzzb9f7b8azb9giy23ckywcbrrg4b88gw5qyjizbb3h70x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emacsql ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsql-sqlite";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsshot = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "emacsshot";
+        ename = "emacsshot";
+        version = "20161018.743";
+        src = fetchFromGitHub {
+          owner = "marcowahl";
+          repo = "emacsshot";
+          rev = "752244330ff829d8dbea7fcf7065f5d4708038a6";
+          sha256 = "15y0vv8vm30yp3mn0x7lqq3vd7wb2qny424jx5f4m74hy2xi3svr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsshot";
+          sha256 = "08xqx017yfizdj8wz7nbh9i7qpar6398sri78abzf78inv828s9j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emacsshot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emamux = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "emamux";
+        ename = "emamux";
+        version = "20170226.1937";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-emamux";
+          rev = "39f57786b2cdd3844888df42d71c7bd251f07158";
+          sha256 = "184669qynz1m93s9nv5pdc8m4bnvqa56wz472nsq4xhixz44jjsv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emamux";
+          sha256 = "1pg0gzi8rn0yafssrsiqdyj5dbfy984srq1r4dpp8p3bi3n0fkfz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/emamux";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emamux-ruby-test = callPackage ({ emamux
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , projectile }:
+      melpaBuild {
+        pname = "emamux-ruby-test";
+        ename = "emamux-ruby-test";
+        version = "20130812.939";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emamux-ruby-test";
+          rev = "785bfd44d097a46bb2ebe1e62ac7595fd4dc9ab5";
+          sha256 = "1gcjki5rcc4gmcq6gcpdvahn4j6f39583jgq8g7ykylfqk2qhrjh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emamux-ruby-test";
+          sha256 = "1l1hp2dggjlc287qkfyj21w9lri4agh91g5x707qqq8nicdlv3xm";
+          name = "recipe";
+        };
+        packageRequires = [ emamux projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/emamux-ruby-test";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emaps = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "emaps";
+        ename = "emaps";
+        version = "20180712.1216";
+        src = fetchFromGitHub {
+          owner = "GuiltyDolphin";
+          repo = "emaps";
+          rev = "823b8f72e6459c9f1a5dd62451ee4005ef71d955";
+          sha256 = "1g9637j8f65q3l6k4aw5p847m891irh74kg3pa2p9w0ppsa6n3jm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emaps";
+          sha256 = "151rh6lyqi0ps2w022shzjj67nkg6y4m1nfj90qyc7jgl64qb9qw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emaps";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ember-mode = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ember-mode";
+        ename = "ember-mode";
+        version = "20181001.236";
+        src = fetchFromGitHub {
+          owner = "madnificent";
+          repo = "ember-mode";
+          rev = "88e5ffd33d8664b4d5124d6aa2ea9ed8d50c8c9e";
+          sha256 = "0y0lpzkcalis1jzclphnbd3p3656i3qzvinrwf40j3rylrp2vcc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ember-mode";
+          sha256 = "0fwd34cim29dg802ibsfd120px9sj54d4wzp3ggmjjzwkl9ky7dx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ember-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ember-yasnippets = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "ember-yasnippets";
+        ename = "ember-yasnippets";
+        version = "20160526.958";
+        src = fetchFromGitHub {
+          owner = "ronco";
+          repo = "ember-yasnippets.el";
+          rev = "3b5bd01569646237bf1b540d097e12f9118b67f4";
+          sha256 = "0g7hp1aq0zznbhd234dpbblnagn34fxdasc5v4lfhm5ykw5xyb5x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ember-yasnippets";
+          sha256 = "1jwkzcqcpy7ykdjhsqmg8ds6qyl4jglyjbgg7v301x068dsxkja6";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/ember-yasnippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    embrace = callPackage ({ cl-lib ? null
+                           , expand-region
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "embrace";
+        ename = "embrace";
+        version = "20171031.1133";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "embrace.el";
+          rev = "dd5da196e5bcc5e6d87e1937eca0c21da4334ef2";
+          sha256 = "1m0qyipkp5ydgcav8d0m58fbj1gilipbj7g8mg40iajr8wfqcjdc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/embrace";
+          sha256 = "1w9zp9n91703d6jd4adl2xk574wsr7fm2a9v32b1i9bi3hr0hdjc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib expand-region ];
+        meta = {
+          homepage = "https://melpa.org/#/embrace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emlib = callPackage ({ cl-lib ? null
+                         , dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "emlib";
+        ename = "emlib";
+        version = "20161126.723";
+        src = fetchFromGitHub {
+          owner = "narendraj9";
+          repo = "emlib";
+          rev = "dea2af00f551ea580c641d86dd69219f7d4f3685";
+          sha256 = "0p52pkq3wvnhg0l7cribhc39zl1cjjxgw9qzpmwd0jw1g1lslwbm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emlib";
+          sha256 = "02l135v3pqpf6ngfq11h4rc843iwh3dgi4rr3gcc63pjl4ws2w2c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/emlib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emmet-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "emmet-mode";
+        ename = "emmet-mode";
+        version = "20180612.2041";
+        src = fetchFromGitHub {
+          owner = "smihica";
+          repo = "emmet-mode";
+          rev = "1acb821e0142136344ccf40c1e5fb664d7db2e70";
+          sha256 = "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emmet-mode";
+          sha256 = "0wjv4hqddjvbdrmsxzav5rpwnm2n6lr86jzkrnav8f2kyzypdsnr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emmet-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms = callPackage ({ cl-lib ? null
+                        , fetchgit
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "emms";
+        ename = "emms";
+        version = "20181101.1113";
+        src = fetchgit {
+          url = "https://git.savannah.gnu.org/git/emms.git";
+          rev = "47b1054683f4fa0a1ecd9999cb94c5c34994e018";
+          sha256 = "1lrkj4gy592mrym0qfb05hydpr7c2sbk6ap5q19zkblizf0gnad6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms";
+          sha256 = "1xpry8h96gvjnc0v8x0vk5dnmlq1r7m3ljpampdwv9pfwl95fh94";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/emms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-bilibili = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "emms-bilibili";
+        ename = "emms-bilibili";
+        version = "20180102.2018";
+        src = fetchFromGitHub {
+          owner = "0xDEATHCODE";
+          repo = "emms-bilibili";
+          rev = "294bca3dfc42fe3a55fb326ab39bc0fcfc8c5090";
+          sha256 = "0q8z3q1agwgb3d0kpvac7a98p3q4ljjnv404cf9kihjjfxvh4vm5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-bilibili";
+          sha256 = "1mx3fn2x526np8awjn0ydsqh59b4aznf3sig410fbr6wk6pa6y47";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-bilibili";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-info-mediainfo = callPackage ({ emms
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "emms-info-mediainfo";
+        ename = "emms-info-mediainfo";
+        version = "20131223.500";
+        src = fetchFromGitHub {
+          owner = "fgallina";
+          repo = "emms-info-mediainfo";
+          rev = "bce16eae9eacd38719fea62a9755225a888da59d";
+          sha256 = "07qbbs2i05bqndr4dxb84z50wav8ffbc56f6saw6pdx6n0sw6n6n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-info-mediainfo";
+          sha256 = "17x8vvfhx739hcj9j1nh6j4r6zqnwa5zq9zpi9b6lxc8979k3m4w";
+          name = "recipe";
+        };
+        packageRequires = [ emms ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-info-mediainfo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-mark-ext = callPackage ({ emms
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "emms-mark-ext";
+        ename = "emms-mark-ext";
+        version = "20130528.2027";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "emms-mark-ext";
+          rev = "ec68129e3e9e469e5bf160c6a1b7030e322f3541";
+          sha256 = "03a7sn8pl0pnr05rmrrbw4hjyi8vpjqbvkvh0fqnij913a6qc64l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-mark-ext";
+          sha256 = "13h6hy8y0as0xfc1cg8balw63as81fzar32q9h4zhnndl3hc1081";
+          name = "recipe";
+        };
+        packageRequires = [ emms ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-mark-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-mode-line-cycle = callPackage ({ emacs
+                                        , emms
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "emms-mode-line-cycle";
+        ename = "emms-mode-line-cycle";
+        version = "20160221.320";
+        src = fetchFromGitHub {
+          owner = "momomo5717";
+          repo = "emms-mode-line-cycle";
+          rev = "2c2f395e484a1d345050ddd61ff5fab71a92a6bc";
+          sha256 = "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-mode-line-cycle";
+          sha256 = "1jdmfh1i9v84iy7bj2dbc3s2wfzkrby3pabd99gnqzd9gn1cn8ca";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emms ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-mode-line-cycle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-player-mpv-jp-radios = callPackage ({ cl-lib ? null
+                                             , emacs
+                                             , emms
+                                             , emms-player-simple-mpv
+                                             , fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "emms-player-mpv-jp-radios";
+        ename = "emms-player-mpv-jp-radios";
+        version = "20180325.417";
+        src = fetchFromGitHub {
+          owner = "momomo5717";
+          repo = "emms-player-mpv-jp-radios";
+          rev = "f6b37f5878c741124d5fca43c5b80af873541edd";
+          sha256 = "1sxzh1bhdwln7kcn07agayyhmgyrbmmhgc3f85336xybc6ljpqs8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-player-mpv-jp-radios";
+          sha256 = "0gdap5cv08pz370fl92v9lyvgkbbyjhp9wsc4kyjm4f4pwx9fybv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs emms emms-player-simple-mpv ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-player-mpv-jp-radios";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-player-simple-mpv = callPackage ({ cl-lib ? null
+                                          , emacs
+                                          , emms
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "emms-player-simple-mpv";
+        ename = "emms-player-simple-mpv";
+        version = "20180316.849";
+        src = fetchFromGitHub {
+          owner = "momomo5717";
+          repo = "emms-player-simple-mpv";
+          rev = "101d120ccdee1c2c213fd2f0423c858b21649c00";
+          sha256 = "1i6rxkm0ra0jbkkwgkwxg3vk5xfl794h1gkgnlpscynz0v94b6ll";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-player-simple-mpv";
+          sha256 = "1lv1rhd5vya068mnnaysfh56raar79hf2g413ysrk3yhyajk6316";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs emms ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-player-simple-mpv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-soundcloud = callPackage ({ emms
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , json ? null
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "emms-soundcloud";
+        ename = "emms-soundcloud";
+        version = "20131221.345";
+        src = fetchFromGitHub {
+          owner = "osener";
+          repo = "emms-soundcloud";
+          rev = "87e5cbf9609d1f26c24dc834fdeb78b33d453c2b";
+          sha256 = "0nx5bb5fjmaa1nhkbfnhd1aydqrq390x4rl1vfh11ilnf52wzzld";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-soundcloud";
+          sha256 = "0nf1f719m4pvxn0mf4qyx8mzwhrhv6kchnrpiy9clx520y8x3dqi";
+          name = "recipe";
+        };
+        packageRequires = [ emms json ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-soundcloud";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-state = callPackage ({ emms
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "emms-state";
+        ename = "emms-state";
+        version = "20160504.105";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "emms-state.el";
+          rev = "77930300222333b71eafd495cc1fee3a3585eb23";
+          sha256 = "1kipxa9ax8zi9qqk19mknpg7nnlzgr734kh9bnklydipwnsy00pi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-state";
+          sha256 = "080y02hxxqfn0a0dhq5vm0r020v2q3h1612a2zkq5fxi8ssvhp9i";
+          name = "recipe";
+        };
+        packageRequires = [ emms ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-state";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emoji-cheat-sheet-plus = callPackage ({ emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , helm
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "emoji-cheat-sheet-plus";
+        ename = "emoji-cheat-sheet-plus";
+        version = "20150617.631";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "emacs-emoji-cheat-sheet-plus";
+          rev = "96a003127d646a2683d81ca906a17eace0a6413e";
+          sha256 = "1rk7am0xvpnv98yi7a62wlyh576md4n2ddj7nm201bjd4wdl2yxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emoji-cheat-sheet-plus";
+          sha256 = "1ciwlbw0ihm0p5gnnl3safcj7dxwiy53bkj8cmw3i334al0gjnnv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/emoji-cheat-sheet-plus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emoji-display = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "emoji-display";
+        ename = "emoji-display";
+        version = "20140117.213";
+        src = fetchFromGitHub {
+          owner = "ikazuhiro";
+          repo = "emoji-display";
+          rev = "bb4217f6400151a9cfa6d4524b8427f01feb5193";
+          sha256 = "0sh4q4sb4j58ryvvmlsx7scry9inzgv2ssa87vbyzpxq0435l229";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emoji-display";
+          sha256 = "04cf18z26d64l0sv8qkbxjixi2wbw23awd5fznvg1cs8ixss01j9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emoji-display";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emoji-fontset = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "emoji-fontset";
+        ename = "emoji-fontset";
+        version = "20160726.1224";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "emoji-fontset.el";
+          rev = "e460c9a08e48ec4103e38a7a04acae20880149a9";
+          sha256 = "0xdlqsrwdf0smi5z9rjj46nwrrfpl0gzanf0jmdg8zzn62l6ldck";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emoji-fontset";
+          sha256 = "19affsvlm1rzrzdh1k6xsv79icdkzx4izxivrd2ia6y2wcg9wc5d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emoji-fontset";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emoji-recall = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "emoji-recall";
+        ename = "emoji-recall";
+        version = "20160723.1508";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "emoji-recall.el";
+          rev = "1c12d18e5592eaa2138dd3034012dced277e6d99";
+          sha256 = "0h65sapfa18z7xiyzsdizys204mvkzgmb3fbq75y1ddcrg9q0ikf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emoji-recall";
+          sha256 = "06cahk2h6q3vlw2p4jmjrpzycxpm884p31yhbp77lagkqhs2fzbk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/emoji-recall";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emojify = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , ht
+                           , lib
+                           , melpaBuild
+                           , seq }:
+      melpaBuild {
+        pname = "emojify";
+        ename = "emojify";
+        version = "20180611.838";
+        src = fetchFromGitHub {
+          owner = "iqbalansari";
+          repo = "emacs-emojify";
+          rev = "38ae28d95b58e9fb86a3495a2dda3e5de254c4fc";
+          sha256 = "1dk4kx5hvhcrmbhyx0ri9i934i8m3mcs76hk5h8qnbhdknmsh3rz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emojify";
+          sha256 = "1sgd32qm43hwby75a9q2pz1yfzj988i35d8p9f18zvbxypy7b2yp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ht seq ];
+        meta = {
+          homepage = "https://melpa.org/#/emojify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emojify-logos = callPackage ({ emojify
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "emojify-logos";
+        ename = "emojify-logos";
+        version = "20180814.217";
+        src = fetchFromGitHub {
+          owner = "mxgoldstein";
+          repo = "emojify-logos";
+          rev = "a3e78bcbdf863092d4c9b026ac08bf7d1c7c0e8b";
+          sha256 = "1fhxf3nky9wlcn54q60f9254iawcccsrxw370q7cgpsrl1gj3dgp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emojify-logos";
+          sha256 = "0kgci1svi80xnz44bvh19si8bcjllrkm9rbd8761h77iylkqs3q5";
+          name = "recipe";
+        };
+        packageRequires = [ emojify ];
+        meta = {
+          homepage = "https://melpa.org/#/emojify-logos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    empos = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "empos";
+        ename = "empos";
+        version = "20151011.1216";
+        src = fetchFromGitHub {
+          owner = "dimalik";
+          repo = "empos";
+          rev = "7b99ad30e56937adb7e6349777e5a2045597d564";
+          sha256 = "0bm0cxnv7g2dzfvfhkyy16kzn6shvy9gzypiqyjj42ng54xmhs0n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/empos";
+          sha256 = "0wbrszl9rq4is0ymxq9lxpqzlfg93gljh6almjy0hp3cs7pkzyl4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/empos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emr = callPackage ({ cl-lib ? null
+                       , clang-format
+                       , dash
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , iedit
+                       , lib
+                       , list-utils
+                       , melpaBuild
+                       , paredit
+                       , popup
+                       , projectile
+                       , s }:
+      melpaBuild {
+        pname = "emr";
+        ename = "emr";
+        version = "20180921.1415";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "emacs-refactor";
+          rev = "8856b2ed7e45dd33a5f81e1302a2fba736c64dd6";
+          sha256 = "1swsh3ld5vlp3fx9dynri6rphpsn9i7n3amzlbzh36w0jkkjcz0m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emr";
+          sha256 = "02a7yzv6vxdazi26wk1ijadrjffd4iaf1abhpv642xib86pgpfd6";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          clang-format
+          dash
+          emacs
+          iedit
+          list-utils
+          paredit
+          popup
+          projectile
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/emr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    enclose = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "enclose";
+        ename = "enclose";
+        version = "20121008.914";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "enclose.el";
+          rev = "2fff3d4fcc1089f87647042d7164ba04282766ae";
+          sha256 = "1x0z3fr8qd1r6wdh7gjbx5fmd7yfmh8mjnp25zkzvgxvdg4gj91l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/enclose";
+          sha256 = "1bkrv3cwhbiydgfjhmyjr96cvsgr9zi8n0ir1akgamccm2ln73d6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/enclose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    encourage-mode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "encourage-mode";
+        ename = "encourage-mode";
+        version = "20151128.105";
+        src = fetchFromGitHub {
+          owner = "halbtuerke";
+          repo = "encourage-mode.el";
+          rev = "ca411e6bfd3d0edffe95852127bd995730b942e3";
+          sha256 = "0fvfzm9a25cajxbvvia1dpmiq2nn7qimwsqwcirpwzq9zsn4j7f4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/encourage-mode";
+          sha256 = "0fwn6w7s61c08z0d8z3awclqrhszia9is30gm2kx4hwr9dhhwh63";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/encourage-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    engine-mode = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "engine-mode";
+        ename = "engine-mode";
+        version = "20180401.946";
+        src = fetchFromGitHub {
+          owner = "hrs";
+          repo = "engine-mode";
+          rev = "fd5a235b2c93b95143d676e6b654e388d7cdd956";
+          sha256 = "0lynwd7s1mjppynh8424qk30jzcr384wvr21bqy6ylsxs19kqg0w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/engine-mode";
+          sha256 = "1gg7i93163m7k7lr3pnal1svymnhzwrfpfcdc0798d7ybv26gg8c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/engine-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    enh-ruby-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "enh-ruby-mode";
+        ename = "enh-ruby-mode";
+        version = "20180730.1609";
+        src = fetchFromGitHub {
+          owner = "zenspider";
+          repo = "enhanced-ruby-mode";
+          rev = "5e19f321d702ff6b698047af6b3ddcd1c9f0d979";
+          sha256 = "1x9qwfhmg9f01pg30sm05sv7jpnzqgm94xvz65ncz55qimjbydsl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/enh-ruby-mode";
+          sha256 = "0r486yajjf7vsaz92ypxpfmz2nsvw9giffpxb9szj7fcry3nfdns";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/enh-ruby-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    enlive = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "enlive";
+        ename = "enlive";
+        version = "20170725.717";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "enlive";
+          rev = "604a8ca272b6889f114e2b5a13adb5b1dc4bae86";
+          sha256 = "1iwfb5hxhnp4rl3rh5yayik0xl2lg82klxkvqf29536pk8ip710m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/enlive";
+          sha256 = "1dyayk37zik12qfh8zbjmhsch64yqsx3acrlm7hcnavx465hmhnz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/enlive";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eno = callPackage ({ dash
+                       , edit-at-point
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "eno";
+        ename = "eno";
+        version = "20160110.234";
+        src = fetchFromGitHub {
+          owner = "enoson";
+          repo = "eno.el";
+          rev = "c07674329f66d6b4ea6c3a3944f801ab77ccb7e6";
+          sha256 = "0var9h1nslww3zlqbl9mvrkz7c9i2g8ka22mwqc1iv92ka3w0czv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eno";
+          sha256 = "1pcbvka3g32j1a2j7slw4jm80qpsk3ldziy5n4l02xpnqw6iwy6q";
+          name = "recipe";
+        };
+        packageRequires = [ dash edit-at-point ];
+        meta = {
+          homepage = "https://melpa.org/#/eno";
+          license = lib.licenses.free;
+        };
+      }) {};
+    enotify = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "enotify";
+        ename = "enotify";
+        version = "20130407.648";
+        src = fetchFromGitHub {
+          owner = "laynor";
+          repo = "enotify";
+          rev = "7fd2f48ef4ff32c8f013c634ea2dd6b1d1409f80";
+          sha256 = "0v5p97dvzrk3j59yjc6iny71j3fdw9bb8737wnnzm098ff42dfmd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/enotify";
+          sha256 = "0mii6m6zw9y8njgzi79rcf1n251iw7qz3yqjjij3c19rk3zpm5qi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/enotify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ensime = callPackage ({ company
+                          , dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , popup
+                          , s
+                          , sbt-mode
+                          , scala-mode
+                          , yasnippet }:
+      melpaBuild {
+        pname = "ensime";
+        ename = "ensime";
+        version = "20180615.630";
+        src = fetchFromGitHub {
+          owner = "ensime";
+          repo = "ensime-emacs";
+          rev = "34eb11dac3ec9d1c554c2e55bf056ece6983add7";
+          sha256 = "0hgbxd538xjzna97843014xkbpgs20nz7xpb6smls7rdxp5a1fpd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ensime";
+          sha256 = "1d8y72l7bh93x9zdj3d3qjhrrzr804rgi6kjifyrin772dffjwby";
+          name = "recipe";
+        };
+        packageRequires = [
+          company
+          dash
+          popup
+          s
+          sbt-mode
+          scala-mode
+          yasnippet
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/ensime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    envdir = callPackage ({ dash
+                          , emacs
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "envdir";
+        ename = "envdir";
+        version = "20160221.1123";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "envdir-mode";
+          rev = "f29346c55ccf11d8c75628edc6d430ed63c36917";
+          sha256 = "1jyhr9gv3d0rxv5iks2g9x6xbxqv1bvf1fnih96h4pgsfxz8wrp6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/envdir";
+          sha256 = "085bfm4w7flrv8jvzdnzbdg3j5n29xfzbs1wlrr29mg9dja6s8g8";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/envdir";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eopengrok = callPackage ({ cl-lib ? null
+                             , dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , magit
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "eopengrok";
+        ename = "eopengrok";
+        version = "20160903.2359";
+        src = fetchFromGitHub {
+          owner = "youngker";
+          repo = "eopengrok.el";
+          rev = "78f734328aaf19c52720415c037708ece1944c4c";
+          sha256 = "1c5kzq3h7gr0459z364dyq5m8vq0ydclw5wphqj9fyg28mxjj6ns";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eopengrok";
+          sha256 = "0756x78113286hwk1i1m5s8xq04gh7zxb4fkmw58lg2ssff8q6av";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash magit s ];
+        meta = {
+          homepage = "https://melpa.org/#/eopengrok";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epc = callPackage ({ concurrent
+                       , ctable
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "epc";
+        ename = "epc";
+        version = "20140609.2234";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-epc";
+          rev = "94cd36a3bec752263ac9b1b3a9dd2def329d2af7";
+          sha256 = "0aa3d3k62rq649w57f8gb4jh0gj9h2mv5m66ikp0c35mrk3cpk1m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epc";
+          sha256 = "1l9rcx07pa4b9z5654gyw6b64c95lcigzg15amphwr56v2g3rbzx";
+          name = "recipe";
+        };
+        packageRequires = [ concurrent ctable ];
+        meta = {
+          homepage = "https://melpa.org/#/epc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epic = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , htmlize
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "epic";
+        ename = "epic";
+        version = "20170209.1623";
+        src = fetchFromGitHub {
+          owner = "yoshinari-nomura";
+          repo = "epic";
+          rev = "a41826c330eb0ea061d58a08cc861b0c4ac8ec4e";
+          sha256 = "0mvg52f2y3725hlzqcn2mh8jihnbg68wlqmq951sa3qfma7m40pp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epic";
+          sha256 = "0gfl8if83jbs0icz6gcjkwxvcz5v744k1kvqnbx3ga481kds9rqf";
+          name = "recipe";
+        };
+        packageRequires = [ htmlize ];
+        meta = {
+          homepage = "https://melpa.org/#/epic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epkg = callPackage ({ closql
+                        , dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "epkg";
+        ename = "epkg";
+        version = "20181104.1143";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "epkg";
+          rev = "c42bc98a711ffa8d2a7b9096b563ac0edb0b9bf3";
+          sha256 = "0hn67mdv6i8l1sfvs8gm2my05chk69nm4vf108l2ff22lims8ghx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epkg";
+          sha256 = "0vvkjjaffvwvsvld3c6hwd18icmp2lc7f9yqvclifpadi98dhpww";
+          name = "recipe";
+        };
+        packageRequires = [ closql dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/epkg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epl = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "epl";
+        ename = "epl";
+        version = "20180205.1249";
+        src = fetchFromGitHub {
+          owner = "cask";
+          repo = "epl";
+          rev = "78ab7a85c08222cd15582a298a364774e3282ce6";
+          sha256 = "0ksilx9gzdazngxfni5i632jpb1nprcxplsbhgqirs2xdl53q8v8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epl";
+          sha256 = "0zr3r2hn9jaxscrl83hyixznb8l5dzfr6fsac76aa8x12xgsc5hn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/epl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epm = callPackage ({ emacs
+                       , epl
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "epm";
+        ename = "epm";
+        version = "20161027.34";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "epm";
+          rev = "ab3d194fc4d11520d6b9bce4746d7242f3f1606a";
+          sha256 = "0a2197dyc4rgssqwi2bgd6cg1g23pirjpvyq9b77n1nl8jghp0sw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epm";
+          sha256 = "0k94qhzxjzw5d0c53jnyx1xfciwr9qib845awyjaybzzs34s8r08";
+          name = "recipe";
+        };
+        packageRequires = [ emacs epl ];
+        meta = {
+          homepage = "https://melpa.org/#/epm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epresent = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "epresent";
+        ename = "epresent";
+        version = "20160410.1901";
+        src = fetchFromGitHub {
+          owner = "dakrone";
+          repo = "epresent";
+          rev = "bc3443879bb0111dcde2abd2f9c578e2cd438186";
+          sha256 = "1ws4hjvbwn1nf18qsbq0cl6q0rdk8fy4brrb1mcqfiag9arqmd6b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epresent";
+          sha256 = "176d1nwsafi6fb0dnv35bfskp0xczyzf2939gi4bz69zh0161jg8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib org ];
+        meta = {
+          homepage = "https://melpa.org/#/epresent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eprime-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "eprime-mode";
+        ename = "eprime-mode";
+        version = "20140513.1116";
+        src = fetchFromGitHub {
+          owner = "AndrewHynes";
+          repo = "eprime-mode";
+          rev = "a680adedff897a22142d4628af4244a2a3dfca41";
+          sha256 = "0a481cr6y70kvxbsdwscv3srmvyvgk43chdzqljhhj4fgk0zsccn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eprime-mode";
+          sha256 = "0vswjcs24f3mdyw6ai7p21ab8pdn327lr2d6css0a5nrg539cn2g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eprime-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eproject = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "eproject";
+        ename = "eproject";
+        version = "20180312.942";
+        src = fetchFromGitHub {
+          owner = "jrockway";
+          repo = "eproject";
+          rev = "068218d2cf2138cb2e8fc29b57e773a0097a7e8b";
+          sha256 = "110b8gn47m5kafmvxr8q9zzrj0pdn6ikw9xsx4z1rc58i02jy307";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eproject";
+          sha256 = "0kpg4r57khbyinc73v9kj32b9m3b4nb5014r5fkl5mzzpzmd85b4";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/eproject";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-colorize = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "erc-colorize";
+        ename = "erc-colorize";
+        version = "20170107.539";
+        src = fetchFromGitHub {
+          owner = "thisirs";
+          repo = "erc-colorize";
+          rev = "d026a016dcb9d63d9ac66d30627a92a8f1681bbd";
+          sha256 = "1zzmsrlknrpw26kizd4dm1g604y9nkgh85xal9la70k94qcgv138";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-colorize";
+          sha256 = "1m941q7ql3yb71s71783nvz822bwhn1krmin18fvh0fbsbbnck2a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-colorize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-crypt = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "erc-crypt";
+        ename = "erc-crypt";
+        version = "20161228.739";
+        src = fetchFromGitHub {
+          owner = "atomontage";
+          repo = "erc-crypt";
+          rev = "731f9264a5bf08a8fc0b5ce69e72058c86f873a5";
+          sha256 = "13jpq5ws5dm8fyjrskk4icxwz8k5wgh396cc8f8wxrjna4wb843w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-crypt";
+          sha256 = "1mzzqcxjnll4d9r9n5z80zfb3ywkd8jx6b49g02vwf1iak9h7hv3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-crypt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-hipchatify = callPackage ({ alert
+                                  , emacs
+                                  , fetchhg
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , request
+                                  , s }:
+      melpaBuild {
+        pname = "erc-hipchatify";
+        ename = "erc-hipchatify";
+        version = "20170314.937";
+        src = fetchhg {
+          url = "https://bitbucket.com/seanfarley/erc-hipchatify";
+          rev = "a53227513692";
+          sha256 = "0av0y65hz7fbiiqzmk5mmw6jv7fivhcd1w3s2xn5y5jpgps56mrc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-hipchatify";
+          sha256 = "1a4gl05i757vvap0rzrfwms7mhw80sa84gvbwafrvj3x11rja24x";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs request s ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-hipchatify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-hl-nicks = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "erc-hl-nicks";
+        ename = "erc-hl-nicks";
+        version = "20180415.1246";
+        src = fetchFromGitHub {
+          owner = "leathekd";
+          repo = "erc-hl-nicks";
+          rev = "756c4438a8245ccd3e389bf6c9850ee8453783ec";
+          sha256 = "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-hl-nicks";
+          sha256 = "03hxsknf31vrja2amfa317ig4c34i5jpdq35zczrp00ap0s31nbq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-hl-nicks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-image = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "erc-image";
+        ename = "erc-image";
+        version = "20180522.724";
+        src = fetchFromGitHub {
+          owner = "kidd";
+          repo = "erc-image.el";
+          rev = "82fb3871f02e24b1e880770b9a3d187aab43d0f0";
+          sha256 = "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-image";
+          sha256 = "1k5llh2jg2wxy9v03qrhwqa6g7apkqiqa47jm24z0ydqinm6zl83";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-image";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-scrolltoplace = callPackage ({ emacs
+                                     , fetchFromGitLab
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , switch-buffer-functions }:
+      melpaBuild {
+        pname = "erc-scrolltoplace";
+        ename = "erc-scrolltoplace";
+        version = "20180607.2306";
+        src = fetchFromGitLab {
+          owner = "jgkamat";
+          repo = "erc-scrolltoplace";
+          rev = "feb0fbf1fd4bdf220ae2d31ea7c066d8e62089f9";
+          sha256 = "1wb3xm45g77daw2ncs8a8w0m8d2hi591jmzwy5xli1zgrr5mm8h3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-scrolltoplace";
+          sha256 = "0632i1p26z3f633iinkqka0x2dd55x02xidk9qr66jh0dzfs6q3i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs switch-buffer-functions ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-scrolltoplace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-social-graph = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "erc-social-graph";
+        ename = "erc-social-graph";
+        version = "20150508.504";
+        src = fetchFromGitHub {
+          owner = "vibhavp";
+          repo = "erc-social-graph";
+          rev = "e6ef3416a1c5064054bf054d9f0c1c7bf54a9cd0";
+          sha256 = "0k3gp4c74g5awk7v9lzb6py3dvf59nggh6dw7530cswxb6kg2psa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-social-graph";
+          sha256 = "07arn3k89cqxab5x5lczv8bpgrbirmlw9p6c37fgrl3df6f46h4h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-social-graph";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-status-sidebar = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , seq }:
+      melpaBuild {
+        pname = "erc-status-sidebar";
+        ename = "erc-status-sidebar";
+        version = "20171223.1324";
+        src = fetchFromGitHub {
+          owner = "drewbarbs";
+          repo = "erc-status-sidebar";
+          rev = "48ed93ca8e225b4a212d89ffc01803355f66ee0a";
+          sha256 = "1pxs48rsmna177qvglyk32hy3rdfydg0spr4rzkf1gvn169ispss";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-status-sidebar";
+          sha256 = "04qh70ih74vbavq7ccwj1ixpd8s3g8rck9bxv6zhm1yv34bslw5d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-status-sidebar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-terminal-notifier = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "erc-terminal-notifier";
+        ename = "erc-terminal-notifier";
+        version = "20140115.224";
+        src = fetchFromGitHub {
+          owner = "julienXX";
+          repo = "erc-terminal-notifier.el";
+          rev = "a3dacb935845e4a20031212bbd82b2170f68d2a8";
+          sha256 = "0cfqbqskh260zfq1lx1s8jz2351w2ij9m73rqim16fy7zr0s0670";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-terminal-notifier";
+          sha256 = "0vrxkg62qr3ki8n9mdn02sdni5fkj79fpkn0drx0a4kqp0nrrj7c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-terminal-notifier";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-track-score = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "erc-track-score";
+        ename = "erc-track-score";
+        version = "20130328.515";
+        src = fetchFromGitHub {
+          owner = "jd";
+          repo = "erc-track-score.el";
+          rev = "5b27531ea6b1a4c4b703b270dfa9128cb5bfdaa3";
+          sha256 = "0n107d77z04ahypa7hn2165kkb6490v4vkzdm5zwm4lfhvlmp0x2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-track-score";
+          sha256 = "19wjwah2n8ri6gyrsbzxnrvxwr5cj48sxrar1226n9miqvgj5whx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-track-score";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-tweet = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "erc-tweet";
+        ename = "erc-tweet";
+        version = "20150920.558";
+        src = fetchFromGitHub {
+          owner = "kidd";
+          repo = "erc-tweet.el";
+          rev = "91fed61e139fa788d66a7358f0d50acc896414b8";
+          sha256 = "118q4zj9dh5xnimcsi229j5pflhcd8qz0p212kc4p9dmyrx2iw0n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-tweet";
+          sha256 = "0nmh3r8s69hfmkz0jycn7w2icb5gnw2qbf8xjd52kigkdb2s646c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-tweet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-twitch = callPackage ({ erc ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , json ? null
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "erc-twitch";
+        ename = "erc-twitch";
+        version = "20170426.2306";
+        src = fetchFromGitHub {
+          owner = "vibhavp";
+          repo = "erc-twitch";
+          rev = "53c6af0cb72e56d897d30a40e7e5066668d6b5ec";
+          sha256 = "0qirx38czv8m7sgj3rm1zncmyd8z6k4xhd8ixwxl7nigfpqvvv4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-twitch";
+          sha256 = "08vlwcxrzc2ndm52112z1r0qnz6jlmjhiwq2j3j59fbw82ys61ia";
+          name = "recipe";
+        };
+        packageRequires = [ erc json ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-twitch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-view-log = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "erc-view-log";
+        ename = "erc-view-log";
+        version = "20140227.1239";
+        src = fetchFromGitHub {
+          owner = "Niluge-KiWi";
+          repo = "erc-view-log";
+          rev = "c5a25f0cbca84ed2e4f72068c02b66bd0ea3b266";
+          sha256 = "0bzi2sh2fhrz49j5y53h6jgf41av6rx78smb3bbk6m74is8vim2y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-view-log";
+          sha256 = "1k6fawblz0d7kz1y7sa3q43s7ci28jsmzkp9vnl1nf55p9xvv4cf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-view-log";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-youtube = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "erc-youtube";
+        ename = "erc-youtube";
+        version = "20150603.1436";
+        src = fetchFromGitHub {
+          owner = "kidd";
+          repo = "erc-youtube.el";
+          rev = "97054ba8475b442e2aa81e5a291f668b7f28697f";
+          sha256 = "0kh4amx3l3a14qaiyvjyak1jbybs6n49mdvzjrd1i2vd1y74zj5w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-youtube";
+          sha256 = "12ylxkskkgfv5x7vlkib963ichb3rlmdzkf4zh8a39cgl8wsmacx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-youtube";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-yt = callPackage ({ dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "erc-yt";
+        ename = "erc-yt";
+        version = "20150426.549";
+        src = fetchFromGitHub {
+          owner = "yhvh";
+          repo = "erc-yt";
+          rev = "43e7d49325b17a3217a6ffb4a9daf75c5ff4e6f8";
+          sha256 = "1dlw34kaslyvnsrahf4rm76r2b7qqqn589i4mmhr23prl8xbz9z9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-yt";
+          sha256 = "0yrwvahv4l2s1aavy6y6mjlrw8l11i00a249825ab5yaxrkzz7xc";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-yt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ercn = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "ercn";
+        ename = "ercn";
+        version = "20150523.803";
+        src = fetchFromGitHub {
+          owner = "leathekd";
+          repo = "ercn";
+          rev = "8f2493fb40753b9c3699322c205f4dcf0a5bd67b";
+          sha256 = "1hzzfh6fxx03cyb039jbhwdfd0zybfrlaqmcyf14f6dq4d3gvl92";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ercn";
+          sha256 = "0yvis02bypw6v1zv7i326y8s6j0id558n0bdri52hr5pw85imnlp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ercn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ereader = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , xml-plus }:
+      melpaBuild {
+        pname = "ereader";
+        ename = "ereader";
+        version = "20170809.2201";
+        src = fetchFromGitHub {
+          owner = "bddean";
+          repo = "emacs-ereader";
+          rev = "f3bbd3f13195f8fba3e3c880aab0e4c60430dcf3";
+          sha256 = "18yqqqxsivnq2m8mxz7ifp0bfmn3q9m11w3abryxg2snh4vb5sy6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ereader";
+          sha256 = "1ai27lyb9xcmjjcnppzzhb6ilsvq9d9g9z7h79lp7axq761vind4";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s xml-plus ];
+        meta = {
+          homepage = "https://melpa.org/#/ereader";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eredis = callPackage ({ dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "eredis";
+        ename = "eredis";
+        version = "20181118.1731";
+        src = fetchFromGitHub {
+          owner = "justinhj";
+          repo = "eredis";
+          rev = "cfbfc25832f6fbc507bdd56b02e3a0b851a3c368";
+          sha256 = "1f2f57c0bz3c6p11hr69aar6z5gg33zvfvsm76ma11vx21qilz6i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eredis";
+          sha256 = "087lln2izn5bv7bprmbaciivf17vv4pz2cjl91hy2f0sww6nsiw8";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/eredis";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erefactor = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "erefactor";
+        ename = "erefactor";
+        version = "20160121.159";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-erefactor";
+          rev = "bf68085e5635eb94fd85709f8e1355c1f5534745";
+          sha256 = "1v8x6qmhywfxs7crzv7hfl5n4zq5y3ar40l873946l4wyk0wclng";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erefactor";
+          sha256 = "0ma9sbrq4n8y5w7vvbhhgmw25aiykbq5yhxzm0knj32bgpviprw7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/erefactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ergoemacs-mode = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , undo-tree }:
+      melpaBuild {
+        pname = "ergoemacs-mode";
+        ename = "ergoemacs-mode";
+        version = "20180709.645";
+        src = fetchFromGitHub {
+          owner = "ergoemacs";
+          repo = "ergoemacs-mode";
+          rev = "a5d46653fd3a521276630c81bf75d3e8d224e5cb";
+          sha256 = "10y79z7xakjl4x95mvf8jjqxxsgkmz0k7czl0vwhk6j8c910v871";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ergoemacs-mode";
+          sha256 = "0h99m0n3q41lw5fm33pc1405lrxyc8rzghnc6c7j4a6gr1d82s62";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs undo-tree ];
+        meta = {
+          homepage = "https://melpa.org/#/ergoemacs-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ergoemacs-status = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , mode-icons
+                                    , powerline }:
+      melpaBuild {
+        pname = "ergoemacs-status";
+        ename = "ergoemacs-status";
+        version = "20160317.2238";
+        src = fetchFromGitHub {
+          owner = "ergoemacs";
+          repo = "ergoemacs-status";
+          rev = "d952cc2361adf6eb4d6af60950ad4ab699c81320";
+          sha256 = "06pdwrhflpi5rkigqnr5h3jzv3dm1p9nydpvql9w33ixm6qhjj71";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ergoemacs-status";
+          sha256 = "065pw31s8dmqpag7zj40iv6dbl0qln7c65gcyp7pz9agg9rp6vbb";
+          name = "recipe";
+        };
+        packageRequires = [ mode-icons powerline ];
+        meta = {
+          homepage = "https://melpa.org/#/ergoemacs-status";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erlang = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "erlang";
+        ename = "erlang";
+        version = "20181011.536";
+        src = fetchFromGitHub {
+          owner = "erlang";
+          repo = "otp";
+          rev = "76e2f04bff3685a8efb9321edf02a6996c5fbf59";
+          sha256 = "1qx5n9q3j1nq8n83g34jvcfxk5f3y3y9q4h8y4gvv2d2gns0zblv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erlang";
+          sha256 = "1cs768xxbyrr78ln50k4yknmpbcc1iplws3k07r0gx5f3ca73iaq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/erlang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erlstack-mode = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "erlstack-mode";
+        ename = "erlstack-mode";
+        version = "20181019.1417";
+        src = fetchFromGitHub {
+          owner = "k32";
+          repo = "erlstack-mode";
+          rev = "984ffddb18432ce3e11528052da8c1a5beb31e72";
+          sha256 = "02xbynqgfqzihacnfh3ksrhdjm6ys6np2v9c6qxamxxmkc5myzly";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erlstack-mode";
+          sha256 = "0b7mj0rs8k3hdv4v3v5vmdqs0y26mss7dzc0sjjxj4d095yddqqf";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/erlstack-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eros = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "eros";
+        ename = "eros";
+        version = "20180414.2318";
+        src = fetchFromGitHub {
+          owner = "xiongtx";
+          repo = "eros";
+          rev = "dd8910279226259e100dab798b073a52f9b4233a";
+          sha256 = "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eros";
+          sha256 = "0l79bn72x5m2lzglrwwngz3hax9pf8wv7ci86y5pkwaa8frxycww";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eros";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ert-async = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ert-async";
+        ename = "ert-async";
+        version = "20151011.659";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ert-async.el";
+          rev = "f64a7ed5b0d2900c9a3d8cc33294bf8a79bc8526";
+          sha256 = "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ert-async";
+          sha256 = "004798ckri5j72j0xvzkyciss1iz4lw9gya2749hkjxlamg14cn5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ert-async";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ert-expectations = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ert-expectations";
+        ename = "ert-expectations";
+        version = "20121009.34";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "ert-expectations";
+          rev = "aed70e002c4305b66aed7f6d0d48e9addd2dc1e6";
+          sha256 = "0qgi3rj49k0hz4azg7ghcj6385p5s9gakqjhrjnhih7dxvihcgxi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ert-expectations";
+          sha256 = "07mp0azb6wsa1z4s6q8jyh7dpzils0wh2bamfmxzy4gjqjwv8ncn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ert-expectations";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ert-junit = callPackage ({ emacs
+                             , ert ? null
+                             , fetchgit
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ert-junit";
+        ename = "ert-junit";
+        version = "20181118.1456";
+        src = fetchgit {
+          url = "https://bitbucket.org/olanilsson/ert-junit";
+          rev = "b0649e94460aff5176dee5b33f28946bffb602d5";
+          sha256 = "0hj85hz4s1q4dalinhgahn8jn97s2pdpv41d9qqbvbdzwhhw2mrk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ert-junit";
+          sha256 = "0bv22mhh1ahbjwi6s1csxkh11dmy0srabkddjd33l4havykxlg6g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ert ];
+        meta = {
+          homepage = "https://melpa.org/#/ert-junit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ert-modeline = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , projectile
+                                , s }:
+      melpaBuild {
+        pname = "ert-modeline";
+        ename = "ert-modeline";
+        version = "20140115.215";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "ert-modeline";
+          rev = "7c6340834387f749519616f9601821cb73fd657b";
+          sha256 = "08gk47fwd4hvl6gby3nyg3f9wq2l6phkkmq6yl04ff1qbjmvnx0p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ert-modeline";
+          sha256 = "06pc50q9ggin20cbfafxd53x35ac3kh85dap0nbws7514f473m7b";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs projectile s ];
+        meta = {
+          homepage = "https://melpa.org/#/ert-modeline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ert-runner = callPackage ({ ansi
+                              , commander
+                              , dash
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s
+                              , shut-up }:
+      melpaBuild {
+        pname = "ert-runner";
+        ename = "ert-runner";
+        version = "20180831.445";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ert-runner.el";
+          rev = "90b8fdd5970ef76a4649be60003b37f82cdc1a65";
+          sha256 = "04nxmyzncacj2wmzd84vv9wkkr2dk9lcb10dvygqmg3p1gadnwzz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ert-runner";
+          sha256 = "0fnb8rmjr5lvc3dq0fnyxhws8ync1lj5xp8ycs63z4ax6gmdqr48";
+          name = "recipe";
+        };
+        packageRequires = [ ansi commander dash f s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/ert-runner";
+          license = lib.licenses.free;
+        };
+      }) {};
+    es-lib = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "es-lib";
+        ename = "es-lib";
+        version = "20141111.1030";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "es-lib";
+          rev = "753b27363e39c10edc9e4e452bdbbbe4d190df4a";
+          sha256 = "0jq4yp80wiphlpsc0429rg8n50g8l4lf78q0l3nywz2p93smjy9b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/es-lib";
+          sha256 = "0mwvgf5385qsp91zsdw75ipif1h90xy277xdmrpwixsxd7abbn0n";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/es-lib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    es-mode = callPackage ({ cl-lib ? null
+                           , dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , request
+                           , s
+                           , spark }:
+      melpaBuild {
+        pname = "es-mode";
+        ename = "es-mode";
+        version = "20181004.1517";
+        src = fetchFromGitHub {
+          owner = "dakrone";
+          repo = "es-mode";
+          rev = "1b7aca9b4e9fcebf4a67682203035eaf75b692e2";
+          sha256 = "16vdy6kknwi1hxgkfrzc6jk9h41l6agyiw6k21j3dcz237ngrkhv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/es-mode";
+          sha256 = "0zp84k5idqkrvc9qci49ains0b86kpk97lk1jcwyj75s4xsfyp1y";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash request s spark ];
+        meta = {
+          homepage = "https://melpa.org/#/es-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    es-windows = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "es-windows";
+        ename = "es-windows";
+        version = "20140211.104";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "es-windows";
+          rev = "7ebe6c6e0831373847d7adbedeaa2e506b54b2af";
+          sha256 = "0cjchwrhk7bw87bg10zgcwkga50rvs0jn5v2jf6bbsxbcqx2nfc9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/es-windows";
+          sha256 = "112ngkan0hv3y7m71479f46x5gwdmf0vhbqrzs5kcjwlacqlrahx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/es-windows";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esa = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "esa";
+        ename = "esa";
+        version = "20180403.825";
+        src = fetchFromGitHub {
+          owner = "nabinno";
+          repo = "esa.el";
+          rev = "417e0ac55abe9b17e0b7165d0df26bc018aff42e";
+          sha256 = "0hib8q9fslvw02i1y19z78fv6yy88q09lhfdfmbdyn6yal21855q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esa";
+          sha256 = "0y4mbq0z6vp0faxq6dq5hhxnsbi685amxqbvpxkxahl1nckp76lb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/esa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esh-autosuggest = callPackage ({ company
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "esh-autosuggest";
+        ename = "esh-autosuggest";
+        version = "20171223.1855";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "esh-autosuggest";
+          rev = "aa921f8975b0f95d1cb0044e6ad7f17529261610";
+          sha256 = "19qhpvw5y7hvkqy8jdyrnm4m90jdxxdiaabcrjiwxmkzq3wgnx8q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esh-autosuggest";
+          sha256 = "1rcng1dhy4yw95qg909ck33svpdxhv9v5k7226d29gp4y54dwyrx";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/esh-autosuggest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esh-buf-stack = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "esh-buf-stack";
+        ename = "esh-buf-stack";
+        version = "20140107.218";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "esh-buf-stack";
+          rev = "ea5da9ce8566ffe2e013f0e588701cb0825258b6";
+          sha256 = "1fllnc9awj24781h527n7b83i232i54ad5a9pczqvdr5s4kn4vfs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esh-buf-stack";
+          sha256 = "0zmwlsm98m9vbjk9mldfj2nf6cip7mlvb71j33ddix76yqggp4qg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/esh-buf-stack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esh-help = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "esh-help";
+        ename = "esh-help";
+        version = "20170829.2111";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "esh-help";
+          rev = "8a8a9d4d9852f8bd96da3b94e95ff57097ac8ec6";
+          sha256 = "02fybhmqm2qmy5qdig7xvwxazqi499pw32kh5mrsbdr14srg9fhs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esh-help";
+          sha256 = "1k925wmn8jy9rxxsxxawasxq6r4yzwl116digdx314gd3i04sh3w";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/esh-help";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-autojump = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-autojump";
+        ename = "eshell-autojump";
+        version = "20150927.24";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "eshell-autojump";
+          rev = "c6a8b81a16576df9875e721fbbfe6690d04e7e43";
+          sha256 = "13crzgkx1lham1nfsg6hj2zg875majvnig0v4ydg691zk1qi4hc2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-autojump";
+          sha256 = "09l2680hknmdbwr4cncv1v4b0adik0c3sm5i9m3qbwyyxm8m41i5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-autojump";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-bookmark = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-bookmark";
+        ename = "eshell-bookmark";
+        version = "20170922.814";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "eshell-bookmark";
+          rev = "deda4b848b2fb979dbe73ead2cb866610e3596ed";
+          sha256 = "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-bookmark";
+          sha256 = "1bybxlq1h5chrjxqjb23kq8dmgw2xrjwkrnvpbphblqzpdy5ck0s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-bookmark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-did-you-mean = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-did-you-mean";
+        ename = "eshell-did-you-mean";
+        version = "20150915.1252";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "eshell-did-you-mean";
+          rev = "7cb6ef8e2274d0a50a9e114d412307a6543533d5";
+          sha256 = "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-did-you-mean";
+          sha256 = "1z1wpn3sj1gi5nn0a71wg0i3av0dijnk79dc32zh3qlh500kz8mz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-did-you-mean";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-fixed-prompt = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , s }:
+      melpaBuild {
+        pname = "eshell-fixed-prompt";
+        ename = "eshell-fixed-prompt";
+        version = "20170804.635";
+        src = fetchFromGitHub {
+          owner = "mallt";
+          repo = "eshell-fixed-prompt-mode";
+          rev = "4351b214de6d4e8e45279930448e2f93b491848e";
+          sha256 = "1zx3zn28m5dnvsnkpqd26szv9yzplnb6wyp9vfjfs3hnasrizbxc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-fixed-prompt";
+          sha256 = "0mhrfxf19p4qqnlnnfc0z70324c7qiiv63riaz4cn5jj1ps3v0iy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-fixed-prompt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-fringe-status = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-fringe-status";
+        ename = "eshell-fringe-status";
+        version = "20170117.1516";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "eshell-fringe-status";
+          rev = "adc6997c68e39c0d52a2af1b2fd5cf2057783797";
+          sha256 = "1cwn4cvjjd4l5kk7s6cxzafjmdv3s7k78i73fvscmsnpwx9p2wj0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-fringe-status";
+          sha256 = "1vavidnijxzhr4v39q4bxi645vsfcj6vp0wnlhznpxagshr950lg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-fringe-status";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-git-prompt = callPackage ({ cl-lib ? null
+                                     , dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-git-prompt";
+        ename = "eshell-git-prompt";
+        version = "20170909.752";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "eshell-git-prompt";
+          rev = "b6bb2d7bd4e393b4170b29891cfefb72ae020aab";
+          sha256 = "02i00an9wa8ns66xq900la68m7pd4hwv95g83cvf22bypivx7p2y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-git-prompt";
+          sha256 = "0a8pyppqvnavvb8rwsjxagb76hra9zhs5gwa0ylyznmql83f8w8s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-git-prompt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-prompt-extras = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-prompt-extras";
+        ename = "eshell-prompt-extras";
+        version = "20180109.2234";
+        src = fetchFromGitHub {
+          owner = "kaihaosw";
+          repo = "eshell-prompt-extras";
+          rev = "1d8825dcc005b488c6366d0b3015fc6686194eea";
+          sha256 = "1nqzd24wwvyzf3bn7m7vd4xqmj4p8z51h8cnli07yja17cr5gwx6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-prompt-extras";
+          sha256 = "0zkdb9a8dibk832b5hzb6wjich3l0lah5p64805rgd4qskzj10gx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-prompt-extras";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-up = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-up";
+        ename = "eshell-up";
+        version = "20170425.1037";
+        src = fetchFromGitHub {
+          owner = "peterwvj";
+          repo = "eshell-up";
+          rev = "b00e447ad7941ab31bcbb6bc0205fd492e887e7d";
+          sha256 = "1802887ad7y6m40azfvzz6aapdzkp655jpiryimqd11kwbsinmvv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-up";
+          sha256 = "1jyaaw950isissjjgqflfn2bllgdfcyphpbi7il06mv9p0dzpwvy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-up";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-z = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-z";
+        ename = "eshell-z";
+        version = "20170116.2038";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "eshell-z";
+          rev = "c9334cbc1552234df3437f35d98e32f4d18446b8";
+          sha256 = "1zja4hb2lj4m5w4j9mpc7xyqgg2ivpslllffjsg8x1w8xsxpj8fh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-z";
+          sha256 = "14ixazj0nscyqsdv7brqnfr0q8llir1pwb91yhl9jdqypmadpm6d";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-z";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eslint-fix = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "eslint-fix";
+        ename = "eslint-fix";
+        version = "20180514.0";
+        src = fetchFromGitHub {
+          owner = "codesuki";
+          repo = "eslint-fix";
+          rev = "f81f3b47a47460611fbdbdae1d23275ec78f2f8d";
+          sha256 = "0k3asz3mdz4nm8lq37x9rgx4wb8hsfyr0hlfyhzwdb10x57jfzns";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eslint-fix";
+          sha256 = "0ry271jlv95nhdqx6qxmvkpa10lpwkg1q6asnliviwplq2mxw2da";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eslint-fix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eslintd-fix = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "eslintd-fix";
+        ename = "eslintd-fix";
+        version = "20180429.755";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "eslintd-fix";
+          rev = "90e451af4daa190d6c0e29fb714b0501a7cce89a";
+          sha256 = "01jysgdd4im4kf4afzwd4mm8x9vlpibb1w4yi2jvc0hglqddnr2g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eslintd-fix";
+          sha256 = "0lv4xpp9bm1yyn9mj7hpgw1v46yyxr0nlwggbav78jbg4v7ai04v";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eslintd-fix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    espresso-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "espresso-theme";
+        ename = "espresso-theme";
+        version = "20181025.126";
+        src = fetchFromGitHub {
+          owner = "dgutov";
+          repo = "espresso-theme";
+          rev = "d2fa034eb833bf37cc6842017070725e0da9b046";
+          sha256 = "0fds36w6l2aaa88wjkd2ck561i0wwpxgz5ldadhbi5lvfwj9386m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/espresso-theme";
+          sha256 = "1njc1ppi1jvb3mdckr19kbk7g0a3dx8j4d6j101ygszzrr24ycmv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/espresso-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    espuds = callPackage ({ dash
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "espuds";
+        ename = "espuds";
+        version = "20160905.600";
+        src = fetchFromGitHub {
+          owner = "ecukes";
+          repo = "espuds";
+          rev = "ef854367d469c6eff459d24a544addd21a4fbd23";
+          sha256 = "024msmnwlnsgqa523s3phxj1g77pyw917gz1fhz56062576nv22q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/espuds";
+          sha256 = "16yzw9l64ahf5v92jzb7vyb4zqxxplq6qh0y9rkfmvm59s4nhk6c";
+          name = "recipe";
+        };
+        packageRequires = [ dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/espuds";
+          license = lib.licenses.free;
+        };
+      }) {};
+    espy = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "espy";
+        ename = "espy";
+        version = "20180929.902";
+        src = fetchFromGitHub {
+          owner = "walseb";
+          repo = "espy";
+          rev = "e5dadc232ad985ede2b7d68a09be4c8014ded56a";
+          sha256 = "08crl0q7xc8gx245cfylb3j5xncqviq402gizhv0lb6rs0bpsc4y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/espy";
+          sha256 = "1icyiygw7brn4lrp28szmk4kk94n5q1zlrzrl6z7y0hdhdsjflgg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/espy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esqlite = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , pcsv }:
+      melpaBuild {
+        pname = "esqlite";
+        ename = "esqlite";
+        version = "20151206.406";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-esqlite";
+          rev = "fae9826cbc255b0f0686a801288f1441bda5f631";
+          sha256 = "0ag444hfrpdrf3lnaz7l2plj392xgh7a2080421z3g0alc74m8h3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esqlite";
+          sha256 = "1dny5qjzl9gaj90ihzbhliwk0n0x7jz333hzf6gaw7wsjmx91wlh";
+          name = "recipe";
+        };
+        packageRequires = [ pcsv ];
+        meta = {
+          homepage = "https://melpa.org/#/esqlite";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esqlite-helm = callPackage ({ esqlite
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "esqlite-helm";
+        ename = "esqlite-helm";
+        version = "20151116.50";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-esqlite";
+          rev = "84d5b16198f30949c544affba751ee0d58a000d9";
+          sha256 = "0z92205ryab1j2pih89pj82cdgdsz0ddp7wwia8ivxvjpd3jp751";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esqlite-helm";
+          sha256 = "00y2nwyx13xlny40afczr31lvbpnw1cgmj5wc3iycyznizg5kvhq";
+          name = "recipe";
+        };
+        packageRequires = [ esqlite helm ];
+        meta = {
+          homepage = "https://melpa.org/#/esqlite-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ess = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , julia-mode
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ess";
+        ename = "ess";
+        version = "20181119.651";
+        src = fetchFromGitHub {
+          owner = "emacs-ess";
+          repo = "ESS";
+          rev = "446384ab9261a311fa4f47ffd14df1e4c0f94651";
+          sha256 = "1sigd59z0fdn1x8g71drsm6vaazvl5m7n9ybg4mkaz4wdryasy5q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ess";
+          sha256 = "1psqrw9k7d2ha8zid2mkc6bgcyalrm3n53c00g3cgckkbahl7r6n";
+          name = "recipe";
+        };
+        packageRequires = [ julia-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ess";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ess-R-data-view = callPackage ({ ctable
+                                   , ess
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , popup }:
+      melpaBuild {
+        pname = "ess-R-data-view";
+        ename = "ess-R-data-view";
+        version = "20130509.458";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "ess-R-data-view.el";
+          rev = "d6e98d3ae1e2a2ea39a56eebcdb73e99d29562e9";
+          sha256 = "1ya2ay52gkrd31pmw45ban8kkxgnzhhwkzkypwdhjfccq3ys835x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ess-R-data-view";
+          sha256 = "0r2fzwayf3yb7fqk6f31x4xfqiiczwik8qw4rrvkqx2h3s1kz7i0";
+          name = "recipe";
+        };
+        packageRequires = [ ctable ess popup ];
+        meta = {
+          homepage = "https://melpa.org/#/ess-R-data-view";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ess-smart-equals = callPackage ({ emacs
+                                    , ess
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ess-smart-equals";
+        ename = "ess-smart-equals";
+        version = "20150201.2201";
+        src = fetchFromGitHub {
+          owner = "genovese";
+          repo = "ess-smart-equals";
+          rev = "e0f5f18f01ed252fde50d051adf1fa6254a254c9";
+          sha256 = "0ici253mllqyzcbhxrazfj2kl50brr8qid99fk9nlyfgh516ms1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ess-smart-equals";
+          sha256 = "0mfmxmsqr2byj56psx4h08cjc2j3aac3xqr04yd47k2mlivnyrxp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ess ];
+        meta = {
+          homepage = "https://melpa.org/#/ess-smart-equals";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ess-smart-underscore = callPackage ({ ess
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "ess-smart-underscore";
+        ename = "ess-smart-underscore";
+        version = "20181112.1302";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "ess-smart-underscore.el";
+          rev = "17fde1f2bffffeb67520922e09ebf66693ef0c6f";
+          sha256 = "0pc3vx8v59gvqamklv291ivm5ddg7wmzy358lqnl2hhgg85s90i7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ess-smart-underscore";
+          sha256 = "01pki1xa8zpgvldcbjwg6vmslj7ddf44hsx976xipc95vrdk15r2";
+          name = "recipe";
+        };
+        packageRequires = [ ess ];
+        meta = {
+          homepage = "https://melpa.org/#/ess-smart-underscore";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ess-view = callPackage ({ ess
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "ess-view";
+        ename = "ess-view";
+        version = "20181001.1030";
+        src = fetchFromGitHub {
+          owner = "GioBo";
+          repo = "ess-view";
+          rev = "d4e5a340b7bcc58c434867b97923094bd0680283";
+          sha256 = "1yzki5f2k7gmj4m0871h4h46zalv2x71rbpa6glkfx7bm9kyc193";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ess-view";
+          sha256 = "1zx5sbxmbs6ya349ic7yvnx56v3km2cb27p8kan5ygisnwwq2wc4";
+          name = "recipe";
+        };
+        packageRequires = [ ess f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ess-view";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esup = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "esup";
+        ename = "esup";
+        version = "20180726.2042";
+        src = fetchFromGitHub {
+          owner = "jschaf";
+          repo = "esup";
+          rev = "5acb60e8d7a8fef854178f325682765820522b10";
+          sha256 = "0bfrnzwf1imxigd7mxisywi54h0jb79488z2hba53yplmvr80p7p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esup";
+          sha256 = "0cv3zc2zzm38ki3kxq58g9sp4gsk3dffa398wky6z83a3zc02zs0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/esup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esxml = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "esxml";
+        ename = "esxml";
+        version = "20171129.7";
+        src = fetchFromGitHub {
+          owner = "tali713";
+          repo = "esxml";
+          rev = "5548ceba17deae0c3c6d0092672edc4de3c75ce3";
+          sha256 = "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esxml";
+          sha256 = "1375gryii984l33gc8f8yhl3vncjmw1w9k6xpvjgmnpx2fwr1vbq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/esxml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    etable = callPackage ({ dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , interval-list
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "etable";
+        ename = "etable";
+        version = "20161028.1309";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "ETable";
+          rev = "d502141f0c69bf95256ba5cb9cd15350c7e942d2";
+          sha256 = "0k0g58qzkkzall715k0864v3b7p5jnfwxqgmkj087x34frcf388k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/etable";
+          sha256 = "0m4h24mmhp680wfhb90im228mrcyxapzyi4kla8xdmss83gc0c32";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs interval-list ];
+        meta = {
+          homepage = "https://melpa.org/#/etable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eterm-256color = callPackage ({ emacs
+                                  , f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , xterm-color }:
+      melpaBuild {
+        pname = "eterm-256color";
+        ename = "eterm-256color";
+        version = "20181026.829";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "eterm-256color";
+          rev = "1340f69a78faf4e709ee29875550ecc9f434b216";
+          sha256 = "1q66v7qk3xririsqx1nkckrd9v8lq4nl5j0b0dmxnq0hg5a0kxxh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eterm-256color";
+          sha256 = "1mxc2hqjcj67jq5k4621a7f089qahcqw7f0dzqpaxn7if11w333b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f xterm-color ];
+        meta = {
+          homepage = "https://melpa.org/#/eterm-256color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ethan-wspace = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ethan-wspace";
+        ename = "ethan-wspace";
+        version = "20170507.1330";
+        src = fetchFromGitHub {
+          owner = "glasserc";
+          repo = "ethan-wspace";
+          rev = "14ae43130e019034367cd2b6e2bf9a067955dd33";
+          sha256 = "19i8y8ys58mvzmz0ijcdv9nnrs3b85zbgl087d68734vhp73iy78";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ethan-wspace";
+          sha256 = "0k4kqkf5c6ysyhh1vpi9v4220yxm5ir3ippq2gmvvhnk77pg6hws";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ethan-wspace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    euslisp-mode = callPackage ({ emacs
+                                , exec-path-from-shell
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm-ag
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "euslisp-mode";
+        ename = "euslisp-mode";
+        version = "20170830.1229";
+        src = fetchFromGitHub {
+          owner = "iory";
+          repo = "euslisp-mode";
+          rev = "db62a2d148482317794727982576494596365a55";
+          sha256 = "187ij4s7mzppgmh0ifny70mw8w31nq86rhsrmnflz26iywnkp8x2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/euslisp-mode";
+          sha256 = "0v92lry9ynkvsvx060njaw1j5lj9sb1i3srs2hfqqwyqni5ldkri";
+          name = "recipe";
+        };
+        packageRequires = [ emacs exec-path-from-shell helm-ag s ];
+        meta = {
+          homepage = "https://melpa.org/#/euslisp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eval-expr = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "eval-expr";
+        ename = "eval-expr";
+        version = "20120618.2347";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "eval-expr";
+          rev = "a0e69e83de41df8dbccefc1962ab4f02206a3328";
+          sha256 = "08zw3qrhqmnv2wxmbf74svk2cx5by4831kyw6rx13imkc4x8kngx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eval-expr";
+          sha256 = "0zkphbx7ph4p7qkfxqyr6p8420j9qkvx5wghd1sza6y0kb456872";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eval-expr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eval-in-repl = callPackage ({ ace-window
+                                , dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , paredit }:
+      melpaBuild {
+        pname = "eval-in-repl";
+        ename = "eval-in-repl";
+        version = "20171122.543";
+        src = fetchFromGitHub {
+          owner = "kaz-yos";
+          repo = "eval-in-repl";
+          rev = "fea05a5b81d74ac53cb2a83aa83a73d9526bcc42";
+          sha256 = "0xm1ggdaihy1cyg4b3b9x1n93bp4qiv30p1mfzmmqm6w89z1agf0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eval-in-repl";
+          sha256 = "10h5vy9wdiqf9dgk1d1bsvp93y8sfcxghzg8zbhhn7m5cqg2wh63";
+          name = "recipe";
+        };
+        packageRequires = [ ace-window dash paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/eval-in-repl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eval-sexp-fu = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , highlight
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "eval-sexp-fu";
+        ename = "eval-sexp-fu";
+        version = "20180509.1903";
+        src = fetchFromGitHub {
+          owner = "hchbaw";
+          repo = "eval-sexp-fu.el";
+          rev = "1cfd0f3e167d63080692fad97ffe0091b024ad73";
+          sha256 = "0l20ja8s0881jlrlmba496iyizfa0j5bvc2x39rshn8qqyka2dq2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eval-sexp-fu";
+          sha256 = "17cazf81z4cszflnfp66zyq2cclw5sp9539pxskdf267cf7r0ycs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib highlight ];
+        meta = {
+          homepage = "https://melpa.org/#/eval-sexp-fu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evalator = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , helm-core
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "evalator";
+        ename = "evalator";
+        version = "20160212.1728";
+        src = fetchFromGitHub {
+          owner = "seanirby";
+          repo = "evalator";
+          rev = "f30da4da48c0b3f3cfa1fc1c7cfdb53ffe79df36";
+          sha256 = "1llxxdprs8yw2hqj4dhrkrrzmkl25h7p4rcaa2cw544fmg3kvlz1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evalator";
+          sha256 = "0k6alxwg89gc4v5m2bxmzmj7l6kywhbh4036xgz19q28xnlbr9xk";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/evalator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evalator-clojure = callPackage ({ cider
+                                    , evalator
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "evalator-clojure";
+        ename = "evalator-clojure";
+        version = "20160208.1348";
+        src = fetchFromGitHub {
+          owner = "seanirby";
+          repo = "evalator-clojure";
+          rev = "caa4e0a137bdfada86593128a654e16aa617ad50";
+          sha256 = "1q5s1ffmfh5dby92853xm8kjhgjfd5vbvcg1xbf8lswc1i41k7n7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evalator-clojure";
+          sha256 = "10mxlgirnsq3z7l1izrf2v1l1yr4sbdjsaszz7llqv6l80y4bji3";
+          name = "recipe";
+        };
+        packageRequires = [ cider evalator ];
+        meta = {
+          homepage = "https://melpa.org/#/evalator-clojure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eve-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , markdown-mode
+                            , melpaBuild
+                            , polymode }:
+      melpaBuild {
+        pname = "eve-mode";
+        ename = "eve-mode";
+        version = "20170822.1531";
+        src = fetchFromGitHub {
+          owner = "witheve";
+          repo = "emacs-eve-mode";
+          rev = "a4661114d9c18725691b76321d72167ca5a9070a";
+          sha256 = "19s6cid42q0lm2w94a7f6sxvmy3zpjdj5r5dbwcxxp5n3qfs7nip";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eve-mode";
+          sha256 = "1ch50bm452g8k1xnqcbpmpwkmg8amzv7bq0hphk3y0kiqkwd1gdh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs markdown-mode polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/eve-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , goto-chg
+                        , lib
+                        , melpaBuild
+                        , undo-tree }:
+      melpaBuild {
+        pname = "evil";
+        ename = "evil";
+        version = "20181107.216";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil";
+          rev = "99bcf8c31ee72a3a571e013f40d105618fb92d19";
+          sha256 = "1xvks74kkl599ma3llw6ygk6r8v9b41nc41ph1kpbpznf1sdxf2d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil";
+          sha256 = "1d36r6mi5nvrwnk4a9338wmhr72fcbrwj0r8gmvivpjdngjy4k39";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs goto-chg undo-tree ];
+        meta = {
+          homepage = "https://melpa.org/#/evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-anzu = callPackage ({ anzu
+                             , evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "evil-anzu";
+        ename = "evil-anzu";
+        version = "20170123.2318";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-evil-anzu";
+          rev = "565f79ae66fc329ab9e1bf5a89fa0727981ed5cc";
+          sha256 = "01gc7bj51w7952aqpb9zw9gqvjy8b8nfmhfpiah2r96gk9b0yn6j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-anzu";
+          sha256 = "19cmc61l370mm4h2m6jw5pdcsvj4wcv9zpa8z7k1fjg57mwmmn70";
+          name = "recipe";
+        };
+        packageRequires = [ anzu evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-anzu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-args = callPackage ({ evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "evil-args";
+        ename = "evil-args";
+        version = "20180908.1457";
+        src = fetchFromGitHub {
+          owner = "wcsmith";
+          repo = "evil-args";
+          rev = "758ad5ae54ad34202064fec192c88151c08cb387";
+          sha256 = "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-args";
+          sha256 = "1bwdvf1i3jc77bw2as1wr1djm8z3a7wms60694xkyqh0m909hs2w";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-args";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-avy = callPackage ({ avy
+                            , cl-lib ? null
+                            , emacs
+                            , evil
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "evil-avy";
+        ename = "evil-avy";
+        version = "20150908.48";
+        src = fetchFromGitHub {
+          owner = "louy2";
+          repo = "evil-avy";
+          rev = "2dd955cc3ecaa7ddeb67b295298abdc6d16dd3a5";
+          sha256 = "1q6znbnshk45mdglx519qlbfhb7g47qsm245i93ka4djsjy55j9l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-avy";
+          sha256 = "1hc96dd78yxgr8cs9sk9y1i5h1qnyk110vlb3wnlxv1hwn92qvrd";
+          name = "recipe";
+        };
+        packageRequires = [ avy cl-lib emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-avy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-better-visual-line = callPackage ({ evil
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "evil-better-visual-line";
+        ename = "evil-better-visual-line";
+        version = "20181026.328";
+        src = fetchFromGitHub {
+          owner = "YourFin";
+          repo = "evil-better-visual-line";
+          rev = "05e8270ae62e71b652513407c561b136c258f04c";
+          sha256 = "1q7jsmk301ncpn18g5qk02ypbxc9irfh30rxi9k2ab8p35j3ml4i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-better-visual-line";
+          sha256 = "00l6gd66apf0gphlx5hk9lcl7rmj7ag8kf558psyzcyvhpmff2bq";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-better-visual-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-cleverparens = callPackage ({ dash
+                                     , emacs
+                                     , evil
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , paredit
+                                     , smartparens }:
+      melpaBuild {
+        pname = "evil-cleverparens";
+        ename = "evil-cleverparens";
+        version = "20170717.2113";
+        src = fetchFromGitHub {
+          owner = "luxbock";
+          repo = "evil-cleverparens";
+          rev = "9bce7cc5e2ab80adeafb0f1a579eb27bdb7a8d2f";
+          sha256 = "1wplh9lk0cplkpik088lk5am5b8ks0rs8bp3b6wn0bn1r0l3jcxg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-cleverparens";
+          sha256 = "10zkyaxy52ixh26hzm9v1y0gakcn5sdwz4ny8v1vcmjqjphnk799";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs evil paredit smartparens ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-cleverparens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-colemak-basics = callPackage ({ emacs
+                                       , evil
+                                       , evil-snipe
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "evil-colemak-basics";
+        ename = "evil-colemak-basics";
+        version = "20170425.509";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "evil-colemak-basics";
+          rev = "7844079b47f47bb1dc24c885b0ac2e67524fa960";
+          sha256 = "0phspmd31pcxana2lp6mqywmghhdpj6ydsrl1bjn4b1gcp1fqsy2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-colemak-basics";
+          sha256 = "1sbbli0hdmpc23f3g5n95svqfdg3rlvf71plyvpv1a6va9jhi83k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil evil-snipe ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-colemak-basics";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-colemak-minimal = callPackage ({ emacs
+                                        , evil
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "evil-colemak-minimal";
+        ename = "evil-colemak-minimal";
+        version = "20171006.617";
+        src = fetchFromGitHub {
+          owner = "bmallred";
+          repo = "evil-colemak-minimal";
+          rev = "6d98b6da60f414524a0d718f76024c26dce742b3";
+          sha256 = "0pd05jq4qkw5xx7xqzxzx62fsm77vjz0ry9ayaqgqw5831rbp553";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-colemak-minimal";
+          sha256 = "0qi5k17b9k227zz9binbrd22cwmlqxkay98by9yxcbyhl4hjhdyy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-colemak-minimal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-collection = callPackage ({ cl-lib ? null
+                                   , emacs
+                                   , evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "evil-collection";
+        ename = "evil-collection";
+        version = "20181114.150";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil-collection";
+          rev = "dfa412db04b3714a14a1879679daddefb873b89b";
+          sha256 = "1vyhxvzq879j8wjv4zm7q4dq8qz5na0g75fda9hcdl8fck537kvy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-collection";
+          sha256 = "1l6x782ix873n90k9g00i9065h31dnhv07bgzrp28l7y7bivqwl7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-collection";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-commentary = callPackage ({ evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "evil-commentary";
+        ename = "evil-commentary";
+        version = "20170413.751";
+        src = fetchFromGitHub {
+          owner = "linktohack";
+          repo = "evil-commentary";
+          rev = "395f91014b69844b81660c155f42eb9b1b3d199d";
+          sha256 = "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-commentary";
+          sha256 = "151iiimmkpn58pl9zn40qssfahbrqy83axyl9dcd6kx2ywv5gcxz";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-commentary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-dvorak = callPackage ({ evil
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "evil-dvorak";
+        ename = "evil-dvorak";
+        version = "20160416.1141";
+        src = fetchFromGitHub {
+          owner = "jbranso";
+          repo = "evil-dvorak";
+          rev = "e7b80077d6f332452049eb3d7ea51f6c8fbf5947";
+          sha256 = "1z8wl0ih3b8bahbglp5n1xjws583hkryl034b2a3p11ljq3g2ggl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-dvorak";
+          sha256 = "1iq9wzcb625vs942khja39db1js8r46vrdiqcm47yfji98g39gsn";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-dvorak";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-easymotion = callPackage ({ avy
+                                   , cl-lib ? null
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "evil-easymotion";
+        ename = "evil-easymotion";
+        version = "20180113.2254";
+        src = fetchFromGitHub {
+          owner = "PythonNut";
+          repo = "evil-easymotion";
+          rev = "79c13ed3bce018ac09d358e642e5bd7025e93603";
+          sha256 = "0496dnbciq8gbivihas1y58gwd4nbfz767rr98zpwgkz8l2jvy73";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-easymotion";
+          sha256 = "0zixgdhc228y6yqr044cbyls0pihzacqsgvybhhar916p4h8izgv";
+          name = "recipe";
+        };
+        packageRequires = [ avy cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-easymotion";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-ediff = callPackage ({ evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-ediff";
+        ename = "evil-ediff";
+        version = "20170724.1223";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil-ediff";
+          rev = "67b0e69f65c196eff5b39dacb7a9ec05bb919c74";
+          sha256 = "0f8g07fyzyc8pdwizyj62v0dy65ap885asph83529y0j8wnni8ps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-ediff";
+          sha256 = "0yglhxm670996hd7305q38y5f47y87n75hh0q7qlm2vra2m2wa5s";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-ediff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-embrace = callPackage ({ emacs
+                                , embrace
+                                , evil-surround
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "evil-embrace";
+        ename = "evil-embrace";
+        version = "20160519.1129";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "evil-embrace.el";
+          rev = "8b2083c514af143f6d2f5d1cb4272c5bfb7437a3";
+          sha256 = "1cplq9s3fw8nadcipjrix46jfcjbgg3xhz6d226wcqgmg90aclfn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-embrace";
+          sha256 = "10cfkksh3llyfk26x36b7ri0x6a6hrcv275pxk7ckhs1pyhb14y7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs embrace evil-surround ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-embrace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-escape = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "evil-escape";
+        ename = "evil-escape";
+        version = "20180910.534";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "evil-escape";
+          rev = "f4e9116bfbaac8c9d210c17ad488e0982291245f";
+          sha256 = "1whppnlzkjig1yrz0fjvp8cy86215gjahgh88166nzk95wlc3pvf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-escape";
+          sha256 = "0jiwsgcqw8m6z4z82gx0m0r0vbvkcxc0czhn4mqjwkhhglwzgi8l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/evil-escape";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-ex-fasd = callPackage ({ emacs
+                                , evil
+                                , fasd
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "evil-ex-fasd";
+        ename = "evil-ex-fasd";
+        version = "20180902.2312";
+        src = fetchFromGitHub {
+          owner = "yqrashawn";
+          repo = "evil-ex-fasd";
+          rev = "ed8fbbe23a8a268d9dcbf1a6132e928ba2c655c5";
+          sha256 = "0fr57nlg7m65gzhnrwnqi5bgy4vzl0l0mxk63sr3561r8fnm8hbc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-ex-fasd";
+          sha256 = "1zljsrpbsimldpc1wviw87vgm6941zz4wy8vhpplwkfbnywiwnp7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil fasd ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-ex-fasd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-ex-shell-command = callPackage ({ emacs
+                                         , evil
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "evil-ex-shell-command";
+        ename = "evil-ex-shell-command";
+        version = "20180902.2314";
+        src = fetchFromGitHub {
+          owner = "yqrashawn";
+          repo = "evil-ex-shell-command";
+          rev = "dd31672b1f6b67072b06805c9460f90bc682488a";
+          sha256 = "1xni928mdqfpfh0wadi04zkpn0l9m6mlvarzdryhaf7s2lyagzc6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-ex-shell-command";
+          sha256 = "1lbk31l7g6n6lqm8rvsfqbagqvhkp0s2v6wz8x4fnrjj0ymd4syf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-ex-shell-command";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-exchange = callPackage ({ cl-lib ? null
+                                 , evil
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "evil-exchange";
+        ename = "evil-exchange";
+        version = "20170510.1959";
+        src = fetchFromGitHub {
+          owner = "Dewdrops";
+          repo = "evil-exchange";
+          rev = "47691537815150715e64e6f6ec79be7746c96120";
+          sha256 = "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-exchange";
+          sha256 = "1mvw7w23yfbfmhzj6wimslbryb0gppryw24ac0wh4fzl9rdcma4r";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-exchange";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-expat = callPackage ({ emacs
+                              , evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-expat";
+        ename = "evil-expat";
+        version = "20180719.116";
+        src = fetchFromGitHub {
+          owner = "edkolev";
+          repo = "evil-expat";
+          rev = "3ff831784c5f301330ecced5ebd43cce42980d2b";
+          sha256 = "15x9fl7r25dygzkc6hhw5yzza7g2dwgr7gvvim913ahnzk5g9nag";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-expat";
+          sha256 = "03niji6wymhlfkvdg90gasccs4683djxcj925c8k0vdgmfr8sx32";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-expat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-extra-operator = callPackage ({ evil
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "evil-extra-operator";
+        ename = "evil-extra-operator";
+        version = "20161212.2003";
+        src = fetchFromGitHub {
+          owner = "Dewdrops";
+          repo = "evil-extra-operator";
+          rev = "e16a9b36f9901254da9af8a73871061616410fc3";
+          sha256 = "116srvfck3b244shxm9cmw3yvpprjgr840fvcv6jwwpfaphafxw4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-extra-operator";
+          sha256 = "066apin0yrjx7zr007p2h9p2nq58lz7qikzjzg0spqkb8vy7vkc5";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-extra-operator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-find-char-pinyin = callPackage ({ evil
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , pinyinlib }:
+      melpaBuild {
+        pname = "evil-find-char-pinyin";
+        ename = "evil-find-char-pinyin";
+        version = "20160514.1341";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "evil-find-char-pinyin";
+          rev = "04e277946d658f1a73c68dcbbadea9c21097a31c";
+          sha256 = "1bsy2bynzxr1ibyidv2r21xnfnxbzr0xh5m3h05s5igbmajxr12d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-find-char-pinyin";
+          sha256 = "0n52ijdf5hy7mn0rab4493zs2nrf7r1qkmvf0algqaj7bfjscs79";
+          name = "recipe";
+        };
+        packageRequires = [ evil pinyinlib ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-find-char-pinyin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-fringe-mark = callPackage ({ emacs
+                                    , evil
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , fringe-helper
+                                    , goto-chg
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "evil-fringe-mark";
+        ename = "evil-fringe-mark";
+        version = "20180727.2347";
+        src = fetchFromGitHub {
+          owner = "Andrew-William-Smith";
+          repo = "evil-fringe-mark";
+          rev = "37521e190dc0414a2bfddd6b219527b1a8dd3f58";
+          sha256 = "1hxylidf90j7zxr1rwgjkycc5l0qf2dvngrkfrvnl7r7yls6mgmd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-fringe-mark";
+          sha256 = "1ahlbp31ll24vzah4bv1xx58gn8y8fsjb0n9a135zwb3fjla9drb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil fringe-helper goto-chg ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-fringe-mark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-god-state = callPackage ({ evil
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , god-mode
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "evil-god-state";
+        ename = "evil-god-state";
+        version = "20141116.1855";
+        src = fetchFromGitHub {
+          owner = "gridaphobe";
+          repo = "evil-god-state";
+          rev = "3d44197dc0a1fb40e7b7ff8717f8a8c339ce1d40";
+          sha256 = "1cv24qnxxf6n1grf4n5969v8y9xll5zb9mbfdnq9iavdvhnndk2h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-god-state";
+          sha256 = "1g547d58zf11qw0zz3fk5kmrzmfx1rhawyh5d2h8bll8hwygnrxf";
+          name = "recipe";
+        };
+        packageRequires = [ evil god-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-god-state";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-goggles = callPackage ({ emacs
+                                , evil
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "evil-goggles";
+        ename = "evil-goggles";
+        version = "20180725.252";
+        src = fetchFromGitHub {
+          owner = "edkolev";
+          repo = "evil-goggles";
+          rev = "d7876e6566ac82b7c3251a59651e7db6ab756589";
+          sha256 = "0xr6svfk3p5py6q922p7nlaxqpd7iid2q1x5xwjfy4cg89h29vd2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-goggles";
+          sha256 = "151xvawyhcjp98skaif08wbxqaw602f51zgwm604hp25a111qmnq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-goggles";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-iedit-state = callPackage ({ evil
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , iedit
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "evil-iedit-state";
+        ename = "evil-iedit-state";
+        version = "20180606.2258";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "evil-iedit-state";
+          rev = "f75cff4ecbd5beaa9ca64a6c157c4105f078daec";
+          sha256 = "0f6m5wi1q6ac9mkvalm62rlnlkjz1c315a4sa93p6iw9x12llkgw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-iedit-state";
+          sha256 = "1dihyh7vqcp7kvfic613k7v33czr93hz04d635awrsyzgy8savhl";
+          name = "recipe";
+        };
+        packageRequires = [ evil iedit ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-iedit-state";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-indent-plus = callPackage ({ cl-lib ? null
+                                    , evil
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "evil-indent-plus";
+        ename = "evil-indent-plus";
+        version = "20151109.1106";
+        src = fetchFromGitHub {
+          owner = "TheBB";
+          repo = "evil-indent-plus";
+          rev = "33a8bcac5f90ddee054e64d60c2b68c98c269ffc";
+          sha256 = "0v94kn99z6v4aigjgk3l6b6x22bv9fighisbm23b0861kwcns98f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-indent-plus";
+          sha256 = "15vnvch0qsaram22d44k617bqhr9rrf8qc86sf20yvdyy3gi5j12";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-indent-plus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-indent-textobject = callPackage ({ evil
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "evil-indent-textobject";
+        ename = "evil-indent-textobject";
+        version = "20130831.1519";
+        src = fetchFromGitHub {
+          owner = "cofi";
+          repo = "evil-indent-textobject";
+          rev = "70a1154a531b7cfdbb9a31d6922482791e20a3a7";
+          sha256 = "0nghisnc49ivh56mddfdlcbqv3y2vqzjvkpgwv3zp80ga6ghvdmz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-indent-textobject";
+          sha256 = "172a3krid5lrx1w9xcifkhjnvlxg1nbz4w102d99d0grr9465r09";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-indent-textobject";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-leader = callPackage ({ evil
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "evil-leader";
+        ename = "evil-leader";
+        version = "20140606.543";
+        src = fetchFromGitHub {
+          owner = "cofi";
+          repo = "evil-leader";
+          rev = "39f7014bcf8b36463e0c7512c638bda4bac6c2cf";
+          sha256 = "10xrlimsxk09z9cw6rxdz8qvvn1i0vhc1gdicwxri0j10p0hacl3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-leader";
+          sha256 = "154s2nb170hzksmc87wnzlwg3ic3w3ravgsfvwkyfi2q285vmra6";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-leader";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-ledger = callPackage ({ emacs
+                               , evil
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ledger-mode
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "evil-ledger";
+        ename = "evil-ledger";
+        version = "20180802.912";
+        src = fetchFromGitHub {
+          owner = "atheriel";
+          repo = "evil-ledger";
+          rev = "7a9f9f5d39c42fffdba8004f8982642351f2b233";
+          sha256 = "010r1qn9l3clqqrlia0y25bqjbrixvf8i409v10yxqb949jvw1vk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-ledger";
+          sha256 = "13idy2kbzhckzfwrjnzjrf8h2881w3v8pmhlcj26xcyf4ch0dq9r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ledger-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-ledger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-lion = callPackage ({ emacs
+                             , evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "evil-lion";
+        ename = "evil-lion";
+        version = "20170810.2314";
+        src = fetchFromGitHub {
+          owner = "edkolev";
+          repo = "evil-lion";
+          rev = "aaa3874ad54c31b4322ac5bbc63e331498b11d61";
+          sha256 = "1aq3ip93sxk05gfgh2zw6zckmkir0viqaqz674fcmsd2rc2051zn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-lion";
+          sha256 = "1rwmpc5ifblb41c1yhhv26ayff4nk9iza7w0wb5ganny2r82fg2v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-lion";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-lisp-state = callPackage ({ bind-map
+                                   , evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , smartparens }:
+      melpaBuild {
+        pname = "evil-lisp-state";
+        ename = "evil-lisp-state";
+        version = "20160403.1948";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "evil-lisp-state";
+          rev = "3c65fecd9917a41eaf6460f22187e2323821f3ce";
+          sha256 = "1n6r8xs670r5qp4b5f72nr9g8nlqcrx1v7yqqlbkgv8gns8n5xgh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-lisp-state";
+          sha256 = "16h6zi0kkq2zlrwqiz6avnw2ady3h9gmxyinvk5gbkskxf12d1pz";
+          name = "recipe";
+        };
+        packageRequires = [ bind-map evil smartparens ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-lisp-state";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-lispy = callPackage ({ evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , hydra
+                              , lib
+                              , lispy
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-lispy";
+        ename = "evil-lispy";
+        version = "20170304.259";
+        src = fetchFromGitHub {
+          owner = "sp3ctum";
+          repo = "evil-lispy";
+          rev = "040a7ee130c2403a1d6dac591b94b202bb48e186";
+          sha256 = "008jar578yxa70nd69z4ldmknfmm1jar3wx71n3y2gnyghr759k1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-lispy";
+          sha256 = "17z830b0x6lhmqkk07hfbrg63c7q7mpn4zz1ppjd1smv4mcqzyld";
+          name = "recipe";
+        };
+        packageRequires = [ evil hydra lispy ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-lispy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-magit = callPackage ({ evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , magit
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-magit";
+        ename = "evil-magit";
+        version = "20180702.853";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil-magit";
+          rev = "9f32c4e190e3d67f193485f12199275ff1a047f0";
+          sha256 = "0lmsc02fb9s43gs7svqq57bsznqxxzjv6s79lz2hc0rhacxb5pp9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-magit";
+          sha256 = "02ncki7qrl22804576h76xl4d5lvvk32lzn9gvxn63hb19r0s980";
+          name = "recipe";
+        };
+        packageRequires = [ evil magit ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-magit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-mark-replace = callPackage ({ evil
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "evil-mark-replace";
+        ename = "evil-mark-replace";
+        version = "20150424.18";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "evil-mark-replace";
+          rev = "56cf191724a3e82239ca47a17b071c20aedb0617";
+          sha256 = "01hccc49xxb6lnzr0lwkkwndbk4sv0jyyz3khbcxsgkpzjiydihv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-mark-replace";
+          sha256 = "14j2d46288shlixb57nh5vlqdi3aiv20djvcbhiw1cm9ar2c3y4v";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-mark-replace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-matchit = callPackage ({ emacs
+                                , evil
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "evil-matchit";
+        ename = "evil-matchit";
+        version = "20181110.2204";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "evil-matchit";
+          rev = "7d65b4167b1f0086c2b42b3aec805e47a0d355c4";
+          sha256 = "12if45pxfndy3d7r4gd3zx4d3jk4d64fdmwkhc3y5zhqq9h9iy4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-matchit";
+          sha256 = "01z69n20qs4gngd28ry4kn825cax5km9hn96i87yrvq7nfa64swq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-matchit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-mc = callPackage ({ cl-lib ? null
+                           , emacs
+                           , evil
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "evil-mc";
+        ename = "evil-mc";
+        version = "20180921.1027";
+        src = fetchFromGitHub {
+          owner = "gabesoft";
+          repo = "evil-mc";
+          rev = "2af29ecd2fbed1571c4cc2501dfb2e38ffd4bfa2";
+          sha256 = "1996ysiaj9s34cf2z4vyw3i6jwsc1s7b6r8v3hgb8h6rg19a77mf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-mc";
+          sha256 = "0cq4xg6svb5gz4ra607wy768as2igla4h1xcrfnxldknk476fqqs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-mc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-mc-extras = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , evil
+                                  , evil-mc
+                                  , evil-numbers
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "evil-mc-extras";
+        ename = "evil-mc-extras";
+        version = "20170202.849";
+        src = fetchFromGitHub {
+          owner = "gabesoft";
+          repo = "evil-mc-extras";
+          rev = "ba3252ae129c3b79aeb70ec3d276cbda32b00421";
+          sha256 = "0a7mn1z0db4xi8wclqp41hcbzh017q6pndxr9mrfxb67sqs601id";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-mc-extras";
+          sha256 = "1px4akqaddqgfd03932d03d3rrvjr5lv5nc94xc448kqcbfn7yjk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil evil-mc evil-numbers ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-mc-extras";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-mu4e = callPackage ({ emacs
+                             , evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "evil-mu4e";
+        ename = "evil-mu4e";
+        version = "20180613.339";
+        src = fetchFromGitHub {
+          owner = "JorisE";
+          repo = "evil-mu4e";
+          rev = "f4b387ccbd2c49f3bbb5401e93bfcc050ca128ef";
+          sha256 = "1fiqx5q0jwh92dxj54wglw91a9pxyb58s8253pb7as9y1iwvyyhq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-mu4e";
+          sha256 = "1ks4vnga7dkz27a7gza5hakzbcsiqgkq1ysc0lcx7g82ihpmrrcq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-mu4e";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-multiedit = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , evil
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , iedit
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "evil-multiedit";
+        ename = "evil-multiedit";
+        version = "20181009.815";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "evil-multiedit";
+          rev = "ea38ac2f96c19a45591ece0e8b60252efe324657";
+          sha256 = "00fgdcx804xl4rz4rxwsld75732470jmn4vnibv2yiyrd0lv3z9z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-multiedit";
+          sha256 = "0p02q9skqw2zhx7sfadqgs7vn518s72856962dam0xw4sqasplfp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil iedit ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-multiedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-nerd-commenter = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "evil-nerd-commenter";
+        ename = "evil-nerd-commenter";
+        version = "20180722.1625";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "evil-nerd-commenter";
+          rev = "275c95c89cc09c7096bd6fd0deabd49f29634f5d";
+          sha256 = "07k4d1dy1nm9g54zwqzdqhibz2a2zfi7q27z7k8wq0ibjph96nwh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-nerd-commenter";
+          sha256 = "1pa5gh065hqn5mhs47qvjllwdwwafl0clk555mb6w7svq58r6i8d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-nerd-commenter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-numbers = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "evil-numbers";
+        ename = "evil-numbers";
+        version = "20140606.551";
+        src = fetchFromGitHub {
+          owner = "cofi";
+          repo = "evil-numbers";
+          rev = "8834eb2e8bd93561a706363946701d0d90546a9f";
+          sha256 = "13jg2xbh4p02x1nj77b6csb93hh56c1nv8kslcq2hjj3caipk4m8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-numbers";
+          sha256 = "1lpmkklwjdf7ayhv99g9zh3l9hzrwm0hr0ijvbc7yz3n398zn1b2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/evil-numbers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-opener = callPackage ({ evil
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , opener }:
+      melpaBuild {
+        pname = "evil-opener";
+        ename = "evil-opener";
+        version = "20161207.1010";
+        src = fetchFromGitHub {
+          owner = "0robustus1";
+          repo = "opener.el";
+          rev = "c384f67278046fdcd220275fdd212ab85672cbeb";
+          sha256 = "0gci909a2rbx5i8dyzyrcddwdic7nvpk6y6djvn521yaag4sq87h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-opener";
+          sha256 = "0cld853pyzlaa306rpypw2wm4953i6y06irlk96bql9aa1zx977g";
+          name = "recipe";
+        };
+        packageRequires = [ evil opener ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-opener";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-org = callPackage ({ emacs
+                            , evil
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "evil-org";
+        ename = "evil-org";
+        version = "20180323.1606";
+        src = fetchFromGitHub {
+          owner = "Somelauw";
+          repo = "evil-org-mode";
+          rev = "b6d652a9163d3430a9e0933a554bdbee5244bbf6";
+          sha256 = "176hrw7y7nczffbyhsa167b8rvfacsmcafm2gpkrdjqlrikbmrhl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-org";
+          sha256 = "18glpsnpxap4dvnvkl59h9pnwlp20libsfbbkmvrbzsvbdyspg6z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-paredit = callPackage ({ evil
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , paredit }:
+      melpaBuild {
+        pname = "evil-paredit";
+        ename = "evil-paredit";
+        version = "20150413.1348";
+        src = fetchFromGitHub {
+          owner = "roman";
+          repo = "evil-paredit";
+          rev = "e058fbdcf9dbf7ad6cc77f0172d7517ef233d55f";
+          sha256 = "0b08y4spapl4g2292j3l4cr84gjlvm3rpma3gqld4yb1sxd7v78p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-paredit";
+          sha256 = "0xvxxa3gjgsrv10a61y0591bn3gj8v1ff2wck8s0svwfl076gyfy";
+          name = "recipe";
+        };
+        packageRequires = [ evil paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-paredit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-python-movement = callPackage ({ cl-lib ? null
+                                        , dash
+                                        , emacs
+                                        , evil
+                                        , fetchgit
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , s }:
+      melpaBuild {
+        pname = "evil-python-movement";
+        ename = "evil-python-movement";
+        version = "20180724.720";
+        src = fetchgit {
+          url = "https://bitbucket.org/FelipeLema/evil-python-movement.el";
+          rev = "9936b3b7f8d96415d517c1f3604637889484a637";
+          sha256 = "11ivb95ilsw3svpna9n07yf8s9q3w36ia6js2qv6wf0d0dp2xb9r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-python-movement";
+          sha256 = "1qs0z93rpi9dz6hy64816afdr4k5gssyw2dhaxcn152ylg1yzkg3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs evil s ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-python-movement";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-quickscope = callPackage ({ evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "evil-quickscope";
+        ename = "evil-quickscope";
+        version = "20160202.1124";
+        src = fetchFromGitHub {
+          owner = "blorbx";
+          repo = "evil-quickscope";
+          rev = "37a20e4c56c6058abf186ad4013c155e695e876f";
+          sha256 = "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-quickscope";
+          sha256 = "0xym1mh4p68i00l1lshywf5fdg1vw3szxp3fk9fwfcg04z6vd489";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-quickscope";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-rails = callPackage ({ evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , projectile-rails }:
+      melpaBuild {
+        pname = "evil-rails";
+        ename = "evil-rails";
+        version = "20160621.1558";
+        src = fetchFromGitHub {
+          owner = "antono";
+          repo = "evil-rails";
+          rev = "8cbf97719fdef17e98c593966d4753962e350bac";
+          sha256 = "18m73hr0nqrf60vnrhbd4jjrfz8g6flzkdjixd8rzpxpmfx8vsv9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-rails";
+          sha256 = "0ah0nvzl30z19566kacyrsznsdm3cpij8n3bw3dfng7263rh60gj";
+          name = "recipe";
+        };
+        packageRequires = [ evil projectile-rails ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-rails";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-replace-with-char = callPackage ({ emacs
+                                          , evil
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "evil-replace-with-char";
+        ename = "evil-replace-with-char";
+        version = "20180324.1506";
+        src = fetchFromGitHub {
+          owner = "ninrod";
+          repo = "evil-replace-with-char";
+          rev = "ed4a12d5bff11163eb03ad2826c52fd30f51a8d3";
+          sha256 = "1nhnwl39wsi7akzcjqszxxw2b6j9i5y4qabcd8p387zajjpgscwk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-replace-with-char";
+          sha256 = "0lgazw53j44rc72czwqxs6yaz67l9i1v52wbi7l9w958fnjra84r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-replace-with-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-replace-with-register = callPackage ({ evil
+                                              , fetchFromGitHub
+                                              , fetchurl
+                                              , lib
+                                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-replace-with-register";
+        ename = "evil-replace-with-register";
+        version = "20170713.225";
+        src = fetchFromGitHub {
+          owner = "Dewdrops";
+          repo = "evil-ReplaceWithRegister";
+          rev = "91cc7bf21a94703c441cc9212214075b226b7f67";
+          sha256 = "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-replace-with-register";
+          sha256 = "0qyym6vwjs0aqf2p28rh96v30pgxg060pxyij0vrfj469wzmlrj9";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-replace-with-register";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-rsi = callPackage ({ evil
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "evil-rsi";
+        ename = "evil-rsi";
+        version = "20160221.1304";
+        src = fetchFromGitHub {
+          owner = "linktohack";
+          repo = "evil-rsi";
+          rev = "236bf6ed1e2285698db808463e5f2f69f5f5e7c0";
+          sha256 = "1xz629qv1ss1fap397k48piawcwl8lrybraq5449bw1vvn1a4d9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-rsi";
+          sha256 = "0mc39n72420n36kwyf9zpw1pgyih0aigfnmkbywb0yxgj7myc345";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-rsi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-search-highlight-persist = callPackage ({ fetchFromGitHub
+                                                 , fetchurl
+                                                 , highlight
+                                                 , lib
+                                                 , melpaBuild }:
+      melpaBuild {
+        pname = "evil-search-highlight-persist";
+        ename = "evil-search-highlight-persist";
+        version = "20170522.2034";
+        src = fetchFromGitHub {
+          owner = "naclander";
+          repo = "evil-search-highlight-persist";
+          rev = "6e04a8c075f5fd62526d222447048faab8bfa187";
+          sha256 = "1ni1bila3kjqrjcn1sm6g6h2cmf1chrh4d8nj4qfjvkb12fkw6j6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-search-highlight-persist";
+          sha256 = "08l8ymrp9vkpwprq9gp4562yvcnd4hfc3z7n4n5lz7h6ffv3zym3";
+          name = "recipe";
+        };
+        packageRequires = [ highlight ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-search-highlight-persist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-smartparens = callPackage ({ emacs
+                                    , evil
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , smartparens }:
+      melpaBuild {
+        pname = "evil-smartparens";
+        ename = "evil-smartparens";
+        version = "20171210.713";
+        src = fetchFromGitHub {
+          owner = "expez";
+          repo = "evil-smartparens";
+          rev = "026d4a3cfce415a4dfae1457f871b385386e61d3";
+          sha256 = "05habba44zls2d20kgzshrq2psagay16cnvcnkqgrbhvj1rxfmrk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-smartparens";
+          sha256 = "1viwrd6gfqmwhlil80pk68dikn3cjf9ddsy0z781z3qfx0j35qza";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil smartparens ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-smartparens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-snipe = callPackage ({ cl-lib ? null
+                              , emacs
+                              , evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-snipe";
+        ename = "evil-snipe";
+        version = "20180731.1031";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "evil-snipe";
+          rev = "8dd076cc56eb9b04494e4e303b86a959b048350b";
+          sha256 = "05zlmkyl1gms7pk2izh67j7xk4mb5y94jpyx63lg59yc391p5p07";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-snipe";
+          sha256 = "0gcmpjw3iw7rjk86b2k6clfigp48vakfjd1a9n8qramhnc85rgkn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-snipe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-space = callPackage ({ evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-space";
+        ename = "evil-space";
+        version = "20151208.428";
+        src = fetchFromGitHub {
+          owner = "linktohack";
+          repo = "evil-space";
+          rev = "a9c07284d308425deee134c9d88a2d538dd229e6";
+          sha256 = "1x4nphjq8lvg8qsm1pj04mk9n59xc6jlxiv5s3bih1nl4xkssrxy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-space";
+          sha256 = "1asvh873r1xgffvz3nr653yn8h5ifaphnafp6wf1b1mja6as7f23";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-space";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-string-inflection = callPackage ({ emacs
+                                          , evil
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild
+                                          , string-inflection }:
+      melpaBuild {
+        pname = "evil-string-inflection";
+        ename = "evil-string-inflection";
+        version = "20180313.1055";
+        src = fetchFromGitHub {
+          owner = "ninrod";
+          repo = "evil-string-inflection";
+          rev = "5512db7e0e5fd28c881cc278add50ffae1f121f0";
+          sha256 = "1114yacpb0a0lp7kz0lb1mb7s1adhk370i3kj78a911i72c9szi1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-string-inflection";
+          sha256 = "0w9x49c0gmv4waspa9fvbhf2adm19cixkwx7a7la9v4qy7da6akh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil string-inflection ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-string-inflection";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-surround = callPackage ({ evil
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "evil-surround";
+        ename = "evil-surround";
+        version = "20181020.548";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil-surround";
+          rev = "440d391c89a7f6d5a7a0c9486b0e8ac4fc7f43aa";
+          sha256 = "0ax6ac087a43lcdrbbxbn6byl5q8ndcy1srkc7w82d6py4yn6hab";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-surround";
+          sha256 = "0aphv5zinb0lzdx22qbzcr7fn6jbpkdczar7py3df6mzxw5wvcm1";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-surround";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-swap-keys = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "evil-swap-keys";
+        ename = "evil-swap-keys";
+        version = "20170726.1120";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "evil-swap-keys";
+          rev = "56bc201e265a6bd482a7c41a7c81d2238341ef3a";
+          sha256 = "0n0hl0plaghz9rjssabxwfzm46kr6564hpfh6hn8lzla4rf1q5zs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-swap-keys";
+          sha256 = "12cx95mjm4ymggidvf41gh3a364z32h655jmhk417v0ga9jk9fv6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-swap-keys";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-tabs = callPackage ({ elscreen
+                             , evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "evil-tabs";
+        ename = "evil-tabs";
+        version = "20160217.720";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "evil-tabs";
+          rev = "53d3314a810017b6056ab6796aef671f5ea1c063";
+          sha256 = "1qklx0j3fz3mp87v64yqbyyq5csfymbjfwvy2s4nk634wbnrra93";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-tabs";
+          sha256 = "0qgvpv5hcai8wmkv2fp6i2vdy7qp4gwidwpzz8j6vl9519x73s62";
+          name = "recipe";
+        };
+        packageRequires = [ elscreen evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-tabs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-terminal-cursor-changer = callPackage ({ evil
+                                                , fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild }:
+      melpaBuild {
+        pname = "evil-terminal-cursor-changer";
+        ename = "evil-terminal-cursor-changer";
+        version = "20170401.142";
+        src = fetchFromGitHub {
+          owner = "7696122";
+          repo = "evil-terminal-cursor-changer";
+          rev = "b49ca4393d2f3cc6014174950059b36a5cb22949";
+          sha256 = "1zra2h0x20whshbc4sfyj6w73jv6ak435mr9n6r6s7brqqqgpa36";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-terminal-cursor-changer";
+          sha256 = "16p9a1dybbqr8r717c5ssfd3p5392bqxxzqs4n0xc7v7g8v1m0cd";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-terminal-cursor-changer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-test-helpers = callPackage ({ evil
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "evil-test-helpers";
+        ename = "evil-test-helpers";
+        version = "20180109.1040";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil";
+          rev = "49d6167d6bb97454afe1d06a5324483682de8ab6";
+          sha256 = "0l3hmmkys3fw5yxs4kmjx5nrbjh9w19d0bfkryhbxhc5xszydvzz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-test-helpers";
+          sha256 = "0l4skyznzgr76z518q22lf90ymlsfcs02w8vqkg8az1nfl3ch7fs";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-test-helpers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-text-object-python = callPackage ({ emacs
+                                           , evil
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "evil-text-object-python";
+        ename = "evil-text-object-python";
+        version = "20160815.141";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "evil-text-object-python";
+          rev = "7aae5558be25b4a33abdede8a91da1cc7d08f1bc";
+          sha256 = "0qfqfqbq3jijnmg0rp6agz9skcv2drnpyn481c7f455z46xi87kl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-text-object-python";
+          sha256 = "0jdzs1yn8nrxq890427yjrxdvnzj8jy7bs3jj4w4c0fik26ngqhm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-text-object-python";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-textobj-anyblock = callPackage ({ cl-lib ? null
+                                         , evil
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "evil-textobj-anyblock";
+        ename = "evil-textobj-anyblock";
+        version = "20170905.1207";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "evil-textobj-anyblock";
+          rev = "ff00980f0634f95bf2ad9956b615a155ea8743be";
+          sha256 = "0wn5lp7kh3ip1bmqi12c9ivpjj0x602h8d7ag39qw36smv4jqvnb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-textobj-anyblock";
+          sha256 = "03vk30s2wkcszcjxmh5ww39rihnag9cp678wdzq4bnqy0c6rnjwa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-textobj-anyblock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-textobj-column = callPackage ({ emacs
+                                       , evil
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , names }:
+      melpaBuild {
+        pname = "evil-textobj-column";
+        ename = "evil-textobj-column";
+        version = "20170905.1205";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "evil-textobj-column";
+          rev = "835d7036d0bc9a6e44fc9b7c54ccf2a7c01428cd";
+          sha256 = "0g9d62sgcpzvhbrdk4hf3phphfss74mjz6xv4wd9895rzjsziwkf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-textobj-column";
+          sha256 = "13q3nawx05rn3k6kzq1889vxjznr454cib96pc9lmrq7h65lym2h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil names ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-textobj-column";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-textobj-entire = callPackage ({ emacs
+                                       , evil
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "evil-textobj-entire";
+        ename = "evil-textobj-entire";
+        version = "20150422.554";
+        src = fetchFromGitHub {
+          owner = "supermomonga";
+          repo = "evil-textobj-entire";
+          rev = "5b3a98f3a69edc3a788f539f6ffef4a0ef5e853d";
+          sha256 = "0m3krfmc9llpywr0lbya36b2jbnzx1pylvhj0p1ss5rh735m00jy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-textobj-entire";
+          sha256 = "0hkdnkv03b31330pnkijhhbyw00m7bxfvs3cgzfazsvvcsha4gmi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-textobj-entire";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-textobj-line = callPackage ({ evil
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "evil-textobj-line";
+        ename = "evil-textobj-line";
+        version = "20150729.822";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "evil-textobj-line";
+          rev = "0209f9b84c7e1e1c42e346cdb8c0e36619471e5f";
+          sha256 = "0ln72zfrzn1bnv40kyzjchmfv3dgd2wm596lxacd2kygcx4a4gky";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-textobj-line";
+          sha256 = "158w524qzj0f03ihid2fisxyf1g7vwpv3ckfkzi7c2l549jnsdsa";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-textobj-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-textobj-syntax = callPackage ({ emacs
+                                       , evil
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , names }:
+      melpaBuild {
+        pname = "evil-textobj-syntax";
+        ename = "evil-textobj-syntax";
+        version = "20181101.704";
+        src = fetchFromGitHub {
+          owner = "laishulu";
+          repo = "evil-textobj-syntax";
+          rev = "933752ff2ae22d1bbcda394bdeed5c575d90d1d8";
+          sha256 = "0px939835aqmgnmd8a196bnjs4w1rkk0nbjvbsl8llhhv6cs7q2w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-textobj-syntax";
+          sha256 = "0d0fg71xmbqhx91ljnkxmakcc0qn3341wjjmzax33qilz5syp3m9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil names ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-textobj-syntax";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-tutor = callPackage ({ evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-tutor";
+        ename = "evil-tutor";
+        version = "20150102.2250";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "evil-tutor";
+          rev = "79b47a9f444ddaa289c66e8995ee116941429c24";
+          sha256 = "11hiaxiqc2f522y7rgfr6bjnmx4nrssq1q9g96w4rsb10627qvsf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-tutor";
+          sha256 = "1hvc2w5ykrgh62n4sxqqqcdk5sd7nmh6xzv4mir5vf9y2dgqcvsn";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-tutor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-tutor-ja = callPackage ({ evil
+                                 , evil-tutor
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "evil-tutor-ja";
+        ename = "evil-tutor-ja";
+        version = "20160916.1832";
+        src = fetchFromGitHub {
+          owner = "kenjimyzk";
+          repo = "evil-tutor-ja";
+          rev = "06b9ad853a15ce6f2c53c2cf379b9ff358369f2d";
+          sha256 = "1cazqdiri2b61fxnkhgksqxp0gb41wzcq8275n779rindkwaf2zk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-tutor-ja";
+          sha256 = "1yd8aij9q1jdmb387f1zjiq5mf68jvbgbyp5b49hmag4hw5h7vm2";
+          name = "recipe";
+        };
+        packageRequires = [ evil evil-tutor ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-tutor-ja";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-vimish-fold = callPackage ({ emacs
+                                    , evil
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , vimish-fold }:
+      melpaBuild {
+        pname = "evil-vimish-fold";
+        ename = "evil-vimish-fold";
+        version = "20171030.451";
+        src = fetchFromGitHub {
+          owner = "alexmurray";
+          repo = "evil-vimish-fold";
+          rev = "4db872d12274fdddf7c6e9d01cf68cbad9cfcf15";
+          sha256 = "05phnswbk2r7hdwawzkw6anhkfss9ig8sy469s4vsrqf7cky4gmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-vimish-fold";
+          sha256 = "01wp4h97hjyzbpd7iighjj26m79499wp5pn8m4pa7v59f6r3sdk6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil vimish-fold ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-vimish-fold";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-visual-mark-mode = callPackage ({ dash
+                                         , evil
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "evil-visual-mark-mode";
+        ename = "evil-visual-mark-mode";
+        version = "20150202.1000";
+        src = fetchFromGitHub {
+          owner = "roman";
+          repo = "evil-visual-mark-mode";
+          rev = "094ee37599492885ff3144918fcdd9b74dadaaa0";
+          sha256 = "07cmql8zsqz1qchq2mp3qybbay499dk1yglisig6jfddcmrbbggz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-visual-mark-mode";
+          sha256 = "1qgr2dfhfz6imnlznicl7lplajd1s8wny7mlxs1bkms3xjcjfi48";
+          name = "recipe";
+        };
+        packageRequires = [ dash evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-visual-mark-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-visual-replace = callPackage ({ evil
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "evil-visual-replace";
+        ename = "evil-visual-replace";
+        version = "20171015.2313";
+        src = fetchFromGitHub {
+          owner = "troyp";
+          repo = "evil-visual-replace";
+          rev = "163fc827a1ffc106475da470c37fb26f4cc9b008";
+          sha256 = "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-visual-replace";
+          sha256 = "1dq3bd9aqpk3jq1c9yzlpjyw6mi8l428l111vrmfg156k1w22v01";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-visual-replace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-visualstar = callPackage ({ evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "evil-visualstar";
+        ename = "evil-visualstar";
+        version = "20160222.1648";
+        src = fetchFromGitHub {
+          owner = "bling";
+          repo = "evil-visualstar";
+          rev = "06c053d8f7381f91c53311b1234872ca96ced752";
+          sha256 = "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-visualstar";
+          sha256 = "135l9hjfbpn0a6p53picnpydi9qs5vrk2rfn64gxa5ag2apcyycy";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-visualstar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evm = callPackage ({ dash
+                       , f
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "evm";
+        ename = "evm";
+        version = "20141007.456";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "evm.el";
+          rev = "d0623b2355436a5fd9f7238b419782080c79196b";
+          sha256 = "0739v0m9vj70a55z0canslyqgafzys815i7a0r6bxj2f9iwq6rhb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evm";
+          sha256 = "19l6cs5schbnph0pwhhj66gkxsswd4bmjpy79l9kxzpjf107wc03";
+          name = "recipe";
+        };
+        packageRequires = [ dash f ];
+        meta = {
+          homepage = "https://melpa.org/#/evm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ewmctrl = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ewmctrl";
+        ename = "ewmctrl";
+        version = "20170921.1917";
+        src = fetchFromGitHub {
+          owner = "flexibeast";
+          repo = "ewmctrl";
+          rev = "3d0217c4d6cdb5c308b6cb4293574f470d4faacf";
+          sha256 = "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ewmctrl";
+          sha256 = "1w60pb7szai1kh06jd3qvgpzq3z1ci4a77ysnpqjfk326s6zv7hl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ewmctrl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eww-lnum = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "eww-lnum";
+        ename = "eww-lnum";
+        version = "20150102.712";
+        src = fetchFromGitHub {
+          owner = "m00natic";
+          repo = "eww-lnum";
+          rev = "4b0ecec769919ecb05ca4fb15ec51911ba589929";
+          sha256 = "1i6zf17rwa390c33cbspz81dz86vwlphyhjjsia4gp205nfk3s20";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eww-lnum";
+          sha256 = "1hhc6q8zlj335v27j4dq6ms7frqpivfabs9w3vkaly5kjr60fw7c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eww-lnum";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exato = callPackage ({ emacs
+                         , evil
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "exato";
+        ename = "exato";
+        version = "20180305.242";
+        src = fetchFromGitHub {
+          owner = "ninrod";
+          repo = "exato";
+          rev = "39c08f56483243c28a39886a7218039a138e5f63";
+          sha256 = "1q0jjaw5k9bql7bk5idin724vbcgx0iwn2dm4mg1c51cczqsd2rg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exato";
+          sha256 = "1h2dd3yhv1n0sznznw8ncx98g53hgi1rg1zkd0nmldih2rd5qisn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/exato";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exec-path-from-shell = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "exec-path-from-shell";
+        ename = "exec-path-from-shell";
+        version = "20180323.1904";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "exec-path-from-shell";
+          rev = "4d0af1274797ce61f5d8c209339d5b9cdc49aca6";
+          sha256 = "1h45vxyw0pa99fldnvca96rz1w1hl7mrgx5m51rknxascfvk6fqx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exec-path-from-shell";
+          sha256 = "014bfcs7znds4if1njyq4s5zrfnr6b3wj6722b4l5r58gh9mlrr5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/exec-path-from-shell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exiftool = callPackage ({ emacs
+                            , fetchgit
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "exiftool";
+        ename = "exiftool";
+        version = "20170822.1432";
+        src = fetchgit {
+          url = "https://git.systemreboot.net/exiftool.el/";
+          rev = "3a07dbcb975577734d4abf6d68e1ab83a01951bb";
+          sha256 = "10prrwvmc891vkzzgqmz0xd85xgi52ni83ydf0bvhfmcg0wmm0cc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exiftool";
+          sha256 = "1zvcps64yvz8lsjhi1j0808983fv2s7kx67yjr8ps454mcl8bpab";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/exiftool";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exotica-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "exotica-theme";
+        ename = "exotica-theme";
+        version = "20180212.1529";
+        src = fetchFromGitHub {
+          owner = "jbharat";
+          repo = "exotica-theme";
+          rev = "ff3ef4f6fa38c93b99becad977c7810c990a4d2f";
+          sha256 = "1kp6q55g3dcya4y79x877vqwxa4z2rkkvhs49pkwr3wljf4af2pd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exotica-theme";
+          sha256 = "1fzf1zpllkddkq02hvabbi2bh6rnanlyinb6fjwsyh39wvzhsfhs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/exotica-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    expand-line = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "expand-line";
+        ename = "expand-line";
+        version = "20151005.1907";
+        src = fetchFromGitHub {
+          owner = "zhangkaiyulw";
+          repo = "expand-line";
+          rev = "75a5d0241f35dd0748ab8ecb4ff16891535be372";
+          sha256 = "0wz4h5hrr5ci0w8pynd2nr1b2zl5hl4pa8gc16mcabik5927rf7z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/expand-line";
+          sha256 = "0bzz7zrpfdxhjxs7nzlmzjb9jfajhxkivzr5sm87mg3zx8b6gjyi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/expand-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    expand-region = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "expand-region";
+        ename = "expand-region";
+        version = "20180817.434";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "expand-region.el";
+          rev = "27a78e7c364b4e6d39f6593f5a55a12c4a7675bc";
+          sha256 = "0dslj330729sjhxg080xqw5hasmm23niliwmihm9464cl51h1mhi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/expand-region";
+          sha256 = "1c7f1nqsqdc75h22fxxnyg0m4yxj6l23sirk3c71fqj14paxqnwg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/expand-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    express = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , string-utils }:
+      melpaBuild {
+        pname = "express";
+        ename = "express";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "express";
+          rev = "6c301e8a4b6b58a5fe59ba607865238e38cee8fd";
+          sha256 = "1nhqaxagg3p26grjzg8089bmwpx2a3bbq1abw40wbqivybl6mgd5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/express";
+          sha256 = "0lhisy4ds96bwpc7k8w9ws1zi1qh0d36nhxsp36bqzfi09ig0nb9";
+          name = "recipe";
+        };
+        packageRequires = [ string-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/express";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exsqlaim-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , s }:
+      melpaBuild {
+        pname = "exsqlaim-mode";
+        ename = "exsqlaim-mode";
+        version = "20170607.303";
+        src = fetchFromGitHub {
+          owner = "ahmadnazir";
+          repo = "exsqlaim-mode";
+          rev = "a2e0a62ec8b87193d8eaa695774bfd689324b06c";
+          sha256 = "1gj1q2h1ja30jizkjql12cxlppj07ykr4wxqca9msy043zdhqnkk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exsqlaim-mode";
+          sha256 = "0ssn48wcn3x066nsl8y78y57ndasqv5x6ifxbifdxl3f5vjhyvg7";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/exsqlaim-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    extempore-mode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "extempore-mode";
+        ename = "extempore-mode";
+        version = "20180104.2221";
+        src = fetchFromGitHub {
+          owner = "extemporelang";
+          repo = "extempore-emacs-mode";
+          rev = "ae5f40d4b0883a4519e460cd7720e5fcc3a68fa5";
+          sha256 = "1f888h7xv6zz6kq38ak1vpwjrjr2sqgwpfxwb9x0ldf3kkx4wf1w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/extempore-mode";
+          sha256 = "1z8nzpcj27s74kxfjz7wyr3848jpd6mbyjkssd06ri5p694j9php";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/extempore-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    extend-dnd = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "extend-dnd";
+        ename = "extend-dnd";
+        version = "20151122.1050";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "extend-dnd";
+          rev = "80c966c93b82c9bb5c6225a432557c39144fc602";
+          sha256 = "15dwl1rb3186k328a83dz9xmslc0px60ah16fifvmr3migis9hwz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/extend-dnd";
+          sha256 = "0rknpvp8yw051pg3blvmjpp3c9a82jw7f10mq67ggbz98w227417";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/extend-dnd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    extmap = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "extmap";
+        ename = "extmap";
+        version = "20181028.945";
+        src = fetchFromGitHub {
+          owner = "doublep";
+          repo = "extmap";
+          rev = "1139b57d8f4276fe56b8416fdaf4745f2cdfe7c3";
+          sha256 = "0jgyscjfparnby0whrmbgvsab2a7qkaqhysmh3s3jh635fndm253";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/extmap";
+          sha256 = "0c12gfd3480y4fc22ik02n7h85k6s70i5jv5i872h0yi68cgd01j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/extmap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exwm-edit = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "exwm-edit";
+        ename = "exwm-edit";
+        version = "20180905.43";
+        src = fetchFromGitHub {
+          owner = "agzam";
+          repo = "exwm-edit";
+          rev = "961c0f3ea45766b888c73d7353da13d329538034";
+          sha256 = "087pk5ckx753qrn6xpka9khhlp7iqlz76w7861x90av2f5cgy6fw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exwm-edit";
+          sha256 = "0bydkznywma0x293m105amppx4qx1iyjpqdfq6np73176xfy6kc5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/exwm-edit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exwm-surf = callPackage ({ emacs
+                             , exwm
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "exwm-surf";
+        ename = "exwm-surf";
+        version = "20171204.340";
+        src = fetchFromGitHub {
+          owner = "ecraven";
+          repo = "exwm-surf";
+          rev = "6c17e2c1597fe4b7b454a1dac23b9127ac951e94";
+          sha256 = "0rb921fq3pyzv0w1s6n0zx4j7cvv68mb50hfa8nqnppz5ii1k0lb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exwm-surf";
+          sha256 = "066qbn1w63irh9b03qs0fv77x71cind22kdj6wygaznrpgwr0kny";
+          name = "recipe";
+        };
+        packageRequires = [ emacs exwm ];
+        meta = {
+          homepage = "https://melpa.org/#/exwm-surf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exwm-x = callPackage ({ bind-key
+                          , cl-lib ? null
+                          , counsel
+                          , exwm
+                          , fetchFromGitHub
+                          , fetchurl
+                          , ivy
+                          , lib
+                          , melpaBuild
+                          , swiper
+                          , switch-window }:
+      melpaBuild {
+        pname = "exwm-x";
+        ename = "exwm-x";
+        version = "20181117.118";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "exwm-x";
+          rev = "c33cc513513c83b55a6c490f68fdb2196d44657d";
+          sha256 = "1kyv18y1i3fvfwhh97vvdiqwk2w7ldvizbiqcmq1xxafp0687nah";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exwm-x";
+          sha256 = "1d9q57vz63sk3h1g5gvp9xnmqkpa73wppmiy2bv8mxk11whl6xa3";
+          name = "recipe";
+        };
+        packageRequires = [
+          bind-key
+          cl-lib
+          counsel
+          exwm
+          ivy
+          swiper
+          switch-window
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/exwm-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eyebrowse = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "eyebrowse";
+        ename = "eyebrowse";
+        version = "20180514.1219";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "eyebrowse";
+          rev = "ec7e11022032348ee23a3586a1306871f9d28b25";
+          sha256 = "16mks2dr4k6bjr1xds9j2jwm7zwad4z67wa0qg9n50gyiyn4pl4g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eyebrowse";
+          sha256 = "09fkzm8z8nkr4s9fbmfcjc80h50051f48v6n14l76xicglr5p861";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eyebrowse";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eyuml = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , request
+                         , s }:
+      melpaBuild {
+        pname = "eyuml";
+        ename = "eyuml";
+        version = "20141028.1527";
+        src = fetchFromGitHub {
+          owner = "antham";
+          repo = "eyuml";
+          rev = "2f259c201c6cc63ee608f75cd85c1ae27f9d2532";
+          sha256 = "1rgzydxv7c455vj1jm44vvs6xc4qgivqqb0g6zh5x4wdcpgdi2g9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eyuml";
+          sha256 = "0ada2gcl8bw9nn0fz8g9lbqy8a8w1554q03fzd7lv8qla33ri3wx";
+          name = "recipe";
+        };
+        packageRequires = [ request s ];
+        meta = {
+          homepage = "https://melpa.org/#/eyuml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ez-query-replace = callPackage ({ dash
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "ez-query-replace";
+        ename = "ez-query-replace";
+        version = "20170814.621";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "ez-query-replace.el";
+          rev = "f5dbd2d3e5e62e6b7e7cc1a98fc4d0cd411e5afa";
+          sha256 = "14mikpxrsmjwdpya45cf47v2gjwxmql10xjk907x27iqqxmfif74";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ez-query-replace";
+          sha256 = "1h9ijr1qagwp9vvikh7ajby0dqgfypjgc45s7d93zb9jrg2n5cgx";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/ez-query-replace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eziam-theme = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "eziam-theme";
+        ename = "eziam-theme";
+        version = "20180414.329";
+        src = fetchFromGitHub {
+          owner = "thblt";
+          repo = "eziam-theme-emacs";
+          rev = "96595833110cd64c391e0ccd5230782a8f0a4e08";
+          sha256 = "0nvwgxlrbfhchb7z2qnw1lj66xpzn2b6yb6mhx0k31xdfr173wch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eziam-theme";
+          sha256 = "0iz3r4r54ai8y4qhnix291ra7qfmk8dbr06f52pgmz3gzin1cqpb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eziam-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    f = callPackage ({ dash
+                     , fetchFromGitHub
+                     , fetchurl
+                     , lib
+                     , melpaBuild
+                     , s }:
+      melpaBuild {
+        pname = "f";
+        ename = "f";
+        version = "20180106.122";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "f.el";
+          rev = "de6d4d40ddc844eee643e92d47b9d6a63fbebb48";
+          sha256 = "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/f";
+          sha256 = "18qax8i24gpccif4xcxccclpwl00plxjf3zbq9dry37b1r4mj57s";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/f";
+          license = lib.licenses.free;
+        };
+      }) {};
+    f3 = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , helm
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "f3";
+        ename = "f3";
+        version = "20180130.358";
+        src = fetchFromGitHub {
+          owner = "cosmicexplorer";
+          repo = "f3";
+          rev = "000009ce4adf7a57eae80512f29c4ec2a1391ce5";
+          sha256 = "0q3ylw0i1bg7pzsv4gj72jcfjjfh57vsb3fnfnhhh5i5vladiqsf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/f3";
+          sha256 = "099wibgp9k6sgglaqigic5ay6qg7aqijnis5crwjl7b81ddqp610";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/f3";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fabric = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "fabric";
+        ename = "fabric";
+        version = "20171115.2256";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "fabric.el";
+          rev = "df79be341d0b34ed23850f9894136092fa5fea8c";
+          sha256 = "1mnz81k1jz2sa3zj68ihzgq66l9fcxvzb67ad62p8bvi2aksxx7z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fabric";
+          sha256 = "1mkblsakdhvi10b67bv3j0jsf7hr8lf9sibmprvx8smqsih7l88m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fabric";
+          license = lib.licenses.free;
+        };
+      }) {};
+    face-explorer = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "face-explorer";
+        ename = "face-explorer";
+        version = "20170710.1201";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "face-explorer";
+          rev = "13bd4553bc4b09215a04d0267be1cb4ed834775c";
+          sha256 = "1zbm92imfbh1sm7j64vc1ig5yq6rdd8izkh80mci5k6nf1p3byk7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/face-explorer";
+          sha256 = "1jfidkkizgwhkkrgvrmq5vrx5ir4zjw4zzc2alw9gkjn1ddq22q7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/face-explorer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    faceup = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "faceup";
+        ename = "faceup";
+        version = "20170925.1246";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "faceup";
+          rev = "6c92dad56a133e14e7b27831e1bcf9b3a71ff154";
+          sha256 = "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/faceup";
+          sha256 = "0l41xp38iji55dv20lk7r187ywcz8s1g2jmwbjwkspzmcf763xvx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/faceup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    factlog = callPackage ({ deferred
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "factlog";
+        ename = "factlog";
+        version = "20130209.1740";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "factlog";
+          rev = "38f78132ae311faffba98ed5dd18d661af68678e";
+          sha256 = "06ycj1c8jadkmfknsvk99s6jq3w29psl5z4m9159i6zlzaqm03qm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/factlog";
+          sha256 = "163482vfpa52b5ya5xps4qnclbaql1x0q54gqdwwmm04as8qbfz7";
+          name = "recipe";
+        };
+        packageRequires = [ deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/factlog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    faff-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "faff-theme";
+        ename = "faff-theme";
+        version = "20181114.536";
+        src = fetchFromGitHub {
+          owner = "WJCFerguson";
+          repo = "emacs-faff-theme";
+          rev = "646ab8b56093614679b8465993eae9678e792c12";
+          sha256 = "031jqw9sna4b12ki1am0xy9mqzh6a6r5dayhqpv0fbnbr6spvscy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/faff-theme";
+          sha256 = "1dmwbkp94zsddy0brs3mkdjr09n69maw2mrdfhriqcdk56qpwp4g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/faff-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fakespace = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fakespace";
+        ename = "fakespace";
+        version = "20120817.1706";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "elisp-fakespace";
+          rev = "d1bd1f4b14b2690d7a67f9a52622ec51ed84813a";
+          sha256 = "11fm0h9rily5731s137mgv8rdbfqi99s6f36bgr0arwbq3f2j3fs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fakespace";
+          sha256 = "09dsmrqax4wfcw8fd5jf07bjxm5dizpc2qvjkqwg74j2n352wv27";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fakespace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fakir = callPackage ({ dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , kv
+                         , lib
+                         , melpaBuild
+                         , noflet }:
+      melpaBuild {
+        pname = "fakir";
+        ename = "fakir";
+        version = "20140729.952";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-fakir";
+          rev = "1fca406ad7de80fece6319ff75d4230b648534b0";
+          sha256 = "1w5apzbzr1jd983b0rzsy9ldb0z0zcq6mpyb5r8czl5wd4vvj69h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fakir";
+          sha256 = "07bicglgpm6qkcsxwj6rswhx4hgh27rfg8s1cki7g8qcvk2f7b25";
+          name = "recipe";
+        };
+        packageRequires = [ dash kv noflet ];
+        meta = {
+          homepage = "https://melpa.org/#/fakir";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fancy-battery = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "fancy-battery";
+        ename = "fancy-battery";
+        version = "20150101.404";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "fancy-battery.el";
+          rev = "bcc2d7960ba207b5b4db96fe40f7d72670fdbb68";
+          sha256 = "0m7rjzl9js2gjfcaqp2n5pn5ykpqnv8qfv35l5m5kpfigsi9cbb0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fancy-battery";
+          sha256 = "03rkfdkrzyal9abdiv8c73w10sm974hxf3xg5015hibfi6kzg8ii";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fancy-battery";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fancy-narrow = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "fancy-narrow";
+        ename = "fancy-narrow";
+        version = "20171030.1716";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "fancy-narrow";
+          rev = "9f4a587f6a5a387271fb665e13f59d41fd42504c";
+          sha256 = "0dl0fc3i8g193adpkr4fb2k151lw9r6gd8p27q9xgmm9brf9jf17";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fancy-narrow";
+          sha256 = "15i86jz6rdpva1az7gqp1wbm8kispcfc8h6v9fqsbag9sbzvgcyv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fancy-narrow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    farmhouse-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "farmhouse-theme";
+        ename = "farmhouse-theme";
+        version = "20160713.1544";
+        src = fetchFromGitHub {
+          owner = "mattly";
+          repo = "emacs-farmhouse-theme";
+          rev = "7ddc1ff13b4a3d5466bd0d33ecb86100352e83a7";
+          sha256 = "09k6agh205kr2lif354m38l3967b0jajm14rgpl7l1vlajh8wzfd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/farmhouse-theme";
+          sha256 = "0hbqdrw6x25b331qhbg3yaaa45c2b896wknsjm0a1kg142klq229";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/farmhouse-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fasd = callPackage ({ fetchgit
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "fasd";
+        ename = "fasd";
+        version = "20180605.2205";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/emacs-fasd.git";
+          rev = "020c6a4b5fd1498a84ae142d2e32c7ff678fb029";
+          sha256 = "142zq0zz38j3akgc1gipqhgs05krlkig1i97pgzmi4jcqdgm3lx9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fasd";
+          sha256 = "0ssb1bbw3cwd4zdy08a0fymwjwgdnx0kil5x3x1b7k8kan942436";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fasd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fastdef = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , ivy
+                           , lib
+                           , melpaBuild
+                           , w3m }:
+      melpaBuild {
+        pname = "fastdef";
+        ename = "fastdef";
+        version = "20160713.629";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "fastdef";
+          rev = "0696f41dc150d35ce31fe8d2ea74f4173818bb55";
+          sha256 = "1p5vmbx7zdzxnyjzcp2vxscd3dwf7xk82wk9dfiv99svwqv2ki3w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fastdef";
+          sha256 = "1cf4slxhcp2z7h9k3l31h06nnqsyb4smwnj55ivil2lm0fa0vlzj";
+          name = "recipe";
+        };
+        packageRequires = [ ivy w3m ];
+        meta = {
+          homepage = "https://melpa.org/#/fastdef";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fastnav = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "fastnav";
+        ename = "fastnav";
+        version = "20120211.657";
+        src = fetchFromGitHub {
+          owner = "gleber";
+          repo = "fastnav.el";
+          rev = "1019ba2b61d1a070204099b23da347278a61bc89";
+          sha256 = "0y95lrdqd9i2kbb266s1wdiim4m8vrn3br19d8s55ib6xlywf8cx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fastnav";
+          sha256 = "08hg256w8k9f5nzgpyl1jykbf28vmvv09kkhzs0s2zhwbl2158a5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fastnav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    faust-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "faust-mode";
+        ename = "faust-mode";
+        version = "20180205.126";
+        src = fetchFromGitHub {
+          owner = "rukano";
+          repo = "emacs-faust-mode";
+          rev = "7c31b22bdbfd2f8c16ec117d2975d56dd61ac15c";
+          sha256 = "0a3p69ay88da13cz2cqx00r3qs2swnn7vkcvchcqyrdybfjs7y4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/faust-mode";
+          sha256 = "0l8cbf5i6lv6i5vyqp6ngfmrm2y6z2070b8m10w4376kbbnr266z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/faust-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    faustine = callPackage ({ emacs
+                            , faust-mode
+                            , fetchgit
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "faustine";
+        ename = "faustine";
+        version = "20171122.402";
+        src = fetchgit {
+          url = "https://bitbucket.org/yphil/faustine";
+          rev = "07a38963111518f86123802f9d477be0d4689a3f";
+          sha256 = "0dj35hwkm5v8758c4ssl873vkvplba5apjsh7l23nsmnzdji99zg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/faustine";
+          sha256 = "1blmz993xrwkyr7snj7rm07s07imgpdlfqi6wxkm4ns6iwa2q60s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs faust-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/faustine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fcitx = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "fcitx";
+        ename = "fcitx";
+        version = "20170913.1900";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "fcitx.el";
+          rev = "095332fbeb994c908c533fe2ad068c0728211c3d";
+          sha256 = "01sm50rqajylah2hx6n5ig0xmrrhxbamzs4bg97qzxzr4nlnjcaz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fcitx";
+          sha256 = "0a8wd588c26p3czfp5hn2n46f2vwyg5v301sv0y07b55b1i3ynmx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fcitx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fcopy = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "fcopy";
+        ename = "fcopy";
+        version = "20150304.603";
+        src = fetchFromGitHub {
+          owner = "ataka";
+          repo = "fcopy";
+          rev = "e355f6ec889d8ecbdb096019c2dc660b1cec4941";
+          sha256 = "0c56j8ip2fyma9yvwaanz89jyzgi9k11xwwkflzlzc4smnvgfibr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fcopy";
+          sha256 = "13337ymf8vlbk8c4jpj6paqi06xdmk39yf72s40kmfrbvgmi8qy1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fcopy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fd-dired = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "fd-dired";
+        ename = "fd-dired";
+        version = "20180731.349";
+        src = fetchFromGitHub {
+          owner = "yqrashawn";
+          repo = "fd-dired";
+          rev = "a92511929ce0d64d2bc05823920e12f106c4dfc7";
+          sha256 = "1l3mc39kb3w9pbc84998rz3g1n0ygr8pg9b9z5cgg638jh2cvzqm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fd-dired";
+          sha256 = "0g8zvg6b9hcxkmqn254y9khjm7jz2lz4mh7dhsxfcy64inaj0481";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fd-dired";
+          license = lib.licenses.free;
+        };
+      }) {};
+    feature-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "feature-mode";
+        ename = "feature-mode";
+        version = "20170907.748";
+        src = fetchFromGitHub {
+          owner = "michaelklishin";
+          repo = "cucumber.el";
+          rev = "722b352c4f0b800a9356dd369c79612782b3b847";
+          sha256 = "0myaddivhvl8x3n2z2vjc6mc2jn1jja67mzwx1jp9gb9p958irk0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/feature-mode";
+          sha256 = "0ryinmpqb3c91qcna6gbijcmqv3skxdc947dlr5s1w623z9nxgqg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/feature-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    feebleline = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "feebleline";
+        ename = "feebleline";
+        version = "20180914.1400";
+        src = fetchFromGitHub {
+          owner = "tautologyclub";
+          repo = "feebleline";
+          rev = "89ddf31ecad885e5491e8d6b71b48c1591b3faec";
+          sha256 = "0v0m2vk7cxfrihcs1ipbw80wfj0nvyqzyfamzk3fnk42hj4qdb75";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/feebleline";
+          sha256 = "0c604ahhv9c89r3hj7091zhhfpbykh4c23sn6ymqw4pp0dq4pgkj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/feebleline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fennel-mode = callPackage ({ fetchFromGitLab
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "fennel-mode";
+        ename = "fennel-mode";
+        version = "20181104.2031";
+        src = fetchFromGitLab {
+          owner = "technomancy";
+          repo = "fennel-mode";
+          rev = "b7335f7116944cbe82f20b4012cfcf0073f090ae";
+          sha256 = "14b28d7qc0602b9z36m4vrqds3m6j1r8247lwls1y79s01ryw08q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fennel-mode";
+          sha256 = "0lg69rjvbg7zl4jxc88m12r4rgv2mg2xdyz591mdmgvxwr2hfrv9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fennel-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fetch = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "fetch";
+        ename = "fetch";
+        version = "20131130.2330";
+        src = fetchFromGitHub {
+          owner = "crshd";
+          repo = "fetch.el";
+          rev = "3f2793afcbbc32f320e572453166f9354ecc6d06";
+          sha256 = "0pjw9fb3n08yd38680ifdn2wlnw2k6q97lzhqb2259mywsycyqy8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fetch";
+          sha256 = "1jqc6pspgcrdzm7ij46r1q6vpjq7il5dy2xyxwn2c1ky5a80paby";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fetch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fic-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "fic-mode";
+        ename = "fic-mode";
+        version = "20180603.1335";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "fic-mode";
+          rev = "a05fc36ed54ba0c6dc22ac216a6a72cf191ca13d";
+          sha256 = "074dfwdir2dx5cpbjk1ac8d3hkjkrylivy7agir5mnmzjm3bs9gw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fic-mode";
+          sha256 = "0yy1zw0b0s93qkzyq0n17gzn33ma5h56mh40ysz6adwsi68af84c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fic-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fifo-class = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "fifo-class";
+        ename = "fifo-class";
+        version = "20160424.2258";
+        src = fetchFromGitHub {
+          owner = "mola-T";
+          repo = "fifo-class";
+          rev = "8fe4cf690727f4ac7b67f29c55f845df023c3f21";
+          sha256 = "0dkng4zkd5xdyvqy67bnfp4z6w8byx66bssq1zl7bhga45vihfjg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fifo-class";
+          sha256 = "0yyjrvdjiq5166vrys13c3dqy5807a3x99597iw5v6mcxg37jg3h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fifo-class";
+          license = lib.licenses.free;
+        };
+      }) {};
+    figlet = callPackage ({ fetchhg
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "figlet";
+        ename = "figlet";
+        version = "20160218.1437";
+        src = fetchhg {
+          url = "https://bitbucket.com/jpkotta/figlet";
+          rev = "70ca269d706e";
+          sha256 = "1c18b1h154sdxkksqwk8snyk8n43bwzgavi75l8mnz8dnl1ciaxs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/figlet";
+          sha256 = "1m7hw56awdbvgzdnjysb3wqkhkjqy68jxsxh9f7fx266wjqhp6yj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/figlet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    filelock = callPackage ({ cl-lib ? null
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "filelock";
+        ename = "filelock";
+        version = "20180524.1515";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "emacs-filelock";
+          rev = "17a5ca6e0dee14d2e7d92c84be91143bca9d9663";
+          sha256 = "1smiad56626bc7q6vgj5gc710hnx814d4xlpxdlfzqlmj08y9dyk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/filelock";
+          sha256 = "13ra697y0fhkjwsaqqlphcyfqkaiix5z59qw4q6rgix4k8ypj8db";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/filelock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fill-column-indicator = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "fill-column-indicator";
+        ename = "fill-column-indicator";
+        version = "20171209.1124";
+        src = fetchFromGitHub {
+          owner = "alpaker";
+          repo = "Fill-Column-Indicator";
+          rev = "d2536b1c48f78679e15a2b50cd5d8c0ffde4b155";
+          sha256 = "0f8h32n8mnrwijz3lrslbx521f0fkhn24cwd16r8hcjk976l5kbp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fill-column-indicator";
+          sha256 = "0w8cmijv7ihij9yyncz6lixb6awzzl7n9qpjj2bks1d5rx46blma";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fill-column-indicator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fill-function-arguments = callPackage ({ emacs
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "fill-function-arguments";
+        ename = "fill-function-arguments";
+        version = "20180427.1002";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "fill-function-arguments";
+          rev = "fcfb2a671adaf04110586aee0c499b1f0056a8e6";
+          sha256 = "07d1pi9scqcpqd9s2rifpkh5iyfmisd8rzddbrg99aj1wicg4j33";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fill-function-arguments";
+          sha256 = "1gigzzz2csl3a55jmjx391a5k3ymixnwpblsn0pfgkkk4p3674q0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fill-function-arguments";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fillcode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "fillcode";
+        ename = "fillcode";
+        version = "20171029.925";
+        src = fetchFromGitHub {
+          owner = "snarfed";
+          repo = "fillcode";
+          rev = "d0a9e20f5fcc24a786d09ea19bfb9237681ba823";
+          sha256 = "1mf2gfcjaqbw523vkfbzs2nl1y9bn9gbgmbvn2phbyj78gzq18za";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fillcode";
+          sha256 = "0bfsw55vjhx88jpy6npnzfwinvggivbvkk7fa3iwzq19005fkag2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fillcode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    finalize = callPackage ({ cl-generic
+                            , cl-lib ? null
+                            , eieio ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "finalize";
+        ename = "finalize";
+        version = "20170418.1245";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "elisp-finalize";
+          rev = "0f7d47c4d50f1c76fc3b43bfc2d4886dd3e8ca27";
+          sha256 = "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/finalize";
+          sha256 = "1n0w4kdzc4hv4pprv13lr88gh46slpxdvsc162nqm5mrqp9giqqq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-generic cl-lib eieio emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/finalize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    find-by-pinyin-dired = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , pinyinlib }:
+      melpaBuild {
+        pname = "find-by-pinyin-dired";
+        ename = "find-by-pinyin-dired";
+        version = "20180209.1818";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "find-by-pinyin-dired";
+          rev = "3b4781148dddc84a701ad76c0934ed991ecd59d5";
+          sha256 = "03fw1si115padxss6zb9fr0dsyq1bxlhxikgh4i5swp4jd4331k5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/find-by-pinyin-dired";
+          sha256 = "150hvih3mdd1dqffgdcv3nn4qhy86s4lhjkfq0cfzgngfwif8qqq";
+          name = "recipe";
+        };
+        packageRequires = [ pinyinlib ];
+        meta = {
+          homepage = "https://melpa.org/#/find-by-pinyin-dired";
+          license = lib.licenses.free;
+        };
+      }) {};
+    find-file-in-project = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , ivy
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "find-file-in-project";
+        ename = "find-file-in-project";
+        version = "20181020.713";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "find-file-in-project";
+          rev = "83c9384e0c85ee8e0e4ad79d13a24181b43ae0b0";
+          sha256 = "11msw7vmc2ciy4k803d7yl6kaiinjcj4p56zbx0q0mip75gjf27f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/find-file-in-project";
+          sha256 = "0aznnv82xhnilc9j4cdmcgh6ksv7bhjjm3pa76hynnyrfn7kq7wy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/find-file-in-project";
+          license = lib.licenses.free;
+        };
+      }) {};
+    find-file-in-repository = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "find-file-in-repository";
+        ename = "find-file-in-repository";
+        version = "20151113.519";
+        src = fetchFromGitHub {
+          owner = "h";
+          repo = "find-file-in-repository";
+          rev = "898fd7ea2727772ba09383a2ece7f3f7f1e77e29";
+          sha256 = "090m5647dpc8r8fwi3mszvc8kp0420ma5sv0lmqr2fpxyn9ybkjh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/find-file-in-repository";
+          sha256 = "02rihpfpckppnf5a2zgd5s3dspdhq4mr6qchlrzg2fd4byjxra9s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/find-file-in-repository";
+          license = lib.licenses.free;
+        };
+      }) {};
+    find-temp-file = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "find-temp-file";
+        ename = "find-temp-file";
+        version = "20170107.539";
+        src = fetchFromGitHub {
+          owner = "thisirs";
+          repo = "find-temp-file";
+          rev = "513005d19d72d71f34481ee00158dd57bd93206f";
+          sha256 = "129jnn16vxmp6r9gx8k4rvv6spag5q0if52b5fhsybicnsl35mrz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/find-temp-file";
+          sha256 = "0c98zm94958rb9kdvqr3pad744nh63y3vy3lshfm0lsg85k9j62p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/find-temp-file";
+          license = lib.licenses.free;
+        };
+      }) {};
+    find-things-fast = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "find-things-fast";
+        ename = "find-things-fast";
+        version = "20150519.1526";
+        src = fetchFromGitHub {
+          owner = "eglaysher";
+          repo = "find-things-fast";
+          rev = "281dcb5a2e2db1013246dcac5111808352a8ea95";
+          sha256 = "0h523dgjicmn4rpbk82ryq3mq5vfl5b50wvn0p2mh74g35mc0zwl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/find-things-fast";
+          sha256 = "1fs3wf61lzm1hxh5sx8pr74g7g9np3npdwg7xmk81b5f2jx2vy6m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/find-things-fast";
+          license = lib.licenses.free;
+        };
+      }) {};
+    findr = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "findr";
+        ename = "findr";
+        version = "20130127.1232";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "findr";
+          rev = "1ddbc0464bb05dcda392b62666ad17239a2152d3";
+          sha256 = "0wx4hd4agrfvk0igyash658cbf7v3bv01rlspllsvzr59fl3faqq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/findr";
+          sha256 = "0pw72bdpmc0ymlgjmwwrslhynij5a5b9sc3rx6vyprpv1ad4ac2c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/findr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fingers = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "fingers";
+        ename = "fingers";
+        version = "20160817.129";
+        src = fetchFromGitHub {
+          owner = "fgeller";
+          repo = "fingers.el";
+          rev = "7de351448a6f5ea7aa7a25db6c90d5138f87eb16";
+          sha256 = "1hwlnvry3pl3h2kz0d03d9225gn2dk4x3nhalk8854fr2jflrpqy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fingers";
+          sha256 = "1r8fy6q6isjxz9mvaa8in4imdghzla3gg1l93dfm1v2rlr7bhzbg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fingers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fiplr = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , grizzl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "fiplr";
+        ename = "fiplr";
+        version = "20140723.2345";
+        src = fetchFromGitHub {
+          owner = "grizzl";
+          repo = "fiplr";
+          rev = "bb6b90ba3c558988c195048c4c40140b2ee17530";
+          sha256 = "14yy7kr2iv549xaf5gkav48lk2hzmvipwbs0rzljzw60il6k05hk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fiplr";
+          sha256 = "1a4w0yqdkz477lfyin4lb9k9qkfpx4350kfxmrqx6dj3aadkikca";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib grizzl ];
+        meta = {
+          homepage = "https://melpa.org/#/fiplr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    firecode-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "firecode-theme";
+        ename = "firecode-theme";
+        version = "20170808.611";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-firecode-theme";
+          rev = "8b7b03ecdd41e70dab145b98906017e1392eaef4";
+          sha256 = "1vrpnv7555mbsksflgdkg7hc65fjcyzvzv2261y043rlh2qrn0sy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/firecode-theme";
+          sha256 = "10lxd93lkrvz8884dv4sh6fzzg355j7ab4p5dpvwry79rhs7f739";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/firecode-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    firefox-controller = callPackage ({ cl-lib ? null
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , moz
+                                      , popwin }:
+      melpaBuild {
+        pname = "firefox-controller";
+        ename = "firefox-controller";
+        version = "20160320.1147";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "emacs-firefox-controller";
+          rev = "5b1bedec83206f41672b1b65bba859f235bff48b";
+          sha256 = "04afwxgydrn23bv93zqf9bd2cp02i9dcfqbi809arkmh8723qf6k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/firefox-controller";
+          sha256 = "03y96b3l75w9al8ylijnlb8pcfkwddyfnh8xwig1b6k08zxfgal6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib moz popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/firefox-controller";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fireplace = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fireplace";
+        ename = "fireplace";
+        version = "20160811.519";
+        src = fetchFromGitHub {
+          owner = "johanvts";
+          repo = "emacs-fireplace";
+          rev = "2b966ed65b714c613f79e9144d004dfa3b28f1ed";
+          sha256 = "1f5053bbvjdmm64zv6r2qkswkpwvx0s3qz4bwm9zya583a6g0nv8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fireplace";
+          sha256 = "1apcypznq23fc7xgy4xy1c5hvfvjx1xhyq3aaq1lf59v99zchciw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fireplace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    firestarter = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "firestarter";
+        ename = "firestarter";
+        version = "20161219.523";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "firestarter";
+          rev = "4d6b106f325ac1802eabce3c8a7cd0a4c7a32864";
+          sha256 = "13daz15v0sshl7lxcg1xcbpl64gklgh50pzk0qxmn5ygw7nlifn0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/firestarter";
+          sha256 = "1cpx664hyrdnpb1jps1x6lm7idwlfjblkfygj48cjz9pzd6ld5mp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/firestarter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    firrtl-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "firrtl-mode";
+        ename = "firrtl-mode";
+        version = "20180221.1555";
+        src = fetchFromGitHub {
+          owner = "IBM";
+          repo = "firrtl-mode";
+          rev = "1ac00d526018945389bcb2292dbdd8395381774a";
+          sha256 = "02xznsiij39lhjr261vl7yz4k4i76vshh5kwa7ax95zpj2zbs0v6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/firrtl-mode";
+          sha256 = "19r7wbw9pr05p8fywcnbbpdpklic2vd2bsy80r7xrzgs4fcl12as";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/firrtl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fish-completion = callPackage ({ fetchFromGitLab
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "fish-completion";
+        ename = "fish-completion";
+        version = "20180827.129";
+        src = fetchFromGitLab {
+          owner = "Ambrevar";
+          repo = "emacs-fish-completion";
+          rev = "a73526d67c4c5f7f2e425cec79d56c7517c7f1e9";
+          sha256 = "0aip3gkkhysz74jfr4bbc31p3qwy31l436y3bvjskgk44zf7z78k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fish-completion";
+          sha256 = "1y7vwh7w0shnrnp8x1m1sa0p7kdyz5mg1mfs263gm38in2biym9i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fish-completion";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fish-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fish-mode";
+        ename = "fish-mode";
+        version = "20180826.2003";
+        src = fetchFromGitHub {
+          owner = "wwwjfy";
+          repo = "emacs-fish";
+          rev = "35fc7c1e243a7410823088a571ecf378e9f3efa6";
+          sha256 = "0rn08dm4gn0g0nz080zxm0am1z6hfkinvzqwqszv96qkxy250ghp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fish-mode";
+          sha256 = "0l6k06bs0qdhj3h8vf5fv8c3rbhiqfwszrpb0v2cgnb6xhwzmq14";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fish-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fix-input = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fix-input";
+        ename = "fix-input";
+        version = "20171231.2220";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "fix-input";
+          rev = "e053fcc641f1f835f2fdb71143e095c1889b8233";
+          sha256 = "1w8vv2ijmsch02xsc1r97r6s3jz0dkd8kwz5wgiizq5ghx7x6x6j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fix-input";
+          sha256 = "03xpr7rlv0xq1d9126j1fk0c2j7ssf366n0yc8yzm9vq32n9pp4p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fix-input";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fix-muscle-memory = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "fix-muscle-memory";
+        ename = "fix-muscle-memory";
+        version = "20160822.2139";
+        src = fetchFromGitHub {
+          owner = "jonnay";
+          repo = "fix-muscle-memory";
+          rev = "df687aea23c6eac4b751f993893c2fd56e5a8a3b";
+          sha256 = "02nl4vz6fnbjc7w1lk1y9z0qw5bsxr407ww0b2wqw6h8spmcpcrc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fix-muscle-memory";
+          sha256 = "0qhasnjw0bj5hzw27r8vj6shhwc3zxcp3wmxijh1rpdw4773f7n8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fix-muscle-memory";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fix-word = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "fix-word";
+        ename = "fix-word";
+        version = "20171231.2215";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "fix-word";
+          rev = "3e3339f5d44dd8be100cec1c88bcaefd328a2bde";
+          sha256 = "0hd5bhq57qgabs881xfrz1v1n8sp1nv2hrfs386dx7g5b3ancr0i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fix-word";
+          sha256 = "0a8w09cx8p5pkkd4533nd199axkhdhs2a7blp7syfn40bkscx6xc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fix-word";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fixmee = callPackage ({ back-button
+                          , button-lock
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , nav-flash
+                          , smartrep
+                          , string-utils
+                          , tabulated-list ? null }:
+      melpaBuild {
+        pname = "fixmee";
+        ename = "fixmee";
+        version = "20150223.555";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "fixmee";
+          rev = "1b8b3460f1e3c3c1784b2a63fb9f4fb3bb4dc084";
+          sha256 = "1x4k8890pzdcizzl0p6v96ylrx5xid9ykgrmggx0b3y0gx0vhwic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fixmee";
+          sha256 = "0wnp6h8f547fsi1lkk4ajny7g21dnr76qfhxl82n0l5h1ps4w8mp";
+          name = "recipe";
+        };
+        packageRequires = [
+          back-button
+          button-lock
+          nav-flash
+          smartrep
+          string-utils
+          tabulated-list
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/fixmee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flame = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "flame";
+        ename = "flame";
+        version = "20180303.1216";
+        src = fetchFromGitHub {
+          owner = "mschuldt";
+          repo = "flame";
+          rev = "2cfb860a483197e92a4c20d7b9b055d586e76fe0";
+          sha256 = "1h6mm2zjv03y2d6dv4gq7iaz6r2glgcljzgmi6m4jp6flvyqh09g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flame";
+          sha256 = "1br9c48anscq9vbssr0gq8f5kbq755hjaglbljwwh9nd5riycv5v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flame";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flappymacs = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "flappymacs";
+        ename = "flappymacs";
+        version = "20171023.304";
+        src = fetchFromGitHub {
+          owner = "taksatou";
+          repo = "flappymacs";
+          rev = "fac0011983251d5c44f4ed1eacac03f5de3caac4";
+          sha256 = "191sdqaljxryslvwjgr38fhgxi0gg7v74m1rqxx3m740wr4qnx7s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flappymacs";
+          sha256 = "1rp4r5ldhm8nrj26y1vm5d5fj3kl7v45cj1naxczrqbcgkd0r404";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flappymacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flash-region = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flash-region";
+        ename = "flash-region";
+        version = "20130923.1117";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "flash-region";
+          rev = "261b3597b23cdd40e5c14262a5687bcc6c1d0901";
+          sha256 = "0z77lm6jv2w5z551pwarcx6xg9kx8fgms9dlskngfvnzbqkldj1f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flash-region";
+          sha256 = "1rgg7j34ka0nj1yjl688asim07bbz4aavh67kly6dzzwndr0nw8c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flash-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flatland-black-theme = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "flatland-black-theme";
+        ename = "flatland-black-theme";
+        version = "20170808.612";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-flatland-black-theme";
+          rev = "348c5d5fe615e6ea13cadc17f046e506e789ce07";
+          sha256 = "1g5jqxdk35ahx8qk4vi7whhcpi1qp7rbbjgiih974fs59cg5iki0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flatland-black-theme";
+          sha256 = "0cl2qbry56nb4prbsczffx8h35x91pgicw5pld0ndw3pxid9h2da";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flatland-black-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flatland-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flatland-theme";
+        ename = "flatland-theme";
+        version = "20171113.721";
+        src = fetchFromGitHub {
+          owner = "gchp";
+          repo = "flatland-emacs";
+          rev = "a98a6f19ad4dff0fa3fad1ea487b7d0ef634a19a";
+          sha256 = "02gbzxd1v003aaj5rn3vr00n4390bhdx2jhpa7nb430fg3s1ppdy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flatland-theme";
+          sha256 = "14drqwcp9nv269aqm34d426a7gx1a7kr9ygnqa2c8ia1fsizybl3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flatland-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flatui-dark-theme = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flatui-dark-theme";
+        ename = "flatui-dark-theme";
+        version = "20170513.722";
+        src = fetchFromGitHub {
+          owner = "theasp";
+          repo = "flatui-dark-theme";
+          rev = "5b959a9f743f891e4660b1b432086417947872ea";
+          sha256 = "0nz4ql7qf49cwsgjb7dg0jhipr5d472r4fddy6fhr1h17s1cd9qy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flatui-dark-theme";
+          sha256 = "1mswmkhi43fm0cmdgf0ywpy9lmapy0syl65kqh68sa3jqbznhm6y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flatui-dark-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flatui-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flatui-theme";
+        ename = "flatui-theme";
+        version = "20160618.1827";
+        src = fetchFromGitHub {
+          owner = "john2x";
+          repo = "flatui-theme.el";
+          rev = "9c15db5526c15c8dba55023f5698372b19c2a780";
+          sha256 = "0ybgpnbq3b0ml3lzgkispn667acpjww7z6cr7hgwg3j1zrqpwi75";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flatui-theme";
+          sha256 = "0s88xihw44ks4b07wcb9swr52f3l1ls0jn629mxvfkv4a6hn7rmz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flatui-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flex-autopair = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flex-autopair";
+        ename = "flex-autopair";
+        version = "20120809.518";
+        src = fetchFromGitHub {
+          owner = "uk-ar";
+          repo = "flex-autopair";
+          rev = "55d128749cc070551a1624a4508d1c4f6d76f7cf";
+          sha256 = "0g9chcqjn2930vrn8af4hwibs4giprgsig9dqprz4c6hya03hlf0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flex-autopair";
+          sha256 = "0w3l236psqxl7wqdi2aisz8wcv279kw6gdja72viiscrbcm78xh0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flex-autopair";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flex-compile = callPackage ({ buffer-manage
+                                , dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flex-compile";
+        ename = "flex-compile";
+        version = "20181106.2026";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "flex-compile";
+          rev = "a06f07e658d460cb662fa51c1c5d439ebee10375";
+          sha256 = "0wab8y28c0yh8fz0lj67wki8z6gzazf02fvwrb9hs7rradagxn1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flex-compile";
+          sha256 = "1hlh4k7qgln87xajnjjhf1yyg6bgdwd0iczhlfw8gdwfj5xpjd38";
+          name = "recipe";
+        };
+        packageRequires = [ buffer-manage dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flex-compile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flex-isearch = callPackage ({ fetchhg
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flex-isearch";
+        ename = "flex-isearch";
+        version = "20170308.1210";
+        src = fetchhg {
+          url = "https://bitbucket.com/jpkotta/flex-isearch";
+          rev = "8b934ea6f1e4";
+          sha256 = "0xbwrzkfv4i91qxs80p0pfjlvj5pyigvidby8m5lammm8idwx9dh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flex-isearch";
+          sha256 = "1msgrimi2a0xm5h23p78jflh00bl5bx44xpc3sc9pspznjv1d0k3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flex-isearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flim = callPackage ({ apel
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "flim";
+        ename = "flim";
+        version = "20180328.1624";
+        src = fetchFromGitHub {
+          owner = "wanderlust";
+          repo = "flim";
+          rev = "faaa2b1f2bb8fcf835ddfb8981654e4d3b2bdbc6";
+          sha256 = "0hr4qi5vhq3ravgky95k2n7hin97jln7fmkgbx45fcyiz8jbpz2z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flim";
+          sha256 = "1gkaq549svflx8qyqrk0ccb52b7wp17wmd5jgzkw1109bpc4k6jc";
+          name = "recipe";
+        };
+        packageRequires = [ apel ];
+        meta = {
+          homepage = "https://melpa.org/#/flim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flimenu = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "flimenu";
+        ename = "flimenu";
+        version = "20170417.1847";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "flimenu";
+          rev = "9351201d89b05cbdaec312a6ebd7fd10c38d6112";
+          sha256 = "1qb08j66a9mvybqhc2vyywwn16w3kkjb06k50rfqf6sbcmndz8va";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flimenu";
+          sha256 = "1xr28kprkq9xwy2f7b3wnjr25a8avm2lfcyi8853jygkm2vmnsx1";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flimenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fliptext = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "fliptext";
+        ename = "fliptext";
+        version = "20171124.1256";
+        src = fetchFromGitHub {
+          owner = "andre-r";
+          repo = "fliptext.el";
+          rev = "fd821f645ffebae6ae3894afa7ba7fc06f91afc6";
+          sha256 = "1jf63kp1myxihv6r13cddxgr8cchxcnnmylj5dx50y42595ia4yh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fliptext";
+          sha256 = "1wbrvqrvrpk2lx7b6y30rrshr7a25b2191bnx4v8lm3cv16gv8p7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fliptext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    floobits = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , highlight
+                            , json ? null
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "floobits";
+        ename = "floobits";
+        version = "20180731.2224";
+        src = fetchFromGitHub {
+          owner = "Floobits";
+          repo = "floobits-emacs";
+          rev = "489b294a7f30ecd2af2edc0823dead8102f27af6";
+          sha256 = "1pw88qn6s8ln626c8mgxgpfax39h7ww4m930dp7gg4aklxjbspkn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/floobits";
+          sha256 = "1jpk0q4mkf9ag1rqyai993nz5ngzfvxq9n9avmaaq59gkk9cjraf";
+          name = "recipe";
+        };
+        packageRequires = [ highlight json ];
+        meta = {
+          homepage = "https://melpa.org/#/floobits";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flow-minor-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flow-minor-mode";
+        ename = "flow-minor-mode";
+        version = "20180315.1124";
+        src = fetchFromGitHub {
+          owner = "an-sh";
+          repo = "flow-minor-mode";
+          rev = "6c782a3fe3f810484009d87813b88804beafafac";
+          sha256 = "1awf44fyjwzlxjavk31lha8iknm8nxr2r6z07sxhzyy23ff127mh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flow-minor-mode";
+          sha256 = "190dv225sb37jawzrasd7qkbznrmkrdnb90l44il63vrlmjv3r1s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flow-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flower = callPackage ({ clomacs
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "flower";
+        ename = "flower";
+        version = "20181025.926";
+        src = fetchFromGitHub {
+          owner = "PositiveTechnologies";
+          repo = "flower";
+          rev = "49e224ab26d85f5cd4a3ad9cdac391264b80ad5e";
+          sha256 = "1kn9sibvsnaprhjwfz1cdvb4mi4d4qsp70gxjij58dk51jpni7yf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flower";
+          sha256 = "1cb9ppgspdrg4yrrlq4sfajpa6s7xiwvdf9b3947rmmxizgqgynd";
+          name = "recipe";
+        };
+        packageRequires = [ clomacs emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flower";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flucui-themes = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flucui-themes";
+        ename = "flucui-themes";
+        version = "20181015.1121";
+        src = fetchFromGitHub {
+          owner = "MetroWind";
+          repo = "flucui-theme";
+          rev = "944c7cb2e0f808bc907a89710d675547b442960d";
+          sha256 = "0y0msxwsksw9xc9gqgjpbzdd2x3p3d2x33920ibqpdccpy80mcgr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flucui-themes";
+          sha256 = "0ki2vxjhccyi6w2y9qj6xbfqgvjd91wqkzn6qq8ig6ggqir7wc6a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flucui-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fluxus-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , osc }:
+      melpaBuild {
+        pname = "fluxus-mode";
+        ename = "fluxus-mode";
+        version = "20170210.1141";
+        src = fetchFromGitHub {
+          owner = "defaultxr";
+          repo = "fluxus-mode";
+          rev = "3661d4dfdaf249138e7f215f15f291c9391ede8d";
+          sha256 = "1dp974qs80agx9qcq5k5awdsr8p8smv8cdwkjz2d8xfd5wq2vhh9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fluxus-mode";
+          sha256 = "1xn2aw9gxwkmr1miam63lrdx6n0qxsgph3rlaqy9cbs0vkb254an";
+          name = "recipe";
+        };
+        packageRequires = [ emacs osc ];
+        meta = {
+          homepage = "https://melpa.org/#/fluxus-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flx = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "flx";
+        ename = "flx";
+        version = "20151030.1112";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "flx";
+          rev = "7fce6a4cdb65ac1b52e2b409ba548767581ce34c";
+          sha256 = "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flx";
+          sha256 = "04plfhrnw7jx2jaxhbhw4ypydfcb8v0x2m5hyacvrli1mca2iyf9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/flx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flx-ido = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , flx
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "flx-ido";
+        ename = "flx-ido";
+        version = "20180117.719";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "flx";
+          rev = "9c5cb5de0202b4eaac9359c84ca7ce9cbd7ee835";
+          sha256 = "0i7pj4l0ilihvkgal8d71idy5jr9zwanzxch350pg4myr6j1hnad";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flx-ido";
+          sha256 = "00wcwbvfjbcx8kyap7rl1b6nsgqdwjzlpv6al2cdpdd19rm1vgdc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib flx ];
+        meta = {
+          homepage = "https://melpa.org/#/flx-ido";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flx-isearch = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , flx
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "flx-isearch";
+        ename = "flx-isearch";
+        version = "20180102.2114";
+        src = fetchFromGitHub {
+          owner = "PythonNut";
+          repo = "flx-isearch";
+          rev = "f132fd6367e369885ab3a865fbfe20eee989bc0b";
+          sha256 = "1dcvfl4fyhgw0rhfhixzlzjfr99fisa83f7lmlwzz2zs96myhhkz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flx-isearch";
+          sha256 = "14cshv5xb57ch5g3m3hfhawnnabdnbacp4kx40d0pw6jxw677gqd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs flx ];
+        meta = {
+          homepage = "https://melpa.org/#/flx-isearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , let-alist
+                            , lib
+                            , melpaBuild
+                            , pkg-info
+                            , seq }:
+      melpaBuild {
+        pname = "flycheck";
+        ename = "flycheck";
+        version = "20181018.321";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck";
+          rev = "f85eb1c8f1aeb594ce71a048a86bc3fb5e590c4b";
+          sha256 = "1k42lyjs6532y8c2n2iby6qsckfmxzrvn7pcngpbc737md2ddi18";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck";
+          sha256 = "045k214dq8bmrai13da6gwdz97a2i998gggxqswqs4g52l1h6hvr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs let-alist pkg-info seq ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-apertium = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-apertium";
+        ename = "flycheck-apertium";
+        version = "20160406.618";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "flycheck-apertium";
+          rev = "71cf49d5aaee962b995583384bfa045a1d4c3db7";
+          sha256 = "14idjjz6fhmq806mmncmqnr9bvcjks6spin8z6jb0gqcg1dbhm06";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-apertium";
+          sha256 = "1cc15sljqs6gvb3wiw7n1wkd714qkvfpw6l1kg4lfx9r4jalcvw7";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-apertium";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-ats2 = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-ats2";
+        ename = "flycheck-ats2";
+        version = "20170225.836";
+        src = fetchFromGitHub {
+          owner = "drvink";
+          repo = "flycheck-ats2";
+          rev = "9f77add8408462af35bdddf87e37a661880255e3";
+          sha256 = "1fv3r49i8dgszaq5rs8dwnwcj6rgx922ww01ikrq3b4c9y17srpz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-ats2";
+          sha256 = "0xm7zzz6hs5qnqkmv7hwxpvp3jjca57agx71sj0m12v0h53gbzhr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-ats2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-bashate = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-bashate";
+        ename = "flycheck-bashate";
+        version = "20160629.2140";
+        src = fetchFromGitHub {
+          owner = "alexmurray";
+          repo = "flycheck-bashate";
+          rev = "d9780b73ee698d6bc001e617b187845cafa3292a";
+          sha256 = "1qhvrkhpjs214mc5f6gygwf5hx5gb2jcs46a4b34mqq29rn0j9kc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-bashate";
+          sha256 = "1c8hf4893zb74g61afr02wqhmdaswxr3nwsnzzwmb8nrrygvfa8j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-bashate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-cask = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-cask";
+        ename = "flycheck-cask";
+        version = "20160928.226";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-cask";
+          rev = "c3a51147eddeb7347de81f6a498fc96538bac499";
+          sha256 = "1jw8n6df2hpnjrsqzdd70j0ya3yjzkcy5gm6zx9acqfx88zlgb9m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-cask";
+          sha256 = "0d2m7mg91k1nazysayryxagql1vi975n7iv0snknhbw4wisqp82f";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-cask";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-checkbashisms = callPackage ({ emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , flycheck
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-checkbashisms";
+        ename = "flycheck-checkbashisms";
+        version = "20160224.906";
+        src = fetchFromGitHub {
+          owner = "Gnouc";
+          repo = "flycheck-checkbashisms";
+          rev = "39362240b8e38e6ddc1da2e2c2229e3fecdf6057";
+          sha256 = "1s2zq97d7ryif6rlbvriz36dh23wmwi67v4q6krl77dfzcs705b3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-checkbashisms";
+          sha256 = "1rq0ymlr1dl39v0sfyjmdv4pq3q9116cz9wvgpvfgalq8759q5sz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-checkbashisms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-checkpatch = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-checkpatch";
+        ename = "flycheck-checkpatch";
+        version = "20170217.225";
+        src = fetchFromGitHub {
+          owner = "zpp0";
+          repo = "flycheck-checkpatch";
+          rev = "6461fc7b0d493eb9863814055f8bce5fa35739de";
+          sha256 = "1651xmw01n5h7x81y3cvsamdmb67jcf385ax52dkp8miyq1a090r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-checkpatch";
+          sha256 = "1apjn26n663rjddv5iagfs65fdf22049ykmzggybbnprvnmasf55";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-checkpatch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-clang-analyzer = callPackage ({ emacs
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , flycheck
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-clang-analyzer";
+        ename = "flycheck-clang-analyzer";
+        version = "20180917.725";
+        src = fetchFromGitHub {
+          owner = "alexmurray";
+          repo = "flycheck-clang-analyzer";
+          rev = "5c707505e3ea806fddb54d031ab64351293d7c2d";
+          sha256 = "0frbblyibalzskw2kv294yz846g04wlvpyshfwm95vwilv1f305v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-clang-analyzer";
+          sha256 = "0wby4vilvcmmncr6l6abh3v4wznx9m0zbk30vllj8bq98awfcy3a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-clang-analyzer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-clang-tidy = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-clang-tidy";
+        ename = "flycheck-clang-tidy";
+        version = "20171024.108";
+        src = fetchFromGitHub {
+          owner = "ch1bo";
+          repo = "flycheck-clang-tidy";
+          rev = "b8ebd49693f67e08e420ba847cc88f6721ef9e3e";
+          sha256 = "0fnn1baw64f7x1zjb95adryr3mfynbblwppcd6ywh7pk0sq18b80";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-clang-tidy";
+          sha256 = "0lhf5byydmd380y7qx5x34r0sq7gzrj286pcaxhl388p6j58cb4p";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-clang-tidy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-clangcheck = callPackage ({ cl-lib ? null
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild
+                                       , seq }:
+      melpaBuild {
+        pname = "flycheck-clangcheck";
+        ename = "flycheck-clangcheck";
+        version = "20150712.10";
+        src = fetchFromGitHub {
+          owner = "kumar8600";
+          repo = "flycheck-clangcheck";
+          rev = "24a9424c484420073a24443a829fd5779752362b";
+          sha256 = "1ckzs32wzqpnw89rrw3l7i4gbyn25wagbadsc4mcrixml5nf0mck";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-clangcheck";
+          sha256 = "1316cj3ynl80j39ha0371ss7cqw5hcr3m8944pdacdzbmp2sak2m";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib flycheck seq ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-clangcheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-clojure = callPackage ({ cider
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , let-alist
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-clojure";
+        ename = "flycheck-clojure";
+        version = "20180721.712";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "squiggly-clojure";
+          rev = "7c856615f91868171af270f4fed08d52988f9596";
+          sha256 = "0r2v4gica86z0va5i5xcs5aisi47ywzg2sg6rp7z6yg7aprcnfll";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-clojure";
+          sha256 = "1b20gcs6fvq9pm4nl2qwsf34sg6wxngdql921q2pyh5n1xsxhm28";
+          name = "recipe";
+        };
+        packageRequires = [ cider emacs flycheck let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-clojure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-color-mode-line = callPackage ({ dash
+                                            , emacs
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , flycheck
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-color-mode-line";
+        ename = "flycheck-color-mode-line";
+        version = "20171121.2307";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-color-mode-line";
+          rev = "cc474804d4e8088a627485faaf4217a5781aec7d";
+          sha256 = "0lk8p0wb7g9lvxjv9rl59hd9f0m0ksw9rgspis8qshpz8pj5785f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-color-mode-line";
+          sha256 = "0hw19nsh5h2l8qbp7brqmml2fhs8a0x850vlvq3qfd7z248gvhrq";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-color-mode-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-coverity = callPackage ({ dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-coverity";
+        ename = "flycheck-coverity";
+        version = "20170703.1759";
+        src = fetchFromGitHub {
+          owner = "alexmurray";
+          repo = "flycheck-coverity";
+          rev = "cb211e3dd50413a5042eb20175be518214591c9d";
+          sha256 = "17c5lppa5axw6wga3k8zqmn5f2syadlqbavrqgsi8k8nlcckxy1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-coverity";
+          sha256 = "1knd1sqgjkgb5zs8hgsi6lyvkqmrcrdjgx81f26nhg40qv5m2p5l";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-coverity";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-credo = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-credo";
+        ename = "flycheck-credo";
+        version = "20170526.845";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "flycheck-credo";
+          rev = "e88f11ead53805c361ec7706e44c3dfee1daa19f";
+          sha256 = "04i7fbqpkjpsfa8vjpkdhg1sj5isczxwncdp4vr9x3vll3svblm7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-credo";
+          sha256 = "0xmnbib7lx6v10pd3pkr69c4jb4sn3nmjk16qzvscwjgf2dypyax";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-credo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-crystal = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-crystal";
+        ename = "flycheck-crystal";
+        version = "20180626.1942";
+        src = fetchFromGitHub {
+          owner = "crystal-lang-tools";
+          repo = "emacs-crystal-mode";
+          rev = "ae87526d13be07e6817809ac9795657db0092c9d";
+          sha256 = "1skgas1bh05vbncwwcahlr06g05nyn3cjwvfziq501r9b450s7qk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-crystal";
+          sha256 = "04avxav2rayprm09xkphs1ni10j1kk10j7m77afcac0gnma5rwyn";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-crystal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-css-colorguard = callPackage ({ emacs
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , flycheck
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-css-colorguard";
+        ename = "flycheck-css-colorguard";
+        version = "20161031.422";
+        src = fetchFromGitHub {
+          owner = "Simplify";
+          repo = "flycheck-css-colorguard";
+          rev = "ae94fa0396acd99f9ec36d9572459df793f37fe8";
+          sha256 = "1vy5yjf98b7dk9lniz3rgk33agg8f1x8488lvm28ljdq3jfdgcfw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-css-colorguard";
+          sha256 = "16qgn12jdps61mlbvhji5l8qrqigv382wyiv79rj2bwvdzbl653f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-css-colorguard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-cstyle = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-cstyle";
+        ename = "flycheck-cstyle";
+        version = "20160905.1641";
+        src = fetchFromGitHub {
+          owner = "alexmurray";
+          repo = "flycheck-cstyle";
+          rev = "002699f83253ea8e1a509a9ab6d0fce1a1650f73";
+          sha256 = "1qwimdnvwbg365hnwgrrq9h5h1spikma3va5z47rhxbdb21hvyvs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-cstyle";
+          sha256 = "0p3lzpcgwk4nkq1w0iq40njz8ll2h3vi9z5fbvv1ar4r80fqd909";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-cstyle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-cython = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-cython";
+        ename = "flycheck-cython";
+        version = "20170724.258";
+        src = fetchFromGitHub {
+          owner = "lbolla";
+          repo = "emacs-flycheck-cython";
+          rev = "ecc4454d35ab5317ab66a04406f36f0c1dbc0b76";
+          sha256 = "1v17skw0wn7a7nkc1vrs0bbzihnjw0dwvyyd0lydsihzxl5z2r5g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-cython";
+          sha256 = "1mbrwhpbs8in11mp79cnl4bd3m33qdgrvnbvi1mqvrsvz1ay28g4";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-cython";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-d-unittest = callPackage ({ dash
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-d-unittest";
+        ename = "flycheck-d-unittest";
+        version = "20160521.2117";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-d-unittest";
+          rev = "3e614f23cb4a5566fd7988dbcaaf254af81c7718";
+          sha256 = "0lrxyrvdkj88qh78jmamrnji770vjsr6h01agl7hvd4n2xvlxcym";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-d-unittest";
+          sha256 = "0n4m4f0zqcx966582af1nqff5sla7jcr0wrmgzzxnn97yjrlnzk2";
+          name = "recipe";
+        };
+        packageRequires = [ dash flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-d-unittest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-dedukti = callPackage ({ dedukti-mode
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-dedukti";
+        ename = "flycheck-dedukti";
+        version = "20171103.512";
+        src = fetchFromGitHub {
+          owner = "rafoo";
+          repo = "flycheck-dedukti";
+          rev = "3dbff5646355f39d57a3ec514f560a6b0082a1cd";
+          sha256 = "1ffpxnwl3wx244n44mbw81g00nhnykd0lnid29f4aw1av7w6nw8l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-dedukti";
+          sha256 = "00nc18w4nsi6vicpbqqpr4xcdh48g95vnay3kirb2xp5hc2rw3x8";
+          name = "recipe";
+        };
+        packageRequires = [ dedukti-mode flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-dedukti";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-demjsonlint = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , flycheck
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-demjsonlint";
+        ename = "flycheck-demjsonlint";
+        version = "20161114.2318";
+        src = fetchFromGitHub {
+          owner = "uqix";
+          repo = "flycheck-demjsonlint";
+          rev = "1c433150fdf628dda4c9fad938bf7c79610b4460";
+          sha256 = "0kmvwmaxw64xjgchq8szk9mhbi6xp2jhv7qpgqndf4svia4pqws6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-demjsonlint";
+          sha256 = "0bcfkc9fch1h6gva64j71kb9l8fc9rz6wk0s9w1c1chx1z4nlill";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-demjsonlint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-dialyxir = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-dialyxir";
+        ename = "flycheck-dialyxir";
+        version = "20170515.825";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "flycheck-dialyxir";
+          rev = "adfb73374cb2bee75724822972f405f2ec371199";
+          sha256 = "1kzvq99f052mdj4ml1m6nvxhv0kqqblmpdgnwcm89krf0qfl4gjg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-dialyxir";
+          sha256 = "0pacxidpgwp7wij17c5r0fm5w3nga3lp4mcim365k3y5r4ralc0c";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-dialyxir";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-dialyzer = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-dialyzer";
+        ename = "flycheck-dialyzer";
+        version = "20160326.730";
+        src = fetchFromGitHub {
+          owner = "lbolla";
+          repo = "emacs-flycheck-dialyzer";
+          rev = "a5df0db95ac69f397b5f85d325a6d88cf8974f64";
+          sha256 = "1i5wm2r6rck6864a60mm6kv31vgvqnq49hi9apvhyywfn6sycwkf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-dialyzer";
+          sha256 = "0bn81yzijmnfg5xcnvcvxvqxz995iaafhgbfckgcal974s229kd2";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-dialyzer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-dmd-dub = callPackage ({ f
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-dmd-dub";
+        ename = "flycheck-dmd-dub";
+        version = "20180625.935";
+        src = fetchFromGitHub {
+          owner = "atilaneves";
+          repo = "flycheck-dmd-dub";
+          rev = "148ea4ba3e4c46c8edc616f947f796e98bcad0de";
+          sha256 = "0r33rp34ss7mx32x28p67n5sgnmyr6cmpwpprmlq2s72xpmyx4md";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-dmd-dub";
+          sha256 = "0pg3sf7h6xqv65yqclhlb7fx1mp2w0m3qk4vji6m438kxy6fhzqm";
+          name = "recipe";
+        };
+        packageRequires = [ f flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-dmd-dub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-dogma = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-dogma";
+        ename = "flycheck-dogma";
+        version = "20170124.2321";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "flycheck-dogma";
+          rev = "7e14207a7da67dc5524a8949cb37a3d11de1db6e";
+          sha256 = "1f3wn48am7920s6pm7ds1npfbj1w2pb8k790rl79rvc398g1pyyr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-dogma";
+          sha256 = "0mpmmz0ssdd3a4fnqzy5kf9r3ddcs9kcl0chhilkw5k8480j3dcy";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-dogma";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-dtrace = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-dtrace";
+        ename = "flycheck-dtrace";
+        version = "20180903.930";
+        src = fetchFromGitHub {
+          owner = "juergenhoetzel";
+          repo = "flycheck-dtrace";
+          rev = "951fab3a15c11d92b9fac1ea4791a80dfe034a00";
+          sha256 = "1qkzir3lzz4lc5kn55qb52cm5y7iy8w1ljq6xxzcjxfbk9980y0y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-dtrace";
+          sha256 = "14sg7zkq9f5zbcfn8app8m9mdc8cnwcxh7h4glsz32yaqc1dj7h8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-dtrace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-elixir = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-elixir";
+        ename = "flycheck-elixir";
+        version = "20180809.2342";
+        src = fetchFromGitHub {
+          owner = "lbolla";
+          repo = "emacs-flycheck-elixir";
+          rev = "11998d7e3e63a33453e934d25b3673f7c558e579";
+          sha256 = "1hdbg0hvb6hwzjma9mxy0h888c8j2z4g38gwixrdixzbw5727r75";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-elixir";
+          sha256 = "0f78fai6q15smh9rvsliv8r0hh3kpwn1lz37yvqkkbx9vl7rlwld";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-elixir";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-elm = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , let-alist
+                                , lib
+                                , melpaBuild
+                                , seq }:
+      melpaBuild {
+        pname = "flycheck-elm";
+        ename = "flycheck-elm";
+        version = "20181106.1746";
+        src = fetchFromGitHub {
+          owner = "bsermons";
+          repo = "flycheck-elm";
+          rev = "debd0af563cb6c2944367a691c7fa3021d9378c1";
+          sha256 = "1vl0lss2n50pz5wscqj6vhjwb4hbg8xx2chh5vafsrnn0a3fryrd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-elm";
+          sha256 = "06dpv19wgbw48gbf701c77vw1dkpddx8056wpim3zbvwwfwk8ra4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck let-alist seq ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-elm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-elsa = callPackage ({ cask
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , seq }:
+      melpaBuild {
+        pname = "flycheck-elsa";
+        ename = "flycheck-elsa";
+        version = "20181029.721";
+        src = fetchFromGitHub {
+          owner = "emacs-elsa";
+          repo = "flycheck-elsa";
+          rev = "ea7bac8ddd1e2bf60ee1744a83bc0c4dd1dc70d0";
+          sha256 = "0bcfbdnc13jscl7dw06yfzgkamfapfnyqccg8mdm5sin8kvbdhc8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-elsa";
+          sha256 = "07a07hmy7cibm7263dw4x8kkv17g5hby8isaks7n2814ifblf30r";
+          name = "recipe";
+        };
+        packageRequires = [ cask emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-elsa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-flawfinder = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-flawfinder";
+        ename = "flycheck-flawfinder";
+        version = "20170115.1927";
+        src = fetchFromGitHub {
+          owner = "alexmurray";
+          repo = "flycheck-flawfinder";
+          rev = "7d964d38023b088adf3ffc2fddeead81f4491a45";
+          sha256 = "0y023brz8adwa6gdaaixk6dnrq4kj2i5h56rj54cxrjkagyklfxl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-flawfinder";
+          sha256 = "1nabj00f5p1klzh6509ywnazxx2m017isdjdzzixg94g5mp0kv5i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-flawfinder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-flow = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , json ? null
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-flow";
+        ename = "flycheck-flow";
+        version = "20180801.542";
+        src = fetchFromGitHub {
+          owner = "lbolla";
+          repo = "emacs-flycheck-flow";
+          rev = "5d42270c798918c05c5e983e774063930bd87838";
+          sha256 = "009nlyyb5z09d8474fhfwi0imia2igiq1adxa6ibqrz9km867b8q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-flow";
+          sha256 = "0p4vvk09vjgk98dwzr2qzldvij3v6af56pradssi6sm3shbqhkk3";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck json ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-flow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-ghcmod = callPackage ({ dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-ghcmod";
+        ename = "flycheck-ghcmod";
+        version = "20150113.2232";
+        src = fetchFromGitHub {
+          owner = "scturtle";
+          repo = "flycheck-ghcmod";
+          rev = "6bb7b7d879f05bbae54e99eb04806c877adf3ccc";
+          sha256 = "0q1m1f3vhw1wy0pa3njy55z28psznbw2xwmwk2v1p5c86n74ns8d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-ghcmod";
+          sha256 = "0mqxg622lqnkb52a0wff7h8b0k6mm1k7fhkfi95fi5sahclja0rp";
+          name = "recipe";
+        };
+        packageRequires = [ dash flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-ghcmod";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-golangci-lint = callPackage ({ emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , flycheck
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-golangci-lint";
+        ename = "flycheck-golangci-lint";
+        version = "20180711.117";
+        src = fetchFromGitHub {
+          owner = "weijiangan";
+          repo = "flycheck-golangci-lint";
+          rev = "b4b51aa6fe5335c0f46f2f83c7dc32e4141ff9f1";
+          sha256 = "0kxzziq4d4x1li1cimjckxk5n1429017k39jbfxm4p1bzq1xd6q3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-golangci-lint";
+          sha256 = "1vg80q4axbzb147fglli2w19n70bc934hb3hfl1r4shhpbfjlcgj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-golangci-lint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-gometalinter = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , flycheck
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-gometalinter";
+        ename = "flycheck-gometalinter";
+        version = "20180424.241";
+        src = fetchFromGitHub {
+          owner = "favadi";
+          repo = "flycheck-gometalinter";
+          rev = "422f6e4b77b27fd7370f0c88437ac5072c9d3413";
+          sha256 = "16117njpia9046snp1y2yapqmnzgbsan5dvaw3ih5pqmnqjjqdkd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-gometalinter";
+          sha256 = "1bnvj5kwgbh0dv989rsjcvmcij1ahwcz0vpr6a8f2p6wwvksw1h2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-gometalinter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-gradle = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-gradle";
+        ename = "flycheck-gradle";
+        version = "20180923.1900";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "flycheck-gradle";
+          rev = "6a61daada4b2353a1c7c223cf8d5bccb907534c8";
+          sha256 = "1crfmz3blki768a91pn6gm24fwlfid3pm4xchjr416amm539md08";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-gradle";
+          sha256 = "0zd92lx0mqjqwzclvvhfwwahq80qspyv9k7qcxjc0bl3avjk6a47";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-gradle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-grammalecte = callPackage ({ emacs
+                                        , fetchgit
+                                        , fetchurl
+                                        , flycheck
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-grammalecte";
+        ename = "flycheck-grammalecte";
+        version = "20181115.846";
+        src = fetchgit {
+          url = "https://git.deparis.io/flycheck-grammalecte/";
+          rev = "fe5d94dc6175fe8cc09965956fda5c0de0b280d6";
+          sha256 = "124z514qzh9vkbkihpldrs0f3zqm4xpp9pxnsbw7s5na71zwp4m0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-grammalecte";
+          sha256 = "0xqg995a42cl6mvmpi68ay56fgs636cbzg65q5si5yc1yzgl74nv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-grammalecte";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-haskell = callPackage ({ dash
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , haskell-mode
+                                    , let-alist
+                                    , lib
+                                    , melpaBuild
+                                    , seq }:
+      melpaBuild {
+        pname = "flycheck-haskell";
+        ename = "flycheck-haskell";
+        version = "20181117.201";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-haskell";
+          rev = "072c854a65a73b441624a90a8aa3b86ec64cdd1e";
+          sha256 = "1fszrpwmw6wky6c9v0bk0hrh18nc21n4l2hq3cppbw7jn49daw2g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-haskell";
+          sha256 = "12lgirz3j6n5ns2ikq4n41z0d33qp1lb5lfz1q11qvpbpn9d0jn7";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck haskell-mode let-alist seq ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-haskell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-hdevtools = callPackage ({ dash
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , flycheck
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-hdevtools";
+        ename = "flycheck-hdevtools";
+        version = "20160926.2";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-hdevtools";
+          rev = "53829f0c57800615718cfce27ffa16d8ba286cee";
+          sha256 = "1isx9v5xx35pglmhyhpmpg7axw0krmnl0n2qiikf499z7dd35wyn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-hdevtools";
+          sha256 = "0ahvai1q4x59ryiyccvqvjisgqbaiahx4gk8ssaxhblhj0sqga93";
+          name = "recipe";
+        };
+        packageRequires = [ dash flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-hdevtools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-inline = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-inline";
+        ename = "flycheck-inline";
+        version = "20180821.149";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-inline";
+          rev = "259ad47ac4ab42b7cc5c41f6d80b9888941507c6";
+          sha256 = "0cfk1ji1sn3ikhk8jvs2bhdhpd60dw7162112s2zp6yrbr9d6lkw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-inline";
+          sha256 = "14ph2f5aj2mpyxbbq4v0rk5zdz7773lf2m83m30h3r1cbh5jmddj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-inline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-irony = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , irony
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-irony";
+        ename = "flycheck-irony";
+        version = "20180604.1452";
+        src = fetchFromGitHub {
+          owner = "Sarcasm";
+          repo = "flycheck-irony";
+          rev = "42dbecd4a865cabeb301193bb4d660e26ae3befe";
+          sha256 = "00ggn7v1nj2zb7rvwmjrhybd1vcp07n74krdy28z9xwh7w59wyq7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-irony";
+          sha256 = "0qk814m5s7mjba659llml0gy1g3045w8l1g73w2pnm1pbpqdfn3z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck irony ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-irony";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-jest = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-jest";
+        ename = "flycheck-jest";
+        version = "20180410.2028";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "flycheck-jest";
+          rev = "08f27c5ed97c83c445f99fab58f0b6c826f14449";
+          sha256 = "1ipr1yyk5vf2i8q7923r18a216sgf759x5f6j5776jcjkhp98c98";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-jest";
+          sha256 = "19dg8v0xzni7x6zn472n4ach1c1jv4syzarfi8ba8r6n26vz9ss4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-jest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-joker = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-joker";
+        ename = "flycheck-joker";
+        version = "20180912.2204";
+        src = fetchFromGitHub {
+          owner = "candid82";
+          repo = "flycheck-joker";
+          rev = "51e99e697761ee8dab863930910abdba7607c1bd";
+          sha256 = "07pxfvnrgp7f3rb27j1zrq04pncvga4291krqqy3dzwazsjplz48";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-joker";
+          sha256 = "0war80zdljpjhfihqrind8471ic7l4z7j74zmrysybxvnd5nr7l3";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-joker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-julia = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-julia";
+        ename = "flycheck-julia";
+        version = "20170729.1441";
+        src = fetchFromGitHub {
+          owner = "gdkrmr";
+          repo = "flycheck-julia";
+          rev = "213b60a5a9a1cb7887260e1d159b5bb27167cbb6";
+          sha256 = "0wk8mc8j67dmc3mxzrhypgxmyywwrjh5q5llj4m2mgf0j7yp2576";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-julia";
+          sha256 = "0340bv0lifs8pajk7gh7rngdjg62vaggn5biyysng642dlg5fwqs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-julia";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-kotlin = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-kotlin";
+        ename = "flycheck-kotlin";
+        version = "20170122.337";
+        src = fetchFromGitHub {
+          owner = "whirm";
+          repo = "flycheck-kotlin";
+          rev = "44dfae49a7355232492e17c150b7f80a84835c45";
+          sha256 = "1495yxk308d1j3hw8gfdrsg8xs1imzgwfnwadrz9hx36rjd2dhj5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-kotlin";
+          sha256 = "0vh4f3ap1ciddf2fvfnjz668d6spyx49xs2wfp1hrzxn5yqpnra5";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-kotlin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-ledger = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-ledger";
+        ename = "flycheck-ledger";
+        version = "20180818.2021";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flycheck-ledger";
+          rev = "8d7f52a4c7f80ca396ef0fc6c7d8e9f005778dfc";
+          sha256 = "0m5zhyzrh4lx7vzwdgdwcfkipdvi3y8kavhckbd7vd9zwx539ij1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-ledger";
+          sha256 = "0807pd2km4r60wgd6jakscbx63ab22d9kvf1cml0ad8wynsap7jl";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-ledger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-lilypond = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-lilypond";
+        ename = "flycheck-lilypond";
+        version = "20171203.532";
+        src = fetchFromGitHub {
+          owner = "hinrik";
+          repo = "flycheck-lilypond";
+          rev = "d6b2c03e94e0b9b6294d7ad0b2fe4a76907a8aed";
+          sha256 = "0vafllj20k8b3z7ybnnpny0dj4xmnr5s69p3krwchs77pi04727h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-lilypond";
+          sha256 = "0yx0jbilr8z58df13wcssp3p95skcvl8mnhhr6lijak44sd7klbf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-lilypond";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-liquidhs = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-liquidhs";
+        ename = "flycheck-liquidhs";
+        version = "20170412.1626";
+        src = fetchFromGitHub {
+          owner = "ucsd-progsys";
+          repo = "flycheck-liquidhs.el";
+          rev = "c27252ac24d77f4b6eec76a4ba9cd61761a3fba9";
+          sha256 = "1v5s252w2ai0rrci0rkq6wsx110pw8hp60n67990jg6l6lpvir2s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-liquidhs";
+          sha256 = "07dn2ifj49z2jj9zw0f0ydp5rxx9wfmah4fh4vx8slnpjby367yh";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-liquidhs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-mercury = callPackage ({ dash
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "flycheck-mercury";
+        ename = "flycheck-mercury";
+        version = "20181118.1152";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-mercury";
+          rev = "b6807a8db70981e21a91a93324c31e49de85c89f";
+          sha256 = "15pjqglpcwm4wy0cxk1man3ar0n56qi1bjrr1fxfjq2xwsgsfagh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-mercury";
+          sha256 = "1z2y6933f05yv9y2aapmn876jnsydh642zqid3j88bb9kqi67x0h";
+          name = "recipe";
+        };
+        packageRequires = [ dash flycheck s ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-mercury";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-mix = callPackage ({ elixir-mode
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-mix";
+        ename = "flycheck-mix";
+        version = "20170118.630";
+        src = fetchFromGitHub {
+          owner = "tomekowal";
+          repo = "flycheck-mix";
+          rev = "76684d4b5987925b98b254aab656f8bf8198ab88";
+          sha256 = "130ddx83h88krd64kss4z59lfrmdi3433r95939kqsqfmhzvgx0k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-mix";
+          sha256 = "1wp8lp45lc519w3xsws2c91jlbfmc0pc8764kxsifk74akwcizfl";
+          name = "recipe";
+        };
+        packageRequires = [ elixir-mode flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-mix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-mmark = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-mmark";
+        ename = "flycheck-mmark";
+        version = "20180203.932";
+        src = fetchFromGitHub {
+          owner = "mmark-md";
+          repo = "flycheck-mmark";
+          rev = "7fdcc48ff6ffa5e7db126a76f4948ab08b9eb8d4";
+          sha256 = "0g6a8nm5mxgca7psyi127ky68mal0lj7n486fgrwsg3bxglbsk5m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-mmark";
+          sha256 = "0lnw7pz40hijcpi9b92vjxvvyh9v50ww2f2r8z9pyhl9mjy2245x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-mmark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-mypy = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-mypy";
+        ename = "flycheck-mypy";
+        version = "20180907.316";
+        src = fetchFromGitHub {
+          owner = "lbolla";
+          repo = "emacs-flycheck-mypy";
+          rev = "6f99166f5229c7b4298cff1818b7eaece1c9c8bd";
+          sha256 = "06rdwjljhficbdf74qzlxsy02xhd8msp79fx75nwbxbd84q6dr5w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-mypy";
+          sha256 = "1w418jm6x3vcg2x31nzc8a3b8asx6gznl6m76ip8w98riz7vy02f";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-mypy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-nim = callPackage ({ dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-nim";
+        ename = "flycheck-nim";
+        version = "20160714.2128";
+        src = fetchFromGitHub {
+          owner = "ALSchwalm";
+          repo = "flycheck-nim";
+          rev = "6d27349b66e44578851e6148299709d64d2bde41";
+          sha256 = "08rjrh7rjx71fsxf931hhfcga7m6a8sd6bvvr4qbsmhldnzd1aa7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-nim";
+          sha256 = "0w6f6998rqx8a3i4xhga7mrmvhxrm690wkqwfzspidid2z7v71az";
+          name = "recipe";
+        };
+        packageRequires = [ dash flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-nim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-nimsuggest = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-nimsuggest";
+        ename = "flycheck-nimsuggest";
+        version = "20171027.1508";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "flycheck-nimsuggest";
+          rev = "dc9a5de1cb3ee05db5794d824610959a1f603bc9";
+          sha256 = "1bf65hrz0s6f180kn2ir8l5qn7in789w8pyy96b9gqn21z50vb9d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-nimsuggest";
+          sha256 = "099mlzramm6z66zyjb6ypn7qb0hpvwbbgk9ydsanj8sni0dd66hv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-nimsuggest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-objc-clang = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-objc-clang";
+        ename = "flycheck-objc-clang";
+        version = "20181116.401";
+        src = fetchFromGitHub {
+          owner = "GyazSquare";
+          repo = "flycheck-objc-clang";
+          rev = "a3781e47f14068c811534a3348bf479eeb3f2041";
+          sha256 = "00a2wg6g74plbmva3bwms7brdlv9i28w51yxisiv04la126m69js";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-objc-clang";
+          sha256 = "07mzwd04a69d7xpkjmhfmf95j69h6accnf9bb9br7jb1hi9vdalp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-objc-clang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-ocaml = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , let-alist
+                                  , lib
+                                  , melpaBuild
+                                  , merlin }:
+      melpaBuild {
+        pname = "flycheck-ocaml";
+        ename = "flycheck-ocaml";
+        version = "20170730.1453";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-ocaml";
+          rev = "8707a7bf545a8639a6a5c600a98d9a2ea1487dc9";
+          sha256 = "13vzxkjq6v1f1i9zgxgjbwpiba04k9frkcl2wx6a9h3vgd7jyay0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-ocaml";
+          sha256 = "1cv2bb66aql2kj1y1gsl4xji8yrzrq6rd8hxxs5vpfsk47052lf7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck let-alist merlin ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-ocaml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-package = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild
+                                    , package-lint }:
+      melpaBuild {
+        pname = "flycheck-package";
+        ename = "flycheck-package";
+        version = "20161111.1451";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flycheck-package";
+          rev = "afe8a49343d90d08ee72ac6f993d424dcc39cc38";
+          sha256 = "19pz8h01yacfqsyh5940pam6vigvavsqg6qd84994d7mmzl534qa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-package";
+          sha256 = "0068kpia17rsgjdmzsjnw0n6x5z9jvfxggxlzkszvwsx73mvcs2d";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck package-lint ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pact = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild
+                                 , pact-mode }:
+      melpaBuild {
+        pname = "flycheck-pact";
+        ename = "flycheck-pact";
+        version = "20180920.1352";
+        src = fetchFromGitHub {
+          owner = "kadena-io";
+          repo = "flycheck-pact";
+          rev = "0e10045064ef89ec8b6f5a473073d47b976a2ca3";
+          sha256 = "072jc0vrjg531ydk5bjrjpmbvdk81yw75jqjnvb7alkib6jn5f9r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pact";
+          sha256 = "1nxmh6p2id4cxzs7jxdrk88g8qmvk33nbzmrqhm7962iqizlvnrw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck pact-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pact";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-perl6 = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-perl6";
+        ename = "flycheck-perl6";
+        version = "20180509.1501";
+        src = fetchFromGitHub {
+          owner = "hinrik";
+          repo = "flycheck-perl6";
+          rev = "b804702305d7a6e26f762ff98cfdeec2e9dd4cb7";
+          sha256 = "0gys38rlx9lx35bia6nj7kfhz1v5xfrirgf8adwk7b2hfjazrsib";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-perl6";
+          sha256 = "0czc0fqx7g543afzkbjyz4bhxfl4s3v5swn9xrkayv8cgk8acvp4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-perl6";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-phpstan = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild
+                                    , phpstan }:
+      melpaBuild {
+        pname = "flycheck-phpstan";
+        ename = "flycheck-phpstan";
+        version = "20180801.1041";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phpstan.el";
+          rev = "afd63d6183f75536c01e456c9cb16b65d0f70a95";
+          sha256 = "0dak9nc334dlcq4ss21palnafaysnxnrh8qws2shwvbwnq6kzz4j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-phpstan";
+          sha256 = "1dr0h6cnwxdjmhlackv4gpsljwzs27gk41p8q99r0m44dada9gaf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck phpstan ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-phpstan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pkg-config = callPackage ({ dash
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild
+                                       , s }:
+      melpaBuild {
+        pname = "flycheck-pkg-config";
+        ename = "flycheck-pkg-config";
+        version = "20180430.1543";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "flycheck-pkg-config";
+          rev = "e72e4c1b8153611ed82695673af84096f4d52795";
+          sha256 = "07zyrbib9qzy4kj3p7kljcfi53qhb28nf0sjhhkqzdj09iv2k9wf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pkg-config";
+          sha256 = "0w7h4fa4mv8377sdbkilqcw4b9qda98c1k01nxic7a8i3iyq02d6";
+          name = "recipe";
+        };
+        packageRequires = [ dash flycheck s ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pkg-config";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-plantuml = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild
+                                     , plantuml-mode }:
+      melpaBuild {
+        pname = "flycheck-plantuml";
+        ename = "flycheck-plantuml";
+        version = "20171017.1811";
+        src = fetchFromGitHub {
+          owner = "alexmurray";
+          repo = "flycheck-plantuml";
+          rev = "183be89e1dbba0b38237dd198dff600e0790309d";
+          sha256 = "1fbdbpwrlkvbgv693ndr3zamkf3gp28v94jg911fsav8bk08f6pq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-plantuml";
+          sha256 = "01l22isiym635471628b951n025ls3lm6gfhfp6f8n8w7v1sb986";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck plantuml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-plantuml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pony = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-pony";
+        ename = "flycheck-pony";
+        version = "20160501.1417";
+        src = fetchFromGitHub {
+          owner = "SeanTAllen";
+          repo = "flycheck-pony";
+          rev = "3d3387133a44f5b3f0fb178ef4addf6e1ce1df2f";
+          sha256 = "1da10q378k5kbcj0rrpzhm7r3ym4rfwc7v1ialcndbmflsn09m5s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pony";
+          sha256 = "18w1d7y3jsmsc4wg0909p72cnvbxzsmnirmrahhwgsb963fij5qk";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pony";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-popup-tip = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , flycheck
+                                      , lib
+                                      , melpaBuild
+                                      , popup }:
+      melpaBuild {
+        pname = "flycheck-popup-tip";
+        ename = "flycheck-popup-tip";
+        version = "20170812.1651";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-popup-tip";
+          rev = "ef86aad907f27ca076859d8d9416f4f7727619c6";
+          sha256 = "1bi6f9nm4bylsbjv4qnkar35s6xzdf2cc2cxi3g691p9527apdz6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-popup-tip";
+          sha256 = "1j8pgljnxcbfh08qpbr9jkw56l7d6k8lmdcsjbi6jd7jmyqbqvnx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck popup ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-popup-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pos-tip = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild
+                                    , pos-tip }:
+      melpaBuild {
+        pname = "flycheck-pos-tip";
+        ename = "flycheck-pos-tip";
+        version = "20180610.915";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-pos-tip";
+          rev = "909113977d37739387c7f099d74a724cfe6efcec";
+          sha256 = "0rfbhvl8n656a9d58bjyzki9r3si3ypylbyjn67rnla4jzzi22v8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pos-tip";
+          sha256 = "09i2jmwj8b915fhyczwdb1j7c551ggbva33avis77ga1s9v3nsf9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck pos-tip ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pos-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-posframe = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild
+                                     , posframe }:
+      melpaBuild {
+        pname = "flycheck-posframe";
+        ename = "flycheck-posframe";
+        version = "20180321.2307";
+        src = fetchFromGitHub {
+          owner = "alexmurray";
+          repo = "flycheck-posframe";
+          rev = "61bdfd4b04e1651163fdcaa7dc631ad073b3e513";
+          sha256 = "1r5cwmrszp5cvzlcc4dyhajxd0zrgxjpc0arhr2jkw1fc3d611x9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-posframe";
+          sha256 = "02ym2isn761w2nsfxiqjh0jk4md9wy3hk9na2aw7pyycm5cgmfwp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck posframe ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-posframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-prospector = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-prospector";
+        ename = "flycheck-prospector";
+        version = "20180523.2150";
+        src = fetchFromGitHub {
+          owner = "chocoelho";
+          repo = "flycheck-prospector";
+          rev = "d5b81adb5c8261b935baf0a614dd4b776280392e";
+          sha256 = "1g66gm538dwkvyl5rb199rnp5y8knrr3697m2qi0x0f18l072cg6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-prospector";
+          sha256 = "1z028qi40pk7jh0m8w332kr5qi6k6sw1kbymqdxxfakh1976fww9";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-prospector";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-purescript = callPackage ({ dash
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , let-alist
+                                       , lib
+                                       , melpaBuild
+                                       , seq }:
+      melpaBuild {
+        pname = "flycheck-purescript";
+        ename = "flycheck-purescript";
+        version = "20161121.907";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "flycheck-purescript";
+          rev = "60087203dfc9a1338a77c5d621480eac6f0426e1";
+          sha256 = "00iyy7gfhxyz4zna423c6y4wyx0rcd6kd1z50s22bi31bya9w8k1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-purescript";
+          sha256 = "05j1iscyg9khw0zq63676zrisragklxp48hmbc7vrbmbiy964lwd";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck let-alist seq ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-purescript";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pycheckers = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-pycheckers";
+        ename = "flycheck-pycheckers";
+        version = "20181114.1239";
+        src = fetchFromGitHub {
+          owner = "msherry";
+          repo = "flycheck-pycheckers";
+          rev = "73f348b68532c856a32e3c962ebbee14f7b6c059";
+          sha256 = "0v6nwhp4fyjk1j5jyz7qs819dxai633gz9m6r33kfa2jnijbsan2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pycheckers";
+          sha256 = "18ski3bp8x33589pc273i5ia3hffvlb4czrd97wkfgr4k59ww6yq";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pycheckers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pyflakes = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-pyflakes";
+        ename = "flycheck-pyflakes";
+        version = "20170330.1611";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "flycheck-pyflakes";
+          rev = "61b045939e3743b2162b7e4e73249c66fc2b8f65";
+          sha256 = "03p0666vpprp6ijkvx9ypaw58bdq42gh533270plv2k5l8r22cl1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pyflakes";
+          sha256 = "186h5ky48i1xmjbvvhn1i0rzhsy8bgdv1d8f7rlr2z4brb52f9c1";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pyflakes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pyre = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-pyre";
+        ename = "flycheck-pyre";
+        version = "20181013.1855";
+        src = fetchFromGitHub {
+          owner = "linnik";
+          repo = "flycheck-pyre";
+          rev = "8b14688df52de9f2d8f8ddcb9bc6f2b44bc8e70c";
+          sha256 = "0zw76znq80bxa6imn5nyzdpwn3fa0wsm3jfdaayllkqix6x6igvk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pyre";
+          sha256 = "0h7ccxw9ymlmr2vq3p61cbfxfcjs8pzm73654s13c18rbl6dzfxv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pyre";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-rebar3 = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-rebar3";
+        ename = "flycheck-rebar3";
+        version = "20180806.1403";
+        src = fetchFromGitHub {
+          owner = "joedevivo";
+          repo = "flycheck-rebar3";
+          rev = "3cca1268c54643204b5bae52e3f0bf5bc921018c";
+          sha256 = "19jfzswli21zqffig0946y0zv9ringhsgg6g6av1rnpq716fhp6h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-rebar3";
+          sha256 = "1ml9k61n5vy4c2q6c10q9j10ky0iqkinx21bl7hip1r6b5b1kmmc";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-rebar3";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-rtags = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild
+                                  , rtags }:
+      melpaBuild {
+        pname = "flycheck-rtags";
+        ename = "flycheck-rtags";
+        version = "20180619.124";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "5dbb594a7202c4a2e84329cf821bd28bfbea5ae3";
+          sha256 = "0x210bqv7618g85nzjy4x9gy31qcbjgppmk8zbpmqk59f2bp7bac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-rtags";
+          sha256 = "00v6shfs7piqapmyqyi0fk3182rcfa3p8wr2cm5vqlrana13kbw4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-rust = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , let-alist
+                                 , lib
+                                 , melpaBuild
+                                 , seq }:
+      melpaBuild {
+        pname = "flycheck-rust";
+        ename = "flycheck-rust";
+        version = "20180904.417";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-rust";
+          rev = "f1220ccd9acbdb2556765f49f2f3dcb00dca2970";
+          sha256 = "1m5ic4xapyansyifs8rrjdw2l9l4wnvmc51aflflmj7c13f0lvwr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-rust";
+          sha256 = "1k0n0y6lbp71v4465dwq7864vp1qqyx7zjz0kssszcpx5gl1596w";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck let-alist seq ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-rust";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-soar = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-soar";
+        ename = "flycheck-soar";
+        version = "20181106.52";
+        src = fetchFromGitHub {
+          owner = "tszg";
+          repo = "flycheck-soar";
+          rev = "d2f03a0af9b625a645f3194dc24cfeee94d92760";
+          sha256 = "02ll2nw2x45nfmxdj1ps62jr663spy01vy8gfg1qh2rl1pjviwqw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-soar";
+          sha256 = "14xpq3pdfwacmhl9x8fdzcsanpf6zljdzh6gwclw724k720acbdl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-soar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-stack = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , haskell-mode
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-stack";
+        ename = "flycheck-stack";
+        version = "20160520.244";
+        src = fetchFromGitHub {
+          owner = "chrisdone";
+          repo = "flycheck-stack";
+          rev = "f04235e00998000ee2c305f5a3ee72bb5dbbc926";
+          sha256 = "139q43ldvymfxns8zv7gxasn3sg0rn4i9yz08wgk50psg5zq5mjr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-stack";
+          sha256 = "1r9zppqmp1i5i06jhkrgvwy1p3yc8kmcvgibricydqsij26lhpmf";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-stack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-status-emoji = callPackage ({ cl-lib ? null
+                                         , emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , flycheck
+                                         , let-alist
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-status-emoji";
+        ename = "flycheck-status-emoji";
+        version = "20180330.1625";
+        src = fetchFromGitHub {
+          owner = "liblit";
+          repo = "flycheck-status-emoji";
+          rev = "61e93ac41847d27b8eea3a334ced2d1783687b77";
+          sha256 = "104zz9fihvd5klzdcaxsdmmfp0q5qisq5bbff48rfwdxnlp8dskr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-status-emoji";
+          sha256 = "0p42424b1fsmfcjyl252vhblppmpjwd6br2yqh10fi60wmprvn2p";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs flycheck let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-status-emoji";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-swift = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-swift";
+        ename = "flycheck-swift";
+        version = "20170128.2149";
+        src = fetchFromGitHub {
+          owner = "swift-emacs";
+          repo = "flycheck-swift";
+          rev = "c6c416a1b7a7d346e5c040e4e4065abc68d3a844";
+          sha256 = "0wa60i99jh0dsks30jssg7l17bcmr6jzkwmkjg8brl756p593zp5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-swift";
+          sha256 = "1s6rn4wyz9la6bw228jfxx8dxjyk5hf8r3vbmq0k808p772zki0z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-swift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-swift3 = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-swift3";
+        ename = "flycheck-swift3";
+        version = "20181116.402";
+        src = fetchFromGitHub {
+          owner = "GyazSquare";
+          repo = "flycheck-swift3";
+          rev = "37994f11c93f585119647e6ba10761e9766b593d";
+          sha256 = "12611z7f53pw0yn70m40nsp6qd2jpm2hdf8s2gqz4lf0qh2z91lb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-swift3";
+          sha256 = "05yfrn42svcvdkr8mx16ii8llhzn33lxdawksjqiqg671s6fgdpa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-swift3";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-swiftlint = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , flycheck
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-swiftlint";
+        ename = "flycheck-swiftlint";
+        version = "20180829.2040";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "flycheck-swiftlint";
+          rev = "65101873c4c9f8e7eac9471188b161eeddda1555";
+          sha256 = "007n0jv5z159pw5bcqcycv6h31rl0z16m22yrhqi94yc14jlw5ma";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-swiftlint";
+          sha256 = "1nwxv4l3ml9hlc8qf8a8x1bnnvdj80sb8nfbkcfiqwak315wihr4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-swiftlint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-tcl = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-tcl";
+        ename = "flycheck-tcl";
+        version = "20180327.559";
+        src = fetchFromGitHub {
+          owner = "nwidger";
+          repo = "flycheck-tcl";
+          rev = "7ca23f4673e178b9f5dcc8a82b86cf05b15d7236";
+          sha256 = "17mmj0yx7d7cwyq35ll1lw4j0yyha172375apvanrkpgpzjpnvrq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-tcl";
+          sha256 = "0rmc7rk0n4mgk11jgza1dn1nkjyi7rqs79d3p0cj1081znyj56f3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-tcl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-tip = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , lib
+                                , melpaBuild
+                                , popup }:
+      melpaBuild {
+        pname = "flycheck-tip";
+        ename = "flycheck-tip";
+        version = "20171020.348";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "flycheck-tip";
+          rev = "a8ea6c905e8ad2d0684a17f7e78ba11e8598e85d";
+          sha256 = "12igqdgy93s02mv9zik5x98x3dzk654w6j6n2mkbzipfgfwq6nms";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-tip";
+          sha256 = "0zab1zknrnsw5xh5pwzzcpz7p40bbywkf9zx99sgsd6b5j1jz656";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck popup ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-title = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-title";
+        ename = "flycheck-title";
+        version = "20170216.1546";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "flycheck-title";
+          rev = "6faea67be8661faf8152217869d16e993cc2bc49";
+          sha256 = "08b2cq5bzmq9aa8b8glx5js2nhfpgdsd0r2sgvi0ij937yz8lf37";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-title";
+          sha256 = "1cxid9qmzy8pl8qkvr6kgvfqm05pjw8cxpz66x619hbkw2vr7sza";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-title";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-vale = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , let-alist
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-vale";
+        ename = "flycheck-vale";
+        version = "20180928.42";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "flycheck-vale";
+          rev = "131dacdf55e2b469d64543e4ae373aa93ec40a4f";
+          sha256 = "07927h7d8qpf7wi6ish8lh15x414qz4298bik3p7vgls7qr8di4h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-vale";
+          sha256 = "1ny30q81hq62s178rj3jjwsf9f3988dd6pl82r0vq53z3asnsxyd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-vale";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-vdm = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , lib
+                                , melpaBuild
+                                , vdm-mode }:
+      melpaBuild {
+        pname = "flycheck-vdm";
+        ename = "flycheck-vdm";
+        version = "20181108.1222";
+        src = fetchFromGitHub {
+          owner = "peterwvj";
+          repo = "vdm-mode";
+          rev = "d8e1ce912f5c771ef372f04afa9b2d5cd037ed3c";
+          sha256 = "14s6z1xs2v8j2iyw26d3xqlfyvmywz33f6497k76jnly31nvi7yz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-vdm";
+          sha256 = "15ng1l8gfp8iz50yb5d39dy57763gd2x8j6z6rz0byiykgxhl9zg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck vdm-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-vdm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-xcode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-xcode";
+        ename = "flycheck-xcode";
+        version = "20180121.2251";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "flycheck-xcode";
+          rev = "6147ab777e2c08e4f5ffdbd85d3013ca700fa835";
+          sha256 = "1jwd7xhg7gfjppimf1kxwxwsgzkqc8w86wgp7kqphp79ydd4jgp8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-xcode";
+          sha256 = "0n86hn6rf0mrx1385pwxgkx28xrbnksarlzb07h9d63s0yb5shaa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-xcode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-yamllint = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-yamllint";
+        ename = "flycheck-yamllint";
+        version = "20170325.1035";
+        src = fetchFromGitHub {
+          owner = "krzysztof-magosa";
+          repo = "flycheck-yamllint";
+          rev = "110d310fae409e1869b82c34e60936bd3783dc69";
+          sha256 = "0xfmnwmc26wzfw1r4q70yxzm9qqvcpxx953pvssavrxfyg3bdgf4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-yamllint";
+          sha256 = "1q2sy0hsbnwdlwq99wk8n5gi9fd8bs4jvi859np8bylbhhb3kj8m";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-yamllint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-yang = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild
+                                 , yang-mode }:
+      melpaBuild {
+        pname = "flycheck-yang";
+        ename = "flycheck-yang";
+        version = "20180312.1131";
+        src = fetchFromGitHub {
+          owner = "andaru";
+          repo = "flycheck-yang";
+          rev = "47881fc42ef0163c47064b72b5d6dbef4f83d778";
+          sha256 = "0bkbl1pas44bl6s3xjdb5zjbd6bmfjk39md5ds1ix4wchnkjm3iy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-yang";
+          sha256 = "0agfmirjwlz13aq1jh94agav0y1rxkyhj7mngdgys7mwjxy0ac9h";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck yang-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-yang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-ycmd = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , let-alist
+                                 , lib
+                                 , melpaBuild
+                                 , ycmd }:
+      melpaBuild {
+        pname = "flycheck-ycmd";
+        ename = "flycheck-ycmd";
+        version = "20181015.2318";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-ycmd";
+          rev = "ef87d020d3314efbac2e8925c115d0ac5c128c2a";
+          sha256 = "143xc0ji8s3par4jfz8fxwrxqwfhndc1w8vrzpsycxc36mryzy26";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-ycmd";
+          sha256 = "114k5y3jy470g5zzhxy03036gcayc08n6g61cidlr2zlyq80glyr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck let-alist ycmd ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-ycmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-coffee = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flymake-easy
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-coffee";
+        ename = "flymake-coffee";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-coffee";
+          rev = "dee295acf30820ed15fe0de17137d50bc27fc80c";
+          sha256 = "0706jbi3jcmffxmcpvh8w3007q8sh48kgrcjip5c9hhfqpagayld";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-coffee";
+          sha256 = "1aig1d4fgjdg31vrg8k43z5hbqiydgfvxi45p1695s3kbdm8pr2d";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-coffee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-cppcheck = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , flymake-easy
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-cppcheck";
+        ename = "flymake-cppcheck";
+        version = "20140415.557";
+        src = fetchFromGitHub {
+          owner = "senda-akiha";
+          repo = "flymake-cppcheck";
+          rev = "9554f504d425a04fa6a875f7e3179bc7cf07dd03";
+          sha256 = "1dlxn8hhz3gfrhvkwhlxjmby6zc0g8yy9n9j9dn8c4cbi2fhyx5m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-cppcheck";
+          sha256 = "11brzgq2zl32a8a2dgj2imsldjqaqvxwk2jypf4bmfwa3mkcqh3d";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-cppcheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-css = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , flymake-easy
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-css";
+        ename = "flymake-css";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-css";
+          rev = "de090163ba289910ceeb61b13368ce42d0f2dfd8";
+          sha256 = "18rqzah8p7mqwkddaav1d4r146amvn8jppazvsvc5vs01syj83m9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-css";
+          sha256 = "0kqm3wn9symqc9ivnh11gqgq8ql2bhpqvxfm86d8vwm082hd92c5";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-css";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-cursor = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flymake ? null
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-cursor";
+        ename = "flymake-cursor";
+        version = "20120322.1057";
+        src = fetchFromGitHub {
+          owner = "flymake";
+          repo = "emacs-flymake-cursor";
+          rev = "5cac5045398b1436ceb143d48961b50d38ae1396";
+          sha256 = "0xaq8zfd90kqqwg8ik081jblrdyj6p3fh2xpf6a4sdj8826ry93v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-cursor";
+          sha256 = "0v5abg3h9kmybr0cyr7hqy4rn88h84snzxbsmqcbjw24s10v9p0s";
+          name = "recipe";
+        };
+        packageRequires = [ flymake ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-cursor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-easy = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-easy";
+        ename = "flymake-easy";
+        version = "20140818.55";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-easy";
+          rev = "09deafbcb5f094de8465c2bbfe270ba0f517f515";
+          sha256 = "1ld0g3hrbplmw3xgg6jg032hncnlxyc3hid4vn38lkcj3y7ls61b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-easy";
+          sha256 = "0y7nm2p5x1f0nqfj73zr6xzbpf4wrzx8sn8154yx0qm0qh3id39v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-easy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-elixir = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-elixir";
+        ename = "flymake-elixir";
+        version = "20130810.717";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "flymake-elixir";
+          rev = "3810566cffe35d04cc3f01e27fe397d68d52f802";
+          sha256 = "04w6g4wixrpfidxbk2bwazhvf0cx3c2v2mxnycqqlqkg0m0sb0fn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-elixir";
+          sha256 = "15r3m58hnc75l3j02xdr8yg25fbn2sbz1295ac44widzis82m792";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-elixir";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-gjshint = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-gjshint";
+        ename = "flymake-gjshint";
+        version = "20130327.532";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "flymake-gjshint-el";
+          rev = "71495ee5303de18293decd57ab9f9abdbaabfa05";
+          sha256 = "002s01cymgx4z4l3j2pqirg7899pljdx2hmbz8k6cksdxlymzmkd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-gjshint";
+          sha256 = "19jcd5z4883z3fzlrdn4fzmsvn16f4hfnhgw4vbs5b0ma6a8ka44";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-gjshint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-go = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-go";
+        ename = "flymake-go";
+        version = "20150714.33";
+        src = fetchFromGitHub {
+          owner = "robert-zaremba";
+          repo = "flymake-go";
+          rev = "ae83761aa908c1a50ff34af04f00dcc46bca2ce9";
+          sha256 = "03gh0y988pksghmmvb5av2vnlbcsncafvn4nwihsis0bhys8k28q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-go";
+          sha256 = "030m67d8g60ljm7ny3jh4vwj3cshypsklgbjpcvh32y109ga1hy1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-go";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-google-cpplint = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , flymake-easy
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-google-cpplint";
+        ename = "flymake-google-cpplint";
+        version = "20140205.525";
+        src = fetchFromGitHub {
+          owner = "senda-akiha";
+          repo = "flymake-google-cpplint";
+          rev = "5d36ff947d4cdcc3ac5e7f48e543fe0be949ba72";
+          sha256 = "18a7l1wmgxqqzr9mzg5rb9626rwyifmiw34chg9jchfkm8wbz0fv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-google-cpplint";
+          sha256 = "0q7v70xbprh03f1yabq216q4q82a58s2c1ykr6ig49cg1jdgzkf3";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-google-cpplint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-gradle = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-gradle";
+        ename = "flymake-gradle";
+        version = "20180923.1900";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "flymake-gradle";
+          rev = "812f2ecf93781b0c152cd278f9cb5a6b662d66bf";
+          sha256 = "1dns1k0jp8av9yx5d3061x82f0kfm6a2gkax954l7f03mhiyxmww";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-gradle";
+          sha256 = "00wpymzw2j2zx37nq8qf77pk04r0hxlmlwykcj6yzq9bfgi75wnf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-gradle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-haml = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-haml";
+        ename = "flymake-haml";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-haml";
+          rev = "22a81e8484734552d461e7ae7305664dc244447e";
+          sha256 = "0pgp2gl3wdwrzcik5b5csn4qp8iv6pc51brx8p7jrwn7bz4lkb82";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-haml";
+          sha256 = "0dmdhh12h4xrx6mc0qrwavngk2sx0l4pfqkjjyavabsgcs9wlgp1";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-haml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-haskell-multi = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , flymake-easy
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-haskell-multi";
+        ename = "flymake-haskell-multi";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-haskell-multi";
+          rev = "b564a94312259885b1380272eb867bf52a164020";
+          sha256 = "1h21hy5fjwa5qxl31rq3jjp3wwkipdwaliq0ci184rw48kw51xjh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-haskell-multi";
+          sha256 = "0cyzmmghwkkv6020s6n436lwymi6dr49i7gkci5n0hw5pdywcaij";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-haskell-multi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-hlint = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flymake-easy
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-hlint";
+        ename = "flymake-hlint";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-hlint";
+          rev = "f910736b26784efc9a2fa29503f45c1f1dd0aa38";
+          sha256 = "157f2l6hllwl12h8f502rq2kl33s202k9bcyfy2cmnn6vhky1b8s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-hlint";
+          sha256 = "0wq1ijhn3ypy31yk8jywl5hnz0r0vlhcxjyznzccwqbdc5vf7b2x";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-hlint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-jshint = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flymake-easy
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-jshint";
+        ename = "flymake-jshint";
+        version = "20140319.1500";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "flymake-jshint.el";
+          rev = "79dd554c227883c487db38ac111306c8d5382c95";
+          sha256 = "0ywm9fpb7d7ry2fly8719fa41q97yj9za3phqhv6j1chzaxvcv3a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-jshint";
+          sha256 = "0j4djylz6mrq14qmbm35k3gvvsw6i9qc4gd9ma4fykiqzkdjsg7j";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-jshint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-jslint = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flymake-easy
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-jslint";
+        ename = "flymake-jslint";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-jslint";
+          rev = "8edb82be605542b0ef62d38d818adcdde335eecb";
+          sha256 = "0i6bqpbibsbqhpqfy9zl0awiqkmddi3q8xlrslcjd429f0g5f1ad";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-jslint";
+          sha256 = "1cq8fni4p0qhigx0qh34ypmcsbnilra1ixgnrn9mgg8x3cvcm4cm";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-jslint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-json = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-json";
+        ename = "flymake-json";
+        version = "20180511.211";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-json";
+          rev = "ae58795f948402e987cda4c15f10354f8ec2d0fd";
+          sha256 = "1hr35xxj6w34h7xs13n6sxs69j3z3i0r1qim3hgyiym797xjsa0p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-json";
+          sha256 = "1p5kajiycpqy2id664bs0fb1mbf73a43qqfdi4c57n6j9x7fxp4d";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-json";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-ktlint = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-ktlint";
+        ename = "flymake-ktlint";
+        version = "20180830.2046";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "flymake-ktlint";
+          rev = "bea8bf350802c06756efd4e6dfba65f31dc41d78";
+          sha256 = "0sycdd3har8rxg8jm55nl25g8f41y3rsnsn4sblb7pbz5x5i6ixc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-ktlint";
+          sha256 = "07v90pkhmrz59m6hf1lzxq4h3kk4qblihw4qgz5phbj4l5pahivd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-ktlint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-less = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , less-css-mode
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-less";
+        ename = "flymake-less";
+        version = "20151110.2338";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-less";
+          rev = "32d3c28a9a5c52b82d1741ff9d715013b6498421";
+          sha256 = "0ggi8a4j4glpsar0sqg8q06rscajjaziis5ann31wphx88rc5wd7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-less";
+          sha256 = "05k5daphxy94164c73ia7f4l1gv2cmlw8xzs8xnddg7ly22gjhi0";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy less-css-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-less";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-lua = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-lua";
+        ename = "flymake-lua";
+        version = "20170128.1754";
+        src = fetchFromGitHub {
+          owner = "sroccaserra";
+          repo = "flymake-lua";
+          rev = "dcc32b62a285215898ae774ba63dbda0656f6f53";
+          sha256 = "07my1w3cdj9iq2f9jfh04m5zivig7b97kha3ajjlx9avss976baq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-lua";
+          sha256 = "05q6bifr1ywirk6sdn0pr812nlrzsi79bpbgn6ay4jyzmhhfi9z0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-lua";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-perlcritic = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , flymake ? null
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-perlcritic";
+        ename = "flymake-perlcritic";
+        version = "20120328.114";
+        src = fetchFromGitHub {
+          owner = "flymake";
+          repo = "emacs-flymake-perlcritic";
+          rev = "0692d6ad5495f6e5438bde0a10345829b8e1def8";
+          sha256 = "11r982h5fhjkmm9ld8wfdip0ghinw523nm1w4fmy830g0bbkgkrq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-perlcritic";
+          sha256 = "1i0bc81cby2nsala2mhghzv7clhbf1gpp54vdxiq2wdanqy25vmk";
+          name = "recipe";
+        };
+        packageRequires = [ flymake ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-perlcritic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-php = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , flymake-easy
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-php";
+        ename = "flymake-php";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-php";
+          rev = "c045d01e002ba5e09b05f40e25bf5068d02126bc";
+          sha256 = "03fk8kzlwbs9k91ra91r7djxlpv5mhbha33dnyz50sqwa52cg8ck";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-php";
+          sha256 = "12ds2l5kvs7fz38syp4amasbjkpqd36rlpajnb3xxll0hbk6vffk";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-php";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-phpcs = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flymake-easy
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-phpcs";
+        ename = "flymake-phpcs";
+        version = "20140712.2331";
+        src = fetchFromGitHub {
+          owner = "senda-akiha";
+          repo = "flymake-phpcs";
+          rev = "a4d383474e055e554aaf1cd617055d5d7181aa50";
+          sha256 = "140rlp6m0aqibwa0bhv8w6l3giziybqdw7x271nq8f3r60ch13bi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-phpcs";
+          sha256 = "0zzxi3c203fiw6jp1ar9bb9f28x2lg23bczgy8n5cicrq59jfsn9";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-phpcs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-puppet = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flymake-easy
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-puppet";
+        ename = "flymake-puppet";
+        version = "20170731.2254";
+        src = fetchFromGitHub {
+          owner = "benprew";
+          repo = "flymake-puppet";
+          rev = "9579e5c736cb890195464fabf51df113313de88d";
+          sha256 = "1bk16l8rbvrwmcd0zd2yg8xmfn7b036716niy21wfizmar0pk7p7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-puppet";
+          sha256 = "1izq6s33p74dy4wzfnjii8wjs723bm5ggl0w6hkvzgbmyjc01hxv";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-puppet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-python-pyflakes = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , flymake-easy
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-python-pyflakes";
+        ename = "flymake-python-pyflakes";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-python-pyflakes";
+          rev = "1d65c26bf65a5dcbd29fcd967e2feb90e1e7a33d";
+          sha256 = "0hsvw6rxg3k1ymrav0bf5q3siqr9v2jp4c4h1f98szrj2lp200fm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-python-pyflakes";
+          sha256 = "0asbjxv03zkbcjayanv13qzbv4z7b6fi0z1j6yv7fl6q9mgvm497";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-python-pyflakes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-racket = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-racket";
+        ename = "flymake-racket";
+        version = "20180911.1809";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "flymake-racket";
+          rev = "7900d9c1a34a55ca281cc997e9620f5f31cc098c";
+          sha256 = "10iygb5wmdqc2fk398l918bz56myd858h6xvgd8ml1av7v5x3zmp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-racket";
+          sha256 = "173dyn8bxggyh0g97gg5f0si3905116i3k6s3islsblgrz00gjcn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-racket";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-ruby = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-ruby";
+        ename = "flymake-ruby";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-ruby";
+          rev = "6c320c6fb686c5223bf975cc35178ad6b195e073";
+          sha256 = "0hzyxhg6y1rknvgj2ycivwrlrw7fznw9jrin5n9z627mzpjpfcnk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-ruby";
+          sha256 = "1shr6d03vx85nmyxnysglzlc1pz0zy3n28nrcmxqgdm02g197bzr";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-rust = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-rust";
+        ename = "flymake-rust";
+        version = "20170729.1439";
+        src = fetchFromGitHub {
+          owner = "jxs";
+          repo = "flymake-rust";
+          rev = "2f42d1f2dad73ec9de460eda6176e3ab25c446f0";
+          sha256 = "02fgkv9hxwrv8n5h6izb5jyjcpazlf86pjjj4zkv1ycpa6gyzzwn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-rust";
+          sha256 = "0fgpkz1d4y2ywizwwrhqdqncdmhdnbgf3mcv3hjpa82x44yb7j32";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-rust";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-sass = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-sass";
+        ename = "flymake-sass";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-sass";
+          rev = "2de28148e92deb93bff3d55fe14e7c67ac476056";
+          sha256 = "05v83l05knqv2inharmhjvzmjskjlany7dnwp5dz44bvy0jhnm39";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-sass";
+          sha256 = "0sz6n5r9pdphgvvaljg9zdwj3dqayaxzxmb4s8x4b05c8yx3ba0d";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-sass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-shell = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flymake-easy
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-shell";
+        ename = "flymake-shell";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-shell";
+          rev = "a16cf453056b9849cc7c912bb127fb0b08fc6dab";
+          sha256 = "1ki0zk5ijfkf4blavl62b55jnjzxw2b7blaxg51arpvvbflqmmlh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-shell";
+          sha256 = "13ff4r0k29yqgx8ybxz7hh50cjsadcjb7pd0075s9xcrzia5x63i";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-shell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-shellcheck = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-shellcheck";
+        ename = "flymake-shellcheck";
+        version = "20180830.445";
+        src = fetchFromGitHub {
+          owner = "federicotdn";
+          repo = "flymake-shellcheck";
+          rev = "d56607235bb2b0a08920c326702fea0724f118a7";
+          sha256 = "14jb789sn9najrkvwp5v3pjfq5va192wmc5zf86ni0am2856z3pl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-shellcheck";
+          sha256 = "1gvm4sh1sga3gkkg0zi7ynvp9b09sx16cclj2qzawmgfv2c111vy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-shellcheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-solidity = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , flymake-easy
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-solidity";
+        ename = "flymake-solidity";
+        version = "20170804.2344";
+        src = fetchFromGitHub {
+          owner = "kootenpv";
+          repo = "flymake-solidity";
+          rev = "48bfe9525f764d8a68cc0270905dbf45bfd00bb8";
+          sha256 = "0v8sf5m0mygqahjyadxgffdf7p59wb0qnghyxajhc69sbg58hnnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-solidity";
+          sha256 = "10d1g14y3l670lqgfdsnyxanzcjs2jpgnliih56n1xhcpyz551l3";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-solidity";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-vala = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-vala";
+        ename = "flymake-vala";
+        version = "20150325.2231";
+        src = fetchFromGitHub {
+          owner = "daniellawrence";
+          repo = "flymake-vala";
+          rev = "c3674f461fc84fb0300cd3a562fb903a59782745";
+          sha256 = "0qpr0frcn3w0f6yz8vgavwbxvn6wb0qkfk653v4cfy57dvslr4wf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-vala";
+          sha256 = "1fs4alyf3dckdf1pm6vgh4wjpl22wrlhfx9nv072l0dg48zgyw16";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-vala";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-yaml = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-yaml";
+        ename = "flymake-yaml";
+        version = "20130423.848";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "flymake-yaml";
+          rev = "0dd11eed29fe4054ff5b4e06e2c39b4d925d6aae";
+          sha256 = "1z6x4hkawjpch73lz2g4wcab1pbhg43wp8pmfcnnljy6jp3bmy2b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-yaml";
+          sha256 = "17wghm797np4hlidf3wwb47w4klwc6qyk6ry1z05psl3nykws1g7";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-yaml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymd = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "flymd";
+        ename = "flymd";
+        version = "20160617.514";
+        src = fetchFromGitHub {
+          owner = "mola-T";
+          repo = "flymd";
+          rev = "84d5a68bcfed4a295952c33ffcd11e880978d9d7";
+          sha256 = "0j2mmr9f0d3zkhb92zc820iw4vkz958rm3ca7l9k3gx37cc4sn2l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymd";
+          sha256 = "16wq34xv7hswbxw5w9wnnsw2mhc9qzhmaa6aydhh32blcszhp4rk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/flymd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyparens = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "flyparens";
+        ename = "flyparens";
+        version = "20140723.1146";
+        src = fetchFromGitHub {
+          owner = "jiyoo";
+          repo = "flyparens";
+          rev = "af9b8cfd647d0e5f97684d613dc2eea7cfc19398";
+          sha256 = "07hy1kyw4cbxydmhp4scsy3dcbk2s50rmdp8rch1vbcjk5lj4mvb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyparens";
+          sha256 = "1mvbfq062qj8vmgzk6rymg3idlfc1makfp1scmjvpw98h30j2a0a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flyparens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-correct = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flyspell-correct";
+        ename = "flyspell-correct";
+        version = "20181106.1";
+        src = fetchFromGitHub {
+          owner = "d12frosted";
+          repo = "flyspell-correct";
+          rev = "204f145678df5e34a48ea3beae888a1bd6809974";
+          sha256 = "0p74jzqp09r04ag7g2xjp1b1ngpbxiif9zgyr3bffqbr7a7dl5cw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-correct";
+          sha256 = "0d2205h234na9s942s83yvkq89l9w9jnl5yfrxkkdiq8pw0dvymd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-correct";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-correct-helm = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , flyspell-correct
+                                         , helm
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "flyspell-correct-helm";
+        ename = "flyspell-correct-helm";
+        version = "20180927.2204";
+        src = fetchFromGitHub {
+          owner = "d12frosted";
+          repo = "flyspell-correct";
+          rev = "a9b53c52ab350aead0851e140d813cfd7b1bd680";
+          sha256 = "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-correct-helm";
+          sha256 = "18s2bzszy6x31avqg7j2lsll2cf4asb8njwhmx4mm215agack976";
+          name = "recipe";
+        };
+        packageRequires = [ flyspell-correct helm ];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-correct-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-correct-ivy = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , flyspell-correct
+                                        , ivy
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "flyspell-correct-ivy";
+        ename = "flyspell-correct-ivy";
+        version = "20180929.631";
+        src = fetchFromGitHub {
+          owner = "d12frosted";
+          repo = "flyspell-correct";
+          rev = "bd0acb8f5b17e11340a56fce7983b06a484d3c45";
+          sha256 = "1qxj5ivld5v69brcj1h66zj748j716p9dkd6jxn40p1mi945fgbv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-correct-ivy";
+          sha256 = "1n5iyab6bj761w6vxncyqvqzwh9k60pzq5f2n00ifrz74pqs537i";
+          name = "recipe";
+        };
+        packageRequires = [ flyspell-correct ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-correct-ivy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-correct-popup = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , flyspell-correct
+                                          , lib
+                                          , melpaBuild
+                                          , popup }:
+      melpaBuild {
+        pname = "flyspell-correct-popup";
+        ename = "flyspell-correct-popup";
+        version = "20180927.2204";
+        src = fetchFromGitHub {
+          owner = "d12frosted";
+          repo = "flyspell-correct";
+          rev = "a9b53c52ab350aead0851e140d813cfd7b1bd680";
+          sha256 = "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-correct-popup";
+          sha256 = "1fr8ajwldcl58i8xm31dz1mjwbi9f4q8s58x5jrqhqha0x4p4h9l";
+          name = "recipe";
+        };
+        packageRequires = [ flyspell-correct popup ];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-correct-popup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-lazy = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flyspell-lazy";
+        ename = "flyspell-lazy";
+        version = "20180224.1306";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "flyspell-lazy";
+          rev = "3ebf68cc9eb10c972a2de8d7861cbabbbce69570";
+          sha256 = "1n67y90vm041mz172gjqypw3b5za5f18sic54h7wz4a9naynwyb6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-lazy";
+          sha256 = "0lzazrhsfh5m7n57dzx0v46d5mg87wpwwkjzf5j9gpv1mc1xfg1y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-lazy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-popup = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , popup }:
+      melpaBuild {
+        pname = "flyspell-popup";
+        ename = "flyspell-popup";
+        version = "20170529.115";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "flyspell-popup";
+          rev = "29311849bfd253b9b689bf331860b4c4d3bd4dde";
+          sha256 = "0x7jilwb0fgzsr7ma59sgd0d4122cl0hwzr28vi3z5s8wdab7nc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-popup";
+          sha256 = "0wp15ra1ry6xpwal6mb53ixh3f0s4nps0rdyfli7hhaiwbr9bhql";
+          name = "recipe";
+        };
+        packageRequires = [ popup ];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-popup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fm-bookmarks = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "fm-bookmarks";
+        ename = "fm-bookmarks";
+        version = "20170104.916";
+        src = fetchFromGitHub {
+          owner = "kuanyui";
+          repo = "fm-bookmarks.el";
+          rev = "11dacfd16a926bfecba96a94c6b13e162c7717f7";
+          sha256 = "0is4617ivga8qrw19y7fy883fgczzdxvrl15ja1dydzj2cbn5d97";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fm-bookmarks";
+          sha256 = "12ami0k6rfwhrr6xgj0dls4mkk6dp0r9smwzhr4897dv0lw89bdj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fm-bookmarks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fn = callPackage ({ cl-lib ? null
+                      , dash
+                      , dash-functional
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "fn";
+        ename = "fn";
+        version = "20170209.1804";
+        src = fetchFromGitHub {
+          owner = "troyp";
+          repo = "fn.el";
+          rev = "fe65dc654d319e6fa9cef4d7eca0f8dd847b6a32";
+          sha256 = "1j2rrwizafwramlzrjcsfv8xbz72qmiaa120cb1ri8wp6nyvhys0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fn";
+          sha256 = "0cb98rxdb6sd0kws6bc4pa536kiyw3yk0hlfqcm3ps81hcgqjhhn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash dash-functional emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    focus = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "focus";
+        ename = "focus";
+        version = "20171203.2103";
+        src = fetchFromGitHub {
+          owner = "larstvei";
+          repo = "Focus";
+          rev = "045ee6175e9340f873db03445c74ff9eefa35a27";
+          sha256 = "1hrx8bj4gf0dqbfxgvis62zxnkiyms6v730s55vd8711zxdl0pw4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/focus";
+          sha256 = "0jw26j8npyl3dgsrs7ap2djxmkafn2hl6gfqvi7v76bccs4jkyv8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/focus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    focus-autosave-mode = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "focus-autosave-mode";
+        ename = "focus-autosave-mode";
+        version = "20160519.1416";
+        src = fetchFromGitHub {
+          owner = "Vifon";
+          repo = "focus-autosave-mode.el";
+          rev = "e89ed22aa4dfc76e1b844b202aedd468ad58814a";
+          sha256 = "1c1mh96kghp5d22assm9kzxlp0cy7bws9yrqwwgaw3d72cba40k3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/focus-autosave-mode";
+          sha256 = "10cd1x5b1w7apgxd2kq45lv0jlj7az4zmn2iz4iymf2r2hancrcd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/focus-autosave-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    foggy-night-theme = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "foggy-night-theme";
+        ename = "foggy-night-theme";
+        version = "20160209.708";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "foggy-night-theme";
+          rev = "60a12abdac29c2d913e1cf24485d0cc083e26093";
+          sha256 = "1mnak9k0hz99jq2p7gydxajzvx2vcql8yzwcm0v80a6xji2whl70";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/foggy-night-theme";
+          sha256 = "03x3dhkk81d2zh9nflq6wd7v3khpy9046v8qhq4i9dw6davvy9j4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/foggy-night-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fold-dwim = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fold-dwim";
+        ename = "fold-dwim";
+        version = "20140208.837";
+        src = fetchFromGitHub {
+          owner = "emacsattic";
+          repo = "fold-dwim";
+          rev = "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b";
+          sha256 = "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fold-dwim";
+          sha256 = "1k5186s69qahwbzvwq70af3bkcglls9a82c5jw5mdw3ic8k631sh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fold-dwim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fold-dwim-org = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , fold-dwim
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "fold-dwim-org";
+        ename = "fold-dwim-org";
+        version = "20131203.551";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "fold-dwim-org";
+          rev = "c09bb2b46d65afbd1d0febc6fded7495be7a3037";
+          sha256 = "14jvbkahwvv4wb0s9vp8gqmlpv1d4269j5rsjxn79q5pawjzslxw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fold-dwim-org";
+          sha256 = "0812p351rzvqcfn00k92nfhlg3y772y4z4b9f0xqnpa935y6harn";
+          name = "recipe";
+        };
+        packageRequires = [ fold-dwim ];
+        meta = {
+          homepage = "https://melpa.org/#/fold-dwim-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fold-this = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fold-this";
+        ename = "fold-this";
+        version = "20180828.636";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "fold-this.el";
+          rev = "49bdb7fe6a8f207afb1f05382372674a7c876ba8";
+          sha256 = "1h9afb019y1c488c2s6w7nas32b89lngrl7f90rd8i9ynm5lbvr0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fold-this";
+          sha256 = "1iri4a6ixw3q7qr803cj2ik7rvmww1b6ybj5q2pvkf1v25r8655d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fold-this";
+          license = lib.licenses.free;
+        };
+      }) {};
+    folding = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "folding";
+        ename = "folding";
+        version = "20170925.838";
+        src = fetchFromGitHub {
+          owner = "jaalto";
+          repo = "project-emacs--folding-mode";
+          rev = "3bf134fd1ecfa8767ab7020c25281ea5ce9968a2";
+          sha256 = "0kcm4k71syz778cbwqf68a63k4vmhygaib3ylwxbm5dq1dmr7iry";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/folding";
+          sha256 = "0rb4f4llc4z502znmmc0hfi7n07lp01msx4y1iyqijvqzlq2i93y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/folding";
+          license = lib.licenses.free;
+        };
+      }) {};
+    font-lock-profiler = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "font-lock-profiler";
+        ename = "font-lock-profiler";
+        version = "20170208.1208";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "font-lock-profiler";
+          rev = "6e096458416888a4f63cca0d6bc5965a052753c8";
+          sha256 = "186fvyfbakz54fr8j1l7cijvaklw96m1hfbjyw7nha08zc2m1hw5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/font-lock-profiler";
+          sha256 = "089r74jgi5gwjk9w1bc600vkj0p5ac84rgcl7aqcpqfbh9ylwcp9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/font-lock-profiler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    font-lock-studio = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "font-lock-studio";
+        ename = "font-lock-studio";
+        version = "20170127.1251";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "font-lock-studio";
+          rev = "12c35967b31233e06946c70627aa3152dacfe261";
+          sha256 = "0q0s6f5vi3sfifj7vq2nnsmgyyivp1sd3idk32858md5ri71qif0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/font-lock-studio";
+          sha256 = "0swwbfaypc78cg4ak24cc92kgxmr1x9vcpaw3jz4zgpm2wzbgmrq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/font-lock-studio";
+          license = lib.licenses.free;
+        };
+      }) {};
+    font-utils = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pcache
+                              , persistent-soft }:
+      melpaBuild {
+        pname = "font-utils";
+        ename = "font-utils";
+        version = "20150806.1051";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "font-utils";
+          rev = "9192d3f8ee6a4e75f34c3fed10378674cc2b11d3";
+          sha256 = "1k90w8v5rpswqb8fn1cc8sq5w12gf4sn6say5dhvqd63512b0055";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/font-utils";
+          sha256 = "0k33jdchjkj7j211a23kfp5axg74cfsrrq4axsb1pfp124swh2n5";
+          name = "recipe";
+        };
+        packageRequires = [ pcache persistent-soft ];
+        meta = {
+          homepage = "https://melpa.org/#/font-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fontawesome = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "fontawesome";
+        ename = "fontawesome";
+        version = "20170305.556";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-fontawesome";
+          rev = "a743f80bfd53767ca9ee32da34c5ca032172a480";
+          sha256 = "1mkyd2bbyd9avw2qaidkzkpv8i7lfiv9189bj49dxklg92823sip";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fontawesome";
+          sha256 = "07hn4s929xklc74j8s6pd61rxmxw3911dq47wql77vb5pijv6dr3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fontawesome";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fontify-face = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "fontify-face";
+        ename = "fontify-face";
+        version = "20180420.924";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "fontify-face";
+          rev = "fc3325c98427523d86f0b411e0515cec51ac3d8a";
+          sha256 = "1zfld9a17xhisfwhmfxvx1x63ksl6jg5g99kbivj4nq70sf26dpw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fontify-face";
+          sha256 = "1w7xlkladqkbh7gpnkbi53a7k9p5wzma4y9jgwbc58hng9ggm1k0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fontify-face";
+          license = lib.licenses.free;
+        };
+      }) {};
+    forecast = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "forecast";
+        ename = "forecast";
+        version = "20180429.1515";
+        src = fetchFromGitHub {
+          owner = "cadadr";
+          repo = "elisp";
+          rev = "ffe03506694c94de0444995f973a925deccc400a";
+          sha256 = "02wcvka96zdlq3myfar7dqywfil2b77bc6ydmgcphwn3as3kl08r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/forecast";
+          sha256 = "0zng8xdficpfccq484pghzg8yylihcy8aq0vpxd1w6l40m2qf6zn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/forecast";
+          license = lib.licenses.free;
+        };
+      }) {};
+    foreign-regexp = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "foreign-regexp";
+        ename = "foreign-regexp";
+        version = "20180224.321";
+        src = fetchFromGitHub {
+          owner = "k-talo";
+          repo = "foreign-regexp.el";
+          rev = "2ec5c44f27c2396ee487aa0ed77ae47d143fa5aa";
+          sha256 = "0zww0q8x99sfwzf05pk7blsi3v8xiw4xgmlwnv1qlf2qxjkz1xhb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/foreign-regexp";
+          sha256 = "189cq8n759f28nx10fn3w4qbq7q49bb788kp9l70pj38jgnjn7n7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/foreign-regexp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    foreman-mode = callPackage ({ dash
+                                , dash-functional
+                                , emacs
+                                , f
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "foreman-mode";
+        ename = "foreman-mode";
+        version = "20170725.722";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "foreman-mode";
+          rev = "22b3bb13134b617870ed1e888af739f4818be929";
+          sha256 = "01qanhif24czcmhpdfkcjs019ss4r79f7y2wfbzmj6w4z7g3rikk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/foreman-mode";
+          sha256 = "0p3kwbld05wf3dwcv0k6ynz727fiy0ik2srx4js9wvagy57x98kv";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/foreman-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    forest-blue-theme = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "forest-blue-theme";
+        ename = "forest-blue-theme";
+        version = "20160627.142";
+        src = fetchFromGitHub {
+          owner = "olkinn";
+          repo = "forest-blue-emacs";
+          rev = "58096ce1a25615d2bae806c3775bae3e2775019d";
+          sha256 = "1qm74cfnc13wgv0c3657nd3xbgn492r24m5m2i0ipnpq49cddccf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/forest-blue-theme";
+          sha256 = "1pcpwil883k4n5na7jpq7h8a8gw6mily1cj5n5rf25lqqnsz6fxa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/forest-blue-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    form-feed = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "form-feed";
+        ename = "form-feed";
+        version = "20160102.1453";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "form-feed";
+          rev = "799ca3e72b20a59a755a094b8cead57f654f3170";
+          sha256 = "0nj056x87gcpdqkgx3li5syp6wbj58a1mw2aqa48zflbqwyvs03i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/form-feed";
+          sha256 = "1abwjkzi3irw0jwpv3f584zc72my9n8iq8zp5s0354xk6iwrl1rh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/form-feed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    format-all = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "format-all";
+        ename = "format-all";
+        version = "20181108.121";
+        src = fetchFromGitHub {
+          owner = "lassik";
+          repo = "emacs-format-all-the-code";
+          rev = "76054ed7236f18737cca4566fe8be7257f58cd81";
+          sha256 = "0fc63qwc1sf472ixzc8assik2ssacpb4jgpw7160rwjcv51zrg0l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/format-all";
+          sha256 = "1kmnv8ypxvgm3p79cc1wk8032fh7bl1pripys180vw89r2748qs9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/format-all";
+          license = lib.licenses.free;
+        };
+      }) {};
+    format-sql = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "format-sql";
+        ename = "format-sql";
+        version = "20150422.633";
+        src = fetchFromGitHub {
+          owner = "paetzke";
+          repo = "format-sql.el";
+          rev = "97f475c245cd6c81a72a265678e2087cee66ac7b";
+          sha256 = "0mikksamljps1czacgqavlnzzhgs8s3f8q4jza6v3csf8kgp5zd0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/format-sql";
+          sha256 = "0684xqzs933vj9d3n3lv7afk4gii41kaqykbb05cribaswapsanj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/format-sql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    forth-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "forth-mode";
+        ename = "forth-mode";
+        version = "20170527.1230";
+        src = fetchFromGitHub {
+          owner = "larsbrinkhoff";
+          repo = "forth-mode";
+          rev = "522256d98d1a909983bcfd3ae20c65226d5929b6";
+          sha256 = "110ycl8zkimy2818rhp3hk3mn2y25m695shdsy6dwxnrv90agss6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/forth-mode";
+          sha256 = "0j60abi5qyy94f4as90zhmkb12jdirysdbq4ajs5h91vi6gb1g3i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/forth-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fortpy = callPackage ({ auto-complete
+                          , epc
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , pos-tip
+                          , python-environment }:
+      melpaBuild {
+        pname = "fortpy";
+        ename = "fortpy";
+        version = "20150715.1332";
+        src = fetchFromGitHub {
+          owner = "rosenbrockc";
+          repo = "fortpy-el";
+          rev = "c614517e9396ef7a78be3b8786fbf303879cf43b";
+          sha256 = "1nqx2igxmwswjcrnzdjpx5qcjr60zjy3q9cadq5disms17wdcr6y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fortpy";
+          sha256 = "1nn5vx1rspfsijwhilnjhiy0mjw154ds3lwxvkpwxpchygirlyxj";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete epc pos-tip python-environment ];
+        meta = {
+          homepage = "https://melpa.org/#/fortpy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fortune-cookie = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "fortune-cookie";
+        ename = "fortune-cookie";
+        version = "20170407.1517";
+        src = fetchFromGitHub {
+          owner = "andschwa";
+          repo = "fortune-cookie";
+          rev = "bad99a2cd090f6646c7ee1125b95dd98744939c6";
+          sha256 = "1kiflisiabc39lxi5hcazfvcwrpasl01lqsi2sri6pyrcrjyh8mf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fortune-cookie";
+          sha256 = "0xg0zk7hnyhnbhqpxnzrgqs5yz0sy6wb0n9982qc0pa6jqnl9z78";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fortune-cookie";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fountain-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "fountain-mode";
+        ename = "fountain-mode";
+        version = "20181011.143";
+        src = fetchFromGitHub {
+          owner = "rnkn";
+          repo = "fountain-mode";
+          rev = "6f2d72ecbe8d6cad637f3eac4de88dff469dd42c";
+          sha256 = "11gxi8q8qmw3n23swjnxyj0y1n8a8m4vplamp5pgyrppba232pqi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fountain-mode";
+          sha256 = "1i55gcjy8ycr1ww2fh1a2j0bchx1bsfs0zd6v4cv5zdgy7vw6840";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fountain-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fraktur-mode = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "fraktur-mode";
+        ename = "fraktur-mode";
+        version = "20160814.1927";
+        src = fetchFromGitHub {
+          owner = "grettke";
+          repo = "fraktur-mode";
+          rev = "514baf5546aed12a0d9fa0fe66e87cdcc7843b08";
+          sha256 = "169d9j7jk3li96fkn2sr257835flkcpml24l4bmzp8j3q57a7wxw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fraktur-mode";
+          sha256 = "0hy2cncbgpp7ysp7qwfpj0r075rxrc77bmc70bw7hf8m1xiw124k";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/fraktur-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    frame-local = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "frame-local";
+        ename = "frame-local";
+        version = "20180330.240";
+        src = fetchFromGitHub {
+          owner = "sebastiencs";
+          repo = "frame-local";
+          rev = "51c0889602626e2dcc6f1c1a812b058bc96df03c";
+          sha256 = "1ccq4iw1d4hy3irimci42knh66ix0vfzd3nm2wh63ygiaf1rjakw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/frame-local";
+          sha256 = "1lz4xmz67l99xbyg9gvgzl06yqh61xhr29vfhv68kq5pg5m881vs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/frame-local";
+          license = lib.licenses.free;
+        };
+      }) {};
+    frame-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "frame-mode";
+        ename = "frame-mode";
+        version = "20170419.1427";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "frame-mode";
+          rev = "c0feebf8eab91ac0646a4d30be946e551bb5267f";
+          sha256 = "19a7vxr1qhxr1yh9mvlhrbnpmqk9qmbmb4gwxrwdsqrac3fs3lr7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/frame-mode";
+          sha256 = "0ch58x07fnsx3v3r9cvcmqrqws121m8achjilhqk988hkg7y47c8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/frame-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    frame-purpose = callPackage ({ dash
+                                 , dash-functional
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "frame-purpose";
+        ename = "frame-purpose";
+        version = "20180623.1757";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "frame-purpose.el";
+          rev = "6cff3bff74f9cf1dc31bbc5e1f9a513a5f55def6";
+          sha256 = "08pmmzjdbvp09rxn3d332101qmg6c4xx2y6dwzczii70ac7m5v9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/frame-purpose";
+          sha256 = "0mvzryfakz5g8smsg4ciaa0bs0jp692rnjbahp9vl62ml5dp62fz";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/frame-purpose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    frame-tag = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "frame-tag";
+        ename = "frame-tag";
+        version = "20170110.1606";
+        src = fetchFromGitHub {
+          owner = "liangzan";
+          repo = "frame-tag.el";
+          rev = "73d6163568c7d32952175e663318b872f995a4e5";
+          sha256 = "1ks8qw1vq30mjp7bpgrk3f11jhm9viibiap6zjk8r5rykjzl1ifv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/frame-tag";
+          sha256 = "1n13xcc3ny9j9h1h4vslpjl6k9mqksr73kgmqrmkq301p8zps94q";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/frame-tag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    frames-only-mode = callPackage ({ dash
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "frames-only-mode";
+        ename = "frames-only-mode";
+        version = "20180114.1048";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "frames-only-mode";
+          rev = "9ebd895574bb0b3e4ef111d522b8039e274e8afc";
+          sha256 = "03fis931cb5k7a0jjjgkzmq30g43543kinr8hw6z8xkaivh2yixy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/frames-only-mode";
+          sha256 = "17p04l16ghz9kk096xk37yjpi4rmla86gp7c8ysjf6q6nyh0608h";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/frames-only-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    frameshot = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "frameshot";
+        ename = "frameshot";
+        version = "20181110.1110";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "frameshot";
+          rev = "3e1c9c2b34a3ab25cf373c411321280cc00096f6";
+          sha256 = "1kcvgal64m1wf2k2qjx2bc0ln01xn0x73h0pvs17akfc0w5n40ms";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/frameshot";
+          sha256 = "1z5f988m9s25miyxbhaxk6m4af9afvblb2p5mdidva04szjklr70";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/frameshot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    framesize = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , key-chord
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "framesize";
+        ename = "framesize";
+        version = "20131017.1432";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-framesize";
+          rev = "f2dbf5d2513b2bc45f2085370a55c1754b6025da";
+          sha256 = "11h9xw6jnw7dacyv1jch2a77xp7hfb93690m7hhazy6l87xmm4dk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/framesize";
+          sha256 = "1rwiwx3n7gkpfihbf6ndl1lxza4zi2rlj5av6lfp5qypbw9wddkf";
+          name = "recipe";
+        };
+        packageRequires = [ key-chord ];
+        meta = {
+          homepage = "https://melpa.org/#/framesize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    frecency = callPackage ({ a
+                            , dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "frecency";
+        ename = "frecency";
+        version = "20170908.2331";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "frecency.el";
+          rev = "132130088ef5695cffed6fcacfa219cb0c389026";
+          sha256 = "17s34gaq6jvwr6f4l500xyhv33ykwxiwzsq2rrasgs7l301wqsw0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/frecency";
+          sha256 = "033zhzwvh23igfqxbiy68cq6i1wflna19pbg81r0hh9kcfg2afpa";
+          name = "recipe";
+        };
+        packageRequires = [ a dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/frecency";
+          license = lib.licenses.free;
+        };
+      }) {};
+    free-keys = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "free-keys";
+        ename = "free-keys";
+        version = "20160726.1350";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "free-keys";
+          rev = "edfd69dc369b2647447b7c28c7c1163b1ddf45b4";
+          sha256 = "0xgifa7s9n882f9ymyyz9gc11xfbj3vfpnxiq1fqfm5hmwx9pwbc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/free-keys";
+          sha256 = "0j9cfgy2nkbska4lm5z32p804i9n8pdgn50bs5zzk1ilwd5vbalj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/free-keys";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fringe-current-line = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "fringe-current-line";
+        ename = "fringe-current-line";
+        version = "20140110.2011";
+        src = fetchFromGitHub {
+          owner = "kyanagi";
+          repo = "fringe-current-line";
+          rev = "0ef000bac76abae30601222e6f06c7d133ab4942";
+          sha256 = "0zwlnzbi91hkfz1jgj9s9pxwi21s21cwp6psdm687wj2a3wy4231";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fringe-current-line";
+          sha256 = "125yn0wbrrxrmdn7qfxj0f4538sb3xnqb3r2inz3gpblc1vxnqb8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fringe-current-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fringe-helper = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "fringe-helper";
+        ename = "fringe-helper";
+        version = "20140620.1409";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "fringe-helper.el";
+          rev = "9bc3d3e82c9cc3937aa090248dc4dd2e289fc55c";
+          sha256 = "0vqpgvjxh9dqc6is2ai1nrnwhv3fwx5b2nyhq5w3qr056hi995av";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fringe-helper";
+          sha256 = "1i5wra4j0rvrsl9vbg7fzga8cadw43ka2rwdj1m11wq8m3cs8g7m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fringe-helper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fsbot-data-browser = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "fsbot-data-browser";
+        ename = "fsbot-data-browser";
+        version = "20160921.833";
+        src = fetchFromGitHub {
+          owner = "Benaiah";
+          repo = "fsbot-data-browser";
+          rev = "6bca4f7de63e31839d2542f6c678b79931dec344";
+          sha256 = "0lvpgfp89sz6f6rn576g1g88s0q3ibj5ghydjwfcg9w6h7vx5b5s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fsbot-data-browser";
+          sha256 = "14d4d8lasvgj520rmqgnzk6mi16znzcdvja9p8164fr9l41wnzgd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fsbot-data-browser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fsharp-mode = callPackage ({ company
+                               , company-quickhelp
+                               , dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , flycheck
+                               , lib
+                               , melpaBuild
+                               , popup
+                               , pos-tip
+                               , s }:
+      melpaBuild {
+        pname = "fsharp-mode";
+        ename = "fsharp-mode";
+        version = "20180518.1120";
+        src = fetchFromGitHub {
+          owner = "rneatherway";
+          repo = "emacs-fsharp-mode-bin";
+          rev = "68d2121a7317d90fe3794c9295d117f4aebd1438";
+          sha256 = "0mymvik20slbgsasjpn6nkqcb4z6z4mvd1sf1xalv0qjk24vrlmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fsharp-mode";
+          sha256 = "07pkj30cawh0diqhrp3jkshgsd0i3y34rdnjb4af8mr7dsbsxb6z";
+          name = "recipe";
+        };
+        packageRequires = [
+          company
+          company-quickhelp
+          dash
+          flycheck
+          popup
+          pos-tip
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/fsharp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fstar-mode = callPackage ({ company
+                              , company-quickhelp
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , flycheck
+                              , lib
+                              , melpaBuild
+                              , quick-peek
+                              , yasnippet }:
+      melpaBuild {
+        pname = "fstar-mode";
+        ename = "fstar-mode";
+        version = "20181110.549";
+        src = fetchFromGitHub {
+          owner = "FStarLang";
+          repo = "fstar-mode.el";
+          rev = "0089f2d4451f73c389f82ebff9e22773f2d0014d";
+          sha256 = "1mwqdww9sw14s4h4hdndadkxh8lgynwjkfyzf55fnjhf068hzsv8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fstar-mode";
+          sha256 = "1kwa6gqh91265vpp4gcady2brkizfkfjj0gnya9lar6x7rn4gj7s";
+          name = "recipe";
+        };
+        packageRequires = [
+          company
+          company-quickhelp
+          dash
+          emacs
+          flycheck
+          quick-peek
+          yasnippet
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/fstar-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fuel = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "fuel";
+        ename = "fuel";
+        version = "20180224.1411";
+        src = fetchFromGitHub {
+          owner = "factor";
+          repo = "factor";
+          rev = "780bbd49cf82c9746ca5a3f42f4a4a27266ccee9";
+          sha256 = "1fs6200rsbnk2lagz8qj17iynaf4c1fvb6sm03i53shsbarak2c3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fuel";
+          sha256 = "08hzzg5dhqkl5c5lfhwcwmx8m8z3k1nxshn2wlpqf5gch8f2nj6z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fuel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fuff = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , seq }:
+      melpaBuild {
+        pname = "fuff";
+        ename = "fuff";
+        version = "20170202.703";
+        src = fetchFromGitHub {
+          owner = "joelmo";
+          repo = "fuff";
+          rev = "278e849913df87bd8756c59382282d87474802c3";
+          sha256 = "12s25c0abvghkhfbxcf77d2dc20y3xn9df7mfk8mkfwnlwdss2ga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fuff";
+          sha256 = "080a2lz6mv629c68z44qrrww080gy2iggfzajdq54rr8i23y14vf";
+          name = "recipe";
+        };
+        packageRequires = [ seq ];
+        meta = {
+          homepage = "https://melpa.org/#/fuff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    full-ack = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "full-ack";
+        ename = "full-ack";
+        version = "20140223.932";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "full-ack";
+          rev = "8345753e9569dabf6426a837f29387557e32f2af";
+          sha256 = "0x0c6cvsgzcc6336k9bz7pcjpg6s6w6cjlqbsafdqv8yx5ll59jd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/full-ack";
+          sha256 = "09ikhyhpvkcl6yl6pa4abnw6i7yfsx5jkmzypib94w7khikvb309";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/full-ack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fullframe = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fullframe";
+        ename = "fullframe";
+        version = "20170816.303";
+        src = fetchFromGitHub {
+          owner = "tomterl";
+          repo = "fullframe";
+          rev = "d6a5217f7f2a5a5edcb75140f3fa69b3a50f1cdd";
+          sha256 = "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fullframe";
+          sha256 = "08sh8lmb6g8asv28fcb36ilcn0ka4fc6ka0pnslid0h4c32fxp2a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/fullframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    function-args = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , ivy
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "function-args";
+        ename = "function-args";
+        version = "20171031.1004";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "function-args";
+          rev = "609b25305670fff08d5e357298e7128e4f4e3497";
+          sha256 = "1xymwk42n2l7c7iaigz23i4l580qpjgq8nqhgr4mnw6invdsgg2c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/function-args";
+          sha256 = "13yfscr993pll5yg019v9dwy71g123a166w114n2m78h0rbnzdak";
+          name = "recipe";
+        };
+        packageRequires = [ ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/function-args";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fuo = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "fuo";
+        ename = "fuo";
+        version = "20180314.948";
+        src = fetchFromGitHub {
+          owner = "cosven";
+          repo = "emacs-fuo";
+          rev = "5318bef9d935b53031e6312652554920def69af2";
+          sha256 = "02f4kl1y277pry13hz1jscdh2nrbn3xp7zm1dmqyn8yfhn1s1yx2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fuo";
+          sha256 = "02mvgz2cxrdn5kp5dw0c57rl5nfavqli5yqbxczmbsih164ljdxf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fuo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    furl = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "furl";
+        ename = "furl";
+        version = "20150508.2016";
+        src = fetchFromGitHub {
+          owner = "nex3";
+          repo = "furl-el";
+          rev = "014438271e0ef27333dfcd599cb247f12a20d870";
+          sha256 = "0wrmbvx0risdjkaxqmh4li6iwvg4635cdpjvw32k2wkdsyn2dlsb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/furl";
+          sha256 = "1z3yqx95qmvpi6vkkgcwvkmw96s24h8ssd5gc06988picw6vj76f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/furl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    futhark-mode = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "futhark-mode";
+        ename = "futhark-mode";
+        version = "20181101.1200";
+        src = fetchFromGitHub {
+          owner = "diku-dk";
+          repo = "futhark-mode";
+          rev = "027fe2cd7caf61581fee004e7f0f1db32e11fc61";
+          sha256 = "1m77qiwrh6072v2g76y19czqh3gdba5nlncc3cni5m56s7pfj1aw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/futhark-mode";
+          sha256 = "1sck984a8m0i9n07jnhpnin6k060756g73ix34ghzd65j5f0pvlw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/futhark-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fuzzy = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "fuzzy";
+        ename = "fuzzy";
+        version = "20150729.2037";
+        src = fetchFromGitHub {
+          owner = "auto-complete";
+          repo = "fuzzy-el";
+          rev = "534d723ad2e06322ff8d9bd0ba4863d243f698e7";
+          sha256 = "0rzp8c2164w775ggm2fs4j5dz33vqcah84ysp81majirwfql1niv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fuzzy";
+          sha256 = "1hwdh9bx4g4vzzyc20vdwxsii611za37kc9ik40kwjjk62qmll8h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fuzzy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fvwm-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fvwm-mode";
+        ename = "fvwm-mode";
+        version = "20160411.438";
+        src = fetchFromGitHub {
+          owner = "theBlackDragon";
+          repo = "fvwm-mode";
+          rev = "6832a1c1f68bf6249c3fd6672ea8e27dc7a5c79e";
+          sha256 = "03zmk4v259pqx7gkwqq95lccn78rwmh7iq5j0d5jj4jf9h39rr20";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fvwm-mode";
+          sha256 = "07y32cnp4qfhncp7s24gmlxljdrj5miicinfaf4gc7hihb4bkrkb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fvwm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fwb-cmds = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "fwb-cmds";
+        ename = "fwb-cmds";
+        version = "20180318.1519";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "fwb-cmds";
+          rev = "90258a5c7dbbaa2ac227e0fb4ff6c7d5aec3628f";
+          sha256 = "1xwvv8wjgdaz96v1x1xc5w697bfvcanlcixd0n5qbx6ryakqrb72";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fwb-cmds";
+          sha256 = "0wnjvi0v0l2h1mhwlsk2d8ggwh3nk7pks48l55gp18nmj00jxycx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fwb-cmds";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fxrd-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "fxrd-mode";
+        ename = "fxrd-mode";
+        version = "20170728.1101";
+        src = fetchFromGitHub {
+          owner = "msherry";
+          repo = "fxrd-mode";
+          rev = "795b969346982b75e24b5c8619b46197982fbb4d";
+          sha256 = "0aha13vqj6ygyr7bflrxll837g4z6wrmrhh5rhcd0vphqg70frgn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fxrd-mode";
+          sha256 = "17zimg64lqc1yh9gnp5izshkvviz996aym7q6n9p61a4kqq37z4r";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/fxrd-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fyure = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "fyure";
+        ename = "fyure";
+        version = "20130216.514";
+        src = fetchFromGitHub {
+          owner = "mooz";
+          repo = "fyure";
+          rev = "b6977f1eb148e8b63259f7233b55bb050e44d9b8";
+          sha256 = "08x5li0mshrlamr7vswy7xh358bqhh3pngjr4ckswfi0l2r5fjbd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fyure";
+          sha256 = "0k5z2xqlrzp5lyvp2lr462x38kqdmqld845bvyvkfjd2k4yri71x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fyure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fzf = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "fzf";
+        ename = "fzf";
+        version = "20180618.1845";
+        src = fetchFromGitHub {
+          owner = "bling";
+          repo = "fzf.el";
+          rev = "521d18933cb586337c4e34281bdc71ac07202c98";
+          sha256 = "0fpzjslbhhwvs4nh5dxj9cyxyiw6n8qmg76mvq73k5mc8pk7d4ir";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fzf";
+          sha256 = "0jjzm1gq85fx1gmj6nqaijnjws9bm8hmk40ws3x7fmsp41qq5py0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fzf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gams-ac = callPackage ({ auto-complete
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , gams-mode
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "gams-ac";
+        ename = "gams-ac";
+        version = "20180423.226";
+        src = fetchFromGitHub {
+          owner = "ShiroTakeda";
+          repo = "gams-ac";
+          rev = "66d04ff36033f54205c19bc1d893e926d4dbf02e";
+          sha256 = "1hjbzwgzwqwpyfm8db1r1q14bbk42hrl5469gqfzjq0423wy7szw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gams-ac";
+          sha256 = "03w9ffscwaaspwxmrqhrfws0qjk3xxzz63k5wkrhx37899w75qha";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete emacs gams-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/gams-ac";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gams-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "gams-mode";
+        ename = "gams-mode";
+        version = "20181111.2201";
+        src = fetchFromGitHub {
+          owner = "ShiroTakeda";
+          repo = "gams-mode";
+          rev = "fd88a310614a7c6e39e45ca65c4273ad90e3b688";
+          sha256 = "0bvvar05zqfk1y5nqv1w6ji2mysdx62v7nxajnmbp386ldcjs4bn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gams-mode";
+          sha256 = "0hx9mv4sqskz4nn7aks64hqd4vn3m7b34abzhy9bnmyw6d5zzfci";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gams-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gandalf-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "gandalf-theme";
+        ename = "gandalf-theme";
+        version = "20130809.247";
+        src = fetchFromGitHub {
+          owner = "ptrv";
+          repo = "gandalf-theme-emacs";
+          rev = "4e472fc851431458537d458d09c1f5895e338536";
+          sha256 = "0sn3y1ilbg532mg941qmzipvzq86q31x86ypaf0h0m4015r7l59v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gandalf-theme";
+          sha256 = "0wkmsg3pdw98gyp3q508wsqkzw821qsqi796ynm53zd7a4jfap4p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gandalf-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gap-mode = callPackage ({ fetchhg
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "gap-mode";
+        ename = "gap-mode";
+        version = "20180808.2145";
+        src = fetchhg {
+          url = "https://bitbucket.com/gvol/gap-mode";
+          rev = "00f251070b10";
+          sha256 = "0rk5smpzpdqzpmb5cp2l40042i51z3f40fkd3hma40id0ql2gy2w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gap-mode";
+          sha256 = "07whab3gi4b8gsvy5ijmjnj700lw0rm3bnr1769byhnpi7qpqin2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gap-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gather = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "gather";
+        ename = "gather";
+        version = "20141230.538";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-gather";
+          rev = "8909c886d72a682710bb79ccfcfe4df54a399b7e";
+          sha256 = "0nj5fbn22ihfsdlb5bhj0ph71gkhrgfbb3540sx1x35gqfhb6p4g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gather";
+          sha256 = "1f0cqqp1a7w8g1pfvzxxb0hjrxq4m79a4n85dncqj2xhjxrkm0xk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gather";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gdscript-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "gdscript-mode";
+        ename = "gdscript-mode";
+        version = "20180117.2056";
+        src = fetchFromGitHub {
+          owner = "AdamBark";
+          repo = "gdscript-mode";
+          rev = "31af5283eaec207bc864022a28e2824132471eaf";
+          sha256 = "0f24zsklkhhvj6qdyid2j1qcyhjnncxjma93zhr0klvn5j1z3aar";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gdscript-mode";
+          sha256 = "0v4ab5xxpq1kya2is5qq61fmfgxgvbigyz7wp907z3mc00kg2818";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gdscript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    geben = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "geben";
+        ename = "geben";
+        version = "20170801.551";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "geben";
+          rev = "ec3f5e9376cf1ea5615990bd8c212543d57f033b";
+          sha256 = "0860nnarbm76jp40v7p5d2wdnq12p03paiw17g3h5p27wnaj611d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/geben";
+          sha256 = "1ai1qcx76m8xh80c8zixq9cqbhnqmj3jk3r7lj3ngbiwx4pnlnwf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/geben";
+          license = lib.licenses.free;
+        };
+      }) {};
+    geben-helm-projectile = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , geben
+                                         , helm-projectile
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "geben-helm-projectile";
+        ename = "geben-helm-projectile";
+        version = "20160610.1759";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "geben-helm-projectile";
+          rev = "14db489efcb20c5aa9102288c94cec3c5a87c35d";
+          sha256 = "1nd1jhy393vkn2g65zhygxkpgna0l8gkndxr8jb6qjkkapk58k8l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/geben-helm-projectile";
+          sha256 = "11zhapys6wx2cadflvjimsmilwvjpfd4ihwzzmap8shxpyllsq9r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs geben helm-projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/geben-helm-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    geeknote = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "geeknote";
+        ename = "geeknote";
+        version = "20160717.549";
+        src = fetchFromGitHub {
+          owner = "avendael";
+          repo = "emacs-geeknote";
+          rev = "8ed607c76864afcc9c338972ab093caf4501cbf8";
+          sha256 = "1dadsyvkzf0rg6immjdjkb0k7iaqh3hm1w9qhap94j54j7v75w2q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/geeknote";
+          sha256 = "03q0ca8m110qw8wczyyx94gwqymwnmamahw30j7fqkq6ry19yqsm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/geeknote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    geiser = callPackage ({ fetchFromGitLab
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "geiser";
+        ename = "geiser";
+        version = "20181116.2250";
+        src = fetchFromGitLab {
+          owner = "jaor";
+          repo = "geiser";
+          rev = "dcf754c0b9cdb87ffa5930ef8ffbae9256f2d07d";
+          sha256 = "1l30yrfvp5a37acn7jyy0mabxclax21lgh45bxgp1f6fmziacvxc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/geiser";
+          sha256 = "1g7z6c3lfa7slwrxk7q8awqs39qibcv2kc4c2fwlwvgbcfhkw085";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/geiser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    general = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "general";
+        ename = "general";
+        version = "20181020.1623";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "general.el";
+          rev = "f48c43c4449677fa629aac2693ffcb850ca58c89";
+          sha256 = "0yy1yr7i72y374kkjsklwj2vwyigyx0gmffg2nvkf29wy4r6352q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/general";
+          sha256 = "104ywsfylfymly64p1i3hsy9pnpz3dkpmcq1ygafnld8zjd08gpc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/general";
+          license = lib.licenses.free;
+        };
+      }) {};
+    genrnc = callPackage ({ concurrent
+                          , deferred
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , log4e
+                          , melpaBuild
+                          , yaxception }:
+      melpaBuild {
+        pname = "genrnc";
+        ename = "genrnc";
+        version = "20140612.537";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-genrnc";
+          rev = "da75b1966a73ad215ec2ced4522c25f4d0bf1f9a";
+          sha256 = "08cw1fa25kbhbq2sp1cpn90bz38i9hjfdj93xf6wvki55b52s0nn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/genrnc";
+          sha256 = "1nwbdscl0yh9j1n421can93m6s8j9dkyb3xmpampr6x528g6z0lm";
+          name = "recipe";
+        };
+        packageRequires = [ concurrent deferred log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/genrnc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    german-holidays = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "german-holidays";
+        ename = "german-holidays";
+        version = "20161011.13";
+        src = fetchFromGitHub {
+          owner = "rudolfochrist";
+          repo = "german-holidays";
+          rev = "d7d540c229c1a8be68ee09fbda08fe3ea31b7d29";
+          sha256 = "1rfka83jwd68k93vn3f7llxd6z0ma5k98gws0081y8i9fc21fnsd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/german-holidays";
+          sha256 = "0fgrxdgyl6va6axjc5l4sp90pyqaz5zha1g73xyhbxblshm5dwxn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/german-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gerrit-download = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , magit
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "gerrit-download";
+        ename = "gerrit-download";
+        version = "20150714.708";
+        src = fetchFromGitHub {
+          owner = "chmouel";
+          repo = "gerrit-download.el";
+          rev = "d568acc7c5935188c9bc19ba72719a6092d9f6fd";
+          sha256 = "1ch8yp0mgk57x0pny9bvkknsqj27fd1rcmpm9s7qpryrwqkp1ix4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gerrit-download";
+          sha256 = "1rlz0iqgvr8yxnv5qmk29xs1jwf0g0ckzanlyldcxvs7n6mhkjjp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/gerrit-download";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gf = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , ht
+                      , lib
+                      , melpaBuild
+                      , s }:
+      melpaBuild {
+        pname = "gf";
+        ename = "gf";
+        version = "20181028.842";
+        src = fetchFromGitHub {
+          owner = "GrammaticalFramework";
+          repo = "gf-emacs-mode";
+          rev = "49fa46db67634530499be969ffd3c436a22d4404";
+          sha256 = "0q234wzzmq1r53dv7z798liwkcbpnvc8mnxvkyfxd94f6za9ylgz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gf";
+          sha256 = "0vk866gy97zk8dbx48azjlpnrnf0snc50zlhbzv1is97d9frjici";
+          name = "recipe";
+        };
+        packageRequires = [ ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/gf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ggo-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ggo-mode";
+        ename = "ggo-mode";
+        version = "20130524.443";
+        src = fetchFromGitHub {
+          owner = "mkjunker";
+          repo = "ggo-mode";
+          rev = "ea5097f87072309c7b77204888d459d084bf630f";
+          sha256 = "1m9ra9qp7bgf6anfqyn56n3xa9a25ran10k9wd355qknd5skq1zz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ggo-mode";
+          sha256 = "1403x530n90jlfz3lq2vfiqx84cxsrhgs6hhmniq960cjj31q35p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ggo-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ggtags = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ggtags";
+        ename = "ggtags";
+        version = "20181031.1103";
+        src = fetchFromGitHub {
+          owner = "leoliu";
+          repo = "ggtags";
+          rev = "669676461c74ffd30b81dce60cf4f081270f2858";
+          sha256 = "1xa4k7ds4mfi27mbd8ks2dw8v9smghb99yrznnwry39inpkf5w8c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ggtags";
+          sha256 = "1cmry4knxbx9257ivhfxsd09z07z3g3wjihi99nrwmhb9h4mpqyw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ggtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gh = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , logito
+                      , marshal
+                      , melpaBuild
+                      , pcache }:
+      melpaBuild {
+        pname = "gh";
+        ename = "gh";
+        version = "20180308.1338";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "gh.el";
+          rev = "92418cd1b67ff6e8fb0a64478444975a4b8581a3";
+          sha256 = "1vl6wy904jw1mqdic54ssvvbs4xqxhmgacldnfkdkx586vwf0hqi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gh";
+          sha256 = "1141l8pas3m755yzby4zsan7p81nbnlch3kj1zh69qzjpgqp30c0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs logito marshal pcache ];
+        meta = {
+          homepage = "https://melpa.org/#/gh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gh-md = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "gh-md";
+        ename = "gh-md";
+        version = "20151207.940";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "gh-md.el";
+          rev = "693cb0dcadff70e813e1a9d303d227aff7898557";
+          sha256 = "0g3bjpnwgqczw6ddh4mv7pby0zyqzqgywjrjz2ib6hwmdqzyp1s0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gh-md";
+          sha256 = "0b72fl1hj7gkqlqrr8hklq0w3ryqqqfn5qpb7a9i6q0vh98652xm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gh-md";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghc = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , haskell-mode
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ghc";
+        ename = "ghc";
+        version = "20180121.418";
+        src = fetchFromGitHub {
+          owner = "DanielG";
+          repo = "ghc-mod";
+          rev = "39b96c475090f91e4f717197c96e083fdb2ccaf7";
+          sha256 = "0f9qzk3czamqjb42xg2bmx70hafza8cn84zylx60bw8yx4i0q7nx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghc";
+          sha256 = "02nc7a9khqpd4ca2snam8dq72m53q8x7v5awx56bjq31z6vcmav5";
+          name = "recipe";
+        };
+        packageRequires = [ haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ghc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghc-imported-from = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "ghc-imported-from";
+        ename = "ghc-imported-from";
+        version = "20141124.1132";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "ghc-imported-from-el";
+          rev = "fcff08628a19f5d26151564659218cc677779b79";
+          sha256 = "1ywwyc2kz1c1s26c412nmzh55cinh84cfiazyyi3jsy5zzwhrbhi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghc-imported-from";
+          sha256 = "063kbymk4r1yrg5ks660d2byrnia6gs6nimjzrvqfi2ib1psc7jc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ghc-imported-from";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghci-completion = callPackage ({ cl-lib ? null
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ghci-completion";
+        ename = "ghci-completion";
+        version = "20151125.457";
+        src = fetchFromGitHub {
+          owner = "manzyuk";
+          repo = "ghci-completion";
+          rev = "c47e23d585d2a3c7b13aac163693fdc4f2bb90e5";
+          sha256 = "17fl3k2sqiavbv3bp6rnp3p89j6pnpkkp7wi26pzzk4675r5k45q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghci-completion";
+          sha256 = "1a6k47z5kmacj1s5479393jyj27bjx0911yaqfmmwg2hr0yz7vll";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ghci-completion";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gherkin-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "gherkin-mode";
+        ename = "gherkin-mode";
+        version = "20171224.553";
+        src = fetchFromGitHub {
+          owner = "candera";
+          repo = "gherkin-mode";
+          rev = "0313492e7da152f0aa73ddf96c0287ded8f51253";
+          sha256 = "15m9a2dcxgmbj0ni2qcxg3vpxvs50pyjvlacm3xd2xhm9wd484hr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gherkin-mode";
+          sha256 = "0dhrsz24hn0sdf22wpmzbkn66g4540vdkl03pc27kv21gwa9ixxv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gherkin-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghost-blog = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , markdown-mode
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ghost-blog";
+        ename = "ghost-blog";
+        version = "20171023.42";
+        src = fetchFromGitHub {
+          owner = "javaguirre";
+          repo = "ghost-blog-emacs";
+          rev = "71b358643cc9a2db1bf752281ff94aba9b59e4cc";
+          sha256 = "1fkh7zslkdi7a4x2xrk73acmigbi7yx9k6iaj75zbjfd49gyqj13";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghost-blog";
+          sha256 = "0c591cx5kkfmhhqh8jall470iicxdv01mm3m13irq5xhmp3i5kjy";
+          name = "recipe";
+        };
+        packageRequires = [ markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ghost-blog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghq = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ghq";
+        ename = "ghq";
+        version = "20160803.857";
+        src = fetchFromGitHub {
+          owner = "rcoedo";
+          repo = "emacs-ghq";
+          rev = "aae4b8cb22fd6c24d2c9e3962c7e8e9dac6d9825";
+          sha256 = "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghq";
+          sha256 = "0prvywcgwdhx5pw66rv5kkfriahal2mli2ibam5np3z6bwcq4ngh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ghq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghub = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , graphql
+                        , let-alist
+                        , lib
+                        , melpaBuild
+                        , treepy }:
+      melpaBuild {
+        pname = "ghub";
+        ename = "ghub";
+        version = "20181112.955";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "ghub";
+          rev = "f389fce41cd1bd1805bad18d12e237362af05283";
+          sha256 = "12gvcmz997a44ccc988sjwpyrfxiqxiv07mr6ig0an29n9cirm8s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghub";
+          sha256 = "15kjyi8ialpr1zjqvw68w9pa5sigcwy2szq21yvcy295z7ylzy4i";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs graphql let-alist treepy ];
+        meta = {
+          homepage = "https://melpa.org/#/ghub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghub-plus = callPackage ({ apiwrap
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ghub
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ghub-plus";
+        ename = "ghub+";
+        version = "20181112.1632";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "ghub-plus";
+          rev = "51ebffe549286b3c0b0565a373f44f4d64fc57af";
+          sha256 = "11fr6ri95a9wkc0mqrkhjxz1fm2cb52151fc88k73l93mggib3ak";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghub+";
+          sha256 = "0xx7nwmjx3f7z6z164x1lb9arbb3m3d16mpn92v66w572rhbr34n";
+          name = "recipe";
+        };
+        packageRequires = [ apiwrap emacs ghub ];
+        meta = {
+          homepage = "https://melpa.org/#/ghub+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gif-screencast = callPackage ({ emacs
+                                  , fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "gif-screencast";
+        ename = "gif-screencast";
+        version = "20180827.135";
+        src = fetchFromGitLab {
+          owner = "Ambrevar";
+          repo = "emacs-gif-screencast";
+          rev = "62e69ea464e87f1f7791d95a4fbbe9b70a84668a";
+          sha256 = "1q02mk4pzaxdl8sf191iwxz481gaqfc9nvd4v95ggjyp3ahq1y4n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gif-screencast";
+          sha256 = "05l46bsnjdnvcgwx5rc5y7ry9p0hvmkf09rlpalgnrp8qpy8xw0q";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gif-screencast";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gift-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "gift-mode";
+        ename = "gift-mode";
+        version = "20180530.535";
+        src = fetchFromGitHub {
+          owner = "csrhodes";
+          repo = "gift-mode";
+          rev = "b0441ae6e02f343be3b611a2d4b40495ecd932f0";
+          sha256 = "0dwpmvjsczcdzwhjvpfxrkfha513538z8wq3gr3l1zc1kdggx2bk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gift-mode";
+          sha256 = "0sybrjmcg90cjaax7lzzqvacirn5l23hqy9d843c660fsv98scg1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gift-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gildas-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , polymode }:
+      melpaBuild {
+        pname = "gildas-mode";
+        ename = "gildas-mode";
+        version = "20181021.2349";
+        src = fetchFromGitHub {
+          owner = "smaret";
+          repo = "gildas-mode";
+          rev = "d0c9e997e2aa0bcd9b8b7db082d69100448cb1b2";
+          sha256 = "11290b6daly9nn73iw0s6386hzjk3q2iywdhiazxscxaxzhx2c8c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gildas-mode";
+          sha256 = "0bc3d8bnvg1w2chrr4rp9daq1x8p41qgklrniq0bbkr2h93cmkgv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/gildas-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gist = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , gh
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "gist";
+        ename = "gist";
+        version = "20171127.2006";
+        src = fetchFromGitHub {
+          owner = "defunkt";
+          repo = "gist.el";
+          rev = "b2712a61d04af98a05cc2556d85479803b6626be";
+          sha256 = "0zpdh7j0nm9qgzgp55kim04r9hi8cyi3f6kflxrs8srzxwb4gs6k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gist";
+          sha256 = "053fl8aw0ram9wsabzvmlm5w2klwd2pgcn2w9r1yqfs4xqja5sd3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs gh ];
+        meta = {
+          homepage = "https://melpa.org/#/gist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git = callPackage ({ dash
+                       , f
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , s }:
+      melpaBuild {
+        pname = "git";
+        ename = "git";
+        version = "20140128.241";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "git.el";
+          rev = "8b7f1477ef367b5b7de452589dd9a8ab30150d0a";
+          sha256 = "06ws3x5qa92drmn6rcp502jk2yil6q9gkzdmb2gww9gb2g695wl5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git";
+          sha256 = "1nd2yvfgin13m368gjn7xah99glspnam4g4fh348x4makxcaw8w5";
+          name = "recipe";
+        };
+        packageRequires = [ dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/git";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-annex = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "git-annex";
+        ename = "git-annex";
+        version = "20180427.856";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "git-annex-el";
+          rev = "ebdb44aef1883f1b2b8058e05d30fb9315b03707";
+          sha256 = "1mzv40gj7k10h7h5s43my8msgzjpj680qprqa9pp8nbyhl49v3wh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-annex";
+          sha256 = "0194y24vq1w6m2cjgqgx9dqp99cq8y9licyry2zxa5brbrsxi94l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/git-annex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-attr = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "git-attr";
+        ename = "git-attr";
+        version = "20180925.1303";
+        src = fetchFromGitHub {
+          owner = "arnested";
+          repo = "emacs-git-attr";
+          rev = "3e43a0cf616b00a4bbd3c6b49fd2397f3103796f";
+          sha256 = "1alpr4gnkikwzljz0fdbrx5hs3zy5s2fz7qyxdz0nx9hv8zb5ir5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-attr";
+          sha256 = "084l3zdcgy1ka2wq1fz9d6ryhg38gxvr52njlv43gwibzvbqniyi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-attr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-auto-commit-mode = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "git-auto-commit-mode";
+        ename = "git-auto-commit-mode";
+        version = "20161229.817";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "git-auto-commit-mode";
+          rev = "2c8197e5d7813734d6a49f9b9c0b227b7ae022a8";
+          sha256 = "0h8kma09r5fw4b2fbbia5z42x8gg72w6zk39pxnsw876kwa8798f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-auto-commit-mode";
+          sha256 = "0nf4n63xnzcsizjk1yl8qvqj9wjdqy57kvn6r736xvsxwzd44xgl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/git-auto-commit-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-blamed = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "git-blamed";
+        ename = "git-blamed";
+        version = "20161028.1226";
+        src = fetchFromGitHub {
+          owner = "tsgates";
+          repo = "git-emacs";
+          rev = "cef196abf398e2dd11f775d1e6cd8690567408aa";
+          sha256 = "1n6x69z1s3hk6m6w8gpmqyrb2cxfzhi9w7q94d46c3z6r75v18vz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-blamed";
+          sha256 = "08az5mwg8kv8xsivs63y4sym54l1n34zc9z6k0iwpfixv9f8bk9p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/git-blamed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-command = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , term-run
+                               , with-editor }:
+      melpaBuild {
+        pname = "git-command";
+        ename = "git-command";
+        version = "20160111.503";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "git-command-el";
+          rev = "a2c192aa779f81a99a10f0eb6dd018f13b2ff949";
+          sha256 = "1irqmypgc4l1jlzj4g65ihpic3ffnnkcg1hlysj7qpip5nbflqgl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-command";
+          sha256 = "1hsxak63y6648n0jkzl5ajxg45w84qq8vljvjh0bmwfrbb67kwbg";
+          name = "recipe";
+        };
+        packageRequires = [ term-run with-editor ];
+        meta = {
+          homepage = "https://melpa.org/#/git-command";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-commit = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , with-editor }:
+      melpaBuild {
+        pname = "git-commit";
+        ename = "git-commit";
+        version = "20181116.608";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit";
+          rev = "3d45fe845ad1294b1a051fdf8dcfad7abac35021";
+          sha256 = "16jj3jahw51jqp7nw7sjg28h9snxic2k9l7dxnifi06cw8yyh7j6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-commit";
+          sha256 = "1i7122fydqga68cilgzir80xfq77hnrw75zrvn52mjymfli6aza2";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs with-editor ];
+        meta = {
+          homepage = "https://melpa.org/#/git-commit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-commit-insert-issue = callPackage ({ bitbucket
+                                           , fetchFromGitLab
+                                           , fetchurl
+                                           , github-issues
+                                           , gitlab
+                                           , lib
+                                           , melpaBuild
+                                           , projectile
+                                           , s }:
+      melpaBuild {
+        pname = "git-commit-insert-issue";
+        ename = "git-commit-insert-issue";
+        version = "20171102.1141";
+        src = fetchFromGitLab {
+          owner = "emacs-stuff";
+          repo = "git-commit-insert-issue";
+          rev = "f986923b04b587206ce7ee8e0c456768600e8be7";
+          sha256 = "1gffjf6byasisa9jdcv9n4n5zqalvzfsxv7z75zl0g3ph7wc7bbm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-commit-insert-issue";
+          sha256 = "0xhlchr7dbm0hp4cjba3x1fdf7lnfc97id327i2fqgkdc4yn9fax";
+          name = "recipe";
+        };
+        packageRequires = [ bitbucket github-issues gitlab projectile s ];
+        meta = {
+          homepage = "https://melpa.org/#/git-commit-insert-issue";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-dwim = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "git-dwim";
+        ename = "git-dwim";
+        version = "20170126.414";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "emacs-git-dwim";
+          rev = "485c732130686c2f28a026e385366006435394b9";
+          sha256 = "0rcrsjx4ifa9y3rd5l4498kvqkh58zx21gl7mqp053jdsqqq1yrx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-dwim";
+          sha256 = "0xcigah06ak5wdma4ddcix58q2v5hszncb65f272m4lc2racgsfl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/git-dwim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-gutter = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "git-gutter";
+        ename = "git-gutter";
+        version = "20161105.656";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-git-gutter";
+          rev = "00c05264af046b5ce248e5b0bc42f117d9c27a09";
+          sha256 = "1c7byzv27sqcal0z7113s1897prxhynk6y89mq1fjlxmr0g20vzb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-gutter";
+          sha256 = "19s344i95piixlzq4mjgmgjw7cy8af02z6hg89jjjdbxrfl4i2fg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-gutter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-gutter-fringe = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , fringe-helper
+                                     , git-gutter
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "git-gutter-fringe";
+        ename = "git-gutter-fringe";
+        version = "20170112.2133";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-git-gutter-fringe";
+          rev = "16226caab44174301f1659f7bf8cc67a76153445";
+          sha256 = "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-gutter-fringe";
+          sha256 = "10k07dzmkxsxzwc70vpv05rxjyps9494y6k7yhlv8d46x7xjyp0z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs fringe-helper git-gutter ];
+        meta = {
+          homepage = "https://melpa.org/#/git-gutter-fringe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-gutter-fringe-plus = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , fringe-helper
+                                          , git-gutter-plus
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "git-gutter-fringe-plus";
+        ename = "git-gutter-fringe+";
+        version = "20140729.403";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "git-gutter-fringe-plus";
+          rev = "3857d486e5b3eca9281fba1c76756cb39a9f9866";
+          sha256 = "19sz3gaffirr95n4a8jag9wsqa86fpdn13k685lxrv5317h8iqfh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-gutter-fringe+";
+          sha256 = "1zkjb8p08cq2nqskn79rjszlhp9mrblplgamgi66yskz8qb1bgcc";
+          name = "recipe";
+        };
+        packageRequires = [ fringe-helper git-gutter-plus ];
+        meta = {
+          homepage = "https://melpa.org/#/git-gutter-fringe+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-gutter-plus = callPackage ({ dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , git-commit
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "git-gutter-plus";
+        ename = "git-gutter+";
+        version = "20151204.923";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "git-gutter-plus";
+          rev = "b7726997806d9a2da9fe84ff00ecf21d62b6f975";
+          sha256 = "0bhrrgdzzj8gwxjx7b2kibp1b6s0vgvykfg0n47iq49m6rqkgi5q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-gutter+";
+          sha256 = "1w78p5cz6kyl9kmndgvwnfrs80ha707s8952hycrihgfb6lixmp0";
+          name = "recipe";
+        };
+        packageRequires = [ dash git-commit ];
+        meta = {
+          homepage = "https://melpa.org/#/git-gutter+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-io = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "git-io";
+        ename = "git-io";
+        version = "20180317.1052";
+        src = fetchFromGitHub {
+          owner = "tejasbubane";
+          repo = "emacs-git-io";
+          rev = "48753acba73b48b997bb678fb5e2a938ae63b5d6";
+          sha256 = "1zw24j6l0ap761q1knxjaxzdfz11kmfq29aag5av4n87m86rxzr8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-io";
+          sha256 = "1acwc9iqchvlvx98fxh4xf3xphv0xzrnxpv8kkl8qaly41izfj0v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-io";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-lens = callPackage ({ emacs
+                            , fetchFromGitLab
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "git-lens";
+        ename = "git-lens";
+        version = "20180328.717";
+        src = fetchFromGitLab {
+          owner = "pidu";
+          repo = "git-lens";
+          rev = "ea49e2e005af977a08331f8caa8f64d102b3b932";
+          sha256 = "0prx0xbnhhp46c09nnzpz07jgr3s5ngrw8zjksf48abr8acwywfv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-lens";
+          sha256 = "02a393b5y4vpmf9ixgyi3a4gbzk4146zql827ljlav3j0434ssw2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-lens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-link = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "git-link";
+        ename = "git-link";
+        version = "20181030.1959";
+        src = fetchFromGitHub {
+          owner = "sshaw";
+          repo = "git-link";
+          rev = "976723dfdb9ae42e093a3cb32fc41841e94201e6";
+          sha256 = "0xsyzgwbsnf4xah860182pfirkfbixsf0nkfm05n1rvid7a6495d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-link";
+          sha256 = "1vqabnmdw8pxd84c15ghh1rnglwb5i4zxicvpkg1ci8xalayn1c7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-messenger = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , popup }:
+      melpaBuild {
+        pname = "git-messenger";
+        ename = "git-messenger";
+        version = "20170101.2040";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-git-messenger";
+          rev = "bb838c62662dbc3bed2a8aae5f622fbd8f45dd08";
+          sha256 = "0w866cjzaqllf5xjs77mfsj1lw3ll4j5z770cndbkyfbmcwpama0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-messenger";
+          sha256 = "1rnqsv389why13cy6462vyq12qc2zk58p01m3hsazp1gpfw2hfzn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs popup ];
+        meta = {
+          homepage = "https://melpa.org/#/git-messenger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-msg-prefix = callPackage ({ dash
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "git-msg-prefix";
+        ename = "git-msg-prefix";
+        version = "20180118.646";
+        src = fetchFromGitHub {
+          owner = "kidd";
+          repo = "git-msg-prefix.el";
+          rev = "c6acf10b014607f1541a398206208e568a4714e4";
+          sha256 = "1jpak1ji63xxpivyjxi0wicw66zbyxdc725nbg8dbf5n3h9v80bk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-msg-prefix";
+          sha256 = "0vicaj91yhbzda76wrwmbfby2ikaja52bcm923jx8brjh1wd99wr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/git-msg-prefix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-ps1-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "git-ps1-mode";
+        ename = "git-ps1-mode";
+        version = "20181114.1949";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "git-ps1-mode-el";
+          rev = "b9188e26a64fa6f8678da6cbf5e3e865065f4f04";
+          sha256 = "0l9y6x53li7fqfrwb4037psn92xciylanj0fmmy8jy6n51dlzxyn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-ps1-mode";
+          sha256 = "15gswi9s0m3hrsl1qqyjnjgbglsai95klbdp51h3pcq7zj22wkn6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/git-ps1-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-timemachine = callPackage ({ emacs
+                                   , fetchFromGitLab
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "git-timemachine";
+        ename = "git-timemachine";
+        version = "20181114.542";
+        src = fetchFromGitLab {
+          owner = "pidu";
+          repo = "git-timemachine";
+          rev = "4eb2ee6eabcc437bc3a1addc19ba38eed165743d";
+          sha256 = "1fdbyd3jhfif7i8zhprbld7jx210xpfrgp3gqn1g8hfzic0x8vxp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-timemachine";
+          sha256 = "06xdzic7j3d3pqgwxp1q6fs8sf3mi02a9phjvhk90kyvbr8h94ck";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-timemachine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-wip-timemachine = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , s }:
+      melpaBuild {
+        pname = "git-wip-timemachine";
+        ename = "git-wip-timemachine";
+        version = "20150408.306";
+        src = fetchFromGitHub {
+          owner = "itsjeyd";
+          repo = "git-wip-timemachine";
+          rev = "1ce257e6c25117b01f1b899aca21e07eae084d40";
+          sha256 = "116zn8hs1igfdlhga4pav9kq6znl1bk7shbmkck7jvhb2prmqjqb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-wip-timemachine";
+          sha256 = "02fi51k6l23cgnwjp507ylkiwb8azmnhc0fips68nwn9dghzp6dw";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/git-wip-timemachine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitattributes-mode = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "gitattributes-mode";
+        ename = "gitattributes-mode";
+        version = "20180318.1256";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "git-modes";
+          rev = "95ad581ae2aeba87b418ae9554eb326cdba9837d";
+          sha256 = "15irwyc0fmp0k5dag1n07xa8ka7n84drbrg2savslvb9m71011dg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitattributes-mode";
+          sha256 = "1gjs0pjh6ap0h54savamzx94lq6vqrg58jxqaq5n5qplrbg15a6x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gitattributes-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitconfig = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "gitconfig";
+        ename = "gitconfig";
+        version = "20130718.235";
+        src = fetchFromGitHub {
+          owner = "tonini";
+          repo = "gitconfig.el";
+          rev = "6c313a39e20702ddcebc12d146f69db1ce668901";
+          sha256 = "0j0w6ywhiapmx7dk20yw3zgf8803kmccnjsr664am3g85kbb644v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitconfig";
+          sha256 = "0lqm04nfhhhsdagrjnnagkpg7vpswd8lkd3l52lmpdh0fy16kgrf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gitconfig";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitconfig-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "gitconfig-mode";
+        ename = "gitconfig-mode";
+        version = "20180318.1256";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "git-modes";
+          rev = "ae6e897c06d3ff609a65a3ac2500d21ccc888822";
+          sha256 = "111pm9wwq8p3wiqgap7gyi20say3daadlaxgq2v3mwxyax8fyx34";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitconfig-mode";
+          sha256 = "0hqky40kcgxdnghnf56gpi0xp7ik45ssia1x84v0mvfwqc50dgn1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gitconfig-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-browse-file = callPackage ({ cl-lib ? null
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "github-browse-file";
+        ename = "github-browse-file";
+        version = "20160205.627";
+        src = fetchFromGitHub {
+          owner = "osener";
+          repo = "github-browse-file";
+          rev = "177667b8dac640f3dabacc4395e09451c5e88c53";
+          sha256 = "01vw0nvbhnk9mni3wsm3jf9lqca9x4kn1xfpviqfkciwln7hblqk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-browse-file";
+          sha256 = "03xvgxlw7wmfby898din7dfcg87ihahkhlav1n7qklw6qi7skjcr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/github-browse-file";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-clone = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , gh
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "github-clone";
+        ename = "github-clone";
+        version = "20160622.2010";
+        src = fetchFromGitHub {
+          owner = "dgtized";
+          repo = "github-clone.el";
+          rev = "467b40ca60a6c26257466ebc43c74414df7f19cc";
+          sha256 = "1gdx9sl509vn4bagqg8vi1wvj1h3ryfvd5ggs2mv9rry6x9dg823";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-clone";
+          sha256 = "0ffrm4lmcj3d9kx3g2d5xbiih7hn4frs0prjrvcjq8acvsbc50q9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs gh magit ];
+        meta = {
+          homepage = "https://melpa.org/#/github-clone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-elpa = callPackage ({ commander
+                               , fetchFromGitHub
+                               , fetchurl
+                               , git
+                               , lib
+                               , melpaBuild
+                               , package-build }:
+      melpaBuild {
+        pname = "github-elpa";
+        ename = "github-elpa";
+        version = "20180831.111";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "github-elpa";
+          rev = "cbde5bc239687e07347cecf46ba5aa31948ebe1d";
+          sha256 = "1d7a9mp2kpcw1gvn9j3k8p0896i07m53xkbcx1vbg013w8kpwpak";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-elpa";
+          sha256 = "1981dnz49l5r4qsn49i4dhy6x4ln0haff6gl2zx0p5p0zfkzbi7x";
+          name = "recipe";
+        };
+        packageRequires = [ commander git package-build ];
+        meta = {
+          homepage = "https://melpa.org/#/github-elpa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-issues = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "github-issues";
+        ename = "github-issues";
+        version = "20160616.1141";
+        src = fetchFromGitHub {
+          owner = "inkel";
+          repo = "github-issues.el";
+          rev = "816f7712b0eb05bffec0add3507302862d2629c4";
+          sha256 = "1x6jbnx9lwgy64nl9lpp01xcj9cbx5fq435iwhiarjdsm4kvixb5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-issues";
+          sha256 = "12c6yb3v7xwkzc51binfgl4jb3sm3al5nlrklbsxhn44alazsvb0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/github-issues";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-modern-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "github-modern-theme";
+        ename = "github-modern-theme";
+        version = "20171109.451";
+        src = fetchFromGitHub {
+          owner = "philiparvidsson";
+          repo = "GitHub-Modern-Theme-for-Emacs";
+          rev = "a7e7b8e5e9c122138e79e837caf9b7299e748d44";
+          sha256 = "0agfy3wiznb2ksfa00g7066mb0vps4g74mj6nl9wkvx847dzg34h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-modern-theme";
+          sha256 = "07xv4psw34mrpb1f5fsvj8vcm9k3xlm43zxr6qmj00p46b35z25r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/github-modern-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-notifier = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "github-notifier";
+        ename = "github-notifier";
+        version = "20180420.2016";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "github-notifier.el";
+          rev = "274f3812926ea371346f639fcee98066f6e8c96f";
+          sha256 = "1qv66sdi8zm8nv1xc32lsmm2bgkxf03hb8sfz59mbvzhy6r7dxin";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-notifier";
+          sha256 = "1jqc2wx1pvkca8syj97ds32404szm0wn12b7zpa98265sg3n64nw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/github-notifier";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-pullrequest = callPackage ({ dash
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , magit
+                                      , melpaBuild
+                                      , request }:
+      melpaBuild {
+        pname = "github-pullrequest";
+        ename = "github-pullrequest";
+        version = "20170115.2216";
+        src = fetchFromGitHub {
+          owner = "jakoblind";
+          repo = "github-pullrequest";
+          rev = "471816e09d1e140a0975911fe020c6c659f71209";
+          sha256 = "0y7i2zgln3mjj8sm8r4fi67izzyqdxfzj71m2q43dzr8rkrby0qc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-pullrequest";
+          sha256 = "1p5mwpl59iwd1aqczf1b5shcpzhlqwrcy2vp46c276mhqx15r8fr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs magit request ];
+        meta = {
+          homepage = "https://melpa.org/#/github-pullrequest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-search = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , gh
+                                 , lib
+                                 , magit
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "github-search";
+        ename = "github-search";
+        version = "20170823.2023";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "github-search";
+          rev = "c5fa1d9f8f9bcf201fa31478a6f5e02ed5ac086b";
+          sha256 = "1v9kswj65sdb90lr4a2xqai55kyp3jp46nksikxx9m243nxdsh9q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-search";
+          sha256 = "1pwrzbbwnq0il5494561fyvkr0vmm5jqlvpffgkk28c54vs7ms0b";
+          name = "recipe";
+        };
+        packageRequires = [ gh magit ];
+        meta = {
+          homepage = "https://melpa.org/#/github-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-stars = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , ghub
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "github-stars";
+        ename = "github-stars";
+        version = "20181117.2048";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "github-stars.el";
+          rev = "807de6da3ab32d278d68a1b709c012f6bfa4d280";
+          sha256 = "152gqg2kvfnfflndx15zkyzapzfkv741rwd0g3m7dn37mblnhgvl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-stars";
+          sha256 = "1vljmrjid5xxmq5yfmsaq09js7zd75nmm4gd0kwm3lf71pb3lp6f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ghub ];
+        meta = {
+          homepage = "https://melpa.org/#/github-stars";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "github-theme";
+        ename = "github-theme";
+        version = "20170630.1501";
+        src = fetchFromGitHub {
+          owner = "philiparvidsson";
+          repo = "GitHub-Theme-for-Emacs";
+          rev = "29f00a51d949a248a5f6355a97131e216747c797";
+          sha256 = "16ldfz1k0hxc1b785gzrf70hg0q88ijjxp39hb62iax1k1aw9vlw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-theme";
+          sha256 = "132jahd8vvhzhhkm71dzq6x46wmaakbbxg9s7r9779bfwbrms9j9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/github-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitignore-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "gitignore-mode";
+        ename = "gitignore-mode";
+        version = "20180318.1256";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "git-modes";
+          rev = "ae6e897c06d3ff609a65a3ac2500d21ccc888822";
+          sha256 = "111pm9wwq8p3wiqgap7gyi20say3daadlaxgq2v3mwxyax8fyx34";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitignore-mode";
+          sha256 = "1i98ribmnxr4hwphd95f9hcfm5wfwgdbcxw3g0w17ws7z0ir61mn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gitignore-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitignore-templates = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "gitignore-templates";
+        ename = "gitignore-templates";
+        version = "20180327.626";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "gitignore-templates.el";
+          rev = "2b729c6b76ec940e15c1599a0105149c2e1f4b17";
+          sha256 = "14zsqp128x48d304racw25f1vdi20fadagfqswa5l3rklb0ilbsb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitignore-templates";
+          sha256 = "17zx52pmpd4yqlnj39v7ym728i710mdl0by3lc8zk6ljfz77933w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gitignore-templates";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitlab = callPackage ({ dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , pkg-info
+                          , request
+                          , s }:
+      melpaBuild {
+        pname = "gitlab";
+        ename = "gitlab";
+        version = "20180312.947";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "emacs-gitlab";
+          rev = "68318aca3206d50701039c9aae39734ca29a49f9";
+          sha256 = "0arsjdn0anp7pacwxd3cw4db8a7pgzjlnwav1l3maaz1176h4lpb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitlab";
+          sha256 = "0vxsqfnipgapnd2ijvdnkspk68dlnki3pkpkzg2h6hyazmzrsqnq";
+          name = "recipe";
+        };
+        packageRequires = [ dash pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/gitlab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitlab-ci-mode = callPackage ({ emacs
+                                  , fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yaml-mode }:
+      melpaBuild {
+        pname = "gitlab-ci-mode";
+        ename = "gitlab-ci-mode";
+        version = "20180604.1503";
+        src = fetchFromGitLab {
+          owner = "joewreschnig";
+          repo = "gitlab-ci-mode";
+          rev = "b9fd692d27351e959c4d272a2149def63ef1c00c";
+          sha256 = "132b0m3sp6vwknr665aw1mwx1q69ksrmr6xih7qi6nfgny6938qc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitlab-ci-mode";
+          sha256 = "1jg6ihrgccrcwg30ysyqw9k7rmvfmsrp70skr2057hfamvccwn4f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/gitlab-ci-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitlab-ci-mode-flycheck = callPackage ({ emacs
+                                           , fetchFromGitLab
+                                           , fetchurl
+                                           , flycheck
+                                           , gitlab-ci-mode
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "gitlab-ci-mode-flycheck";
+        ename = "gitlab-ci-mode-flycheck";
+        version = "20180604.1504";
+        src = fetchFromGitLab {
+          owner = "joewreschnig";
+          repo = "gitlab-ci-mode-flycheck";
+          rev = "30ea0eab74b24818f187242b079845785035e967";
+          sha256 = "0awv24znkxs0h8pkj4b5jwjajxkf1agam09m5glr8zn5g3xbj798";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitlab-ci-mode-flycheck";
+          sha256 = "19ixd60yynsvmaj7mkppp6k73793x794vrnhx3hh6n7dap1rsjdh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck gitlab-ci-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/gitlab-ci-mode-flycheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitolite-clone = callPackage ({ dash
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , pcache
+                                  , s }:
+      melpaBuild {
+        pname = "gitolite-clone";
+        ename = "gitolite-clone";
+        version = "20160609.1655";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "gitolite-clone";
+          rev = "d8a4c2875c984e51137c980b5773f42703602721";
+          sha256 = "11i9hxj76869w1z9xn7wq370v56hx5hm4d7msn4zgp64glpa66j9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitolite-clone";
+          sha256 = "0mv2bdfqqq47wgikkm5kwpr8gajylf1yzk2j6cxljz09amgq6c8q";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs pcache s ];
+        meta = {
+          homepage = "https://melpa.org/#/gitolite-clone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitpatch = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "gitpatch";
+        ename = "gitpatch";
+        version = "20170721.2110";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "gitpatch";
+          rev = "577d5adf65c8133caa325c10e89e1e2fc323c907";
+          sha256 = "1jj12pjwza6cq8a3kr8nqnmm3vxs0wam8h983irry4xr4ifywsn4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitpatch";
+          sha256 = "0qaswkk06z24v40nkjkv7f6gfv0dlsjd6wchkn0ppqw95883vhv1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gitpatch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitter = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , let-alist
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "gitter";
+        ename = "gitter";
+        version = "20180122.56";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "gitter.el";
+          rev = "11cb9b4b45f67bdc24f055a9bfac21d2bd19ea1a";
+          sha256 = "14ri86kxqz9qfhcr0bkgfyggy4bgg9imk9akhw6dfzqkl90gn2gy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitter";
+          sha256 = "1ad5abqgfh6x2fcqbbdvgbg8xin69j0h93z7bav1hs3jla7mgwnv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/gitter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gl-conf-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "gl-conf-mode";
+        ename = "gl-conf-mode";
+        version = "20170714.610";
+        src = fetchFromGitHub {
+          owner = "llloret";
+          repo = "gitolite-emacs";
+          rev = "9136a9b737e0a5b6471a91571d104c487c43f35b";
+          sha256 = "0wls3sfplrf7wkg7g7fxx4s87cvm3p7myxw6k91np6pbfh8p0s9q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gl-conf-mode";
+          sha256 = "0lf8xmq309aqyf16ymqlr8gj2qawlsqagbdndj0kgj72dnnw4cfm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gl-conf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    glab = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "glab";
+        ename = "glab";
+        version = "20180821.851";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "ghub";
+          rev = "d75ba1bd8843f53ae3e37b206187b3b97d9f3540";
+          sha256 = "0h9v8l1v9wa5sxng16qqlpgqpdi6an7fn83frrk4lfxf555mm2aq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/glab";
+          sha256 = "0kyr1znf82qi15r6iha6dbyhmfzghx969hd364rsvkly8ry8pk5m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/glab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    glsl-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "glsl-mode";
+        ename = "glsl-mode";
+        version = "20170927.736";
+        src = fetchFromGitHub {
+          owner = "jimhourihan";
+          repo = "glsl-mode";
+          rev = "384968506cf25c5c2df61b32fdfdbd041e3bf651";
+          sha256 = "0729s4w010vw4ajvh1zpni7szxv9rpm6jk2y9hp7qyi67zbgjjgc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/glsl-mode";
+          sha256 = "0d05qb60k5f7wwpsp3amzghayfbwcha6rh8nrslhnklpjbg87aw5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/glsl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gmail-message-mode = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , ham-mode
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "gmail-message-mode";
+        ename = "gmail-message-mode";
+        version = "20160627.1147";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "gmail-mode";
+          rev = "ec36672a9dc93c09ebe2f77597b498d11883d008";
+          sha256 = "0xcdd3abcrqr7nabdmmh0kgfar64hhgnrhsiwg3q201cymhnv49p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gmail-message-mode";
+          sha256 = "0py0i7b893ihb8l1hmk3jfl0xil450znadcd18q7svr3zl2m0gkk";
+          name = "recipe";
+        };
+        packageRequires = [ ham-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/gmail-message-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gmail2bbdb = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "gmail2bbdb";
+        ename = "gmail2bbdb";
+        version = "20170423.444";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "gmail2bbdb";
+          rev = "a84fa385cfaec7fc5f1518c368e52722da139f99";
+          sha256 = "1qbf3r8a66xlrbni3hv5q5b5v3izis5aid06228rfpc2hwa97hr7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gmail2bbdb";
+          sha256 = "03jhrk4vpjim3ybzjxy7s9r1cgjysj9vlc4criz5k0w7vqz3r28j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gmail2bbdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gmpl-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "gmpl-mode";
+        ename = "gmpl-mode";
+        version = "20171031.1354";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "gmpl-mode";
+          rev = "c5d362169819ee8b8e8954145daee7e260c54921";
+          sha256 = "00p2z6kbyc0bas21d1zygx7z49w6mf22y9kf1rcm9gqsnnadb4j9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gmpl-mode";
+          sha256 = "1f60xim8h85jmqpvgfg402ff8mjd66gla8fa0cwi7l18ijnjblpz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gmpl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnome-calendar = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "gnome-calendar";
+        ename = "gnome-calendar";
+        version = "20161110.456";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "gnome-calendar.el";
+          rev = "668591bec95c23934c5e1ef100cec4824e7cb25d";
+          sha256 = "01dgv24snakxr7smkza6334wr74q74g0mrkzd93xwdxrm5k68ahg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnome-calendar";
+          sha256 = "00clamlm5b42zqggxywdqrf6s2dnsxir5rpd8mjpyc502kqmsfn6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gnome-calendar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnomenm = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , kv
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "gnomenm";
+        ename = "gnomenm";
+        version = "20150316.1218";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-nm";
+          rev = "9065cda44ffc9e06239b8189a0154d31314c3b4d";
+          sha256 = "1svnvm9fqqx4mrk9jjn11pzqwk71w8kyyd9wwxam8gz22ykw5jb2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnomenm";
+          sha256 = "01vmr64j6hcvdbzg945c5a2g4fiidl18dsk4px7mdf85cv45kzqm";
+          name = "recipe";
+        };
+        packageRequires = [ dash kv s ];
+        meta = {
+          homepage = "https://melpa.org/#/gnomenm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gntp = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "gntp";
+        ename = "gntp";
+        version = "20141024.1950";
+        src = fetchFromGitHub {
+          owner = "tekai";
+          repo = "gntp.el";
+          rev = "767571135e2c0985944017dc59b0be79af222ef5";
+          sha256 = "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gntp";
+          sha256 = "1ywj3p082g54dcpy8q4jnkqfr12npikx8yz14r0njxdlr0janh4f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gntp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnu-apl-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "gnu-apl-mode";
+        ename = "gnu-apl-mode";
+        version = "20180129.2300";
+        src = fetchFromGitHub {
+          owner = "lokedhs";
+          repo = "gnu-apl-mode";
+          rev = "fa569827c916ed46e410e9f28e4b4d28f8567654";
+          sha256 = "0x1i1xcd3d34c9c87isd39d9ra69ywd01ag0hgkkgdzrk44znshj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnu-apl-mode";
+          sha256 = "0971pzc14gw8f0b4lzvicxww1k3wc58gbr3fd0qvdra2jifk2is6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gnu-apl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnuplot = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "gnuplot";
+        ename = "gnuplot";
+        version = "20141231.1337";
+        src = fetchFromGitHub {
+          owner = "bruceravel";
+          repo = "gnuplot-mode";
+          rev = "21f9046e3f5caad41b750b5c9cee02fa4fd20fb9";
+          sha256 = "1gm116479gdwc4hr3nyv1id692dcd1sx7w2a80pvmgr35ybccn7c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnuplot";
+          sha256 = "06c5gqf02fkra8c52xck1lqvf4yg45zfibyf9zqmnbwk7p2jxrds";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gnuplot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnuplot-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "gnuplot-mode";
+        ename = "gnuplot-mode";
+        version = "20171013.916";
+        src = fetchFromGitHub {
+          owner = "mkmcc";
+          repo = "gnuplot-mode";
+          rev = "601f6392986f0cba332c87678d31ae0d0a496ce7";
+          sha256 = "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnuplot-mode";
+          sha256 = "1avpik06cmi4h6v6039c64b4zw1r1nsg3nrryl254gl881pysfxg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gnuplot-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnus-alias = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "gnus-alias";
+        ename = "gnus-alias";
+        version = "20150315.1742";
+        src = fetchFromGitHub {
+          owner = "hexmode";
+          repo = "gnus-alias";
+          rev = "9447d3ccb4c0e75d0468899cccff7aa249657bac";
+          sha256 = "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnus-alias";
+          sha256 = "0mbq9v8fiqqyldpb66v9bc777mzxywaq2dabivabxjg6554s8chf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gnus-alias";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnus-desktop-notify = callPackage ({ fetchFromGitLab
+                                       , fetchurl
+                                       , gnus ? null
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "gnus-desktop-notify";
+        ename = "gnus-desktop-notify";
+        version = "20180623.838";
+        src = fetchFromGitLab {
+          owner = "wavexx";
+          repo = "gnus-desktop-notify.el";
+          rev = "44ebe0241a19f4052cd427dff408206542aa3c8f";
+          sha256 = "1fqkclbddwfqywvkrb7l2cpibapxrk82ikdpbxapj09iwyn3ijlz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnus-desktop-notify";
+          sha256 = "1cfcmmq0ywgp41g0rf8s5fabh3yqbv9iacxi7v74kqh59bqdnz3x";
+          name = "recipe";
+        };
+        packageRequires = [ gnus ];
+        meta = {
+          homepage = "https://melpa.org/#/gnus-desktop-notify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnus-select-account = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "gnus-select-account";
+        ename = "gnus-select-account";
+        version = "20170721.2211";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "gnus-select-account";
+          rev = "ddc8c135eeaf90f5b6692a033af2badae36e68ce";
+          sha256 = "0csq8cqv028g3mrvk88l0nlj3dk5fh67c10hdjwvxbf7winv0391";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnus-select-account";
+          sha256 = "1yini6kif7vp5msmhnnpfkab5m5px8y4wgvc0f0k79kdd17gvpsx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gnus-select-account";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnus-summary-ext = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "gnus-summary-ext";
+        ename = "gnus-summary-ext";
+        version = "20180113.516";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "gnus-summary-ext";
+          rev = "025fd853fe9280ae696a89ec2c2cac9befd010aa";
+          sha256 = "07ww2nc03daz70f2ajw7b2gin22xa306001zclhrxkm1cpjif2fi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnus-summary-ext";
+          sha256 = "0svyz8fy4k9ba6gpdymf4cf8zjjpgm71y48vlybxbv507xjm17qf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gnus-summary-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnus-x-gm-raw = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , log4e
+                                 , melpaBuild
+                                 , yaxception }:
+      melpaBuild {
+        pname = "gnus-x-gm-raw";
+        ename = "gnus-x-gm-raw";
+        version = "20140610.31";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "gnus-x-gm-raw";
+          rev = "c2c8c5e94ac94f4c40e023452119c088ac59eac9";
+          sha256 = "0gf418ri69yzi9cbxdyna9kxjsniyw72xix2r94m439k1axpwa3f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnus-x-gm-raw";
+          sha256 = "1a5iccghzqmcndql2bppvr48535sf6jbvc83iypr1031z1b5k4wg";
+          name = "recipe";
+        };
+        packageRequires = [ log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/gnus-x-gm-raw";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "go";
+        ename = "go";
+        version = "20161110.1849";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "el-go";
+          rev = "ff45fb44d9cb6579d8511d8b6156ed0b34d5ac97";
+          sha256 = "14av8zcxp9r4ka0h9x73i6gzwbf231wqkin65va3agrzwaf8swz1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go";
+          sha256 = "1mk1j504xwi3xswc0lfr3czs9j6wcsbrw2halr46mraiy8lnbz6h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/go";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-add-tags = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "go-add-tags";
+        ename = "go-add-tags";
+        version = "20161123.427";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-go-add-tags";
+          rev = "54879945e46a0884c5f93d7fd6c866a9cdf401ac";
+          sha256 = "1gr65skrd41pk46ilfsbxfdng4br6h9c6blf1q1wx6i9ylhs0ak5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-add-tags";
+          sha256 = "0nvas44rsvqzk2ay5bhzkbrnzql13vnxq9pk4lp4mvp86dda9qim";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/go-add-tags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-autocomplete = callPackage ({ auto-complete
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "go-autocomplete";
+        ename = "go-autocomplete";
+        version = "20150903.1940";
+        src = fetchFromGitHub {
+          owner = "mdempsky";
+          repo = "gocode";
+          rev = "ccbc3bda7debb16fa6672e719f8f74fa2523c321";
+          sha256 = "0gshb5d20v342disc290pry8i6p60srl2ip186kb4sk692lk0ily";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-autocomplete";
+          sha256 = "15ns1zzw6kblcbih7dmjvk1p0f6f3p2wpgx4gnd9ax0fcj65ghwi";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/go-autocomplete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-complete = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , go-mode
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "go-complete";
+        ename = "go-complete";
+        version = "20151015.228";
+        src = fetchFromGitHub {
+          owner = "vibhavp";
+          repo = "go-complete";
+          rev = "e39efc356f6e19f17db3f3d2c81f28d38b31a55e";
+          sha256 = "0phy24cra8cza89xrqsx9xrwg98v9qwqx0fzgm1gwlf333zb3hha";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-complete";
+          sha256 = "0dl0ibw145f84kd709r5i2kaw07z1sjzn3dmsiqn8dncspcf2vb4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-direx = callPackage ({ cl-lib ? null
+                            , direx
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "go-direx";
+        ename = "go-direx";
+        version = "20150315.1843";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-go-direx";
+          rev = "aecb9fef4d56d04d230d37c75c260c8392b5ad9f";
+          sha256 = "05yc0nylg3457an5j7yp3x23157j0hbi21qhcpgsa01144mwnwln";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-direx";
+          sha256 = "0dq5d7fsld4hww8fl68c18qp6fl3781dqqwd98cg68bihw2wwni7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib direx ];
+        meta = {
+          homepage = "https://melpa.org/#/go-direx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-dlv = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , go-mode
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "go-dlv";
+        ename = "go-dlv";
+        version = "20160517.1346";
+        src = fetchFromGitHub {
+          owner = "benma";
+          repo = "go-dlv.el";
+          rev = "45a9e8a047c9995eb7c802268d96b3e527569f41";
+          sha256 = "0pph99fl3bwws9vr1r8fs411frd04rfdhl87fy2a75cqcpxlhsj4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-dlv";
+          sha256 = "0lb5v9pmd6m8nvk4c9gcda5dmshrf5812gg1arq5p2g0nzg32mm8";
+          name = "recipe";
+        };
+        packageRequires = [ go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-dlv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-eldoc = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , go-mode
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "go-eldoc";
+        ename = "go-eldoc";
+        version = "20170305.627";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-go-eldoc";
+          rev = "cbbd2ea1e94a36004432a9ac61414cb5a95a39bd";
+          sha256 = "1029qg6ida3cw4ynxll6ykpnqkpbrbrx12nnzcplhc25vqpz7hik";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-eldoc";
+          sha256 = "1k115dirfqxdnb6hdzlw41xdy2dxp38g3vq5wlvslqggha7gzhkk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-eldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-errcheck = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "go-errcheck";
+        ename = "go-errcheck";
+        version = "20160722.1743";
+        src = fetchFromGitHub {
+          owner = "dominikh";
+          repo = "go-errcheck.el";
+          rev = "9db21eccecedc2490793f176246094167164af31";
+          sha256 = "1ngzgkmcbk6qa3p97hch75k446h15515arsdfv7mqb4m5va6429h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-errcheck";
+          sha256 = "11a75h32cd5h5xjv30x83k60s49k9fhgis31358q46y2gbvqp5bs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/go-errcheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-fill-struct = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "go-fill-struct";
+        ename = "go-fill-struct";
+        version = "20171224.1931";
+        src = fetchFromGitHub {
+          owner = "s-kostyaev";
+          repo = "go-fill-struct";
+          rev = "a613d0b378473eef39e8fd5724abe790aea84321";
+          sha256 = "16bgfykvqc61hlx1hj55z15y83zgpavhb853sblds75m8w7mndqg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-fill-struct";
+          sha256 = "19xxqb836saxigvwdqf4xv0y9zrl7csv97x0facgyjyiqmwhx3x7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/go-fill-struct";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-gen-test = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "go-gen-test";
+        ename = "go-gen-test";
+        version = "20171022.2058";
+        src = fetchFromGitHub {
+          owner = "s-kostyaev";
+          repo = "go-gen-test";
+          rev = "44c202ac97e728e93a35cee028a0ea8dd6e4292c";
+          sha256 = "1vi5xsf0xbcbvapi20hsjangwyp38cbgi8kiccpmingnq2kp8ghs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-gen-test";
+          sha256 = "1pj8n8xj9ccq9ips4wy4v6hdxxgwv11pwi671l6jjrig38v13dzr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/go-gen-test";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-gopath = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "go-gopath";
+        ename = "go-gopath";
+        version = "20160705.334";
+        src = fetchFromGitHub {
+          owner = "iced";
+          repo = "go-gopath";
+          rev = "5172fc53f21edbf9347d5ee7d1d745da1ec88a15";
+          sha256 = "0gqb3k33y42gchc89rw3k1pvb7ai9ka50ljfd4avk31fdpr4dln5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-gopath";
+          sha256 = "0jfy2r3axqpn2cnibp8f9vw36kmx0icixhj6zy43d9xa4znvdqal";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/go-gopath";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-guru = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , go-mode
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "go-guru";
+        ename = "go-guru";
+        version = "20181011.2030";
+        src = fetchFromGitHub {
+          owner = "dominikh";
+          repo = "go-mode.el";
+          rev = "120fb911f1d8038f828da85eed8aaad977dabd8c";
+          sha256 = "18qx1mf4fgrzm8g89c4y7zvwl3djrbbkhar242zl5ab5218dsp0s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-guru";
+          sha256 = "01f0gz65z8d0iv8k49xl2sp6q4qnsvwhd4g8fb2irp7iclb0xmvk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-guru";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-imenu = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "go-imenu";
+        ename = "go-imenu";
+        version = "20181029.329";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "go-imenu.el";
+          rev = "00bb69c1c71453f43ab2d6622a74e3c8e6b454b9";
+          sha256 = "1bwcsph6ywnqf2dbzh82vzw7m6g5qyxzjln8n3470h06iv7jhic2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-imenu";
+          sha256 = "0s8rc7rkqlywrhnm2h8yygn87jhjc492wmsvnr1rxl62wf5cijms";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/go-imenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-impl = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , go-mode
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "go-impl";
+        ename = "go-impl";
+        version = "20170125.752";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-go-impl";
+          rev = "69f0d0ef05771487e15abec500cd06befd171abf";
+          sha256 = "1rmik6g3l9q1bqavmqx1fhcadz4pwswgfnkbaxl6c5b6g2sl26iq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-impl";
+          sha256 = "09frwpwc080rfpwkb63yv47dyj741lrpyrp65sq2bn4sf03xw0cx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-impl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-imports = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "go-imports";
+        ename = "go-imports";
+        version = "20180709.2228";
+        src = fetchFromGitHub {
+          owner = "yasushi-saito";
+          repo = "go-imports";
+          rev = "d9950309c868aa46c45f8671413e53f97dc7fe0b";
+          sha256 = "1nq0s6zkk87jggj91iza9ap255i8r1c8ahb1118s25pvb5gcfnfv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-imports";
+          sha256 = "0xxlh4rmyvfxiynsdqng6wd3js7h3azhb8ii0ch7n0hhqkcnda4x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/go-imports";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "go-mode";
+        ename = "go-mode";
+        version = "20181011.2029";
+        src = fetchFromGitHub {
+          owner = "dominikh";
+          repo = "go-mode.el";
+          rev = "be9186c658c33e2cfd09e8808e578d525dcbf2a2";
+          sha256 = "086qj1rmfkk7x0a1p76z33rycgrcawmyg7h3k9j978v4k1xa5xnf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-mode";
+          sha256 = "0ghqm4lbkfla79plqiyb1lzf5kbz0380h9vf8px15zal00xrv0bl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/go-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-playground = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , go-mode
+                                 , gotest
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "go-playground";
+        ename = "go-playground";
+        version = "20181103.1146";
+        src = fetchFromGitHub {
+          owner = "grafov";
+          repo = "go-playground";
+          rev = "790562506dc941648d7a54fd21677871942251e4";
+          sha256 = "06aaxx7qk1g7sk80rr3jgz6qrqlh5zlf57h9di740645kmyr6vkd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-playground";
+          sha256 = "1rabwc80qwkafq833m6a199zfiwwmf0hha89721gc7i0myk9pac6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode gotest ];
+        meta = {
+          homepage = "https://melpa.org/#/go-playground";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-playground-cli = callPackage ({ cl-lib ? null
+                                     , deferred
+                                     , emacs
+                                     , f
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , let-alist
+                                     , lib
+                                     , melpaBuild
+                                     , names
+                                     , request
+                                     , s }:
+      melpaBuild {
+        pname = "go-playground-cli";
+        ename = "go-playground-cli";
+        version = "20160503.214";
+        src = fetchFromGitHub {
+          owner = "kosh04";
+          repo = "emacs-go-playground";
+          rev = "60beebd98e3930641d41cee0189c579626f223bc";
+          sha256 = "1fcm65r1sy2fmcp2i7mwc7mxqiaf4aaxda4i2qrm8s25cxsffir7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-playground-cli";
+          sha256 = "00h89rh8d7lq1di77nv609xbzxmjmffq6mz3cmagylxncflg81jc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib deferred emacs f let-alist names request s ];
+        meta = {
+          homepage = "https://melpa.org/#/go-playground-cli";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-projectile = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , go-eldoc
+                                 , go-guru
+                                 , go-mode
+                                 , go-rename
+                                 , lib
+                                 , melpaBuild
+                                 , projectile }:
+      melpaBuild {
+        pname = "go-projectile";
+        ename = "go-projectile";
+        version = "20181023.1444";
+        src = fetchFromGitHub {
+          owner = "dougm";
+          repo = "go-projectile";
+          rev = "7910884b4de560f3fc70b53752f658ef9cdc02cd";
+          sha256 = "03bh8k95qrc3q1sja05bbv3jszh6rgdv56jpi8g06yxk53457a1n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-projectile";
+          sha256 = "07diik27gr82n11a8k62v1jxq8rhi16f02ybk548f6cn7iqgp2ml";
+          name = "recipe";
+        };
+        packageRequires = [ go-eldoc go-guru go-mode go-rename projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/go-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-rename = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , go-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "go-rename";
+        ename = "go-rename";
+        version = "20180626.2348";
+        src = fetchFromGitHub {
+          owner = "dominikh";
+          repo = "go-mode.el";
+          rev = "da55ef1ad3a4802f7d056d3065f6962db3d6fd14";
+          sha256 = "1mphf9msxc24q2i0ghcgd0ah6r0x6svxak6kn9is7x0kbfiy9226";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-rename";
+          sha256 = "1cd2nfgwnqzylbry11ahahdip8w66w5hnrndrs65ip10s08w2xki";
+          name = "recipe";
+        };
+        packageRequires = [ go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-rename";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-scratch = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , go-mode
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "go-scratch";
+        ename = "go-scratch";
+        version = "20150809.2140";
+        src = fetchFromGitHub {
+          owner = "shosti";
+          repo = "go-scratch.el";
+          rev = "3f68cbcce04f59eb8e83af109164731ec0454be0";
+          sha256 = "1a6vg2vwgnafb61pwrd837fwlq5gs80wawbzjsnykawnmcaag8pm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-scratch";
+          sha256 = "11ahvmxbh67wa39cymymxmcpkq0kcn5jz0rrvazjy2p1hx3x1ma5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-snippets = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , yasnippet }:
+      melpaBuild {
+        pname = "go-snippets";
+        ename = "go-snippets";
+        version = "20180112.2211";
+        src = fetchFromGitHub {
+          owner = "toumorokoshi";
+          repo = "go-snippets";
+          rev = "d437df148879566ffe7f2e503a3cf2602aa9fb28";
+          sha256 = "0rs2yj9bh0snf13hfj9bvyawl16j8416naz6h52l21q72ymd4b0k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-snippets";
+          sha256 = "1wcbnfzxailv18spxyv4a0nwlqh9l7yf5vxg0qcjcp5ajd2w12kn";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/go-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-stacktracer = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "go-stacktracer";
+        ename = "go-stacktracer";
+        version = "20150430.1442";
+        src = fetchFromGitHub {
+          owner = "samertm";
+          repo = "go-stacktracer.el";
+          rev = "a2ac6d801b389f80ca4e2fcc1ab44513a9e55976";
+          sha256 = "0n5nsyfwx2pdlwx6bl35wrfyady5dwraimv92f58mhc344ajd70y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-stacktracer";
+          sha256 = "1laz2ggqydnyr7b36ggb7sphlib79dhp7nszw42wssmv212v94cy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/go-stacktracer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-tag = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , go-mode
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "go-tag";
+        ename = "go-tag";
+        version = "20180226.2011";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "emacs-go-tag";
+          rev = "8dbcb7d42dccac046c7beb31bdf79bb09a0fef40";
+          sha256 = "1l20az4lhgbrh96sk6bpvp3w4bh29653fms4bimmiaqmhn2n14y2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-tag";
+          sha256 = "18ff41i0gr708fl4gzzspf9cc09nv4wy21wsn609yhwlh7w0vs1f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-tag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gobgen = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "gobgen";
+        ename = "gobgen";
+        version = "20161020.823";
+        src = fetchFromGitHub {
+          owner = "gergelypolonkai";
+          repo = "gobgen.el";
+          rev = "ed2c2b0d217deae293096f3cf14aa492791ddd4f";
+          sha256 = "1isda941gzrl9r2xxaxbsqjxq146cmnhl04m634m8m0q2d751pwk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gobgen";
+          sha256 = "0fb0q9x7wj8gs1iyr87q1vpxmfa2d43zy6cgxpzmv2wc26x96vi7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gobgen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    god-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "god-mode";
+        ename = "god-mode";
+        version = "20180117.334";
+        src = fetchFromGitHub {
+          owner = "chrisdone";
+          repo = "god-mode";
+          rev = "344167ed9b4c212273dd056e7481cf1373b461d0";
+          sha256 = "0y7phh7amrdphv9dkf0304z2knyas745ir59ybngh1a55dfc2mf4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/god-mode";
+          sha256 = "01xx2byjh6vlckaxamm2x2qzicd9qc8h6amyjg0bxz3932a4llaa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/god-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    godoctor = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "godoctor";
+        ename = "godoctor";
+        version = "20180710.1452";
+        src = fetchFromGitHub {
+          owner = "microamp";
+          repo = "godoctor.el";
+          rev = "4b45ff3d0572f0e84056e4c3ba91fcc178199859";
+          sha256 = "12gga1ghc54r6f2adyaq30hm2yxspvgg54zd4k82c3d6cj51qwci";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/godoctor";
+          sha256 = "0k734hry9npsr6zhsplcvmcjqw6jdf79pv4k9dw0xvd598hkpazz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/godoctor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gold-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , sws-mode }:
+      melpaBuild {
+        pname = "gold-mode";
+        ename = "gold-mode";
+        version = "20140606.1906";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "gold-mode-el";
+          rev = "6d3aa59602b1b835495271c8c9741ac344c2eab1";
+          sha256 = "1k4i9z9h4m0h0y92mncr96jir63q5h1bix5bpnlfxhxl5w8pvk1q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gold-mode";
+          sha256 = "1b67hd1fp6xcj65xxp5jcpdjspxsbzxy26v6lqg5kiy8knls57kf";
+          name = "recipe";
+        };
+        packageRequires = [ sws-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/gold-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    golden-ratio = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "golden-ratio";
+        ename = "golden-ratio";
+        version = "20150819.420";
+        src = fetchFromGitHub {
+          owner = "roman";
+          repo = "golden-ratio.el";
+          rev = "72b028808b41d23fa3f7e8c0d23d2c475e7b46ae";
+          sha256 = "0wdw89n7ngxpcdigv8c01h4i84hsdh0y7xq6jdj1i6mnajl8gk92";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/golden-ratio";
+          sha256 = "15fkrv0sgpzmnw2h4fp2gb83d8s42khkfq1h76l241njjayk1f81";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/golden-ratio";
+          license = lib.licenses.free;
+        };
+      }) {};
+    golden-ratio-scroll-screen = callPackage ({ fetchFromGitHub
+                                              , fetchurl
+                                              , lib
+                                              , melpaBuild }:
+      melpaBuild {
+        pname = "golden-ratio-scroll-screen";
+        ename = "golden-ratio-scroll-screen";
+        version = "20170223.1829";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "golden-ratio-scroll-screen";
+          rev = "0428fbe020ddb90811f2932e661796f667bf4ac5";
+          sha256 = "1v4rz5ddd0x7szk9pz5hrxp25xqdf6gngrm8y2cf8xgyvrlscyba";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/golden-ratio-scroll-screen";
+          sha256 = "1ygh104vr65s7frlkzyhrfi6shrbvp2b2j3ynj5dip253v85xki5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/golden-ratio-scroll-screen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    goldendict = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "goldendict";
+        ename = "goldendict";
+        version = "20180121.120";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "goldendict.el";
+          rev = "1aac19daaec811deb9afe45eea4929309c09ac8b";
+          sha256 = "1il432f6ayj2whl4s804n5wykgs51jhbx4xkcbfgqra58cbjrjhi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/goldendict";
+          sha256 = "0zvrlz169pg9bj1bmks4lh5zn8cygqzwiyzg49na2a7wf2sk9m1f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/goldendict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    golint = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "golint";
+        ename = "golint";
+        version = "20180221.1215";
+        src = fetchFromGitHub {
+          owner = "golang";
+          repo = "lint";
+          rev = "0562613f16a6ec439a4a68e817e69e0f7c405c87";
+          sha256 = "1lhzas39dkf38965ibrxdfdh7gxsjiyzqas7h51zr5fdx6cyjwnf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/golint";
+          sha256 = "1q4y6mgll8wyp0c7zx810nzsm0k4wvz0wkly1fbja9z63sjzzxwb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/golint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gom-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "gom-mode";
+        ename = "gom-mode";
+        version = "20131007.1953";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-gom-mode";
+          rev = "972e33df1d38ff323bc97de87477305826013701";
+          sha256 = "1anjzlg53kjdqfjcdahbxy8zk9hdha075c1f9nzrnnbbqvmirbbb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gom-mode";
+          sha256 = "07zr38gzqb3ds9mpf94c1vhl1rqd0cjh4g4j2bz86q16c0rnmp7m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gom-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    google = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "google";
+        ename = "google";
+        version = "20140416.1048";
+        src = fetchFromGitHub {
+          owner = "hober";
+          repo = "google-el";
+          rev = "3b3189a8b201c8d36fed6e61496274e530dd40bd";
+          sha256 = "06p1dpnmg7lhdff1g7c04qq8f9srgkmnm42jlqy85k87j3p5ys2i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/google";
+          sha256 = "11a521cq5bj7afl7bqiilg0c81dy00lnhak7h3d9c9kwg7kfljiq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/google";
+          license = lib.licenses.free;
+        };
+      }) {};
+    google-c-style = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "google-c-style";
+        ename = "google-c-style";
+        version = "20180130.936";
+        src = fetchFromGitHub {
+          owner = "google";
+          repo = "styleguide";
+          rev = "505ba68c74eb97e6966f60907ce893001bedc706";
+          sha256 = "0277vsj0shrlgb96zgy8lln55l2klzkk6h28g4srbpgkwz5xxsx7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/google-c-style";
+          sha256 = "10gsbg880jbvxs4291vi2ww30ird2f313lbgcb11lswivmhrmd1r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/google-c-style";
+          license = lib.licenses.free;
+        };
+      }) {};
+    google-contacts = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , oauth2 }:
+      melpaBuild {
+        pname = "google-contacts";
+        ename = "google-contacts";
+        version = "20180919.614";
+        src = fetchFromGitHub {
+          owner = "jd";
+          repo = "google-contacts.el";
+          rev = "2273582713712a58e71156a8a29972d42e8e690e";
+          sha256 = "1iw5khd3mcgq7vmpm2xw1s713glc8c569n4mgrmmggg73sjnj4kf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/google-contacts";
+          sha256 = "0wgi244zy2am90alimgzazshk2z756bk1hchphssfa4j15n16jgn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib oauth2 ];
+        meta = {
+          homepage = "https://melpa.org/#/google-contacts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    google-maps = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "google-maps";
+        ename = "google-maps";
+        version = "20171002.734";
+        src = fetchFromGitHub {
+          owner = "jd";
+          repo = "google-maps.el";
+          rev = "c0e5dccfdc9f7f77ff8f29177547be47833d7156";
+          sha256 = "1agsfmbd2zbn1xs05kxlb32hhkmrri3hdmcrvf0w1fcsgc5a9085";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/google-maps";
+          sha256 = "0a0wqs3cnlpar2dzdi6h14isw78vgqr2r6psmrzbdl00s4fcyxwx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/google-maps";
+          license = lib.licenses.free;
+        };
+      }) {};
+    google-this = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "google-this";
+        ename = "google-this";
+        version = "20170810.515";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "emacs-google-this";
+          rev = "8a2e3ca5da6a8c89bfe99a21486c6c7db125dc84";
+          sha256 = "1dbra309w8awmi0g0pp7r2dm9nwrj2j9lpl7md8wa89rnzazwahl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/google-this";
+          sha256 = "0hg9y1b03aiamyn3mam3hyxmxy21wygxrnrww91zcbwlzgp4dd2c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/google-this";
+          license = lib.licenses.free;
+        };
+      }) {};
+    google-translate = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "google-translate";
+        ename = "google-translate";
+        version = "20180926.1225";
+        src = fetchFromGitHub {
+          owner = "atykhonov";
+          repo = "google-translate";
+          rev = "24ee8e91b7ada9415e2035ee54e3342994fcfe04";
+          sha256 = "0mrvfrspz610cgc7p76yprvkxaffbc3hygqgqyam77k3a61mlydp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/google-translate";
+          sha256 = "1crgzdd32mk6hrawdypg496dwh51wzwfb5wqw4a2j5l8y958xf47";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/google-translate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    goose-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "goose-theme";
+        ename = "goose-theme";
+        version = "20160828.545";
+        src = fetchFromGitHub {
+          owner = "tokenrove";
+          repo = "goose-theme";
+          rev = "acd017b50ab25a75fd1331eb3de66467e2042e9c";
+          sha256 = "1mmdvjsgnwgs6akhyj96fgj30mz53djdq85dl5q4cmiznlbma7hy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/goose-theme";
+          sha256 = "1nw948js678xc5vgrpdkykpcbn1b1id4k1clf87vfv7y5zssvd0x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/goose-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gore-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , go-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "gore-mode";
+        ename = "gore-mode";
+        version = "20151123.1127";
+        src = fetchFromGitHub {
+          owner = "sergey-pashaev";
+          repo = "gore-mode";
+          rev = "94d7f3e99104e06167967c98fdc201049c433c2d";
+          sha256 = "0l022aqpnb38q6kgdqpbxrc1r7fljwl7xq14yi5jb7qgzw2v43cz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gore-mode";
+          sha256 = "0nljybh2pw8pbbajfsz57r11rs4bvzfxmwpbm5qrdn6dzzv65nq3";
+          name = "recipe";
+        };
+        packageRequires = [ go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/gore-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gorepl-mode = callPackage ({ emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , hydra
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "gorepl-mode";
+        ename = "gorepl-mode";
+        version = "20170905.245";
+        src = fetchFromGitHub {
+          owner = "manute";
+          repo = "gorepl-mode";
+          rev = "bbd27f6a0a77f484e2a3f082d70dc69da63ae52a";
+          sha256 = "01lqirxgw7svxy1fdv49mvcbhpslf64in6c4dk36b8xhngyqbilf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gorepl-mode";
+          sha256 = "0xcjjh9hf3pv5jgv089c6bb00s215fc9qwn72fav1xbm5f49nkaq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f hydra s ];
+        meta = {
+          homepage = "https://melpa.org/#/gorepl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gotest = callPackage ({ emacs
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , go-mode
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "gotest";
+        ename = "gotest";
+        version = "20180617.633";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "gotest.el";
+          rev = "4b21b86c07a1597e5e3ca795603787906695ee1b";
+          sha256 = "1s1m7r74h2qa10z11xcrsv9ivfn9xc6bbzcxy41whdjp46m65qjm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gotest";
+          sha256 = "1kan3gykhci33jgg67jjiiz7rqlz5mpxp8sh6mb0n6kpfmgb4ly9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f go-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/gotest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gotham-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "gotham-theme";
+        ename = "gotham-theme";
+        version = "20171013.1216";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "gotham-theme";
+          rev = "5e97554d1f9639698faedb0660e63694be33bd84";
+          sha256 = "18x0b2qmyzf9sddsv9ps1059pi4ndzq44rm4yl87slq03y75nxi9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gotham-theme";
+          sha256 = "0jars6rvf7hkyf71vq06mqki1r840i1dvv43dissqjg5i4lr79cl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gotham-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    goto-chg = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "goto-chg";
+        ename = "goto-chg";
+        version = "20180105.1033";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "goto-chg";
+          rev = "e5b38e4e1378f6ea48fa9e8439f49c2998654aa4";
+          sha256 = "1fxdvgdafavc4sad5i8g0wvpdqzlgzmvfi07yrah1c5vwkrslbvj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/goto-chg";
+          sha256 = "1yd4jq4zql4av9nr1sdk4nsnnk54c3brgjhpczndy1ipiaxlnydy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/goto-chg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    goto-gem = callPackage ({ fetchFromGitLab
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "goto-gem";
+        ename = "goto-gem";
+        version = "20140729.1145";
+        src = fetchFromGitLab {
+          owner = "pidu";
+          repo = "goto-gem";
+          rev = "e3206f11f48bb7e798514a4ca2c2f60649613e5e";
+          sha256 = "0j2hdxqfsifm0d8ilwcw7np6mvn4xm58xglzh42gigj2fxv87g99";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/goto-gem";
+          sha256 = "0i79z1isdbnqmz5rlqjjys68l27nl90m1gzks4f9d6dsgfryhgwx";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/goto-gem";
+          license = lib.licenses.free;
+        };
+      }) {};
+    goto-last-change = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "goto-last-change";
+        ename = "goto-last-change";
+        version = "20150109.1023";
+        src = fetchFromGitHub {
+          owner = "camdez";
+          repo = "goto-last-change.el";
+          rev = "58b0928bc255b47aad318cd183a5dce8f62199cc";
+          sha256 = "1f0zlvva7d7iza1v79yjp0bm7vd011q4cy14g1saryll32z115z5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/goto-last-change";
+          sha256 = "1yl9p95ls04bkmf4d6az72pycp27bv7q7wxxzvj8sj97bgwvwajx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/goto-last-change";
+          license = lib.licenses.free;
+        };
+      }) {};
+    govc = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , json-mode
+                        , lib
+                        , magit-popup
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "govc";
+        ename = "govc";
+        version = "20180524.1323";
+        src = fetchFromGitHub {
+          owner = "vmware";
+          repo = "govmomi";
+          rev = "e3a01f9611c32b2362366434bcd671516e78955d";
+          sha256 = "0cicd4m8ll7y1n0c97drmvmqwsqaspwpzc6nfp73f887m8ff1xis";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/govc";
+          sha256 = "1ivgaziv25wlzg6y4zh8x7mv97pnyhi7p8jpvgh5fg5lnqpzhl4v";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs json-mode magit-popup s ];
+        meta = {
+          homepage = "https://melpa.org/#/govc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    govet = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "govet";
+        ename = "govet";
+        version = "20170808.1024";
+        src = fetchFromGitHub {
+          owner = "meshelton";
+          repo = "govet";
+          rev = "1b8c044aa856f4b62a682bc57494af19d22a6053";
+          sha256 = "1d0gd4awkkfsppqv7367bn5h8k8dlyvrg9cbvsn6mqn5j93mr3fx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/govet";
+          sha256 = "1rpgngixf1xnnqf0l2vvh6y9q3395qyj9ln1rh0xz5lm7d4pq4hy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/govet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gpastel = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "gpastel";
+        ename = "gpastel";
+        version = "20180419.2350";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "gpastel";
+          rev = "21b7d79530134d6a47eeb252b684f884c769d291";
+          sha256 = "1s1gnkpz6byf6by8r1bl9vq3slmsdavjb2ybp2zgic48favz1qm2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gpastel";
+          sha256 = "0mjy4n26s89b481dby018l80glgfwfaacihmd7vhh2c75ns671a6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gpastel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grab-mac-link = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "grab-mac-link";
+        ename = "grab-mac-link";
+        version = "20180328.745";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "grab-mac-link.el";
+          rev = "35edb57d136c2a9726fd14e6a59cce4fc0248771";
+          sha256 = "1c3g6ygi71qm3lqvhjjzxkpdhwkpx4qwm8mhinwffcib5hagrafn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grab-mac-link";
+          sha256 = "1a4wyvx1mlgnd45nn99lwy3vaiwhi1nrphfln86pb6z939dxakj3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grab-mac-link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grab-x-link = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "grab-x-link";
+        ename = "grab-x-link";
+        version = "20180205.346";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "grab-x-link";
+          rev = "d19f0c0da0ddc55005a4c1cdc2b8c5de8bea1e8c";
+          sha256 = "1l9jg2w8ym169b5dhg3k5vksbmicg4n1a55x7ddjysf8n887cpid";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grab-x-link";
+          sha256 = "1kni49n1v716w4hjfm49mk25jshfc6idpby0k58qvngbfqk3kzy5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grab-x-link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gradle-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "gradle-mode";
+        ename = "gradle-mode";
+        version = "20150313.1205";
+        src = fetchFromGitHub {
+          owner = "jacobono";
+          repo = "emacs-gradle-mode";
+          rev = "579de06674551919cddac9cfe42129f4fb0155c9";
+          sha256 = "0k86lrb55d701nj6pvlw3kjp1dcd3lzfya0hv6q56c529y69d782";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gradle-mode";
+          sha256 = "0lx9qi93wmiy9pxjxqp68scbcb4bx88b6jiqk3y8jg5cajizh24g";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/gradle-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grails = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "grails";
+        ename = "grails";
+        version = "20160416.2336";
+        src = fetchFromGitHub {
+          owner = "lifeisfoo";
+          repo = "emacs-grails";
+          rev = "fa638abe5c37f3f8af4fcd32f212453185ce50b1";
+          sha256 = "1npsjniazaq20vz3kvwr8p30ivc6x24r9a16rfcwhr5wjx3nn91b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grails";
+          sha256 = "177y6xv35d2dhc3pdx5qhpywlmlqgfnjpzfm9yxc8l6q2rgs8irw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grails";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grails-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "grails-mode";
+        ename = "grails-mode";
+        version = "20160504.211";
+        src = fetchFromGitHub {
+          owner = "Groovy-Emacs-Modes";
+          repo = "groovy-emacs-modes";
+          rev = "50801257d376fd7383ddf9c19ff567183c24ad0b";
+          sha256 = "0wy8iw12b9bs7xza8jjnjvggr59rgbsgn1kk2g0pj0nppvfdrvjm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grails-mode";
+          sha256 = "1zdlmdkwyaj2zns3xwmqpil83j7857aj2070kvx8xza66dxcnlm4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grails-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grails-projectile-mode = callPackage ({ cl-lib ? null
+                                          , emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild
+                                          , projectile }:
+      melpaBuild {
+        pname = "grails-projectile-mode";
+        ename = "grails-projectile-mode";
+        version = "20160327.624";
+        src = fetchFromGitHub {
+          owner = "yveszoundi";
+          repo = "grails-projectile-mode";
+          rev = "8efca50ce92b556fe9d467b157d7aec635bcc017";
+          sha256 = "0xnj0wp0na53l0y8fiaah50ij4r80j8a29hbjbcicska21p5w1s1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grails-projectile-mode";
+          sha256 = "0dy8v2mila7ccvb7j5jlfkhfjsjfk3bm3rcy84m0rgbqjai67amn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/grails-projectile-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grandshell-theme = callPackage ({ fetchgit
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "grandshell-theme";
+        ename = "grandshell-theme";
+        version = "20180605.2217";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/grandshell-theme.git";
+          rev = "0ed8e4273607dd4fcaa742b4097259233b09eda6";
+          sha256 = "04vx5p1ffln5b9rxgfi15q735plxcjvskby3c5k4slgwf4p91bpq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grandshell-theme";
+          sha256 = "1r0r0r0g116f4jp3rip8mjqqgdam4h5dr5qvdglr9xpirfcw6wq3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grandshell-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    graphene = callPackage ({ company
+                            , dash
+                            , exec-path-from-shell
+                            , fetchFromGitHub
+                            , fetchurl
+                            , flycheck
+                            , graphene-meta-theme
+                            , ido-completing-read-plus
+                            , lib
+                            , melpaBuild
+                            , ppd-sr-speedbar
+                            , smartparens
+                            , smex
+                            , sr-speedbar
+                            , web-mode }:
+      melpaBuild {
+        pname = "graphene";
+        ename = "graphene";
+        version = "20180529.412";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "graphene";
+          rev = "cc8477fcfb7771ea4e5bbaf3c01f9e679234c1c1";
+          sha256 = "0j0igcmfl61c4pakqmyxpwr4kjar9i81vkl84rw19phc7k9497nb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/graphene";
+          sha256 = "1wz3rvd8b7gx5d0k7yi4dd69ax5bybcm10vdc7xp4yn296lmyl9k";
+          name = "recipe";
+        };
+        packageRequires = [
+          company
+          dash
+          exec-path-from-shell
+          flycheck
+          graphene-meta-theme
+          ido-completing-read-plus
+          ppd-sr-speedbar
+          smartparens
+          smex
+          sr-speedbar
+          web-mode
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/graphene";
+          license = lib.licenses.free;
+        };
+      }) {};
+    graphene-meta-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "graphene-meta-theme";
+        ename = "graphene-meta-theme";
+        version = "20161204.807";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "graphene-meta-theme";
+          rev = "62cc73fee31f1bd9474027b83a249feee050271e";
+          sha256 = "1ydl6dlg5z4infq8j09izwgs6n97yza6nbq5rs1xfv00zd9gr63c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/graphene-meta-theme";
+          sha256 = "1cqdr93lccdpxkzgap3r3qc92dh8vqgdlnxvqkw7lrcbs31fvf3q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/graphene-meta-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    graphql = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "graphql";
+        ename = "graphql";
+        version = "20180911.1731";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "graphql.el";
+          rev = "672dd9ebd7e67d8089388b0c484cd650e76565f3";
+          sha256 = "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/graphql";
+          sha256 = "139fng2psn535ymqa7c6hm1r7ja1gs5mdvb487jj6fh0bl9wq8la";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/graphql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    graphql-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "graphql-mode";
+        ename = "graphql-mode";
+        version = "20180303.1558";
+        src = fetchFromGitHub {
+          owner = "davazp";
+          repo = "graphql-mode";
+          rev = "36b1a4ed9fe78ccd1f386111644e69a5424a1a7b";
+          sha256 = "1azq0igx07aff9r7fbl0l4vbr44c4ylfq41g5rahbc70spd85bk6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/graphql-mode";
+          sha256 = "074dc8fgbrikb5inv837n9bpmz1ami7aaxsqcci1f94x3iw8i74i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/graphql-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    graphviz-dot-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "graphviz-dot-mode";
+        ename = "graphviz-dot-mode";
+        version = "20181117.2151";
+        src = fetchFromGitHub {
+          owner = "ppareit";
+          repo = "graphviz-dot-mode";
+          rev = "243de72e09ddd5cdc4863613af8b749827a5e1cd";
+          sha256 = "10ss7mhlkqvxh7y2w7njzh3hiz3r7y49a3q9j41bwipia4yzq4n5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/graphviz-dot-mode";
+          sha256 = "04rkynsrsk6w4sxn1pc0b9b6pij1p7yraywbrk7qvv05fv69kri2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/graphviz-dot-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grapnel = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "grapnel";
+        ename = "grapnel";
+        version = "20131001.834";
+        src = fetchFromGitHub {
+          owner = "leathekd";
+          repo = "grapnel";
+          rev = "7387234eb3f0285a490fddb1e06a4bf029719fb7";
+          sha256 = "0xcj1kqzgxifhrhpl9j2nfpnkd6213ix5z7f97269v3inpzaiyf5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grapnel";
+          sha256 = "019cdx1wdx8sc2ibqwgp1akgckzxxvrayyp2sv806gha0kn6yf6r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grapnel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grass-mode = callPackage ({ cl-lib ? null
+                              , dash
+                              , fetchhg
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "grass-mode";
+        ename = "grass-mode";
+        version = "20170503.800";
+        src = fetchhg {
+          url = "https://bitbucket.com/tws/grass-mode.el";
+          rev = "1ae8eae88117";
+          sha256 = "1sl3d5759fjm98pb50ykz2c05czb2298ipccwj2qz2hdzq63hfv8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grass-mode";
+          sha256 = "1lq6bk4bwgcy4ra3d9rlca3fk87ydg7xnnqcqjg0pw4m9xnr3f7v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/grass-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grayscale-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "grayscale-theme";
+        ename = "grayscale-theme";
+        version = "20171005.102";
+        src = fetchFromGitHub {
+          owner = "belak";
+          repo = "emacs-grayscale-theme";
+          rev = "917d63c0effc8459502a41e0cad5822d2b200499";
+          sha256 = "0vkv34aslcw2fl9yx8j6094s8j5mgpqrwvyf07a1d16rixncffpm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grayscale-theme";
+          sha256 = "0jbzb1zxv5mg3pivii31d4kz75igm339nw4cmx9kgzia9zal5f1r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grayscale-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    green-is-the-new-black-theme = callPackage ({ fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild }:
+      melpaBuild {
+        pname = "green-is-the-new-black-theme";
+        ename = "green-is-the-new-black-theme";
+        version = "20180322.1903";
+        src = fetchFromGitHub {
+          owner = "fredcamps";
+          repo = "green-is-the-new-black-emacs";
+          rev = "8a03687a2b8b55c5dc7f099086019278d505d8d8";
+          sha256 = "07j5sv8dskqxpbzr5f58n75cziyqm9v01c3f7wmwfs8jl7h5nc4m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/green-is-the-new-black-theme";
+          sha256 = "03q0vj409icmawffy2kd9yl04r453q80cy1p9y4i3xk368z0362g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/green-is-the-new-black-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    green-phosphor-theme = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "green-phosphor-theme";
+        ename = "green-phosphor-theme";
+        version = "20150515.747";
+        src = fetchFromGitHub {
+          owner = "aalpern";
+          repo = "emacs-color-theme-green-phosphor";
+          rev = "5549781559ff5daa85c1d6c635c94524c1c5f644";
+          sha256 = "0rzbq3vxx8ymgb73smlbjlsffrrrmwp266q93wv6k08h5laj9vwr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/green-phosphor-theme";
+          sha256 = "1p4l75lahmbjcx74ca5jcyc04828vlcahk7gzv5lr7z9mhvq6fbh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/green-phosphor-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    green-screen-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "green-screen-theme";
+        ename = "green-screen-theme";
+        version = "20180816.802";
+        src = fetchFromGitHub {
+          owner = "rbanffy";
+          repo = "green-screen-emacs";
+          rev = "774e8f6c033786406267f71ec07319d906a30b75";
+          sha256 = "0f12lqgfi1vlhq8p5ia04vlmvmyb4f40q7dm2nbh5y8r6k89hisg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/green-screen-theme";
+          sha256 = "0a45xcl74kp3v39bl169sq46mqxiwvvis6jzwcy6yrl2vqqi4mab";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/green-screen-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gregorio-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "gregorio-mode";
+        ename = "gregorio-mode";
+        version = "20170705.751";
+        src = fetchFromGitHub {
+          owner = "jsrjenkins";
+          repo = "gregorio-mode";
+          rev = "2b45f91246286abc449cb71f28583403181051c2";
+          sha256 = "1g9x21nmzbm4sqybx5k4pgbjd9x0g27ngwczagplvjzsq9qzv7y6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gregorio-mode";
+          sha256 = "1x3z4gc88h13miz72a597lz9hcn2lxps9jvldl2j62s6nvr88pff";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gregorio-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grep-a-lot = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "grep-a-lot";
+        ename = "grep-a-lot";
+        version = "20131006.647";
+        src = fetchFromGitHub {
+          owner = "ZungBang";
+          repo = "emacs-grep-a-lot";
+          rev = "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad";
+          sha256 = "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grep-a-lot";
+          sha256 = "1cbl4gl91dx73q3i2glsivfxd8jkanrcrzy35zf6rb7raj7rc1bw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grep-a-lot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grep-context = callPackage ({ cl-lib ? null
+                                , dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "grep-context";
+        ename = "grep-context";
+        version = "20181002.954";
+        src = fetchFromGitHub {
+          owner = "mkcms";
+          repo = "grep-context";
+          rev = "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d";
+          sha256 = "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grep-context";
+          sha256 = "175s9asbnk2wlgpzc5izcd3vlfvdj064n38myy9qf4awn12c2y1g";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grep-context";
+          license = lib.licenses.free;
+        };
+      }) {};
+    greymatters-theme = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "greymatters-theme";
+        ename = "greymatters-theme";
+        version = "20150621.423";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "greymatters-theme";
+          rev = "a7220a8c6cf18ccae2b76946b6f01188a7c9d5d1";
+          sha256 = "14c09m9p6556rrf0qfad4zsv7qxa5flamzg6fa83cxh0qfg7wjbp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/greymatters-theme";
+          sha256 = "10cxajyws5rwk62i4vk26c1ih0dq490kcfx7gijw38q3b5r1l8nr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/greymatters-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grin = callPackage ({ fetchhg
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "grin";
+        ename = "grin";
+        version = "20110805.2358";
+        src = fetchhg {
+          url = "https://bitbucket.com/dariusp686/emacs-grin";
+          rev = "f541aa22da52";
+          sha256 = "0rqpgc50z86j4waijfm6kw4zjmzqfii6nnvyix4rkd4y3ryny1x2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grin";
+          sha256 = "0rak710fp9c7wx39qn4dc9d0xfjr5w7hwklxh99v1x1ihkla9378";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grizzl = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "grizzl";
+        ename = "grizzl";
+        version = "20160818.37";
+        src = fetchFromGitHub {
+          owner = "grizzl";
+          repo = "grizzl";
+          rev = "d554d93afa8519ee3a41340ec8aa6b4555065446";
+          sha256 = "0ks47pb71ywfxv3jsx8kwb7mgl1xj4fxny3764hfdsgwv1aw0r4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grizzl";
+          sha256 = "0354xskqzxc38l14zxqs31hadwh27v9lyx67y3hnd94d8abr0qcb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grizzl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    groovy-imports = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , pcache
+                                  , s }:
+      melpaBuild {
+        pname = "groovy-imports";
+        ename = "groovy-imports";
+        version = "20161003.151";
+        src = fetchFromGitHub {
+          owner = "mbezjak";
+          repo = "emacs-groovy-imports";
+          rev = "e56d7dda617555ec6205644d32ffddf2e1fa43d9";
+          sha256 = "060zxl2y4p50g5fwgplgx07h5akfplp49rkv5cx09rqlcyzqhqwa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/groovy-imports";
+          sha256 = "09yjkwsm192lgala1pvxw47id4j7362sl3j1hn9ald2m8m3ddyfs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pcache s ];
+        meta = {
+          homepage = "https://melpa.org/#/groovy-imports";
+          license = lib.licenses.free;
+        };
+      }) {};
+    groovy-mode = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "groovy-mode";
+        ename = "groovy-mode";
+        version = "20181111.257";
+        src = fetchFromGitHub {
+          owner = "Groovy-Emacs-Modes";
+          repo = "groovy-emacs-modes";
+          rev = "f80b6795f645aff592ffbdc6b500084955094f5c";
+          sha256 = "14wlr28hkb4za3pdd3z6s2nb20rwy064cjv0kcca56hyd71i2i4w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/groovy-mode";
+          sha256 = "1pxw7rdn56klmr6kw21lhzh7zhp338gyf54ypsml64ibzr1x9kal";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/groovy-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gruber-darker-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "gruber-darker-theme";
+        ename = "gruber-darker-theme";
+        version = "20180529.12";
+        src = fetchFromGitHub {
+          owner = "rexim";
+          repo = "gruber-darker-theme";
+          rev = "c7687ec0511941db1371dcd70b31061d74aa5668";
+          sha256 = "1dn4vb07wrnc6w94563isx8jfv6vbpp04kh0jfqjmc7nbmyzpaf2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gruber-darker-theme";
+          sha256 = "0vn4msixb77xj6p5mlfchjyyjhzah0lcmp0z82s8849zd194fxqi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gruber-darker-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grunt = callPackage ({ ansi-color ? null
+                         , dash
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "grunt";
+        ename = "grunt";
+        version = "20160316.828";
+        src = fetchFromGitHub {
+          owner = "gempesaw";
+          repo = "grunt.el";
+          rev = "4c269e2738658643ec2ed9ef61a2a3d71b08d304";
+          sha256 = "1xd6gv9bkqnj7j5mcnwvl1mxjmzvxqhp135hxj0ijc0ybdybacf7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grunt";
+          sha256 = "1qdzqcrff9x97kyy0d4j636d5i751qja10liw8i0lf4lk6n0lywz";
+          name = "recipe";
+        };
+        packageRequires = [ ansi-color dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grunt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gruvbox-theme = callPackage ({ autothemer
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "gruvbox-theme";
+        ename = "gruvbox-theme";
+        version = "20181013.444";
+        src = fetchFromGitHub {
+          owner = "greduan";
+          repo = "emacs-theme-gruvbox";
+          rev = "39124183cf47d25780cd02e33e57743484b4c680";
+          sha256 = "1zaba3hlk0h3n20gyk1s6kd2hdk47vfm6yb8fa4v80znhmgfwhac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gruvbox-theme";
+          sha256 = "12z89fjfqcp9rx2f2x9wcffgxxv3kjn1dabyk0cjf286hgvmgz88";
+          name = "recipe";
+        };
+        packageRequires = [ autothemer ];
+        meta = {
+          homepage = "https://melpa.org/#/gruvbox-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gs-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "gs-mode";
+        ename = "gs-mode";
+        version = "20151202.206";
+        src = fetchFromGitHub {
+          owner = "yyr";
+          repo = "emacs-grads";
+          rev = "1a13051db21b999c7682a015b33a03096ff9d891";
+          sha256 = "1d89gxyzv0z0nk7v1aa4qa0xfms2g2dsrr07cw0d99xsnyxfky31";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gs-mode";
+          sha256 = "02ldd92fv1k28nygl34i8gv0b0i1v5qd7nl1l17cf5f3akdwc6iq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gs-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gscholar-bibtex = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "gscholar-bibtex";
+        ename = "gscholar-bibtex";
+        version = "20170913.1457";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "gscholar-bibtex";
+          rev = "ba4ce159e385d695d8560e8b06b3cbe48424861c";
+          sha256 = "0idnfhk17avp0r4706grjqqkz0xl98gs0bx7wrkvwym3y2gadlz2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gscholar-bibtex";
+          sha256 = "0d41gr9amf9vdn9pl9lamhp2swqllxslv9r3wsgzqvjl7zayd1az";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gscholar-bibtex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gtk-pomodoro-indicator = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "gtk-pomodoro-indicator";
+        ename = "gtk-pomodoro-indicator";
+        version = "20171230.840";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "gtk-pomodoro-indicator";
+          rev = "eb59b229de0dde307b20654075a9bbac69899a66";
+          sha256 = "0dmaazcscg9mdsmij26873af5jl2np4q9xf2klw1jmcl61wzggb0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gtk-pomodoro-indicator";
+          sha256 = "1lkz1bk3zl51jdgp7pg6sr57drdwz8mlvl9ryky3iv73kr5i0q6c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gtk-pomodoro-indicator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    guess-language = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "guess-language";
+        ename = "guess-language";
+        version = "20170620.308";
+        src = fetchFromGitHub {
+          owner = "tmalsburg";
+          repo = "guess-language.el";
+          rev = "1f1602f74d7159e7fb8c90f92ec5a3d1df5429da";
+          sha256 = "1764v96sdn3zvpd35ppn31ib4p8cvdrj0bfmbplxg2xhp7xkgmca";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/guess-language";
+          sha256 = "1p8j18hskvsv4pn3cal5s91l19hgshq8hpclmp84z9hlnj9g9fpm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/guess-language";
+          license = lib.licenses.free;
+        };
+      }) {};
+    guide-key = callPackage ({ dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , popwin
+                             , s }:
+      melpaBuild {
+        pname = "guide-key";
+        ename = "guide-key";
+        version = "20150107.2235";
+        src = fetchFromGitHub {
+          owner = "kai2nenobu";
+          repo = "guide-key";
+          rev = "9236d287a7272e307fb941237390a96037c8c0a2";
+          sha256 = "14sx5m6fpkm2q8ljkicl1yy1sw003k4rzz9hi7lm1nfqr2l4n6q0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/guide-key";
+          sha256 = "0zjrdvppcg8b2k6hfdj45rswc1ks9xgimcr2yvgpc8prrwk1yjsf";
+          name = "recipe";
+        };
+        packageRequires = [ dash popwin s ];
+        meta = {
+          homepage = "https://melpa.org/#/guide-key";
+          license = lib.licenses.free;
+        };
+      }) {};
+    guide-key-tip = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , guide-key
+                                 , lib
+                                 , melpaBuild
+                                 , pos-tip }:
+      melpaBuild {
+        pname = "guide-key-tip";
+        ename = "guide-key-tip";
+        version = "20161011.123";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "guide-key-tip";
+          rev = "02c5d4b0b65f3e91be5a47f0ff1ae5e86e00c64e";
+          sha256 = "1xkrfjmhprnj8i39a85wfcs5whm93fw8l57c606wdhiwqj719ciz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/guide-key-tip";
+          sha256 = "0h2vkkbxq361dkn6irm1v19qj7bkhxcjljiksd5wwlq5zsq6bd06";
+          name = "recipe";
+        };
+        packageRequires = [ guide-key pos-tip ];
+        meta = {
+          homepage = "https://melpa.org/#/guide-key-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    guix = callPackage ({ bui
+                        , dash
+                        , edit-indirect
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , geiser
+                        , lib
+                        , magit-popup
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "guix";
+        ename = "guix";
+        version = "20181028.714";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "guix.el";
+          rev = "bffd65a26c6960e2af2abb57274e4818cf683960";
+          sha256 = "0yxc507fla7gqsb00bfgknr7390s82icjlkm4hqc90kkg68896gz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/guix";
+          sha256 = "0h4jwc4h2jv09c6rngb614fc39qfy04rmvqrn1l54hn28s6q7sk9";
+          name = "recipe";
+        };
+        packageRequires = [ bui dash edit-indirect emacs geiser magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/guix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gulp-task-runner = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "gulp-task-runner";
+        ename = "gulp-task-runner";
+        version = "20170718.1341";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "gulp-task-runner";
+          rev = "877990e956b1d71e2d9c7c3e5a129ad199b9debb";
+          sha256 = "13qy4x4ap43qm5w2vrsy6w01z2s2kymfr9qvlj2yri4xk3r4vrps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gulp-task-runner";
+          sha256 = "0211mws99bc9ipg7r3qqm1n7gszvwil31psinf0250wliyppjij7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gulp-task-runner";
+          license = lib.licenses.free;
+        };
+      }) {};
+    guru-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "guru-mode";
+        ename = "guru-mode";
+        version = "20170730.31";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "guru-mode";
+          rev = "c180e05ebc1484764aad245c85b69de779826e4e";
+          sha256 = "0qb6yr6vbic0rh8ayrpbz5byq7jxmwm1fc9l4alpz7dhyb11z07v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/guru-mode";
+          sha256 = "0j25nxs3ndybq1ik36qyqdprmhav4ba8ny7v2z61s23id8hz3xjs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/guru-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gvpr-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "gvpr-mode";
+        ename = "gvpr-mode";
+        version = "20131208.918";
+        src = fetchFromGitHub {
+          owner = "rodw";
+          repo = "gvpr-lib";
+          rev = "1fb539b8227200f75d7eeb9706a236f805159a63";
+          sha256 = "18902m92yyw4mqr5x3gzpqw13lykwv7llbqvck0kipyp3fpjjn7y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gvpr-mode";
+          sha256 = "19p6f06qdjvh2vmgbabajvkfxpn13j899jrivw9mqyssz0cyvzgw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gvpr-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gxref = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "gxref";
+        ename = "gxref";
+        version = "20170411.1053";
+        src = fetchFromGitHub {
+          owner = "dedi";
+          repo = "gxref";
+          rev = "380b02c3c3c2586c828456716eef6a6392bb043b";
+          sha256 = "1c5j28rwqx53qdsqglif8yblhm2bwm4qzpl2dg0l0g3pr8pk8zjk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gxref";
+          sha256 = "06qlfjclfx00m8pr7lk6baim3vjk5i0m75i1p4aihp2vflvgjaby";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gxref";
+          license = lib.licenses.free;
+        };
+      }) {};
+    habamax-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "habamax-theme";
+        ename = "habamax-theme";
+        version = "20181001.150";
+        src = fetchFromGitHub {
+          owner = "habamax";
+          repo = "habamax-theme";
+          rev = "6e86a1b23b6e2aaf40d4374b5673da00a28be447";
+          sha256 = "0k96mdxg28bbm14d6rdlin8l4c75i9wicj3mxrd0bys0shxl9jm6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/habamax-theme";
+          sha256 = "1rmir9gc1niwkshxg1826nkh8xxmpim5pbhp61wx1m273lfn2h69";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/habamax-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    habitica = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "habitica";
+        ename = "habitica";
+        version = "20181024.1111";
+        src = fetchFromGitHub {
+          owner = "abrochard";
+          repo = "emacs-habitica";
+          rev = "d977984ac342e9177ba98f400b3c160c450c936d";
+          sha256 = "10x0bcd67b2q4zhww6bzqics18kkv198d2hy6digi385fkwhvfxb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/habitica";
+          sha256 = "0g7rb8ip5d6xvlsfk8cvf81hgzlq5p4kw9pkisjq9ri8mvkfmxf3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/habitica";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hack-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "hack-mode";
+        ename = "hack-mode";
+        version = "20181107.948";
+        src = fetchFromGitHub {
+          owner = "hhvm";
+          repo = "hack-mode";
+          rev = "96d941984706f9bb97f8705ed1a0125c2c1647fd";
+          sha256 = "0sx7bahi9np1bkiks01li2fc6hhvb9i2kn4iphgm67y1z3j0a2a8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hack-mode";
+          sha256 = "1zs7p6fczj526wz9kvyhmxqkgrkfkkrvm9ma4cg349sfpjpxwkbl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/hack-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hack-time-mode = callPackage ({ emacs
+                                  , fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "hack-time-mode";
+        ename = "hack-time-mode";
+        version = "20170527.910";
+        src = fetchFromGitLab {
+          owner = "marcowahl";
+          repo = "hack-time-mode";
+          rev = "73d6fcf8b39283526e5d4e3919193611e25a0898";
+          sha256 = "1w0idf28fhyn0qmjk1zgh80gzcrkgx5bc8mb0xamc20i53wpr4xl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hack-time-mode";
+          sha256 = "0vz72ykl679a69sb0r2h9ymcr3xms7bij1w6vxndlfw5v9hg3hk5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hack-time-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hacker-typer = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "hacker-typer";
+        ename = "hacker-typer";
+        version = "20170206.720";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "emacs-hacker-typer";
+          rev = "d5a23714a4ccc5071580622f278597d5973f40bd";
+          sha256 = "13wp7cg9d9ij44inxxyk1knczglxrbfaq50wyhc4x5zfhz5yw7wx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hacker-typer";
+          sha256 = "0vf18hylhszvplam6c4yynr53zc3n816p9k36gywm6awwblfpyfb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hacker-typer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hackernews = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , json ? null
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "hackernews";
+        ename = "hackernews";
+        version = "20180902.2312";
+        src = fetchFromGitHub {
+          owner = "clarete";
+          repo = "hackernews.el";
+          rev = "e14dcab09dccb8128198e83d42a75fc310da5329";
+          sha256 = "0z1jf8hvfb28dmjfm2sbxf6gg7v3gq9502b62nnsn4mdl1yk2p1d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hackernews";
+          sha256 = "1x1jf5gkhmpiby5rmy0sziywh6c1f1n0p4f6dlz6ifbwns7har6a";
+          name = "recipe";
+        };
+        packageRequires = [ json ];
+        meta = {
+          homepage = "https://melpa.org/#/hackernews";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hal-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "hal-mode";
+        ename = "hal-mode";
+        version = "20160704.1046";
+        src = fetchFromGitHub {
+          owner = "machinekoder";
+          repo = "hal-mode";
+          rev = "cd2f66f219ee520198d4586fb6b169cef7ad3f21";
+          sha256 = "0xibwmngijq0wv9hkahs5nh02qj3ma0bkczl07hx8wnl6j27f0nj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hal-mode";
+          sha256 = "0nlan5f3llhn04p86a6l47dl9g83a51wzrchs2q8rvfcy4161nn4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hal-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ham-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , html-to-markdown
+                            , lib
+                            , markdown-mode
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ham-mode";
+        ename = "ham-mode";
+        version = "20150811.606";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "ham-mode";
+          rev = "3a141986a21c2aa6eefb428983352abb8b7907d2";
+          sha256 = "0d3xmagl18pas19zbpg27j0lmdiry23df48z4vkjsrcllqg25v5g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ham-mode";
+          sha256 = "000qrdby7d6zmp5066vs4gjlc9ik0ybrgcwzcbfgxb16w1g9xpmz";
+          name = "recipe";
+        };
+        packageRequires = [ html-to-markdown markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ham-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hamburg-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "hamburg-theme";
+        ename = "hamburg-theme";
+        version = "20160122.2340";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "hamburg-theme";
+          rev = "a05bf090e0c57c34cc59e301f95d9961280db244";
+          sha256 = "1k0z2x95lb4in325nsyl1r75m4px61wp077ak2asmp0i2p8g34g7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hamburg-theme";
+          sha256 = "149ln7670kjyhdfj5j9akxch47dlff2hd58amla7j3297z1nhg4k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hamburg-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hamburger-menu = callPackage ({ emacs
+                                  , fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "hamburger-menu";
+        ename = "hamburger-menu";
+        version = "20160825.1331";
+        src = fetchFromGitLab {
+          owner = "iain";
+          repo = "hamburger-menu-mode";
+          rev = "cfeff6e0dd80bf89ed671af9de3dac2e7f90b619";
+          sha256 = "05skvms2lz3fsgzg873nk887flr6ga5h8bkhrf6qawaj26naj6i9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hamburger-menu";
+          sha256 = "0ws9729i51arjqwpiywcpb7y3c5sm3c9wrq8q0k0m9hpq8h11wdb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hamburger-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haml-mode = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "haml-mode";
+        ename = "haml-mode";
+        version = "20170923.2153";
+        src = fetchFromGitHub {
+          owner = "nex3";
+          repo = "haml-mode";
+          rev = "1cbb2de8f0fc25f35448c5cad04642f28078f3bb";
+          sha256 = "1045bf7bq914d3577kg9xakm4yciwwsvlh5qwfk4wnsraf7rld0r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haml-mode";
+          sha256 = "0ih0m7zr6kgn6zd45zbp1jgs1ydc5i5gmq6l080wma83v5w1436f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/haml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hamlet-mode = callPackage ({ cl-lib ? null
+                               , dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "hamlet-mode";
+        ename = "hamlet-mode";
+        version = "20131207.2324";
+        src = fetchFromGitHub {
+          owner = "lightquake";
+          repo = "hamlet-mode";
+          rev = "7362b955e556a3d007fa06945a27e5b99349527d";
+          sha256 = "1njrpb1s2v9skyfbgb28clrxyvyp8i4b8kwa68ynvq3vjb4fnws6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hamlet-mode";
+          sha256 = "16cyfzv2yrf249jklxdahfmsy8rg6hargjpafy4fz4a532fcbw81";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/hamlet-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    handlebars-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "handlebars-mode";
+        ename = "handlebars-mode";
+        version = "20150211.949";
+        src = fetchFromGitHub {
+          owner = "danielevans";
+          repo = "handlebars-mode";
+          rev = "81f6b73fea8f397807781a1b51568397af21a6ef";
+          sha256 = "0w443knp6kvjm2m79cni5d17plyhbsl0a4kip7yrpv5nmg370q3p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/handlebars-mode";
+          sha256 = "0wizasjihnabnqzn1226vh4gb571rs7s86bffhvkfvbk95zkiafq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/handlebars-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    handlebars-sgml-mode = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "handlebars-sgml-mode";
+        ename = "handlebars-sgml-mode";
+        version = "20130623.1633";
+        src = fetchFromGitHub {
+          owner = "jacott";
+          repo = "handlebars-sgml-mode";
+          rev = "005282c33dfb6dbd2cfd46a4147d261504e8323c";
+          sha256 = "1vx9lxwhj7n928ddzj9vzy8mw0fj7vgzx477x8ay79rhpvs8v122";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/handlebars-sgml-mode";
+          sha256 = "10sxm7v94yxa92mqbwj3shqjs6f3zbxjvwgbvg9m2fh3b7xj617w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/handlebars-sgml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    handoff = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "handoff";
+        ename = "handoff";
+        version = "20150916.2300";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "handoff.el";
+          rev = "75dc7a7e352f38679f65d0ca80ad158798e168bd";
+          sha256 = "0whn8rc98dhncgizzrb22nx6b6cm655q1cf2fpn6g3knq1c2471r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/handoff";
+          sha256 = "0iqqvygx50wi2vcbs6bfgqzhcz9a89zrwb7sg0ang9qrkiz5k36w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/handoff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hardcore-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "hardcore-mode";
+        ename = "hardcore-mode";
+        version = "20151113.2301";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "hardcore-mode.el";
+          rev = "b1dda19692b4a7a58a689e81784a9b35be39e70d";
+          sha256 = "124k803pgxc7fz325yy6jcyam69f5fk9kdwfgmnwwca9ablq4cfb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hardcore-mode";
+          sha256 = "1bgi1acpw4z7i03d0i8mrd2hpjn6hyvkdsk0ks9q380yp9mqmiwd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hardcore-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hardhat = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , ignoramus
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "hardhat";
+        ename = "hardhat";
+        version = "20160414.713";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "hardhat";
+          rev = "9038a49ab55cd4c502cf7f07ed0d1b9b6bc3626e";
+          sha256 = "0j9z46j777y3ljpai5czdlwl07f0irp4fsk4677n11ndyqm1amb5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hardhat";
+          sha256 = "16pdbpm647ag9cadmdm75nwwyzrqsd9y1b4zgkl3pg669mi5vl5z";
+          name = "recipe";
+        };
+        packageRequires = [ ignoramus ];
+        meta = {
+          homepage = "https://melpa.org/#/hardhat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    harvest = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , hydra
+                           , lib
+                           , melpaBuild
+                           , s
+                           , swiper }:
+      melpaBuild {
+        pname = "harvest";
+        ename = "harvest";
+        version = "20170822.1046";
+        src = fetchFromGitHub {
+          owner = "kostajh";
+          repo = "harvest.el";
+          rev = "7acbc0564b250521b67131ee2a0a92720239454f";
+          sha256 = "0wzv67kkfyaw19ddw0ra45p6rja6bk6d1xi3ak5lkyzvgqvylr3b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/harvest";
+          sha256 = "1r6brld6iq03wsr1b3jhdkxwrcxa6g6fwa1jiy1kgjsr9dq1m51c";
+          name = "recipe";
+        };
+        packageRequires = [ hydra s swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/harvest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-emacs = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-emacs";
+        ename = "haskell-emacs";
+        version = "20160904.1326";
+        src = fetchFromGitHub {
+          owner = "knupfer";
+          repo = "haskell-emacs";
+          rev = "a2c6a079175904689eed7c6c200754bfa85d1ed9";
+          sha256 = "1xpaqcj33vyzs5yv2w4dahw8a2vb6zcb3z7y2aqc5jdg3fx9ypam";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-emacs";
+          sha256 = "1wkh7qws35c32hha0p9rpjz5pls2844920nh919lvp2wmq9l6jd6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-emacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-emacs-base = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , haskell-emacs
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-emacs-base";
+        ename = "haskell-emacs-base";
+        version = "20150714.859";
+        src = fetchFromGitHub {
+          owner = "knupfer";
+          repo = "haskell-emacs";
+          rev = "7f91f65254902b8ff04fdb679bc569b2f6a51637";
+          sha256 = "17i9l6wgrvmp31ca4xrax31f7bjnn0vn2figycxhfaq9f6vxgkkn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-emacs-base";
+          sha256 = "1fwkds6qyhbxxdgxfzmgd7dlcxr08ynrrg5jdp9r7f924pd536vb";
+          name = "recipe";
+        };
+        packageRequires = [ haskell-emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-emacs-base";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-emacs-text = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , haskell-emacs
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-emacs-text";
+        ename = "haskell-emacs-text";
+        version = "20150713.716";
+        src = fetchFromGitHub {
+          owner = "knupfer";
+          repo = "haskell-emacs";
+          rev = "cc240612740fc3fd6e3c3d8cdfe486a89954f5d1";
+          sha256 = "09g6b1ad7qi9k58ymgmssgapwapxcwf30qhmfl2w8sl045ngzlkk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-emacs-text";
+          sha256 = "1j18fhhra6lv32xrq8jc6l8i56fgn68da81wymcimpmpbp0hl5fy";
+          name = "recipe";
+        };
+        packageRequires = [ haskell-emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-emacs-text";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-mode";
+        ename = "haskell-mode";
+        version = "20180917.223";
+        src = fetchFromGitHub {
+          owner = "haskell";
+          repo = "haskell-mode";
+          rev = "6a70c1858c7d505ba23185e209ef7eacf703ed8f";
+          sha256 = "0r6z0vazgvf0p8dwbw2q660q379nahpsdjzm8xgd8g02fs9k7ihi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-mode";
+          sha256 = "0wijvcpfdbl17iwzy47vf8brkj2djarfr8y28rw0wqvbs381zzwp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-snippets = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "haskell-snippets";
+        ename = "haskell-snippets";
+        version = "20160918.1722";
+        src = fetchFromGitHub {
+          owner = "haskell";
+          repo = "haskell-snippets";
+          rev = "07b0f460b946fd1be26c29652cb0468b47782f3a";
+          sha256 = "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-snippets";
+          sha256 = "10bvv7q694fahcpm83v8lpqihg1gvfzrp1hdzwiffxydfvdbalh2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-tab-indent = callPackage ({ fetchgit
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-tab-indent";
+        ename = "haskell-tab-indent";
+        version = "20170701.258";
+        src = fetchgit {
+          url = "https://git.spwhitton.name/haskell-tab-indent";
+          rev = "b4cb851aef96c42ec7b3cc37b6fdd867fe5a0853";
+          sha256 = "1ah1xagfzsbsgggva621p95qgd0bnsn733gb0ap4p4kgi5hwdqll";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-tab-indent";
+          sha256 = "0vdfmy56w5yi202nbd28v1bzj97v1wxnfnb5z3dh9687p2abgnr7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-tab-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hasklig-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "hasklig-mode";
+        ename = "hasklig-mode";
+        version = "20181110.1059";
+        src = fetchFromGitHub {
+          owner = "minad";
+          repo = "hasklig-mode";
+          rev = "386c098c93a744f6b30ad937d193eebf0fd79e1b";
+          sha256 = "0m1cn59fzsfqc6j1892yaaddh6g6mwiqnp1ssxhic5fcm2xk00rz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hasklig-mode";
+          sha256 = "0gz0k9ahk0jpdp893ckbby9ilkac1zp95kpfqdnpfy0a036xfwm7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hasklig-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hasky-extensions = callPackage ({ avy-menu
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "hasky-extensions";
+        ename = "hasky-extensions";
+        version = "20180107.2112";
+        src = fetchFromGitHub {
+          owner = "hasky-mode";
+          repo = "hasky-extensions";
+          rev = "d75dc57f4eaeb92785bde6c26c1031710be1cf00";
+          sha256 = "135rn33ldrhz3z6fg1rcdaxs1dnahliw782qc4ffxkays186id63";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hasky-extensions";
+          sha256 = "0ymigba1d0qkrk3ccd3cx754safzmx1v5d13976571rszgmkvr15";
+          name = "recipe";
+        };
+        packageRequires = [ avy-menu emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hasky-extensions";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hasky-stack = callPackage ({ emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , magit-popup
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "hasky-stack";
+        ename = "hasky-stack";
+        version = "20181108.907";
+        src = fetchFromGitHub {
+          owner = "hasky-mode";
+          repo = "hasky-stack";
+          rev = "b62b18d6d2f4f3cf2a75b137c5ec12fa6b934910";
+          sha256 = "1a8zy5x6cr7q94g42nmdz1h043fzgq7givbcpqiq98y4m3dccyl8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hasky-stack";
+          sha256 = "08ds0v5p829s47lbhibswnbn1aqfnwf6xx7p5bc5062wxdvqahw8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/hasky-stack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haste = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , json ? null
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "haste";
+        ename = "haste";
+        version = "20141030.1334";
+        src = fetchFromGitHub {
+          owner = "rlister";
+          repo = "emacs-haste-client";
+          rev = "f1099c6296fc9575675e281402b89854739114bb";
+          sha256 = "1a6almgsh93jzi5h59mmrlwcz805j3fnr8vrcfxnirxpr39159sq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haste";
+          sha256 = "175kprxqbpmssjxavcm7lyzg1cwsxkrfg9pc72vgqyfmcmjyk34c";
+          name = "recipe";
+        };
+        packageRequires = [ json ];
+        meta = {
+          homepage = "https://melpa.org/#/haste";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haxe-imports = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , pcache
+                                , s }:
+      melpaBuild {
+        pname = "haxe-imports";
+        ename = "haxe-imports";
+        version = "20170330.1604";
+        src = fetchFromGitHub {
+          owner = "accidentalrebel";
+          repo = "emacs-haxe-imports";
+          rev = "a4ab31759bd237e78c055dda73e808a4ee1b5fde";
+          sha256 = "1x721jwdngahdmj0799ayg91kqxf6jv627b766bbq2hmagsf9si4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haxe-imports";
+          sha256 = "10xh57ir49f18pzw9ihpwffchm1mba0ck1zdqsfllh3p5gry1msg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pcache s ];
+        meta = {
+          homepage = "https://melpa.org/#/haxe-imports";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haxe-mode = callPackage ({ fetchhg
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "haxe-mode";
+        ename = "haxe-mode";
+        version = "20131004.142";
+        src = fetchhg {
+          url = "https://bitbucket.com/jpsecher/haxe-mode";
+          rev = "850f29d9f70e";
+          sha256 = "106a7kpjj4laxl7x8aqpv75ih54569b3bs2a1b8z4rghmikqc4aw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haxe-mode";
+          sha256 = "07krrpi636dadgyxxhh5037kq527wpnszbl22lk6i5fcxqidcnw9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/haxe-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haxor-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "haxor-mode";
+        ename = "haxor-mode";
+        version = "20160618.429";
+        src = fetchFromGitHub {
+          owner = "krzysztof-magosa";
+          repo = "haxor-mode";
+          rev = "6fa25a8e6b6a59481bc0354c2fe1e0ed53cbdc91";
+          sha256 = "0pdfvqbz4wmjl15wi3k4h7myij8v63vmyiq8g9fai18f7ad2klp1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haxor-mode";
+          sha256 = "0ss0kkwjyc7z7vcb89qr02p70c6m2jarr34mxmdv6ipwil58jj1s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/haxor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hayoo = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , json ? null
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "hayoo";
+        ename = "hayoo";
+        version = "20140831.521";
+        src = fetchFromGitHub {
+          owner = "benma";
+          repo = "hayoo.el";
+          rev = "3ca2fb0c4d5f337d0410c21b2702dd147014e984";
+          sha256 = "0pjxyhh8a02i54a9jsqr8p1mcqfl6k9b8gv9lnzb242gy4518y3l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hayoo";
+          sha256 = "1rqvnv5nxlsyvsa5my1wpfm82sw21s7kfbg80vrjmxh0mwlyv4p9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/hayoo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hc-zenburn-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "hc-zenburn-theme";
+        ename = "hc-zenburn-theme";
+        version = "20150928.933";
+        src = fetchFromGitHub {
+          owner = "edran";
+          repo = "hc-zenburn-emacs";
+          rev = "fd0024a5191cdce204d91c8f1db99ba31640f6e9";
+          sha256 = "0rgcj47h7a67qkw6696pcm1a4g4ryx8nrz55s69fw86958fp08hk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hc-zenburn-theme";
+          sha256 = "0jcddk9ppgcizyyciabj3sgk1pmingl97knf9nmr0mi89h7n2g5y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hc-zenburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hcl-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "hcl-mode";
+        ename = "hcl-mode";
+        version = "20170107.27";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-hcl-mode";
+          rev = "f940f425bcdb4111d69f5fbf79f0b1c98848c5b6";
+          sha256 = "06mdz9fnqkaxf4036ad1f6pr3km2vaz52rbpkjwk8bsqvzbya98i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hcl-mode";
+          sha256 = "1wrs9kj6ahsdnbn3fdaqhclq1ia6w4x726hjvl6pyk01sb0spnin";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hcl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    headlong = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "headlong";
+        ename = "headlong";
+        version = "20150417.826";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "headlong";
+          rev = "f6830f87f236eee88263cb6976125f72422abe72";
+          sha256 = "06hq6p6a4fzprbj4r885vsvzddlvx0wxqk5kik06v5bm7hjmnyrq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/headlong";
+          sha256 = "042ybplkqjb30qf5cpbw5d91j1rdc71b789v277h036bri7hgxz6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/headlong";
+          license = lib.licenses.free;
+        };
+      }) {};
+    heaven-and-hell = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "heaven-and-hell";
+        ename = "heaven-and-hell";
+        version = "20180421.221";
+        src = fetchFromGitHub {
+          owner = "valignatev";
+          repo = "heaven-and-hell";
+          rev = "c2af013e0def7d3234e0eb2fb66a0a2374d5a7f2";
+          sha256 = "08n7sr0l4di1c4zgfa17i3x43451sd60z70pjka8rmznys766lsg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/heaven-and-hell";
+          sha256 = "19r0p78r9c78ly8awkgc33xa5b75zkkrb5kwvxbagirxdgkjv74r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/heaven-and-hell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm = callPackage ({ async
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , helm-core
+                        , lib
+                        , melpaBuild
+                        , popup }:
+      melpaBuild {
+        pname = "helm";
+        ename = "helm";
+        version = "20181116.2331";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm";
+          rev = "9e84fb9101009f84c22bd5afe28ca4e802b5331d";
+          sha256 = "0hw6y41f6ib5n4hrax31wvg1vscz4j8nycfqsiy8srwwizjgwlri";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm";
+          sha256 = "03la01d0syikjgsjq0krlp3p894djwfxqfmd2srddwks7ish6xjf";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs helm-core popup ];
+        meta = {
+          homepage = "https://melpa.org/#/helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-R = callPackage ({ ess
+                          , fetchFromGitHub
+                          , fetchurl
+                          , helm
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "helm-R";
+        ename = "helm-R";
+        version = "20120819.1714";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "helm-R.el";
+          rev = "b0eb9d5f6a483a9dbe6eb6cf1f2024d4f5938bc2";
+          sha256 = "0nip0zrmn944wy0x2dc5ryr0m7a948rn2a8cbaajghs7a7zai4cr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-R";
+          sha256 = "0zq9f2xhgap3ihnrlsrsaxaz0nx014k0820bfsq7lckwcnm0mng1";
+          name = "recipe";
+        };
+        packageRequires = [ ess helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-R";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ack = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ack";
+        ename = "helm-ack";
+        version = "20141030.526";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-ack";
+          rev = "5982f3cb6ec9f460ebbe06ec0ce7b3590bca3118";
+          sha256 = "0ps86zpyywibjwcm9drmamla979ad61fyqr8d6bv71fr56k9ak21";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ack";
+          sha256 = "1a8sc5gd2g57dl9g18wyydfmihy74yniwhjr27h7vxylnf2g3pni";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ad = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ad";
+        ename = "helm-ad";
+        version = "20151209.215";
+        src = fetchFromGitHub {
+          owner = "tnoda";
+          repo = "helm-ad";
+          rev = "8ac044705d8620ee354a9cfa8cc1b865e83c0d55";
+          sha256 = "0hxfgdn56c7qr64r59g9hvxxwa4mw0ad9c9m0z5cj85bsdd7rlx4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ad";
+          sha256 = "0h2zjfj9hy7bkpmmjjs0a4a06asbw0yww8mw9rk2xi1gc2aqq4hi";
+          name = "recipe";
+        };
+        packageRequires = [ dash helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ad";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-addressbook = callPackage ({ addressbook-bookmark
+                                    , cl-lib ? null
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , helm
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "helm-addressbook";
+        ename = "helm-addressbook";
+        version = "20170903.28";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-addressbook";
+          rev = "62497f72d46afd3a9f9f94b27d062a82fb232de4";
+          sha256 = "1lmq7j19qv3pabs5arapx3lv2xhf0sgn4b2hl0l0kzph52fvics7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-addressbook";
+          sha256 = "1d8byi6sr5gz1rx3kglnkp47sn9dqdd83s12d84wyay06ix3cqqi";
+          name = "recipe";
+        };
+        packageRequires = [ addressbook-bookmark cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-addressbook";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ag = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ag";
+        ename = "helm-ag";
+        version = "20170209.745";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-ag";
+          rev = "39ed137823665fca2fa5b215f7c3e8701173f7b7";
+          sha256 = "0a6yls52pkqsaj6s5nsi70kzpvssdvb87bfnp8gp26q2y3syx4ni";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ag";
+          sha256 = "050qh5xqh8lwkgmz3jxm8gql5nd7bq8sp9q6mzm2z7367qy4qqyf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ag-r = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ag-r";
+        ename = "helm-ag-r";
+        version = "20131123.731";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "helm-ag-r";
+          rev = "67de4ebafe9b088db950eefa5ef590a6d78b4ac8";
+          sha256 = "1rifdkhzvf7xd2npban0i8v3rjcji69063dw9rs1d32w4n7fzlfa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ag-r";
+          sha256 = "0ivh7f021lbmbaj6gs4y8m99s63js57w04q7cwx7v4i32cpas7r9";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ag-r";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-aws = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "helm-aws";
+        ename = "helm-aws";
+        version = "20180514.332";
+        src = fetchFromGitHub {
+          owner = "istib";
+          repo = "helm-aws";
+          rev = "b36c744b3f00f458635a91d1f5158fccbb5baef6";
+          sha256 = "11683s12dabgi9j6cyx0i147pgz4jdd240xviry7w3cxgarqki8y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-aws";
+          sha256 = "0sjgdjpznjxsf6nlv2ah45fw17j8j5apdphd1fp43rjv1lskkgc5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-aws";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-backup = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "helm-backup";
+        ename = "helm-backup";
+        version = "20180910.2314";
+        src = fetchFromGitHub {
+          owner = "antham";
+          repo = "helm-backup";
+          rev = "691fe542f38fc7c8cca409997f6a0ff5d76ad6c2";
+          sha256 = "0zi1md5f1haqcrclqfk4ilvr6hbm389kl3ajnyx230rq22vmb9ca";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-backup";
+          sha256 = "182jbm36yzayxi9y3vhpyn25ivrgay37sncqvah35vbw52lnjcn3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-backup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bbdb = callPackage ({ bbdb
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-bbdb";
+        ename = "helm-bbdb";
+        version = "20180505.808";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-bbdb";
+          rev = "db286b0ee0ea18142f7d005e465832bb755bb0cb";
+          sha256 = "193xkwdhl3k0ka7qs9pd92mx0ild7dv11lmgydkpx8w1rcd20yyx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bbdb";
+          sha256 = "1wlacbfs23shvyaq616r1p84h8321zz1k5nzir5qg8nr6lssi8vp";
+          name = "recipe";
+        };
+        packageRequires = [ bbdb helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bbdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bibtex = callPackage ({ biblio
+                               , cl-lib ? null
+                               , dash
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , parsebib
+                               , s }:
+      melpaBuild {
+        pname = "helm-bibtex";
+        ename = "helm-bibtex";
+        version = "20181030.1442";
+        src = fetchFromGitHub {
+          owner = "tmalsburg";
+          repo = "helm-bibtex";
+          rev = "af05ccb498d89550644cc01c80628053d4d2d73f";
+          sha256 = "0m2yn7n7i5kn31m72006n58qw8qhklylna0l2yv4maf46k527xxw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bibtex";
+          sha256 = "037pqgyyb2grg88yfxx1r8yp4lrgz2fyzz9fbbp34l8s6vk3cp4z";
+          name = "recipe";
+        };
+        packageRequires = [ biblio cl-lib dash f helm parsebib s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bibtex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bibtexkey = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "helm-bibtexkey";
+        ename = "helm-bibtexkey";
+        version = "20140214.704";
+        src = fetchFromGitHub {
+          owner = "kenbeese";
+          repo = "helm-bibtexkey";
+          rev = "aa1637ea5c8c5f1817e480fc2a3750cafab3d99f";
+          sha256 = "10k7hjfz9jmfpbmsv20jy9vr6fqxx1yp8v115hprqvw057iifsl9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bibtexkey";
+          sha256 = "00i7ni4r73mmxavhfcm0fd7jhx6gxvxx7prax1yxmhs46fpz8jwj";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bibtexkey";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bind-key = callPackage ({ bind-key
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-bind-key";
+        ename = "helm-bind-key";
+        version = "20141108.2115";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "helm-bind-key.el";
+          rev = "9da6ad8b7530e72fb4ac67be8c6a482898dddc25";
+          sha256 = "1wmcy7q4ys2sf8ya5l4n7a6bq5m9d6m19amjfwkmkh4ajkwl041y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bind-key";
+          sha256 = "1yfj6mmxc165in1i85ccanssch6bg19ib1fcm7sa4i4hv0mgwaid";
+          name = "recipe";
+        };
+        packageRequires = [ bind-key helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bind-key";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bm = callPackage ({ bm
+                           , cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "helm-bm";
+        ename = "helm-bm";
+        version = "20160321.631";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-bm";
+          rev = "d66341f5646c23178d4d8bffb6cfebe3fb73f1d7";
+          sha256 = "011k37p4vnzm1x8vyairllanvjfknskl20bdfv0glf64xgbdpfil";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bm";
+          sha256 = "1dnlcvn0zv4qv4ii4j0h9r8w6vhi3l0c5aa768kblh5r2rf4bjjh";
+          name = "recipe";
+        };
+        packageRequires = [ bm cl-lib helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-books = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-books";
+        ename = "helm-books";
+        version = "20170324.2331";
+        src = fetchFromGitHub {
+          owner = "grugrut";
+          repo = "helm-books";
+          rev = "6735e1787f99b5ef77b276fa5c43e565b4d3e792";
+          sha256 = "0gsa0qf88x4rgkzhgp4dr19l772fla3gd6854z4gwpn0s52rl7h7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-books";
+          sha256 = "0xh53vji7nsnpi0b38cjh97x26ryxk61mj7bd6m63qwh8dyhs3yx";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-books";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bundle-show = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , helm
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "helm-bundle-show";
+        ename = "helm-bundle-show";
+        version = "20151221.430";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "emacs-helm-bundle-show";
+          rev = "b34523aa8a7f82ed9a1bf3643c35b65866a7877a";
+          sha256 = "1j9xmlidipsfbz0kfxwz0c6hi9xsbk36h6i30wqdd0ls0zw5xm30";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bundle-show";
+          sha256 = "1af5g233kjf04m2fryizk51a1s2mcmj36zip5nyb8skcsfl4riq7";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bundle-show";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-c-moccur = callPackage ({ color-moccur
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-c-moccur";
+        ename = "helm-c-moccur";
+        version = "20151230.124";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "helm-c-moccur.el";
+          rev = "b0a906f85fa352db091f88b91a9c510de607dfe9";
+          sha256 = "0w4svbg32y63v049plvk7djc1m2amjzrr1v979d9s6jbnnpzlb5c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-c-moccur";
+          sha256 = "1i6a4jqjy9amlhdbj5d26wzagndfgszha09vs5qf4760vjl7kn4b";
+          name = "recipe";
+        };
+        packageRequires = [ color-moccur helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-c-moccur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-c-yasnippet = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , helm
+                                    , lib
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "helm-c-yasnippet";
+        ename = "helm-c-yasnippet";
+        version = "20170128.742";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "helm-c-yasnippet";
+          rev = "65ca732b510bfc31636708aebcfe4d2d845b59b0";
+          sha256 = "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-c-yasnippet";
+          sha256 = "0jwj4giv6lxb3h7vqqb2alkwq5kp0shy2nraik33956p4l8dfs90";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-c-yasnippet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-charinfo = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-charinfo";
+        ename = "helm-charinfo";
+        version = "20170810.531";
+        src = fetchFromGitHub {
+          owner = "mandoku";
+          repo = "helm-charinfo";
+          rev = "91798a49dc115342a7e01e48b264e9a0bf5ea414";
+          sha256 = "1ifj6zz5k7qjalg06fvfc7rdmlha0n9hll2hiq7mrcj7lfac6jga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-charinfo";
+          sha256 = "04k6crcwhv2k69f5w75g0dg0f5qsbhyxl93qzxxdb5bnr56ad7f6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-charinfo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-chrome = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-chrome";
+        ename = "helm-chrome";
+        version = "20160718.2220";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "helm-chrome";
+          rev = "fd630ace4b4b4f33355a973743bbfe0c90ce4830";
+          sha256 = "0r8s85fs5lnwdn377z5zgi3d090k2n1mgiyxwgy49i8yirssgz51";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-chrome";
+          sha256 = "0p3n2pna83mp4ym8x69lk4r3q4apbj5v2blg2mwcsd9zij153nxz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-chrome";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-chronos = callPackage ({ chronos
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-chronos";
+        ename = "helm-chronos";
+        version = "20150528.1336";
+        src = fetchFromGitHub {
+          owner = "dxknight";
+          repo = "helm-chronos";
+          rev = "a14fc3d65dd96ce6616234b3f7b8b08b4c1817ef";
+          sha256 = "1dmj4f8pris1i7wvfplp4dbnyfm403l6rplxfrfi0cd9afg7m68i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-chronos";
+          sha256 = "1a65b680741cx4cyyizyl2c3bss36x3j2m9sh9hjc87xrzarg0s3";
+          name = "recipe";
+        };
+        packageRequires = [ chronos helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-chronos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-cider = callPackage ({ cider
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm-core
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-cider";
+        ename = "helm-cider";
+        version = "20180306.2058";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "helm-cider";
+          rev = "9363cc537f06233345aa3af5cd46aa5681ad607b";
+          sha256 = "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-cider";
+          sha256 = "0ykhrvh6mix55sv4j8q6614sibksdlwaks736maamqwl3wk6826x";
+          name = "recipe";
+        };
+        packageRequires = [ cider emacs helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-cider";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-cider-history = callPackage ({ cider
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "helm-cider-history";
+        ename = "helm-cider-history";
+        version = "20150719.1420";
+        src = fetchFromGitHub {
+          owner = "Kungi";
+          repo = "helm-cider-history";
+          rev = "c391fcb2e162a02001605a0b9449783575a831fd";
+          sha256 = "18j4ikb3q8ygdq74zqzm83wgb39x7w209n3186mm051n8lfmkaif";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-cider-history";
+          sha256 = "12l8jyl743zqk8m2xzcz75y1ybdkbkvcbvfkn1k88k09s31kdq4h";
+          name = "recipe";
+        };
+        packageRequires = [ cider helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-cider-history";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-circe = callPackage ({ circe
+                              , cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-circe";
+        ename = "helm-circe";
+        version = "20160206.2252";
+        src = fetchFromGitHub {
+          owner = "lesharris";
+          repo = "helm-circe";
+          rev = "9091651d9fdd8d49d8ff6f9dcf3a2ae416c9f15a";
+          sha256 = "1gwg299s8ps0q97iw6p515gwn73rjk1icgl3j7cj1s143njjg122";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-circe";
+          sha256 = "07559rg55b0glxiw787xmvxrhms14jz21bvprc5n24b4j827g9xw";
+          name = "recipe";
+        };
+        packageRequires = [ circe cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-circe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-clojuredocs = callPackage ({ edn
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , helm
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "helm-clojuredocs";
+        ename = "helm-clojuredocs";
+        version = "20160405.23";
+        src = fetchFromGitHub {
+          owner = "mbuczko";
+          repo = "helm-clojuredocs";
+          rev = "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea";
+          sha256 = "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-clojuredocs";
+          sha256 = "0yz0wlyay9286by8i30gs3ispswq8ayqlcnna1s7bgspjvb7scmk";
+          name = "recipe";
+        };
+        packageRequires = [ edn helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-clojuredocs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-cmd-t = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-cmd-t";
+        ename = "helm-cmd-t";
+        version = "20170125.659";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-cmd-t";
+          rev = "7fa3d4a9f7271512e54c5de999079b27c9eec6bf";
+          sha256 = "06jdvkgnmwrgsdh9y2bwzdng7hy4331v3lh11jvdy4704w4khmak";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-cmd-t";
+          sha256 = "1w870ldq029wgicgv4cqm31zw2i8vkap3m9hsr9d0i3gv2virnc6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/helm-cmd-t";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-codesearch = callPackage ({ cl-lib ? null
+                                   , dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , helm
+                                   , lib
+                                   , melpaBuild
+                                   , s }:
+      melpaBuild {
+        pname = "helm-codesearch";
+        ename = "helm-codesearch";
+        version = "20180203.2033";
+        src = fetchFromGitHub {
+          owner = "youngker";
+          repo = "helm-codesearch.el";
+          rev = "87a68168b7c1490769305db0df60035e47799a75";
+          sha256 = "0wiyz0kh2m2mpjhnl2mvsx2gvhkmmk0xaw432mxr48zz9jjnlha9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-codesearch";
+          sha256 = "1v21zwcyx73bc1lcfk60v8xim31bwdk4p06g9i4qag3cijdlli9q";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-codesearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-commandlinefu = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , json ? null
+                                      , let-alist
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "helm-commandlinefu";
+        ename = "helm-commandlinefu";
+        version = "20150610.2245";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "helm-commandlinefu";
+          rev = "9ee7e018c5db23ae9c8d1c8fa969876f15b7280d";
+          sha256 = "0fxrmvb64lav4aqs61z3a4d2mcp9s2nw7fvysyjn0r1291pkzk9j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-commandlinefu";
+          sha256 = "150nqib0sr4n35vdj1xrxcja8gkv3chzhdbgkjxqgkz2yq10xxnd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm json let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-commandlinefu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-company = callPackage ({ company
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-company";
+        ename = "helm-company";
+        version = "20180828.912";
+        src = fetchFromGitHub {
+          owner = "Sodel-the-Vociferous";
+          repo = "helm-company";
+          rev = "d3fc093a0e833b4dee6561c00d6df3d62aa50f3f";
+          sha256 = "1ciirsanhajdqm5iwl8k9ywf4jha1wdv4sc4d9kslyrfr9zn4q6k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-company";
+          sha256 = "1wl1mzm1h9ig351y77yascdv4z0cka1gayi8cnnlayk763is7q34";
+          name = "recipe";
+        };
+        packageRequires = [ company helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-company";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-core = callPackage ({ async
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-core";
+        ename = "helm-core";
+        version = "20181117.255";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm";
+          rev = "84a59b1e47528221dcb746058f95a6faffe4a5ae";
+          sha256 = "0zmr14gzblwn0b2d53p4bryd7v5cx7qcibq16jjldlv63xqmdhv1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-core";
+          sha256 = "1dyv8rv1728vwsp6vfdq954sp878jbp3srbfxl9gsgjnv1l6vjda";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-core";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-cscope = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , xcscope }:
+      melpaBuild {
+        pname = "helm-cscope";
+        ename = "helm-cscope";
+        version = "20170326.22";
+        src = fetchFromGitHub {
+          owner = "alpha22jp";
+          repo = "helm-cscope.el";
+          rev = "3cc7259ab4989f9f7ca039e703cdac14b907530a";
+          sha256 = "0gh4csq6v6lqqpi966iwl2238wgkmr3vxb4kxffajpk8r0cq1c9x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-cscope";
+          sha256 = "13a76wc1ia4c0v701dxqc9ycbb43d5k09m5pfsvs8mccisfzk9y4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm xcscope ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-cscope";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-css-scss = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-css-scss";
+        ename = "helm-css-scss";
+        version = "20140626.1725";
+        src = fetchFromGitHub {
+          owner = "ShingoFukuyama";
+          repo = "helm-css-scss";
+          rev = "363d5ebe9ecf8fab8422b83a414d054c3eff79fa";
+          sha256 = "1wwkcjw7q660a7v7f6qr6hr5blharyylr5ddfz013xa3lnzy72cv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-css-scss";
+          sha256 = "0iflwl0rijbkx1b7i1s7984dw7sz1wa1cb74fqij0kcn76kal7ak";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-css-scss";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ctest = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm-core
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "helm-ctest";
+        ename = "helm-ctest";
+        version = "20180821.305";
+        src = fetchFromGitHub {
+          owner = "danlamanna";
+          repo = "helm-ctest";
+          rev = "0c73689692a290f56080e95325c15362e90d529b";
+          sha256 = "143vyd64w3gycc68jcsji474nz2ggda58hgwq6hyiwb7s0gm1gd3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ctest";
+          sha256 = "1mphc9fsclbw19p5i1xf52qg6ljljbajvbcsl95hisrnvhg89vpm";
+          name = "recipe";
+        };
+        packageRequires = [ dash helm-core s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ctest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-dash = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-dash";
+        ename = "helm-dash";
+        version = "20180503.218";
+        src = fetchFromGitHub {
+          owner = "areina";
+          repo = "helm-dash";
+          rev = "0ac2db529577fa63f2ed32310062873c585b91de";
+          sha256 = "0jsa4vvhbcndv47gssjnk3fwbld73jhf0f5l7hjkq82ckimw0bvi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-dash";
+          sha256 = "032hwwq4r72grzls5ww7bjyj39c82wkcgf3k7myfcrqd3lgblrwb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-dash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-descbinds = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "helm-descbinds";
+        ename = "helm-descbinds";
+        version = "20180429.756";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-descbinds";
+          rev = "033be73f21778633813264ce1634a6e1ad873d8e";
+          sha256 = "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-descbinds";
+          sha256 = "1890ss4pimjxskzzllf57fg07xbs8zqcrp6r8r6x989llrfvd1h7";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-descbinds";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-describe-modes = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , helm
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "helm-describe-modes";
+        ename = "helm-describe-modes";
+        version = "20160211.2118";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-describe-modes";
+          rev = "d2253c7c2bf4f28b9ff8a2d281bd7527c0106527";
+          sha256 = "0li9bi1lm5ldwfpvzahxp7hyfd94jr1kl43rprx0myxb016yk2p5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-describe-modes";
+          sha256 = "0ajy9kwspm8rzafl0df57fad5867s86yjqj29shznqb12r91lpqb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-describe-modes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-dictionary = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , helm
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "helm-dictionary";
+        ename = "helm-dictionary";
+        version = "20160817.1333";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-dictionary";
+          rev = "805ce850d4cbe811227d9c9b16cc51f652198f3f";
+          sha256 = "0ambb6i8ipz5y0mnc8jd07j3iiwb7ah87pw8x8pi3phv1r80l0k1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-dictionary";
+          sha256 = "1pak8qn0qvbzyclhzvr5ka3pl370i4kiykypfkwbfgvqqwczhl3n";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-dictionary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-directory = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "helm-directory";
+        ename = "helm-directory";
+        version = "20170705.2102";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-helm-directory";
+          rev = "caa013b820b5263bf1c6446debfea0766dae8ab8";
+          sha256 = "15ljhz7cik7qzbh69l28c9mcvls5zgk42lp5bm9kl9fg6m6aasvq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-directory";
+          sha256 = "01c5a08v6rd867kdyrfwdvj05z4srzj9g6xy4scirlbwbff0q76n";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-directory";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-dired-history = callPackage ({ cl-lib ? null
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "helm-dired-history";
+        ename = "helm-dired-history";
+        version = "20170524.346";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "helm-dired-history";
+          rev = "281523f9fc46cf00fafd670ba5cd16552a607212";
+          sha256 = "1bqavj5ljr350dckyf39i9plkb0rbhyd17ka94n2g6daapgpq0x6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-dired-history";
+          sha256 = "0qciafa42rbw0dxgkp5mbbwbrcziswmwdj2lszm0px1bip4x7yb8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-dired-history";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-dired-recent-dirs = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , helm
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "helm-dired-recent-dirs";
+        ename = "helm-dired-recent-dirs";
+        version = "20131228.614";
+        src = fetchFromGitHub {
+          owner = "yynozk";
+          repo = "helm-dired-recent-dirs";
+          rev = "3bcd125b44f5a707588ae3868777d91192351523";
+          sha256 = "14sifdrfg8ydvi9mj8qm2bfphbffglxrkb5ky4q5b3j96bn8v110";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-dired-recent-dirs";
+          sha256 = "1rm47if91hk6hi4xil9vb6rs415s5kvhwc6zkrmcvay9hiw9vrpw";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-dired-recent-dirs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-dirset = callPackage ({ cl-lib ? null
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "helm-dirset";
+        ename = "helm-dirset";
+        version = "20151208.1612";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "helm-dirset";
+          rev = "eb30810cd26e1ee73d84a863e6b2667700e9aead";
+          sha256 = "183vj5yi575aqkak19hl8k4mw38r0ki9p1fnpa8nny2srjyy34yb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-dirset";
+          sha256 = "1bwgv1pm047xafidq23mdqj3sdc5bvqlw74s80dj88ybp3vrpvlk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib f helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-dirset";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-elscreen = callPackage ({ cl-lib ? null
+                                 , elscreen
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-elscreen";
+        ename = "helm-elscreen";
+        version = "20170709.214";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-elscreen";
+          rev = "b8212866939dc4a1e1dc23ad572407b688e130e3";
+          sha256 = "0gy6lbdngiwfl9vfw32clagbmv70f93slc9zkm3dz3mca37435kz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-elscreen";
+          sha256 = "186k66kf2ak2ihha39989cz1aarqrvbgp213y1fwh9qsn1kxclnd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib elscreen emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-elscreen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-emmet = callPackage ({ emmet-mode
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-emmet";
+        ename = "helm-emmet";
+        version = "20160713.531";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-emmet";
+          rev = "f0364e736b10cf44232053a78de04133a88185ae";
+          sha256 = "1zl6vhzbf29864q97q5v7c318x36y1a4cjm0i7kgj3hc6qla5j88";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-emmet";
+          sha256 = "1dkn9qa3dv2im11lm19wfh5jwwwp42sv7jc0p6qg35rhzwdpfg03";
+          name = "recipe";
+        };
+        packageRequires = [ emmet-mode helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-emmet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-emms = callPackage ({ cl-lib ? null
+                             , emacs
+                             , emms
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-emms";
+        ename = "helm-emms";
+        version = "20180405.2228";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-emms";
+          rev = "d3f9bdef8ff0d093eaf6e26af50ea905ab53fdec";
+          sha256 = "0bdb8xp0yp3gijpa9i2rc17gfzjhzlm92vdzw93i10qpd1xhj4aa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-emms";
+          sha256 = "1vq7cxnacmhyczsa4s5h1nnzc08m66harfnxsqxyrdsnggv9hbf5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs emms helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-emms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-etags-plus = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , helm
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "helm-etags-plus";
+        ename = "helm-etags-plus";
+        version = "20170113.614";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "helm-etags-plus";
+          rev = "dd13aa768e7edc5809c8b5c52daa108eceb7d3f1";
+          sha256 = "08yzs82bqj4j7k4hp4hh53ip5p8bh6325j4lg73hh6zsy0jpb9sh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-etags-plus";
+          sha256 = "0lw21yp1q6iggzlb1dks3p6qdfppnqf50f3rijjs18lisp4izp99";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-etags-plus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-eww = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild
+                            , seq }:
+      melpaBuild {
+        pname = "helm-eww";
+        ename = "helm-eww";
+        version = "20180827.136";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-eww";
+          rev = "2bb7b644f953c45b5dd03298b556312440618026";
+          sha256 = "0cm6ja6jhkp0yniqj4r3mdzlwwm0ab7fczgzfd745sx1xy1jfiwk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-eww";
+          sha256 = "0pl8s7jmk1kak13bal43kp2awjji9lgr3npq9m09zms121rh709w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm seq ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-eww";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ext = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ext";
+        ename = "helm-ext";
+        version = "20180525.2050";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "helm-ext";
+          rev = "90b788aced21ec467a234b6b77b5a6ebae6de75f";
+          sha256 = "11a27556slh95snzqyvy0rlf6p7f51nx8rxglnv0d34529h72508";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ext";
+          sha256 = "0la2i0b7nialib4wq26cxcak8nq1jzavsw8f0mvbavsb7hfwkpgw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-exwm = callPackage ({ emacs
+                             , exwm
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-exwm";
+        ename = "helm-exwm";
+        version = "20180827.137";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-exwm";
+          rev = "e21c6ffabadd2fe8d6c7805b6027cc59a6f914e9";
+          sha256 = "11fyqk3h9cqynifc2zzqn0czrcj082wkdg1qhbj97nl4gcj787rl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-exwm";
+          sha256 = "0g15c4bg794vqigafl9g2w85jbs1lbw9qplaf8ffx0az4qwhnvqz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs exwm helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-exwm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-filesets = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , filesets-plus
+                                 , helm
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-filesets";
+        ename = "helm-filesets";
+        version = "20140929.1135";
+        src = fetchFromGitHub {
+          owner = "gcla";
+          repo = "helm-filesets";
+          rev = "b352910af4c3099267a8aa0169c7f743b35bb1fa";
+          sha256 = "00yhmpv5xjlw1gwbcrznz83gkaby8zlqv74d3p7plca2cwjll1g9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-filesets";
+          sha256 = "1yhhchksi0r4r5c5q1mggz2hykkvk93baq91b5hkaflqi30d1v8f";
+          name = "recipe";
+        };
+        packageRequires = [ filesets-plus helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-filesets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-firefox = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-firefox";
+        ename = "helm-firefox";
+        version = "20161202.517";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-firefox";
+          rev = "294850c4ce16ae25f2214f863cee0118add60974";
+          sha256 = "1kaa58xlnr82qsvdzn8sxk5kkd2lxqnvfciyw7kfi2fdrl6nr4pf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-firefox";
+          sha256 = "0677nj0zsk11vvp3q3xl9nk8dhz3ki9yl3kfb57wgnmprp109wgs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-firefox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-flx = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , flx
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-flx";
+        ename = "helm-flx";
+        version = "20180102.2116";
+        src = fetchFromGitHub {
+          owner = "PythonNut";
+          repo = "helm-flx";
+          rev = "6640fac5cb16bee73c95b8ed1248a4e5e113690e";
+          sha256 = "1fh1dy6xpc476hs87mn9fwxhxi97h7clfnnm7dxb7hg43xmgsjjs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-flx";
+          sha256 = "03vxr5f5m4s6k6rm0976w8h3s4c3b5mrdqgmkd281hmyh9q3cslq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flx helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-flx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-flycheck = callPackage ({ dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , helm-core
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-flycheck";
+        ename = "helm-flycheck";
+        version = "20160710.129";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-flycheck";
+          rev = "a15e62a6432c165c4f2c17388686873383400d7d";
+          sha256 = "0q9yksx66ry4x3vkcyyj437il225s2ad5h6vkxpyz04p62g3ysnx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-flycheck";
+          sha256 = "038f9294qc0jnkzrrjxm97hyhwa4sca3wdsjbaya50cf0g4cmk7b";
+          name = "recipe";
+        };
+        packageRequires = [ dash flycheck helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-flycheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-flymake = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-flymake";
+        ename = "helm-flymake";
+        version = "20160609.1702";
+        src = fetchFromGitHub {
+          owner = "tam17aki";
+          repo = "helm-flymake";
+          rev = "72cf18a1a1f843db9bb5d58301739ea9ccb1655b";
+          sha256 = "05wpclg4ibp0ida692m3s8nknx4aizfcdgxgfzlwczgdgw0922kn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-flymake";
+          sha256 = "0h87yd56nhxpahrcpk6hin142hzv3sdr5bvz0injbv8a2lwnny3b";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-flymake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-flyspell = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-flyspell";
+        ename = "helm-flyspell";
+        version = "20170210.1101";
+        src = fetchFromGitHub {
+          owner = "pronobis";
+          repo = "helm-flyspell";
+          rev = "8d4d947c687cb650cb149aa2271ad5201ea92594";
+          sha256 = "0q0xcgg8w9rrlsrrnk0l7qd8q7jc6x1agm2i769j21wpyfv1nbns";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-flyspell";
+          sha256 = "1g6xry2y6396pg7rg8hc0l84z5r3j2df7dpd1jgffxa8xa3i661f";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-flyspell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-frame = callPackage ({ emacs
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-frame";
+        ename = "helm-frame";
+        version = "20170515.1250";
+        src = fetchFromGitLab {
+          owner = "chee";
+          repo = "helm-frame";
+          rev = "389e6461a423d649b7062ba99a2234bef7770059";
+          sha256 = "1z7iwgl1v8nkwyz3h610l97amgq9slrfxxiicsnigc9vgsqlh987";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-frame";
+          sha256 = "18wbwm4r3ra9214whhdbxnjrxzra4pn12wqgq5lxli1khylihm3i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-frame";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-fuzzier = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-fuzzier";
+        ename = "helm-fuzzier";
+        version = "20160605.1445";
+        src = fetchFromGitHub {
+          owner = "EphramPerdition";
+          repo = "helm-fuzzier";
+          rev = "8798dcf3583b863df5b9dea7fe3b0179ba1c35bc";
+          sha256 = "1250mh0ydap0sifcyrgs32dnr6c8d723v4c55yvwm23dzvzwycp8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-fuzzier";
+          sha256 = "0qdgf0phs3iz29zj3qjhdgb3i4xvf5r2vi0709pwxx2s6r13pvcc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-fuzzier";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-fuzzy-find = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , helm
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "helm-fuzzy-find";
+        ename = "helm-fuzzy-find";
+        version = "20171105.2000";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "helm-fuzzy-find";
+          rev = "de2abbf7ca13609587325bacd4a1ed4376b5c927";
+          sha256 = "1dacvnkqqiax02c627z9qi61iyqgr0j3qqmjp29h0v494czvrdbs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-fuzzy-find";
+          sha256 = "0lczlrpd5jy2vhy9jl3rjcdyiwr136spqm8k2rj8m9s8wpn0v75i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-fuzzy-find";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ghc = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ghc
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ghc";
+        ename = "helm-ghc";
+        version = "20141105.659";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "helm-ghc";
+          rev = "3947bfd6b5a05074e776f0b51f414f1a5a724888";
+          sha256 = "0j8mbn33rv4jky9zh1hgw8da8wgs2760057mx8rv5x6i1qcm3bqd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ghc";
+          sha256 = "0bv0sfpya1jyay9p80lv0w6h9kdp96r8lnp6nj15w660p1b51c0d";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ghc helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ghc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ghq = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ghq";
+        ename = "helm-ghq";
+        version = "20161015.117";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "emacs-helm-ghq";
+          rev = "21ccdb537a3be3d9351e01c6365df8e804e8bc56";
+          sha256 = "1v3h6dszj223yvlkrjj6r4jwiyaj3iswbcl5d4ffwgaf72cxm4gn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ghq";
+          sha256 = "14f3cbsj7jhlhrp561d8pasllnx1cmi7jk6v2fja7ghzj76dnvq6";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ghq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ghs = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ghs";
+        ename = "helm-ghs";
+        version = "20170714.2241";
+        src = fetchFromGitHub {
+          owner = "iory";
+          repo = "emacs-helm-ghs";
+          rev = "f9d4ab80e8a33b21cd635285289ec5779bbe629f";
+          sha256 = "0f7wsln7z2dhqn334pjk6hrj36gvx39vg19g8ds9sj9dq9djlf27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ghs";
+          sha256 = "0bzy2vr2h9c886cm4gd161n7laym952bzy5fhcibafhzm4abl4sh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ghs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-git = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-git";
+        ename = "helm-git";
+        version = "20120630.1403";
+        src = fetchFromGitHub {
+          owner = "maio";
+          repo = "helm-git";
+          rev = "5b4a6eb7a97b2583236a1f919b75249957918e29";
+          sha256 = "1z5q47sly41amjiq5wcvdxf8slhl8wd24crgzpbn6m3lw2jk420r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-git";
+          sha256 = "1ib73p7cmkw96csxxpkqwn6m60k1xrd46z6vyp29gj85cs4fpsb8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/helm-git";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-git-files = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "helm-git-files";
+        ename = "helm-git-files";
+        version = "20141212.517";
+        src = fetchFromGitHub {
+          owner = "kenbeese";
+          repo = "helm-git-files";
+          rev = "43193960774069369ac6964bbf7c026900206fa8";
+          sha256 = "157b525h0kiaknn12fsw67fg26lzb20apx8sssmvlcicqcd51iaw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-git-files";
+          sha256 = "02109r956nc1dmqh4v082vkr9wdixh03xhl7icwkzl7ipr5453s6";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-git-files";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-git-grep = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , helm-core
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-git-grep";
+        ename = "helm-git-grep";
+        version = "20170614.711";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-git-grep";
+          rev = "744cea07dba6e6a5effbdba83f1b786c78fd86d3";
+          sha256 = "172m7wbgx9qnv9n1slbzpd9j24p6blddik49z6bq3zdg1vlnf3dv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-git-grep";
+          sha256 = "1ww6a4q78w5hnwikq7y93ic2b7x070c27r946lh6p8cz1k4b8vqi";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-git-grep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-github-stars = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "helm-github-stars";
+        ename = "helm-github-stars";
+        version = "20180717.1811";
+        src = fetchFromGitHub {
+          owner = "Sliim";
+          repo = "helm-github-stars";
+          rev = "809cf88e2984b121348b1046e1d3890f1fd580b4";
+          sha256 = "09ywdsymh479syq9ps15bgyqf5gr94z8wn4jvlcxqz5aq5fil9vq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-github-stars";
+          sha256 = "1r4mc4v71171sq9rbbhm346s92fb7jnvvl91y2q52jqmrnzzl9zy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-github-stars";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-gitignore = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , gitignore-mode
+                                  , helm
+                                  , lib
+                                  , melpaBuild
+                                  , request }:
+      melpaBuild {
+        pname = "helm-gitignore";
+        ename = "helm-gitignore";
+        version = "20170210.1608";
+        src = fetchFromGitHub {
+          owner = "jupl";
+          repo = "helm-gitignore";
+          rev = "2a2e7da7855a6db0ab3bb6a6a087863d7abd4391";
+          sha256 = "07770qhy56cf5l69mk6aq882sryjbfjd05kdk78v65mgmlwv806a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-gitignore";
+          sha256 = "01l7mx8g1m5qnwz973hzrgds4gywm56jgl4hcdxqvpi1n56md3x6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib gitignore-mode helm request ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-gitignore";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-gitlab = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , gitlab
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "helm-gitlab";
+        ename = "helm-gitlab";
+        version = "20180312.947";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "emacs-gitlab";
+          rev = "68318aca3206d50701039c9aae39734ca29a49f9";
+          sha256 = "0arsjdn0anp7pacwxd3cw4db8a7pgzjlnwav1l3maaz1176h4lpb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-gitlab";
+          sha256 = "010ihx3yddhb8j3jqcssc49qnf3i7xlz0s380mpgrdxgz6yahsmd";
+          name = "recipe";
+        };
+        packageRequires = [ dash gitlab helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-gitlab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-go-package = callPackage ({ deferred
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , go-mode
+                                   , helm-core
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "helm-go-package";
+        ename = "helm-go-package";
+        version = "20161102.1853";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-go-package";
+          rev = "bf741f4a455fcb129c1a9dcec710a52621f9719d";
+          sha256 = "0g7i8lnjav9730zsz12181v9xi9rcvdyhs9vzch01dksixq10hvi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-go-package";
+          sha256 = "102yhn1xg83l67yaq3brn35a03fkvqqhad10rq0h39n4i1slq3z6";
+          name = "recipe";
+        };
+        packageRequires = [ deferred emacs go-mode helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-go-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-google = callPackage ({ fetchgit
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-google";
+        ename = "helm-google";
+        version = "20180605.2220";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/helm-google.git";
+          rev = "48e91a73d5f48c39d7a219022a24440cff548e1a";
+          sha256 = "05xj6bkr330glh56n8c63297zqh1cmlhxlyxpr04srjraifyzba1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-google";
+          sha256 = "0hv7wfrahjn8j4914dp2p4fl2cj85pmxnyxf5cnmv6p97yis0ham";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-google";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-grepint = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-grepint";
+        ename = "helm-grepint";
+        version = "20161001.713";
+        src = fetchFromGitHub {
+          owner = "kopoli";
+          repo = "helm-grepint";
+          rev = "a62ca27515ff6a366b89b420500eb16d380cc653";
+          sha256 = "1v87v6a34zv998z1dwwcqx49476pvy9g5zml7w5vzfkms0l8l28w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-grepint";
+          sha256 = "00wr3wk41sbpamxbjkqlby49g8y5z9n79p51sg7ginban4qy91gf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-grepint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-growthforecast = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , helm
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "helm-growthforecast";
+        ename = "helm-growthforecast";
+        version = "20140119.1944";
+        src = fetchFromGitHub {
+          owner = "daichirata";
+          repo = "helm-growthforecast";
+          rev = "0f94ac090d6c354058ad89a86e5c18385c136d9b";
+          sha256 = "0p0mk44y2z875ra8mzcb6vlf4rbkiq9yank5hdxvg2x2sxsaambk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-growthforecast";
+          sha256 = "1qlyp263rl0892hr53kgc16jlx3jylw2pplbzlx05a60k5348jjv";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-growthforecast";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-gtags = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-gtags";
+        ename = "helm-gtags";
+        version = "20170115.2129";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-gtags";
+          rev = "108e93d0d099ebb7b98847388f368311cf177033";
+          sha256 = "0hfshcnzrrvf08yw4xz5c93g9pw6bvjp2bmv0s6acrsjqgwhx158";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-gtags";
+          sha256 = "1kbpfqhhbxmp3f70h91x2fws9mhx87zx4nzjjl29lpl93vf8xckl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-gtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-hatena-bookmark = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , helm
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "helm-hatena-bookmark";
+        ename = "helm-hatena-bookmark";
+        version = "20180803.2246";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "emacs-helm-hatena-bookmark";
+          rev = "274e18182fe20c11e96009387a8e38e8cd2a1d7e";
+          sha256 = "13s36gyb37asgrc9qca9d196i5bnxqy4acmda5cas08b48wp4lxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-hatena-bookmark";
+          sha256 = "14091zrp4vj7752rb5s3pkyvrrsdl7iaj3q9ys8rjmbsjwcv30id";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-hatena-bookmark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-hayoo = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , haskell-mode
+                              , helm
+                              , json ? null
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-hayoo";
+        ename = "helm-hayoo";
+        version = "20151013.2351";
+        src = fetchFromGitHub {
+          owner = "markus1189";
+          repo = "helm-hayoo";
+          rev = "dd4c0c8c87521026edf1b808c4de01fa19b7c693";
+          sha256 = "08pfzs030d8g5s7vkpgicz4srp5cr3xpd84lhrr24ncrhbszxar9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-hayoo";
+          sha256 = "06nbilb6vfa8959ss5d06zbcwqxlbyi3cb5jnbdag0jnpxvv1hqb";
+          name = "recipe";
+        };
+        packageRequires = [ haskell-mode helm json ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-hayoo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-helm-commands = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "helm-helm-commands";
+        ename = "helm-helm-commands";
+        version = "20130902.1048";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "helm-helm-commands";
+          rev = "1c37bb0d4cda6877162603cd1ddc9f596a7a5cb9";
+          sha256 = "0c31qr8lk58w86n5iisx0vpd19y44vmqg7xnpjh6mnz102xif7rn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-helm-commands";
+          sha256 = "0dq9p37i5rrp2nb1vhqzzqfmdg11va2xr3yz8hdxpwykm1ldqdcf";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-helm-commands";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-hoogle = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-hoogle";
+        ename = "helm-hoogle";
+        version = "20161026.2234";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "helm-hoogle";
+          rev = "73969a9d46d2121a849a01a9f7ed3636d01f7bbc";
+          sha256 = "043bddm6lldl6wkifr1plqip7laai771z1a1l0x2h35l3g8c64h0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-hoogle";
+          sha256 = "0vhk4vwqfirdm5d0pppplfpqyc2sfj6jybhzp9n1w8xgrh2d1c0x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-hoogle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-hunks = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-hunks";
+        ename = "helm-hunks";
+        version = "20171217.1133";
+        src = fetchFromGitHub {
+          owner = "torgeir";
+          repo = "helm-hunks.el";
+          rev = "6392bf716f618eac23ce81140aceb0dfacb9c6d0";
+          sha256 = "1ih2pgyhshv8nl7hhchd4h0pbjgj45irp5dy1fq2gy05v4rn7wi4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-hunks";
+          sha256 = "1fhb9sf7fpz3f3ylc906w5xa4zzfr0gix6m7zc4c8qmz33zbhbp5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-hunks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-idris = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , idris-mode
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-idris";
+        ename = "helm-idris";
+        version = "20141202.957";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "helm-idris";
+          rev = "a2f45d6817974f318b55ad9b7fd19d5df132d47e";
+          sha256 = "0128nrhwyzslzl0l7wcjxn3dlx3h1sjmwnbbnp2fj4bjk7chc59q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-idris";
+          sha256 = "04f1963ksbjdza1syajb5vkwwsc9gzk0az6c1m1zgvsianrq4rd9";
+          name = "recipe";
+        };
+        packageRequires = [ helm idris-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-idris";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-img = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-img";
+        ename = "helm-img";
+        version = "20151224.1521";
+        src = fetchFromGitHub {
+          owner = "l3msh0";
+          repo = "helm-img";
+          rev = "aa3f8a5dce8d0413bf07584f07153a39015c2bfc";
+          sha256 = "0py4xs27z2jvg99i6qaf2ccz0mvk6bb9cvdyz8v8ngmnj3rw2vla";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-img";
+          sha256 = "0sq9l1wgm97ppfc45w3bdcv0qq5m85ygnanv1bdcp8bxbdl4vg0q";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-img";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-img-tiqav = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , helm-img
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "helm-img-tiqav";
+        ename = "helm-img-tiqav";
+        version = "20151224.1522";
+        src = fetchFromGitHub {
+          owner = "l3msh0";
+          repo = "helm-img-tiqav";
+          rev = "33a7e9508bc8f37d53320b56c92b53d321a57bb0";
+          sha256 = "04vdin0n3514c8bycdjrwk3l6pkarrwanlklnm75315b91nkkbcp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-img-tiqav";
+          sha256 = "1m083hiih2rpyy8i439745mj4ldqy85fpnvms8qnv3042b8x35y0";
+          name = "recipe";
+        };
+        packageRequires = [ helm-img ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-img-tiqav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ispell = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm-core
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ispell";
+        ename = "helm-ispell";
+        version = "20151231.53";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-ispell";
+          rev = "cb735695ab3a0e66c123c2f3f3e8911fb1c2d5fc";
+          sha256 = "04ddjdia09y14gq4h6m8g6aiwkqvdxp66yjx3j5dh2xrkyxhlxpz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ispell";
+          sha256 = "0qyj6whgb2p0v231wn6pvx4awvl1wxppppqqbx5255j8r1f3l1b0";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ispell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-itunes = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-itunes";
+        ename = "helm-itunes";
+        version = "20151012.2348";
+        src = fetchFromGitHub {
+          owner = "anschwa";
+          repo = "helm-itunes";
+          rev = "966de755a5aadbe02311a6cef77bd4790e84c263";
+          sha256 = "1czgf5br89x192g3lh3x2n998f79hi1n2f309ll264qnl35kv14w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-itunes";
+          sha256 = "0zi4wyraqkjwp954pkng8b23giv1q9618apd9v3dczsvlmaar9hf";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-itunes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-j-cheatsheet = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "helm-j-cheatsheet";
+        ename = "helm-j-cheatsheet";
+        version = "20170217.29";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "helm-j-cheatsheet";
+          rev = "6c47e7162b9ba2de4b41221d01180146973d860b";
+          sha256 = "0ayv6aqmwjy95gc9cpyx0s71486rvlmn04iwgfn43mr192c38y9p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-j-cheatsheet";
+          sha256 = "0lppzk60vl3ps9fqnrh020awiy5w46gwlb6d91pr889x24ryphmm";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-j-cheatsheet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-jira = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-jira";
+        ename = "helm-jira";
+        version = "20180802.115";
+        src = fetchFromGitHub {
+          owner = "DeX3";
+          repo = "helm-jira";
+          rev = "75d6ed5bd7a041fa8c1adb21cbbbe57b5a7c7cc7";
+          sha256 = "08cczc4jnkdgvzs0s3wq2dqmhnsvyhpl65dydmi7pmayl7zg6jir";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-jira";
+          sha256 = "1fb2hk97zlr30gzln8b5x7xc3v119ki8kbiyh7shxnaqx7dy1ihs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-jira";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-js-codemod = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , helm-core
+                                   , js-codemod
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "helm-js-codemod";
+        ename = "helm-js-codemod";
+        version = "20171106.244";
+        src = fetchFromGitHub {
+          owner = "torgeir";
+          repo = "helm-js-codemod.el";
+          rev = "18503d94e64418e8ea5c5854f197ae9f3009cdbf";
+          sha256 = "0d5fsvfa017gda0jryjdvva1q04nry6grc1433gvgrqqp6vxayxc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-js-codemod";
+          sha256 = "1m07xh97fjyah8di363yalg9f5g5rfr3k5mbjql3n67lfwgxrz94";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm-core js-codemod ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-js-codemod";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-jstack = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-jstack";
+        ename = "helm-jstack";
+        version = "20150602.2122";
+        src = fetchFromGitHub {
+          owner = "raghavgautam";
+          repo = "helm-jstack";
+          rev = "aab0fd9f14794ae3a6e7cfbe7f6a81842ce4c23b";
+          sha256 = "133fgmhh5phxssagriw1jsi48va4kyphwbcrha7pfnkmrmr1dgqb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-jstack";
+          sha256 = "0giix1rv2jrmdxyg990w90ivl8bvgbbvah6nkpj7gb6vbnm15ldz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-jstack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-kythe = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-kythe";
+        ename = "helm-kythe";
+        version = "20170709.26";
+        src = fetchFromGitHub {
+          owner = "MaskRay";
+          repo = "emacs-helm-kythe";
+          rev = "eabbef4948f8ec7c7b2fac498e9145dfdb10ca82";
+          sha256 = "1ws7vl0pvznmxb7yj77kfv4l52xkzblhsl68lfkf9cdxcj9g6177";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-kythe";
+          sha256 = "1yybpic3jzp3yy8xlfdn2jj12h087vn0lj3mqx6xxj2nxd9q4949";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-kythe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-lastpass = callPackage ({ csv
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-lastpass";
+        ename = "helm-lastpass";
+        version = "20180722.106";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "helm-lastpass";
+          rev = "82e1ffb6ae77d9d9e29c398eb013cd20ce963f77";
+          sha256 = "0pri9zsjg0zii7dpsr56dy5204q0mld5wi22iay3kqpiyxghhssv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-lastpass";
+          sha256 = "0zgq3szds5l3ah39wiacqcc1j0dlbhwm0cjx64j28jx93300kx57";
+          name = "recipe";
+        };
+        packageRequires = [ csv emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-lastpass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-lean = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lean-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-lean";
+        ename = "helm-lean";
+        version = "20171102.754";
+        src = fetchFromGitHub {
+          owner = "leanprover";
+          repo = "lean-mode";
+          rev = "c0af876c967fc969d67c467bc6767210d19c5d87";
+          sha256 = "04qzck156wb2bvrb8adbn7rx2v0bsjcirlbx4ajajjsqy858ayn9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-lean";
+          sha256 = "0j5ax14lhlyd9mpqk1jwh7nfp090kj71r045v2qjfaw2fa23b7si";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs helm lean-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-lean";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-lib-babel = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "helm-lib-babel";
+        ename = "helm-lib-babel";
+        version = "20180510.624";
+        src = fetchFromGitHub {
+          owner = "dfeich";
+          repo = "helm-lib-babel";
+          rev = "41bc0cdea8a604c6c8dc83ed5066644d33688fad";
+          sha256 = "1jrpaip5v9kzk0rf8wivsq8irdfd39svxd7p3v80cwgrrl7546xj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-lib-babel";
+          sha256 = "0ddj6xrhz4n0npplkjmblqb43jnd6fmr4i4vv1cigrgb7zj6bjx4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-lib-babel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-lines = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-lines";
+        ename = "helm-lines";
+        version = "20180601.1333";
+        src = fetchFromGitHub {
+          owner = "torgeir";
+          repo = "helm-lines.el";
+          rev = "3bfe15a60c6405682085ab289de3eb364624c4e9";
+          sha256 = "1fi0khqx35v48s14jr59jp06bpnhx9dy2rdasj2wn1a34jwgd49i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-lines";
+          sha256 = "110y0vdmab4zr3ab6cpf93b6iidxhanq4rh1cfrzqjf7a7xik78h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-lines";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-lobsters = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-lobsters";
+        ename = "helm-lobsters";
+        version = "20150213.746";
+        src = fetchFromGitHub {
+          owner = "julienXX";
+          repo = "helm-lobste.rs";
+          rev = "4121b232aeded2f82ad2c8a85c7dda17ef9d97bb";
+          sha256 = "0nkmc17ggyfi7iz959mvzh6q7116j44zqwi7ydm9i8z49xfpzafy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-lobsters";
+          sha256 = "0dkb78n373kywxj8zba2s5a2g85vx19rdswv9i78xjwv1lqh8cpp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-lobsters";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ls-git = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ls-git";
+        ename = "helm-ls-git";
+        version = "20180711.223";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-ls-git";
+          rev = "e38cee59c42fbf16b6de239a537d27af58473394";
+          sha256 = "0c53x1dzb80xs6qsmd6py7b9g7d0zva0dhvvxmipjy48dlzr3k5z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ls-git";
+          sha256 = "08rsy9479nk03kinjfkxddrq6wi4sx2a0wrz37cl2q517qi7sibj";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ls-git";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ls-hg = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ls-hg";
+        ename = "helm-ls-hg";
+        version = "20150908.2243";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-ls-hg";
+          rev = "61b91a22fcfb62d0fc56e361ec01ce96973c7165";
+          sha256 = "1msrsqiwk7bg5gry5cia8a6c7ifymfyn738hk8g2qwzzw4vkxxcs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ls-hg";
+          sha256 = "0ca0xn7n8bagxb504xgkcv04rpm1vxhx2m77biqrx5886pwl25bh";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ls-hg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ls-svn = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ls-svn";
+        ename = "helm-ls-svn";
+        version = "20150717.39";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "helm-ls-svn";
+          rev = "4d4dc1a272f27fba5fdd7cc47e5d309b53c63ae3";
+          sha256 = "0b7gah21rkfd43mb89lrwaqrrwq646abh7wi4q74sx796gmpz4dz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ls-svn";
+          sha256 = "0rqsy6gk114khqr28bp2fi0ixaa8wbqd952yxph517p1pbfwxy66";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ls-svn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-make = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , projectile }:
+      melpaBuild {
+        pname = "helm-make";
+        ename = "helm-make";
+        version = "20181107.1326";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "helm-make";
+          rev = "f86c3973af760df6d7d0ecc61c3d9d14e1d93e2b";
+          sha256 = "0lfwgdcvyg67m43gz00q65widv72hyqy2xgshd2j1pxkmqj2pmwk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-make";
+          sha256 = "1r6jjy1rlsii6p6pinbz7h6gcw4vmcycd3vj338bfbnqp5rrf2mc";
+          name = "recipe";
+        };
+        packageRequires = [ helm projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-make";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-migemo = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm-core
+                               , lib
+                               , melpaBuild
+                               , migemo }:
+      melpaBuild {
+        pname = "helm-migemo";
+        ename = "helm-migemo";
+        version = "20151009.2056";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "helm-migemo";
+          rev = "66c6a19d07c6a385daefd2090d0709d26b608b4e";
+          sha256 = "0gzlprf5js4y3vzkf7si2xc7ai5j97b5cqrs002hyjj5ij4f2vix";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-migemo";
+          sha256 = "1cjvb1lm1fsg5ky63fvrphwl5a7r7xf6qzb4mvl06ikj8hv2h33x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm-core migemo ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-migemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-mode-manager = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "helm-mode-manager";
+        ename = "helm-mode-manager";
+        version = "20151124.138";
+        src = fetchFromGitHub {
+          owner = "istib";
+          repo = "helm-mode-manager";
+          rev = "5d9c3ca4f8205d07ff4e03c4c3e88f596751c1fc";
+          sha256 = "1lbxb4vnnv6s46m90qihkj99qdbdylwncwaijjfd7i2kap2ayawh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-mode-manager";
+          sha256 = "04yhqbb9cliv1922b0abpc1wrladvhyfmwn8ifqfkzaks4067rhl";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-mode-manager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-mt = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild
+                           , multi-term }:
+      melpaBuild {
+        pname = "helm-mt";
+        ename = "helm-mt";
+        version = "20160917.2152";
+        src = fetchFromGitHub {
+          owner = "dfdeshom";
+          repo = "helm-mt";
+          rev = "d2bff4100118483bc398c56d0ff095294209265b";
+          sha256 = "1wci63y0vjvrvrylkhhrz8p9q0ml6la5cpj4rx5cwin9rkmislm6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-mt";
+          sha256 = "04hx8cg8wmm2w8g942nc9mvm12ammmjnx4k61ljrq76smd8s3x2a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm multi-term ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-mt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-mu = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "helm-mu";
+        ename = "helm-mu";
+        version = "20180513.221";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-mu";
+          rev = "77e6fea24e01481418738421dbcfe28ef1bd63cf";
+          sha256 = "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-mu";
+          sha256 = "0pydp6scj5icaqfp3dp5h0q1y2i7z9mfyw1ll6iphsz9qh3x2bj2";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-mu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-navi = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , navi-mode
+                             , s }:
+      melpaBuild {
+        pname = "helm-navi";
+        ename = "helm-navi";
+        version = "20170402.752";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-navi";
+          rev = "eb5d53f2abc640bea90e3c221562913c4d144638";
+          sha256 = "0d2nm35hnp26xlpp4s60ddg8mn89bpaa5b6qsap9ff6kqxfnhww1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-navi";
+          sha256 = "0v3amm15pwja2y7zg92hsfhp3scmswwl0q0slg33g11rvj26iiks";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm navi-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-navi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-nixos-options = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , lib
+                                      , melpaBuild
+                                      , nixos-options }:
+      melpaBuild {
+        pname = "helm-nixos-options";
+        ename = "helm-nixos-options";
+        version = "20151013.1609";
+        src = fetchFromGitHub {
+          owner = "travisbhartwell";
+          repo = "nix-emacs";
+          rev = "f7709bb007ebafb4d6b32778c7764e2c44e0420d";
+          sha256 = "1q7z9rdd00c562qbr51xy3qrqfj7wm4ycysx5fiasjisqa9vphkv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-nixos-options";
+          sha256 = "1nsi4hfw53iwn29fp33dkri1c6w8kdyn4sa0yn2fi6144ilmq933";
+          name = "recipe";
+        };
+        packageRequires = [ helm nixos-options ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-nixos-options";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-notmuch = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild
+                                , notmuch }:
+      melpaBuild {
+        pname = "helm-notmuch";
+        ename = "helm-notmuch";
+        version = "20180730.1022";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "helm-notmuch";
+          rev = "9988eb0f787c82c779f2417b5613b9142a5b1c9b";
+          sha256 = "1jwhmlqlgzxj2zfz0za33vn8m2zrsmkmnq2vx5i1nry70p9h43b4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-notmuch";
+          sha256 = "1ixdc1ba4ygxl0lpg6ijk06dgj2hfv5p5k6ivq60ss0axyisnnv0";
+          name = "recipe";
+        };
+        packageRequires = [ helm notmuch ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-notmuch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-open-github = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , gh
+                                    , helm-core
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "helm-open-github";
+        ename = "helm-open-github";
+        version = "20170219.1759";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-open-github";
+          rev = "2f03d97552a1233db7694116d5f80ecde7612756";
+          sha256 = "1nzi2m23mqvxkpa7wsd2j0rwvlv5pj0mcaz2ypgfd023k2vh9is1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-open-github";
+          sha256 = "1wqlwg21s9pjgcrwr8kdrppinmjn235nadkp4003g0md1d64zxpx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs gh helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-open-github";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-org-rifle = callPackage ({ dash
+                                  , emacs
+                                  , f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "helm-org-rifle";
+        ename = "helm-org-rifle";
+        version = "20180923.1509";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "helm-org-rifle";
+          rev = "e272fc43b964ef06a2673afd7c341dba87ae9ac4";
+          sha256 = "1i462vmn9k09mlzxac7aizx2akbwjkp5m2gghk3xb0i5a7hq56sm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-org-rifle";
+          sha256 = "0hx764vql2qgw9i8qrr3kkn23lw6jx3x604dm1y33ig6a15gy3a3";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-org-rifle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-orgcard = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , helm-core
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-orgcard";
+        ename = "helm-orgcard";
+        version = "20151001.824";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "helm-orgcard";
+          rev = "9655ac340d1ccc5f3d1c0f7c49be8dd3556d4d0d";
+          sha256 = "1zyjxrrda7nxxjqczv2p3sfimxy2pq734kf51j6v2y0biclc4bk3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-orgcard";
+          sha256 = "1a56y8fny7qxxidc357n7l3yi7h66hidhvwhkam8y5wk6k61460p";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-orgcard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-pages = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-pages";
+        ename = "helm-pages";
+        version = "20161120.1826";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "helm-pages";
+          rev = "51dcb9374d1df9feaae85e60cfb39b970554ecba";
+          sha256 = "0znmj13nshzspysnzrn2x6k9fym21n9ywkpjibljy0s05m36nbs5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-pages";
+          sha256 = "1v3w8100invb5wsmm3dyl41pjs7s889s3b1rlr6vlcspa1ncv3wj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-pages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-pass = callPackage ({ auth-source-pass
+                             , emacs
+                             , fetchFromGitLab
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , password-store }:
+      melpaBuild {
+        pname = "helm-pass";
+        ename = "helm-pass";
+        version = "20180607.1648";
+        src = fetchFromGitLab {
+          owner = "jabranham";
+          repo = "helm-pass";
+          rev = "fdff8f8f2e2b8a61caed7b6c171624700dbe1346";
+          sha256 = "1rq4gsz924m06l01x0058cgxxmqwvh4jga8fb7lwviispxi21nbn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-pass";
+          sha256 = "0a2yqd99j295ingljrvrni4z8qvlk9l827xi3rmkpafhhysch66h";
+          name = "recipe";
+        };
+        packageRequires = [ auth-source-pass emacs helm password-store ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-pass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-perldoc = callPackage ({ deferred
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm-core
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-perldoc";
+        ename = "helm-perldoc";
+        version = "20160917.2256";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-perldoc";
+          rev = "1979f9f67814c11ec9498502237c89a5e1153100";
+          sha256 = "0fvjw8sqnwnjx978y7fghvgp5dznx31hx0pjp4iih01xa1hcwbnc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-perldoc";
+          sha256 = "1qx0g81qcqanjiz5fxysagjhsxaj31g6nsi2hhdgq4x4nqrlmrhb";
+          name = "recipe";
+        };
+        packageRequires = [ deferred emacs helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-perldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-perspeen = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild
+                                 , perspeen }:
+      melpaBuild {
+        pname = "helm-perspeen";
+        ename = "helm-perspeen";
+        version = "20170228.545";
+        src = fetchFromGitHub {
+          owner = "jimo1001";
+          repo = "helm-perspeen";
+          rev = "7fe2922d85608bfa9e18269fc44181428b8849ff";
+          sha256 = "1m89c95vzmhsvrg5g7ixz5a5ckw2n983x58cwh8rkmaklavacgsy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-perspeen";
+          sha256 = "07cnsfhph807fqyai3by2c5ml9a40gxkq280f27disf8sc45rg1y";
+          name = "recipe";
+        };
+        packageRequires = [ helm perspeen ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-perspeen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-phpunit = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild
+                                , phpunit }:
+      melpaBuild {
+        pname = "helm-phpunit";
+        ename = "helm-phpunit";
+        version = "20160513.153";
+        src = fetchFromGitHub {
+          owner = "eric-hansen";
+          repo = "helm-phpunit";
+          rev = "739f26204ad2ba76c25f45e8eab1e5216f7c3518";
+          sha256 = "0wirqnzprfxbppdawfx6ah5rdawgyvl8b4zn2r3zm9mnj9jci4dw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-phpunit";
+          sha256 = "0anbrzlpmashcklifyvnnf2rwv5fk4x0kbls2dp2db1bliw3rdh6";
+          name = "recipe";
+        };
+        packageRequires = [ helm phpunit ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-phpunit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-posframe = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild
+                                 , posframe }:
+      melpaBuild {
+        pname = "helm-posframe";
+        ename = "helm-posframe";
+        version = "20180610.1048";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "helm-posframe";
+          rev = "d28f96ea92ee9393658901bb552723db10f40dc3";
+          sha256 = "1ycf5m06n32axqpm2vkvszff6gxdps1y8gm46682nf8mk2i3xa6f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-posframe";
+          sha256 = "16mhi17kl3cgwk7ymzg8crakwrwrzsg5p9ijgrdawa7px2z9ym78";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm posframe ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-posframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-proc = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-proc";
+        ename = "helm-proc";
+        version = "20161005.2005";
+        src = fetchFromGitHub {
+          owner = "markus1189";
+          repo = "helm-proc";
+          rev = "576d31c2d74ba3897d56e2acd2b0993f52c2547c";
+          sha256 = "11xahzybwh02ds19y6h5hbpqdj278kcb4239vyykdl3wx8p048a7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-proc";
+          sha256 = "11mh8ny8mhdmp16s21vy9yyql56zxcgmj2aapqs5jy4yad5q62rz";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-proc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-project-persist = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , helm
+                                        , lib
+                                        , melpaBuild
+                                        , project-persist }:
+      melpaBuild {
+        pname = "helm-project-persist";
+        ename = "helm-project-persist";
+        version = "20151210.743";
+        src = fetchFromGitHub {
+          owner = "Sliim";
+          repo = "helm-project-persist";
+          rev = "357950fbac18090985a750e40d5d8b10ee9dcd53";
+          sha256 = "0j54c1kzsjgr05qx25rg3ylawvyw6n6liypiwaas47vpyfswbxhv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-project-persist";
+          sha256 = "1n87kn1n3453mpdj6amyrgivslskmnzdafpspvkz7b0smf9mv2ld";
+          name = "recipe";
+        };
+        packageRequires = [ helm project-persist ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-project-persist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-projectile = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , helm
+                                   , lib
+                                   , melpaBuild
+                                   , projectile }:
+      melpaBuild {
+        pname = "helm-projectile";
+        ename = "helm-projectile";
+        version = "20180815.814";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "helm-projectile";
+          rev = "8a2dbc973548fac89356c11d70f7f474ea1367a5";
+          sha256 = "1lyka93dw4ndpw1qr1ixrng5lfdbz84yha5zl37imvkg68v6zi1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-projectile";
+          sha256 = "18y7phrvbpdi3cnghwyhh0v1bwm95nwq1lymzf8lrcbmrwcvh36a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-prosjekt = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild
+                                 , prosjekt }:
+      melpaBuild {
+        pname = "helm-prosjekt";
+        ename = "helm-prosjekt";
+        version = "20140128.2317";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "prosjekt";
+          rev = "f94f970c2d375e0973b66ba99b29c7aa42fd550f";
+          sha256 = "1kfifsqxybvrff6mwifjp0igbad11winsks05l8k661blsh7m5ir";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-prosjekt";
+          sha256 = "019rya3bf13cnval8iz680wby3sqlmqg4nbn0a13l1pkhlnv9fvm";
+          name = "recipe";
+        };
+        packageRequires = [ helm prosjekt ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-prosjekt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-pt = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "helm-pt";
+        ename = "helm-pt";
+        version = "20160214.1542";
+        src = fetchFromGitHub {
+          owner = "ralesi";
+          repo = "helm-pt";
+          rev = "8acc52911dad1ed0c3975f134a468762afe0b76b";
+          sha256 = "03ys40rr0pvgp35j5scw9c28j184f1c9m58a3x0c8f0lgyfpssjk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-pt";
+          sha256 = "1pvipzjw9h668jkbwwkmphvp806fs9q4mb2v2bjxpb0f3kn2qk3n";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-pt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-purpose = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild
+                                , window-purpose }:
+      melpaBuild {
+        pname = "helm-purpose";
+        ename = "helm-purpose";
+        version = "20170114.836";
+        src = fetchFromGitHub {
+          owner = "bmag";
+          repo = "helm-purpose";
+          rev = "9ff4c21c1e9ebc7afb851b738f815df7343bb287";
+          sha256 = "1xh6v5xlf1prgk6mrvkc6qa0r0bz74s5f4z3dl7d00chsi7i2m5v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-purpose";
+          sha256 = "16c9if636v7l8z5df011vdj4a3ci5kf3rdfk4g9hdbbl639yca79";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm window-purpose ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-purpose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-pydoc = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm-core
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-pydoc";
+        ename = "helm-pydoc";
+        version = "20160917.2242";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-pydoc";
+          rev = "85480a29b56dacde425655bc8f5a597c785afdf5";
+          sha256 = "1wrs2d84xzjnsmw255bmnd1wcpwd36m0vyni48aa7661d4dh10x3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-pydoc";
+          sha256 = "1sh7gqqiwk85kx89l1sihlkb8ff1g9n460nwj1y1bsrpfl6if4j7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-pydoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-qiita = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-qiita";
+        ename = "helm-qiita";
+        version = "20180301.635";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "emacs-helm-qiita";
+          rev = "3ccb85640bf54491ed3c3c8110d454ae181650dc";
+          sha256 = "03km0hm3jy6qcs8szqsmzpdmhfmyh121i5f68cf60am8y616f0kp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-qiita";
+          sha256 = "1iz2w1901zz3zk9zazikmnkzng5klnvqn4ph1id7liksrcdpdmpm";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-qiita";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rage = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "helm-rage";
+        ename = "helm-rage";
+        version = "20180118.732";
+        src = fetchFromGitHub {
+          owner = "bomgar";
+          repo = "helm-rage";
+          rev = "5d0aefb53d859186181d4bdcfeff7d315339c7b8";
+          sha256 = "0msj3rrv9bwhhwz7r1ayr6qvnxjsq7374j0xfhqbrx49pix4qf3q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rage";
+          sha256 = "02pdmkzwnqhf1r0v7b498z5b2il3ng75ykdwgmwd60k6hiygj70x";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rails = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , inflections
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rails";
+        ename = "helm-rails";
+        version = "20130424.819";
+        src = fetchFromGitHub {
+          owner = "asok";
+          repo = "helm-rails";
+          rev = "723c2a27f3843570ec1039e3c526953e48b4ed40";
+          sha256 = "1gpy6jc932p4yiyglnwylriw3jk2f4bs7rrxbwc0z9xzjzzn4qnz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rails";
+          sha256 = "1iihfsmnkpfp08pldghf3w5k8v5dlmy5ns0l4niwdwp5w8lyjcd6";
+          name = "recipe";
+        };
+        packageRequires = [ helm inflections ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rails";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rb = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , helm-ag-r
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rb";
+        ename = "helm-rb";
+        version = "20131123.839";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "helm-rb";
+          rev = "4949d646420a9849af234dacdd8eb34a77c662fd";
+          sha256 = "1b74jsr28ldz80mrqz3d1bmykpcprdbhf3fzhc0awd5i5xdnfaid";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rb";
+          sha256 = "14pkrj1rpi2ihpb7c1hx6xwzvc1x7l41lwr9znp5vn7z93i034fr";
+          name = "recipe";
+        };
+        packageRequires = [ helm helm-ag-r ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rdefs = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rdefs";
+        ename = "helm-rdefs";
+        version = "20161129.2136";
+        src = fetchFromGitHub {
+          owner = "saidie";
+          repo = "emacs-helm-rdefs";
+          rev = "cd3a6b3af3015ee58ef30cb7c81c79ebe5fc867b";
+          sha256 = "0ji7ak9pkmw0wxzmw5a1amvn3pkj90v9jv1yi12w388njxn7qsvj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rdefs";
+          sha256 = "0z3nrqrz63j9nxkbxdsjj3z8zhsqlik28iry3j1plgsxq1mhrn0y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rdefs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-recoll = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-recoll";
+        ename = "helm-recoll";
+        version = "20160731.221";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-recoll";
+          rev = "cc4c4fa9c8f4f99383647baa8512b60523dc8b36";
+          sha256 = "1ic2k8ls084yn9h96pk8815wlvxkwwdq75zhm1ls197pkbw7gh7y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-recoll";
+          sha256 = "0pr2pllplml55k1xx9inr3dm90ichg2wb62dvgvmbq2sqdf4606b";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-recoll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rg = callPackage ({ cl-lib ? null
+                           , dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rg";
+        ename = "helm-rg";
+        version = "20180629.220";
+        src = fetchFromGitHub {
+          owner = "cosmicexplorer";
+          repo = "helm-rg";
+          rev = "008b4b06036d95921f176f222e6055255516116d";
+          sha256 = "1zkcqcvr2svfa7i4d0vghr80nnksgmvdhfigb3r6prv9v84ghwkm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rg";
+          sha256 = "0gfq59540q9s6mr04q7dz638zqmqbqmbl1qaczddgmjn4vyjmf7v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rhythmbox = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rhythmbox";
+        ename = "helm-rhythmbox";
+        version = "20160524.458";
+        src = fetchFromGitHub {
+          owner = "mrBliss";
+          repo = "helm-rhythmbox";
+          rev = "c92e1ded34ddd4e62e7e9a558259c232e05193fa";
+          sha256 = "1ng73dmligj38xbfdfr8sb69czppks7wfvh5q5xcm2pha828kcwm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rhythmbox";
+          sha256 = "0pnm7yvas0q3b38ch5idm7v4ih2fjyfai8217j74xhkpcc2w4g4a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rhythmbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-robe = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-robe";
+        ename = "helm-robe";
+        version = "20151208.1955";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-robe";
+          rev = "7348d0bc0251b51979554ea678b970fd01c0efe9";
+          sha256 = "163ljqar3vvbavzc8sk6rnf8awyc2rhh2g117fglswich3c8lnqg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-robe";
+          sha256 = "1gi4nkm9xvnxv0frmhiiw8dkmnmhfpr9n0b6jpidlvr8xr4s5kyw";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-robe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ros = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild
+                            , xterm-color }:
+      melpaBuild {
+        pname = "helm-ros";
+        ename = "helm-ros";
+        version = "20160812.1052";
+        src = fetchFromGitHub {
+          owner = "davidlandry93";
+          repo = "helm-ros";
+          rev = "92b0b215f6a017f0f57f1af15466cc0b2a5a0135";
+          sha256 = "1fgph8wsm2nakn53zj19r59mirzn25r601rljmdv2xpw5h3axywg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ros";
+          sha256 = "1q9qqjchkj6anikaamhw998f5aaampc1z7085v9pigg3x11vv9fm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm xterm-color ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ros";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rtags = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild
+                              , rtags }:
+      melpaBuild {
+        pname = "helm-rtags";
+        ename = "helm-rtags";
+        version = "20170812.2111";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "ccba23e842a43e8079e22c2fc93d022ac40dedaf";
+          sha256 = "091gh5mmgz357mz0jpmbzzrsy04bjczac02i94jxf49p6yw9v4ga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rtags";
+          sha256 = "1vv6wnniplyls344qzgcf1ivv25c8qilax6sbhvsf46lvrwnr48n";
+          name = "recipe";
+        };
+        packageRequires = [ helm rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rubygems-local = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , helm
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rubygems-local";
+        ename = "helm-rubygems-local";
+        version = "20130711.1811";
+        src = fetchFromGitHub {
+          owner = "hadashiA";
+          repo = "helm-rubygems-local";
+          rev = "289cb33d41c703af9791d6da46b55f070013c2e3";
+          sha256 = "0s4hb1fvwr9za5gkz8s5w1kh9qjyygz6g59w7vmrg2d8ds2an03d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rubygems-local";
+          sha256 = "134qyqnh9l05lfj0vizlx35631q8ih6cdblrvka3p8i571300ikh";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rubygems-local";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rubygems-org = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rubygems-org";
+        ename = "helm-rubygems-org";
+        version = "20140826.456";
+        src = fetchFromGitHub {
+          owner = "neomantic";
+          repo = "helm-rubygems-org";
+          rev = "6aaed984f698cbdf9f9aceb0221404563e28764d";
+          sha256 = "1sff8kagyhmwcxf9062il1077d4slvr2kq76abj496610gpb75i0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rubygems-org";
+          sha256 = "04ni03ak53z3rggdgf68qh7ksgcf3s0f2cv6skwjqw7v8qhph6qs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rubygems-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-safari = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-safari";
+        ename = "helm-safari";
+        version = "20160403.2024";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "helm-safari";
+          rev = "664c7f4488829228eed7e90cd53002e14bec555b";
+          sha256 = "1ws5zxanaiaaxpgkcb2914qa8wxp6ml019hfnfcp7amjnajq9pyz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-safari";
+          sha256 = "0lvwghcl5w67g0lc97r7hfvca7ss0mysy2mxj9axxbpyiq6fmh0y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-safari";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-sage = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , sage-shell-mode }:
+      melpaBuild {
+        pname = "helm-sage";
+        ename = "helm-sage";
+        version = "20160514.45";
+        src = fetchFromGitHub {
+          owner = "stakemori";
+          repo = "helm-sage";
+          rev = "f14e9281d8f2162df7d8f9c2ad9ad1248a24803b";
+          sha256 = "0padb6mncgc52wib3dgvdc9r4dp591gf8nblbfnsnxx4zjrcwawb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-sage";
+          sha256 = "1vnq15fjaap0ai7dadi64sm4415xssmahk2j7kx45sasy4qaxlbj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm sage-shell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-sage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-selected = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild
+                                 , selected }:
+      melpaBuild {
+        pname = "helm-selected";
+        ename = "helm-selected";
+        version = "20171222.1810";
+        src = fetchFromGitHub {
+          owner = "takaxp";
+          repo = "helm-selected";
+          rev = "d2609cdfce14052ab2d9c23761d4fe56966a8ed1";
+          sha256 = "0nbfs5s6lshxib6kp20dzh1qbmq079hwcqwi1n61ank22qa9qw5x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-selected";
+          sha256 = "0ksyh0r59y4abwls6v6v519yxmcjnaryfnxlam48fqqfrsxv1j0h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm selected ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-selected";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-sheet = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-sheet";
+        ename = "helm-sheet";
+        version = "20130630.539";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-sheet";
+          rev = "d360b68d0ddb09aa1854e7b2f3cb39caeee26463";
+          sha256 = "00wnqcgpf4hqdnqj5zrizr4s0pffb93xwya8k5c3rp4plncrcdzx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-sheet";
+          sha256 = "0lx70l5gq43hckgdfna8s6wx287sw5ms9l1z3n6vg2x8nr9m61kc";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-sheet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-slime = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm-core
+                              , lib
+                              , melpaBuild
+                              , slime }:
+      melpaBuild {
+        pname = "helm-slime";
+        ename = "helm-slime";
+        version = "20181110.134";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-slime";
+          rev = "070d024147e1632b7358711b7f8fb77a28dcf265";
+          sha256 = "1gbifis00x6wd81smng81xn7xgflwxnzrr4g49g159g3dj3vvlzx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-slime";
+          sha256 = "0qv4c1dd28zqbjxpshga967szrh75a4k51n4x86xkbax7ycca4hh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm-core slime ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-slime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-smex = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , smex }:
+      melpaBuild {
+        pname = "helm-smex";
+        ename = "helm-smex";
+        version = "20171004.1308";
+        src = fetchFromGitHub {
+          owner = "ptrv";
+          repo = "helm-smex";
+          rev = "2269375dfa452b88b5170d1a5d5849ebb2c1e413";
+          sha256 = "0n2ki7g0hygsq4bi5zkhp3v772ld7niiajfznxmv11dgn949a52s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-smex";
+          sha256 = "02jvq2hyq4wwc9v8gaxr9vkjldc60khdbjf71p8w2iny5w3k0jbj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm smex ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-smex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-spaces = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm-core
+                               , lib
+                               , melpaBuild
+                               , spaces }:
+      melpaBuild {
+        pname = "helm-spaces";
+        ename = "helm-spaces";
+        version = "20161001.709";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-spaces";
+          rev = "877e2b5178926308d6a7c2a37477bb12c33a96d4";
+          sha256 = "1cz8aw6zprzfalagma7jmbycwll2chk2l4n5hkgqyhakdfm2ryzm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-spaces";
+          sha256 = "0hdvkk173k98iycvii5xpbiblx044125pl7jyz4kb8r1vvwcv791";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core spaces ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-spaces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-spotify = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild
+                                , multi }:
+      melpaBuild {
+        pname = "helm-spotify";
+        ename = "helm-spotify";
+        version = "20160905.1447";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "helm-spotify";
+          rev = "f7a62d1ff88e3127de9be7cd3e818b0a92268ab3";
+          sha256 = "0q3h84zj63b1rnlvmsznrpmvvf0qbic5yb9xkdjcz4jz4h8p3h1w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-spotify";
+          sha256 = "1rzvxnaqh8bm78qp0rhpqs971pc855qrq589r3s8z3gpqzmwlnmf";
+          name = "recipe";
+        };
+        packageRequires = [ helm multi ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-spotify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-spotify-plus = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild
+                                     , multi }:
+      melpaBuild {
+        pname = "helm-spotify-plus";
+        ename = "helm-spotify-plus";
+        version = "20180107.338";
+        src = fetchFromGitHub {
+          owner = "wandersoncferreira";
+          repo = "helm-spotify-plus";
+          rev = "c0903491da0adf215ad44bd31e11604da95062d6";
+          sha256 = "0wqj28i5l43xf8l24g4qn6vra489f0lp7nb5rj7yywy6siikmvx6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-spotify-plus";
+          sha256 = "1f39g2kgx4jr7ahhhswkrj0m5rbsykvkgh00d7jy8czpp8r4dl20";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm multi ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-spotify-plus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-sql-connect = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , helm
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "helm-sql-connect";
+        ename = "helm-sql-connect";
+        version = "20170319.551";
+        src = fetchFromGitHub {
+          owner = "eric-hansen";
+          repo = "helm-sql-connect";
+          rev = "5aead55b6f8636140945714d8c332b287ab9ef10";
+          sha256 = "037gri2r9y135av8gbgi9d8k90qs8jlax0bimzcbwdkyhibhzrcp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-sql-connect";
+          sha256 = "1av42580c68iq694yr532hhcq0jn7m58x3cib4ix5c8b4ljvnnvd";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-sql-connect";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-swoop = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-swoop";
+        ename = "helm-swoop";
+        version = "20180215.354";
+        src = fetchFromGitHub {
+          owner = "ShingoFukuyama";
+          repo = "helm-swoop";
+          rev = "c66336b8245ddc51c4206f19c119f1081920985c";
+          sha256 = "0b23j1bkpg4pm310hqdhgnl4mxsj05gpl08b6kb2ja4fzrg6adsk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-swoop";
+          sha256 = "1b3nyh4h5kcvwam539va4gzxa3rl4a0rdcriif21yq340yifjbdx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-swoop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-system-packages = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , helm
+                                        , lib
+                                        , melpaBuild
+                                        , seq }:
+      melpaBuild {
+        pname = "helm-system-packages";
+        ename = "helm-system-packages";
+        version = "20181011.2355";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-system-packages";
+          rev = "d25e88c6791fb6166aa3f69693670750e56caa5b";
+          sha256 = "1r3m81rylyhk9vvl4mv4rrqzh5lj2i944n7ih0zca3y8z37klh67";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-system-packages";
+          sha256 = "01mndx2zzh7r7gmpn6gd1vy1w3l6dnhvgn7n2p39viji1r8b39s4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm seq ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-system-packages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-systemd = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild
+                                , with-editor }:
+      melpaBuild {
+        pname = "helm-systemd";
+        ename = "helm-systemd";
+        version = "20180130.2034";
+        src = fetchFromGitHub {
+          owner = "Lompik";
+          repo = "helm-systemd";
+          rev = "96f5cd3ee3412539c2f8d145201f47c4f8e53b4f";
+          sha256 = "0wyabh76q2lighd7qxpkzp35fkblxlz8g7p4lpgfwvjid0ixmnvq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-systemd";
+          sha256 = "1m1by9i37ban3zkznyamp5vxizj8zsz06fdscdhmky1grf6ri4r8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm with-editor ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-systemd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-tail = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-tail";
+        ename = "helm-tail";
+        version = "20180624.203";
+        src = fetchFromGitHub {
+          owner = "akirak";
+          repo = "helm-tail";
+          rev = "ff3895e2fbc6d3cc6503bc295a49bba70654aaef";
+          sha256 = "0ixdr93axjqdqv2m4yvpnf2v4g7c1d1hkqhid2lfg8vaqb9dvqpw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-tail";
+          sha256 = "0sw97fzpnrk335l3vjaj3nw87cajhzwsjsxx16r0x6npbiv51wd4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-tail";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-themes = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm-core
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-themes";
+        ename = "helm-themes";
+        version = "20160917.2245";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-themes";
+          rev = "1160af42590b0d845a55e65e1e782d9e4027fd6e";
+          sha256 = "0856h8rnbgrxp3v3jpfmwq7kcdm1ymd4gcfvh0h27mk05113vz53";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-themes";
+          sha256 = "0r7kyd0i0spwi7xkjrpm2kyphrsl3hqm5pw96nd3ia0jiwp8550j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-tramp = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-tramp";
+        ename = "helm-tramp";
+        version = "20180829.9";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-helm-tramp";
+          rev = "2148e21fd1a6c8a0b61678bd187ab5a7e387ae64";
+          sha256 = "1dinm85z5dz7ql75bh9hy4kmasfb05amnch32y6xscjdg6736w8j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-tramp";
+          sha256 = "0wqnabaywkhj1fnc3wpx7czrqbja1hsqwcpixmvv0fyrflmza517";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-unicode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-unicode";
+        ename = "helm-unicode";
+        version = "20180608.707";
+        src = fetchFromGitHub {
+          owner = "bomgar";
+          repo = "helm-unicode";
+          rev = "b7092ed6a7191805651efae40947e4781c453211";
+          sha256 = "15qn5xynah23dfz3mdw5jabv9qfs2hjdjgn3ifmqn3r6sgd8hcjn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-unicode";
+          sha256 = "1j95qy2zwdb46dl30ankfx7013l0akc61m14s473j93w320j5224";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-unicode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-w32-launcher = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "helm-w32-launcher";
+        ename = "helm-w32-launcher";
+        version = "20141223.1214";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "helm-w32-launcher";
+          rev = "3e59ad62b89dd21d334af0203d445a83eb25dc5b";
+          sha256 = "0xlz9rxx7y9pkrzvxmv42vgys5iwx75zv9g50k8ihwc08z80dhcq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-w32-launcher";
+          sha256 = "0bzn2vhspn6lla815qxwsl9gwfyiwgwmnysr6rjpyacmi17d73ri";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-w32-launcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-w3m = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild
+                            , w3m }:
+      melpaBuild {
+        pname = "helm-w3m";
+        ename = "helm-w3m";
+        version = "20181029.26";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-w3m";
+          rev = "c15d926631198d6d759ec8881837bcca5a64963b";
+          sha256 = "0qaqcwhwmckfmg3axiad35azn0l74k1niw4ix0v1bn2vqrxanqcw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-w3m";
+          sha256 = "1rr83ija93iqz74k236hk3v75jk0iwcccwqpqgys7spvrld0b9pz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm w3m ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-w3m";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-wordnet = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-wordnet";
+        ename = "helm-wordnet";
+        version = "20160128.707";
+        src = fetchFromGitHub {
+          owner = "raghavgautam";
+          repo = "helm-wordnet";
+          rev = "a36dbc6fcb570b812870bc1e190f203e0a0042fc";
+          sha256 = "03a5hzgqak8wg6i2h2p3fr9ij55lqarcsblml8qrnrj27ghcvzzh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-wordnet";
+          sha256 = "0di8gxsa9r8mzja4akhz0wpgrhlidqyn1s1ix5szplwxklwf2r2f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-wordnet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-xcdoc = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-xcdoc";
+        ename = "helm-xcdoc";
+        version = "20160116.218";
+        src = fetchFromGitHub {
+          owner = "fujimisakari";
+          repo = "emacs-helm-xcdoc";
+          rev = "a85612149a6d8e18ab309b3db2d222ce39c42049";
+          sha256 = "1yqr5z5sw7schvaq9pmwg79anp806gikm28s6xvrayzyn4idz2n6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-xcdoc";
+          sha256 = "1ikphlnj053i4g1l8r2pqaljvdqglj1yk0xx4vygnw98qyzdsx4v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-xcdoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-xref = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-xref";
+        ename = "helm-xref";
+        version = "20180528.816";
+        src = fetchFromGitHub {
+          owner = "brotzeit";
+          repo = "helm-xref";
+          rev = "6f7e8eeec5cc4db64a76ba242c0f2f61e7ee1e46";
+          sha256 = "13f47b3pv37181bbvpaws2z4jcfbim8b2b7zh988gbm579qi4fq6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-xref";
+          sha256 = "1wyh25gxqgsc151bv4j5l050z1cz0n3yq174m62ihi1fy1pkra4l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-xref";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-youtube = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild
+                                , request }:
+      melpaBuild {
+        pname = "helm-youtube";
+        ename = "helm-youtube";
+        version = "20161113.1848";
+        src = fetchFromGitHub {
+          owner = "maximus12793";
+          repo = "helm-youtube";
+          rev = "7a944bc25f0f9e915011e9325caf46b46fcaa1b8";
+          sha256 = "0948rq6i4ibwhmi6m2k23f83yvf56vwgri1sg2060d901zd86cxy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-youtube";
+          sha256 = "1qal5q83p06ghn482rflcfklr17mir582r0mvchxabb5ql60dy0b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm request ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-youtube";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-z = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , helm
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "helm-z";
+        ename = "helm-z";
+        version = "20171203.1925";
+        src = fetchFromGitHub {
+          owner = "yynozk";
+          repo = "helm-z";
+          rev = "37212220bebea8b9c238cb1bbacd8332b7f26c03";
+          sha256 = "1vz958yiva01yl1qj2pz84savcx8jgkvbywhcp4c3a8x3fikf0yl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-z";
+          sha256 = "1m268zsr4z7a9l5wj0i8qpimv0kyl8glgm0yb3f08959538nlmd1";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-z";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-zhihu-daily = callPackage ({ cl-lib ? null
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , helm
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "helm-zhihu-daily";
+        ename = "helm-zhihu-daily";
+        version = "20160625.445";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "helm-zhihu-daily";
+          rev = "be27dcc6be1eb97663b65581a9a5c0fc81cfaba7";
+          sha256 = "1s8q97pra27bacvm5knj0sjgj7iqljlhxqiniaw8ij8w4fhcdh93";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-zhihu-daily";
+          sha256 = "0hkgail60s9qhxl0pskqxjvfz93iq1qh1kcmcq0x5kq7d08b911r";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-zhihu-daily";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helpful = callPackage ({ dash
+                           , dash-functional
+                           , elisp-refs
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , shut-up }:
+      melpaBuild {
+        pname = "helpful";
+        ename = "helpful";
+        version = "20181031.1308";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "helpful";
+          rev = "039345ef60b4722d050c94ab1978540137df35f9";
+          sha256 = "19gxhsp0vq6b6550i1hj5hx77z4szkckx556akqs4v8gh7z15fn4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helpful";
+          sha256 = "17w9j5v1r2c8ka1fpzbr295cgnsbiw8fxlslh4zbjqzaazamchn2";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional elisp-refs emacs f s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/helpful";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hemera-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "hemera-theme";
+        ename = "hemera-theme";
+        version = "20180916.224";
+        src = fetchFromGitHub {
+          owner = "guidoschmidt";
+          repo = "emacs-hemera-theme";
+          rev = "b67c902b210b37b00cac68726822404543147ba8";
+          sha256 = "1q31kz5p97pby26lyb6r0jfcx5pdyax3sfba4lp8dzmxpisz2g2p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hemera-theme";
+          sha256 = "00d8dmmn7mhzj6ai0qgdkj4hy1qpdcyiriky97prydibjvljq239";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hemera-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hemisu-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "hemisu-theme";
+        ename = "hemisu-theme";
+        version = "20130508.1144";
+        src = fetchFromGitHub {
+          owner = "andrzejsliwa";
+          repo = "hemisu-theme";
+          rev = "ae593ac58e6bffef97467259c1d1472840385e84";
+          sha256 = "0vjc6aalwplz9sm9nqca7d07ypijjp366vdzg7gqyfzsvdhr1s0v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hemisu-theme";
+          sha256 = "0byzrz74yvk12m8dl47kkmkziwrrql193q72qx974zbqdj8h2sph";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hemisu-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    heroku = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "heroku";
+        ename = "heroku";
+        version = "20120629.1113";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "heroku.el";
+          rev = "92af1c073b593c4def99c8777c869992aa4d0b3a";
+          sha256 = "0c45pib8qpwgyr271g5ddnsn7hzq68mqflv0yyc8803ni06w9vhj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/heroku";
+          sha256 = "1wavsymviybfcmwdfrffbkdwbiydggx55jqg6ql79wf9bx7agacp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/heroku";
+          license = lib.licenses.free;
+        };
+      }) {};
+    heroku-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "heroku-theme";
+        ename = "heroku-theme";
+        version = "20150522.1919";
+        src = fetchFromGitHub {
+          owner = "jonathanchu";
+          repo = "heroku-theme";
+          rev = "7c1e80f8b5087c37008fec687070344638cd4752";
+          sha256 = "05h4q7gykh18v9pn9zjhgrzjwbn21z58a2mrifmis3bpwa5zypvd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/heroku-theme";
+          sha256 = "0mchh9y3pqwamry6105qrv1bp1qg1g0jmz7rzc5svz9giynypwf9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/heroku-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hexo = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "hexo";
+        ename = "hexo";
+        version = "20180814.1919";
+        src = fetchFromGitHub {
+          owner = "kuanyui";
+          repo = "hexo.el";
+          rev = "6bca18f911f6b2cd5c055ed73ddec98c385f9f86";
+          sha256 = "1zawz3nry832rhx80hyfqfs0gfw3hyrn96060zj3n75avx13rr8j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hexo";
+          sha256 = "0fgrxf6gdw0kzs6x6y8qr511cazaaiyk7licgkgznngj4w6g7jyn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hexo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hfst-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "hfst-mode";
+        ename = "hfst-mode";
+        version = "20160708.502";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "hfst-mode";
+          rev = "ac1bb9dd92545d3e7fdc05c83996c227cc15c6b8";
+          sha256 = "0zsz8542kh51clzy8j7g29bwm8zcnfxm9sjzh3xjpqk2ziqf4ii6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hfst-mode";
+          sha256 = "1w342n5k9ak1m5znysvrplpr9dhmi7hxbkr4d1dx51dn0azbpjh7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hfst-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hgignore-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "hgignore-mode";
+        ename = "hgignore-mode";
+        version = "20160430.1707";
+        src = fetchFromGitHub {
+          owner = "omajid";
+          repo = "hgignore-mode";
+          rev = "7aa9f3b8a9c610dbd80b952061b40194e1d9c5bd";
+          sha256 = "0l22sqi9lmy25idh231p0hgq22b3dxwb9wq60yxk8dck9zlkv7rr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hgignore-mode";
+          sha256 = "0ja71l3cghhn1c6w2pff80km8h8xgzf0j9gcldfyc72ar6ifhjkj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hgignore-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hgrc-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "hgrc-mode";
+        ename = "hgrc-mode";
+        version = "20150409.1343";
+        src = fetchFromGitHub {
+          owner = "omajid";
+          repo = "hgrc-mode";
+          rev = "314e8320b82cc1ce74b1bd372f296252e7a23090";
+          sha256 = "1ky5s7hzqbxgasdz285q3rnvzh3irwsq61rlivjrcxyfdxdjbbvp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hgrc-mode";
+          sha256 = "18400dhdackdpndkz6shjmd4klfh6b4vlccnnqlzf3a93alw6vqf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hgrc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hi2 = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "hi2";
+        ename = "hi2";
+        version = "20141005.1231";
+        src = fetchFromGitHub {
+          owner = "nilcons";
+          repo = "hi2";
+          rev = "c9d199727b5cdcb9e36a972b38131ce4611fd6c8";
+          sha256 = "1s08sgbh5v59lqskd0s1dscs6dy7z5mkqqkabs3gd35agbfvbmlf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hi2";
+          sha256 = "1wxkjg1jnw05lqzggi20jy2jl20d8brvv76vmrf6lnz62g6jv9h2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hi2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hide-lines = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "hide-lines";
+        ename = "hide-lines";
+        version = "20151127.1040";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "hide-lines";
+          rev = "331122bf19361130351cfe55968c2a7820329eb3";
+          sha256 = "183l0sx8zn3jv1fqa3xj7a6fd792sp50jyhm50j3hy7c54m4capf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hide-lines";
+          sha256 = "18h5ygi6idpb5wjlmjjvjmwcw7xiljkfxdvq7pm8wnw75p705x4d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hide-lines";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hide-mode-line = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "hide-mode-line";
+        ename = "hide-mode-line";
+        version = "20180302.1110";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-hide-mode-line";
+          rev = "86b9057391edad75467261c2e579603567e608f9";
+          sha256 = "0qmjmwhmlm008r22n2mv7lir4v1lpfz1c3yvqlwjgv0glbyvqd88";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hide-mode-line";
+          sha256 = "0yl6aicpib5h1ckqi3gyilh2nwvp8gf1017n1w1755j01gw1p9hl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hide-mode-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hideshow-org = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "hideshow-org";
+        ename = "hideshow-org";
+        version = "20120223.1450";
+        src = fetchFromGitHub {
+          owner = "shanecelis";
+          repo = "hideshow-org";
+          rev = "16419e52e6cdd2f46f755144c0ab11ce00d1a626";
+          sha256 = "1dr06b9njzih8z97k62l9w3x0a801x4bp043zvk7av9qkz8izl2r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hideshow-org";
+          sha256 = "1bzx5ii06r64nra92zv1dvw5zv3im7la2dd3md801hxyfrpb74gc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hideshow-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hierarchy = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "hierarchy";
+        ename = "hierarchy";
+        version = "20171221.351";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "hierarchy";
+          rev = "06f21d3fc16c44c1fa45dc9c91d10100b4db9355";
+          sha256 = "1sp59nc82qb40n8p08hr0j4ig7ypc2icvgz74057vs1q042asqqw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hierarchy";
+          sha256 = "0fh1a590pdq21b4mwh9wrfsmm2lw2faw18r35cdzy8fgyf89yimp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hierarchy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight = callPackage ({ fetchgit
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "highlight";
+        ename = "highlight";
+        version = "20181002.451";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/highlight.el.git";
+          rev = "ea733e17884aeae19172407e20559fc693fdd3a7";
+          sha256 = "13ajbhpwvdmk0mzaffj45gxqmq13b57d81iqdpg9q2l2wjk95jq7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight";
+          sha256 = "11icn6f46synw6xvs2a266g43fvpnz8i7d7dyr0iywzjpbpyhsd2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-blocks = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-blocks";
+        ename = "highlight-blocks";
+        version = "20151201.815";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "highlight-blocks";
+          rev = "9c4240a5d16008db430d1a81c76dad474d3deb0c";
+          sha256 = "0c65jk00j88qxfki2g88hy9g6n92rzskwcn1fbmwcw3qgaz4b6w5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-blocks";
+          sha256 = "1a32iv5kgf6g6ygbs559w156dh578k45m860czazfx0d6ap3k5m1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-blocks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-context-line = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-context-line";
+        ename = "highlight-context-line";
+        version = "20170319.1442";
+        src = fetchFromGitHub {
+          owner = "ska2342";
+          repo = "highlight-context-line";
+          rev = "f91e99c178831830801299b9c3a512c4d70871a0";
+          sha256 = "0q8z7i0jijj0yjz9smsqhx2hgrps0vyspadpc1ssb8vn5mn7vngb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-context-line";
+          sha256 = "0zmqcfsr2j0m2l76c8h6lmdqwrd1b38gi6yp5sdib0m4vj9d0pnd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-context-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-defined = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-defined";
+        ename = "highlight-defined";
+        version = "20181106.918";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "highlight-defined";
+          rev = "8e05be23e555ab05edc6fb188f5ce28ef495c946";
+          sha256 = "1xqs8shzka47ns4a60ba2i2kgjcq9vl9w1518ffhb4x2x41lr4ri";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-defined";
+          sha256 = "1vjxm35wf4c2qphpkjh57hf03a5qdssdlmfj0n0gwxsdw1q5rpms";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-defined";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-doxygen = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-doxygen";
+        ename = "highlight-doxygen";
+        version = "20180829.1118";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "highlight-doxygen";
+          rev = "53f2250018725fa19548e1771ee79fcc23641694";
+          sha256 = "0l6zh5cmp771h30i16bv3qvcq40pz9fxn3j7a8yx708vanb4d7kc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-doxygen";
+          sha256 = "0jkzf2mqn7y465c77vglaj3mr0cpfy2z810mywd1q21d71lsqmbl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-doxygen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-escape-sequences = callPackage ({ fetchFromGitHub
+                                              , fetchurl
+                                              , lib
+                                              , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-escape-sequences";
+        ename = "highlight-escape-sequences";
+        version = "20171117.437";
+        src = fetchFromGitHub {
+          owner = "dgutov";
+          repo = "highlight-escape-sequences";
+          rev = "08d846a7aa748209d65fecead2b6a766c3e5cb41";
+          sha256 = "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-escape-sequences";
+          sha256 = "0938b29cqapid9v9q4w2jwh8kdb0p70qwzy9xm2nxaairm7436d6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-escape-sequences";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-function-calls = callPackage ({ emacs
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-function-calls";
+        ename = "highlight-function-calls";
+        version = "20170907.2200";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "highlight-function-calls";
+          rev = "f7a1eaf95fc64cc0db4d0567f9ff79ec4ae04787";
+          sha256 = "1gbj1awjp69352a5p49ldimvij5mj8cngjp2sh45qw1cm5dpq653";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-function-calls";
+          sha256 = "0wmxijkhx74da3ygnvzsdvbh2iii4f7424wmm01b5skbr7qva690";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-function-calls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-indent-guides = callPackage ({ emacs
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-indent-guides";
+        ename = "highlight-indent-guides";
+        version = "20181106.1021";
+        src = fetchFromGitHub {
+          owner = "DarthFennec";
+          repo = "highlight-indent-guides";
+          rev = "fc99ee753ac9d53ce91fb032f97430a551e04466";
+          sha256 = "0czg07gjwf6r0bn6848yaq96v9y32aizdglmdp4d7vk7bryvcd1i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-indent-guides";
+          sha256 = "00ghp677qgb5clxhdjarfl8ab3mbp6v7yfsldm9bn0s14lyaq5pm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-indent-guides";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-indentation = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-indentation";
+        ename = "highlight-indentation";
+        version = "20171218.137";
+        src = fetchFromGitHub {
+          owner = "antonj";
+          repo = "Highlight-Indentation-for-Emacs";
+          rev = "35e2c1d4f8f368685893128f77f90454cb9c2708";
+          sha256 = "1rmqi8k8p0f3aawh2l119hsfnnd060bv9hhjx13pabid8xhhvs73";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-indentation";
+          sha256 = "0iblrrbssjwfn71n8xxjcl98pjv1qw1igf3hlz6mh8740fsca3d6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-indentation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-leading-spaces = callPackage ({ emacs
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-leading-spaces";
+        ename = "highlight-leading-spaces";
+        version = "20151216.422";
+        src = fetchFromGitHub {
+          owner = "mrBliss";
+          repo = "highlight-leading-spaces";
+          rev = "840db19d863dd97993fd9f893f5be501627b6354";
+          sha256 = "1vy6j63jp83ljdqkrqglpys74yfh7p61sd0lqiwczgr5nqyc60rl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-leading-spaces";
+          sha256 = "0h2ww2vqmarghf4zg0wbwn0wgndmkcjy696mc885rwavck2dav4p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-leading-spaces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-numbers = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , parent-mode }:
+      melpaBuild {
+        pname = "highlight-numbers";
+        ename = "highlight-numbers";
+        version = "20181013.1044";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "highlight-numbers";
+          rev = "8b4744c7f46c72b1d3d599d4fb75ef8183dee307";
+          sha256 = "075ip8h7bdin0yvvhn5nkwnz58arlaw1imr866ghp12q5rl4shmc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-numbers";
+          sha256 = "1bywrjv9ybr65mwkrxggb52jdqn16z8acgs5vqm0faq43an8i5yv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs parent-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-numbers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-operators = callPackage ({ fetchhg
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-operators";
+        ename = "highlight-operators";
+        version = "20170213.1420";
+        src = fetchhg {
+          url = "https://bitbucket.com/jpkotta/highlight-operators";
+          rev = "3938e88e78c5";
+          sha256 = "1h5whrc1iphzq0g8x9mmkhjkbmbdg9i9bvr1y8zrwrs8za8k127y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-operators";
+          sha256 = "00agrwp2i3mkacnp4qhqcnpwn5qlbj9qv97zrw7a7ldqga0vwvhn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-operators";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-parentheses = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-parentheses";
+        ename = "highlight-parentheses";
+        version = "20180704.402";
+        src = fetchFromGitHub {
+          owner = "tsdh";
+          repo = "highlight-parentheses.el";
+          rev = "f0bd58c8dadd2db703b7bfd09e911b5fda05b3df";
+          sha256 = "14jzh0vr2sig2ql1iq2x7svvk8ayvy9ahz04y407f53h70ifbmdl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-parentheses";
+          sha256 = "1d38wxk5bwblddr74crzwjwpgyr8zgcl5h5ilywg35jpv7n66lp5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-parentheses";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-quoted = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-quoted";
+        ename = "highlight-quoted";
+        version = "20140916.1122";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "highlight-quoted";
+          rev = "ec9108486cf7f21f9a0b13f81369849b3b525f1f";
+          sha256 = "0vqkadhzszlxiqb4ysr7p86hhmi4z1j95llxa680xn6md8x2sj8a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-quoted";
+          sha256 = "0x6gxi0jfxvpx7r1fm43ikxlxilnbk2xbhdy9xivhgmmdyqiqqkl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-quoted";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-refontification = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-refontification";
+        ename = "highlight-refontification";
+        version = "20170211.1224";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "highlight-refontification";
+          rev = "32632897d88c4611fadb08517ca00ef5cbc989b6";
+          sha256 = "1k6af947h70ivkj31mk3nv2vkxlfpqvpwq8za53n2l7adsjdlf73";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-refontification";
+          sha256 = "0cm9p4d7yhkz5a88m0y4646a6b9lb2ha7q12fcrdikyckpmbkqss";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-refontification";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-stages = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-stages";
+        ename = "highlight-stages";
+        version = "20161212.657";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "highlight-stages";
+          rev = "87c476f8ca0474912af41680a8de243c0c8d5b46";
+          sha256 = "1s7hxv4vpbrpk4makdjn3589flddgfy35scyd3kac629fbqiiz79";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-stages";
+          sha256 = "0r4kmjmrpi38q3y0q9h5xkxh7x728ha2nbnc152lzw6zfsxnm4x4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-stages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-symbol = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-symbol";
+        ename = "highlight-symbol";
+        version = "20160102.1209";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "highlight-symbol.el";
+          rev = "7a789c779648c55b16e43278e51be5898c121b3a";
+          sha256 = "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-symbol";
+          sha256 = "01zw7xrkpgc89m55d60dx3s3kjajh5c164f64s2fzrgl9xj92h0r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-symbol";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-thing = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-thing";
+        ename = "highlight-thing";
+        version = "20170919.704";
+        src = fetchFromGitHub {
+          owner = "fgeller";
+          repo = "highlight-thing.el";
+          rev = "efa9abbef9b23d24179fad2518ac03e31d2dd9a9";
+          sha256 = "1a39nvlcih26qsjb5s0051j9c9vqv5l66m7wl3ja4pnxx9k4754g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-thing";
+          sha256 = "0rvdb1lx9xn9drqw0sw9ih759n10g7k0af39w6n8g0wfr67p96w1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-thing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-unique-symbol = callPackage ({ deferred
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-unique-symbol";
+        ename = "highlight-unique-symbol";
+        version = "20130611.2242";
+        src = fetchFromGitHub {
+          owner = "hitode909";
+          repo = "emacs-highlight-unique-symbol";
+          rev = "d760015b4a5ce31d6da5a30890b599a8e1312be5";
+          sha256 = "1sib511n4plbipl4mgjq6vshf03q4h50kga7lyj1qrwf32yxxf10";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-unique-symbol";
+          sha256 = "0lwl8pkmq0q4dvyflarggnn8vzpvk5hhcnk508r6xml2if1sg9zx";
+          name = "recipe";
+        };
+        packageRequires = [ deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-unique-symbol";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight2clipboard = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , htmlize
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "highlight2clipboard";
+        ename = "highlight2clipboard";
+        version = "20151020.1140";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "highlight2clipboard";
+          rev = "6ce58a060d9c5843ccb8c79ec2bba7858c68ac15";
+          sha256 = "06nnqry36ncqacfzd8yvc4q59bwk3vgf9a14rkpph2hk2rfvq2m6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight2clipboard";
+          sha256 = "19r7abbpm31b0azf2v3xn0rjagg9h01i8g72qapp8dhqb4d9n9r0";
+          name = "recipe";
+        };
+        packageRequires = [ htmlize ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight2clipboard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    himp = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , vimish-fold }:
+      melpaBuild {
+        pname = "himp";
+        ename = "himp";
+        version = "20181002.954";
+        src = fetchFromGitHub {
+          owner = "mkcms";
+          repo = "himp";
+          rev = "3975c76cc9e7c6bfe7fe04ad95d8659cfed46b58";
+          sha256 = "0adpzc2gdp8qsbm3hmcmxq1zqzy73xzhm7brf4raa58bxcfw51ak";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/himp";
+          sha256 = "1igzlvm4g4rcnlvnwi5kn1jfvyrw2vnmp1kpvfnv7w9n6d8kflla";
+          name = "recipe";
+        };
+        packageRequires = [ emacs vimish-fold ];
+        meta = {
+          homepage = "https://melpa.org/#/himp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hindent = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "hindent";
+        ename = "hindent";
+        version = "20180518.202";
+        src = fetchFromGitHub {
+          owner = "commercialhaskell";
+          repo = "hindent";
+          rev = "dc47d8b98ebd6ee7fdd7de5f75e65e5b5eedf72f";
+          sha256 = "0xp3mpiyrc6886bi9rih4vbmsar56h8i5sapigd3gn2pv2v688bc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hindent";
+          sha256 = "0az2zhdi73sa3h1q1c0bayqdk22a7ngrvsg9fr8b0i39sn3w8y07";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/hindent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hippie-exp-ext = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "hippie-exp-ext";
+        ename = "hippie-exp-ext";
+        version = "20160502.1626";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "hippie-exp-ext";
+          rev = "4eda13f90da51ab217d024701f4c30f91ffcb90e";
+          sha256 = "141ikpyns1gd6kjply8m9jy9gifx5xdw5bn4p29hrxgiw994a78d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hippie-exp-ext";
+          sha256 = "142s7cmgjnqdmac21yps3b071sv18lw068kmxchyxb0zsa067g9l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hippie-exp-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hippie-expand-slime = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "hippie-expand-slime";
+        ename = "hippie-expand-slime";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "hippie-expand-slime";
+          rev = "39bbae94896a62854d31754debdfae71d35fec62";
+          sha256 = "1l2j5k4jk8jpm1vdf0z5zwa287859afsgd3gda778sdsiy38l6r7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hippie-expand-slime";
+          sha256 = "0kxyv1lpkg33qgfv1jfqx03640py7525bcnc9dk98w6y6y92zf4m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hippie-expand-slime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hippie-namespace = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "hippie-namespace";
+        ename = "hippie-namespace";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "hippie-namespace";
+          rev = "107d927634032062483e83c6de9b7698b64809d1";
+          sha256 = "0lyw9llblicc9fs1y6n5l5wsh7va5dzm684q0n48aaqy3d1kvdpw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hippie-namespace";
+          sha256 = "1bzjhq116ci9c9f0aw121fn3drmg2pw5ny1w6wcasa4p30syxxf0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hippie-namespace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    historian = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "historian";
+        ename = "historian";
+        version = "20180619.1223";
+        src = fetchFromGitHub {
+          owner = "PythonNut";
+          repo = "historian.el";
+          rev = "6be869f585b854eb849303c452ab4f91dab04fa9";
+          sha256 = "07iw04aibmiz5fn97dafyk5k67yl525w6i1gwzazil4wb81q4b21";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/historian";
+          sha256 = "00cghcyb3liz2prgygjwsw82d9h70zjddnbf7dvglmj7ph9wn9ab";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/historian";
+          license = lib.licenses.free;
+        };
+      }) {};
+    history = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "history";
+        ename = "history";
+        version = "20160821.902";
+        src = fetchFromGitHub {
+          owner = "boyw165";
+          repo = "history";
+          rev = "5317663fb45bbd5e96d258cb0807dcc266ce67ff";
+          sha256 = "1ghbpfmmp5p0wvivd79165dx5kia8qkmac3a6asg2d6l1h9y58n1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/history";
+          sha256 = "0s8pcz53bk1w4h5847204vb6j838vr8za66ni1b2y4pas76zjr5g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/history";
+          license = lib.licenses.free;
+        };
+      }) {};
+    historyf = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "historyf";
+        ename = "historyf";
+        version = "20151123.1759";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "emacs-historyf";
+          rev = "64ab6c9d2cd6dec6982622bf675326e011373cd2";
+          sha256 = "1mxicha6m61qxz1mv9z76x4g9fpqk4ch9i6jf7nnpxd6x4xz3f7z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/historyf";
+          sha256 = "15pcaqfjpkfwcy46yqqw10q8kpw7aamcg0gr4frbdgzbv0yld08s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/historyf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hive = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , sql ? null }:
+      melpaBuild {
+        pname = "hive";
+        ename = "hive";
+        version = "20131217.712";
+        src = fetchFromGitHub {
+          owner = "r0man";
+          repo = "hive-el";
+          rev = "131f2816a0cf4d1fee44198ca305e6e2d1cab750";
+          sha256 = "1hz1j1jv86k80g8safyy7h40j94xhczxmq6kz70cb1czn5df0zlh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hive";
+          sha256 = "1marz8gmk824hb0nkhaw48d4qw1xjk1aad27gviya7f5ilypxrya";
+          name = "recipe";
+        };
+        packageRequires = [ sql ];
+        meta = {
+          homepage = "https://melpa.org/#/hive";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hiwin = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "hiwin";
+        ename = "hiwin";
+        version = "20150825.127";
+        src = fetchFromGitHub {
+          owner = "yoshida-mediba";
+          repo = "hiwin-mode";
+          rev = "6ee8ed051405653bd9b7332d7e9fbb591d954051";
+          sha256 = "177blksgncxpxd1zi9kmbcfjnpd3ll1szjxiyc4am8a6hs1dyyqk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hiwin";
+          sha256 = "0klhxwxsz7xan2vsknw79r1dj4qhhjbfpddr67mk9qzccp8q0w8g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hiwin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hl-anything = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "hl-anything";
+        ename = "hl-anything";
+        version = "20160422.1008";
+        src = fetchFromGitHub {
+          owner = "hl-anything";
+          repo = "hl-anything-emacs";
+          rev = "c2e50f91a05d6c43e8a1c169f709cd1f23e47b0a";
+          sha256 = "1i93zh2ivm1xd6f13wp9fidn94rjnlx89xcgkz95lpiv90icqm3b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hl-anything";
+          sha256 = "0czpc82j5hbzprc66aall72lqnk38dxgpzx4rs8sbx95cag12dxa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hl-anything";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hl-indent = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "hl-indent";
+        ename = "hl-indent";
+        version = "20170429.1404";
+        src = fetchFromGitHub {
+          owner = "ikirill";
+          repo = "hl-indent";
+          rev = "bdb2e0177a7c8b29af26998e688b856adc6ded93";
+          sha256 = "0fwb64ja5ij97308pnd7g6l5mascavcp7jcar8igxv9yyqnw6pfi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hl-indent";
+          sha256 = "1z42kcwcyinjay65mv042ijh4xfaaiyri368g0sjw0fflsg0ikcr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hl-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hl-sentence = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "hl-sentence";
+        ename = "hl-sentence";
+        version = "20171018.819";
+        src = fetchFromGitHub {
+          owner = "milkypostman";
+          repo = "hl-sentence";
+          rev = "86ae38d3103bd20da5485cbdd59dfbd396c45ee4";
+          sha256 = "1rzc74ckj06qs8kq2bd1cgqvgjd2qc3zxmk7bvgg6dy2m9nj52cm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hl-sentence";
+          sha256 = "16sjfs0nnpwzj1cqfna9vhmxgznwwhb2qdmjci25hlgrdxwwyahs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hl-sentence";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hl-todo = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "hl-todo";
+        ename = "hl-todo";
+        version = "20181031.1209";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "hl-todo";
+          rev = "24b9925b1b2c7ad6bf7b66800395f74abf035c5f";
+          sha256 = "1bqi2kchcj58j1y3k439v6jk86cg73m0qwfyjz1396h0h2rspnnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hl-todo";
+          sha256 = "1iyh68xwldj1r02blar5zi01wnb90dkbmi67vd6h78ksghl3z9j4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hl-todo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hledger-mode = callPackage ({ async
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , htmlize
+                                , lib
+                                , melpaBuild
+                                , popup }:
+      melpaBuild {
+        pname = "hledger-mode";
+        ename = "hledger-mode";
+        version = "20180821.733";
+        src = fetchFromGitHub {
+          owner = "narendraj9";
+          repo = "hledger-mode";
+          rev = "af51c0a7a0952c244e5c6bb818ab4ce3b9806609";
+          sha256 = "1j3bi47wfwa9d34yf6c2bmibmmags8q3vd3l2raqriagjf5gzwgb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hledger-mode";
+          sha256 = "15s8rqc94z70jzv13961nvcm9a9qadq04pf0m6xrzf8qqk71zn52";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs htmlize popup ];
+        meta = {
+          homepage = "https://melpa.org/#/hledger-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hlint-refactor = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "hlint-refactor";
+        ename = "hlint-refactor";
+        version = "20170817.2148";
+        src = fetchFromGitHub {
+          owner = "mpickering";
+          repo = "hlint-refactor-mode";
+          rev = "92c69aa01c65968e86c15db087bb1ea785e4736c";
+          sha256 = "0khnn8qk0948hlq513i7nhf7vg09iwznmj3bgw1b5k5r8j6lhs0g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hlint-refactor";
+          sha256 = "1311z6y7ycwx0mj67bya7a39j5hiypg72y6yg93dhgpk23wk7frq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hlint-refactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hlinum = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "hlinum";
+        ename = "hlinum";
+        version = "20180421.2112";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "hlinum-mode";
+          rev = "f17360fe93de6df99a05b4b64b0a1ca4ee45abb6";
+          sha256 = "01sfba4sd3mjc7bs1y4qdzryfawg1xzg3hbwy9afwfaz0w5czni8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hlinum";
+          sha256 = "04b6m0njr7yrbcbpkhqz4hmqpfacmyca3lw75dyw3vpjpsj2g0iv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/hlinum";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hmac = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "hmac";
+        ename = "hmac";
+        version = "20180429.1310";
+        src = fetchFromGitHub {
+          owner = "grimnebulin";
+          repo = "emacs-hmac";
+          rev = "30132cd3fee7d3d91a9f04709d49ca0dcb96d565";
+          sha256 = "0l4msj1i8amcn10dk1shcyh6hn49iphma1q03kp2h84ga79xdpi3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hmac";
+          sha256 = "0am8pbjwf43nvhqa2mppdgiyd7kil7jxnaq7hhi5214bsrqgxk31";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hmac";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hoa-mode = callPackage ({ fetchgit
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "hoa-mode";
+        ename = "hoa-mode";
+        version = "20151203.850";
+        src = fetchgit {
+          url = "https://gitlab.lrde.epita.fr/spot/emacs-modes.git";
+          rev = "3c608e15b655d2375c5f81323ac561c7848dc029";
+          sha256 = "19360wx1i7lkr8igddm7zl9yh5hlm3r013rkd512cs18iz1y753x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hoa-mode";
+          sha256 = "06rfqn7sqvmgpvwhfmk17qqs4q0frfzhm597z3p1q7kys2035kiv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hoa-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hoa-pp-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , names }:
+      melpaBuild {
+        pname = "hoa-pp-mode";
+        ename = "hoa-pp-mode";
+        version = "20151027.36";
+        src = fetchFromGitHub {
+          owner = "hoaproject";
+          repo = "Contributions-Emacs-Pp";
+          rev = "a72104a191214fba502653643a0d166a8f5341d9";
+          sha256 = "1wg6vc9swwspi6s6jpig3my83i2pq8vkq2cy1q3an87rczacmfzp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hoa-pp-mode";
+          sha256 = "01ijfn0hd645j6j88rids5dsanmzwmky37slf50yqffnv69jwvla";
+          name = "recipe";
+        };
+        packageRequires = [ emacs names ];
+        meta = {
+          homepage = "https://melpa.org/#/hoa-pp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    holiday-pascha-etc = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "holiday-pascha-etc";
+        ename = "holiday-pascha-etc";
+        version = "20160821.1758";
+        src = fetchFromGitHub {
+          owner = "hexmode";
+          repo = "holiday-pascha-etc";
+          rev = "eb198656f63cb8679fb0e3a8248782df071a0f3c";
+          sha256 = "1dd0k7r5kx15sph12vzakhq27zh7vy9r541qdp8w5051k6apw3pw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/holiday-pascha-etc";
+          sha256 = "0v2mhga1db6qy1160i730pzzrzisvhl3fjkazj4cjbkpjlshfc5j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/holiday-pascha-etc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    home-end = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , keypress-multi-event
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "home-end";
+        ename = "home-end";
+        version = "20180817.155";
+        src = fetchFromGitHub {
+          owner = "Boruch-Baum";
+          repo = "emacs-home-end";
+          rev = "211914c5e7b25f35f02626575a9b10536f81ba1d";
+          sha256 = "1ppjm0sb4svarnqcv6j581sqnjjsps27ghx63759v9wkylqyi995";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/home-end";
+          sha256 = "0xnpb0n4kd7b0m80g2a88ylfk5gbvkcgwb78nig98dmgjg48z2ly";
+          name = "recipe";
+        };
+        packageRequires = [ emacs keypress-multi-event ];
+        meta = {
+          homepage = "https://melpa.org/#/home-end";
+          license = lib.licenses.free;
+        };
+      }) {};
+    homebrew-mode = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , inf-ruby
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "homebrew-mode";
+        ename = "homebrew-mode";
+        version = "20160615.620";
+        src = fetchFromGitHub {
+          owner = "dunn";
+          repo = "homebrew-mode";
+          rev = "d422307aee2f897d1a92e3b959c3214bc54cbe38";
+          sha256 = "1z4d0niz8q24f2z8rnfnc2rlmkffkf7qc57qn4695jbkzb7galfz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/homebrew-mode";
+          sha256 = "088wc5fq4r5yj1nbh7mriyqf0xwqmbxvblj9d2wwrkkdm5flc8mj";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/homebrew-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    honcho = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , sudo-edit }:
+      melpaBuild {
+        pname = "honcho";
+        ename = "honcho";
+        version = "20180706.1724";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "honcho.el";
+          rev = "f6a89a27e255b3ecb1f0b13058933558b1f0c6fb";
+          sha256 = "06q0rw1vc3h1jd7q544csqn6mkfzcqmdlcr7pcrs7y2jsgb01k4s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/honcho";
+          sha256 = "1ywx67dmvackfx19p4fvrb8mm27a7pri3m3bwr2acwd29lrrid2x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs sudo-edit ];
+        meta = {
+          homepage = "https://melpa.org/#/honcho";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hookify = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "hookify";
+        ename = "hookify";
+        version = "20141216.1409";
+        src = fetchFromGitHub {
+          owner = "Silex";
+          repo = "hookify";
+          rev = "e76127230716f7fab6662410c03c3872d17a172b";
+          sha256 = "1yvz9d5h7npxhsdf6s9fgxpmqk5ixx91iwivbhzcz935gs2886hc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hookify";
+          sha256 = "0prls539ifk2fsqklcxmbrwmgbm9hya50z486d7sw426lh648qmy";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/hookify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    horoscope = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "horoscope";
+        ename = "horoscope";
+        version = "20180408.2341";
+        src = fetchFromGitHub {
+          owner = "mschuldt";
+          repo = "horoscope.el";
+          rev = "f4c683e991adce0a8f9023f15050f306f9b9a9ed";
+          sha256 = "17k4j4q19l4ahxlzzic1jlbbh7l378j9vgnrcrvpm0lxa9ipclk0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/horoscope";
+          sha256 = "1y2nzhdl7ghi5l3iyzb04xics7gr5981jmb5z5y8y1z04xhqpfs6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/horoscope";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hound = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , request }:
+      melpaBuild {
+        pname = "hound";
+        ename = "hound";
+        version = "20170627.1259";
+        src = fetchFromGitHub {
+          owner = "ryoung786";
+          repo = "hound.el";
+          rev = "0c5a250ef82870dca737a429b6e9b9db93874ed3";
+          sha256 = "0kf2nhp5k3gk82ad1k9qi4aysqhw36x4mcdhg6kjckmcakfjw3g6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hound";
+          sha256 = "0qri6bddd3c4sqvaqvmqw6xg46vwlfi1by3gc9i3izpq4xl1cr1v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib request ];
+        meta = {
+          homepage = "https://melpa.org/#/hound";
+          license = lib.licenses.free;
+        };
+      }) {};
+    how-many-lines-in-project = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "how-many-lines-in-project";
+        ename = "how-many-lines-in-project";
+        version = "20140806.2142";
+        src = fetchFromGitHub {
+          owner = "kaihaosw";
+          repo = "how-many-lines-in-project";
+          rev = "8a37ef885d004fe2ce231bfe05ed4867c6192d9b";
+          sha256 = "0vygbdjy2dv7n50vrkcnqyswq48sgas0zzjfsac8x5g9vhxjkawj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/how-many-lines-in-project";
+          sha256 = "0rsl8f0ww2q5w87a8ddfjadw4mx4g2ahb62yb6xw7pzadmmz89f8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/how-many-lines-in-project";
+          license = lib.licenses.free;
+        };
+      }) {};
+    howdoi = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "howdoi";
+        ename = "howdoi";
+        version = "20150203.1643";
+        src = fetchFromGitHub {
+          owner = "atykhonov";
+          repo = "emacs-howdoi";
+          rev = "5fbf7069ee160c597a328e5ce5fb32920e1ca88f";
+          sha256 = "01sj9c8mxqaif8wh6zz9v2czjaq7vcdi66drldyjmifkln6rg2v8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/howdoi";
+          sha256 = "12vgbypawxhhrnjp8dgh0wrcp7pvjccfaxw4yhq7msai7ik3h83b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/howdoi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    howm = callPackage ({ cl-lib ? null
+                        , fetchgit
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "howm";
+        ename = "howm";
+        version = "20180929.514";
+        src = fetchgit {
+          url = "https://scm.osdn.net/gitroot/howm/howm.git";
+          rev = "f707233a99f425d67ddb86b197edeaa3f03a280d";
+          sha256 = "1k1fv6yyydxcv8rm5f3cyly0fl0vmxgqxdk9wnakabcb14d32ws4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/howm";
+          sha256 = "07wx3wmc51vm42s81km5sdbm600ax2pv83xg0116xsyn05za3bfn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/howm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ht = callPackage ({ dash
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ht";
+        ename = "ht";
+        version = "20180129.1434";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "ht.el";
+          rev = "5a665d00dc8fda77bad2a43277d8809c23e46ab8";
+          sha256 = "0w0zi393ixgi154c6dq2i1kf3kraqyfw8alfxcn6fhhxy1g9p02y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ht";
+          sha256 = "16vmxksannn2wyn8r44jbkdp19jvz1bg57ggbs1vn0yi7nkanwbd";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ht";
+          license = lib.licenses.free;
+        };
+      }) {};
+    html-check-frag = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "html-check-frag";
+        ename = "html-check-frag";
+        version = "20160130.2135";
+        src = fetchFromGitHub {
+          owner = "TobiasZawada";
+          repo = "html-check-frag";
+          rev = "feb89765eafd69dfcf07afeebded8985dc456e7c";
+          sha256 = "10lbxf56gvy26grzrhhx2p710fzs0h866jd2zmmgkisvyb0vaiay";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/html-check-frag";
+          sha256 = "0drancb9ryifiln44b40l6cal0c7nyp597a6q26288s3v909yk2a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/html-check-frag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    html-script-src = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "html-script-src";
+        ename = "html-script-src";
+        version = "20120403.1115";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "html-script-src.el";
+          rev = "0efeed7ab948e48128e6f1a7ddff17ef2951e1c2";
+          sha256 = "11zffiy5s0zqwi8hxwa87j2k8n2lm54v8knnbwa5zafhqpb53znm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/html-script-src";
+          sha256 = "0pdyc2a9wxxc9rivjm2kgh4ysdxmdp73wg37nfy2nzka1m7qni7j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/html-script-src";
+          license = lib.licenses.free;
+        };
+      }) {};
+    html-to-hiccup = callPackage ({ dash
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "html-to-hiccup";
+        ename = "html-to-hiccup";
+        version = "20161028.701";
+        src = fetchFromGitHub {
+          owner = "plexus";
+          repo = "html-to-hiccup";
+          rev = "99217a5058626d253ed8ada51a7642071fe54ba5";
+          sha256 = "1cvlh1iqjdmgwbw254g0rfdshsj7dhqjjp56gwqhn2fqkga44a7i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/html-to-hiccup";
+          sha256 = "0gyghgdil14i4p0yv5mb6la1ajzf8xcgdm1si5i5w7cn72vfapmz";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/html-to-hiccup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    html-to-markdown = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "html-to-markdown";
+        ename = "html-to-markdown";
+        version = "20151105.40";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "html-to-markdown";
+          rev = "60c5498c801be186478cf7c05be05b4430c4a144";
+          sha256 = "09n3zm9ivln8ng80fv5vwwzh9mj355ni685axda3m85xfxgai8gi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/html-to-markdown";
+          sha256 = "1gjh9ndqsb3nfb7w5h7carjckkgy6qh63b4mg141j19dsyx9rrjv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/html-to-markdown";
+          license = lib.licenses.free;
+        };
+      }) {};
+    html2org = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "html2org";
+        ename = "html2org";
+        version = "20170417.2201";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "html2org.el";
+          rev = "6904aed40259ad8afccff079ebd8a07bff319ebc";
+          sha256 = "0dryk622fz0yj939pbs0fbb9i4m8qjnmkcxjsssws8f90plk06af";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/html2org";
+          sha256 = "1lj4dwmjkc43dfmsc7z4nvydmmf6wrk5v9ms23zf0llnk9h3hvnk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/html2org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    htmlize = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "htmlize";
+        ename = "htmlize";
+        version = "20180923.1129";
+        src = fetchFromGitHub {
+          owner = "hniksic";
+          repo = "emacs-htmlize";
+          rev = "8db0aa6aab77475a732b7363f0d57bd3933c18fd";
+          sha256 = "19hwcqla1mnp5k8mll4in1pimqpa8zmqd8yfmxkikldmwwsilaq0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/htmlize";
+          sha256 = "16nvvsi4nxi0zzk5a6mwmp43p0ls20zdx9r18mxz6bsaw6jangh2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/htmlize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    http = callPackage ({ edit-indirect
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , request }:
+      melpaBuild {
+        pname = "http";
+        ename = "http";
+        version = "20181008.1421";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "http.el";
+          rev = "1bbfff5994e16ffc185c4ac28d792cb040da3351";
+          sha256 = "0bs2l487mn8zkx3h7zgynm5cq54w8wlr150izaxynqddcpkrr44h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/http";
+          sha256 = "1176jhm8m7s1pzp0zv1sqawcgn4m5zvxghypmsrjyyb5p7m6dalm";
+          name = "recipe";
+        };
+        packageRequires = [ edit-indirect emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/http";
+          license = lib.licenses.free;
+        };
+      }) {};
+    http-post-simple = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "http-post-simple";
+        ename = "http-post-simple";
+        version = "20170715.240";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "http-post-simple";
+          rev = "f53697fca278c741051aeb668b00466b5e0fd3fe";
+          sha256 = "0krdbvvvzn323vx554yw7947nddl3icfjk4wf5kfx7fim5v3mdn6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/http-post-simple";
+          sha256 = "0z3zphaqywbm7vn2g1f7fkrdamgsc26i8zydm9y53v9z9fmzch5s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/http-post-simple";
+          license = lib.licenses.free;
+        };
+      }) {};
+    http-twiddle = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "http-twiddle";
+        ename = "http-twiddle";
+        version = "20160801.1211";
+        src = fetchFromGitHub {
+          owner = "hassy";
+          repo = "http-twiddle";
+          rev = "46da2dbc40209925aa88ab19014ca982bcf9ac70";
+          sha256 = "03fdpl64lgwlz8yc29ia9scbh0s5xh7g7jbyfvvp6hcy2f0yiyx7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/http-twiddle";
+          sha256 = "1d8xnwhb8lp4p4xnnkryx5c6isd8ckalp0smx66lbi1pa4g6iqsh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/http-twiddle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    httpcode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "httpcode";
+        ename = "httpcode";
+        version = "20121001.2045";
+        src = fetchFromGitHub {
+          owner = "rspivak";
+          repo = "httpcode.el";
+          rev = "a45e735082b09477cd704a99294d336cdbeb12ba";
+          sha256 = "02jz8qwxl69zhwvpmlqc15znr8x4f30paqszmm7xrrrz5x1c1rn4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/httpcode";
+          sha256 = "05k1al1j119x6zf03p7jn2r9qql33859583nbf85k41bhicknpgh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/httpcode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    httprepl = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "httprepl";
+        ename = "httprepl";
+        version = "20141101.1034";
+        src = fetchFromGitHub {
+          owner = "gregsexton";
+          repo = "httprepl.el";
+          rev = "cfa3693267a8ed1c96a86a126823f37dbfe077d8";
+          sha256 = "0wd4wmy99mx677x4sdbp57bxxll1fsnnf8hk97r85xdmmjsmrkld";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/httprepl";
+          sha256 = "0899qb1yfnsyf04hhvnk47qnq4d1f4vd5ghj43x4743wd2b9qawh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/httprepl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hugsql-ghosts = callPackage ({ cider
+                                 , dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , s }:
+      melpaBuild {
+        pname = "hugsql-ghosts";
+        ename = "hugsql-ghosts";
+        version = "20180425.429";
+        src = fetchFromGitHub {
+          owner = "rkaercher";
+          repo = "hugsql-ghosts";
+          rev = "f3ebc60c66204ad39058cb84eb4bd5facce091df";
+          sha256 = "0pcr39x8yxl5aa0sz20gw20ixz5imw5m19bzhzbzyn7slr65hlqn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hugsql-ghosts";
+          sha256 = "1v1iypis5iyimdr9796qpqw0qmhzijap0nbr0mhhyp4001kakkwz";
+          name = "recipe";
+        };
+        packageRequires = [ cider dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/hugsql-ghosts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hungarian-holidays = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "hungarian-holidays";
+        ename = "hungarian-holidays";
+        version = "20161020.438";
+        src = fetchFromGitHub {
+          owner = "gergelypolonkai";
+          repo = "hungarian-holidays";
+          rev = "653108769279499d84a79267c90e640d98823872";
+          sha256 = "0jjparw5axydjf2lj8asccmksbbj9zgdiv2kc211h122q5712gvm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hungarian-holidays";
+          sha256 = "1bdl0ynlni1i19hq4h48k8j9b2davv2kfgrpd2mrl2xqmjvhm1m2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hungarian-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hungry-delete = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "hungry-delete";
+        ename = "hungry-delete";
+        version = "20170411.1802";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "hungry-delete";
+          rev = "0434458d3f6b2b585f332271feaa054bf4ec96d7";
+          sha256 = "04g8gdfqpzdhxf5rnl2k49f2klmzxwys79aib7xs30i0n8c8qb7d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hungry-delete";
+          sha256 = "0hcsm3yndkyfqzb77ibx7df6bjppc34x5yabi6nd389pdscp9rpz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hungry-delete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hy-mode = callPackage ({ dash
+                           , dash-functional
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "hy-mode";
+        ename = "hy-mode";
+        version = "20180702.1240";
+        src = fetchFromGitHub {
+          owner = "hylang";
+          repo = "hy-mode";
+          rev = "71a12a9208c4b87859bcbb6978e7915dd518e8dd";
+          sha256 = "1px4kws91y581bg2zaav2nx972v73r4r0j135p5cbnynvkrknhnz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hy-mode";
+          sha256 = "1vxrqla3p82x7s3kn7x4h33vcdfms21srxgxzidr02k37f0vi82m";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/hy-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hyai = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "hyai";
+        ename = "hyai";
+        version = "20170301.647";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "hyai";
+          rev = "e9a7e945fed12d8e664e898cf8b434b0376d5d80";
+          sha256 = "1sbn4h74crawdy8yjdjklxh1q6js5y9ip5qxf6dfi85h82qizpa8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hyai";
+          sha256 = "00ns7q5b11c5amwkq11fs4p5vrmdfmjljfrcxbwb39gc12yrhn7s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hyai";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hydandata-light-theme = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "hydandata-light-theme";
+        ename = "hydandata-light-theme";
+        version = "20160815.2118";
+        src = fetchFromGitHub {
+          owner = "hydandata";
+          repo = "hydandata-light-theme";
+          rev = "169c0d9ab1272b0f4a1f29eb5f1cd5ffb2365e1e";
+          sha256 = "19q63kg1higqxf26bhwnqwvqxpayjq2j24yi54b1wkvwbv5f28nr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hydandata-light-theme";
+          sha256 = "0jw43m91m10ifqg335y6d52r6ri77hcmxkird8wsyrpsnk3cfb60";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hydandata-light-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hyde = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "hyde";
+        ename = "hyde";
+        version = "20160507.2008";
+        src = fetchFromGitHub {
+          owner = "nibrahim";
+          repo = "Hyde";
+          rev = "a8cd6ed00ecd8d7de0ded2f4867015b412b15b76";
+          sha256 = "14sk9gai7sscvwgbl7y3dzz8fdhrqynilscmdimlncpm15w56m6i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hyde";
+          sha256 = "18kjcxm7qmv9bfh4crw37zgax8khjqs9zkp4lrb490zlad2asbs3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hyde";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hydra = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "hydra";
+        ename = "hydra";
+        version = "20181110.940";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "hydra";
+          rev = "5c5b9ca3262594c92f8f73c98db5ed0f1efd0319";
+          sha256 = "0dvh4sg1s76jy41vsy6dh3a4b8vr5msldnyssmqzdqwrsw64hl6r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hydra";
+          sha256 = "1c59l43p39ins3dn9690gm6llwm4b9p0pk78lip0dwlx736drdbw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/hydra";
+          license = lib.licenses.free;
+        };
+      }) {};
+    i2b2-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "i2b2-mode";
+        ename = "i2b2-mode";
+        version = "20140709.1804";
+        src = fetchFromGitHub {
+          owner = "danlamanna";
+          repo = "i2b2-mode";
+          rev = "db10efcfc8bed369a516bbf7526ede41f98cb95a";
+          sha256 = "17k41rah17l9kf7bvlm83x71nzz4aizgn7254cl5sb59mdhcm8pm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/i2b2-mode";
+          sha256 = "1jnlisdnp9sz54p444vlq00y3080i4ljcvclri9fy382g1s5ags5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/i2b2-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    i3wm = callPackage ({ fetchgit
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "i3wm";
+        ename = "i3wm";
+        version = "20170822.738";
+        src = fetchgit {
+          url = "https://git.flintfam.org/swf-projects/emacs-i3.git";
+          rev = "71391dc61063fee77ad174f3b2ca25c60b41009e";
+          sha256 = "16rwqfg517ask3y6mqxw689w8xx4i51nq8js5wnzbz9a55aj776n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/i3wm";
+          sha256 = "11246d71g82iv9zrd44013zwkmnf32m1x8zbrbb656dnzx7ps4rl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/i3wm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ialign = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ialign";
+        ename = "ialign";
+        version = "20181002.955";
+        src = fetchFromGitHub {
+          owner = "mkcms";
+          repo = "interactive-align";
+          rev = "2504a9e8c6c5ce6b470541955154af31a8f9d3ca";
+          sha256 = "073k068cfgva72m05n8py33p7dc92a5wss2zqm0db5bmx7qgkfn9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ialign";
+          sha256 = "070a0fa2vbdfvbnpbzv4z0c7311lf8sy2zw2ifn9k548n4l8k62j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ialign";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iasm-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "iasm-mode";
+        ename = "iasm-mode";
+        version = "20171023.722";
+        src = fetchFromGitHub {
+          owner = "RAttab";
+          repo = "iasm-mode";
+          rev = "abbec7f308f9ce97beeb57e459fff35f559b4c18";
+          sha256 = "0hvpcckhlxab5f7w4s6iw5lhdbjrqn0l8gayg1w42rn6gssr3rap";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iasm-mode";
+          sha256 = "09xh41ayaha07fi5crk3c6pn17gwm3samsf6h71ldkywvz74kipv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iasm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ibuffer-git = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ibuffer-git";
+        ename = "ibuffer-git";
+        version = "20110508.31";
+        src = fetchFromGitHub {
+          owner = "jrockway";
+          repo = "ibuffer-git";
+          rev = "d326319c05ddb8280885b31f9094040c1b365876";
+          sha256 = "1s5qvlf310b0z7q9k1xhcf4qmyfqd37jpqd67ciahaxk7cp224rd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ibuffer-git";
+          sha256 = "048888y07bzmi9x5i43fg6bgqbzdqi3nfjfnn6zr29jvlx366r5z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ibuffer-git";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ibuffer-projectile = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , projectile }:
+      melpaBuild {
+        pname = "ibuffer-projectile";
+        ename = "ibuffer-projectile";
+        version = "20180324.2025";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ibuffer-projectile";
+          rev = "1e89bfa7cae0629d29f24af3d81774b88b3cede0";
+          sha256 = "0y0pvjic5n5wmkrjzjjnhz2xaknib6w5p01vgv2jf5ylwq84wray";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ibuffer-projectile";
+          sha256 = "1qh4krggmsc6lx5mg60n8aakmi3f6ppl1gw094vfcsni96jl34fk";
+          name = "recipe";
+        };
+        packageRequires = [ projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/ibuffer-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ibuffer-rcirc = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ibuffer-rcirc";
+        ename = "ibuffer-rcirc";
+        version = "20150215.1318";
+        src = fetchFromGitHub {
+          owner = "fgallina";
+          repo = "ibuffer-rcirc";
+          rev = "8a4409b1c679d65c819dee4085faf929840e79f8";
+          sha256 = "15lapyj7qkkw1i1g1aizappm7gxkfnxhvd4fq66lghkzb76clz2m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ibuffer-rcirc";
+          sha256 = "1y6pyc6g8j42hs103yynjsdkkxvcq0q4xsz4r93rqwsr3za3wcmc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ibuffer-rcirc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ibuffer-sidebar = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ibuffer-sidebar";
+        ename = "ibuffer-sidebar";
+        version = "20180218.1731";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "ibuffer-sidebar";
+          rev = "b18a8ca0fac9cbfb6e99bcccc2cea488d5876add";
+          sha256 = "1vvzmx4wi0bscig0aqrs9rmxw6mnyyqcxg3mi8mr52j43p1kdmr3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ibuffer-sidebar";
+          sha256 = "0rzdybkqaf8r6v19isgw4wv0mwdqxvf55gq1ig4shscjc7ys22wp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ibuffer-sidebar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ibuffer-tramp = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ibuffer-tramp";
+        ename = "ibuffer-tramp";
+        version = "20151118.939";
+        src = fetchFromGitHub {
+          owner = "svend";
+          repo = "ibuffer-tramp";
+          rev = "41fab2ad174f53a4cf5ef7d2ebef518dede82ab4";
+          sha256 = "1mfrbr725p27p3s5nxh7xhm81pdr78ysz8l3kwrlp97bb6dmljmq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ibuffer-tramp";
+          sha256 = "11a9b9g1jk2r3fldi012zka4jzy68kfn4991xp046qm2fbc7la32";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ibuffer-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ibuffer-vc = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ibuffer-vc";
+        ename = "ibuffer-vc";
+        version = "20181024.2024";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ibuffer-vc";
+          rev = "1a2dcdbaf1d314620b0512ce32e27dbcc6916e73";
+          sha256 = "0icgp2zf54nlkmlkja1zq2ry32dma7x7j97sh2fbcz6fx6951ywf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ibuffer-vc";
+          sha256 = "0bn5qyiq07cgzci10xl57ss5wsk7bfhi3hjq2v6yvpy9v704dvla";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ibuffer-vc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    id-manager = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "id-manager";
+        ename = "id-manager";
+        version = "20170320.546";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-id-manager";
+          rev = "14ebc35db298aac4dedc8aa188bc46bacab81f3b";
+          sha256 = "0k9b12gzvjw06y5ycjkigkj8vcmj4rz57d4hyzip27g1v93vvimc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/id-manager";
+          sha256 = "13g5fi06hvx0x2wn1d1d8rkfq5n6wbk9g5bhx2b5sar2yw0akmwm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/id-manager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idea-darkula-theme = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "idea-darkula-theme";
+        ename = "idea-darkula-theme";
+        version = "20160416.1603";
+        src = fetchFromGitHub {
+          owner = "fourier";
+          repo = "idea-darkula-theme";
+          rev = "52602d9b91883e1f297d000951aeed48bf60176e";
+          sha256 = "1hknhbm3b5rsba2s84iwspylhzjsm91zdckz22j9gyrq37wjgyrr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idea-darkula-theme";
+          sha256 = "0lanhwlhd7pbzjc047vd5sgsmi2bx66gr3inr8y57swgrfw3l8sk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/idea-darkula-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    identica-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "identica-mode";
+        ename = "identica-mode";
+        version = "20130204.1453";
+        src = fetchFromGitHub {
+          owner = "gabrielsaldana";
+          repo = "Emacs-Identica-mode";
+          rev = "cf9183ee11ac922e85c7c908f04e2d00b03111b3";
+          sha256 = "047gzycr49cs8wlmm9j4ry7b7jxmfhmbayx6rbbxs49lba8dgwlk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/identica-mode";
+          sha256 = "1r69ylykjap305g23cry4wajiqhpgw08nw3b5d9i1y3mwx0j253q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/identica-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idle-highlight-in-visible-buffers-mode = callPackage ({ fetchFromGitHub
+                                                          , fetchurl
+                                                          , lib
+                                                          , melpaBuild }:
+      melpaBuild {
+        pname = "idle-highlight-in-visible-buffers-mode";
+        ename = "idle-highlight-in-visible-buffers-mode";
+        version = "20181027.831";
+        src = fetchFromGitHub {
+          owner = "ignacy";
+          repo = "idle-highlight-in-visible-buffers-mode";
+          rev = "8d8de309d5bd4b035c01bf7f0cfc6e079c79d898";
+          sha256 = "194r7f4ngwx03n74rs26hqn9wypn9idjizvmffpsjpxfr7wr9z7l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idle-highlight-in-visible-buffers-mode";
+          sha256 = "0kv06qlv1zp5hwaya0l90z6d5lhxcg69qac6x24ky6kf97vcdq72";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/idle-highlight-in-visible-buffers-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idle-highlight-mode = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "idle-highlight-mode";
+        ename = "idle-highlight-mode";
+        version = "20120920.948";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "idle-highlight-mode";
+          rev = "c466f2a9e291f9da1167dc879577b2e1a7880482";
+          sha256 = "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idle-highlight-mode";
+          sha256 = "1i5ky61bq0dpk71yasfpjhsrv29mmp9nly9f5xxin7gz3x0f36fc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/idle-highlight-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idle-require = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "idle-require";
+        ename = "idle-require";
+        version = "20090715.1503";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "idle-require.el";
+          rev = "33592bb098223b4432d7a35a1d65ab83f47c1ec1";
+          sha256 = "0f8rxvc3dk2hi4x524l18fx73xrxy0qqwbybdma4ca67ck9n6xam";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idle-require";
+          sha256 = "03z8d06ifzaf81h8b3h16ab69cp3ssky3my07spy81rbhbjl5nn3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/idle-require";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-at-point = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ido-at-point";
+        ename = "ido-at-point";
+        version = "20151021.57";
+        src = fetchFromGitHub {
+          owner = "katspaugh";
+          repo = "ido-at-point";
+          rev = "6b267f202dc3d3d924c904fbd894e9a209f231de";
+          sha256 = "1bj8k5fq6x3s5qmr02bnkcls7sndmg4wjjjrsd3fr6yl8c4jcy3k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-at-point";
+          sha256 = "0jpgq2iiwgqifwdhwhqv0cd3lp846pdqar6rxqgw9fvvb8bijqm0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-clever-match = callPackage ({ cl-lib ? null
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ido-clever-match";
+        ename = "ido-clever-match";
+        version = "20151011.1026";
+        src = fetchFromGitHub {
+          owner = "Bogdanp";
+          repo = "ido-clever-match";
+          rev = "f173473e99c8b0756f12e4cc8f67e68fa59eadd3";
+          sha256 = "14nmldahr0pj2x4vkzpnpx0bsxafmiihgjylk5j5linqvy8q6wk6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-clever-match";
+          sha256 = "081i6cjvqyfpgj0nvzc94zrl2v3l6nv6mhfda4zf7c8qqbvx1m8m";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-clever-match";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-complete-space-or-hyphen = callPackage ({ fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild }:
+      melpaBuild {
+        pname = "ido-complete-space-or-hyphen";
+        ename = "ido-complete-space-or-hyphen";
+        version = "20180928.1850";
+        src = fetchFromGitHub {
+          owner = "doitian";
+          repo = "ido-complete-space-or-hyphen";
+          rev = "ed60ebed113e4e1552efeab0c416f7c88428268e";
+          sha256 = "15h0alwi7qfqyi7w7gdl06ykxvafbx1p4614rg81kmzgs4dpqgy3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-complete-space-or-hyphen";
+          sha256 = "1wk0cq5gjnprmpyvhh80ksz3fash42hckvmx8m95crbzjg9j0gbc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ido-complete-space-or-hyphen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-completing-read-plus = callPackage ({ cl-lib ? null
+                                            , emacs
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild
+                                            , memoize
+                                            , s }:
+      melpaBuild {
+        pname = "ido-completing-read-plus";
+        ename = "ido-completing-read+";
+        version = "20180627.1944";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "ido-completing-read-plus";
+          rev = "03bdf989a9af88d4eeed4003ae74c98baf58ff72";
+          sha256 = "08d77ysbzd25rm8rjslckhqlsyim047c9zwq2ybbzqpjy3q52qfy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-completing-read+";
+          sha256 = "0rxdv3cd0bg0p8c1bck5vichdq941dki934k23qf5p6cfgw8gw4z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs memoize s ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-completing-read+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-describe-bindings = callPackage ({ dash
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "ido-describe-bindings";
+        ename = "ido-describe-bindings";
+        version = "20161023.402";
+        src = fetchFromGitHub {
+          owner = "danil";
+          repo = "ido-describe-bindings";
+          rev = "a142ff1c33df23ed9665497d0dcae2943b3c706a";
+          sha256 = "0967709jyp9s04i6gi90axgqzhz03cdf1j1w39yrkds6q1b6v7jw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-describe-bindings";
+          sha256 = "1lsa09h025vd908r9q571iq2ia0zdpnq04mlihb3crpp5v9n9ws2";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-describe-bindings";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-exit-target = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ido-exit-target";
+        ename = "ido-exit-target";
+        version = "20170717.1151";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "ido-exit-target";
+          rev = "e56fc6928649c87ccf39d56d84ab53ebaced1f73";
+          sha256 = "1a1bcvmihf22kr8rpv6kyp4b7x79hla5qdys48d6kl06m53gyckp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-exit-target";
+          sha256 = "17vmg47xwk6yjlbcsswirl8s2q565k291ajzjglnz7qg2fwx6spi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-exit-target";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-flex-with-migemo = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , flx-ido
+                                        , lib
+                                        , melpaBuild
+                                        , migemo }:
+      melpaBuild {
+        pname = "ido-flex-with-migemo";
+        ename = "ido-flex-with-migemo";
+        version = "20180817.740";
+        src = fetchFromGitHub {
+          owner = "ROCKTAKEY";
+          repo = "ido-flex-with-migemo";
+          rev = "acced7c19f3ad505cc27cd95ab05593b8194d2e5";
+          sha256 = "186idn1385n342cdrbf9glkd9bw8vihyq51mlk642fmkiadv9hwd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-flex-with-migemo";
+          sha256 = "1w8f1r17l4r7w5bacckv9zfl9qynv2ivsw639rzr5acg2ndxagv7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flx-ido migemo ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-flex-with-migemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-gnus = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , gnus ? null
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ido-gnus";
+        ename = "ido-gnus";
+        version = "20140216.846";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "ido-gnus";
+          rev = "f5fe3f6aa8086f675ba216abace9e3d5f2e3a089";
+          sha256 = "0ifdwd5vnjv2iyb5bnz8pij35lc0ymmyx8j8zhpkbgjigz8f05ip";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-gnus";
+          sha256 = "14ijb8q4s846984h102h72ij713v5bj3k2vfdvr94gw1f0iya2yg";
+          name = "recipe";
+        };
+        packageRequires = [ gnus ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-gnus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-grid-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ido-grid-mode";
+        ename = "ido-grid-mode";
+        version = "20160122.339";
+        src = fetchFromGitHub {
+          owner = "larkery";
+          repo = "ido-grid-mode.el";
+          rev = "7cfca3988a6dc3ad18e28abe114218095ff2366f";
+          sha256 = "1ip8g0r0aimhc4a1f06m711zmbs0krxn8hmayk99gk5kkz12igkb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-grid-mode";
+          sha256 = "0sq1d2fwvv247rr9lqg9x87d5h910k5ifqr9cjyskc74mvhrcsr3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-grid-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-hacks = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ido-hacks";
+        ename = "ido-hacks";
+        version = "20150331.1209";
+        src = fetchFromGitHub {
+          owner = "scottjad";
+          repo = "ido-hacks";
+          rev = "b7e7514a0e011e4d767d1f5755c5eae9d85f83dc";
+          sha256 = "01p4az128k1jvd9i1gshgg87z6048cw9cnm57l8qdlw01c3h6dkx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-hacks";
+          sha256 = "05f9pdkqppnp7wafka2d2yj84gqchjd7vnrl5rcywy1l47gbxiw0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ido-hacks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-load-library = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , pcache
+                                    , persistent-soft }:
+      melpaBuild {
+        pname = "ido-load-library";
+        ename = "ido-load-library";
+        version = "20140611.900";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "ido-load-library";
+          rev = "f439559721c5fecb2572dcaf3e357c5d94a20f4a";
+          sha256 = "1cmq6kpsh5ngiib67a0vsvhlyl0qy29zxcq03bpcbpm76sv7nc0a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-load-library";
+          sha256 = "13f83gqh39p3yjy7r7qc7kzgdcmqh4b5c07zl7rwzb8y9rz59lhj";
+          name = "recipe";
+        };
+        packageRequires = [ pcache persistent-soft ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-load-library";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-migemo = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , migemo }:
+      melpaBuild {
+        pname = "ido-migemo";
+        ename = "ido-migemo";
+        version = "20150921.1544";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "ido-migemo.el";
+          rev = "eec329e315c4782ab966f162a6c91fd3a01ef358";
+          sha256 = "1d7jrfs9vihsi88a0aa139xsad00w5rmzh54s3qp8ismljn8dlql";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-migemo";
+          sha256 = "02hbwchwx2bcwdxz7gz555699l7n9wisfikax1j6idn167n4wdpi";
+          name = "recipe";
+        };
+        packageRequires = [ migemo ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-migemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-occasional = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ido-occasional";
+        ename = "ido-occasional";
+        version = "20150214.448";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "ido-occasional";
+          rev = "d405f1795e1e0c63be411ee2825184738d29c33a";
+          sha256 = "0zlkq29wxd3a4vg0w6ds2jad5h1pja7ccd3l6ppl0kz1b1517qlr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-occasional";
+          sha256 = "1vdh5i9qznzd9r148a6jw9v47swf7ykwyciqfzc3ismv5q909bl2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-occasional";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-occur = callPackage ({ dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ido-occur";
+        ename = "ido-occur";
+        version = "20160820.740";
+        src = fetchFromGitHub {
+          owner = "danil";
+          repo = "ido-occur";
+          rev = "b0e67fe4835c162cbcf8a982bdf377955b9ac5ae";
+          sha256 = "13f21vx3q1qbnl13n3lx1rnr8dhq3zwch22pvy53h8q6sdf7r73a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-occur";
+          sha256 = "058l2pklg12wkvyyshk8va6shphpbc508fv9a8x25pw857a28pji";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-occur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-select-window = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "ido-select-window";
+        ename = "ido-select-window";
+        version = "20131220.1247";
+        src = fetchFromGitHub {
+          owner = "pjones";
+          repo = "ido-select-window";
+          rev = "946db3db7a3fec582cc1a0097877f1250303b53a";
+          sha256 = "0qvf3h2ljlbf3z36dhywzza62mfi6mqbrfc0sqfsbyia9bn1df4f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-select-window";
+          sha256 = "03xqfpnagy2sk67yq7n7s6ma3im37d558zzx8sdzd9pbfxy9ij23";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-select-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-skk = callPackage ({ ddskk
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ido-skk";
+        ename = "ido-skk";
+        version = "20151111.150";
+        src = fetchFromGitHub {
+          owner = "tsukimizake";
+          repo = "ido-skk";
+          rev = "89a2e62799bff2841ff634517c86084c4ce69246";
+          sha256 = "149cznbybwj0gkjyvpnh4kn258kxw449m7cn95n9jbh1r45vljvy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-skk";
+          sha256 = "1fyzjkw9xp126bzfv1254bvyakh323iw3wdzrkd9gb4ir39k5jzw";
+          name = "recipe";
+        };
+        packageRequires = [ ddskk emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-skk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-sort-mtime = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ido-sort-mtime";
+        ename = "ido-sort-mtime";
+        version = "20171121.59";
+        src = fetchFromGitHub {
+          owner = "pkkm";
+          repo = "ido-sort-mtime";
+          rev = "f638ff0c922af862f5211779f2311a27fde428eb";
+          sha256 = "0isy3rmw69664fsypg58rs42ql43drf27l90yvplnbcqd7nnnb21";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-sort-mtime";
+          sha256 = "1dkny9y3x49dv1vjwz78x2qhb6kdq3fa8qh1xkm30jyapvgiwdg2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ido-sort-mtime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-springboard = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ido-springboard";
+        ename = "ido-springboard";
+        version = "20170105.2355";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "springboard";
+          rev = "263a8cd4582c81bfc29d7db37d5267e2488b148c";
+          sha256 = "14mbmkqnw2kkzcb8f9z1g3c8f8f9lca3zb6f3q8jk9dsyp9vh81z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-springboard";
+          sha256 = "04jqnag8jiyfbwvc3vd9ikrsmf6cajld7dz2gz9y0zkj1k4gs7zv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ido-springboard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-vertical-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "ido-vertical-mode";
+        ename = "ido-vertical-mode";
+        version = "20180618.1401";
+        src = fetchFromGitHub {
+          owner = "creichert";
+          repo = "ido-vertical-mode.el";
+          rev = "16c4c1a112796ee0bcf401ea39d3e2643a89feaf";
+          sha256 = "10cfm765qwba0bnablwy8c4mjxvb1lwm89d16svwhp1pn20an6a8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-vertical-mode";
+          sha256 = "1vg5s6nd6v2g8ychz1q9cdqvsdw6vag7d9w68sn7blpmlr0nqhfm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ido-vertical-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-yes-or-no = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , ido-completing-read-plus
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ido-yes-or-no";
+        ename = "ido-yes-or-no";
+        version = "20161108.1551";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "ido-yes-or-no";
+          rev = "8953eadaaa7811ebc66d8a9eb7ac43f38913ab59";
+          sha256 = "0pi5kak267v571j5y0khz1s0nlxyp9jrsbh09dk3j6a44d2iyypl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-yes-or-no";
+          sha256 = "0glag4yb9xyf1lxxbdhph2nq6s1vg44i6f2z1ii8bkxpambz2ana";
+          name = "recipe";
+        };
+        packageRequires = [ ido-completing-read-plus ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-yes-or-no";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idomenu = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "idomenu";
+        ename = "idomenu";
+        version = "20141123.1320";
+        src = fetchFromGitHub {
+          owner = "birkenfeld";
+          repo = "idomenu";
+          rev = "4b0152d606360c70204fb4c27f68de79ca885386";
+          sha256 = "1vx2g1xgxpcabr49mkl6ggzrpa3k2zhm479j6262vb64swzx33jw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idomenu";
+          sha256 = "0mg601ak9mhp2fg5n13npcfzphgyms4vkqd18ldmv098z2z1412h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/idomenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idris-mode = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , prop-menu }:
+      melpaBuild {
+        pname = "idris-mode";
+        ename = "idris-mode";
+        version = "20180922.1351";
+        src = fetchFromGitHub {
+          owner = "idris-hackers";
+          repo = "idris-mode";
+          rev = "0e3508aca4d1f46f8c062f84c386d9e5533a21c3";
+          sha256 = "15s0d65kqp3hy0ll03q3v4sgl8gj6naymamy8v442kzsr7j5y99p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idris-mode";
+          sha256 = "0hiiizz976hz3z3ciwg1gs9y10qhxbs8givhz89kvyn4s4861a1s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs prop-menu ];
+        meta = {
+          homepage = "https://melpa.org/#/idris-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ids-edit = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ids-edit";
+        ename = "ids-edit";
+        version = "20170818.802";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "ids-edit";
+          rev = "8562a6cbfb3f2d44bc6f62ab15081a80f8fee502";
+          sha256 = "10h64c5n9piq9ly7ipqq33ji8x8vwh9j1h7r05yab8a2sn0h8587";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ids-edit";
+          sha256 = "1n4gpcl3qj65cmaq9cdljsmrf84570z4chfvga6slsqjz5him8d1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ids-edit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iedit = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "iedit";
+        ename = "iedit";
+        version = "20181114.150";
+        src = fetchFromGitHub {
+          owner = "victorhge";
+          repo = "iedit";
+          rev = "35505ad860be27feaee71e8caf646706bf8ee31d";
+          sha256 = "154d0zxn4vn4y2xglccpxkzlmg9k1g58hldgimv67x9cphsc0mpi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iedit";
+          sha256 = "0bh8ir6kspxjsvjww5y3b5hl3flbm2cc77jh8vnnva3z086f18mh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ietf-docs = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ietf-docs";
+        ename = "ietf-docs";
+        version = "20150928.257";
+        src = fetchFromGitHub {
+          owner = "choppsv1";
+          repo = "ietf-docs";
+          rev = "ede30d6d26044069e1731fd20c0ab2324552c0b4";
+          sha256 = "0b86x675g95yrlc0alffx0z9fmficlwv3gpy5cy86z1xvvyh3nzw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ietf-docs";
+          sha256 = "0wnk36z9g7lksmynd04hb2m6rx45wpxnxj1lhrlpjnzsrknhf4k3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ietf-docs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iflipb = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "iflipb";
+        ename = "iflipb";
+        version = "20171113.1244";
+        src = fetchFromGitHub {
+          owner = "jrosdahl";
+          repo = "iflipb";
+          rev = "a5ad1fbd1173cff5228dab265515c92c0778f86a";
+          sha256 = "0gyxd5d57j0x93mqnfwwdf28plp102xh0ag2d2iws7y1d5m99wm2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iflipb";
+          sha256 = "1nfrrxgi9nlhn477z8ay7jxycpcghhhmmg9dagdhrlrr20fx697d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iflipb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ignoramus = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ignoramus";
+        ename = "ignoramus";
+        version = "20160414.709";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "ignoramus";
+          rev = "b37dc7c07edd9d152436f9019c14df158b599be3";
+          sha256 = "1b4r4h8yrs8zkyr1hnnx2wjrmm39wbqxfhyxpjb5pxi4zk3fh4rj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ignoramus";
+          sha256 = "1czqdmlrds1l5afi8ldg7nrxcwav86538z2w1npad3dz8xk67da9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ignoramus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    igv = callPackage ({ fetchgit
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "igv";
+        ename = "igv";
+        version = "20141210.427";
+        src = fetchgit {
+          url = "https://bitbucket.org/sbarbit/eigv";
+          rev = "47ac6ceede252f451348a2c696398c0cb5279555";
+          sha256 = "11pss3hfxkfkyi273zfajdj43shdl6pn739zfv9jbm75v7m9bz6f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/igv";
+          sha256 = "0vjqdyj9j26y0hhzmip6lpwc8g1c9vnmgya1p7v77bkgdicgl659";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/igv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    image-archive = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "image-archive";
+        ename = "image-archive";
+        version = "20150620.1832";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-image-archive";
+          rev = "4cf0edabfd6a4da2ffb920ff1e5009a002fc1e53";
+          sha256 = "0k5iv2s33d6yj7bb9m7xskd52cfs0bkrq3g1qkby17drd29iwdhv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/image-archive";
+          sha256 = "0x0lv5dr1gc9bnr3dn26bc9s1ccq2rp8c4a1licbi929f0jyxxfp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/image-archive";
+          license = lib.licenses.free;
+        };
+      }) {};
+    image-dired-plus = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "image-dired-plus";
+        ename = "image-dired+";
+        version = "20150429.2244";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-image-diredx";
+          rev = "b68094625d963056ad64e0e44af0e2266b2eadc7";
+          sha256 = "1n2ya9s0ld257a8iryjd0dz0z2zs1xhzfiwsdkq4l4azwxl54m29";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/image-dired+";
+          sha256 = "0hhwqfn490n7p12n7ij4xbjh15gfvicmn21fvwbnrmfqc343pcdy";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/image-dired+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    image-plus = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "image-plus";
+        ename = "image+";
+        version = "20150707.916";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-imagex";
+          rev = "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc";
+          sha256 = "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/image+";
+          sha256 = "1a9dxswnqn6cvx28180kclpjc0vc6fimzp7n91gpdwnmy123x6hg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/image+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imakado = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "imakado";
+        ename = "imakado";
+        version = "20141024.223";
+        src = fetchFromGitHub {
+          owner = "imakado";
+          repo = "emacs-imakado";
+          rev = "00a1e7eea2cb9e9066343a23927d6c747707902f";
+          sha256 = "0f3xdqhq9nprvl8bnmgrx20h08ddkfak0is29bsqwckkfgn7pmqp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imakado";
+          sha256 = "18mj0vpv3dybfpa8hl9jwlagsivbhgqgz8lwb8cswsq9hwv3jgd3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/imakado";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imake = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "imake";
+        ename = "imake";
+        version = "20180318.1559";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "imake";
+          rev = "7df5fb9684a0288313ef5f64594078d477105959";
+          sha256 = "0xc19ir5ak1bfq0ag48ql5rj58zd565csgxhpa30s9lvvkc8kvr5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imake";
+          sha256 = "0j732fi6999n9990w4l28raw140fvqfbynyh4x65yilhw95r7c34";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/imake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imapfilter = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "imapfilter";
+        ename = "imapfilter";
+        version = "20180318.1327";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "imapfilter";
+          rev = "5e842a8c60ba98f344edf1b1e65f5a480ed938ed";
+          sha256 = "16k7cxzdjbblzckp5qppw1ga0rzdh3ww2ni7ry1h43p9cfna0kcx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imapfilter";
+          sha256 = "0i893kqj6yzadhza800r6ri7fihl01r57z8yrzzh3d09qaias5vz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/imapfilter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imenu-anywhere = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "imenu-anywhere";
+        ename = "imenu-anywhere";
+        version = "20170805.1155";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "imenu-anywhere";
+          rev = "fc7f0fd2f19e5ebee70156a99bf87393123893e3";
+          sha256 = "0g2gb7jrys81kphmhlvhvzwl8l75j36y6pqjawh9wmzzwad876q5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imenu-anywhere";
+          sha256 = "1ylqzdnd3nzcpyyd6rh6i5q9mvf8c99rvpk51fzfm3yq2kyw4dbq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/imenu-anywhere";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imenu-list = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "imenu-list";
+        ename = "imenu-list";
+        version = "20180601.702";
+        src = fetchFromGitHub {
+          owner = "bmag";
+          repo = "imenu-list";
+          rev = "04f0632f7b8c81be8747617768c57b66e5d60994";
+          sha256 = "0lmcnbps7fbqcsimynil5xq9d7n4jmcclw1qprbj8yjk42lxz0d1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imenu-list";
+          sha256 = "092fsn7hnbfabcyakbqyk20pk62sr8xrs45aimkv1l91681np98s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/imenu-list";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imenus = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "imenus";
+        ename = "imenus";
+        version = "20180505.1017";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "imenus.el";
+          rev = "149cfa579ee231014d3341a0e05add69759757a5";
+          sha256 = "00licvs457wzqq06a8cx7vw22kyqky20i7yq7a2nzf3cfl7vaya7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imenus";
+          sha256 = "1q0j6r2n5vjlbgchkz9zdglmmbpd8agawzcg61knqrgzpc4lk82r";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/imenus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imgbb = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , request }:
+      melpaBuild {
+        pname = "imgbb";
+        ename = "imgbb";
+        version = "20180609.949";
+        src = fetchFromGitHub {
+          owner = "ecraven";
+          repo = "imgbb.el";
+          rev = "a524a46263835aa474f908827ebab4e8fa586001";
+          sha256 = "1fhhpz29x9vkhzms2qkxblic96kqzg0rqsxj71vgz6fpwdb4f9gy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imgbb";
+          sha256 = "0p29pasq0f0b5x7yig4g4n1k0y82aiapxazz359pm7n4kjy2s6qp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/imgbb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    immortal-scratch = callPackage ({ fetchhg
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "immortal-scratch";
+        ename = "immortal-scratch";
+        version = "20160517.1418";
+        src = fetchhg {
+          url = "https://bitbucket.com/jpkotta/immortal-scratch";
+          rev = "b354aba33d91";
+          sha256 = "1mx9f8pwnbrm6q9ngdyv64aqkw1izj83m0mf7zqlpww7yfhv1q9b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/immortal-scratch";
+          sha256 = "0rxhaqivvjij59hhv3mh4wwrc0bl0xv144j1i237xhlvhxk6nnn6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/immortal-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    immutant-server = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "immutant-server";
+        ename = "immutant-server";
+        version = "20140311.1508";
+        src = fetchFromGitHub {
+          owner = "leathekd";
+          repo = "immutant-server.el";
+          rev = "2a21e65588acb6a976f2998e30b21fdabdba4dbb";
+          sha256 = "0rbamm9qvipgswxng8g1d7rbdbcj7sgwrccg7imcfapwwq7xhj4h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/immutant-server";
+          sha256 = "15vcxag1ni41ja4b3q0444sq5ysrisis59la7li6h3617wy8r02i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/immutant-server";
+          license = lib.licenses.free;
+        };
+      }) {};
+    impatient-mode = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , htmlize
+                                  , lib
+                                  , melpaBuild
+                                  , simple-httpd }:
+      melpaBuild {
+        pname = "impatient-mode";
+        ename = "impatient-mode";
+        version = "20181002.531";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "impatient-mode";
+          rev = "96f6a05f8de74e19d570217fe83f0734623ddb0c";
+          sha256 = "1qddy3b3fmxgkpl10p0hvmgrzhkrxyxg72sxxg5ndfwvjpf2rf91";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/impatient-mode";
+          sha256 = "07z5ds3zgzkxvxwaalp9i5x2rl5sq4jjk8ygk1rfmsl52l5y1z6j";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib htmlize simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/impatient-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    import-js = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , grizzl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "import-js";
+        ename = "import-js";
+        version = "20180709.1133";
+        src = fetchFromGitHub {
+          owner = "Galooshi";
+          repo = "emacs-import-js";
+          rev = "fb1f167e33c388b09a2afd32fbda90a67bfb2e40";
+          sha256 = "0if117lia2ykd6ai0cf5z4ddhsm9icijigwbrn079v7m9s8yl43p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/import-js";
+          sha256 = "00b2qv1y8879cf8ayplmwqd36w7sppx57myi2wjhy9i2rnvdbmgn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs grizzl ];
+        meta = {
+          homepage = "https://melpa.org/#/import-js";
+          license = lib.licenses.free;
+        };
+      }) {};
+    import-popwin = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , popwin }:
+      melpaBuild {
+        pname = "import-popwin";
+        ename = "import-popwin";
+        version = "20170218.607";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-import-popwin";
+          rev = "bb05a9e226f8c63fe7b18a3e92010357049ab5ba";
+          sha256 = "0jjm214zfq2kk8vzf67vala46lbbkjyms7qm27qv3yhcbc7ricvn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/import-popwin";
+          sha256 = "0vkw6y09m68bvvn1wzah4gzm69z099xnqhn359xfns2ljm74bvgy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/import-popwin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    importmagic = callPackage ({ emacs
+                               , epc
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "importmagic";
+        ename = "importmagic";
+        version = "20180519.2003";
+        src = fetchFromGitHub {
+          owner = "anachronic";
+          repo = "importmagic.el";
+          rev = "e32ee9f6a5eef937b76eba82fdae8bae85d18088";
+          sha256 = "09jq913vhqndqkck1wyp37r15pnz747rgaxivlrjgp9xd3zzpz1s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/importmagic";
+          sha256 = "1kpmgpll0zz3zlr3q863v1fq6wmwdwx7mn676x0r7g4iy1bdslmv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs epc f ];
+        meta = {
+          homepage = "https://melpa.org/#/importmagic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    indent-guide = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "indent-guide";
+        ename = "indent-guide";
+        version = "20170221.327";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "indent-guide";
+          rev = "b6eb32b1ea150e54e491f1eed3b598990c4bd631";
+          sha256 = "096x6fyl8cy62kbsglbhkyx45qr7a9wsmnihi8nj80d43qyzcjc2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/indent-guide";
+          sha256 = "029fj9rr9vfmkysi6lzpwra92j6ppw675qpj3sinfq7fqqlicvp7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/indent-guide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    indent-info = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "indent-info";
+        ename = "indent-info";
+        version = "20180423.1212";
+        src = fetchFromGitHub {
+          owner = "terlar";
+          repo = "indent-info.el";
+          rev = "d218b4cb3726476caee91db6f6c920856ab992bc";
+          sha256 = "0z427rvvhw5raql5391sajm4rk1n2y8khsy2wqr7r66fdv5hg2mg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/indent-info";
+          sha256 = "0fa6p5fvyxib1iz025kqak7navb11jlfxw5x2jr47180vv9a1373";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/indent-info";
+          license = lib.licenses.free;
+        };
+      }) {};
+    indent-tools = callPackage ({ fetchFromGitLab
+                                , fetchurl
+                                , hydra
+                                , lib
+                                , melpaBuild
+                                , s
+                                , yafolding }:
+      melpaBuild {
+        pname = "indent-tools";
+        ename = "indent-tools";
+        version = "20180124.408";
+        src = fetchFromGitLab {
+          owner = "emacs-stuff";
+          repo = "indent-tools";
+          rev = "b650b2ca82ccd9ccb4f3142afa0da4737ddd364f";
+          sha256 = "01xkkrdfn3c8ivs2wc3ck2278m75gq73wv59fchb6gw1a9d6xj7d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/indent-tools";
+          sha256 = "12rawl9qaihgyascy53yxpkknp95wh8fiqygb5cgl7d761qizvp6";
+          name = "recipe";
+        };
+        packageRequires = [ hydra s yafolding ];
+        meta = {
+          homepage = "https://melpa.org/#/indent-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    indicators = callPackage ({ cl-lib ? null
+                              , dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "indicators";
+        ename = "indicators";
+        version = "20161211.326";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "indicators.el";
+          rev = "f62a1201f21453e3aca93f48483e65ae8251432e";
+          sha256 = "0n933jigp0awba2hxg3kwscmfmmqn3jwbrxcw3vw9aj0a5rg5bq6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/indicators";
+          sha256 = "1rhmz8sfi2gnv72sbw6kgyzidk43mnp05wnscw9vjvz9v0vwirss";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/indicators";
+          license = lib.licenses.free;
+        };
+      }) {};
+    indium = callPackage ({ company
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , js2-mode
+                          , js2-refactor
+                          , lib
+                          , melpaBuild
+                          , seq }:
+      melpaBuild {
+        pname = "indium";
+        ename = "indium";
+        version = "20181015.208";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "Indium";
+          rev = "5ef09dfe96a0cb7da6f195dc3bc0d00ccab5f3b4";
+          sha256 = "0b2n4xjmngzrk1c9pf400jc4qpi33vwpbgbn4zd8k1nrlxx5hdzf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/indium";
+          sha256 = "024ljx7v8xahmr8jm41fiy8i5jbg48ybqp5n67k4jwg819cz8wvl";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs js2-mode js2-refactor seq ];
+        meta = {
+          homepage = "https://melpa.org/#/indium";
+          license = lib.licenses.free;
+        };
+      }) {};
+    indy = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "indy";
+        ename = "indy";
+        version = "20150610.1006";
+        src = fetchFromGitHub {
+          owner = "kwrooijen";
+          repo = "indy";
+          rev = "faff56fda87bafed6a1e79dc3426800f256ed1a1";
+          sha256 = "1p694bcg4g7qzngak6nshcrrnf7mxb8j2cf9yskcznwri1s064dd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/indy";
+          sha256 = "118n3n07h1vx576fdv6v5a94aa004q0gmy9hlsnrswpxa30ahnw7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/indy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inf-clojure = callPackage ({ clojure-mode
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "inf-clojure";
+        ename = "inf-clojure";
+        version = "20180402.1403";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "inf-clojure";
+          rev = "59868ff0433f7631c362ce25879bd4271d350ebc";
+          sha256 = "1xh901krzwmvkj0rdq0hjbf41vsf92mr0w9vjb9ki660wnnjw8wc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inf-clojure";
+          sha256 = "0n8w0vx1dnbfz88j45a57z9bsmkxr2zyh6ld72ady8asanf17zhl";
+          name = "recipe";
+        };
+        packageRequires = [ clojure-mode emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/inf-clojure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inf-crystal = callPackage ({ crystal-mode
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "inf-crystal";
+        ename = "inf-crystal";
+        version = "20180118.1811";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "inf-crystal.el";
+          rev = "dd5c85e621976ea09b602182a15396e3b510ec63";
+          sha256 = "0yw2p13iah9alqq684cy410xph2a83lqs5401j0fah0qkgnjv6mh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inf-crystal";
+          sha256 = "09ssq7i5c2fxxbrsp3nn1f1ah1yv2nb19n5s1iqyykkk316k2q26";
+          name = "recipe";
+        };
+        packageRequires = [ crystal-mode emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/inf-crystal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inf-mongo = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "inf-mongo";
+        ename = "inf-mongo";
+        version = "20180408.638";
+        src = fetchFromGitHub {
+          owner = "endofunky";
+          repo = "inf-mongo";
+          rev = "2e498d1c88bd1904eeec18ed06b1a0cf8bdc2a92";
+          sha256 = "1m6skisj6r3fbxadpwwgf3a3934b2qvwb7zj975qksxq56ij0wkq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inf-mongo";
+          sha256 = "0f12yb3dgkjnpr4d36jwfnncqzz7kl3bnnrmjw7hv223p2ryzwpx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inf-mongo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inf-ruby = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "inf-ruby";
+        ename = "inf-ruby";
+        version = "20180521.648";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "inf-ruby";
+          rev = "49d59a7897f594e3be74ecbddae83719f9a6c0f0";
+          sha256 = "1bkv825n1316sisajzrqza3mz0pjc03r6bl40dhgqf8qyjkkcq3c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inf-ruby";
+          sha256 = "02f01vwzr6j9iqcdns4l579bhia99sw8hwdqfwqjs9gk3xampfpp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inf-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inferior-spim = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "inferior-spim";
+        ename = "inferior-spim";
+        version = "20160826.646";
+        src = fetchFromGitHub {
+          owner = "kaihaosw";
+          repo = "inferior-spim";
+          rev = "93f67ee49f1c6899a7efd52ea4e80e9f9da3371c";
+          sha256 = "1ffa29clfsr3wb00irzqlazk9d0qmjxn9wy8zfca61lh0ax5khbg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inferior-spim";
+          sha256 = "0p0g8diqijxpgr21890lnmzkyl74sv42ddgpfpv51b9fwnqky524";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inferior-spim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inflections = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "inflections";
+        ename = "inflections";
+        version = "20170913.216";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "jump.el";
+          rev = "e4f1372cf22e811faca52fc86bdd5d817498a4d8";
+          sha256 = "0354b64drvv8v5g13xy5nc1klwx4hldz1b5mf1frhna7h2dqz0j9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inflections";
+          sha256 = "0f02bhm2a5xiaxnf2c2hlpa4p121xfyyj3c59fy0yldipdxhvw70";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/inflections";
+          license = lib.licenses.free;
+        };
+      }) {};
+    info-beamer = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "info-beamer";
+        ename = "info-beamer";
+        version = "20180604.1422";
+        src = fetchFromGitHub {
+          owner = "dakra";
+          repo = "info-beamer.el";
+          rev = "af443795af20481af91ac54a489b20f6a9d90b0a";
+          sha256 = "0r938pp10szrqiv37ryzfir4h5pg68farm56cpnh9hh8cnix6nrh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/info-beamer";
+          sha256 = "0jlwvn96diwnngjbabq6wzp5q6rvmwa6p36d80nv8r7x7ch0740q";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/info-beamer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    info-buffer = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "info-buffer";
+        ename = "info-buffer";
+        version = "20170112.622";
+        src = fetchFromGitHub {
+          owner = "llvilanova";
+          repo = "info-buffer";
+          rev = "d35dad6e766c6e2ddb8dc6acb4ce5b6e10fbcaa7";
+          sha256 = "0czkp7cf7qmdm1jdn67gxyxz8b4qj2kby8if50d450xqwbx0da7x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/info-buffer";
+          sha256 = "1vkgkwgwym0j5xip7mai11anlpa2h7vd5m9i1xga1b23hcs9r1w4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/info-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    info-colors = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "info-colors";
+        ename = "info-colors";
+        version = "20180205.350";
+        src = fetchFromGitHub {
+          owner = "ubolonton";
+          repo = "info-colors";
+          rev = "a8ebb7b8efa314c08ea8110d8b1876afb562bb45";
+          sha256 = "0wvyf2w5s184kwacs6lbpjryx6hziayvdrl3crxir8gmg2kcv07m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/info-colors";
+          sha256 = "1mbabrfdy9xn7lpqivqm8prp83qmdv5r0acijwvxqd3a52aadc2x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/info-colors";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inherit-local = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "inherit-local";
+        ename = "inherit-local";
+        version = "20170409.949";
+        src = fetchFromGitHub {
+          owner = "shlevy";
+          repo = "inherit-local";
+          rev = "b1f4ff9c41f9d64e4adaf5adcc280b82f084cdc7";
+          sha256 = "1fargashyqn4ga420k3ikc1akf7mw3zcarpg24gh2591p4swa0ih";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inherit-local";
+          sha256 = "1v3q3s6qq64k1f4ck6rfgsy1arnf9cxg2kw6d1ahfrwr4ixsqm87";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/inherit-local";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ini-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ini-mode";
+        ename = "ini-mode";
+        version = "20170424.209";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "ini-mode";
+          rev = "2194cfa2fd13196a37350ec20b3f00dcf6162b7c";
+          sha256 = "0s3dcqywrbggrcn9j5nibhcl4xbnhdndz5sibcp26qswd18jyrdk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ini-mode";
+          sha256 = "0f6fbmg4wmlzghcibfbcx3z124b2017rhsasi5smgx9i2vkydzrm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ini-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    init-loader = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "init-loader";
+        ename = "init-loader";
+        version = "20160528.615";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "init-loader";
+          rev = "287da99eadfa3dd85492506db43d68324069b593";
+          sha256 = "03a655qzcwizv9hvfcp47466axsrq0h049fdd79xk6zmans5s6fj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/init-loader";
+          sha256 = "0rq7759abp0ml0l8dycvdl0j5wsxw9z5y9pyx68973a4ssbx2i0r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/init-loader";
+          license = lib.licenses.free;
+        };
+      }) {};
+    init-open-recentf = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "init-open-recentf";
+        ename = "init-open-recentf";
+        version = "20161206.645";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "init-open-recentf.el";
+          rev = "5b0e1053bb4b3fa755d3b2e4f3edf0c16b8eacfe";
+          sha256 = "1y6avl71lmbj5f0wprkkw5f252jhcf3nihbr460wlp3nlvhsxgan";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/init-open-recentf";
+          sha256 = "0xlmfxhxb2car8vfx7krxmxb3d56x0r3zzkj8ds7yqvr65z85x2r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/init-open-recentf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    initsplit = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "initsplit";
+        ename = "initsplit";
+        version = "20160919.1118";
+        src = fetchFromGitHub {
+          owner = "dabrahams";
+          repo = "initsplit";
+          rev = "c941d436eb2b10b01c76a582c5a2b23fb30751aa";
+          sha256 = "0vz0pfm2m3v0zk65b4ikk6yfpk282nzbm99fbzj8w76yfg240dfn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/initsplit";
+          sha256 = "0n9dk3x62vgxfn39jkmdg8wxsik0xqkprifgvqzyvn8xcx1blyyq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/initsplit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ink-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ink-mode";
+        ename = "ink-mode";
+        version = "20160814.416";
+        src = fetchFromGitHub {
+          owner = "Kungsgeten";
+          repo = "ink-mode";
+          rev = "e35f26abbaf8ea23c5aa0a0c7ef15334cdfb7b48";
+          sha256 = "0ixqgk101gnm2q6f2bjk2pnqlrj41krqz56lss6fmf81xhxavmpp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ink-mode";
+          sha256 = "02q95xay6z56i4l0j24dszxnfpjbxijlj4150nsadbv55m7nnjcf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ink-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inkpot-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "inkpot-theme";
+        ename = "inkpot-theme";
+        version = "20181118.2306";
+        src = fetchFromGitHub {
+          owner = "ideasman42";
+          repo = "emacs-inkpot-theme";
+          rev = "054c125b49247a08af5a391992817776fd0e8af6";
+          sha256 = "06g4xsirag4gjd9khii4yhca29g5z9507lyyxxk35k36ckarg07i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inkpot-theme";
+          sha256 = "1m3iygb8vbqcnsxsnwr7g2mq1n2a9r7qxp3pgm1fpwz1lngvaagf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inkpot-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inline-crypt = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "inline-crypt";
+        ename = "inline-crypt";
+        version = "20170824.200";
+        src = fetchFromGitHub {
+          owner = "Sodel-the-Vociferous";
+          repo = "inline-crypt-el";
+          rev = "af4981c613bfd355d5ef34da1995a8384f167fd9";
+          sha256 = "119ns1a0v222wyysrf07cx94adrm26fhci530gnfc6xy5vaf24k7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inline-crypt";
+          sha256 = "04mcyyqa9h6g6wrzphzqalpqxsndmzxpavlpdc24z4a2c5s3yz8n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inline-crypt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inline-docs = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "inline-docs";
+        ename = "inline-docs";
+        version = "20170522.2150";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "inline-docs.el";
+          rev = "b57f1681be6147f999cdc12abff414a0442e8897";
+          sha256 = "0ji8qgscs4fxp2i29l3v8z9y6i2glga6bysbcsn855pqsn00xkcv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inline-docs";
+          sha256 = "1imjcx4qgrs5llindgmnvkb73fagnlxfg04s72kckgcy47c4352p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/inline-docs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inlineR = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "inlineR";
+        ename = "inlineR";
+        version = "20120520.732";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "inlineR.el";
+          rev = "29357186beca825e3d0451b700ec09b9ed65e37b";
+          sha256 = "15nasjknmzy57ilj1gaz3w5sj8b3ijcpgwcd6w2r9xhgcl86m40q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inlineR";
+          sha256 = "1fflq2gkpfn3jkv4a6yywzmxsq6qszfid1ri85ass1ppw6scdvzw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inlineR";
+          license = lib.licenses.free;
+        };
+      }) {};
+    insert-shebang = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "insert-shebang";
+        ename = "insert-shebang";
+        version = "20180403.514";
+        src = fetchFromGitHub {
+          owner = "psachin";
+          repo = "insert-shebang";
+          rev = "7bfea92ba1dae9d13d442e2f84f9fb6c05a0a9bd";
+          sha256 = "01f2p58qsny7p9l6vrra0i2m2g1k05p39m0bzi906zm5awx7l0rr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/insert-shebang";
+          sha256 = "0z88l1q925v9lwzr6nas9qjy0f57qxilg6smgpx9wj6lll3f7p5v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/insert-shebang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    insfactor = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "insfactor";
+        ename = "insfactor";
+        version = "20141116.1602";
+        src = fetchFromGitHub {
+          owner = "duelinmarkers";
+          repo = "insfactor.el";
+          rev = "7ef5446cebb08a17d4106d2e6f3c053e49e1e829";
+          sha256 = "112s3c0ii8zjc6vlj2im2qd2pl3hb95pq4zibm86gjpw428wd8iy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/insfactor";
+          sha256 = "0c6q1d864qc78sqk9iadjpd01xc7myipgnf89pqa2z75yprndvyn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/insfactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    instapaper = callPackage ({ fetchhg
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "instapaper";
+        ename = "instapaper";
+        version = "20130104.621";
+        src = fetchhg {
+          url = "https://bitbucket.com/jfm/emacs-instapaper";
+          rev = "8daa0058ede7";
+          sha256 = "0krscid3yz2b7kv75gd9fs92zgfl7pnl77dbp5gycv5rmw5mivp8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/instapaper";
+          sha256 = "1yibdpj3lx6vr33s75s1y415lxqljrk7pqc901f8nfa01kca7axn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/instapaper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    intel-hex-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "intel-hex-mode";
+        ename = "intel-hex-mode";
+        version = "20180422.1731";
+        src = fetchFromGitHub {
+          owner = "mschuldt";
+          repo = "intel-hex-mode";
+          rev = "e83c94e1c31a8435a88b3ae395f2bc842ef83217";
+          sha256 = "0jpc6wh3agdh38wdjr1x880iiaj6698nr8dkgx114fsfj1la6f7v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/intel-hex-mode";
+          sha256 = "02ffbrkr3zajqhrxc3grmqm632ji4fmgnfabn42islpcfq12q3i4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/intel-hex-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    intellij-theme = callPackage ({ fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "intellij-theme";
+        ename = "intellij-theme";
+        version = "20171017.715";
+        src = fetchFromGitLab {
+          owner = "fommil";
+          repo = "emacs-intellij-theme";
+          rev = "1bbfff8e6742d18e9b77ed796f44da3b7bd10606";
+          sha256 = "0ml1gi2cn6h3xm5c78vxwv327r0rgimia1vqqi9jb09yb6lckbgj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/intellij-theme";
+          sha256 = "1g8cninmq840sl8fmhq2hcsmz7nccbjmprzcl8w1zdavfp86b97g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/intellij-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    interaction-log = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "interaction-log";
+        ename = "interaction-log";
+        version = "20160305.501";
+        src = fetchFromGitHub {
+          owner = "michael-heerdegen";
+          repo = "interaction-log.el";
+          rev = "0f2d773269d1f7b93c9281226719113f5410cbd0";
+          sha256 = "0mvhydb4lfm2kazmb7fab8zh7sd8l9casghn8wl42mqji3v7lfwh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/interaction-log";
+          sha256 = "1r9qbvgssc2zdwgwmmwv5kapvmg1y3px7268gkiakkfanw3kqk6j";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/interaction-log";
+          license = lib.licenses.free;
+        };
+      }) {};
+    interleave = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "interleave";
+        ename = "interleave";
+        version = "20171003.2324";
+        src = fetchFromGitHub {
+          owner = "rudolfochrist";
+          repo = "interleave";
+          rev = "87549df30cbc681baf86b238bd14c7cf7ec11fc4";
+          sha256 = "07430hsyq9q90rjzxq7ifq4mlfc8k8b7l6b31s7xk1xm2snbky6b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/interleave";
+          sha256 = "18b3fpxn07y5abkcnaw9is9ihdhik7xjdj6kzl1pz958lk9f4hfy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/interleave";
+          license = lib.licenses.free;
+        };
+      }) {};
+    intero = callPackage ({ company
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , flycheck
+                          , haskell-mode
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "intero";
+        ename = "intero";
+        version = "20181109.747";
+        src = fetchFromGitHub {
+          owner = "commercialhaskell";
+          repo = "intero";
+          rev = "4be2a4a5de81bae504654a6b3a5d8a340be00e7e";
+          sha256 = "1v58kfb874dps0rqidl1hqhxgsxbl15vksnkw7kbmv6n7v6mvq84";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/intero";
+          sha256 = "15n7ipsq8ylmq4blsycpszkx034j9sb92vqvaz30j5v307fmvs99";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs flycheck haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/intero";
+          license = lib.licenses.free;
+        };
+      }) {};
+    interval-list = callPackage ({ cl-lib ? null
+                                 , dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "interval-list";
+        ename = "interval-list";
+        version = "20150327.1018";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "interval-list";
+          rev = "38af7ecf0a493ad8f487074938a2a115f3531177";
+          sha256 = "1zv6m24ryls9hvla3hf8wzp6r7fzbxa1lzr1mb0wz0s292l38wjz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/interval-list";
+          sha256 = "0926z3lxkmpxalpq7hj355cjzbgpdiw7z4s8xdrpa1pi818d35zf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/interval-list";
+          license = lib.licenses.free;
+        };
+      }) {};
+    interval-tree = callPackage ({ dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "interval-tree";
+        ename = "interval-tree";
+        version = "20130325.707";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "interval-tree";
+          rev = "301302f480617091cf3ab6989caac385d52543dc";
+          sha256 = "0fqnn9xhrc9hkaiziafjgg288l6m05416z9kz8l5845fnqsb7pb3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/interval-tree";
+          sha256 = "13zynac3h50x68f1ja72kqdrapjks2zmgqd4g7qwscq92mmh60i9";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/interval-tree";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inverse-acme-theme = callPackage ({ autothemer
+                                      , cl-lib ? null
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "inverse-acme-theme";
+        ename = "inverse-acme-theme";
+        version = "20170822.1954";
+        src = fetchFromGitHub {
+          owner = "dcjohnson";
+          repo = "inverse-acme-theme";
+          rev = "74d6f3e2f6534371509dd2d77006435156c276d6";
+          sha256 = "15fk60ky8kbj665yjylmgc4nn4qsk57fvarqzwv3fns64yfshkv3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inverse-acme-theme";
+          sha256 = "03g6h8dpn42qnr593ryhj22lj1h2nx4rdr1knhkvxygfv3c4lgh5";
+          name = "recipe";
+        };
+        packageRequires = [ autothemer cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/inverse-acme-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    io-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "io-mode";
+        ename = "io-mode";
+        version = "20161004.56";
+        src = fetchFromGitHub {
+          owner = "superbobry";
+          repo = "io-mode";
+          rev = "fd65ae769093defcf554d6d637eba6e6dfc29f56";
+          sha256 = "1x3j4asbczfr9vrqd7bms57ngqzaik73sm2njcgjshf9c3js3aa9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/io-mode";
+          sha256 = "1fpiml7lvbl4s2xw4wk2y10iifvfza24kd9j8qvi1bgd85qkx42q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/io-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    io-mode-inf = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "io-mode-inf";
+        ename = "io-mode-inf";
+        version = "20140128.1134";
+        src = fetchFromGitHub {
+          owner = "slackorama";
+          repo = "io-emacs";
+          rev = "6dd2bac3fd87484bb7d97e135b06c29d70b444b6";
+          sha256 = "1ard88kc13c57y9zdkyr012w8rdrwahz8a3fb5v6hwqymg16m20s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/io-mode-inf";
+          sha256 = "0hwhvf1qwkmzzlzdda1flw6p1jjh9rzxsfwm2sc4795ac2xm6dhc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/io-mode-inf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ioccur = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ioccur";
+        ename = "ioccur";
+        version = "20130821.2248";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "ioccur";
+          rev = "2e4f83ba72bc7d0225606176de2ef7a970ca301c";
+          sha256 = "111rrn1l2k40bfpcf6d9n06vhlhxhv3718kgd40ksrqz97pzq0dx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ioccur";
+          sha256 = "1a9iy6x4lkm4wgkcb0pv86c2kvpq8ymrc4ssp109r67kwqw7lrr6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ioccur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iodine-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "iodine-theme";
+        ename = "iodine-theme";
+        version = "20151031.939";
+        src = fetchFromGitHub {
+          owner = "srdja";
+          repo = "iodine-theme";
+          rev = "02fb780e1d8d8a6b9c709bfac399abe1665c6999";
+          sha256 = "14zfxa8fc7h4rkz1hyplwf4q2lga3l5dd7a2xq5kk0kvf2fs4mk3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iodine-theme";
+          sha256 = "05mnq0bgcla0pxsgywpvcdgd4sk2xr7bjlp87l0dx8j121vqripj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/iodine-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ipcalc = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ipcalc";
+        ename = "ipcalc";
+        version = "20170926.105";
+        src = fetchFromGitHub {
+          owner = "dotemacs";
+          repo = "ipcalc.el";
+          rev = "2720f7e3e662e04e195f8338b81a499cf321296a";
+          sha256 = "1kmqbb9ca3sca59462ha21grbgxkl4wynz2lr4yqb4qk7cijgd6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ipcalc";
+          sha256 = "0hw5g30pnqwzvbhf6kggyj6wij5iw7d8jgmr88pyw63kxach8vkv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ipcalc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iplayer = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "iplayer";
+        ename = "iplayer";
+        version = "20161120.1320";
+        src = fetchFromGitHub {
+          owner = "csrhodes";
+          repo = "iplayer-el";
+          rev = "b788fffa4b36bbd558047ffa6be51b1f0f462f23";
+          sha256 = "0x82mxbc6f5azzg7c4zrxz1q763k8i3y1kfb79xfspb2i64dgg5g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iplayer";
+          sha256 = "0wnxvdlnvlmspqsaqx0ldw8j03qjckkqzvx3cbpc2yfs55pm3p7r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iplayer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ipretty = callPackage ({ fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ipretty";
+        ename = "ipretty";
+        version = "20180605.2222";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/ipretty.git";
+          rev = "042f5cc4e6f81d59115e8335c582bb5c571c2585";
+          sha256 = "0vk8k4zfqa0869fg1kzbzzgz65xg7six5m4jm8088pb2nvfn1lrr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ipretty";
+          sha256 = "0nlp7xmgqsipdq8xjld0xpw3q3qlxm31r2k52hxs32rx044y6c71";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ipretty";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ipython-shell-send = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "ipython-shell-send";
+        ename = "ipython-shell-send";
+        version = "20180909.2146";
+        src = fetchFromGitHub {
+          owner = "jackkamm";
+          repo = "ipython-shell-send-el";
+          rev = "ff944b436db381e6772a26c09b0b20a097eb323e";
+          sha256 = "14s6hxnkv7r3idzj7s6vnvifpc8prykzpm6nhb6149yymal4hjkc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ipython-shell-send";
+          sha256 = "07im2f3890yxpcy4qz1bihi68aslam7qir4vqf05bhqlgaqzamv8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ipython-shell-send";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iqa = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "iqa";
+        ename = "iqa";
+        version = "20181024.1553";
+        src = fetchFromGitHub {
+          owner = "a13";
+          repo = "iqa.el";
+          rev = "b45614f5204ed851de0abe93907aa94de5e37379";
+          sha256 = "11wrmiwlp91x59cn9k2j2pqgvzbrnzvf81dqgm9l5ph5fym0jqsd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iqa";
+          sha256 = "02yrkizk4ssip44s6r62finsrf45hxj9cpil1xrvh8g4jbsmfsw4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/iqa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ir-black-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ir-black-theme";
+        ename = "ir-black-theme";
+        version = "20130302.2355";
+        src = fetchFromGitHub {
+          owner = "jmdeldin";
+          repo = "ir-black-theme.el";
+          rev = "ee6078bc67cbc15184e64e0f1fc8542d4079d55f";
+          sha256 = "0yha2623zfy9q97y48v6fgg20ghig9zdlv80s30iqj9lwaf3v2md";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ir-black-theme";
+          sha256 = "1qpq9zbv63ywzk5mlr8x53g3rn37k0mdv6x1l1hcd90gka7vga9v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ir-black-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iregister = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "iregister";
+        ename = "iregister";
+        version = "20150515.1407";
+        src = fetchFromGitHub {
+          owner = "atykhonov";
+          repo = "iregister.el";
+          rev = "6a48c66187289de5f300492be11c83e98410c018";
+          sha256 = "1ch610b3d0x3nxglp749305syliivamc108rgv9if4ihb67gp8b5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iregister";
+          sha256 = "0iq1nlj5czi4nblrszfv3grkl1fni7blh8bhcfccidms8v9r3mdm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iregister";
+          license = lib.licenses.free;
+        };
+      }) {};
+    irony = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , json ? null
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "irony";
+        ename = "irony";
+        version = "20181030.134";
+        src = fetchFromGitHub {
+          owner = "Sarcasm";
+          repo = "irony-mode";
+          rev = "0a5ea0b9e7c28ec7d0685b108b8fb1f71f4365f4";
+          sha256 = "18183vlv484hy9qf7m0rkacki7vkwf6034zvqf927yaj253hqvha";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/irony";
+          sha256 = "1xcxrdrs7imi31nxpszgpaywq4ivni75hrdl4zzrf103xslqpl8a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib json ];
+        meta = {
+          homepage = "https://melpa.org/#/irony";
+          license = lib.licenses.free;
+        };
+      }) {};
+    irony-eldoc = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , irony
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "irony-eldoc";
+        ename = "irony-eldoc";
+        version = "20170502.1208";
+        src = fetchFromGitHub {
+          owner = "ikirill";
+          repo = "irony-eldoc";
+          rev = "0df5831eaae264a25422b061eb2792aadde8b3f2";
+          sha256 = "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/irony-eldoc";
+          sha256 = "03m0h13jd37vfvn4mavaq3vbzx4x0lklbs0mbc29zaz8pwqlcwz6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs irony ];
+        meta = {
+          homepage = "https://melpa.org/#/irony-eldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    isearch-dabbrev = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "isearch-dabbrev";
+        ename = "isearch-dabbrev";
+        version = "20141223.2222";
+        src = fetchFromGitHub {
+          owner = "Dewdrops";
+          repo = "isearch-dabbrev";
+          rev = "1efe7abba4923015cbc2462395deaec5446a9cc8";
+          sha256 = "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/isearch-dabbrev";
+          sha256 = "1hl7zl5vjcsk3z452874g4nfcnmna8m2242dc9cgpl5jddzwqa7x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/isearch-dabbrev";
+          license = lib.licenses.free;
+        };
+      }) {};
+    isearch-symbol-at-point = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "isearch-symbol-at-point";
+        ename = "isearch-symbol-at-point";
+        version = "20130728.1521";
+        src = fetchFromGitHub {
+          owner = "re5et";
+          repo = "isearch-symbol-at-point";
+          rev = "51a1029bec1ec414885f9edb7e5947603dffdab2";
+          sha256 = "09z49850c32x0rchxg203cxg504xi2b6cjgnd0i4axcs5fmq7gv9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/isearch-symbol-at-point";
+          sha256 = "0j5fr7qdvpd5b096h5a83fz8sh9wybdnsgix6v94gv8lkzdsqkr8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/isearch-symbol-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    isend-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "isend-mode";
+        ename = "isend-mode";
+        version = "20171118.745";
+        src = fetchFromGitHub {
+          owner = "ffevotte";
+          repo = "isend-mode.el";
+          rev = "88d4576e70e5874115c305ab2767d181dfda5985";
+          sha256 = "0pnzy5000m34f20q97my8ahcsgr0fqyhmfzbmds5bc269vsnbr6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/isend-mode";
+          sha256 = "0sk80a08ny9vqw94klqfgii297qm633000wlcldha76ip8viikdv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/isend-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    isgd = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "isgd";
+        ename = "isgd";
+        version = "20150414.236";
+        src = fetchFromGitHub {
+          owner = "chmouel";
+          repo = "isgd.el";
+          rev = "764306dadd5a9213799081a48aba22f7c75cca9a";
+          sha256 = "09hx28lmldm7z3x22a0qx34id09fdp3z61pdr61flgny213q1ach";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/isgd";
+          sha256 = "0yc9mkjzj3w64f48flnjvd193mk9gndrrqbxz3cvmvq3vgahhzyi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/isgd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    isolate = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "isolate";
+        ename = "isolate";
+        version = "20181018.1535";
+        src = fetchFromGitHub {
+          owner = "casouri";
+          repo = "isolate";
+          rev = "39ecc20ce57e338ece07fbd4f23b2a659c2365ca";
+          sha256 = "0yahj6r8ahlxapgf3l0n01nzkyyyyllc91vxzdlm7k4cwf9hdzw2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/isolate";
+          sha256 = "1ldyvw01nq2ynxaaqmw9ihk9kwfss9rqpaydn9f41bqj15xrypjc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/isolate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    isortify = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , pythonic }:
+      melpaBuild {
+        pname = "isortify";
+        ename = "isortify";
+        version = "20180612.622";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "isortify";
+          rev = "442f12fa91695a43a4b542f7b82d6ac9b004729b";
+          sha256 = "02rjyza8a0j3a2jfm9ps8gvsjqx3gxznaxw1d1zjam0a87fp7p1k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/isortify";
+          sha256 = "0nlpjd6mrhv8iccdny0x5lb41dpyp6l7kiax4xqra0rb2vq0chcs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pythonic ];
+        meta = {
+          homepage = "https://melpa.org/#/isortify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iss-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "iss-mode";
+        ename = "iss-mode";
+        version = "20141001.1213";
+        src = fetchFromGitHub {
+          owner = "rasmus-toftdahl-olesen";
+          repo = "iss-mode";
+          rev = "3b517aff31529bab33f8d7b562bd17aff0107fd1";
+          sha256 = "0992lzgar0kz9i1sk5vz17q9qzfgl8fkyxa1q0hmhgnpjf503cnj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iss-mode";
+          sha256 = "1my4vi1x07hg0dva97i685lx6m6fcbfk16j1zy93zriyd7z5plkc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iss-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    itail = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "itail";
+        ename = "itail";
+        version = "20171112.4";
+        src = fetchFromGitHub {
+          owner = "re5et";
+          repo = "itail";
+          rev = "6e43c20da03be3b9c6ece93b7dc3495975ec1888";
+          sha256 = "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/itail";
+          sha256 = "0mcyly88a3c15hl3wll56agpdsyvd26r501h0v64lasfr4k634m7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/itail";
+          license = lib.licenses.free;
+        };
+      }) {};
+    itasca = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "itasca";
+        ename = "itasca";
+        version = "20170601.922";
+        src = fetchFromGitHub {
+          owner = "jkfurtney";
+          repo = "itasca-emacs";
+          rev = "3d15dd1b70d6db69b0f4758a3e28b8b506cc84ca";
+          sha256 = "0mfcl7ka7r5mx52xvf13i3799ddkdi9sq2q4p2rkgb96r37ia221";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/itasca";
+          sha256 = "0j0lvs9x2j3z5yyhbgmymccswi40vv1gz3sl56bl857m1hlxzshz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/itasca";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iter2 = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "iter2";
+        ename = "iter2";
+        version = "20181020.802";
+        src = fetchFromGitHub {
+          owner = "doublep";
+          repo = "iter2";
+          rev = "3b418e05e93ea380baf905de14efda4c174f779c";
+          sha256 = "16mmqnwip3cixsmmij4dnjc8h323z280fk51w5rmwnnb0qmfzp66";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iter2";
+          sha256 = "0kl3z2wwpvk2ddsb3798g41pv0xycsf9dclhv00snpzsr61d9v65";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/iter2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iterator = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "iterator";
+        ename = "iterator";
+        version = "20170207.38";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "iterator";
+          rev = "9da54f9aed945b46866782cdf962c9e530419297";
+          sha256 = "0r50hdyr9s18p7ggiyv36g011jgg47bgszvjgcmpp23rz131mxyw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iterator";
+          sha256 = "17q10fw6y0icsv6vv9n968bwmbjlihrpkkyw62d1kfxhs9yw659z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/iterator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivariants = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ivs-edit
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ivariants";
+        ename = "ivariants";
+        version = "20170822.1924";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "emacs-ivariants";
+          rev = "ca0b74d32b5d2d77a45cc6ad6edc00be0ee85284";
+          sha256 = "16hygfx9gla6yhc3kaiy4m6g910m1hak3v86fnpf12kzvjjs9zfx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivariants";
+          sha256 = "00fgcm62g4fw4306lw9ld2k7w0c358fcbkxn969k5p009g7pk5bw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivs-edit ];
+        meta = {
+          homepage = "https://melpa.org/#/ivariants";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivs-edit = callPackage ({ cl-lib ? null
+                            , dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ivs-edit";
+        ename = "ivs-edit";
+        version = "20170818.741";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "ivs-edit";
+          rev = "5db39c234aa7393b591168a4fd0a9a4cbbca347d";
+          sha256 = "1sdl83cf87zbv0ynvb6qlgbpm4d3dqhdn84jhhs5j247r5qzhmz6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivs-edit";
+          sha256 = "0gzhvzrfk17j2vwlg82f5ifk4dcfc1yv7barcij38ckran8cqmb2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ivs-edit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ivy";
+        ename = "ivy";
+        version = "20181119.1042";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper";
+          rev = "c0e4ff0fd8696a4653e2809822877518cb97ceee";
+          sha256 = "01yjv2x486sjam6qms6c3xrv2qp8d29b4zvp41j5l73bhb6sav6j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy";
+          sha256 = "0xf5p91r2ljl93wbr5wbgnb4hzhs00wkaf4fmdlf31la8xwwp5ci";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-bibtex = callPackage ({ biblio
+                              , cl-lib ? null
+                              , dash
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , parsebib
+                              , s
+                              , swiper }:
+      melpaBuild {
+        pname = "ivy-bibtex";
+        ename = "ivy-bibtex";
+        version = "20181030.1442";
+        src = fetchFromGitHub {
+          owner = "tmalsburg";
+          repo = "helm-bibtex";
+          rev = "af05ccb498d89550644cc01c80628053d4d2d73f";
+          sha256 = "0m2yn7n7i5kn31m72006n58qw8qhklylna0l2yv4maf46k527xxw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-bibtex";
+          sha256 = "0qni48s09lgzqr98r49dhrzpfqp9yfwga11h7vhqclscjvlalpc2";
+          name = "recipe";
+        };
+        packageRequires = [ biblio cl-lib dash f parsebib s swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-bibtex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-dired-history = callPackage ({ cl-lib ? null
+                                     , counsel
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , ivy
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-dired-history";
+        ename = "ivy-dired-history";
+        version = "20170625.2256";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "ivy-dired-history";
+          rev = "c9c67ea1ee5e68443f0e6006ba162d6c8d868b69";
+          sha256 = "1lim9zi57w011df5zppb18yjkaxkgfy796pc6i01p4dl32x0rpfv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-dired-history";
+          sha256 = "1vj073k5m0l8rx9iiisikzl053ad9mlhvbk30f5zmw9sw7b9blyl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib counsel ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-dired-history";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-erlang-complete = callPackage ({ async
+                                       , counsel
+                                       , emacs
+                                       , erlang
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , ivy
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-erlang-complete";
+        ename = "ivy-erlang-complete";
+        version = "20180715.2144";
+        src = fetchFromGitHub {
+          owner = "s-kostyaev";
+          repo = "ivy-erlang-complete";
+          rev = "6dad91e4951ed6fd8886bfee587144da18b57049";
+          sha256 = "1padq39s8k4p16bgxi0cyy1q0rqa89w38a0nzkc3kvnq3iycixlp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-erlang-complete";
+          sha256 = "00fqjgrhvcn3ibpgiy4b0sr4x9p6ym5r1rvi4rdzsw2i3nxmgf3a";
+          name = "recipe";
+        };
+        packageRequires = [ async counsel emacs erlang ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-erlang-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-feedwrangler = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-feedwrangler";
+        ename = "ivy-feedwrangler";
+        version = "20180618.822";
+        src = fetchFromGitHub {
+          owner = "asimpson";
+          repo = "ivy-feedwrangler";
+          rev = "051eac49cae32b16fab2e06ff0115cd8fb5dc499";
+          sha256 = "1irp76kbg8d7wmgvfjbb4c3wmd29bdrl503jkq4w52fl57g94cvj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-feedwrangler";
+          sha256 = "1mxm37biix8c0s32gfv4pidffvlgdz5i9325zk71fhgfzqwkf5vx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-feedwrangler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-gitlab = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , gitlab
+                              , ivy
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "ivy-gitlab";
+        ename = "ivy-gitlab";
+        version = "20180312.947";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "emacs-gitlab";
+          rev = "68318aca3206d50701039c9aae39734ca29a49f9";
+          sha256 = "0arsjdn0anp7pacwxd3cw4db8a7pgzjlnwav1l3maaz1176h4lpb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-gitlab";
+          sha256 = "0gbwsmb6my0327f9j96s20mybnjaw9yaiwhs3sy3vav0qww91z1y";
+          name = "recipe";
+        };
+        packageRequires = [ dash gitlab ivy s ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-gitlab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-historian = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flx
+                                 , historian
+                                 , ivy
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-historian";
+        ename = "ivy-historian";
+        version = "20170715.2120";
+        src = fetchFromGitHub {
+          owner = "PythonNut";
+          repo = "historian.el";
+          rev = "6cc124987e18501a1f6f9a384144a22424be3ad8";
+          sha256 = "1r2p8fqbc1ms9wrhkxqqmmi8cyba1xdsy9yk2yq1rrivhqpl9fq7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-historian";
+          sha256 = "0yzq3rr51q5d64pfc7x5jszz77x6nwpbjj0g74x5ga3bsw3i67d9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flx historian ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-historian";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-hydra = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , hydra
+                             , ivy
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-hydra";
+        ename = "ivy-hydra";
+        version = "20180614.1500";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper";
+          rev = "8c1a191764446397f31d4c8e47e687f5b521e46f";
+          sha256 = "14csqz3mj33rjby8vgzlarcymn97jx8678w4n6mfd9m1h40fb7nv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-hydra";
+          sha256 = "1xv8nfi6dzhx868h44ydq4f5jmsa7rbqfa7jk8g0z0ifv477hrvx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hydra ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-hydra";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-lobsters = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , ivy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-lobsters";
+        ename = "ivy-lobsters";
+        version = "20171202.1241";
+        src = fetchFromGitHub {
+          owner = "julienXX";
+          repo = "ivy-lobsters";
+          rev = "4364df4b3685fd1b50865ac9360fb948c0288dd1";
+          sha256 = "1cfcy2ks0kb04crwlfp02052zcwg384cgz7xjyafwqynm77d35l0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-lobsters";
+          sha256 = "1g8bwlh4nls21k16r1pmqmb633j19h3jnjbfl2vixyrh2na8ff1w";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-lobsters";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-mpdel = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ivy
+                             , lib
+                             , libmpdel
+                             , melpaBuild
+                             , mpdel }:
+      melpaBuild {
+        pname = "ivy-mpdel";
+        ename = "ivy-mpdel";
+        version = "20180502.1148";
+        src = fetchFromGitHub {
+          owner = "mpdel";
+          repo = "ivy-mpdel";
+          rev = "16c0e67e4411c4da158a708edf427505ebbf8845";
+          sha256 = "0ddvp8d5vxab40rmk7zj5r8hwgszrl18p0mj8fal7yp1f8la550d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-mpdel";
+          sha256 = "1v9xiy4bs7r24li6fwi5dfqav8dfr3dy0xhj3wnzvcgwxp5ji56r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy libmpdel mpdel ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-mpdel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-pages = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ivy
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-pages";
+        ename = "ivy-pages";
+        version = "20160728.1220";
+        src = fetchFromGitHub {
+          owner = "igorepst";
+          repo = "ivy-pages";
+          rev = "428a901f94c9625c8407fd2bf76f9d7714d40d87";
+          sha256 = "11lcv8dqlmfqvhn7n3wfp9idr5hf30312p213y5pvs4m70lbc9k2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-pages";
+          sha256 = "0zz8nbjma8r6r7xxbg7xfz13202d77k1ybzpib41slmljzh7xgwv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-pages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-pass = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ivy
+                            , lib
+                            , melpaBuild
+                            , password-store }:
+      melpaBuild {
+        pname = "ivy-pass";
+        ename = "ivy-pass";
+        version = "20170812.1255";
+        src = fetchFromGitHub {
+          owner = "ecraven";
+          repo = "ivy-pass";
+          rev = "5b523de1151f2109fdd6a8114d0af12eef83d3c5";
+          sha256 = "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-pass";
+          sha256 = "1sb29q22fsjqfxqznf73xcqhzy132bjd45w7r27sfmf825vcysci";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy password-store ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-pass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-phpunit = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ivy
+                               , lib
+                               , melpaBuild
+                               , phpunit }:
+      melpaBuild {
+        pname = "ivy-phpunit";
+        ename = "ivy-phpunit";
+        version = "20180219.115";
+        src = fetchFromGitHub {
+          owner = "12pt";
+          repo = "ivy-phpunit";
+          rev = "ffedb0138d36564e8e36a28fd9bc71ea8944681f";
+          sha256 = "0kf1k3jqg2r20x985h6brg92sg7y47c5vkfjky8xp11gqyqw47bi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-phpunit";
+          sha256 = "1spvcf41lvjdmiwp6058wrpp0hfg1cjld6b7zm28m2ys6mn35ycs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy phpunit ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-phpunit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-posframe = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , ivy
+                                , lib
+                                , melpaBuild
+                                , posframe }:
+      melpaBuild {
+        pname = "ivy-posframe";
+        ename = "ivy-posframe";
+        version = "20180817.2124";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "ivy-posframe";
+          rev = "b92aaa1c4695e2c6012cdbc1469b89e8c0dac4c2";
+          sha256 = "0hng52hcarpxry99cppl5sysf13rv536n22fqj8myh1b1657186a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-posframe";
+          sha256 = "1sv4xvdvb1g8g5m4f1f159lxbxaz96drsmvhh0k43hp1dh3bhj3b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy posframe ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-posframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-prescient = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , ivy
+                                 , lib
+                                 , melpaBuild
+                                 , prescient }:
+      melpaBuild {
+        pname = "ivy-prescient";
+        ename = "ivy-prescient";
+        version = "20181022.1556";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "prescient.el";
+          rev = "1623a0d4e5b9a752db45923fd91da48b49c85068";
+          sha256 = "0yan4m9xf4iia4ns8kqa0zsham4h2mcnwsq9xnfwm26rkn94xrw0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-prescient";
+          sha256 = "017ibpbj390q5d051k3wn50774wvcixzbwikvi5ifzqkhgixqk9c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy prescient ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-prescient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-purpose = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ivy
+                               , lib
+                               , melpaBuild
+                               , window-purpose }:
+      melpaBuild {
+        pname = "ivy-purpose";
+        ename = "ivy-purpose";
+        version = "20160724.303";
+        src = fetchFromGitHub {
+          owner = "bmag";
+          repo = "ivy-purpose";
+          rev = "0495f2f3aed64d7e0028125e76a9a68f8fc4107e";
+          sha256 = "1hiw7mnrr0cnnp0a2mh837pzdaknadwv0sk82vya6blx0a7m691g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-purpose";
+          sha256 = "0c5n7x3sa57wslwnldvc0i315xhyi1zndyhr07rzka1rhj8v1c4v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy window-purpose ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-purpose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-rich = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ivy
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-rich";
+        ename = "ivy-rich";
+        version = "20181001.447";
+        src = fetchFromGitHub {
+          owner = "Yevgnen";
+          repo = "ivy-rich";
+          rev = "dee5d60f655c93f4f9f0e40507244112bd90dab5";
+          sha256 = "0czq9kaqfk7dyf8l22a7qqmkr0wgwilqyfgc3r9znzn1hx9pi4xy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-rich";
+          sha256 = "1il1lhxxg694j9w65qwzjm4p4l3q1h1hfndybj6z1cb72ijw27fr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-rich";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-rtags = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , ivy
+                             , lib
+                             , melpaBuild
+                             , rtags }:
+      melpaBuild {
+        pname = "ivy-rtags";
+        ename = "ivy-rtags";
+        version = "20170522.2154";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "7e6b6f21935eedbe4678ba91c5531ac162b51a5a";
+          sha256 = "12629d1s8rplhjh17n3bmgnkpscq4gljgyl84j8qyhh40dwq1qk0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-rtags";
+          sha256 = "18f0jak643dd8lmx701wgk95miajabd8190ls35831slr28lqxsq";
+          name = "recipe";
+        };
+        packageRequires = [ ivy rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-todo = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ivy
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-todo";
+        ename = "ivy-todo";
+        version = "20171208.809";
+        src = fetchFromGitHub {
+          owner = "Kungsgeten";
+          repo = "ivy-todo";
+          rev = "964e347cea1a6097854d7113f5b07f6c5ef81df0";
+          sha256 = "07208qdk1a77dgh9qmpn164x5mgkzvprsdvb7y35ax12r2q541b8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-todo";
+          sha256 = "06mn430zkisnqrmad81gn88pl7lz0m8rm1yvpngpakwwnhwm0q96";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-todo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-xcdoc = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ivy
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-xcdoc";
+        ename = "ivy-xcdoc";
+        version = "20160917.355";
+        src = fetchFromGitHub {
+          owner = "hex2010";
+          repo = "emacs-ivy-xcdoc";
+          rev = "fbf264b0746182567b17fd7409fff8eed3658c71";
+          sha256 = "1y55p3qaz054lxb7q8vq00h3spyfbc9xnilm26b4vcps5y0limp6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-xcdoc";
+          sha256 = "1my45325ys2m2l5y8pmi5jnbplqm16b1n7zll37163vv16zwnd53";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-xcdoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-xref = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ivy
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-xref";
+        ename = "ivy-xref";
+        version = "20180821.511";
+        src = fetchFromGitHub {
+          owner = "alexmurray";
+          repo = "ivy-xref";
+          rev = "61864f82e554121be0a26ba0a1d8f48b669dd5f0";
+          sha256 = "0cgl8lzw0rzswqsl8wk6b39bm2781mwvz3qwm06r2n3kjy7c79b4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-xref";
+          sha256 = "1p5a0x83b0bc7b654j1d207s7vifffgwmp26pya2mz0czd68ywy8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-xref";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-yasnippet = callPackage ({ cl-lib ? null
+                                 , dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , ivy
+                                 , lib
+                                 , melpaBuild
+                                 , yasnippet }:
+      melpaBuild {
+        pname = "ivy-yasnippet";
+        ename = "ivy-yasnippet";
+        version = "20181002.955";
+        src = fetchFromGitHub {
+          owner = "mkcms";
+          repo = "ivy-yasnippet";
+          rev = "32580b4fd23ebf9ca7dde96704f7d53df6e253cd";
+          sha256 = "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-yasnippet";
+          sha256 = "180q6hrsnkssbf9x9bj74dyy26kym4akbsjlj81x4193nnmc5w67";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ivy yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-yasnippet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-ycmd = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ivy
+                            , lib
+                            , melpaBuild
+                            , ycmd }:
+      melpaBuild {
+        pname = "ivy-ycmd";
+        ename = "ivy-ycmd";
+        version = "20180909.525";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-ivy-ycmd";
+          rev = "25bfee8f676e4ecbb645e4f30b47083410a00c58";
+          sha256 = "1ywrkx8ddncy4qhv5gh4qf1cpapyvny42i51p91j9ip7xmihy6lm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-ycmd";
+          sha256 = "0vlf75qv9m84gx83rxz0acnlx5lspq92d94q82ba2p4cc6yjyvj3";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ivy ycmd ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-ycmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-youtube = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ivy
+                               , lib
+                               , melpaBuild
+                               , request }:
+      melpaBuild {
+        pname = "ivy-youtube";
+        ename = "ivy-youtube";
+        version = "20181031.508";
+        src = fetchFromGitHub {
+          owner = "squiter";
+          repo = "ivy-youtube";
+          rev = "57e773e29412dc87e9bf007b15ac8dbed149e7fc";
+          sha256 = "1ayszfcsdxwqzcppp2q9kpsm2afdh6pylw9kns90wpx5s885azpq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-youtube";
+          sha256 = "1masw9qc33valx55klfhzx0bg1hfazmn5yd9wh12q2gjsz8nxyw4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ivy request ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-youtube";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ix = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , grapnel
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ix";
+        ename = "ix";
+        version = "20131027.929";
+        src = fetchFromGitHub {
+          owner = "theanalyst";
+          repo = "ix.el";
+          rev = "47632caf925fbb3cc8633834d2d619032d039336";
+          sha256 = "1j6axmi6fxcl2ja4660ygxchggm2dzjngi0k3g6pimawykvgxs3n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ix";
+          sha256 = "1fl76dk8vgw3mrh5iz99lrsllwya6ij9d1lj3szcrs4qnj0b5ql3";
+          name = "recipe";
+        };
+        packageRequires = [ grapnel ];
+        meta = {
+          homepage = "https://melpa.org/#/ix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iy-go-to-char = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "iy-go-to-char";
+        ename = "iy-go-to-char";
+        version = "20141029.846";
+        src = fetchFromGitHub {
+          owner = "doitian";
+          repo = "iy-go-to-char";
+          rev = "11b2a90d10e29151d18f8997f804b745b710b040";
+          sha256 = "1jgs41mf3nizjiiq64gzymjvd559mffr1agj9hvq0x42a3dwfc81";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iy-go-to-char";
+          sha256 = "10szn9y7gl8947p3f9w6p6vzjf1a9cjif9mbj3qdqx4vbsl9mqpz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iy-go-to-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+    j-mode = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "j-mode";
+        ename = "j-mode";
+        version = "20171224.1056";
+        src = fetchFromGitHub {
+          owner = "zellio";
+          repo = "j-mode";
+          rev = "e8725ac8af95498faabb2ca3ab3bd809a8f148e6";
+          sha256 = "0icrwny3cif0iwgyf9i25sj9i5gy056cn9ic2wwwbzqjqb4xg6dd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/j-mode";
+          sha256 = "0f9lsr9hjhdvmzx565ivlncfzb4iq4rjjn6a41053cjy50bl066i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/j-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jabber = callPackage ({ fetchgit
+                          , fetchurl
+                          , fsm
+                          , lib
+                          , melpaBuild
+                          , srv }:
+      melpaBuild {
+        pname = "jabber";
+        ename = "jabber";
+        version = "20180927.1625";
+        src = fetchgit {
+          url = "https://github.com/legoscia/emacs-jabber.git";
+          rev = "fff33826f42e040dad7ef64ea312d85215d3b0a1";
+          sha256 = "1fif38qhiaxskfmqin82n9334bzrkgd1h5ip1djcm571i670gj74";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jabber";
+          sha256 = "04d2jdzs3c790ms70px8xvyip1liqvd3jy2mbs8qqbwyiccb74xx";
+          name = "recipe";
+        };
+        packageRequires = [ fsm srv ];
+        meta = {
+          homepage = "https://melpa.org/#/jabber";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jabber-otr = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , jabber
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "jabber-otr";
+        ename = "jabber-otr";
+        version = "20150918.444";
+        src = fetchFromGitHub {
+          owner = "legoscia";
+          repo = "emacs-jabber-otr";
+          rev = "2692b1530234e0ba9a0d6c1eaa1cbe8679f193c0";
+          sha256 = "0yv86nadp6dfzl05vhk8c1kahg2pcrhfmd3mnfjrngp7ksac5lyf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jabber-otr";
+          sha256 = "114z5bwhkza03yvfa4nmicaih2jdq83lh6micxjimpddsc8fjgi0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs jabber ];
+        meta = {
+          homepage = "https://melpa.org/#/jabber-otr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jack-connect = callPackage ({ fetchgit
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "jack-connect";
+        ename = "jack-connect";
+        version = "20141207.407";
+        src = fetchgit {
+          url = "https://bitbucket.org/sbarbit/jack-connect";
+          rev = "b00658dfe3d5d67431c18ffa693d5a3705067ba0";
+          sha256 = "1a33z07m9rh42pbcjv7sd640gf6jjzs4yn6idx52g8i5vzns0dkh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jack-connect";
+          sha256 = "1ssl126wihaf8m2f6ms0l5ai6pz5wn348a09k6l0h3jfww032g1q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jack-connect";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jade-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "jade-mode";
+        ename = "jade-mode";
+        version = "20160525.741";
+        src = fetchFromGitHub {
+          owner = "brianc";
+          repo = "jade-mode";
+          rev = "4dbde92542fc7ad61df38776980905a4721d642e";
+          sha256 = "0p6pfxbl98kkwa3lgx82h967w4p0wbd9s96gvs72d74ryan07ij1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jade-mode";
+          sha256 = "156j0d9wx6hrhph0nsjsi1jha4h65rcbrbff1j2yr8vdsszjrs94";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jade-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jammer = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "jammer";
+        ename = "jammer";
+        version = "20160310.59";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "jammer";
+          rev = "48aa795df6df7ae6484518bcd0398293ca49d7c6";
+          sha256 = "1gnj8vmpxds2wdkz49swiby5vq2hvbf64q5hhvwymfdvwlk54v55";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jammer";
+          sha256 = "01c4bii7gswhp6z9dgx4bhvsywiwbbdv7mg1zj6vp1530l74zx6z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jammer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    japanese-holidays = callPackage ({ cl-lib ? null
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "japanese-holidays";
+        ename = "japanese-holidays";
+        version = "20160927.2318";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "japanese-holidays";
+          rev = "4207ee349356837ebfbf0badb6c42f256412c833";
+          sha256 = "1n4imcnwqdixd8ybc06hmmh6l28gv0c6mvrpwg7fh9lgsvmgbxb3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/japanese-holidays";
+          sha256 = "0pxpkikkn2ys0kgf3lbrdxv8iym50h5ik2xzza0qk7cw1v93jza9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/japanese-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    japanlaw = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "japanlaw";
+        ename = "japanlaw";
+        version = "20160129.20";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "japanlaw.el";
+          rev = "ad318559d626652d1bc59baa8ab86d5075361e33";
+          sha256 = "1wjgjbzk66a4bv60lkf76g1bd9rw892kx36ijvr9vl6z760rrrcm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/japanlaw";
+          sha256 = "1pxss1mjk5660k80r1xqgslnbrsr6r4apgp9abjwjfxpg4f6d0sa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/japanlaw";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jape-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "jape-mode";
+        ename = "jape-mode";
+        version = "20140903.806";
+        src = fetchFromGitHub {
+          owner = "tanzoniteblack";
+          repo = "jape-mode";
+          rev = "27dbebc4de93eb887038fda7a11671349efe8dbb";
+          sha256 = "0bnh5jvqjwrd5wqh1gvbx2z7sjczf8cvah9y58c2v68ia5drxb3z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jape-mode";
+          sha256 = "1gd685r86h0kr36msw81gfgwv7d35hihz6h0jkc6vd22wf6qc3ly";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jape-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jar-manifest-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "jar-manifest-mode";
+        ename = "jar-manifest-mode";
+        version = "20160430.1726";
+        src = fetchFromGitHub {
+          owner = "omajid";
+          repo = "jar-manifest-mode";
+          rev = "270dae14c481300f75ed96dad3a5ae42ca928a1d";
+          sha256 = "1p7w3hq2cyn1245q0zn8m7hpjs8nbp7kqfmd2gzi2k209czipy21";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jar-manifest-mode";
+          sha256 = "0kx358m3p23r8m7z45454i62ijmdlf4mljlbqc20jkihfanr6wqd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jar-manifest-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jasminejs-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "jasminejs-mode";
+        ename = "jasminejs-mode";
+        version = "20150526.1705";
+        src = fetchFromGitHub {
+          owner = "stoltene2";
+          repo = "jasminejs-mode";
+          rev = "23637d6718423d376eebbdaa4d6d914c7cab26ed";
+          sha256 = "1p31x23cc1xjziydbphfh4pbv43703x2x0i2kz7a8c6hvka07lym";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jasminejs-mode";
+          sha256 = "1a70j3aglrwmaw9g8m99sxad2vs53y4swxh97gqjsgx1rrx03g52";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jasminejs-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jastadd-ast-mode = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "jastadd-ast-mode";
+        ename = "jastadd-ast-mode";
+        version = "20161219.126";
+        src = fetchFromGitHub {
+          owner = "rudi";
+          repo = "jastadd-ast-mode";
+          rev = "a29fdb470cbf0a398164950a3b0d2217de48e0c0";
+          sha256 = "01fv0ixkshy7i6wzcgq6xvijvh3n402vyhmh3qzjwi9p0vxvdyxv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jastadd-ast-mode";
+          sha256 = "1cwqxzmqx5wxaax12rq0hy0whpaivqncykym43p3an2sl9s6ngva";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jastadd-ast-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    java-imports = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , pcache
+                                , s }:
+      melpaBuild {
+        pname = "java-imports";
+        ename = "java-imports";
+        version = "20170913.710";
+        src = fetchFromGitHub {
+          owner = "dakrone";
+          repo = "emacs-java-imports";
+          rev = "e96ff44ed48b362ab6227b8b802b84d84f78bcaa";
+          sha256 = "0nryawj8v6gj6hnb81yf6966kjnydcz49zsg2k355gldryqf4v5p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/java-imports";
+          sha256 = "1waz6skyrm1n8wpc0pwa652l11wz8qz1m89mqxk27k3lwyd84n98";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pcache s ];
+        meta = {
+          homepage = "https://melpa.org/#/java-imports";
+          license = lib.licenses.free;
+        };
+      }) {};
+    java-snippets = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , yasnippet }:
+      melpaBuild {
+        pname = "java-snippets";
+        ename = "java-snippets";
+        version = "20160626.1952";
+        src = fetchFromGitHub {
+          owner = "nekop";
+          repo = "yasnippet-java-mode";
+          rev = "738523debb1018439bda0ce70e00248154a600ac";
+          sha256 = "0k9iq8f5ngx80r965hc9bzmaa7y4vwn4vx10v1v9f46h48kmsg0q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/java-snippets";
+          sha256 = "0bsmp6sc3khdadkmwqy8khz8kzqijcsv70gimm2cs1kwnbyj6pfp";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/java-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    javadoc-lookup = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "javadoc-lookup";
+        ename = "javadoc-lookup";
+        version = "20160213.1631";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "javadoc-lookup";
+          rev = "507a2dd443d60b537b8f779c1847e2cd0ccd1382";
+          sha256 = "16gywcma1s8kslwznlxwlx0xj0gs5g31637kb74vfdplk48f04zj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/javadoc-lookup";
+          sha256 = "1fffs0iqkk9rg5vbxifvn09j4i2751p81bzcvy5fslr3r1r2nv79";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/javadoc-lookup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    javap-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "javap-mode";
+        ename = "javap-mode";
+        version = "20120223.1408";
+        src = fetchFromGitHub {
+          owner = "hiredman";
+          repo = "javap-mode";
+          rev = "864c1130e204b2072e1d19cd027b6fce8ebe6629";
+          sha256 = "070r4mg4v937n4h2bmzdbn3vsmmq7ijz69nankqs761jxv5gcwlg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/javap-mode";
+          sha256 = "19p39l4nwgxm52yimy4j6l43845cpk8g5qdrldlwfxd7dvay09ay";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/javap-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jaword = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , tinysegmenter }:
+      melpaBuild {
+        pname = "jaword";
+        ename = "jaword";
+        version = "20170425.2327";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "jaword";
+          rev = "a084558075f8892d61214aa21ff3663dd466cf4c";
+          sha256 = "0vjim6a9hy6bkbiaggdljlkbga2gpyv89zrla8sdgw8s2yh8m8bl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jaword";
+          sha256 = "05pzh99zfl8n3p6lxdd9abr52m24hqcb105458i1cy0ra840bf4d";
+          name = "recipe";
+        };
+        packageRequires = [ tinysegmenter ];
+        meta = {
+          homepage = "https://melpa.org/#/jaword";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jazz-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "jazz-theme";
+        ename = "jazz-theme";
+        version = "20170411.711";
+        src = fetchFromGitHub {
+          owner = "donderom";
+          repo = "jazz-theme";
+          rev = "b1cb78a97cc4050f19d88a89e455c3e52d98240e";
+          sha256 = "0q9gfa40qh9wypvzg3xrv4kh6l51az9swb39133961dc8zrrrinm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jazz-theme";
+          sha256 = "0ad8kvrmd3gyb8wfghcl4r3kwzplk5gxlw3p23wsbx6c2xq6xr7g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jazz-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jbeans-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "jbeans-theme";
+        ename = "jbeans-theme";
+        version = "20180309.825";
+        src = fetchFromGitHub {
+          owner = "synic";
+          repo = "jbeans-emacs";
+          rev = "3caa95998d8492a2ca6c17971de499ca15609871";
+          sha256 = "0k8bd5j09753czl55dcwijs4j1vxir4zwcwlgsxli4b4f8sl2z8r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jbeans-theme";
+          sha256 = "0y7ccycfnpykgzr88968w7dl45qazf8b9zlf7ydw3ghkl4f6lbwl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jbeans-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jdecomp = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "jdecomp";
+        ename = "jdecomp";
+        version = "20170224.1400";
+        src = fetchFromGitHub {
+          owner = "xiongtx";
+          repo = "jdecomp";
+          rev = "692866abc83deedce62be8d6040cf24dda7fb7a8";
+          sha256 = "00l6mc643na97jrb0k595kwmfg8wc7m5iqjd9l9vvf3dal6389b8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jdecomp";
+          sha256 = "1vgjmz7rxvgy9lprzr5b018lzqy3h0zg8913la1bzgwlm3mr68y5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jdecomp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jdee = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , flycheck
+                        , lib
+                        , melpaBuild
+                        , memoize
+                        , s }:
+      melpaBuild {
+        pname = "jdee";
+        ename = "jdee";
+        version = "20180831.800";
+        src = fetchFromGitHub {
+          owner = "jdee-emacs";
+          repo = "jdee";
+          rev = "8451b811b11d8cb428bafab31752e93180a3c724";
+          sha256 = "08rjr1lr1hq47bpc6iy1ib24vky9zlpj9q5gdvb6cd4zzvlm2qw7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jdee";
+          sha256 = "15n76w0ygjmsa2bym59bkmbbh0kpqx6nacp4zz32hlg48kgz1dx4";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck memoize s ];
+        meta = {
+          homepage = "https://melpa.org/#/jdee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jedi = callPackage ({ auto-complete
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , jedi-core
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "jedi";
+        ename = "jedi";
+        version = "20160425.2156";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-jedi";
+          rev = "1521c525483263b7241c4881b15299b38700070c";
+          sha256 = "1xj6rswsnicwcgcqid4qji1x4yhdhrgvvjdd3jhb4z8mfahpnpp6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jedi";
+          sha256 = "1777060q25k9n2g6h1lm5lkki900pmjqkxq72mrk3j19jr4pk9m4";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete emacs jedi-core ];
+        meta = {
+          homepage = "https://melpa.org/#/jedi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jedi-core = callPackage ({ cl-lib ? null
+                             , emacs
+                             , epc
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , python-environment }:
+      melpaBuild {
+        pname = "jedi-core";
+        ename = "jedi-core";
+        version = "20181117.154";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-jedi";
+          rev = "f0ec869f352e8c37a53c73b579ac94bad064c0d9";
+          sha256 = "1b9p1fyymswr6a0vs3zp1x2lx7z7pic0z70grmrsa7pj9ayqs9q2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jedi-core";
+          sha256 = "0pzi32zdb4g9n4kvpmkdflmqypa7nckmnjq60a3ngym4wlzbb32f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs epc python-environment ];
+        meta = {
+          homepage = "https://melpa.org/#/jedi-core";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jedi-direx = callPackage ({ direx
+                              , fetchFromGitHub
+                              , fetchurl
+                              , jedi
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "jedi-direx";
+        ename = "jedi-direx";
+        version = "20140310.236";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-jedi-direx";
+          rev = "7a2e677400717ed12b959cb5988e7b3fb1c12117";
+          sha256 = "1pgi5vnwz5agrpvy7nwg3gv2nfbbmimhk8dxkg81k6yf1iiqxcap";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jedi-direx";
+          sha256 = "1y4n4c2imnm3f1q129bvbi4gzk0iazd8qq959gvq9j9fl1aziiz1";
+          name = "recipe";
+        };
+        packageRequires = [ direx jedi ];
+        meta = {
+          homepage = "https://melpa.org/#/jedi-direx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jekyll-modes = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , polymode }:
+      melpaBuild {
+        pname = "jekyll-modes";
+        ename = "jekyll-modes";
+        version = "20141117.514";
+        src = fetchFromGitHub {
+          owner = "fred-o";
+          repo = "jekyll-modes";
+          rev = "7cb10b50fd2883e3f7b10fdfd98f19f2f0b2381c";
+          sha256 = "0rx72rid7922mhw21j85kxmx0fhpkmkv9jvxmj9izy01xnjbk00c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jekyll-modes";
+          sha256 = "1305f1yg1mamyw3bkzrk5q3q58ihs8f5k9vjknsww5xvrzz3r1si";
+          name = "recipe";
+        };
+        packageRequires = [ polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/jekyll-modes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jemdoc-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "jemdoc-mode";
+        ename = "jemdoc-mode";
+        version = "20170704.1327";
+        src = fetchFromGitHub {
+          owner = "drdv";
+          repo = "jemdoc-mode";
+          rev = "529b4d4681e1198b9892f340fdd6c3f1592a047a";
+          sha256 = "1f8nn8mv18q3x3k32i6kjis9f3g1ybdjcfaw8hywqwy6k8dr734m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jemdoc-mode";
+          sha256 = "1bl8a9fcilrqjzh92q7nvd16pxjiwmbnj157q2bx36y7bxm60acv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jemdoc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jenkins = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , json ? null
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "jenkins";
+        ename = "jenkins";
+        version = "20170721.236";
+        src = fetchFromGitHub {
+          owner = "rmuslimov";
+          repo = "jenkins.el";
+          rev = "1ec967973db685c9d84133ec6a5e06489ce06b62";
+          sha256 = "1ai5adv46van2g029x9idj394ycczfacyhyv291sasf8mv9i7j4b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jenkins";
+          sha256 = "0ji42r7p3f3hh643839xf74gb231vr7anycr2xhkga8qy2vwa53s";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/jenkins";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jenkins-watch = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "jenkins-watch";
+        ename = "jenkins-watch";
+        version = "20121004.1626";
+        src = fetchFromGitHub {
+          owner = "ataylor284";
+          repo = "jenkins-watch";
+          rev = "37b84dfbd98240a57ff798e1ff8bc7dba2913577";
+          sha256 = "0jayhv8j7b527dimhvcs0d7ax25x7v50dk0k6apisqc23psvkq66";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jenkins-watch";
+          sha256 = "1mdmh62rq3b8p23xgaf4i0kzpgq3ldljdxsnk07wa8bp3p7jxvgs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jenkins-watch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jetbrains = callPackage ({ cl-lib ? null
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "jetbrains";
+        ename = "jetbrains";
+        version = "20180228.2102";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "jetbrains.el";
+          rev = "56f71a17d455581c10d48f6dbb31d9e2126227bf";
+          sha256 = "0v948k7xjm66px20ad331pskc7svpcrcffh3hbkjsksd4k0pggds";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jetbrains";
+          sha256 = "0254dkzf2x5dj3j549xjash0lsadkn0bdcyjkjlrv8hqvdr1f1m7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/jetbrains";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jg-quicknav = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "jg-quicknav";
+        ename = "jg-quicknav";
+        version = "20170808.1830";
+        src = fetchFromGitHub {
+          owner = "jeffgran";
+          repo = "jg-quicknav";
+          rev = "c8d53e774d63e68a944092c08a026b57da741038";
+          sha256 = "0rdrryfppgj5smrds5gyyhc4z8x36aq3gxdpckq80rbl4s729chy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jg-quicknav";
+          sha256 = "1pxyv1nbnqb0s177kczy6b6q4l8d2r52xqhx2rdb0wxdmp6m5x9c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib s ];
+        meta = {
+          homepage = "https://melpa.org/#/jg-quicknav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jinja2-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "jinja2-mode";
+        ename = "jinja2-mode";
+        version = "20141128.207";
+        src = fetchFromGitHub {
+          owner = "paradoxxxzero";
+          repo = "jinja2-mode";
+          rev = "cfaa7bbe7bb290cc500440124ce89686f3e26f86";
+          sha256 = "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jinja2-mode";
+          sha256 = "0480fh719r4v7xdwyf4jlg1k36y54i5zrv7gxlhfm66pil75zafx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jinja2-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jira-markup-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "jira-markup-mode";
+        ename = "jira-markup-mode";
+        version = "20150601.1409";
+        src = fetchFromGitHub {
+          owner = "mnuessler";
+          repo = "jira-markup-mode";
+          rev = "53bf083fdbece483f1351f32085b424b38c4c1f2";
+          sha256 = "1lqk7x7h8n6xvqzfwjh220gprk5jfi8f87z6afps9rib2scz7kbh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jira-markup-mode";
+          sha256 = "0f3sw41b4wl0aajq0ap66942rb2015d9iks0ss016jgzashw7zsp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jira-markup-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jist = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , let-alist
+                        , lib
+                        , magit
+                        , melpaBuild
+                        , request
+                        , seq }:
+      melpaBuild {
+        pname = "jist";
+        ename = "jist";
+        version = "20161229.921";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "jist.el";
+          rev = "ec4b27eb4051f0084cb3b1e4f19fab9e2db77665";
+          sha256 = "163zip2fhyn41wmwhyrx8przcq2qmlq841b6hpm9lw8mm3wfnqbq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jist";
+          sha256 = "11m9li1016cfkm4931h69d7g1dc59lwjl83wy3yipswdg3zlw0ar";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs let-alist magit request seq ];
+        meta = {
+          homepage = "https://melpa.org/#/jist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jknav = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "jknav";
+        ename = "jknav";
+        version = "20121006.1325";
+        src = fetchFromGitHub {
+          owner = "aculich";
+          repo = "jknav.el";
+          rev = "861245715c728503dad6573278fdd75c271dbf8b";
+          sha256 = "1idby2rjkslw85593qd4zy6an9zz71yzwqc6rck57r54xyfs8mij";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jknav";
+          sha256 = "0c0a8plqrlsw8lhmyj9c1lfkj2b48cjkbw9pna8qcizvwgym9089";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jknav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jonprl-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , yasnippet }:
+      melpaBuild {
+        pname = "jonprl-mode";
+        ename = "jonprl-mode";
+        version = "20160818.1759";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "jonprl-mode";
+          rev = "6059bb64891fae45827174e044d6a87ac07172d8";
+          sha256 = "0v4xiq3xf7c52rmyymw8a4ws85ij0xy7pr7625gf15359cs5chs9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jonprl-mode";
+          sha256 = "0763ad65dmpl2l5lw91mlppfdvrjg6ym45brhi8sdwwri1xnyv9z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/jonprl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jpop = callPackage ({ cl-lib ? null
+                        , dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "jpop";
+        ename = "jpop";
+        version = "20170410.550";
+        src = fetchFromGitHub {
+          owner = "domtronn";
+          repo = "jpop.el";
+          rev = "7628b03260be96576b34459d45959ee77d8b2110";
+          sha256 = "1x7qha7xyn2j225h7axhskngc8icjhgm3f451iq3qysj22q8g4d6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jpop";
+          sha256 = "00chh1aqnkkkhdp44sapdjx37cbn92g42wapdq7kcl8v1v0xmnjr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jpop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jq-mode = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "jq-mode";
+        ename = "jq-mode";
+        version = "20181103.558";
+        src = fetchFromGitHub {
+          owner = "ljos";
+          repo = "jq-mode";
+          rev = "d6bbd83baf0746f22564f7ae92db44e06da6e08c";
+          sha256 = "1sk603258gvnfrvl641xfmgapg67z44wnlx6qba73wn3f2055765";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jq-mode";
+          sha256 = "1xvh641pdkvbppb2nzwn1ljdk7sv6laq29kdv09kxaqd89vm0vin";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jq-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jquery-doc = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "jquery-doc";
+        ename = "jquery-doc";
+        version = "20150812.58";
+        src = fetchFromGitHub {
+          owner = "ananthakumaran";
+          repo = "jquery-doc.el";
+          rev = "24032284919b942ec27707d929bdd8bf48420062";
+          sha256 = "0gh2bgmsbi9lby89ssvl49kpz07jqrfnyg47g6b9xmf5rw42s1z9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jquery-doc";
+          sha256 = "0pyg90izdrb9mvpbz9nx21mp8m3svqjnz1jr8i7wqgfjxsxdklxj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jquery-doc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js-auto-beautify = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , web-beautify
+                                    , web-mode }:
+      melpaBuild {
+        pname = "js-auto-beautify";
+        ename = "js-auto-beautify";
+        version = "20161030.2209";
+        src = fetchFromGitHub {
+          owner = "Qquanwei";
+          repo = "auto-beautify.el";
+          rev = "6bc9fef474197ca1722cb1e9051b270f80cdd7cc";
+          sha256 = "1jj4zbdw76ir7zigdhad4qdw1cabbql71847bzkqh6zzjwpg9h3p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js-auto-beautify";
+          sha256 = "0hpp6im24xy4g5l1n9kvpmpj26rnxxnf4snf7xgh5gxx6wsiicy1";
+          name = "recipe";
+        };
+        packageRequires = [ web-beautify web-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/js-auto-beautify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js-auto-format-mode = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "js-auto-format-mode";
+        ename = "js-auto-format-mode";
+        version = "20180807.652";
+        src = fetchFromGitHub {
+          owner = "ybiquitous";
+          repo = "js-auto-format-mode";
+          rev = "59caa137c4beec4dec4a7d7ebf8bcb6af44d72f0";
+          sha256 = "10xxg8lc4g9wdl4lz7kx6la23agpbq4ls1mn5d4y364j8nfcxf9g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js-auto-format-mode";
+          sha256 = "1gxf7xz1j3ga2pk5w8cgny7l8kid59zap2a97lhb50w1qczfqqzs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/js-auto-format-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js-codemod = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "js-codemod";
+        ename = "js-codemod";
+        version = "20171104.454";
+        src = fetchFromGitHub {
+          owner = "torgeir";
+          repo = "js-codemod.el";
+          rev = "014e56c846487d1eeaf8a91dd503b9d96eb1510a";
+          sha256 = "0s07ypjlqsx2pgq89wmr69w9p7ybc62abqp53kzf5gmdl6fdzgxq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js-codemod";
+          sha256 = "1m5wbyx12sc5qwbrh948ikskck10p6j05ahrrvmmflvfb3q4vpcj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/js-codemod";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js-comint = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "js-comint";
+        ename = "js-comint";
+        version = "20181106.1438";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "js-comint";
+          rev = "01be9d821269c513665d00416f6dac5c77808801";
+          sha256 = "17933bxyq6jff2ibaxj2w4d9i9a5hbcfv5kh84m2vqgxcilvlx2a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js-comint";
+          sha256 = "0jvkjb0rmh87mf20v6rjapi2j6qv8klixy0y0kmh3shylkni3an1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/js-comint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js-doc = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "js-doc";
+        ename = "js-doc";
+        version = "20160714.2134";
+        src = fetchFromGitHub {
+          owner = "mooz";
+          repo = "js-doc";
+          rev = "f0606e89d5aa89146f96edb38cf69af0068a9d1e";
+          sha256 = "1ffayl6hca9zanbznh6rkql7fbr53id1lyrj2vllx8zakfac4dyv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js-doc";
+          sha256 = "0nafqgb4kf8jgrb7ijfcvigq8kf043ki89h61izda4hccm3c42pk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/js-doc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js-format = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , js2-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "js-format";
+        ename = "js-format";
+        version = "20170118.1702";
+        src = fetchFromGitHub {
+          owner = "futurist";
+          repo = "js-format.el";
+          rev = "544bda9be72b74ec2d442543ba60cff727d96669";
+          sha256 = "18wr2z2w2fqgy51f5m5izrnywarxn6w4qs04lsgbwlsc6ahpwwpf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js-format";
+          sha256 = "112zqb3q1gjlaa9zkmhx7vamh0g97dwp9j55215i1sx66lmp18iq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/js-format";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js-import = callPackage ({ dash
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , projectile }:
+      melpaBuild {
+        pname = "js-import";
+        ename = "js-import";
+        version = "20180817.356";
+        src = fetchFromGitHub {
+          owner = "jakoblind";
+          repo = "js-import";
+          rev = "c98e74a0b43d6ccb8764cf572cdde95ca27f5633";
+          sha256 = "1qhigx8lgp044348wr8lwidbn0xcs4j7jrm8qjva5zryjvbxy881";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js-import";
+          sha256 = "0r653ls1a4kr7i7249afgfj7vz365gadfm8bc1vmqfabxn8mysd4";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/js-import";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js2-closure = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , js2-mode
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "js2-closure";
+        ename = "js2-closure";
+        version = "20170816.1218";
+        src = fetchFromGitHub {
+          owner = "jart";
+          repo = "js2-closure";
+          rev = "74a75f001a8bc2b9c02b9e8b4557f7ee3c5f84fb";
+          sha256 = "1gapx656s4ngy8s8y1p56xxnclwf4qqg83l3jizknxky7yhayyl9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js2-closure";
+          sha256 = "19732bf98lk2ah2ssgkr1ngxx7rz3nhsiw84lsfmydb0vvm4fpk7";
+          name = "recipe";
+        };
+        packageRequires = [ js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/js2-closure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js2-highlight-vars = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , js2-mode
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "js2-highlight-vars";
+        ename = "js2-highlight-vars";
+        version = "20170418.1129";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "js2-highlight-vars.el";
+          rev = "e3bb177e50f76b272e8073a94d4f46be6512a163";
+          sha256 = "0yy8sqkn6c7r377qr2id4z550vw1x70xjd4i7yg0g1rj7q1kg98l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js2-highlight-vars";
+          sha256 = "07bq393g2jy8ydvaqyqn6vdyfvyminvgi239yvwzg5g9a1xjc475";
+          name = "recipe";
+        };
+        packageRequires = [ emacs js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/js2-highlight-vars";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js2-mode = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "js2-mode";
+        ename = "js2-mode";
+        version = "20180724.101";
+        src = fetchFromGitHub {
+          owner = "mooz";
+          repo = "js2-mode";
+          rev = "2ed3cc070c7819556c9c89826b0f5c4629b104ef";
+          sha256 = "08168z2figb7x99jwixmzrqcdi7iv7c1x1w8gf1k082c4yf5qlmg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js2-mode";
+          sha256 = "0f9cj3n55qnlifxwk1yp8n1kfd319jf7qysnkk28xpvglzw24yjv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/js2-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js2-refactor = callPackage ({ dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , js2-mode
+                                , lib
+                                , melpaBuild
+                                , multiple-cursors
+                                , s
+                                , yasnippet }:
+      melpaBuild {
+        pname = "js2-refactor";
+        ename = "js2-refactor";
+        version = "20180502.342";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "js2-refactor.el";
+          rev = "186e1abf8c818623e1eef8bb07509d2ea11367b8";
+          sha256 = "1g877cxvmv29089m0phh551clpz995ja9585nvwiycdzc7w2mqga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js2-refactor";
+          sha256 = "09dcfwpxxyw0ffgjjjaaxbsj0x2nwfrmxy1a05h8ba3r3jl4kl1r";
+          name = "recipe";
+        };
+        packageRequires = [ dash js2-mode multiple-cursors s yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/js2-refactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js3-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "js3-mode";
+        ename = "js3-mode";
+        version = "20160515.850";
+        src = fetchFromGitHub {
+          owner = "thomblake";
+          repo = "js3-mode";
+          rev = "7fceb21ec56aac7af4b189bb0c0d0cf620327f5a";
+          sha256 = "18c0s3i21b77pi5y86zi7jg9pwxc0h5dzznjiyrig0jab0cksln5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js3-mode";
+          sha256 = "12s5qf6zfcv4m5kqxvh9b4zgwf433x39a210d957gjjp5mywbb1r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/js3-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jscs = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "jscs";
+        ename = "jscs";
+        version = "20151015.1049";
+        src = fetchFromGitHub {
+          owner = "papaeye";
+          repo = "emacs-jscs";
+          rev = "9d39d0f2355e69a020bf76242504f3a33e013ccf";
+          sha256 = "1bqsv2drhcs8ia7nxss33f80p2mhcl4mr1nalphzw6s1f4mq2sgy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jscs";
+          sha256 = "1yw251f6vpj2bikjw79arywprk8qnmmfcki99mvwnqhsqlv1a8iv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jscs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jsfmt = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "jsfmt";
+        ename = "jsfmt";
+        version = "20180920.308";
+        src = fetchFromGitHub {
+          owner = "brettlangdon";
+          repo = "jsfmt.el";
+          rev = "ca141a135c7700eaedef92561d334e1fb7dc28a1";
+          sha256 = "13b2y6q6hqgdf32vyph407jlgki8xf5kflqz8zi0hcrmb8wkrd5x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jsfmt";
+          sha256 = "1syy32sv2d57b3gja0ly65h36mfnyq6hzf5lnnl3r58yvbdzngqd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jsfmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    json-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , json-reformat
+                             , json-snatcher
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "json-mode";
+        ename = "json-mode";
+        version = "20180718.109";
+        src = fetchFromGitHub {
+          owner = "joshwnj";
+          repo = "json-mode";
+          rev = "ffc92b1eefc54963703b43be140f4c8c8ad348f7";
+          sha256 = "186m03fhbv8v8kz5nmhrsakhl2mh0hn365yrx36i28i8mbnwzah7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/json-mode";
+          sha256 = "014j10wgxsqy6d6aksnkz2dr5cmpsi8c7v4a825si1vgb4622a70";
+          name = "recipe";
+        };
+        packageRequires = [ json-reformat json-snatcher ];
+        meta = {
+          homepage = "https://melpa.org/#/json-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    json-navigator = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , hierarchy
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "json-navigator";
+        ename = "json-navigator";
+        version = "20171220.19";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "json-navigator";
+          rev = "7a1fec93500c46ccba4086d10115d8188607d0d0";
+          sha256 = "03gjvzlyf90sh2q735qfbbjyqx4z9c3yc8jjp2sjpmp5fjvdm9yf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/json-navigator";
+          sha256 = "0yfl31cg0mkgsbpgx00m9h2cxnhsavcf7zlspb0qr4g2zq6ya1wx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hierarchy ];
+        meta = {
+          homepage = "https://melpa.org/#/json-navigator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    json-reformat = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "json-reformat";
+        ename = "json-reformat";
+        version = "20160212.53";
+        src = fetchFromGitHub {
+          owner = "gongo";
+          repo = "json-reformat";
+          rev = "24c2bf3c41897b5cf1398dcaedfec88526308bf4";
+          sha256 = "05bjyw0hkpiyfadsx3giawykbj4qinfr1ilzd0xvx8akzq2ipq0y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/json-reformat";
+          sha256 = "1m5p895w9qdgb8f67xykhzriribgmp20a1lvj64iap4aam6wp8na";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/json-reformat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    json-rpc = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "json-rpc";
+        ename = "json-rpc";
+        version = "20180104.728";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "elisp-json-rpc";
+          rev = "0992ae71964055230aa5d4d934a1b93b5dfd7eb4";
+          sha256 = "0nfccwxss3dz1ig6i3dig703xpsy90m7i96bm3pysrw2jfp4by9s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/json-rpc";
+          sha256 = "1v1pfmm9g18p6kgn27q1m1bjgwbzvwfm0jbsxp8gdsssaygky71k";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/json-rpc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    json-snatcher = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "json-snatcher";
+        ename = "json-snatcher";
+        version = "20150511.2047";
+        src = fetchFromGitHub {
+          owner = "Sterlingg";
+          repo = "json-snatcher";
+          rev = "c4cecc0a5051bd364373aa499c47a1bb7a5ac51c";
+          sha256 = "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/json-snatcher";
+          sha256 = "0f6j9g3c5fz3wlqa88706cbzinrs3dnfpgsr2d3h3117gic4iwp4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/json-snatcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jsonnet-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "jsonnet-mode";
+        ename = "jsonnet-mode";
+        version = "20180822.919";
+        src = fetchFromGitHub {
+          owner = "mgyucht";
+          repo = "jsonnet-mode";
+          rev = "0d68681d501fd57ebde5ed4fe100033a5d3aafa8";
+          sha256 = "1r54fhmrcr9nrmiwrz10y2fyx0cvvb5mcmb3g0iypwpbg86vklv4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jsonnet-mode";
+          sha256 = "1aadys887szlc924qr645lby9f8vzvxkwhq6byhppk1b01h911ia";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jsonnet-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jss = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , js2-mode
+                       , lib
+                       , melpaBuild
+                       , websocket }:
+      melpaBuild {
+        pname = "jss";
+        ename = "jss";
+        version = "20130508.723";
+        src = fetchFromGitHub {
+          owner = "segv";
+          repo = "jss";
+          rev = "41749257aecf13c7bd6ed489b5ab3304d06e40bc";
+          sha256 = "07yd7sxb5f2mbm2nva7b2nwyxxkmsi2rdd5qig0bq1b2mf3g5l83";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jss";
+          sha256 = "050hskqcjz5kc8nni255vj3hc9m936w1rybvg5kqyz4p4lpzj00k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs js2-mode websocket ];
+        meta = {
+          homepage = "https://melpa.org/#/jss";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jst = callPackage ({ dash
+                       , emacs
+                       , f
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , pcache
+                       , s }:
+      melpaBuild {
+        pname = "jst";
+        ename = "jst";
+        version = "20150604.438";
+        src = fetchFromGitHub {
+          owner = "zhangkaiyulw";
+          repo = "jst-mode";
+          rev = "865ff97449a4cbbcb40d38b4908cf4d7b22a5108";
+          sha256 = "066ql5czrzikznlx7vww6m8h0pfkixfm8qnydfwpfndcqq6ypd90";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jst";
+          sha256 = "1kxf8ckhsh0sgc4xqkkyh7ghk17farqqz35ibvmyrkl9s19ydj1q";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f pcache s ];
+        meta = {
+          homepage = "https://melpa.org/#/jst";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jsx-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "jsx-mode";
+        ename = "jsx-mode";
+        version = "20130908.1024";
+        src = fetchFromGitHub {
+          owner = "jsx";
+          repo = "jsx-mode.el";
+          rev = "3a0d688f0f93cbb4596e562e596f7736a0926160";
+          sha256 = "1kldk8i3galix9nbrcn92a8j942nx6nwzihl8w17lh8v95d51rhn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jsx-mode";
+          sha256 = "1lnjnyn8qf3biqr92z443z6b58dly7glksp1g986vgqzdprq3n1b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jsx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jtags = callPackage ({ fetchgit
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "jtags";
+        ename = "jtags";
+        version = "20160211.1229";
+        src = fetchgit {
+          url = "https://git.code.sf.net/p/jtags/code";
+          rev = "f7d29e1635ef7ee4ee2cdb8f1f6ab83e1015c84a";
+          sha256 = "029arf0m39rrb3x81hpd3ljwd4ki37hwa4n38hynn8lfmwrrdy2x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jtags";
+          sha256 = "1f3dw9fr31lcqmida14d9rsvy1r1b5d6ihqwdj9hbx5kv7d8jyj7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    julia-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "julia-mode";
+        ename = "julia-mode";
+        version = "20180816.1417";
+        src = fetchFromGitHub {
+          owner = "JuliaEditorSupport";
+          repo = "julia-emacs";
+          rev = "ec01995f60486480cf2240bbd3b9a2ff3fa9e0f0";
+          sha256 = "18lgdr07mllxmjrqyzx9z2js9ajj4pfz407r1ph6fjliyv2c61p5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/julia-mode";
+          sha256 = "1f26j3nxspwrvnsk3kmam8rw4jwikwmi9a5zwsx9aa1rrasg58w3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/julia-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    julia-repl = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "julia-repl";
+        ename = "julia-repl";
+        version = "20180923.424";
+        src = fetchFromGitHub {
+          owner = "tpapp";
+          repo = "julia-repl";
+          rev = "d8b94c6dbfa47fd51540b9d5b1bb0c2dfce3ebc2";
+          sha256 = "027ib0i5af23s3kxsfbxh3jgw944crry0v4c7yxz9l8r8p3wpq1k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/julia-repl";
+          sha256 = "1k8a54s7g64zasmmnywygr0ra3s3din5mkqb7b5van2l0d4hcmzn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/julia-repl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    julia-shell = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , julia-mode
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "julia-shell";
+        ename = "julia-shell";
+        version = "20161125.1110";
+        src = fetchFromGitHub {
+          owner = "dennisog";
+          repo = "julia-shell-mode";
+          rev = "583a0b2ca20461ab4356929fd0f2212c22341b69";
+          sha256 = "182r7x7w3xnx7c54izz3rlz0khcwh7v21m89qpq99f9dvcs6273k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/julia-shell";
+          sha256 = "0182irlvk6nn71zk4j8xjgcqp4bxi7a2dbj44frrssy6018cd410";
+          name = "recipe";
+        };
+        packageRequires = [ julia-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/julia-shell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jumblr = callPackage ({ dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "jumblr";
+        ename = "jumblr";
+        version = "20170727.1343";
+        src = fetchFromGitHub {
+          owner = "mkmcc";
+          repo = "jumblr";
+          rev = "34533dfb9db8538c005f4eaffafeff7ed193729f";
+          sha256 = "0nn2m27c70nykin4iakrna0c61qd1hr09czrfmfpk06k70iifjky";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jumblr";
+          sha256 = "1wnawz1m6x95iyzac453p55h7hlr5q0ry5437aqqx0bw7gdwg3dp";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/jumblr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jump = callPackage ({ cl-lib ? null
+                        , fetchFromGitHub
+                        , fetchurl
+                        , findr
+                        , inflections
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "jump";
+        ename = "jump";
+        version = "20161126.1728";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "jump.el";
+          rev = "9519c675e8a650f6afade7d870e925d0fb50f112";
+          sha256 = "1bm1mgd632gq3cl4zrq66vnqq9ynvc01iy6szp464ccnm3cmqdzr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jump";
+          sha256 = "18g0fa9g8m9jscsm6pn7jwdq94l4aj0dfhrv2hqapq1q1x537364";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib findr inflections ];
+        meta = {
+          homepage = "https://melpa.org/#/jump";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jump-char = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "jump-char";
+        ename = "jump-char";
+        version = "20180601.648";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "jump-char";
+          rev = "1e31a3c687f2b3c71bbfab881c6d75915534bb9e";
+          sha256 = "1nzln2l6sy67qz30107sgyhhfacy85im9vdlbv1hp4fzdmxxkx84";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jump-char";
+          sha256 = "1r6d1vhm87zafi7rr7z8jwyz3yy7i7s4774n84jsql24j1rzzwd4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jump-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jump-to-line = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "jump-to-line";
+        ename = "jump-to-line";
+        version = "20130122.853";
+        src = fetchFromGitHub {
+          owner = "ongaeshi";
+          repo = "jump-to-line";
+          rev = "01ef8c3529d85e6c59cc20840acbc4a8e8325bc8";
+          sha256 = "1s9plmg323m1p625xqnks0yqz0zlsjacdj7pv8f783r0d9jmfq3s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jump-to-line";
+          sha256 = "09ifhsggl5mrb6l8nqnl38yph0v26v30y98ic8hl23i455hqkkdr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jump-to-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jump-tree = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "jump-tree";
+        ename = "jump-tree";
+        version = "20171014.851";
+        src = fetchFromGitHub {
+          owner = "yangwen0228";
+          repo = "jump-tree";
+          rev = "282267dc6305889e31d46b405b7ad4dfe5923b66";
+          sha256 = "0r6cwpks4aylndvq5lcny3799fag05zm36gd11043wca7sgr90fz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jump-tree";
+          sha256 = "1gknpwd1vjpd1jqpi2axhyi6sg4clarr32rfrfz6hi6kmzr848mj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jump-tree";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jumplist = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "jumplist";
+        ename = "jumplist";
+        version = "20151119.1945";
+        src = fetchFromGitHub {
+          owner = "ganmacs";
+          repo = "jumplist";
+          rev = "c482d137d95bc5e1bcd790cdbde25b7f729b2502";
+          sha256 = "0ykzvy8034mchq6ffyi7vqnwyrj6gnqqgn39ki81pv97qh8hh8yl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jumplist";
+          sha256 = "06xjg1q8b2fwfhfmdkb76bw2id8pgqc61fmwlgri5746jgdmd7nf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/jumplist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jvm-mode = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "jvm-mode";
+        ename = "jvm-mode";
+        version = "20150422.8";
+        src = fetchFromGitHub {
+          owner = "martintrojer";
+          repo = "jvm-mode.el";
+          rev = "3355dbaf5b0185aadfbad24160399abb32c5bea0";
+          sha256 = "0k91cdjlpil8npc4d3zsgx2gk41crl7qgm9r85khcgxs59kmkniw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jvm-mode";
+          sha256 = "1r283b4s0pzq4hgwcz5cnhlvdvq4gy0x51g3vp0762s8qx969a5w";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jvm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaesar = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "kaesar";
+        ename = "kaesar";
+        version = "20160128.208";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-kaesar";
+          rev = "d087075cb1a46c2c85cd075220e09b2eaef9b86e";
+          sha256 = "1pl0514rj99b1j3y33x2bnhjbdbv9bfxgqn9498bf4ns8zayc6y9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaesar";
+          sha256 = "0zhi1dv1ay1azh7afq4x6bdg91clwpsr13nrzy7539yrn9sglj5l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/kaesar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaesar-file = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , kaesar
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "kaesar-file";
+        ename = "kaesar-file";
+        version = "20160128.208";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-kaesar";
+          rev = "d087075cb1a46c2c85cd075220e09b2eaef9b86e";
+          sha256 = "1pl0514rj99b1j3y33x2bnhjbdbv9bfxgqn9498bf4ns8zayc6y9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaesar-file";
+          sha256 = "0dcizg82maad98mbqqw5lamwz7n2lpai09jsrc66x3wy8k784alc";
+          name = "recipe";
+        };
+        packageRequires = [ kaesar ];
+        meta = {
+          homepage = "https://melpa.org/#/kaesar-file";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaesar-mode = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , kaesar
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "kaesar-mode";
+        ename = "kaesar-mode";
+        version = "20160128.208";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-kaesar";
+          rev = "d087075cb1a46c2c85cd075220e09b2eaef9b86e";
+          sha256 = "1pl0514rj99b1j3y33x2bnhjbdbv9bfxgqn9498bf4ns8zayc6y9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaesar-mode";
+          sha256 = "0yqnlchbpmhsqc8j531n08vybwa32cy0v9sy4f9fgxa90rfqczry";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib kaesar ];
+        meta = {
+          homepage = "https://melpa.org/#/kaesar-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kakapo-mode = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "kakapo-mode";
+        ename = "kakapo-mode";
+        version = "20171003.2151";
+        src = fetchFromGitHub {
+          owner = "listx";
+          repo = "kakapo-mode";
+          rev = "67d516138172fd60782df94454b3d0bd247e84f3";
+          sha256 = "0r2n410arr48skcwm39c6mjhzsia117lb8xd7pc4854y0rbrvrvs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kakapo-mode";
+          sha256 = "0a99cqflpzasl4wcmmf99aj8xgywkym37j7mvnsajrsk5wawdlss";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/kakapo-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaleidoscope = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "kaleidoscope";
+        ename = "kaleidoscope";
+        version = "20170808.117";
+        src = fetchFromGitHub {
+          owner = "algernon";
+          repo = "kaleidoscope.el";
+          rev = "b89a243f6024099192f1bc38d8a54e3e7a654090";
+          sha256 = "154myfd3nag9nhpc3lrhq13191q7a9bzi0ml8a3k0fwy1810yi29";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaleidoscope";
+          sha256 = "0nfz207rzpnni7jyzvdvz5lr0zcpzy278a86821cmw8d5l81a3yp";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/kaleidoscope";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaleidoscope-evil-state-flash = callPackage ({ evil
+                                                 , fetchFromGitHub
+                                                 , fetchurl
+                                                 , kaleidoscope
+                                                 , lib
+                                                 , melpaBuild
+                                                 , s }:
+      melpaBuild {
+        pname = "kaleidoscope-evil-state-flash";
+        ename = "kaleidoscope-evil-state-flash";
+        version = "20170728.320";
+        src = fetchFromGitHub {
+          owner = "algernon";
+          repo = "kaleidoscope.el";
+          rev = "5b88327350c3d6375ef1d43fb31342eaabd88fdc";
+          sha256 = "1rbifir3rpp6i7il13b9yawkwllr2ima1d9rsff46n6h2920d5x1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaleidoscope-evil-state-flash";
+          sha256 = "17a4nmdi6h0z4va3kiw4ivaywiisblz6cicypk9d3g9sl92drcvq";
+          name = "recipe";
+        };
+        packageRequires = [ evil kaleidoscope s ];
+        meta = {
+          homepage = "https://melpa.org/#/kaleidoscope-evil-state-flash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kanban = callPackage ({ fetchhg
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "kanban";
+        ename = "kanban";
+        version = "20170418.110";
+        src = fetchhg {
+          url = "https://bitbucket.com/ArneBab/kanban.el";
+          rev = "dd11d722b20a";
+          sha256 = "07g0spi9jf48vap76f9rgl61sg3jqy03qdxnmchzwlia8wvcsscb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kanban";
+          sha256 = "1j4qv3xcg0gk07yx3b4kayiy1n3w8yq1r78h07613iljx2ny91fz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kanban";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kanji-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "kanji-mode";
+        ename = "kanji-mode";
+        version = "20160826.439";
+        src = fetchFromGitHub {
+          owner = "wsgac";
+          repo = "kanji-mode";
+          rev = "5e9d5b72468ece11cfb81b729be6babf63ede425";
+          sha256 = "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kanji-mode";
+          sha256 = "0nnkv7lp7ks9qhkbhz15ixm53grc2q0xfspzykxi9c4b59kypcq5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kanji-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaolin-themes = callPackage ({ autothemer
+                                 , cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "kaolin-themes";
+        ename = "kaolin-themes";
+        version = "20181117.36";
+        src = fetchFromGitHub {
+          owner = "ogdenwebb";
+          repo = "emacs-kaolin-themes";
+          rev = "7ddbe315c85082a6ed9ded576ed8b9e9ed8fe1f2";
+          sha256 = "0m8hasvc11h1k8ahv7ibmwxqr2dydbwxn4ig96sj88qdk21v0zf2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaolin-themes";
+          sha256 = "1pd2v54d578f1wbwvqzplkdz1qvy8w8s6na511b0v5y9sksgm2xw";
+          name = "recipe";
+        };
+        packageRequires = [ autothemer cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kaolin-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaomoji = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm-core
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "kaomoji";
+        ename = "kaomoji";
+        version = "20171226.2040";
+        src = fetchFromGitHub {
+          owner = "kuanyui";
+          repo = "kaomoji.el";
+          rev = "90a1490743b2a30762f5454c9d9309018eff83dd";
+          sha256 = "1jc796nyrck3k50x6jb1wsaawk396y4gk87gkwb8yd5qks7ci35q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaomoji";
+          sha256 = "1p61pbqf2lnwr6ryxxc4jkd5bmlgknrc27lg89h3b4pw7k39cqy1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/kaomoji";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kapacitor = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , magit
+                             , magit-popup
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "kapacitor";
+        ename = "kapacitor";
+        version = "20180909.2142";
+        src = fetchFromGitHub {
+          owner = "Manoj321";
+          repo = "kapacitor-el";
+          rev = "b0e95f98b965f215be6ead14779949d5cf358ea5";
+          sha256 = "0ahi9ar32kwf7cinxp29c3yhjfibg509pvxv5s0gn31szdqq216p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kapacitor";
+          sha256 = "108b3y71p7s3lcwbqxp7hy2l304yj4hxm2nq8iv7ljr8av1q7kn6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/kapacitor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    karma = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pkg-info }:
+      melpaBuild {
+        pname = "karma";
+        ename = "karma";
+        version = "20160220.445";
+        src = fetchFromGitHub {
+          owner = "tonini";
+          repo = "karma.el";
+          rev = "31d3e7708246183d7ed0686be92bf23140af348c";
+          sha256 = "12v242kfcx849j8w95v2g7djh9xqbx8n033iaxyavfxnz0pp7zdl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/karma";
+          sha256 = "19wl7js7wmw7jv2q3l4r5zl718lhy2a0jhl79k57ihwhxdc58fwc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/karma";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kdeconnect = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "kdeconnect";
+        ename = "kdeconnect";
+        version = "20180126.1540";
+        src = fetchFromGitHub {
+          owner = "carldotac";
+          repo = "kdeconnect.el";
+          rev = "ca0cbf9a628ba7b519b43fa85e0d988ca26bf853";
+          sha256 = "07aqzfg2nn35bkikrmk1lszqkc6h8vn2551m22mwc19lmdx94p2i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kdeconnect";
+          sha256 = "1bcwpnwmm1l2jzc5znw8z6f5knysinidsbm12v4r1j8v6v80ydw6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kdeconnect";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kerl = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "kerl";
+        ename = "kerl";
+        version = "20150424.1305";
+        src = fetchFromGitHub {
+          owner = "correl";
+          repo = "kerl.el";
+          rev = "1732ee26213f021bf040919c45ad276aafcaae14";
+          sha256 = "1kkzs7nrcr74qn1m456vaj52a9j3ah4biakimz06hls415l56yk9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kerl";
+          sha256 = "0f8n7cm5c432pwj28bcpv2jj5z3br3k164xj6nwfis3dvijwsgss";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kerl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    key-chord = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "key-chord";
+        ename = "key-chord";
+        version = "20160227.438";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "key-chord";
+          rev = "72443e9ff3c4f1c3ccaced3130236801efde3d83";
+          sha256 = "15jfpysyydcvqlvdannxg2s4bh4i9z6i950fad1qlq43jfmq7k55";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/key-chord";
+          sha256 = "1g0jqmnn575h5n4figxbc5xs76zl8b1cdqa6wbi3d1p2rn3g8scr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/key-chord";
+          license = lib.licenses.free;
+        };
+      }) {};
+    key-combo = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "key-combo";
+        ename = "key-combo";
+        version = "20150324.739";
+        src = fetchFromGitHub {
+          owner = "uk-ar";
+          repo = "key-combo";
+          rev = "09a917bdfd3b309b4b3cbe3b11212e1ae6fab38d";
+          sha256 = "0af0yzw95624s0wwh1rw9q7djwwhw6mrk9zhzj66cir555lsshlz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/key-combo";
+          sha256 = "1v8saw92jphvjkyy7j9jx7cxzgisl4zpf4wjzdjfw3la5lz11waf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/key-combo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    key-intercept = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "key-intercept";
+        ename = "key-intercept";
+        version = "20140210.2349";
+        src = fetchFromGitHub {
+          owner = "tarao";
+          repo = "key-intercept-el";
+          rev = "d9a60edb4ce893f2d3d94f242164fdcc62d43cf2";
+          sha256 = "143nfs8pgi5yy3mjq7nirffplk4vb8kik4q7zypynh2pddip30a4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/key-intercept";
+          sha256 = "1z776jbpjks5bir6bd0748mlrmz05nf0jy9l4hlmwgyn72dcbx16";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/key-intercept";
+          license = lib.licenses.free;
+        };
+      }) {};
+    key-leap = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "key-leap";
+        ename = "key-leap";
+        version = "20160831.747";
+        src = fetchFromGitHub {
+          owner = "MartinRykfors";
+          repo = "key-leap";
+          rev = "b3f6ef15c8a13870475d5af159fa24b30f97dea0";
+          sha256 = "1f2k7jpxfvjirxzjc5c4s4lpg1hdgw8k7lfchx362jqijny1ipfp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/key-leap";
+          sha256 = "0z1fhpf8g0c4rh3bf8dfmdgyhj5w686kavjr214czaga0x7mwlwj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/key-leap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    key-seq = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , key-chord
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "key-seq";
+        ename = "key-seq";
+        version = "20150907.56";
+        src = fetchFromGitHub {
+          owner = "vlevit";
+          repo = "key-seq.el";
+          rev = "e29b083a6427d061638749194fc249ef69ad2cc0";
+          sha256 = "05vpydcgiaya35b62cdjxna9y02vnwzzg6p8jh0dkr9k44h4iy3f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/key-seq";
+          sha256 = "166k6hl9vvsnnksvhrv5cbhv9bdiclnbfv7qf67q4c1an9xzqi74";
+          name = "recipe";
+        };
+        packageRequires = [ key-chord ];
+        meta = {
+          homepage = "https://melpa.org/#/key-seq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keycast = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "keycast";
+        ename = "keycast";
+        version = "20180318.1321";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "keycast";
+          rev = "0d28c26b07a062ab58c01c6cbedc3e68bd4ec8a1";
+          sha256 = "0wfy5wbr150y57mlzsxhb6bq9ycqj2jk5i6nhwl4q8b6xd3mh6p6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keycast";
+          sha256 = "19qq5y1zjp3029kfq0c59xl9xnxqmdn2pd04sblznchcr9jdy5id";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/keycast";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keychain-environment = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "keychain-environment";
+        ename = "keychain-environment";
+        version = "20180318.1523";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "keychain-environment";
+          rev = "d3643196de6dc79ea77f9f4805028350fd76100b";
+          sha256 = "0wzs77nwal6apinc39d4arj3lralv2cb9aw9gkikk46fgk404hwj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keychain-environment";
+          sha256 = "1w77cg00bwx68h0d6k6r1fzwdwz97q12ch2hmpzjnblqs0i4sv8v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/keychain-environment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keydef = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "keydef";
+        ename = "keydef";
+        version = "20090428.1231";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "keydef";
+          rev = "dff2be9f58d12d8c6a490ad0c1b2b10b55528dc0";
+          sha256 = "0dkc51bmix4b8czs2wg6vz8vk32qlll1b9fjmx6xshrxm85cyhvv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keydef";
+          sha256 = "0yb2vgj7abyg8j7qmv74nsanv50lf350q1m58rjv8wm31yykg992";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/keydef";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keyfreq = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "keyfreq";
+        ename = "keyfreq";
+        version = "20160516.716";
+        src = fetchFromGitHub {
+          owner = "dacap";
+          repo = "keyfreq";
+          rev = "9c665c8c219d18866403897936427bb408e3d6b9";
+          sha256 = "1dhdk4f6q340n0r9n8jld2n2fykp7m40x23n7sw4wpm8g151gxin";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keyfreq";
+          sha256 = "1rw6hzmw7h5ngvndy7aa41pq911y2hr9kqc9w4gdd5v2p4ln1qh7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/keyfreq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keymap-utils = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "keymap-utils";
+        ename = "keymap-utils";
+        version = "20180318.1537";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "keymap-utils";
+          rev = "1ad766dbc111ec78b1a292da97b9bd4856cd2ff7";
+          sha256 = "0imx8zp21bm066bzdynvasylrlhw0gr8mpk2bwkz8j1y5lsp54v8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keymap-utils";
+          sha256 = "0nbcwz4nls0pva79lbx91bpzkl38g98yavwkvg2rxbhn9vjbhzs9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/keymap-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keypress-multi-event = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "keypress-multi-event";
+        ename = "keypress-multi-event";
+        version = "20180817.153";
+        src = fetchFromGitHub {
+          owner = "Boruch-Baum";
+          repo = "emacs-keypress-multi-event";
+          rev = "64e3037fa4520b6bca2141f1217d3fa988e01a91";
+          sha256 = "0ppkmbk9i7h038x577v2j67y37c7jlwssay80rv83hl4lwb5ayvb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keypress-multi-event";
+          sha256 = "07va7w6vgjf6jqrfzpsq8732b8aka07g29h661yh1xn4x6464hyp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/keypress-multi-event";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keyset = callPackage ({ cl-lib ? null
+                          , dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "keyset";
+        ename = "keyset";
+        version = "20150219.2130";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "keyset";
+          rev = "c6b375fbe8035fde593d1d96895eb6e3f111d379";
+          sha256 = "1vdlx8p0s0zh7sxawd7hfcb66aqap9wdcl1z5ilidnbba4if212g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keyset";
+          sha256 = "1kfw0pfb6qm2ji1v0kb8xgz8q2yd2k9kxmaz5vxcdixdlax3xiqg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/keyset";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keyswap = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "keyswap";
+        ename = "keyswap";
+        version = "20160813.257";
+        src = fetchFromGitHub {
+          owner = "hardenedapple";
+          repo = "keyswap.el";
+          rev = "cd682a7c4a8d64d6bae6a005db5045232e5e7b95";
+          sha256 = "191i2b2xx6180sly0dd6b1z6npsrzjqhxrbak9wm6yblx7alsgn2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keyswap";
+          sha256 = "0ck9w2jr4vdk3yjlcdzblsbgw5w5x1cxbx7h1am5vkr6fhxh2hdi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/keyswap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keyword-search = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "keyword-search";
+        ename = "keyword-search";
+        version = "20180424.402";
+        src = fetchFromGitHub {
+          owner = "keyword-search";
+          repo = "keyword-search";
+          rev = "f8475ecaddb8804a9be6bee47678207c86ac8dee";
+          sha256 = "1ymqnpm9his2bkchq23vwazprwyw0d2sdgza7zjxvs3q0f4nj0vx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keyword-search";
+          sha256 = "0wvci1v8pblfbdslfzpi46c149y8pi49kza9jf33jzhj357lp5qa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/keyword-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kibit-helper = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "kibit-helper";
+        ename = "kibit-helper";
+        version = "20150508.833";
+        src = fetchFromGitHub {
+          owner = "brunchboy";
+          repo = "kibit-helper";
+          rev = "ec5f154db3bb0c838e86f527353f08644cede926";
+          sha256 = "0ky167xh1hrmqsldybzjhyqjizgjzs1grn5mf8sm2j9qwcvjw2zv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kibit-helper";
+          sha256 = "15viybjqksylvm5ash2kzsil0cpdka56wj1rryixa8y1bwlj8y4s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/kibit-helper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kill-or-bury-alive = callPackage ({ cl-lib ? null
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "kill-or-bury-alive";
+        ename = "kill-or-bury-alive";
+        version = "20171231.2218";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "kill-or-bury-alive";
+          rev = "d21aa7a12f1a76d47249db36eb9825242df9d512";
+          sha256 = "1m790afdrns8afh7f690slq2gcya5bp7630fxwi8fqp5vil7lswg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kill-or-bury-alive";
+          sha256 = "0mm0m8hpy5v98cap4f0s38dcviirm7s6ra4l94mknyvnx0f73lz8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kill-or-bury-alive";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kill-ring-search = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "kill-ring-search";
+        ename = "kill-ring-search";
+        version = "20140422.855";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "kill-ring-search.el";
+          rev = "23535b4a01a1cb1574604e36c49614e84e85c883";
+          sha256 = "0yrc09k64rv5is4wvss938mkj2pkvbr98lr3ahsi7p0aqn7s444v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kill-ring-search";
+          sha256 = "1jggi6r5j2dr9y17v4cyskc0wydfdpqgp1pib5dr2kg6n6w0s5xl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kill-ring-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    killer = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "killer";
+        ename = "killer";
+        version = "20120808.422";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "killer";
+          rev = "7bbb223f875402a7b2abee4baa5a54f10bd97212";
+          sha256 = "05rbh5hkj3jsn9pw0qa4d5a5pi6367vdqkijcn9k14fdfbmyd30x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/killer";
+          sha256 = "10z4vqwrpss7mk0gq8xdsbsl0qibpp7s1g0l8wlmrsgn6kjkr2ma";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/killer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kite = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , json ? null
+                        , lib
+                        , melpaBuild
+                        , websocket }:
+      melpaBuild {
+        pname = "kite";
+        ename = "kite";
+        version = "20130201.1138";
+        src = fetchFromGitHub {
+          owner = "jscheid";
+          repo = "kite";
+          rev = "7ed74d1147a6ddd152d3da65dc30df3517d53144";
+          sha256 = "1cr4i66lws6yhyxmyx5jw6d5x7i75435mafkkych4nfa0mv4vicd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kite";
+          sha256 = "17bpk9ycx2xkwm3j1dxi5216lbzf5lgnscs8i4y0pkpicdn0wyr6";
+          name = "recipe";
+        };
+        packageRequires = [ json websocket ];
+        meta = {
+          homepage = "https://melpa.org/#/kite";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kite-mini = callPackage ({ dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , websocket }:
+      melpaBuild {
+        pname = "kite-mini";
+        ename = "kite-mini";
+        version = "20160508.406";
+        src = fetchFromGitHub {
+          owner = "tungd";
+          repo = "kite-mini.el";
+          rev = "48734092e735033ad7664a9933acd4556e095f79";
+          sha256 = "0ralsdjzj09g6nsa04jvyyzr6cgsi0d7gi1ji77f52m31dl0b8cw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kite-mini";
+          sha256 = "1g644406zm3db0fjyv704aa8dbd20v1apmysb3mmh2vldbch4iyh";
+          name = "recipe";
+        };
+        packageRequires = [ dash websocket ];
+        meta = {
+          homepage = "https://melpa.org/#/kite-mini";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kivy-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "kivy-mode";
+        ename = "kivy-mode";
+        version = "20180702.1329";
+        src = fetchFromGitHub {
+          owner = "kivy";
+          repo = "kivy";
+          rev = "3e57ac0b07385384619a8042dafcab89cc10da57";
+          sha256 = "1pm0660x688rpgns9jpzg1y08pavp65dazm1aznkvpnvdhy2zs93";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kivy-mode";
+          sha256 = "02l230rwivr7rbiqm4vg70458z35f9v9w3mdapcrqd5d07y5mvi1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kivy-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kiwix = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "kiwix";
+        ename = "kiwix";
+        version = "20170927.120";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "kiwix.el";
+          rev = "86dbead6c0017beefd92a0b64a0bb5f5d12c5b16";
+          sha256 = "142mm1wy8zvlkzairnc1rjdi1lsq1asfk4zdbs1aria1nxz1sx6x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kiwix";
+          sha256 = "0x5ld557kxzx5s8ziy5axgvm1fxlq81l9gvinfgs8f257vjlki07";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kiwix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kixtart-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "kixtart-mode";
+        ename = "kixtart-mode";
+        version = "20150611.904";
+        src = fetchFromGitHub {
+          owner = "ryrun";
+          repo = "kixtart-mode";
+          rev = "1c2356797e7b766bbaaa2b341176a8b10499cd79";
+          sha256 = "1ld3ccg8q7hmjrj60rxvmmfy4dpm2lvlshjqdf9ifgjzp221g4vb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kixtart-mode";
+          sha256 = "079bw4lgxbmk65rrfyy8givs8j5wsyhpcjjw915ifkg577gj87qp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kixtart-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    klere-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "klere-theme";
+        ename = "klere-theme";
+        version = "20180415.1123";
+        src = fetchFromGitHub {
+          owner = "WammKD";
+          repo = "emacs-klere-theme";
+          rev = "8e389530dd783dcaab2365e0970181c72d782efb";
+          sha256 = "1217yr4qpax4snzyi64wzcr13qjnmd0dcqw7ch3vniqn48vnla92";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/klere-theme";
+          sha256 = "1lgvk6q2853rpk15i91zf917r8wmrb7bnagp4x02fws49x83hqrs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/klere-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    know-your-http-well = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "know-your-http-well";
+        ename = "know-your-http-well";
+        version = "20160208.1504";
+        src = fetchFromGitHub {
+          owner = "for-GET";
+          repo = "know-your-http-well";
+          rev = "ab8cf84ad8031ff85b983c528ebb7117dc784aad";
+          sha256 = "19qky551arnb7gl7w0yp54kkdls03m9wn9bxnr7hm5nv1bml2y64";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/know-your-http-well";
+          sha256 = "0k2x0ajxkivim8nfpli716y7f4ssrmvwi56r94y34x4j3ib3px3q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/know-your-http-well";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kodi-remote = callPackage ({ elnode
+                               , fetchFromGitHub
+                               , fetchurl
+                               , json ? null
+                               , let-alist
+                               , lib
+                               , melpaBuild
+                               , request }:
+      melpaBuild {
+        pname = "kodi-remote";
+        ename = "kodi-remote";
+        version = "20181118.1809";
+        src = fetchFromGitHub {
+          owner = "spiderbit";
+          repo = "kodi-remote.el";
+          rev = "817a4f10b0eddb0463f1bbcb0a56385e14b9ed29";
+          sha256 = "149bmw3b9bcicd142fsx6j48mv82l14a8s4nhrml6xh8hfdq1fqb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kodi-remote";
+          sha256 = "0f3n7b3plsw28xpz07lf5pv71b6s2xjhq2h23gpyg0r69v99chh5";
+          name = "recipe";
+        };
+        packageRequires = [ elnode json let-alist request ];
+        meta = {
+          homepage = "https://melpa.org/#/kodi-remote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kolon-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "kolon-mode";
+        ename = "kolon-mode";
+        version = "20140122.334";
+        src = fetchFromGitHub {
+          owner = "samvtran";
+          repo = "kolon-mode";
+          rev = "5af0955e280ae991862189ebecd3937c5fc8fb9f";
+          sha256 = "0yr4yxwxgxp5pm9f8gaqlikxp26inv01inq0ya42dzam5yphkafw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kolon-mode";
+          sha256 = "0wcg8ph3mk4zcmzqpvl2w6rfgvrfvhmgwb14y8agh9b7v5d9xwj3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kolon-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kooten-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "kooten-theme";
+        ename = "kooten-theme";
+        version = "20161023.205";
+        src = fetchFromGitHub {
+          owner = "kootenpv";
+          repo = "emacs-kooten-theme";
+          rev = "d10197b4dd7af02cd14aeab2573c273a294798c3";
+          sha256 = "1vc97d3i7jh4fbpan7lfnmsm32c4gwgrg11j2vq7z3rwm42wkkyr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kooten-theme";
+          sha256 = "1zhrjli65pn5nshz8pqn5vbsndzk2h8mhbcldq9k0mc7ki2rrdlv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kooten-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    korean-holidays = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "korean-holidays";
+        ename = "korean-holidays";
+        version = "20170228.2045";
+        src = fetchFromGitHub {
+          owner = "tttuuu888";
+          repo = "korean-holidays";
+          rev = "aed79c24e3f91d8f9508367758b18e5fa3a9eaf4";
+          sha256 = "1kqbxnjmp7hxjcv8zhy9v8v6220l9vd7rgqicjln4yrjz82z4579";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/korean-holidays";
+          sha256 = "1yf0z9vpiwhlsnyb0fy9wf5rz6f2fzzign96zgj0zd5hwmznbmyr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/korean-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kosmos-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "kosmos-theme";
+        ename = "kosmos-theme";
+        version = "20170502.1150";
+        src = fetchFromGitHub {
+          owner = "habamax";
+          repo = "kosmos-theme";
+          rev = "616456d2376a75dc31190ad65137d179fbad4336";
+          sha256 = "193zwgwfnj0lyk0msa16y0dfg7asp953p3jm56d9wdacggbcraj9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kosmos-theme";
+          sha256 = "0vj1z69hz0j7kxnzj13c4vck1qj5j1glr9lymk5ns2v8l56gakwb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kosmos-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kotlin-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "kotlin-mode";
+        ename = "kotlin-mode";
+        version = "20181109.1018";
+        src = fetchFromGitHub {
+          owner = "Emacs-Kotlin-Mode-Maintainers";
+          repo = "kotlin-mode";
+          rev = "666187a086c042e70b65b13ea83b34a493440d95";
+          sha256 = "0dp9hj497wmw5jh880210fawazwssnqg8v78v494hhnnsm8qxnrl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kotlin-mode";
+          sha256 = "08jn8r4nhhlck0f7n5agibwh049rigdiy12lpmijbwk1zmcvsqws";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kotlin-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kpm-list = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "kpm-list";
+        ename = "kpm-list";
+        version = "20170924.652";
+        src = fetchFromGitHub {
+          owner = "KMahoney";
+          repo = "kpm-list";
+          rev = "e0f5112e5ce8ec1b603f4428fa51681c68bb28f5";
+          sha256 = "1achcr3v0d85narnxqpbfxy9qfk537kl83wiq5lyfy3lwqqf7dmp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kpm-list";
+          sha256 = "0022bhy1mzngjmjydyqnmlgnhww05v4dxsfav034r8nyyc7677z0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kpm-list";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kroman = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "kroman";
+        ename = "kroman";
+        version = "20150827.1640";
+        src = fetchFromGitHub {
+          owner = "zhangkaiyulw";
+          repo = "kroman-el";
+          rev = "431144a3cd629a2812a668a29ad85182368dc9b0";
+          sha256 = "0miywc3vfqi3hjb7lk8baz1y2nbp9phjjxclqriyqra4gw4n0vhc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kroman";
+          sha256 = "0rcy3343pmlqzqzhmz2c3r0b44pn8fsyp39mvn9nmdnaxsn6q3k8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kroman";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ksp-cfg-mode = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ksp-cfg-mode";
+        ename = "ksp-cfg-mode";
+        version = "20180608.2247";
+        src = fetchFromGitHub {
+          owner = "lashtear";
+          repo = "ksp-cfg-mode";
+          rev = "fda64705f605fb8fccee53a5040fe4865ca17d44";
+          sha256 = "19brscxk85cky2kzwyyljz6xqrfvyyyg7dqmadlnlrf8kw9wnb2x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ksp-cfg-mode";
+          sha256 = "0azcn4qvziacbw1qy33fwdaldw7xpzr672vzjsqhr0b2vg9m2ipi";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ksp-cfg-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kubernetes = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , magit
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "kubernetes";
+        ename = "kubernetes";
+        version = "20180706.520";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "kubernetes-el";
+          rev = "2b5ce22b12bd8a569cb0a8019a395173e3a13523";
+          sha256 = "19abr8q9mz3g5i0jb5j6p3jll93jrpvzgj14q2l81c4dng0yamdc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kubernetes";
+          sha256 = "06357a8y3rpvid03r9vhmjgq97hmiah5g8gff32dij9424vidil9";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/kubernetes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kubernetes-evil = callPackage ({ evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , kubernetes
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "kubernetes-evil";
+        ename = "kubernetes-evil";
+        version = "20171122.1819";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "kubernetes-el";
+          rev = "d4ce5eb5da1ea0879b7d3266d97aecc8aee2807c";
+          sha256 = "1asjmxw24bvaapjaljj37pv9cbvqqw7577q1mds4lnicvnbdsxzi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kubernetes-evil";
+          sha256 = "12ygfs6g9aivf2ws3lxwjm5xnd2kidhli889icpygd5v7gnk9pg8";
+          name = "recipe";
+        };
+        packageRequires = [ evil kubernetes ];
+        meta = {
+          homepage = "https://melpa.org/#/kubernetes-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kubernetes-tramp = callPackage ({ cl-lib ? null
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "kubernetes-tramp";
+        ename = "kubernetes-tramp";
+        version = "20171026.922";
+        src = fetchFromGitHub {
+          owner = "gruggiero";
+          repo = "kubernetes-tramp";
+          rev = "9fa84df71f6e88bc23a756cdf2df393a35aec945";
+          sha256 = "1l1ibc97ahp3zwwypqfg3201qdxad4sdpdaq7nsfb87gh46vsbz8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kubernetes-tramp";
+          sha256 = "15nlx3w2v0gky0zgbx7n0w1mdr6yaj4dh028ay2k19wg8wbsckjq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kubernetes-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kurecolor = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "kurecolor";
+        ename = "kurecolor";
+        version = "20180401.521";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "kurecolor";
+          rev = "a27153f6a01f38226920772dc4917b73166da5e6";
+          sha256 = "04av67q5841jli6rp39hav3a5gr2vcf3db4qsv553i23ffplb955";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kurecolor";
+          sha256 = "0q0q0dfv376h7j3sgwxqwfpxy1qjbvb6i5clsxz9xp4ly89w4d4f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/kurecolor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kv = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "kv";
+        ename = "kv";
+        version = "20140108.734";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-kv";
+          rev = "721148475bce38a70e0b678ba8aa923652e8900e";
+          sha256 = "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kv";
+          sha256 = "0c10r7mhg517p62lc87ccqypsjrm28xh3bgv4f01fnx569jqgzgp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kwin = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "kwin";
+        ename = "kwin";
+        version = "20150308.1112";
+        src = fetchFromGitHub {
+          owner = "reactormonk";
+          repo = "kwin-minor-mode";
+          rev = "d4f8f3593598b71ee596e0a87b2c1d6a912a9566";
+          sha256 = "0irbfgip493hyh45msnb7climgfwr8f05nvc97bzaqggnay88scy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kwin";
+          sha256 = "1pxnyj81py3ygadmyfrqndb0jkk6xlbf0rg3857hsy3ccblzm7ki";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kwin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lab-themes = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "lab-themes";
+        ename = "lab-themes";
+        version = "20181015.1120";
+        src = fetchFromGitHub {
+          owner = "MetroWind";
+          repo = "lab-theme";
+          rev = "8b717c1bf6c702e0bae2537df9ef2147d0d3a60a";
+          sha256 = "1nr8x3r86bfg6bryl98pl5kwjs6pn42mxddvg3zs3zqa6aj5gszb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lab-themes";
+          sha256 = "10gvrrbqp6rxc9kwk8315pa1ldmja42vwr31xskjaq0l4fd28kx0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lab-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    labburn-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "labburn-theme";
+        ename = "labburn-theme";
+        version = "20170502.207";
+        src = fetchFromGitHub {
+          owner = "ksjogo";
+          repo = "labburn-theme";
+          rev = "e95334acd8a73fbe8e156f70e047014a87e92e66";
+          sha256 = "0ai8gr4an4d44lgin7kdzydn2d0a98jb8mv0n9b93bq160lbmkwj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/labburn-theme";
+          sha256 = "09qqb62hfga88zka0pc27rc8i43cxi84cv1x8wj0vvzx6mvic1lm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/labburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lammps-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "lammps-mode";
+        ename = "lammps-mode";
+        version = "20180801.619";
+        src = fetchFromGitHub {
+          owner = "HaoZeke";
+          repo = "lammps-mode";
+          rev = "a5b68d7a59975770b56ee8f6e66fa4f703a72ffe";
+          sha256 = "1ma33bszv7d6am47n5r74ja4ks7n46m8xfkkr3vcqymlfhbdpq73";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lammps-mode";
+          sha256 = "06i48pxp9vq4z7hffna0cndr6iblapim169659pmhidbc4pp7bm4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lammps-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lang-refactor-perl = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "lang-refactor-perl";
+        ename = "lang-refactor-perl";
+        version = "20131122.1327";
+        src = fetchFromGitHub {
+          owner = "jplindstrom";
+          repo = "emacs-lang-refactor-perl";
+          rev = "691bd69639de6b7af357e3b7143563ececd9c497";
+          sha256 = "135k7inkvdz51j7al3nndaamrkyn989vlv1mxcp8lwx8cgq0rqfj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lang-refactor-perl";
+          sha256 = "02fv25d76rvxqzxs48j4lkrifdhqayyb1in05ryyz2pk9x5hbax9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lang-refactor-perl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    langdoc = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "langdoc";
+        ename = "langdoc";
+        version = "20150217.2245";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "langdoc";
+          rev = "2c7223bacb116992d700ecb19a60df5c09c63424";
+          sha256 = "0svci7xs4iysv8ysf93g382arip0xpgi0fllw8xx2vrd70sz7lff";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/langdoc";
+          sha256 = "19i6ys58wswl5ckf33swl6lsfzg4znx850br4icik15yrry65yj7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/langdoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    langtool = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "langtool";
+        ename = "langtool";
+        version = "20180409.316";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-langtool";
+          rev = "d93286722cff3fecf8641a4a6c3b0691f30362fe";
+          sha256 = "17xa055705n4jb7nafqvqgl0a6fdaxp3b3q8q0gsv5vzycsc74ga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/langtool";
+          sha256 = "1xq70jyhzg0qmvialy015crbdk9rdibhwpl36khab9hi2999wxyw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/langtool";
+          license = lib.licenses.free;
+        };
+      }) {};
+    language-detection = callPackage ({ cl-lib ? null
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "language-detection";
+        ename = "language-detection";
+        version = "20161123.1013";
+        src = fetchFromGitHub {
+          owner = "andreasjansson";
+          repo = "language-detection.el";
+          rev = "38f5d294870678efc6ccf94ce6e8175a58f93025";
+          sha256 = "0jm3ybi353kjffvgy489b5x1yd8vi2vxdmn32z4c42zrnmg5a6lv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/language-detection";
+          sha256 = "1c613dj6j05idqyjd6ix7llw04d0327aicac04cicrb006km3r51";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/language-detection";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lastpass = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , seq }:
+      melpaBuild {
+        pname = "lastpass";
+        ename = "lastpass";
+        version = "20171208.216";
+        src = fetchFromGitHub {
+          owner = "storvik";
+          repo = "emacs-lastpass";
+          rev = "a4529ce70b8187ed9ac4972997df152af58ef2eb";
+          sha256 = "1h4h7swww2is7qblqi5r1vh26a9lfl52c0yq7rgwd1pqclffgc8m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lastpass";
+          sha256 = "0x4c9c110nqv3v6kzcxdg9a9zcg7yn1hj6ffgrbsd8c3wbrdxrlj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/lastpass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    latex-extra = callPackage ({ auctex
+                               , cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "latex-extra";
+        ename = "latex-extra";
+        version = "20170816.1847";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "latex-extra";
+          rev = "82d99b8b0c2db20e5270749582e03bcc2443ffb5";
+          sha256 = "15m7zvdhg5z7d8alrw66p703wdp5r57lxrgq3zz7xc4hscwghlb1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/latex-extra";
+          sha256 = "1w98ngxymafigjpfalybhs12jcf4916wk4nlxflfjcx8ryd9wjcj";
+          name = "recipe";
+        };
+        packageRequires = [ auctex cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/latex-extra";
+          license = lib.licenses.free;
+        };
+      }) {};
+    latex-math-preview = callPackage ({ fetchFromGitLab
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "latex-math-preview";
+        ename = "latex-math-preview";
+        version = "20170522.1455";
+        src = fetchFromGitLab {
+          owner = "latex-math-preview";
+          repo = "latex-math-preview";
+          rev = "775887a89447dd19541b121161cc02e9799d0d3a";
+          sha256 = "1mp6bpl8992pi40vs6b86q922h4z8879mrjalldv5dyz57ym5fsq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/latex-math-preview";
+          sha256 = "14bn0q5czrrkb1vjdkwx6f2x4zwjkxgrc0bcncv23l13qls1gkmr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/latex-math-preview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    latex-pretty-symbols = callPackage ({ fetchhg
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "latex-pretty-symbols";
+        ename = "latex-pretty-symbols";
+        version = "20151112.244";
+        src = fetchhg {
+          url = "https://bitbucket.com/mortiferus/latex-pretty-symbols.el";
+          rev = "ef4ea64c09ea";
+          sha256 = "0h9hncf2ghfkd3i3342ajj1niykhfr0aais3j6sjg1vkm16xbr3b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/latex-pretty-symbols";
+          sha256 = "1f2s2f64bmsx89a3crm4skhdi4pq9w18z9skxw3i3ydaj15s8jgl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/latex-pretty-symbols";
+          license = lib.licenses.free;
+        };
+      }) {};
+    latex-preview-pane = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "latex-preview-pane";
+        ename = "latex-preview-pane";
+        version = "20181008.1122";
+        src = fetchFromGitHub {
+          owner = "jsinglet";
+          repo = "latex-preview-pane";
+          rev = "5297668a89996b50b2b62f99cba01cc544dbed2e";
+          sha256 = "1m4f5p53275k8i9p0y105kkrp9nx1bwn6726my9s5dwnjhr5dnp2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/latex-preview-pane";
+          sha256 = "1id1l473azmc9hm5vq5wba8gad9np7sv38x94qd2zkf8b78pzkbw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/latex-preview-pane";
+          license = lib.licenses.free;
+        };
+      }) {};
+    latex-unicode-math-mode = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "latex-unicode-math-mode";
+        ename = "latex-unicode-math-mode";
+        version = "20170123.1016";
+        src = fetchFromGitHub {
+          owner = "Christoph-D";
+          repo = "latex-unicode-math-mode";
+          rev = "e8931e68214ca94e6a04080ebc629693d5881884";
+          sha256 = "049lpqnyjz0x2dp7rzk9gwbf5s28s33vxxk5lfhax6kaizlxkaq8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/latex-unicode-math-mode";
+          sha256 = "1p9gpp28vylibv1s95bzfgscznw146ybgk6f3qdbbnafrcrmifcr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/latex-unicode-math-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    latexdiff = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "latexdiff";
+        ename = "latexdiff";
+        version = "20180521.1532";
+        src = fetchFromGitHub {
+          owner = "galaunay";
+          repo = "latexdiff.el";
+          rev = "024ee7a4fd235695dacd9f53594fef3d79bee88b";
+          sha256 = "17xpkbrwfck0m6zp5d1b9b4slkgyvm8d92nzilb4s1rf9nqf9mvw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/latexdiff";
+          sha256 = "002frvk31q3plrqa6lldadchck51bch4n126y5l33fyfs0ipspfa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/latexdiff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    launch = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "launch";
+        ename = "launch";
+        version = "20130619.1504";
+        src = fetchFromGitHub {
+          owner = "sfllaw";
+          repo = "emacs-launch";
+          rev = "e7c3b573fc05fe4d3d322389079909311542e799";
+          sha256 = "0ciycsqzyj6ld60c7sfqjq59ln3jvk3w9vy606kqzpcvj01ihmv1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/launch";
+          sha256 = "043gwz583pa1wv84fl634p1v86lcsldsw7qkjbm6y678q5mms0m6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/launch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    launch-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "launch-mode";
+        ename = "launch-mode";
+        version = "20170105.2112";
+        src = fetchFromGitHub {
+          owner = "iory";
+          repo = "launch-mode";
+          rev = "25ebd4ba77afcbe729901eb74923dbe9ae81c313";
+          sha256 = "1pjb4gwzkk6djzyfqqxf6y5xvrsh4bi5ijg60zrdlnhivggnfbvn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/launch-mode";
+          sha256 = "1za0h16z84ls7da17qzqady0simzy5pk1mlw3mb0nhlg2cfmn060";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/launch-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    launchctl = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "launchctl";
+        ename = "launchctl";
+        version = "20150518.609";
+        src = fetchFromGitHub {
+          owner = "pekingduck";
+          repo = "launchctl-el";
+          rev = "79842d30134a2f8838ffb909e87f6200ea148428";
+          sha256 = "18fmgvfhv3kz1bpf9icipsmq9ifahhplv9q1b3rw8bbjcl5jrnb5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/launchctl";
+          sha256 = "07fq445cjpv4ndi7hnjmsrmskm2rlp6ghq0k3bcbjxl21smd9vs9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/launchctl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lavender-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "lavender-theme";
+        ename = "lavender-theme";
+        version = "20170808.613";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-lavender-theme";
+          rev = "ef5e959b95d7fb8152137bc186c4c24e986c1e3c";
+          sha256 = "0pbpns387fmalkakbdl2q7d2y720m7ai7mnydsinjwlkdrshvj4g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lavender-theme";
+          sha256 = "1x7mk3dpk44fkzll6xmh2dw270cgb3a9qs3h8bmiq2dw0wrcwcd1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lavender-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lcb-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lcb-mode";
+        ename = "lcb-mode";
+        version = "20160815.2240";
+        src = fetchFromGitHub {
+          owner = "peter-b";
+          repo = "lcb-mode";
+          rev = "e5b0b6ca6c5feeb2502d66a760ddf5bb590d04c4";
+          sha256 = "0i58qz4l5rzwp9kx4r9f818ly21ys71zh1zjxppp220p3yydljfq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lcb-mode";
+          sha256 = "184vd5ll0ms2lspzv8zz2zbairsr8i9p3gs28hrnnwm6mrpx4n18";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lcb-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lcr = callPackage ({ dash
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "lcr";
+        ename = "lcr";
+        version = "20180902.1219";
+        src = fetchFromGitHub {
+          owner = "jyp";
+          repo = "lcr";
+          rev = "c14f40692292d59156c7632dbdd2867c086aa75f";
+          sha256 = "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lcr";
+          sha256 = "07syirjlrw8g95zk273953mnmg9x4bv8jpyvvzghhin4saiiiw3k";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lcr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lean-mode = callPackage ({ dash
+                             , dash-functional
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , flycheck
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "lean-mode";
+        ename = "lean-mode";
+        version = "20180906.945";
+        src = fetchFromGitHub {
+          owner = "leanprover";
+          repo = "lean-mode";
+          rev = "a9912c73387aa69183e12e4a5335128a7965c420";
+          sha256 = "1w0cmircqnbi0qyi6sl3nnshjy2fdgaav88lj30g3qmnyiac1dnz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lean-mode";
+          sha256 = "0rdraxsirkrzbinjwg4qam15iy3qiixqgwsckngzw8d9a4s9l6sj";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs f flycheck s ];
+        meta = {
+          homepage = "https://melpa.org/#/lean-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    leanote = callPackage ({ async
+                           , cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , let-alist
+                           , lib
+                           , melpaBuild
+                           , pcache
+                           , request
+                           , s }:
+      melpaBuild {
+        pname = "leanote";
+        ename = "leanote";
+        version = "20161222.1739";
+        src = fetchFromGitHub {
+          owner = "aborn";
+          repo = "leanote-emacs";
+          rev = "d499e7b59bb1f1a2fabc0e4c26fb101ed62ebc7b";
+          sha256 = "1lg4zml26q97bx9jrmjikhnm3d74b12q2li5h8gpxx9m35wc360c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/leanote";
+          sha256 = "1xnfv7bpkw3ir402962zbp856d56nas098nkf7bamnsnax6kkqw7";
+          name = "recipe";
+        };
+        packageRequires = [ async cl-lib emacs let-alist pcache request s ];
+        meta = {
+          homepage = "https://melpa.org/#/leanote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ledger-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ledger-mode";
+        ename = "ledger-mode";
+        version = "20181107.1142";
+        src = fetchFromGitHub {
+          owner = "ledger";
+          repo = "ledger-mode";
+          rev = "1f5c68fb59d81d2fffe49436ee99a8c291a4fe41";
+          sha256 = "1zl4hf97qlyh471ly8jsj5s7iar5vpfi8m27ija9wl88v4qq1msq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ledger-mode";
+          sha256 = "10asbcb5syv3b75bngsab3c84dp2xmc0q7s29im6kf4mzv5zcfcf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ledger-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    leerzeichen = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "leerzeichen";
+        ename = "leerzeichen";
+        version = "20170422.613";
+        src = fetchFromGitHub {
+          owner = "fgeller";
+          repo = "leerzeichen.el";
+          rev = "5acf9855ecb2b2cd5da4402bb48df149e7525cc5";
+          sha256 = "1bx4pv51a9x8f51pjrms8jkfrpa3glwkh308svz05gnyi2g0r8hw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/leerzeichen";
+          sha256 = "0h7zpskcgkswr110vckfdbxggz5b3g9grk1j1cbd98pmrpgfqrvp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/leerzeichen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    legalese = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "legalese";
+        ename = "legalese";
+        version = "20150820.1024";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "legalese";
+          rev = "ec23e69d18329456beed9546a1d6c72f96db91cf";
+          sha256 = "05zpc8b2pyjz76fvmgr7zkl56g6nf6hi4nmxdg6gkw8fx6p8i19f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/legalese";
+          sha256 = "18rkvfknaqwkmhsjpgrf2hknrb2zj61aw8rb4907gsbs9rciqpdd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/legalese";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lemon-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "lemon-mode";
+        ename = "lemon-mode";
+        version = "20130216.504";
+        src = fetchFromGitHub {
+          owner = "mooz";
+          repo = "lemon-mode";
+          rev = "155bfced6c9afc8072a0133d3d1baa54c6d67430";
+          sha256 = "0n6jrm5ilm5wzfrh7yjxn3sr5m10hwdm55b179ild32lh4795zj7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lemon-mode";
+          sha256 = "0jdf3556kmv55jh85ljqh2gdx0jl2b8zgvpz9a4kf53xifk3lqz5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lemon-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lenlen-theme = callPackage ({ color-theme-solarized
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "lenlen-theme";
+        ename = "lenlen-theme";
+        version = "20170328.1945";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "lenlen-theme";
+          rev = "3af764f0b381bdbf04b1a9064695abbe7916bbc3";
+          sha256 = "1zlgb3s7gdh0ypsjw4ck7ai6hqf54cakd1walj8qqhia23g76mxq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lenlen-theme";
+          sha256 = "1bddkcl9kzj3v071qpzmxzjwywqfj5j6cldz240qgp5mx685r0a9";
+          name = "recipe";
+        };
+        packageRequires = [ color-theme-solarized ];
+        meta = {
+          homepage = "https://melpa.org/#/lenlen-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lentic = callPackage ({ dash
+                          , emacs
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , m-buffer
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "lentic";
+        ename = "lentic";
+        version = "20161202.1352";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "lentic";
+          rev = "c744f3d3be20ce2a9f25890db2b4500438dfa547";
+          sha256 = "1rvjmn70ncrsv6rzxhjiplibf0ypkg0qlg21ra53bhvy6vlizdsi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lentic";
+          sha256 = "0y94y1qwj23kqp491b1fzqsrjak96k1dmmzmakbl7q8vc9bncl5m";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f m-buffer s ];
+        meta = {
+          homepage = "https://melpa.org/#/lentic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lentic-server = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lentic
+                                 , lib
+                                 , melpaBuild
+                                 , web-server }:
+      melpaBuild {
+        pname = "lentic-server";
+        ename = "lentic-server";
+        version = "20160717.1352";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "lentic-server";
+          rev = "8e809fafbb27a98f815b544d9d9ee15843eb6a36";
+          sha256 = "1wc1c6hqhbb5x4fi7lp30bsrfww9g12c41lphswy92qzlij4zbww";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lentic-server";
+          sha256 = "1y9idhf9qcsw3dbdj7rwa7bdrn1q0m3bg3r2jzwdnvkq8aas1w56";
+          name = "recipe";
+        };
+        packageRequires = [ lentic web-server ];
+        meta = {
+          homepage = "https://melpa.org/#/lentic-server";
+          license = lib.licenses.free;
+        };
+      }) {};
+    less-css-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "less-css-mode";
+        ename = "less-css-mode";
+        version = "20160930.2153";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "less-css-mode";
+          rev = "59bf174c4e9f053ec2a7ef8c8a8198490390f6fb";
+          sha256 = "1rkjamdy2a80w439vb2hhr7vqjj47wi2azlr7yq2xdz9851xsx9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/less-css-mode";
+          sha256 = "188iplnwwhawq3dby3388kimy0jh1k9r8v9nxz52hy9rhh9hykf8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/less-css-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    letcheck = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "letcheck";
+        ename = "letcheck";
+        version = "20160202.1148";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "letcheck";
+          rev = "edf188ca2f85349e971b83f164c6484264e79426";
+          sha256 = "06hggcbz98qhfbvp0fxn89j98d0mmki4wc4k8kfzp5fhg071chbi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/letcheck";
+          sha256 = "1sjwi1ldg6b1qvj9cvfwxq3qlkfas6pm8zasf43baljmnz38mxh2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/letcheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    letterbox-mode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "letterbox-mode";
+        ename = "letterbox-mode";
+        version = "20170701.1825";
+        src = fetchFromGitHub {
+          owner = "pacha64";
+          repo = "letterbox-mode";
+          rev = "88c67a51d67216d569a28e8423200883fde096dd";
+          sha256 = "1xzzfr525pn2mj7x6xnvccxhls79bfpi5mqhl9ivisnlgj1bvdjw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/letterbox-mode";
+          sha256 = "117dj5xzf6givwjyqsciz6axhlcj7xbx0zj91ximm81kb5fswgda";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/letterbox-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    leuven-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "leuven-theme";
+        ename = "leuven-theme";
+        version = "20181113.1124";
+        src = fetchFromGitHub {
+          owner = "fniessen";
+          repo = "emacs-leuven-theme";
+          rev = "945148b8903448815a39d18e72e6932385f8fd32";
+          sha256 = "0z1ar3rk6wj5qabsaspyw15a2657rh9gnsi9f9w3mhy6m8ajdsxi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/leuven-theme";
+          sha256 = "0pm5majr9cmj6g4zr7vb55ypk9fmfbvxx78mgmgignknbasq9g9a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/leuven-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    levenshtein = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "levenshtein";
+        ename = "levenshtein";
+        version = "20090830.340";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "levenshtein";
+          rev = "070925197ebf6b704e6e00c4f2d2ec783f3df38c";
+          sha256 = "1w6rhp723kn1ns7r0gcblp5q8bvncicnjjsgdangbib1a4l2xw79";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/levenshtein";
+          sha256 = "1vdbgzs7gfy89a1dzf6z5l3f5jmly1i8lb2fqi2d08qyl5rhb8bl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/levenshtein";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lexbind-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "lexbind-mode";
+        ename = "lexbind-mode";
+        version = "20141027.729";
+        src = fetchFromGitHub {
+          owner = "spacebat";
+          repo = "lexbind-mode";
+          rev = "fa0a6848c1cfd3fbf45db43dc2deef16377d887d";
+          sha256 = "167ayfl1k8dnajw173hh67nbwbk4frmjc4fzc515q67m9d7m5932";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lexbind-mode";
+          sha256 = "1hs9wg45mwp3fwi827rc4g0gjx4fk87zlibq3id9fcqic8q7nrnl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lexbind-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lfe-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lfe-mode";
+        ename = "lfe-mode";
+        version = "20170121.454";
+        src = fetchFromGitHub {
+          owner = "rvirding";
+          repo = "lfe";
+          rev = "70579b69e44147f1b74f619dd9dbaed572d8f9d6";
+          sha256 = "1p9a3d1jqm0kqn074f3fh1v4xp1f1jzwihv395bk6yxlhagk9anb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lfe-mode";
+          sha256 = "0smncyby53ipm8yqslz88sqjafk0x6r8d0qwk4wzk0pbgfyklhgs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lfe-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    libelcouch = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , request }:
+      melpaBuild {
+        pname = "libelcouch";
+        ename = "libelcouch";
+        version = "20180604.53";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "libelcouch";
+          rev = "1396144ebbb9790d4c744db0d4aacc0211b8e8e6";
+          sha256 = "1r0wrqiqar3jw5xbp1qv7kj7m1fdzciyy9690hwiq99dcm8nlri3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/libelcouch";
+          sha256 = "1zfjyfyjd59z0ns32v2b0r5g9ypjxrlmkx3djmxsmzd4an8ciq3p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/libelcouch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    libgit = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "libgit";
+        ename = "libgit";
+        version = "20181119.956";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "libegit2";
+          rev = "278410c24871ffe46afc53358a4128dd3211045c";
+          sha256 = "01wqd43bscrw5jk5sa7aqk2yxlsffqlrjx59ncmljb6rjzx1hgm0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/libgit";
+          sha256 = "05yys8cjli2zhmhdh9w5qz287ibzplqabx5vyyjv9rpk6wgzkzik";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/libgit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    libmpdee = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "libmpdee";
+        ename = "libmpdee";
+        version = "20160117.1501";
+        src = fetchFromGitHub {
+          owner = "andyetitmoves";
+          repo = "libmpdee";
+          rev = "a6ca3b7d6687f3ba60996b9b5044ad1d3b228290";
+          sha256 = "039awlam3nrgkxrarcapfyc2myvc77aw7whrkcsjjybzylpzv0pr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/libmpdee";
+          sha256 = "0z4d8y8jlsjw20b31akkaikh5xl0c05lj77d2i1xbgzam4iixma0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/libmpdee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    libmpdel = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "libmpdel";
+        ename = "libmpdel";
+        version = "20181015.2353";
+        src = fetchFromGitHub {
+          owner = "mpdel";
+          repo = "libmpdel";
+          rev = "76711d7c32fe617647098f01d4fee9b3c1eaab46";
+          sha256 = "0n3fm7dxwf53lb60mwaf6z5vmmzax3q15a4lrk1ra4w4snlr0x39";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/libmpdel";
+          sha256 = "0qi9g3czwzi9hhp7gjczpzjx9vgzz52xi91332l0sxcxmwbawjp1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/libmpdel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lice = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "lice";
+        ename = "lice";
+        version = "20170220.143";
+        src = fetchFromGitHub {
+          owner = "buzztaiki";
+          repo = "lice-el";
+          rev = "4339929927c62bd636f89bb39ea999d18d269250";
+          sha256 = "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lice";
+          sha256 = "1hv2hz3153x0gk7f2js18dbx5pyprfdf2pfxb658fj16vxpp7y6x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lice";
+          license = lib.licenses.free;
+        };
+      }) {};
+    light-soap-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "light-soap-theme";
+        ename = "light-soap-theme";
+        version = "20150607.745";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "light-soap-theme";
+          rev = "76a787bd40c6b567ae68ced7f5d9f9f10725e00d";
+          sha256 = "04dik8z2mg6qr4d3fkd26kg29b4c5crvbnc1lfsrzyrik7ipvsi8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/light-soap-theme";
+          sha256 = "09p4w51d5szhi81a6a3l0r4zd4ixkrkzxldr938bcmj0qmj62iyk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/light-soap-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    line-reminder = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "line-reminder";
+        ename = "line-reminder";
+        version = "20180602.2252";
+        src = fetchFromGitHub {
+          owner = "jcs090218";
+          repo = "line-reminder";
+          rev = "0db41599b7663c4c8257aaf733323e84e95ef042";
+          sha256 = "09pzynms4m4m54fk2ci1wizkgrqkgh4mqyrj9wzpwpkdik7zvr7b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/line-reminder";
+          sha256 = "0kvqilg5fnr3qb7nwjf4j5ydm1lp4m06ss81i0bq2c6bv74zfcf1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/line-reminder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    line-up-words = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "line-up-words";
+        ename = "line-up-words";
+        version = "20180219.224";
+        src = fetchFromGitHub {
+          owner = "janestreet";
+          repo = "line-up-words";
+          rev = "2c236f5772e18d0e50d7ca2eee7eebbe356d9b60";
+          sha256 = "0sazx4a6hn0z7318mdc80z87n5ix4hhyyh4p4f37pv5p9q6y8sd2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/line-up-words";
+          sha256 = "0agsrrkwwfmbiy4z3g4hkrpfr3nqgd5lwfn18qrdxynijd5rqs79";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/line-up-words";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lines-at-once = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "lines-at-once";
+        ename = "lines-at-once";
+        version = "20180421.1947";
+        src = fetchFromGitHub {
+          owner = "jiahaowork";
+          repo = "lines-at-once.el";
+          rev = "a018ba90549384d52ec58c2685fd14a0f65252be";
+          sha256 = "0bwc4d2gnfhaqzn455nzrvd9lys7z7ay2v1hxgwp99ndqq93ws6i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lines-at-once";
+          sha256 = "1hiij6i47i9px82ll87dvx5pgp5jzz8qis7hdm8n6hd3c9rnabma";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lines-at-once";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lingr = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "lingr";
+        ename = "lingr";
+        version = "20100807.1031";
+        src = fetchFromGitHub {
+          owner = "lugecy";
+          repo = "lingr-el";
+          rev = "4215a8704492d3c860097cbe2649936c22c196df";
+          sha256 = "0rkx0hk3y79rwhjqs3wvgxhg1rj83mxbqkhhm3jfawp8c1av4f40";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lingr";
+          sha256 = "1445bxiirsxl9kgm0j86xc9d0pbaa5f07c1i66pw2vl40bvhrjff";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lingr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    linguistic = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "linguistic";
+        ename = "linguistic";
+        version = "20181019.842";
+        src = fetchFromGitHub {
+          owner = "andcarnivorous";
+          repo = "linguistic";
+          rev = "04ceb873ba41cd7cb4dc09e537a6dbb80cd12d65";
+          sha256 = "100agvh1202n27myhhc9wgb6bpdyqk6g1ry7hpqga92dwi1ck5ps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/linguistic";
+          sha256 = "0yhyrr7yknvky6fb6js0lfxbl13i6a218kya7cpj2dpzdckcbhca";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/linguistic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    link = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "link";
+        ename = "link";
+        version = "20140717.2029";
+        src = fetchFromGitHub {
+          owner = "myrkr";
+          repo = "dictionary-el";
+          rev = "a5619fb275520d699eaae214e41ebcfde23c17f3";
+          sha256 = "176w46j3m343vlkjn9jyaaz3ikzdzxffrvhalgc76ydw9wyivbf8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/link";
+          sha256 = "17jpsg3f2954b740vyj37ikygrg5gmp0bjhbid8bh8vbz7xx9zy8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    link-hint = callPackage ({ avy
+                             , cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "link-hint";
+        ename = "link-hint";
+        version = "20180519.1430";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "link-hint.el";
+          rev = "23df5fa36ab182452be6b772475eab67b846dd92";
+          sha256 = "0b7i2jasc5bsphix9fhvmi3ddj42f5n5liczrrfv4p9k14px3b10";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/link-hint";
+          sha256 = "12fb2zm9jnh92fc2nzmzmwjlhi64rhakwbh9lsydx9svsvkgcs89";
+          name = "recipe";
+        };
+        packageRequires = [ avy cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/link-hint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    linphone = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "linphone";
+        ename = "linphone";
+        version = "20130524.409";
+        src = fetchFromGitHub {
+          owner = "zabbal";
+          repo = "emacs-linphone";
+          rev = "99af3db941b7f4e5272bb48bff96c1ce4ceac302";
+          sha256 = "01yv6239z90hvncwmm9g5nh4xvyxv2ig3h4hsmxdn4kacfxvc84n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/linphone";
+          sha256 = "0q7mw1npxq24szhwswc93qz5h6magcxw63ymba7hwhif6my65zx7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/linphone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    linum-off = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "linum-off";
+        ename = "linum-off";
+        version = "20160217.1337";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "linum-off";
+          rev = "3e37baaad27d27e405f8dfe01d4ab9cd5b591353";
+          sha256 = "1hyy6d9ybdv9r6bibiylw66a8w4dmlvsj5gfkp37vsp5xj66f2iz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/linum-off";
+          sha256 = "1yilsdsyxlzmh64dpzirzga9c7lhp1phps9cdgp2898zpnzaclay";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/linum-off";
+          license = lib.licenses.free;
+        };
+      }) {};
+    linum-relative = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "linum-relative";
+        ename = "linum-relative";
+        version = "20180124.247";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "linum-relative";
+          rev = "c74a6981b688a5e1e6b8e0809363963ff558ce4d";
+          sha256 = "0svxi1l3s4rg1k1apfw25gzi127rsks56b5yfg79a48b5rf1xmkh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/linum-relative";
+          sha256 = "0s1lc3lppazv0481dxknm6qrxhvkv0r9hw8xmdrpjc282l91whkj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/linum-relative";
+          license = lib.licenses.free;
+        };
+      }) {};
+    liquid-types = callPackage ({ button-lock
+                                , dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , flycheck-liquidhs
+                                , lib
+                                , melpaBuild
+                                , popup
+                                , pos-tip }:
+      melpaBuild {
+        pname = "liquid-types";
+        ename = "liquid-types";
+        version = "20151201.2335";
+        src = fetchFromGitHub {
+          owner = "ucsd-progsys";
+          repo = "liquid-types.el";
+          rev = "cc4bacbbf204ef9cf0756f78dfebee2c6ae14d7b";
+          sha256 = "06rnma2xj2vnbvy1bnls59cagk6qsf862bj1zp6xbmpr1a5l9m4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/liquid-types";
+          sha256 = "1g7zyak69l4lcsq952j2jy692xxnill9nqb1xfa17yzp547cgvf2";
+          name = "recipe";
+        };
+        packageRequires = [
+          button-lock
+          dash
+          emacs
+          flycheck
+          flycheck-liquidhs
+          popup
+          pos-tip
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/liquid-types";
+          license = lib.licenses.free;
+        };
+      }) {};
+    liso-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "liso-theme";
+        ename = "liso-theme";
+        version = "20160410.1329";
+        src = fetchFromGitHub {
+          owner = "caisah";
+          repo = "liso-theme";
+          rev = "844688245eb860d23043455e165ee24503454c81";
+          sha256 = "01ycjy3amzbplp3zf0x5fahsja92gyg2252xhzcyiazmhaz7gkrd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/liso-theme";
+          sha256 = "014a71dnhnr0dr36sl2h8ffp6il9nasij31ahqz0bjgn4r16s5gy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/liso-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lisp-extra-font-lock = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "lisp-extra-font-lock";
+        ename = "lisp-extra-font-lock";
+        version = "20181008.1221";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "lisp-extra-font-lock";
+          rev = "4605eccbe1a7fcbd3cacf5b71249435413b4db4f";
+          sha256 = "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lisp-extra-font-lock";
+          sha256 = "1xchqwhav9x7b02787ghka567fihdc14aamx92jg549c6d14qpwk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lisp-extra-font-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lispxmp = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "lispxmp";
+        ename = "lispxmp";
+        version = "20170925.1723";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "lispxmp";
+          rev = "7ad077b4ee91ce8a42f84eeddb9fc7ea4eac7814";
+          sha256 = "1156jynii783v9sjj3a7s20ysa26mqaq22zk5nbia949hwbibx16";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lispxmp";
+          sha256 = "1a641v5cx4wy2v8a2swxzn1y9cz4g2bp4mn9q290n3ifpn5356dl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lispxmp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lispy = callPackage ({ ace-window
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , hydra
+                         , iedit
+                         , lib
+                         , melpaBuild
+                         , swiper
+                         , zoutline }:
+      melpaBuild {
+        pname = "lispy";
+        ename = "lispy";
+        version = "20181114.1249";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "lispy";
+          rev = "4a9247144b77c904b45c21e94c4dbca91ef56c95";
+          sha256 = "0hf59sg3n4625q9l3sifq595kja2sj2pik6lvvnwsc9bnkdhdlc9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lispy";
+          sha256 = "12qk2gpwzz7chfz7x3wds39r4iiipvcw2rjqncir46b6zzlb1q0g";
+          name = "recipe";
+        };
+        packageRequires = [ ace-window emacs hydra iedit swiper zoutline ];
+        meta = {
+          homepage = "https://melpa.org/#/lispy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lispyscript-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "lispyscript-mode";
+        ename = "lispyscript-mode";
+        version = "20170720.1217";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "lispyscript-mode";
+          rev = "def632e3335b0c481fbcf5a17f18b0a8c58dd12f";
+          sha256 = "042nndsrv7kyq20v3lahrpr0x89xyayvhx59i0hx6pvkc9wgk5b6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lispyscript-mode";
+          sha256 = "02biai45l5xl2m9l1drphrlj6r01msmadhyg774ijdk1x4gm5nhr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lispyscript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lispyville = callPackage ({ cl-lib ? null
+                              , emacs
+                              , evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , lispy
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "lispyville";
+        ename = "lispyville";
+        version = "20181111.342";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "lispyville";
+          rev = "c944dd0a59e3345b45e74025bd08551f7fd1770b";
+          sha256 = "07r266wyk7w8lmyrm9v1c3ljpa9a7kw80hhamyvnv76bx5si6psb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lispyville";
+          sha256 = "1pj41pd51x399gmy0j3qn9hr3ayw31pcg0h9pzbviqpnwmv2in6b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil lispy ];
+        meta = {
+          homepage = "https://melpa.org/#/lispyville";
+          license = lib.licenses.free;
+        };
+      }) {};
+    list-environment = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "list-environment";
+        ename = "list-environment";
+        version = "20151226.1856";
+        src = fetchFromGitHub {
+          owner = "dgtized";
+          repo = "list-environment.el";
+          rev = "b7ca30b05905047be2e55199a6475f8d98ce318b";
+          sha256 = "1szbs16jlxfj71986dbg0d3j5raaxcwz0xq5ar352731r5mdcqw4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/list-environment";
+          sha256 = "1zdhrlp8vk8knjwh56pws6dyn003r6avjzvhghlkgnw9nfrdk57h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/list-environment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    list-packages-ext = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , ht
+                                     , lib
+                                     , melpaBuild
+                                     , persistent-soft
+                                     , s }:
+      melpaBuild {
+        pname = "list-packages-ext";
+        ename = "list-packages-ext";
+        version = "20151115.916";
+        src = fetchFromGitHub {
+          owner = "laynor";
+          repo = "list-packages-ext";
+          rev = "b4dd644e4369c9aa66f5bb8895ea49ebbfd0a27a";
+          sha256 = "02l7q5376ydz6a8i9x74bsx5bbxz8xkasmv1lzvf79d3jbg28l1s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/list-packages-ext";
+          sha256 = "15m4888fm5xv697y7jspghg1ra49fyrny4y2x7h8ivcbslvpglvk";
+          name = "recipe";
+        };
+        packageRequires = [ ht persistent-soft s ];
+        meta = {
+          homepage = "https://melpa.org/#/list-packages-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    list-unicode-display = callPackage ({ cl-lib ? null
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "list-unicode-display";
+        ename = "list-unicode-display";
+        version = "20150219.101";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "list-unicode-display";
+          rev = "59770cf3572bd36c3e9ba044846dc420c0dca09b";
+          sha256 = "05nn4db8s8h4mn3fxhwsa111ayvlq1raf6bifh7jciyw7a2c3aww";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/list-unicode-display";
+          sha256 = "01x9i5k5vhjscmkx0l6r27w1cdp9n6xk1pdjf98z3y88dnsmyfha";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/list-unicode-display";
+          license = lib.licenses.free;
+        };
+      }) {};
+    list-utils = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "list-utils";
+        ename = "list-utils";
+        version = "20160414.702";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "list-utils";
+          rev = "acf18aca1131a90f8d673974673e3c5d8fdc6a86";
+          sha256 = "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/list-utils";
+          sha256 = "0bknprr4jb1d20i9lj2aa17vpg1kqwdyzzwmy1kfydnkpf5scnr3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/list-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lit-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lit-mode";
+        ename = "lit-mode";
+        version = "20141123.936";
+        src = fetchFromGitHub {
+          owner = "HectorAE";
+          repo = "lit-mode";
+          rev = "bfecbe898223393f34340ca379977be753ee497a";
+          sha256 = "1sjyb5v3s9z128ifjqx7a1dsgds2iz185y82581qxakl7ylmn15k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lit-mode";
+          sha256 = "05rf7ki060nqnvircn0dkpdrg7xbh7phb8bqgsab89ycc7l9vv59";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lit-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    litable = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "litable";
+        ename = "litable";
+        version = "20160922.859";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "litable";
+          rev = "4a57d7aeddca76448e4df2a46b42d49253e5e625";
+          sha256 = "1zryrc0d2avb27w6a6yzqcc73rsr2rp795vi10qhb04ixda4a8w4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/litable";
+          sha256 = "073yw3ivkl093xxppn5vqyh69jhfc97al505mnyn34fwdj5v8fji";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/litable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    litecoin-ticker = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , json ? null
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "litecoin-ticker";
+        ename = "litecoin-ticker";
+        version = "20160611.1711";
+        src = fetchFromGitHub {
+          owner = "llcc";
+          repo = "btcbox-ticker";
+          rev = "3d8047c736e4ee0b8638953f8cc63eaefad34106";
+          sha256 = "03iggfi3r5xjh9yhhpr1pgyayriycyybf8qnrhqkqcamh77kq21f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/litecoin-ticker";
+          sha256 = "14pjizgdckqhm31ihbz35j8g95jdpmf1rd4l5zz38fyx12zbcpx5";
+          name = "recipe";
+        };
+        packageRequires = [ json ];
+        meta = {
+          homepage = "https://melpa.org/#/litecoin-ticker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    literal-string = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , markdown-mode
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "literal-string";
+        ename = "literal-string";
+        version = "20170301.730";
+        src = fetchFromGitHub {
+          owner = "joodie";
+          repo = "literal-string-mode";
+          rev = "2ca4fc08b8e19e6183b1f1db747bb0a4aa4f98eb";
+          sha256 = "0wcz0lid05gnlmxpxm4ckw07cnxwjkyw6960nq7pylbjpg76g5ng";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/literal-string";
+          sha256 = "0ylv9dpw17w272f92vn5cldklyz1d8daihi1fsh5ylvxqpinyrkn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/literal-string";
+          license = lib.licenses.free;
+        };
+      }) {};
+    literate-coffee-mode = callPackage ({ coffee-mode
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "literate-coffee-mode";
+        ename = "literate-coffee-mode";
+        version = "20170211.715";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-literate-coffee-mode";
+          rev = "ef34c3a5b813ef078d44c29887761950ab6821c7";
+          sha256 = "1bkpwl4fpyrxs941pp68pfk30ffi9v09h5dsamaqmlm43vchcspi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/literate-coffee-mode";
+          sha256 = "18fdgay7xfgza75z3xma666f414m9dn7d50w94wzzmv7ja74sp64";
+          name = "recipe";
+        };
+        packageRequires = [ coffee-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/literate-coffee-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    literate-starter-kit = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "literate-starter-kit";
+        ename = "literate-starter-kit";
+        version = "20150730.1154";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "emacs24-starter-kit";
+          rev = "6dce1d01781966c14558aa553cfc85008c06e115";
+          sha256 = "1v37bii372w2g3pl09n5dcrk6y7glhpg8qiv17zsk9jy3ps2xm1b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/literate-starter-kit";
+          sha256 = "1n2njf007fmrmsb8zrgxbz1cpxmr5nsp8w41yxa934iqc7qygkjy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/literate-starter-kit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    live-code-talks = callPackage ({ cl-lib ? null
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , narrowed-page-navigation }:
+      melpaBuild {
+        pname = "live-code-talks";
+        ename = "live-code-talks";
+        version = "20180907.947";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "live-code-talks";
+          rev = "97f16a9ee4e6ff3e0f9291eaead772c66e3e12ae";
+          sha256 = "1clcm1yps38wdyj415hh7bl20fcpfin92hh5njsldqbvgcpndaqi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/live-code-talks";
+          sha256 = "1ji4lww71dqxnn5c9inix8xqcmgc76wbps0ylxhhgs44ki4hlyrm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs narrowed-page-navigation ];
+        meta = {
+          homepage = "https://melpa.org/#/live-code-talks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    live-py-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "live-py-mode";
+        ename = "live-py-mode";
+        version = "20181115.2136";
+        src = fetchFromGitHub {
+          owner = "donkirkby";
+          repo = "live-py-plugin";
+          rev = "e823a86707a5821ad761fd27a9c9e90ac47d2319";
+          sha256 = "0bjynvwmkclq1km49ighrv6fmn5gswm8ll4ngaxk2lhx1hyra5pz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/live-py-mode";
+          sha256 = "0yn1a0gf9yn068xifpv8p77d917mnalc56pll800zlpsdk8ljicq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/live-py-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lively = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "lively";
+        ename = "lively";
+        version = "20171005.54";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "lively";
+          rev = "348675828c6a81bfa1ac311ca465aad813542c1b";
+          sha256 = "1j8w63hhk1wcxcfqz0wimqijp7p1m8a2n947gwqv8nk1wm40aqg3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lively";
+          sha256 = "1q8cbl3sr3dpvzk57985giy4xmz4lvg94jcw7shbhz1v9q05dr5g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lively";
+          license = lib.licenses.free;
+        };
+      }) {};
+    livereload = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , websocket }:
+      melpaBuild {
+        pname = "livereload";
+        ename = "livereload";
+        version = "20170628.2350";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "emacs-livereload";
+          rev = "1e501d7e46dbd476c2c7cc9d20b5ac9d41fb1955";
+          sha256 = "1z1v2panxrqpam5ysnilx83y6b4dwxmxqhmbgjwfyd1bdmr4iya4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/livereload";
+          sha256 = "1z0dbg82l6znz1b03v19a8fnq6b1smikpvaplpxlgny82xrs9als";
+          name = "recipe";
+        };
+        packageRequires = [ emacs websocket ];
+        meta = {
+          homepage = "https://melpa.org/#/livereload";
+          license = lib.licenses.free;
+        };
+      }) {};
+    livescript-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "livescript-mode";
+        ename = "livescript-mode";
+        version = "20140612.2121";
+        src = fetchFromGitHub {
+          owner = "yhisamatsu";
+          repo = "livescript-mode";
+          rev = "90a918d9686e256e6d4d439cc20f24dad8d3b804";
+          sha256 = "0kqjz0i0zapyhh8z57cvc8ifiizngix3ca01mjnvyq3zxg1bqrsg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/livescript-mode";
+          sha256 = "1fdfhp39zr2mhy5rd6mwqv5fwd8xaypdqig7v3ksv77m5zq7cmmj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/livescript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    livid-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s
+                              , skewer-mode }:
+      melpaBuild {
+        pname = "livid-mode";
+        ename = "livid-mode";
+        version = "20131116.544";
+        src = fetchFromGitHub {
+          owner = "pandeiro";
+          repo = "livid-mode";
+          rev = "dfe5212fa64738bc4138bfebf349fbc8bc237c26";
+          sha256 = "178ldzpk8a9m9abn8xlplxn5jgcca71dpkp82bs5g7bsccp3rx6p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/livid-mode";
+          sha256 = "0jy16m6injqznx4gmxzvhys480pclw9g07z4qll2dna37177ww9d";
+          name = "recipe";
+        };
+        packageRequires = [ s skewer-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/livid-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lms = callPackage ({ emacs
+                       , fetchhg
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "lms";
+        ename = "lms";
+        version = "20170804.922";
+        src = fetchhg {
+          url = "https://bitbucket.com/inigoserna/lms.el";
+          rev = "f07ac3678e27";
+          sha256 = "15l3nfrddblfzqxgvf0dmmsk4h5l80l6r2kgxcfk8s01msjka3sl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lms";
+          sha256 = "1ckrh6qbh5y2y3yzl2iyq8nqlpy4qp6vzc72ijcgayvcflb01vr1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    load-env-vars = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "load-env-vars";
+        ename = "load-env-vars";
+        version = "20180511.1510";
+        src = fetchFromGitHub {
+          owner = "diasjorge";
+          repo = "emacs-load-env-vars";
+          rev = "5da97fabb4d36a00a29c40375fce9c16d8005ab3";
+          sha256 = "16xvcb0pq0a6c331grcdak7h8xmns752cz1dbvssm44xfv2cqjqi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/load-env-vars";
+          sha256 = "0yc05qqhbva2zn2rrl4spp38jxblk4gh64q9fd7mgl7i50f2kk00";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/load-env-vars";
+          license = lib.licenses.free;
+        };
+      }) {};
+    load-relative = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "load-relative";
+        ename = "load-relative";
+        version = "20170526.310";
+        src = fetchFromGitHub {
+          owner = "rocky";
+          repo = "emacs-load-relative";
+          rev = "738896e3da491b35399178ed2c6bc92cc728d119";
+          sha256 = "1rpy5mfncncl6gqgg53d3g25g1700g4b9bivd4c0cfcv5dbxhp73";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/load-relative";
+          sha256 = "0j8ybbjzhzgjx47pqqdbsqi8n6pzqcf6zqc38x7cf1kkklgc87ay";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/load-relative";
+          license = lib.licenses.free;
+        };
+      }) {};
+    load-theme-buffer-local = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "load-theme-buffer-local";
+        ename = "load-theme-buffer-local";
+        version = "20120702.1336";
+        src = fetchFromGitHub {
+          owner = "vic";
+          repo = "color-theme-buffer-local";
+          rev = "bc221a88aefec5bdc137b5d5e449e1f1e55ce901";
+          sha256 = "0yhydmzllwygv6l9vyv23jr5rf2mx1fm7y1jv92dn43ys53bv3sb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/load-theme-buffer-local";
+          sha256 = "13829yrh36qac7gpxanizlk4n7av99ngvv06y6mmi5rq06a4hjx4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/load-theme-buffer-local";
+          license = lib.licenses.free;
+        };
+      }) {};
+    loc-changes = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "loc-changes";
+        ename = "loc-changes";
+        version = "20160801.1008";
+        src = fetchFromGitHub {
+          owner = "rocky";
+          repo = "emacs-loc-changes";
+          rev = "4d1dcdf7631c23b1259ad4f72bf9686cf95fb46c";
+          sha256 = "0a81933l3rrsbi9vkvfb1g94vkhl5n3fkffpy4icis97q7qh08mc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/loc-changes";
+          sha256 = "1akgij61b2ixpkchrriabwvx68cg4v5r5w9ncjrjh91hskjprfxh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/loc-changes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    loccur = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "loccur";
+        ename = "loccur";
+        version = "20161227.251";
+        src = fetchFromGitHub {
+          owner = "fourier";
+          repo = "loccur";
+          rev = "650d91dda0d313c8f445a0803c07809d857dee0f";
+          sha256 = "09xc2207dhlbw0x9pks2gay09adzijzcabdwg55iszrs7pxjjfa0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/loccur";
+          sha256 = "06pv2i05yzjzal4q21krbnp9rp4bsainxcwvpc98020vsmms0z8h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/loccur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lockfile-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "lockfile-mode";
+        ename = "lockfile-mode";
+        version = "20170624.2207";
+        src = fetchFromGitHub {
+          owner = "preetpalS";
+          repo = "emacs-lockfile-mode";
+          rev = "496b6035716df0582f879f9488f296947cabead2";
+          sha256 = "0sm73w2in65kdb68m9w3jrr5pa392x75bv063r8cdhy868031l49";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lockfile-mode";
+          sha256 = "13nr983xldja8m02a1rdnyqxc8g045hxjh6649wmqmqk4mk0m310";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lockfile-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lodgeit = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "lodgeit";
+        ename = "lodgeit";
+        version = "20150312.649";
+        src = fetchFromGitHub {
+          owner = "ionrock";
+          repo = "lodgeit-el";
+          rev = "ec9b8e5cbb17bcf8ac4bdddd1d361cb60e59384c";
+          sha256 = "1cdnm270kzixa0kpis0xw2ybkw8lqh7kykc7blxkxjrr9yjvbawl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lodgeit";
+          sha256 = "1ax2w5yxscycjz90g4jdbhd64g9sipzxpfjs7gq3na77s5dcjzsq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lodgeit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    log4e = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "log4e";
+        ename = "log4e";
+        version = "20170401.604";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "log4e";
+          rev = "34309972ad02abcebbcff6b1682731978aef030c";
+          sha256 = "12zk40gqrh86m50y777kprkwz75vbcm0q1a9narzcs2lnpwc8g4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/log4e";
+          sha256 = "1klj59dv8k4r0hily489dp12ra5hq1jnsdc0wcakh6zirmakhs34";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/log4e";
+          license = lib.licenses.free;
+        };
+      }) {};
+    log4j-mode = callPackage ({ fetchgit
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "log4j-mode";
+        ename = "log4j-mode";
+        version = "20160108.1118";
+        src = fetchgit {
+          url = "https://git.code.sf.net/p/log4j-mode/code";
+          rev = "a278948ea07ef8f4fdb6d389345a68b50de14fae";
+          sha256 = "0fa2k0c0pp55crz358aw6b26q3mgw6lik498vy8p95vmcy6lb9v3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/log4j-mode";
+          sha256 = "0311jb47fjji8dqy98anr487f7vnvi85p4mn5ymqvxs5c6972gms";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/log4j-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    logalimacs = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , popup
+                              , popwin
+                              , stem }:
+      melpaBuild {
+        pname = "logalimacs";
+        ename = "logalimacs";
+        version = "20131021.1129";
+        src = fetchFromGitHub {
+          owner = "logaling";
+          repo = "logalimacs";
+          rev = "8286e39502250fc6c3c6656a7f46a8eee8e9a713";
+          sha256 = "0lj3i9i3mg17xws13gzx8myc6d7djgsj47yx4kaq5hycgkni1p7q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/logalimacs";
+          sha256 = "0ai7a01bdi3a0amgi63pwgdp8wgcgx10an4nhc627wgb1cqxb7p6";
+          name = "recipe";
+        };
+        packageRequires = [ popup popwin stem ];
+        meta = {
+          homepage = "https://melpa.org/#/logalimacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    logito = callPackage ({ eieio ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "logito";
+        ename = "logito";
+        version = "20120225.1255";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "logito";
+          rev = "824acb89d2cc18cb47281a4fbddd81ad244a2052";
+          sha256 = "0jpyd2f33pk984kg0q9hxdl4615jb7sxsggnb30mpz7a2ws479xr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/logito";
+          sha256 = "0xi7zbxpialsn4pknj8aqmkbiwwsbapwynrrjb8avhli2hd4s3fl";
+          name = "recipe";
+        };
+        packageRequires = [ eieio ];
+        meta = {
+          homepage = "https://melpa.org/#/logito";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lognav-mode = callPackage ({ emacs
+                               , fetchhg
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "lognav-mode";
+        ename = "lognav-mode";
+        version = "20180708.322";
+        src = fetchhg {
+          url = "https://bitbucket.com/ellisvelo/lognav-mode";
+          rev = "73aba5c1b9c6";
+          sha256 = "0bshlkxzb1wbvm5fpsmqd51z4y1nfqkh802ddd8pfs5k22lv21sk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lognav-mode";
+          sha256 = "1941scifg3nn7gmnki3sa9zvwsbb84w5lw2xjmdx0sh8rbxaw8gb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lognav-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    logpad = callPackage ({ fetchhg
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "logpad";
+        ename = "logpad";
+        version = "20180607.1215";
+        src = fetchhg {
+          url = "https://bitbucket.com/tux_/logpad.el";
+          rev = "506ace0e996f";
+          sha256 = "0z9dq37hsrzjkd3pynqmm8gbiv1sbqnjxlqkyq6lpps5fd9n5vsz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/logpad";
+          sha256 = "1r688z3y98wnr15fg6zzcs4c4yw0l6ygah07gjhblj8b7q7i2qgg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/logpad";
+          license = lib.licenses.free;
+        };
+      }) {};
+    logstash-conf = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "logstash-conf";
+        ename = "logstash-conf";
+        version = "20170524.1229";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "logstash-conf.el";
+          rev = "4e127f9aec190786613445aa88efa307ff7c6748";
+          sha256 = "119yb1wk1n5ycfzgpffcwy7yx8ar8k1gza0gvbq3r61ha5a9qijs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/logstash-conf";
+          sha256 = "0djf2kl6jypxlfss4x8ij670v733vid1vbyg6yd96pc9781v3zrm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/logstash-conf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    logview = callPackage ({ datetime
+                           , emacs
+                           , extmap
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "logview";
+        ename = "logview";
+        version = "20181027.1057";
+        src = fetchFromGitHub {
+          owner = "doublep";
+          repo = "logview";
+          rev = "bd662d467dbd7c93cfe1e3058e4f11c49314fd6a";
+          sha256 = "03s4q5xdz84cjn4qkfhsc3l9y3v5avrl2i5dby4bgsg2zj7n7f73";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/logview";
+          sha256 = "0gks3j5avx8k3427a36lv7gr95id3cylaamgn5qwbg14s54y0vsh";
+          name = "recipe";
+        };
+        packageRequires = [ datetime emacs extmap ];
+        meta = {
+          homepage = "https://melpa.org/#/logview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lolcode-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "lolcode-mode";
+        ename = "lolcode-mode";
+        version = "20111002.147";
+        src = fetchFromGitHub {
+          owner = "bodil";
+          repo = "lolcode-mode";
+          rev = "280a47e0bf02ee3abc7c5b6b14345056f41981f9";
+          sha256 = "1j51h2j0n6mkglalrp1mirpc1v7mgrfxfd1k43rhzg800rb4ahhr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lolcode-mode";
+          sha256 = "0dxdqr3z5bw0vcfxhhhc1499vrfk1xqwxshr0kvlhdalpf59rqiw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lolcode-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    look-dired = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , look-mode
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "look-dired";
+        ename = "look-dired";
+        version = "20160729.1623";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "look-dired";
+          rev = "9bfa4e5e6f3810705b6426c88493ea0bf6b15640";
+          sha256 = "1yagp35ylznrh3a5ahpzrrxi6ma69ppwqsab3cwss54bi4f02ihn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/look-dired";
+          sha256 = "0dddx5nxr519wqdgrbglh0pqjl3alg4ddmank42g4llzycy61wsd";
+          name = "recipe";
+        };
+        packageRequires = [ look-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/look-dired";
+          license = lib.licenses.free;
+        };
+      }) {};
+    look-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "look-mode";
+        ename = "look-mode";
+        version = "20151211.1026";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "look-mode";
+          rev = "d65f75e8ea24eff2ac31c53b4835b45127eedd56";
+          sha256 = "1adzlviy928wsqx9fvxi71rwv89zyydqmf5g0wrlx66r0ksw3793";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/look-mode";
+          sha256 = "0nhhz5s423g4kqqh0vy8k0696r0myhjfv84p2vciliky9gv1wkig";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/look-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    loop = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "loop";
+        ename = "loop";
+        version = "20160813.707";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "loop.el";
+          rev = "0ce77271d56b0fcdba4b3b38fed526081cd1f674";
+          sha256 = "0l0k2plgmfnqcy1ilk20755n5xk480p15mzqc247ipr0ldr9ajxr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/loop";
+          sha256 = "0pav16kinzljmzx84vfz63fvi39af4628vk1jw79jk0pyg9rjbar";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/loop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lorem-ipsum = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "lorem-ipsum";
+        ename = "lorem-ipsum";
+        version = "20140911.1408";
+        src = fetchFromGitHub {
+          owner = "jschaf";
+          repo = "emacs-lorem-ipsum";
+          rev = "893a27505734a1497b79bc26e0736a78221b35d9";
+          sha256 = "0grzl4kqpc1x6569yfh9xdzzbgmhcskxwk6f7scjpl32acr88cmx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lorem-ipsum";
+          sha256 = "0p62yifbrknjn8z0613wy2aaknj44liyrgbknhpa0qn0d4fcrp4h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lorem-ipsum";
+          license = lib.licenses.free;
+        };
+      }) {};
+    love-minor-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , lua-mode
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "love-minor-mode";
+        ename = "love-minor-mode";
+        version = "20170726.2236";
+        src = fetchFromGitHub {
+          owner = "ejmr";
+          repo = "love-minor-mode";
+          rev = "3ca8f3405338f2d6f4fbcdd5e89342a46378543a";
+          sha256 = "1hwm7yxbwvb27pa35cgcxyjfjdjhk2a33i417q2akc7vppdbcmzh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/love-minor-mode";
+          sha256 = "1skg039h2hn8dh47ww6n9l776s2yda8ariab4v9f56kb21bncr4m";
+          name = "recipe";
+        };
+        packageRequires = [ lua-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/love-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-clangd = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , lsp-mode
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-clangd";
+        ename = "lsp-clangd";
+        version = "20180828.957";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-clangd";
+          rev = "37ca521483e3ce5b63b97672916368dbf4566a67";
+          sha256 = "1km0jphg3zhy8cf127jh819yc5vx88xifml9ic5xidzmy26gq6s1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-clangd";
+          sha256 = "05dmzyb9xw2m4kck7y3cj8dm2542p3vi48lqs21gcrvm5vbrkx3g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-clangd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-css = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , lsp-mode
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-css";
+        ename = "lsp-css";
+        version = "20180627.1251";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-css";
+          rev = "1395b48209c5744e19f688ebb5fe8201e5a006df";
+          sha256 = "1h043gmrly820gnx1ccavms1f6xkc2zbdhfm5lbaix45i61z62jm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-css";
+          sha256 = "05mm0pshs9jk3ls7mqicq4a5w66fg3mhi73mjx7kp5asqk64fim1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-css";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-dart = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , lsp-mode
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-dart";
+        ename = "lsp-dart";
+        version = "20181021.1008";
+        src = fetchFromGitHub {
+          owner = "twlz0ne";
+          repo = "lsp-dart";
+          rev = "c52d825aeebcad250890fe8ded1147df8f9499cf";
+          sha256 = "0c3ii7np45bz6wlqzwn1bacdwa8r0880qygjb71ypf5ilq1gk40y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-dart";
+          sha256 = "0zv6spd1h2ijkix38hxvvblg37ybm65568gg8fv9qr8giw0bjfy2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-dart";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-fortran = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , lsp-mode
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-fortran";
+        ename = "lsp-fortran";
+        version = "20180904.936";
+        src = fetchFromGitHub {
+          owner = "MagB93";
+          repo = "lsp-fortran";
+          rev = "0c25c13a224dc8dd07294647efd355248e1b6c4e";
+          sha256 = "0cbn28fw9q5qvw3h86195dxmcbsll9nc20216az0x808b2p8p24g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-fortran";
+          sha256 = "0qlfdiz8rxjmc2v2qxkjihb373364a0b2b4ccjljhv9xz4aia3bj";
+          name = "recipe";
+        };
+        packageRequires = [ lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-fortran";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-go = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , lsp-mode
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-go";
+        ename = "lsp-go";
+        version = "20180913.2215";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-go";
+          rev = "2327556e78682770a7a434610b08115f20ea5b1a";
+          sha256 = "10n9vrf46rsacsibv9sh5s92lmr3lz7x2lbgxzf5xn1y1vlg02ap";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-go";
+          sha256 = "1yg21qqlf8ma734vaz6xrfym2058gvx7llsqy94fbbg1fg61c32c";
+          name = "recipe";
+        };
+        packageRequires = [ lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-go";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-hack = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , lsp-mode
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-hack";
+        ename = "lsp-hack";
+        version = "20181114.947";
+        src = fetchFromGitHub {
+          owner = "jra3";
+          repo = "lsp-hack";
+          rev = "2a9025a331aa08ebc4ad3524fe69eaa6f624ceae";
+          sha256 = "01vidax1ihs87c0zb4kvadbs12agdgjjj01dh48yz769gcn0p0qc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-hack";
+          sha256 = "1xfvk4hqs748b9dm8dirb2mdpnhq9mybgsbcj258yydr57d9zijs";
+          name = "recipe";
+        };
+        packageRequires = [ lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-hack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-haskell = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , haskell-mode
+                               , lib
+                               , lsp-mode
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-haskell";
+        ename = "lsp-haskell";
+        version = "20181022.2357";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-haskell";
+          rev = "1d18fb6b3c055d665dd0bc8694fd74782091d5cf";
+          sha256 = "1w9byk8232c3lgi4vb0qqnnjba3qlli6cwblh9adkf8z1xhc6zq3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-haskell";
+          sha256 = "0pdcxnfp8ng24bfk695wpx5wcdqnjrjsfpks0xicih3mcdm1x9l8";
+          name = "recipe";
+        };
+        packageRequires = [ haskell-mode lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-haskell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-html = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , lsp-mode
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-html";
+        ename = "lsp-html";
+        version = "20180629.25";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-html";
+          rev = "478927767c3c2bd06b052807126e5d48be53755a";
+          sha256 = "0833mrmbhfzm2xhf91wl7bp4h54h2qaxy4lidy05ngm407wbjypd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-html";
+          sha256 = "0fd53k8spfm2s618gvchr0jsbc0a0varklc05cdjvjxyxk04ssmc";
+          name = "recipe";
+        };
+        packageRequires = [ lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-intellij = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , lsp-mode
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-intellij";
+        ename = "lsp-intellij";
+        version = "20180831.1351";
+        src = fetchFromGitHub {
+          owner = "Ruin0x11";
+          repo = "lsp-intellij";
+          rev = "cf30f0ac63bd0140e758840b8ab070e8313697b2";
+          sha256 = "0ghw2as9fbnfhrr1nbqk97jcl7yb451xpmfbksxh7mvjm3lhmyvz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-intellij";
+          sha256 = "0l2ffxqsdzvddypdl3w9rd7qxy2kzw2iwfkr2w7czglyfbnyyg2b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-intellij";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-java = callPackage ({ dash
+                            , dash-functional
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ht
+                            , lib
+                            , lsp-mode
+                            , markdown-mode
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-java";
+        ename = "lsp-java";
+        version = "20181102.1243";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-java";
+          rev = "7eebaf5d45763627a5e49180d9f76a82432d62e3";
+          sha256 = "1kvgjz070hn7wfkbvm8k12m9iag8r8wdp5iqi588279j5jc6b1q4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-java";
+          sha256 = "0rrl9mh25w1avvyww840d3yh8nw0shirspxl2nxqwwdaymbkg2wr";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          dash-functional
+          emacs
+          f
+          ht
+          lsp-mode
+          markdown-mode
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-java";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-javacomp = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , lsp-mode
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "lsp-javacomp";
+        ename = "lsp-javacomp";
+        version = "20181029.1328";
+        src = fetchFromGitHub {
+          owner = "tigersoldier";
+          repo = "lsp-javacomp";
+          rev = "2b5130951f758eb9d3000b9e391b5e7a3b63d371";
+          sha256 = "1va3vgz698jz8mg8fnvk2vqwwlr8f84rlfky4ign0i5p6bzdh28s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-javacomp";
+          sha256 = "1gp8dlcpik2lmpicccq2kya498pmw9m8vz9m1fbd725p7wk58fhi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-javacomp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-javascript-flow = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , lsp-mode
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-javascript-flow";
+        ename = "lsp-javascript-flow";
+        version = "20180612.2208";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-javascript";
+          rev = "b9873765270ac5c76013efe6fae0beb60f55f85c";
+          sha256 = "1cpwivz6cy9rs5s3723j0y3wf6bhr4avazdyl1f2gv3xiwr0gbns";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-javascript-flow";
+          sha256 = "1bydgcmgzbx2pqna19h1avrlrlfv6gvsii1n839q4bhiwn3452f7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-javascript-flow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-javascript-typescript = callPackage ({ emacs
+                                             , fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , lsp-mode
+                                             , melpaBuild
+                                             , typescript-mode }:
+      melpaBuild {
+        pname = "lsp-javascript-typescript";
+        ename = "lsp-javascript-typescript";
+        version = "20180614.1311";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-javascript";
+          rev = "7e7c5f66b02321f402712841064347cb872c41e4";
+          sha256 = "1ilhnbdvfjanv0cjwk289dq1whpf69qzw0hh9ak37gbi4pqvsbdv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-javascript-typescript";
+          sha256 = "01i6dimwz5s143cbcfi2rflfgkj569avx103wnlbcfd87apj7813";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode typescript-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-javascript-typescript";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-mode";
+        ename = "lsp-mode";
+        version = "20181114.1908";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-mode";
+          rev = "9e0426cf88190a5c350a5436ab11af6f8d4d412e";
+          sha256 = "0gdyy2syrla3sl4jhpdcf36mgxn6fd9sl6f8cqrank8zw504hd26";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-mode";
+          sha256 = "0cklwllqxzsvs4wvvvsc1pqpmp9w99m8wimpby6v6wlijfg6y1m9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-ocaml = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , lsp-mode
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-ocaml";
+        ename = "lsp-ocaml";
+        version = "20180610.1154";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-ocaml";
+          rev = "5a8c776b6d75b502703243b3d628fccd813481b0";
+          sha256 = "1431f8r8c4h8jbghggk1s2bwqr1qlxys3d52xsvf35bbk1gki5an";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-ocaml";
+          sha256 = "17334qcgqrz4jd5npizyq20fmxy07z2p3pq98s5np2kc4h9ara33";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-ocaml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-p4 = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , lsp-mode
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-p4";
+        ename = "lsp-p4";
+        version = "20180728.1215";
+        src = fetchFromGitHub {
+          owner = "dmakarov";
+          repo = "p4ls";
+          rev = "be807f8bf12bc354d2649c654f853689e3113765";
+          sha256 = "0qhyd39743gb4y7hxznvvq3iikcj5yi145snhfic7l1l7yvbqz97";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-p4";
+          sha256 = "0cd3n17lqwz08zfkm9g5cr1cj2asznlbhxrym2a7b7shdmn3yx5f";
+          name = "recipe";
+        };
+        packageRequires = [ lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-p4";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-php = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , lsp-mode
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-php";
+        ename = "lsp-php";
+        version = "20180331.944";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-php";
+          rev = "3189a13c605e1615b7ce2cd12f09c1ed92a88178";
+          sha256 = "1kv708yrx57j0cvz9vcam4rwfincgbbr7rdbxdmnfmwnx4ylgckg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-php";
+          sha256 = "0ds3hivkb7zxkz6crn6h9apvavvm899vwq4mkav4cbijsl4q33l0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-php";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-python = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , lsp-mode
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-python";
+        ename = "lsp-python";
+        version = "20181107.2354";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-python";
+          rev = "9b67b63c4c8c53c77eda8b8081b8d458e655ba55";
+          sha256 = "15dbjvmcc38rpz6s9vpmgvjppjiyh6qr09zjb66as1sjnhxni11g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-python";
+          sha256 = "0x8cyvkwp4znliiwf3qfrhnk80h8n1jfyyq0n5yfccsgk7gpm8qx";
+          name = "recipe";
+        };
+        packageRequires = [ lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-python";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-ruby = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , lsp-mode
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-ruby";
+        ename = "lsp-ruby";
+        version = "20180910.1221";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-ruby";
+          rev = "8016a714403587f95a9bf6516c2a91a0a880fa2f";
+          sha256 = "00jm2fvvgidxd4vsajhaqw8s9r61smxjfzdshhpqnq1zkfxa7yjc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-ruby";
+          sha256 = "1pmmlbxqzzj8zyqyya1p8v6g5v0kisx00d1c5zqja4sqw2n82glr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-rust = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , lsp-mode
+                            , markdown-mode
+                            , melpaBuild
+                            , rust-mode }:
+      melpaBuild {
+        pname = "lsp-rust";
+        ename = "lsp-rust";
+        version = "20180305.508";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-rust";
+          rev = "ecc889cc8735b280e0e6e84d2f4526b0048148b3";
+          sha256 = "0wmci5lij5721xpfsj3mnvr3z1j8b9s0w76dhzd0lnyaknvyv1rs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-rust";
+          sha256 = "0p86223pfpi4hh8m66ccksxgl0yi7zrigd1gmbz0bzqa6yjgbp28";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs lsp-mode markdown-mode rust-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-rust";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-sh = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , lsp-mode
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-sh";
+        ename = "lsp-sh";
+        version = "20180912.1858";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-sh";
+          rev = "d9e94837ccbb54eafa381833d2a9a0089e01096b";
+          sha256 = "11wq5cqg9b198gw0rhzv4sc12zp0gb1mvizhm42nsvcb6a1pfnjr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-sh";
+          sha256 = "13wwwh9mak1gbdcasjjwlngh4dya08cm5wqqhvs4a8caiika8byj";
+          name = "recipe";
+        };
+        packageRequires = [ lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-sh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-typescript = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , lsp-mode
+                                  , melpaBuild
+                                  , typescript-mode }:
+      melpaBuild {
+        pname = "lsp-typescript";
+        ename = "lsp-typescript";
+        version = "20180905.2224";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-javascript";
+          rev = "ab62826962887e82f0bc968817be4fc89a6953e4";
+          sha256 = "0fwmclcgl0lv3j2nqw6njxmi4sbgyp508v66d0ymjl419mhlqdrg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-typescript";
+          sha256 = "1d1yrcgg1bdsikcb2j8cayhlh9hdnna3rc1pphq0kn81gk0rgbrq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode typescript-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-typescript";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-ui = callPackage ({ dash
+                          , dash-functional
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , flycheck
+                          , lib
+                          , lsp-mode
+                          , markdown-mode
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-ui";
+        ename = "lsp-ui";
+        version = "20181031.1302";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-ui";
+          rev = "5138e720451dfbcae2f55a8380416340d5706583";
+          sha256 = "10b1qcblarxl8xb1dpmrmh2yk998ln9mmx24hvmxf4skh2zr7zd7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-ui";
+          sha256 = "00y5i44yd79z0v00a9lvgixb4mrx9nq5vcgmib70h41ffffaq42j";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          dash-functional
+          emacs
+          flycheck
+          lsp-mode
+          markdown-mode
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-ui";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-vue = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , lsp-mode
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-vue";
+        ename = "lsp-vue";
+        version = "20181030.436";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-vue";
+          rev = "85567342323943b37bb4e90376d3fae740be4aeb";
+          sha256 = "1s8bbrp2gvhjqzmw24sq58i1y3fzy93w4896rlb8ajqzjdl9j6n4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-vue";
+          sha256 = "1df3dva31livffy9bzassgqpps3bf9nbqmhngzh8bnhjvvrbj5ic";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-vue";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lua-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lua-mode";
+        ename = "lua-mode";
+        version = "20180323.321";
+        src = fetchFromGitHub {
+          owner = "immerrr";
+          repo = "lua-mode";
+          rev = "99312b8d6c500ba3067da6d81efcfbbea05a1cbd";
+          sha256 = "04m9njcpdmar3njjz4x2qq26xk0k6qprcfzx8whlmvapqf8w19iz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lua-mode";
+          sha256 = "0gyi7w2h192h3pmrhq39lxwlwd9qyqs303lnp2655pikdzk9js94";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lua-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    luarocks = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "luarocks";
+        ename = "luarocks";
+        version = "20170430.1605";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "luarocks.el";
+          rev = "cee27ba0716edf338077387969883226dd2b7484";
+          sha256 = "0rdsjmmi95agb859997qdhbk0dns2jyx2mlg8rync58wna70nmbn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/luarocks";
+          sha256 = "05srrk9gmv1vhq7m5bjhh2hl2siis04j15b31x0sgknxh3ybr33x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/luarocks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lush-theme = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "lush-theme";
+        ename = "lush-theme";
+        version = "20180816.1500";
+        src = fetchFromGitHub {
+          owner = "andre-richter";
+          repo = "emacs-lush-theme";
+          rev = "7cfc993709d712f75c51b505078608c9e1c11466";
+          sha256 = "0v17srm3l8p556d4j5im2bn7brxv7v0g2crlm4gb8x1cwjrbajzf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lush-theme";
+          sha256 = "03kqws8dzm0ay5k86f4v7g2g2ygwk4fzmz2vyzhzhbsj8hrniq9p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lush-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lusty-explorer = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "lusty-explorer";
+        ename = "lusty-explorer";
+        version = "20180628.646";
+        src = fetchFromGitHub {
+          owner = "sjbach";
+          repo = "lusty-emacs";
+          rev = "fc4b2f0f8a07db107234490fdfbf72f8b76a6643";
+          sha256 = "014fivh9shi7p3x31bl22x48agrgygp0pf2lgzzflrxcynmprbnp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lusty-explorer";
+          sha256 = "0xqanmmkyvzcg2g4zvascq5j004bqz7vmz1a19c25g9cs3rdh0ps";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lusty-explorer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lv = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "lv";
+        ename = "lv";
+        version = "20181110.940";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "hydra";
+          rev = "5c5b9ca3262594c92f8f73c98db5ed0f1efd0319";
+          sha256 = "0dvh4sg1s76jy41vsy6dh3a4b8vr5msldnyssmqzdqwrsw64hl6r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lv";
+          sha256 = "1lkm40rwpj9hmckng9bz5g4jbx9g9i3wlqgl6rq0m6i14syr69v4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lxc = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "lxc";
+        ename = "lxc";
+        version = "20140410.1322";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-lxc";
+          rev = "88bed56c954d1edd9ff5ce0ced2c02dcf9f71835";
+          sha256 = "090gk0il4yyypzjbh2qrjdaldwf90fi30impmh4zcfl73bic5q9q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lxc";
+          sha256 = "1rv1ybmbjx7n3cavx21nzmvckw63q3jmjsfdr2pcgavrr2ck6lka";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lxc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lxc-tramp = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "lxc-tramp";
+        ename = "lxc-tramp";
+        version = "20180523.1324";
+        src = fetchFromGitHub {
+          owner = "montag451";
+          repo = "lxc-tramp";
+          rev = "1aab85fef50df2067902bff13e1bac5e6366908b";
+          sha256 = "066qwyk38r42xriifg1ik2f0am0m57wlfrk5278sycr8vbag6fc9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lxc-tramp";
+          sha256 = "0rksh7k30kh3i23c98qinffz2zj6h1bshaw994hwy8qwgm38vx61";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lxc-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lxd-tramp = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "lxd-tramp";
+        ename = "lxd-tramp";
+        version = "20181022.1707";
+        src = fetchFromGitHub {
+          owner = "onixie";
+          repo = "lxd-tramp";
+          rev = "f335c76245f62b02cf67a9376eca6f3863c8a75a";
+          sha256 = "0byhafxcc4qw08b16fd00nkyqz1jmq7js0l5q4lda4xdpfgl1a65";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lxd-tramp";
+          sha256 = "0i611z4pksrf4zf0h8wnradqbcad5f43dq8bg3dsik0jdcjlvg5p";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lxd-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lyrics = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , seq }:
+      melpaBuild {
+        pname = "lyrics";
+        ename = "lyrics";
+        version = "20180812.1141";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "lyrics.el";
+          rev = "d0b920be634a5be81ad49418cfaada0f0a57d6cd";
+          sha256 = "0926avnlxi8qkr1faplk1aj4lji0ixa4lv81badi5zsmpyyrwmm7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lyrics";
+          sha256 = "0kj8v8cg4yqnz0v1nhq41jxjgd4ivqd6lsr1v5cqhg4m0r7f2nzc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/lyrics";
+          license = lib.licenses.free;
+        };
+      }) {};
+    m-buffer = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , seq }:
+      melpaBuild {
+        pname = "m-buffer";
+        ename = "m-buffer";
+        version = "20170407.1441";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "m-buffer-el";
+          rev = "6eb1d2535a82707a83733173bc400a0d8e520c80";
+          sha256 = "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/m-buffer";
+          sha256 = "17smq7wlidsls870hla5b94xq2pwk24b88jvrbbcqw6f5z3ypf94";
+          name = "recipe";
+        };
+        packageRequires = [ seq ];
+        meta = {
+          homepage = "https://melpa.org/#/m-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mac-pseudo-daemon = callPackage ({ cl-lib ? null
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "mac-pseudo-daemon";
+        ename = "mac-pseudo-daemon";
+        version = "20170728.1240";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "mac-pseudo-daemon";
+          rev = "d235680a72677f11925b912428ad1a57b664e3e8";
+          sha256 = "0gqknrwhfzr7cf5pgs33a5xh79y0yzxghs6wsvavvqkmf4cvck40";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mac-pseudo-daemon";
+          sha256 = "12fwrcnwzsfms42rzv4wif5yzx3gnsz8yzdcgkpl37kkx85iy8v0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/mac-pseudo-daemon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    maces-game = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "maces-game";
+        ename = "maces-game";
+        version = "20170903.851";
+        src = fetchFromGitHub {
+          owner = "pawelbx";
+          repo = "maces-game";
+          rev = "6a067422d305ac51612842930ed6686dc615ffec";
+          sha256 = "07pl2y4qlpcn9ap2vp1gpvdqh4l05gb7pp11c1krlaxybhwdcqjb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/maces-game";
+          sha256 = "0wz91dsa0w4xlkl5lbdr8k4pgkgalsqcy27sd0i8xswq3wwiy0ip";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/maces-game";
+          license = lib.licenses.free;
+        };
+      }) {};
+    macro-math = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "macro-math";
+        ename = "macro-math";
+        version = "20130328.904";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "macro-math.el";
+          rev = "216e59371e9ee39c34117ba79b9acd78bb415750";
+          sha256 = "119c77s3qp1vqc5m2yf7m4s81aphkhsvsnwqmpq6xl08r3592zxz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/macro-math";
+          sha256 = "072ycszl4cjc9nvv4axsgyfzz9djpgh4y1xqfr1nxi41nsdfc9kn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/macro-math";
+          license = lib.licenses.free;
+        };
+      }) {};
+    macrostep = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "macrostep";
+        ename = "macrostep";
+        version = "20161120.1306";
+        src = fetchFromGitHub {
+          owner = "joddie";
+          repo = "macrostep";
+          rev = "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267";
+          sha256 = "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/macrostep";
+          sha256 = "1h1gag21x05a14j0wbg0lg502fq2hbqfhjlg05kysw9f870whfq2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/macrostep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    madhat2r-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "madhat2r-theme";
+        ename = "madhat2r-theme";
+        version = "20170202.1630";
+        src = fetchFromGitHub {
+          owner = "madhat2r";
+          repo = "madhat2r-theme";
+          rev = "6b387f09de055cfcc15d74981cd4f32f8f9a7323";
+          sha256 = "1nnjdqqbarzv62ic3ddc2z9wmh93zjia4nvfjmji8213dngrrf88";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/madhat2r-theme";
+          sha256 = "0y588skd6c2ykyp54d38ibwrqglnaanr15d45d51cvcvp9k7x508";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/madhat2r-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mag-menu = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , splitter }:
+      melpaBuild {
+        pname = "mag-menu";
+        ename = "mag-menu";
+        version = "20150505.1150";
+        src = fetchFromGitHub {
+          owner = "chumpage";
+          repo = "mag-menu";
+          rev = "9b9277021cd09fb1dba64b1d2a00705d20914bd6";
+          sha256 = "1flamyk7z3r723cczqra0f4yabc6kmgwjaw2bvs3kisppqmmz72g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mag-menu";
+          sha256 = "1r1yisjnqxl9llpf91rwqp4q47jc4qp32xnkl8wzsgr0r2qf5yk2";
+          name = "recipe";
+        };
+        packageRequires = [ splitter ];
+        meta = {
+          homepage = "https://melpa.org/#/mag-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magic-filetype = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "magic-filetype";
+        ename = "magic-filetype";
+        version = "20180219.752";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "magic-filetype.el";
+          rev = "019494add5ff02dd36cb3f500142fc51125522cc";
+          sha256 = "1hw77d4wgqrms8rvkv3xd50v4y9qjvm7cpz5rkgmvizs34pjqy22";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magic-filetype";
+          sha256 = "0f0j8fgh2gpkarz9308pns0d89wc2dchyim6hbixkdpqzg9gskc3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/magic-filetype";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magic-latex-buffer = callPackage ({ cl-lib ? null
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "magic-latex-buffer";
+        ename = "magic-latex-buffer";
+        version = "20170530.1705";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "magic-latex-buffer";
+          rev = "f1172ea243ff74b2013215b906eb8c0066497384";
+          sha256 = "0rsq79sbf24cvdib283ddc2vg37sjyh3h0d1siki86psyg1mgaz1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magic-latex-buffer";
+          sha256 = "0xm4vk4aggyfw96cgya5cp97jzx5ha0xwpf2yfh7c3m8d9cca4y8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/magic-latex-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magik-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "magik-mode";
+        ename = "magik-mode";
+        version = "20181005.141";
+        src = fetchFromGitHub {
+          owner = "roadrunner1776";
+          repo = "magik";
+          rev = "d87b9a5be8fc56e48241e02bab4b4a2d347b999d";
+          sha256 = "08l2mkgabd885sq8s4vg9xfiszwnh5b20kwds9glymkfi7rh0wvp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magik-mode";
+          sha256 = "1d6n7mpwavrajcgai6j0y5khhgc4jaag1ig1xx8w04mr48xrjxqk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/magik-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit = callPackage ({ async
+                         , dash
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , ghub
+                         , git-commit
+                         , lib
+                         , magit-popup
+                         , melpaBuild
+                         , with-editor }:
+      melpaBuild {
+        pname = "magit";
+        ename = "magit";
+        version = "20181116.612";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit";
+          rev = "36d89c88e1337ec2b33c75c3d426289c66f86b10";
+          sha256 = "072qppwm4nz5hg3y16w9llj4s9ayk0gcnkb95cs43z93phk3x0yf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit";
+          sha256 = "03iv74rgng5fcy3qfr76hiy0hj6x2z0pis1yj8wm1naq5rc55hjn";
+          name = "recipe";
+        };
+        packageRequires = [
+          async
+          dash
+          emacs
+          ghub
+          git-commit
+          magit-popup
+          with-editor
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/magit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-annex = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , magit
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "magit-annex";
+        ename = "magit-annex";
+        version = "20181110.1436";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-annex";
+          rev = "66b81ea781fb192d0ed07002a0c1e7aa284041db";
+          sha256 = "1lq7zx8fi47y0d21ixz3awg8bl24ygfbmzl131dkw1m3vwhbkxka";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-annex";
+          sha256 = "1ri58s1ly416ksmb7mql6vnmx7hq59lmhi7qijknjarw7qs3bqys";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-annex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-filenotify = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , magit
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "magit-filenotify";
+        ename = "magit-filenotify";
+        version = "20151116.1540";
+        src = fetchFromGitHub {
+          owner = "ruediger";
+          repo = "magit-filenotify";
+          rev = "c0865b3c41af20b6cd89de23d3b0beb54c8401a4";
+          sha256 = "0nkxxhxkhy314jv1l3hza84vigl8q7fc8hjjvrx58gfgsfgifx6r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-filenotify";
+          sha256 = "1ihk5yi6psqkccpi2bq2h70kn7k874zl7wcinjaq21lirk4z7bvn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-filenotify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-find-file = callPackage ({ dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , magit
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "magit-find-file";
+        ename = "magit-find-file";
+        version = "20150702.130";
+        src = fetchFromGitHub {
+          owner = "bradwright";
+          repo = "magit-find-file.el";
+          rev = "035da838b1a19e7a5ee135b4ca8475f4e235b61e";
+          sha256 = "1jlww053s580d7rlvmr1dl79wxasa0hhh2jnwb1ra353d6h3a73w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-find-file";
+          sha256 = "1y66nsq1hbv1sb4n71gdxv7p1rz37vd9lkf7zl7avy0dchs499ik";
+          name = "recipe";
+        };
+        packageRequires = [ dash magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-find-file";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-gerrit = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "magit-gerrit";
+        ename = "magit-gerrit";
+        version = "20160226.130";
+        src = fetchFromGitHub {
+          owner = "terranpro";
+          repo = "magit-gerrit";
+          rev = "ece6f369694aca17f3ac166ed2801b432acfe20d";
+          sha256 = "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-gerrit";
+          sha256 = "1iwvg10ly6dlf8llz9f8d4qfdbvd3s28wf48qgn1wjlxpka6zrd4";
+          name = "recipe";
+        };
+        packageRequires = [ magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-gerrit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-gh-pulls = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , gh
+                                  , lib
+                                  , magit
+                                  , melpaBuild
+                                  , pcache
+                                  , s }:
+      melpaBuild {
+        pname = "magit-gh-pulls";
+        ename = "magit-gh-pulls";
+        version = "20180716.936";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "magit-gh-pulls";
+          rev = "6949e973f3e951cb0bfe75d889e0fcccc33ba733";
+          sha256 = "0djr5lkv2wjs2c4dvb41xjkpjk9w6q888r4dlgw9w35z7h30b5vi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-gh-pulls";
+          sha256 = "0qn9vjxi33pya9s8v3g95scmhwrn2yf5pjm7d24frq766wigjv8d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs gh magit pcache s ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-gh-pulls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-gitflow = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , magit
+                                 , magit-popup
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "magit-gitflow";
+        ename = "magit-gitflow";
+        version = "20170929.124";
+        src = fetchFromGitHub {
+          owner = "jtatarik";
+          repo = "magit-gitflow";
+          rev = "cc41b561ec6eea947fe9a176349fb4f771ed865b";
+          sha256 = "0jz69wrrzvqadaphmjrr146nzvmphsbl7rmc3ccnpw1gw6gnz81f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-gitflow";
+          sha256 = "0wsqq3xpqqfak4aqwsh5sxjb1m62z3z0ysgdmnrch3qsh480r8vf";
+          name = "recipe";
+        };
+        packageRequires = [ magit magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-gitflow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-imerge = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "magit-imerge";
+        ename = "magit-imerge";
+        version = "20181024.419";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-imerge";
+          rev = "c2087091fbe24e818d16611c54f4932139757be7";
+          sha256 = "0180rsfyipx0qy4q28sn7mz5fii83d3vr28lgxq5m3kjlvvrmczg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-imerge";
+          sha256 = "0rycmbsi2s7rjqfpcv794vhkybav7d8ikzdaxai36szxpg9pzhj4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-imerge";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-lfs = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , magit
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "magit-lfs";
+        ename = "magit-lfs";
+        version = "20170312.1524";
+        src = fetchFromGitHub {
+          owner = "Ailrun";
+          repo = "magit-lfs";
+          rev = "9897c59109ce34755cbd35eff689680351c45fba";
+          sha256 = "05cy0pw5lcyzcqxycvwbw39l88405lc92x0w1lvhlbwwylpbhw2s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-lfs";
+          sha256 = "1xc32f2k3dwpqncnrr3xyr2963ywa0006z3c01nypxgs1xkfsbdx";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-lfs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-org-todos = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , magit
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "magit-org-todos";
+        ename = "magit-org-todos";
+        version = "20180709.1250";
+        src = fetchFromGitHub {
+          owner = "danielma";
+          repo = "magit-org-todos.el";
+          rev = "9ffa3efb098434d837cab4bacd1601fdfc6fe999";
+          sha256 = "0kxz5q8q5np4zm1ls4hx1h53vlnhj0mnmbq12p5nzk5zcxycbcpz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-org-todos";
+          sha256 = "0yywgzm2jzvsccm9h0a0s1q8fag9dfajnznwk6iqz5pywq5mxijr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-org-todos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-p4 = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , magit
+                            , magit-popup
+                            , melpaBuild
+                            , p4 }:
+      melpaBuild {
+        pname = "magit-p4";
+        ename = "magit-p4";
+        version = "20170414.546";
+        src = fetchFromGitHub {
+          owner = "qoocku";
+          repo = "magit-p4";
+          rev = "ef23e89dc504970e78ac9b158731a3eda7d6d7ee";
+          sha256 = "1gld0x4y4jshyfr0q8k5icjpgmfrbcfir13sysgzqjz9ssyn2bi5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-p4";
+          sha256 = "19p7h3a21jjr2h52ika14lyczdv6z36gl7hk1v17bffffac8q069";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib magit magit-popup p4 ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-p4";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-popup = callPackage ({ async
+                               , dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "magit-popup";
+        ename = "magit-popup";
+        version = "20181003.221";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-popup";
+          rev = "8436447e3166b797edc596cf220f3bf9b41ff4d0";
+          sha256 = "0pcjg1k0hzlink1sj5mbda149ybycjqqmxqis76d45jq13b9swxi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-popup";
+          sha256 = "1pv5slspcfmi10bnnw6acpijn7vkn2h9iqww3w641v41d3p37jmv";
+          name = "recipe";
+        };
+        packageRequires = [ async dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-popup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-rbr = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , magit
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "magit-rbr";
+        ename = "magit-rbr";
+        version = "20181009.1316";
+        src = fetchFromGitHub {
+          owner = "fanatoly";
+          repo = "magit-rbr";
+          rev = "029203b3e48537205052a058e964f058cd802c3c";
+          sha256 = "1z48m0al8bb4ppic483jvika9q47c67g7fazk25431sr5rv9h4d2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-rbr";
+          sha256 = "086vb7xrgyrazc3a7bpyhy219szvrvl59l8wlqakimx0mav7qipr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-rbr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-stgit = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , magit
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "magit-stgit";
+        ename = "magit-stgit";
+        version = "20180522.542";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-stgit";
+          rev = "186e60489f5449d87d94aca24b9d65e2f26a3bc5";
+          sha256 = "134555zdc7abrfl9hlyy3l3raljzn3kk4zfcmr70xkx2qjjdl9a2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-stgit";
+          sha256 = "12wg1ig2jzy2np76brpwxdix9pwv75chviq3c24qyv4y80pd11sv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-stgit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-svn = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , magit
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "magit-svn";
+        ename = "magit-svn";
+        version = "20170213.433";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-svn";
+          rev = "c833903732a14478f5c4cfc561bae7c50671b36c";
+          sha256 = "01kcsc53q3mbhgjssjpby7ypnhqsr48rkl1xz3ahaypmlp929gl9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-svn";
+          sha256 = "02n732z06f0bhxqkxzlvm36bpqr40pas09zbzpfdk4pb6f9f80s0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-svn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-tbdiff = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "magit-tbdiff";
+        ename = "magit-tbdiff";
+        version = "20181023.303";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-tbdiff";
+          rev = "20da4b99e3f04d8e72c20706a36b1f5020400326";
+          sha256 = "07lkrw4jzvfrsa525j58cr8xm76yqcdn0ps4hzd2shyxq4hg6cf2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-tbdiff";
+          sha256 = "1wydmw4f1072k8frk8mi8aaky7dndinq8n7kn10q583bjlxgw80r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-tbdiff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-todos = callPackage ({ async
+                               , dash
+                               , emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , hl-todo
+                               , lib
+                               , magit
+                               , melpaBuild
+                               , pcre2el
+                               , s }:
+      melpaBuild {
+        pname = "magit-todos";
+        ename = "magit-todos";
+        version = "20181008.2124";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "magit-todos";
+          rev = "ccfb2c5df0d6371aee0d4abc4a55c403ee2b0241";
+          sha256 = "194nqnddsmdcvyfnlqlcrlrbmnpgsf0nyfjgywx4g041xc8k4bz6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-todos";
+          sha256 = "0vqmbw0qj8a5wf4ig9hgc0v3l1agdkvgprzjv178hs00297br2s8";
+          name = "recipe";
+        };
+        packageRequires = [ async dash emacs f hl-todo magit pcre2el s ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-todos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-topgit = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "magit-topgit";
+        ename = "magit-topgit";
+        version = "20160313.1254";
+        src = fetchFromGitHub {
+          owner = "greenrd";
+          repo = "magit-topgit";
+          rev = "243fdfa7ce62dce4efd01b6b818a2791868db2f0";
+          sha256 = "06fbjv3zd92lvg4xjsp9l4jkxx2glhng3ys3s9jmvy5y49pymwb2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-topgit";
+          sha256 = "1194hdcphir4cmvzg9cxrjiyg70hr9zmml2rljih94vl7zrw7335";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-topgit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magithub = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ghub-plus
+                            , git-commit
+                            , lib
+                            , magit
+                            , markdown-mode
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "magithub";
+        ename = "magithub";
+        version = "20181116.555";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "magithub";
+          rev = "033088315807446d29664cfddedea1a8f50fd304";
+          sha256 = "0cbxfk31k58s604217ii2bzf2hvxckpk3y5m87lbgjyy13wjrpl2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magithub";
+          sha256 = "11par5rncsa866gazdw98d4902rvyjnnwbiwpndlyh06ak0lryab";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ghub-plus git-commit magit markdown-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/magithub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magma-mode = callPackage ({ cl-lib ? null
+                              , dash
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "magma-mode";
+        ename = "magma-mode";
+        version = "20180413.727";
+        src = fetchFromGitHub {
+          owner = "ThibautVerron";
+          repo = "magma-mode";
+          rev = "db5bff33611027418ba387c7e223d5de82dd9e94";
+          sha256 = "0k973dwk2frcdjdpxv26v584ldyhprny001l48wwwiyc2mf08bzk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magma-mode";
+          sha256 = "1gq6yi51h1h7ivrm1xr6nfrpabx8ylbk0waaw04gnw3bb54dmmvc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash f ];
+        meta = {
+          homepage = "https://melpa.org/#/magma-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magnatune = callPackage ({ dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "magnatune";
+        ename = "magnatune";
+        version = "20151030.1235";
+        src = fetchFromGitHub {
+          owner = "eikek";
+          repo = "magnatune.el";
+          rev = "605b01505ba30589c77ebb4c96834b5072ccbdd4";
+          sha256 = "1hqz26zm4bdz5wavna4j9yia3ns4z19dnszl7k0lcpgbgmb0wh8y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magnatune";
+          sha256 = "0fmxlrq5ls6fpbk5fv67aan8gg1c61i1chfw5lhf496pwqzq901d";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/magnatune";
+          license = lib.licenses.free;
+        };
+      }) {};
+    majapahit-theme = callPackage ({ fetchFromGitLab
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "majapahit-theme";
+        ename = "majapahit-theme";
+        version = "20160817.1148";
+        src = fetchFromGitLab {
+          owner = "franksn";
+          repo = "majapahit-theme";
+          rev = "77c96df7619666b2102d90d452eeadf04adc89a6";
+          sha256 = "0wnhfdk2zwxqfh8d74xmszqgibcgxiq825pq8381zg4nkz5cckfb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/majapahit-theme";
+          sha256 = "04k2smrya27rrjlzvnl3a6llg8vj8x4mm9qyk4kwrmckhd6jd68s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/majapahit-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    major-mode-icons = callPackage ({ all-the-icons
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , powerline }:
+      melpaBuild {
+        pname = "major-mode-icons";
+        ename = "major-mode-icons";
+        version = "20170228.2314";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "major-mode-icons";
+          rev = "e6117a236b2ad52e948576550b183053321dfc91";
+          sha256 = "0gpp9x23qz7ll8d7hlbvynv891hw907k38i7v0b08s8zh1ilvnwa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/major-mode-icons";
+          sha256 = "02p5h9q2j7z3wcmvkbqbbzzk3lyfdq43psppy9x9ypic9fij8j95";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons emacs powerline ];
+        meta = {
+          homepage = "https://melpa.org/#/major-mode-icons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    make-color = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "make-color";
+        ename = "make-color";
+        version = "20140625.450";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "make-color.el";
+          rev = "a1b34e95ccd3ebee4fba1489ab613d0b3078026d";
+          sha256 = "1ky3scyjb69wi76xg6a8qx4ja6lr6mk530bv5gmhj7fxbq8b3x5c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/make-color";
+          sha256 = "0mrv8b67lpid5m8rfbhcik76bvnjlw4xmcrd2c2iinyl02y07r5k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/make-color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    make-it-so = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , swiper }:
+      melpaBuild {
+        pname = "make-it-so";
+        ename = "make-it-so";
+        version = "20180128.1307";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "make-it-so";
+          rev = "bc3b01d6b9ed6ff66ebbd524234f9d6df60dd4be";
+          sha256 = "0833bzlscpnkvjnrg3g54yr246afbjwri8n5wxk8drnsq6acvd8z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/make-it-so";
+          sha256 = "0a8abz54mb60mfr0bl9ry8yawq99vx9hjl4fm2sivns58qjgfy73";
+          name = "recipe";
+        };
+        packageRequires = [ emacs swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/make-it-so";
+          license = lib.licenses.free;
+        };
+      }) {};
+    makefile-executor = callPackage ({ dash
+                                     , emacs
+                                     , f
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , s }:
+      melpaBuild {
+        pname = "makefile-executor";
+        ename = "makefile-executor";
+        version = "20180720.132";
+        src = fetchFromGitHub {
+          owner = "thiderman";
+          repo = "makefile-executor.el";
+          rev = "9a7d78f814a4b372d8f8179819cb1b37b83b1973";
+          sha256 = "1sw8zqxzrcxs4v211bmlxz5xfrpckrawnbhf1fiji0971cv3hx0r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/makefile-executor";
+          sha256 = "0889rq2a7ks2ynyq91xsa2kpzgd72kzbjxx0b34w8faknpj3b6hi";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/makefile-executor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    makey = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "makey";
+        ename = "makey";
+        version = "20131231.630";
+        src = fetchFromGitHub {
+          owner = "mickeynp";
+          repo = "makey";
+          rev = "a61781e69d3b451551e269446e1c5f624ab81137";
+          sha256 = "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/makey";
+          sha256 = "06xgrlkqvg288yd4lyhx4vi80jlfarhblxk5m5zzs5as7n08cvk4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/makey";
+          license = lib.licenses.free;
+        };
+      }) {};
+    malinka = callPackage ({ cl-lib ? null
+                           , dash
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , projectile
+                           , rtags
+                           , s }:
+      melpaBuild {
+        pname = "malinka";
+        ename = "malinka";
+        version = "20171202.221";
+        src = fetchFromGitHub {
+          owner = "LefterisJP";
+          repo = "malinka";
+          rev = "e3dc5b0703a5954057110b82cb397a990ace23e6";
+          sha256 = "0ljv6p1ln4mji4xh2q8w9rah6das4wvvp0pmaj2a2156lx2q3q54";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/malinka";
+          sha256 = "1zmnlgy9k1s1s2wgkhlwfsnknmhggy0rx3l495a5x1kqsx6i0c9y";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash f projectile rtags s ];
+        meta = {
+          homepage = "https://melpa.org/#/malinka";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mallard-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "mallard-mode";
+        ename = "mallard-mode";
+        version = "20131203.2025";
+        src = fetchFromGitHub {
+          owner = "jhradilek";
+          repo = "emacs-mallard-mode";
+          rev = "0a4cfede57bc31134495804ce513cc106de8de3c";
+          sha256 = "1dxhn9m2d5zjcpsqn004z9g7sw5pzgh18aik53y6hqsnvc2ph8r8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mallard-mode";
+          sha256 = "0y2ikjgy107kb85pz50vv7ywslqgbrrkcfsrd8gsk1jky4qn8izd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mallard-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mallard-snippets = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , mallard-mode
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "mallard-snippets";
+        ename = "mallard-snippets";
+        version = "20131023.1151";
+        src = fetchFromGitHub {
+          owner = "jhradilek";
+          repo = "emacs-mallard-snippets";
+          rev = "35b7d0558da14fcffd51863f623806216a0093ce";
+          sha256 = "0b4g1h2kw00arpm816j7aa3cx10k9rwf5pxy57icjybj4b30irqa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mallard-snippets";
+          sha256 = "0437qd7q9i32pmhxaz3vi2dnfpj4nddmzgnqpwsgl28slhjw2hv8";
+          name = "recipe";
+        };
+        packageRequires = [ mallard-mode yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/mallard-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    malyon = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "malyon";
+        ename = "malyon";
+        version = "20161208.1325";
+        src = fetchFromGitHub {
+          owner = "speedenator";
+          repo = "malyon";
+          rev = "0d9882650720b4a791556f5e2d917388965d6fc0";
+          sha256 = "0an1yvp0p624rxd8n5phiwvznw35ripqhlwzwyv2bw7lc1rscllr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/malyon";
+          sha256 = "050kj4c1vp9f3fiskf8hld7w46092n4jipdga226x97igx575g3r";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/malyon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    man-commands = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "man-commands";
+        ename = "man-commands";
+        version = "20151221.1421";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "man-commands";
+          rev = "f4ba0c3790855d7544dff92d470d212f24de1d9d";
+          sha256 = "1lfq4hsq2n33l58ja5kzy6bwk9jxbcdsg6y8gqlk71lcslzqldrk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/man-commands";
+          sha256 = "1yl7y0k24gydldfs406v1n523q46m9x6in6pgljgjnjravc67wnq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/man-commands";
+          license = lib.licenses.free;
+        };
+      }) {};
+    manage-minor-mode = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "manage-minor-mode";
+        ename = "manage-minor-mode";
+        version = "20140310.900";
+        src = fetchFromGitHub {
+          owner = "ShingoFukuyama";
+          repo = "manage-minor-mode";
+          rev = "a62d044455a022a12749a33e70dff7b2ec8e3561";
+          sha256 = "0iq573daxcfpgw6mjhb7ayn95g5p8ayyqs9r1rljdzff35jyfkpw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/manage-minor-mode";
+          sha256 = "0ljdca9b08dw0kx679jmq0wc484xcpbmzwx8zkncw642pnbj9q0j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/manage-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mandm-theme = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "mandm-theme";
+        ename = "mandm-theme";
+        version = "20180915.1240";
+        src = fetchFromGitHub {
+          owner = "choppsv1";
+          repo = "emacs-mandm-theme";
+          rev = "b560aa0129c55a2f4fcc5e67a7d6c66ee4dc3124";
+          sha256 = "17af3bs55c6bxf1izvfgg0kag5az64ncbabgbh6ry14nv3r9lwy6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mandm-theme";
+          sha256 = "0mvzn29ljd3az6axyqq88vkkf1vpcvslc1svlnbyrpdfinphd0mx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mandm-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mandoku = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , git
+                           , github-clone
+                           , lib
+                           , magit
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "mandoku";
+        ename = "mandoku";
+        version = "20180403.406";
+        src = fetchFromGitHub {
+          owner = "mandoku";
+          repo = "mandoku";
+          rev = "e3b7678762e9824861b1ce775a94b05b096164f5";
+          sha256 = "119q1f3xv024q9inw20c3xb194mgn11igs3x7pqdfapyinrzz6p0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mandoku";
+          sha256 = "1pg7ir3y6yk92kfs5agbxapcxf7gy60m353rjv8g3kfkx5zyh3mv";
+          name = "recipe";
+        };
+        packageRequires = [ git github-clone magit org ];
+        meta = {
+          homepage = "https://melpa.org/#/mandoku";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mandoku-tls = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , github-clone
+                               , helm
+                               , helm-charinfo
+                               , hydra
+                               , lib
+                               , mandoku
+                               , melpaBuild
+                               , org }:
+      melpaBuild {
+        pname = "mandoku-tls";
+        ename = "mandoku-tls";
+        version = "20171117.1840";
+        src = fetchFromGitHub {
+          owner = "mandoku";
+          repo = "mandoku-tls";
+          rev = "ffeebf5bd451ac1806ddfe1744fbbd036a56f902";
+          sha256 = "16399qifjj4hnfw4a62jwxfwnc7k8lmiy3bz8iwzlc91jjic7zdc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mandoku-tls";
+          sha256 = "0zny1l548rvjsbbzj47wysz6gk1sqxvpj215r3w84vw5dyrn78bz";
+          name = "recipe";
+        };
+        packageRequires = [
+          emacs
+          github-clone
+          helm
+          helm-charinfo
+          hydra
+          mandoku
+          org
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/mandoku-tls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    map-progress = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "map-progress";
+        ename = "map-progress";
+        version = "20140310.1432";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "map-progress";
+          rev = "3167eb218510953fb97e7d50948a625eaa3f0005";
+          sha256 = "0pd6bh7wrrh59blp86a2jl2vi4qkzx49z0hy7dkc71ccg0wjsgz1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/map-progress";
+          sha256 = "0zc5vii72gbfwbb35w8m30c8r9zck971hwgcn1a4wjczgn4vkln7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/map-progress";
+          license = lib.licenses.free;
+        };
+      }) {};
+    map-regexp = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "map-regexp";
+        ename = "map-regexp";
+        version = "20130522.1403";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "map-regexp";
+          rev = "b8e06284ec1c593d7d2bda5f35597a63de46333f";
+          sha256 = "0kk1sk3cr4dbmgq4wzml8kdf14dn9jbyq4bwmvk0i7dic9vwn21c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/map-regexp";
+          sha256 = "0yiif0033lhaqggywzfizfia3siggwcz7yv4z7przhnr04akdmbj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/map-regexp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    marcopolo = callPackage ({ dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , pkg-info
+                             , request
+                             , s }:
+      melpaBuild {
+        pname = "marcopolo";
+        ename = "marcopolo";
+        version = "20160421.304";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "marcopolo";
+          rev = "85db828f2bb4346a811b3326349b1c6d0aae4601";
+          sha256 = "1qf724y1zq3z6fzm23qhwjl2knhs49nbz0vizwf8g9s51bk6bny2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/marcopolo";
+          sha256 = "1nbck1m7lhync7n474578d2g1zc72c841hi236xjbdd2lnxz3zz0";
+          name = "recipe";
+        };
+        packageRequires = [ dash pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/marcopolo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mark-multiple = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "mark-multiple";
+        ename = "mark-multiple";
+        version = "20121118.754";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "mark-multiple.el";
+          rev = "f6a53c7c5283d640ae718f4548b0fda78877a375";
+          sha256 = "1x3anvy3hlmydxyfzr1rhaiy502yi1yz3v54sg8wc1w7jrvwaj29";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mark-multiple";
+          sha256 = "179wd9g0smm76k92n7j2vgg8gz5wn9lczrns5ggq2yhbc77j0gn4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mark-multiple";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mark-tools = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "mark-tools";
+        ename = "mark-tools";
+        version = "20130614.325";
+        src = fetchFromGitHub {
+          owner = "stsquad";
+          repo = "emacs-mark-tools";
+          rev = "a11b61effa90bd0abc876d12573674d36fc17f0c";
+          sha256 = "0k4zvbs09mkr8vdffv18s55rn9cyxldzav9vw04lm7v296k94ivz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mark-tools";
+          sha256 = "1688y7lnzhwdva2ildjabzi10i87klfsgvs947i7gfgxl7jwhisq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mark-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdown-mode = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "markdown-mode";
+        ename = "markdown-mode";
+        version = "20181112.729";
+        src = fetchFromGitHub {
+          owner = "jrblevin";
+          repo = "markdown-mode";
+          rev = "d18a8f856d19dfac8fa6e6e72b2448e262045fcc";
+          sha256 = "1cw2nlybzip195xcp79wnwj05b0xw69b06r3pjmfl99pw0cdl41d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdown-mode";
+          sha256 = "0gfb3hp87kpcrvxax3m5hsaclwwk1qmxc73cg26smzd1kjfwgz14";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/markdown-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdown-mode-plus = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , markdown-mode
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "markdown-mode-plus";
+        ename = "markdown-mode+";
+        version = "20170320.1404";
+        src = fetchFromGitHub {
+          owner = "milkypostman";
+          repo = "markdown-mode-plus";
+          rev = "411d079f4430a33c34ec0bbcb1535fe1145a2509";
+          sha256 = "0427cxvykmz8kz1gnn27yc9c4z8djyy6m9qz6wbd4np1cgqlmly2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdown-mode+";
+          sha256 = "1535kcj9nmcgmk2448jxc0jmnqy7f50cw2ngffjq5w8bfhgf7q00";
+          name = "recipe";
+        };
+        packageRequires = [ markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/markdown-mode+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdown-preview-eww = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "markdown-preview-eww";
+        ename = "markdown-preview-eww";
+        version = "20160111.702";
+        src = fetchFromGitHub {
+          owner = "niku";
+          repo = "markdown-preview-eww";
+          rev = "5853f836425c877c8a956501f0adda137ef1d3b7";
+          sha256 = "1i5gr3j9dq41p2zl4bfyvzv6i5z7hgrxzrycmbdc3s7nja36k9z4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdown-preview-eww";
+          sha256 = "0j6924f84is41dspib68y5lnz1f8nm7pqyhv47alxra50cjrpxnx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/markdown-preview-eww";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdown-preview-mode = callPackage ({ cl-lib ? null
+                                         , emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , markdown-mode
+                                         , melpaBuild
+                                         , uuidgen
+                                         , web-server
+                                         , websocket }:
+      melpaBuild {
+        pname = "markdown-preview-mode";
+        ename = "markdown-preview-mode";
+        version = "20180929.25";
+        src = fetchFromGitHub {
+          owner = "ancane";
+          repo = "markdown-preview-mode";
+          rev = "cba12b77764df0fd3cf7008073df1badfa216073";
+          sha256 = "1sdwqkkhjky8gc4j7l52vi9m3g5czd1qjql5fp4ppfci9hh15fxd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdown-preview-mode";
+          sha256 = "1cam5wfxca91q3i1kl0qbdvnfy62hr5ksargi4430kgaz34bcbyn";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          emacs
+          markdown-mode
+          uuidgen
+          web-server
+          websocket
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/markdown-preview-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdown-toc = callPackage ({ dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , markdown-mode
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "markdown-toc";
+        ename = "markdown-toc";
+        version = "20170711.1249";
+        src = fetchFromGitHub {
+          owner = "ardumont";
+          repo = "markdown-toc";
+          rev = "7038f4f6d5c2bc7e4aea89699a607ac2b7dd16a8";
+          sha256 = "1kvf30ib1kxp29k1xwixkq6l4jjr3q3g1wpvh9yfzk5ld97zmry1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdown-toc";
+          sha256 = "0slky735yzmbfi4ld264vw64b4a4nllhywp19ya0sljbsfycbihv";
+          name = "recipe";
+        };
+        packageRequires = [ dash markdown-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/markdown-toc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdownfmt = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "markdownfmt";
+        ename = "markdownfmt";
+        version = "20160609.541";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "emacs-markdownfmt";
+          rev = "af83cd00fafcaa837ffdb50d1fa2b0ac952f16c0";
+          sha256 = "1alkjvs21wlai742qgcm0bgf3z3c0f10xgalz48gi4vmwn6in7r7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdownfmt";
+          sha256 = "1wzsw90z988bm94cw4jw5gzjcicgiz4qgn1nsdm8nim9rp43bj17";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/markdownfmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markup = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "markup";
+        ename = "markup";
+        version = "20170420.429";
+        src = fetchFromGitHub {
+          owner = "leoc";
+          repo = "markup.el";
+          rev = "876da2d3f23473475bb0fd0a1480ae11d2671291";
+          sha256 = "0rggadka5aqgrik3qky6s75s5yb5bfj6fcpxjz1iyrwi0fka0akd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markup";
+          sha256 = "0yw4b42nc2n7nanqvj596hwjf0p4qc7x6g2d9g5cwi7975iak8pf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/markup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markup-faces = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "markup-faces";
+        ename = "markup-faces";
+        version = "20141110.17";
+        src = fetchFromGitHub {
+          owner = "sensorflo";
+          repo = "markup-faces";
+          rev = "98a807ed82473eb41c6a201ed7ef816d6bcd67b0";
+          sha256 = "1w6i1m7xdr9cijnmdj35cl99r12vl83qws0qlfhrgvisilshnr27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markup-faces";
+          sha256 = "06fawlv4ih2lsmk7x6h9p5rppl8vw2w3nvlss95kb8fj5fwf7mw9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/markup-faces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    marmalade-client = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , gh
+                                    , kv
+                                    , lib
+                                    , melpaBuild
+                                    , web }:
+      melpaBuild {
+        pname = "marmalade-client";
+        ename = "marmalade-client";
+        version = "20141231.1207";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-marmalade-upload";
+          rev = "f315dea57e4fbebd9ee0668c0bafd4c45c7b754a";
+          sha256 = "017k109nfif5mzkj547py8pdnzlr4sxb74yqqsl944znflq67blr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/marmalade-client";
+          sha256 = "0llwqwwxrf7qdkpdb03ij0iinll0vc9qr557zyr3bn5zb4fad1sq";
+          name = "recipe";
+        };
+        packageRequires = [ gh kv web ];
+        meta = {
+          homepage = "https://melpa.org/#/marmalade-client";
+          license = lib.licenses.free;
+        };
+      }) {};
+    marshal = callPackage ({ eieio ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , ht
+                           , json ? null
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "marshal";
+        ename = "marshal";
+        version = "20180124.439";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "marshal.el";
+          rev = "f038689cbd5b3680b80b44edd0c7a63ca3038e26";
+          sha256 = "1n79im1r7h1ilvppn9alqwl96zhyxbm5hk7kbmqh022dggw0cx15";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/marshal";
+          sha256 = "17ikd8f1k42f28d4v5dn83zb44bsx7g336db60q068w6z8d4jbgl";
+          name = "recipe";
+        };
+        packageRequires = [ eieio ht json ];
+        meta = {
+          homepage = "https://melpa.org/#/marshal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    maruo-macro-mode = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "maruo-macro-mode";
+        ename = "maruo-macro-mode";
+        version = "20160616.649";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "maruo-macro-mode.el";
+          rev = "8fc9a38ad051eafa8eb94038711acc52c5d1d8d5";
+          sha256 = "0r005yap50jf6b5jc7314ds17g1nn2irn1agidi74fbrwfbndxgm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/maruo-macro-mode";
+          sha256 = "1h7pclpqkkgi8z9yp5n79ffna809yf336bz6082l541xc06pmvcv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/maruo-macro-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mastodon = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "mastodon";
+        ename = "mastodon";
+        version = "20180810.1920";
+        src = fetchFromGitHub {
+          owner = "jdenen";
+          repo = "mastodon.el";
+          rev = "e4482232a5bb2a3036664eba598bf12506fe0b6e";
+          sha256 = "07fq3k62j9cz1567i2x11q1j9pwybb7qxwcilnnrphf4aibgq6kn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mastodon";
+          sha256 = "1bsyf4j6zs9gin0k7p22yv5gaqd6m3vdc2fiagfbs7gxsmhb6p4i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mastodon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    material-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "material-theme";
+        ename = "material-theme";
+        version = "20171123.1040";
+        src = fetchFromGitHub {
+          owner = "cpaulik";
+          repo = "emacs-material-theme";
+          rev = "c59b4874914b5b28068be25292690325f19739dd";
+          sha256 = "1sp2h2n0ihp0r6q7c1861awg7rqh6bcxz4hgnny1gj5vjz9h7rch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/material-theme";
+          sha256 = "1d259avldc5fq121xrqv53h8s4f4bp6b89nz2rvjhygz7f8hargq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/material-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    math-symbol-lists = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "math-symbol-lists";
+        ename = "math-symbol-lists";
+        version = "20170221.553";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "math-symbol-lists";
+          rev = "1af8fdcab7941a62287c2d04b8876e1538f39c60";
+          sha256 = "1kj9r2mvmvnj6m2bwhbj8fspqiq8fdrhkaj0ir43f7qmd4imblsj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/math-symbol-lists";
+          sha256 = "01j11k29acj0b1pcapmgi2d2s3p50bkms21i2qcj0cbqgz8h6s27";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/math-symbol-lists";
+          license = lib.licenses.free;
+        };
+      }) {};
+    math-symbols = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "math-symbols";
+        ename = "math-symbols";
+        version = "20170818.759";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "math-symbols";
+          rev = "3f8b466f002e1b28ddbe9a6f236c9a1352adb17d";
+          sha256 = "0r63acgicb43p05gsiz98m7077sj72c1miz18fi8qbzi02p9qjr7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/math-symbols";
+          sha256 = "0sx9cgyk56npjd6z78y9cldbvjl5ipl7k1nc1sylg1iggkbwxnqx";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/math-symbols";
+          license = lib.licenses.free;
+        };
+      }) {};
+    matlab-mode = callPackage ({ fetchgit
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "matlab-mode";
+        ename = "matlab-mode";
+        version = "20180928.826";
+        src = fetchgit {
+          url = "https://git.code.sf.net/p/matlab-emacs/src";
+          rev = "3fbca4259b2584bde08df07ba51944d7e3e2b4f4";
+          sha256 = "1diqx2k16iyj5a7kcc58kyl6mzw05cyq6ia4z3fciz716gkspgpi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/matlab-mode";
+          sha256 = "1q3sdmahf915ix4lrv65cxsfh6hrs91c8pmyixbqmbhifqi33d0q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/matlab-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    maude-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "maude-mode";
+        ename = "maude-mode";
+        version = "20160222.807";
+        src = fetchFromGitHub {
+          owner = "rudi";
+          repo = "maude-mode";
+          rev = "c9543bb8a172fa77af592388e7f520a4a6d38987";
+          sha256 = "1sn9bdaq3mf2vss5gzmxhnp9fz43cakxh36qjdgqrvx302nlnv52";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/maude-mode";
+          sha256 = "1w5v3r905xkwchkm2gzvzpswba5p2m7hqpyg9fzq2ldlr8kk7ah3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/maude-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    maven-test-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , s }:
+      melpaBuild {
+        pname = "maven-test-mode";
+        ename = "maven-test-mode";
+        version = "20141219.2157";
+        src = fetchFromGitHub {
+          owner = "rranelli";
+          repo = "maven-test-mode";
+          rev = "a19151861df2ad8ae4880a2e7c86ddf848cb569a";
+          sha256 = "1xn2yyr8mr90cynbxgv0h5v180pzf0ydnjr9spg34mrdicqlki6c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/maven-test-mode";
+          sha256 = "1k9w51rh003p67yalzq1w8am40nnr2khyyb5y4bwxgpms8z391fm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/maven-test-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    maxframe = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "maxframe";
+        ename = "maxframe";
+        version = "20170120.905";
+        src = fetchFromGitHub {
+          owner = "rmm5t";
+          repo = "maxframe.el";
+          rev = "13bda6dd9f1d96aa4b9dd9957a26cefd399a7772";
+          sha256 = "0kh8yk1py9zg62zfl289hszhq3kl3mqmjk6z5vqkw3mcik4lm69g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/maxframe";
+          sha256 = "1lxj60qcvv8vakdq79k1brzv3ki74kajrx8620dzx76bnfkryxk8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/maxframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mb-url = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "mb-url";
+        ename = "mb-url";
+        version = "20181011.1052";
+        src = fetchFromGitHub {
+          owner = "dochang";
+          repo = "mb-url";
+          rev = "224b92353094aec25c9c46159d71ab2db5831498";
+          sha256 = "07mbb26wfknr9sv3rlharaswpqj6h15kzrgws9mibzsivmfrxlzj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mb-url";
+          sha256 = "1nf8ssan00qsn3d4dc6h6qzdwqzh977qb5d2m33kiwi6qb98988h";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/mb-url";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mbe = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mbe";
+        ename = "mbe";
+        version = "20151126.334";
+        src = fetchFromGitHub {
+          owner = "ijp";
+          repo = "mbe.el";
+          rev = "bb10aa8f26bb7e9b1d5746934c94edb00402940c";
+          sha256 = "1zywygdgnp2zr8fxqhl0cbrgbl43931k936b9imhqi96p6622pb6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mbe";
+          sha256 = "0h18mbcjy8nh4gl12kg2v8x6ps320yk7sbgq5alqnx2shp80kri3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mbe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mbo70s-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "mbo70s-theme";
+        ename = "mbo70s-theme";
+        version = "20170808.615";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-mbo70s-theme";
+          rev = "bed3db8965708ed4e9482b224a9b084765c052f2";
+          sha256 = "19hha9xwfqvdgsws69x0mcm93yfllp44hdl1xw9zlhj8f4ihizh5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mbo70s-theme";
+          sha256 = "1abx2rw09xxp122ff7i9sry5djd4l6vn4lfzxs92rknjzkyc40pb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mbo70s-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mbsync = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "mbsync";
+        ename = "mbsync";
+        version = "20181001.2340";
+        src = fetchFromGitHub {
+          owner = "dimitri";
+          repo = "mbsync-el";
+          rev = "f549eccde6033449d24cd5b6148599484850c403";
+          sha256 = "1pdj41rq3pq4jdb5pma5j495xj7w7jgn8pnz1z1zwg75pn7ydfp0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mbsync";
+          sha256 = "1q5g76mspi24zwbs7h4m8bmkhab4drskha4d9b516w1f1cyg6hb6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mbsync";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mc-extras = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , multiple-cursors }:
+      melpaBuild {
+        pname = "mc-extras";
+        ename = "mc-extras";
+        version = "20181109.935";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "mc-extras.el";
+          rev = "053abc52181b8718559d7361a587bbb795faf164";
+          sha256 = "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mc-extras";
+          sha256 = "0b110x6ygc95v5pb9lk1i731x5s6dagl5afzv37l1qchys36xrym";
+          name = "recipe";
+        };
+        packageRequires = [ multiple-cursors ];
+        meta = {
+          homepage = "https://melpa.org/#/mc-extras";
+          license = lib.licenses.free;
+        };
+      }) {};
+    md-readme = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "md-readme";
+        ename = "md-readme";
+        version = "20160811.946";
+        src = fetchFromGitHub {
+          owner = "thomas11";
+          repo = "md-readme";
+          rev = "bf818dd847c8b06b3b5100c5d3cf24cf96662528";
+          sha256 = "0gyjadkv572v3zilxivbiz28pvqh0jmi5bh5la1hyim0qnxymli8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/md-readme";
+          sha256 = "1krq0f79jjrlihr2aqq87pxdqixv2zdjw4hm732sz79g996yxyw3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/md-readme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    md4rd = callPackage ({ cl-lib ? null
+                         , dash
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , hierarchy
+                         , lib
+                         , melpaBuild
+                         , request
+                         , s
+                         , tree-mode }:
+      melpaBuild {
+        pname = "md4rd";
+        ename = "md4rd";
+        version = "20180625.2236";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "md4rd";
+          rev = "3a6c5055330f1cad455cbeb6ad6f9eb4751a8309";
+          sha256 = "1c0g6f6myllqz6mymqxbpi392fg1hvzas0ah2wmyw5ycmaafpz3d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/md4rd";
+          sha256 = "0ayr5qw0cz7bd46djfhm8slr2kfgssi5bsnzqcasr8n4lyg9jvfc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs hierarchy request s tree-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/md4rd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mediawiki = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "mediawiki";
+        ename = "mediawiki";
+        version = "20170812.2255";
+        src = fetchFromGitHub {
+          owner = "hexmode";
+          repo = "mediawiki-el";
+          rev = "8473e12d1839f5287a4227586bf117dad820f867";
+          sha256 = "03rpj3yrk3i1l9yjnamnx38idn6y4zi9zg53bc83sx3g2b4m5v04";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mediawiki";
+          sha256 = "17cbrzfdp6jbbf74mn2fi1cwv7d1hvdbw9j84p43jzscnaa5ikx6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mediawiki";
+          license = lib.licenses.free;
+        };
+      }) {};
+    meghanada = callPackage ({ company
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , flycheck
+                             , lib
+                             , melpaBuild
+                             , yasnippet }:
+      melpaBuild {
+        pname = "meghanada";
+        ename = "meghanada";
+        version = "20181116.502";
+        src = fetchFromGitHub {
+          owner = "mopemope";
+          repo = "meghanada-emacs";
+          rev = "4914ab1496d88251f179dc3b6158fc65e999804a";
+          sha256 = "1mzl09fn3wxkhxpa4xzn306blzk07gdyzghf1d1vz3x6ll7r0gpk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/meghanada";
+          sha256 = "10f1fxma3lqcyv78i0p9mjpi79jfjd5lq5q60ylpxqp18nrql1s4";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs flycheck yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/meghanada";
+          license = lib.licenses.free;
+        };
+      }) {};
+    melancholy-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "melancholy-theme";
+        ename = "melancholy-theme";
+        version = "20170220.1248";
+        src = fetchFromGitHub {
+          owner = "techquila";
+          repo = "melancholy-theme";
+          rev = "a9e13ca7051731b3a2c2aece9f3e3033b9a5e41d";
+          sha256 = "13wgh3w9wh1y1ynsbz4zi2vj14h8z1kj5vhq4w6szs0y0zzjb9zj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/melancholy-theme";
+          sha256 = "1wihbv44234lwsgp5w4hmmi3pgxbcfjvs1nclv0yg600z9s8sn8w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/melancholy-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mellow-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "mellow-theme";
+        ename = "mellow-theme";
+        version = "20170808.617";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-mellow-theme";
+          rev = "2bdf18f05f5212b6f269d9a94afe2cf201766891";
+          sha256 = "0cj9lkqgiaq1s2k9ky93jgv5pfbmjznsd54r3iqkiy1zshpkir68";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mellow-theme";
+          sha256 = "0kl1psykx7akxwabszk4amszh3zil8ia4bfbjjvr6h9phgx66pb0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mellow-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    melpa-upstream-visit = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , s }:
+      melpaBuild {
+        pname = "melpa-upstream-visit";
+        ename = "melpa-upstream-visit";
+        version = "20130720.333";
+        src = fetchFromGitHub {
+          owner = "laynor";
+          repo = "melpa-upstream-visit";
+          rev = "7310c74fdead3c0f86ad6eff76cf989e63f70f66";
+          sha256 = "12cp56ppmwpdgf5afx7hd2qb8d1qq8z27191fbbf5zqw8cq5zkpd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/melpa-upstream-visit";
+          sha256 = "0j4afy9ipzr7pwkij8ab207mabd7srganlyyif9h1hvclj9svdmf";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/melpa-upstream-visit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    memoize = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "memoize";
+        ename = "memoize";
+        version = "20180614.1230";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacs-memoize";
+          rev = "9a561268ffb550b257a08710489a95cd087998b6";
+          sha256 = "1hsw7pjdy3mksg343v400068b6x7s45gzg0l74h5i4nq8bacv8km";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/memoize";
+          sha256 = "0mzz3hghnbkmxf9wgjqv3sbyxyqqzvvscazq9ybb0b41qrzm73s6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/memoize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    memolist = callPackage ({ ag
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , markdown-mode
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "memolist";
+        ename = "memolist";
+        version = "20150804.1021";
+        src = fetchFromGitHub {
+          owner = "mikanfactory";
+          repo = "memolist.el";
+          rev = "60c296e202a71e9dcf1c3936d47b5c4b95c5839f";
+          sha256 = "1jd4rjv812iv7kp4wyxdz8sk7j0442m8x2ypk6hiqis0braxnspm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/memolist";
+          sha256 = "0nvp38qbzcl6dcayjndw32d3r9h8vf2n29i678s1yr280ll8xw6w";
+          name = "recipe";
+        };
+        packageRequires = [ ag markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/memolist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mentor = callPackage ({ async
+                          , cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , seq
+                          , xml-rpc }:
+      melpaBuild {
+        pname = "mentor";
+        ename = "mentor";
+        version = "20181029.1307";
+        src = fetchFromGitHub {
+          owner = "skangas";
+          repo = "mentor";
+          rev = "9415472470ff23ee9600d94123c51c455d63018d";
+          sha256 = "05gfprcrh9p06arsni58nf60inlf1zbd18i678r9xd4q0v35k491";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mentor";
+          sha256 = "0nkf7f90m2qf11l97zwvb114yrpbqk1xxr2bh2nvbx8m1c8nad9s";
+          name = "recipe";
+        };
+        packageRequires = [ async cl-lib seq xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/mentor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    merlin = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "merlin";
+        ename = "merlin";
+        version = "20180816.115";
+        src = fetchFromGitHub {
+          owner = "ocaml";
+          repo = "merlin";
+          rev = "8bcd99c8e5de984f04966674dcbb1c40c5d89045";
+          sha256 = "1dd9mj8z6xpbvvgp489nxsscj8hcar4mx920d61cyxnxgz1phq5p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/merlin";
+          sha256 = "0r4wc5ann6239bagj364yyzw4y3lcpkl5nnn0vmx4hgkwdg509fn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/merlin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    merlin-eldoc = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , merlin }:
+      melpaBuild {
+        pname = "merlin-eldoc";
+        ename = "merlin-eldoc";
+        version = "20180830.316";
+        src = fetchFromGitHub {
+          owner = "Khady";
+          repo = "merlin-eldoc";
+          rev = "85dec436648f43c050048524fae7a3ad7ad4c019";
+          sha256 = "1kpdz540j32hpjykyagpwvzh7cf4gx2rfp3pdq2agc7b3bsg2jyz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/merlin-eldoc";
+          sha256 = "0bx383nxd97as0d362n1jn62k2rypxvxhcjasgwf0cr8vxr244fp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs merlin ];
+        meta = {
+          homepage = "https://melpa.org/#/merlin-eldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    meson-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "meson-mode";
+        ename = "meson-mode";
+        version = "20181115.1325";
+        src = fetchFromGitHub {
+          owner = "wentasah";
+          repo = "meson-mode";
+          rev = "b507a87455af906e6c49aa4af70eba5b1d1af9ef";
+          sha256 = "046kf04vqq1wf9ncxq40fcjcgl18hk4vii5wl3m08rpvdwbnmfwr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/meson-mode";
+          sha256 = "16yg217ghx6pvlxha2swznkg12c2a9hhyi0hnsbqdj2ijcdzca80";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/meson-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    messages-are-flowing = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "messages-are-flowing";
+        ename = "messages-are-flowing";
+        version = "20170218.1720";
+        src = fetchFromGitHub {
+          owner = "legoscia";
+          repo = "messages-are-flowing";
+          rev = "649061753b67b24c54a2eaadc8b3218cafae7376";
+          sha256 = "01y9cx5d5sqgvg97dzrnyi7m3yp0q3hm2yqcgknkp111afcgiwm7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/messages-are-flowing";
+          sha256 = "0v74b7cjj87kncndxfpfs6dcc4jcl18wpbirffl7dw6mac2anw6m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/messages-are-flowing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    meta-presenter = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "meta-presenter";
+        ename = "meta-presenter";
+        version = "20170425.1934";
+        src = fetchFromGitHub {
+          owner = "myTerminal";
+          repo = "meta-presenter";
+          rev = "7ba8d30e36ce6de6e563c7f3a41a24d288787c48";
+          sha256 = "0m23qsbai8j0bx0px7v3ipw92i4y8maxibna6zqrw3msv1j3s7cw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/meta-presenter";
+          sha256 = "0f70cfa91wavchlx8d9hdlgq90cmnylhbg2dbw603rzjkyvslp5d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/meta-presenter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    metalheart-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "metalheart-theme";
+        ename = "metalheart-theme";
+        version = "20160709.2341";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "MetalHeart-Emacs";
+          rev = "ec98ea2c11dc1213dae8cbe1fe0cee73ca138bb2";
+          sha256 = "0pc86qh74i6vr0ap2j2sn4nl2c0vv15m4m1myyjmggfxx2f27nnc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/metalheart-theme";
+          sha256 = "1xqql1mcwp52plm1gp6q4m9zij2w360y15lnjsz9xgjqvslr7gy5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/metalheart-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    metamorph = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "metamorph";
+        ename = "metamorph";
+        version = "20180930.1328";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "metamorph";
+          rev = "d9dc7037b7eed7b3fe85ea50e91f332e3f831514";
+          sha256 = "1zprgjh1wyqbpy1qvng57r6jm10k6vffpb6znm47fm8xx1h0s8k4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/metamorph";
+          sha256 = "0mqzqwwzb4x2j6jh6acx5ni9z5k56586jv4n88d3fi4vry9k4mv3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/metamorph";
+          license = lib.licenses.free;
+        };
+      }) {};
+    metascript-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "metascript-mode";
+        ename = "metascript-mode";
+        version = "20150708.1757";
+        src = fetchFromGitHub {
+          owner = "metascript";
+          repo = "metascript-mode";
+          rev = "edb361c7b0e5de231e5334a17b90652fb1df78f9";
+          sha256 = "1rascpmv17dksyn9y0llmjb8r4484x5ax54w6r83k1x7ha1iacx5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/metascript-mode";
+          sha256 = "1kgs4ki0s6bxx2ri6zxmsy2b2w56gnr9hjkr6302wcmp3qy7clwn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/metascript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    metaweblog = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , xml-rpc }:
+      melpaBuild {
+        pname = "metaweblog";
+        ename = "metaweblog";
+        version = "20171216.1840";
+        src = fetchFromGitHub {
+          owner = "org2blog";
+          repo = "metaweblog";
+          rev = "aa14380eb7e7b879a0c16c96866b20a987cd3f2a";
+          sha256 = "146w9laysdqbikpzr2gc9vnjrdsa87d8i13f2swlh1kvq2dn3rz5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/metaweblog";
+          sha256 = "0qgmcvq1fhgljia9ncjgvgrv0mzih0l9mglwbwcszn613wmx8bkg";
+          name = "recipe";
+        };
+        packageRequires = [ xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/metaweblog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mew = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mew";
+        ename = "mew";
+        version = "20180910.1823";
+        src = fetchFromGitHub {
+          owner = "kazu-yamamoto";
+          repo = "Mew";
+          rev = "91a78fd6c6d74d0881d68c51dcd9be8cae065c02";
+          sha256 = "1ydiqafai6ji57p807iwlm3hzxqs19ghc5j3f19r6w17y65w06m1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mew";
+          sha256 = "0423xxn3cw6jmsd7vrw30hx9phga5chxzi6x7cvpswg1mhcyn9fk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mew";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mexican-holidays = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "mexican-holidays";
+        ename = "mexican-holidays";
+        version = "20160109.1342";
+        src = fetchFromGitHub {
+          owner = "sggutier";
+          repo = "mexican-holidays";
+          rev = "43ced1f9e40a04be6927d1a1be64060f9be4f5c5";
+          sha256 = "0bhllmyk1r9y63jw5gx10v09791w33lc54qs31gcxbnss094l6py";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mexican-holidays";
+          sha256 = "0an6kkr2vwkqc9219rgn74683h7f4cmd1g74lirn0qhqcfcb5yrc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mexican-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mgmtconfig-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "mgmtconfig-mode";
+        ename = "mgmtconfig-mode";
+        version = "20180222.1257";
+        src = fetchFromGitHub {
+          owner = "purpleidea";
+          repo = "mgmt";
+          rev = "f01eea33e9b396f1e7501944216271d0d9b8df6f";
+          sha256 = "19grypbx6kxgdlqnj1h7rz2clvrwk98z5sk9dar0077ncp2k1f80";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mgmtconfig-mode";
+          sha256 = "0bdjaqfk68av4lfc4cpacrl2mxvimplfkbadi9l6wb65vlqz6sil";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mgmtconfig-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mhc = callPackage ({ calfw
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mhc";
+        ename = "mhc";
+        version = "20180723.2158";
+        src = fetchFromGitHub {
+          owner = "yoshinari-nomura";
+          repo = "mhc";
+          rev = "2cd1e97fa2e32e7dfde5ee7878fb9a915fb6a3b8";
+          sha256 = "1rr7205q2gwi8bw4hab7p7061bc15sqrj4mam02hlplg7dcj476q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mhc";
+          sha256 = "02ikn9hx0kcfc2xrx4f38zpkfi6vgz7chcxk6q5d0vcsp93b4lql";
+          name = "recipe";
+        };
+        packageRequires = [ calfw ];
+        meta = {
+          homepage = "https://melpa.org/#/mhc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mic-paren = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "mic-paren";
+        ename = "mic-paren";
+        version = "20170731.1207";
+        src = fetchFromGitHub {
+          owner = "emacsattic";
+          repo = "mic-paren";
+          rev = "d0410c7d805c9aaf51a1bcefaaef092bed5824c4";
+          sha256 = "0f24ibzgra94bwal8b0dpjxa11n42gkmanqswfnjhlvx052v9dxr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mic-paren";
+          sha256 = "17j0b8jyr0zx6zds2dz5fzvarm2wh8l5hxds2s90kh5z0kk23r07";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mic-paren";
+          license = lib.licenses.free;
+        };
+      }) {};
+    micgoline = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , powerline }:
+      melpaBuild {
+        pname = "micgoline";
+        ename = "micgoline";
+        version = "20160414.2026";
+        src = fetchFromGitHub {
+          owner = "yzprofile";
+          repo = "micgoline";
+          rev = "e3e2effe4846175a3b52b4092c0c134ced5978d8";
+          sha256 = "1cmpvg4x812hsl764zaq96y8jvjp99nljp552bbx52lbbnb1w5nr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/micgoline";
+          sha256 = "0xixcy006my2s0wn0isiag0b4rm38kswa5m0xnhg5n30qjjfzf4i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs powerline ];
+        meta = {
+          homepage = "https://melpa.org/#/micgoline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    midje-mode = callPackage ({ cider
+                              , clojure-mode
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "midje-mode";
+        ename = "midje-mode";
+        version = "20170808.2103";
+        src = fetchFromGitHub {
+          owner = "dnaumov";
+          repo = "midje-mode";
+          rev = "10ad5b6084cd03d5cd268b486a7c3c246d85535f";
+          sha256 = "0nag9ks7qbg40h9z954v42x8zi65wbgfhviwvxvb2bmbzv4m4pbs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/midje-mode";
+          sha256 = "16g57mwkm3ypnyqniy1lj9nfn5wj7cyndb5fhl3fym773ywn6hip";
+          name = "recipe";
+        };
+        packageRequires = [ cider clojure-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/midje-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    migemo = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "migemo";
+        ename = "migemo";
+        version = "20160924.741";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "migemo";
+          rev = "e4744efae1b2fdea2bbd2ceaff0f6ea0bb739f5a";
+          sha256 = "12p50kg2h78qi8892jj4g3wa4fjm7gjiqf6qw52zyx3kvgwxgxwa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/migemo";
+          sha256 = "0y49imdwygv5zd7cyh9ngda4gyb2mld2a4s7zh4yzlh7z5ha9qkr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/migemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    milkode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "milkode";
+        ename = "milkode";
+        version = "20140926.2229";
+        src = fetchFromGitHub {
+          owner = "ongaeshi";
+          repo = "emacs-milkode";
+          rev = "ba97e2aeefa1d9d0b3835bf08edd0de248b0c513";
+          sha256 = "1qg64mxsm2cswk52mlj7sx7k6gfnrsdwnf68i7cachri0i8aq4ap";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/milkode";
+          sha256 = "07v6xgalx7vcw5sghckwvz584746cba05ql8flv8n556glm7hibh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/milkode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minesweeper = callPackage ({ fetchhg
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "minesweeper";
+        ename = "minesweeper";
+        version = "20150413.2222";
+        src = fetchhg {
+          url = "https://bitbucket.com/zck/minesweeper.el";
+          rev = "d29af12fc611";
+          sha256 = "1b2kn4c90hl07lzdg10wamd4lq8f24wmaj4zvr728pwyga99b2av";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minesweeper";
+          sha256 = "1n6r3a3rl09pv4jvb7ald1gaipqylfchggza973qv9rgh5g90nag";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minesweeper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mingus = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , libmpdee
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "mingus";
+        ename = "mingus";
+        version = "20180712.2336";
+        src = fetchFromGitHub {
+          owner = "pft";
+          repo = "mingus";
+          rev = "686d383f48b196c916c5fcb6ddc3bcff8a0c4b14";
+          sha256 = "0vv6aqalbpshr0fadh248lirqa6a0dcixccby2kbvdsf79s7xzx8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mingus";
+          sha256 = "0vw09qk56l792706vvp465f40shf678mcmdh7iw8wsjix4401bzi";
+          name = "recipe";
+        };
+        packageRequires = [ libmpdee ];
+        meta = {
+          homepage = "https://melpa.org/#/mingus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mini-header-line = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "mini-header-line";
+        ename = "mini-header-line";
+        version = "20170621.521";
+        src = fetchFromGitHub {
+          owner = "ksjogo";
+          repo = "mini-header-line";
+          rev = "73b6724e0a26c4528d93768191c8aa59e6bce2e5";
+          sha256 = "187xynmpgkx498an246ywrqdhyyp2ag1l7yxnm0x0rbfgw67q5j1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mini-header-line";
+          sha256 = "1yg8i7gsmiv8zwl1wqvgrh2xl2hm5nn3q11rz4hpyxw26355i817";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mini-header-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minibuf-isearch = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "minibuf-isearch";
+        ename = "minibuf-isearch";
+        version = "20151226.1143";
+        src = fetchFromGitHub {
+          owner = "knagano";
+          repo = "minibuf-isearch";
+          rev = "2846c6ac369ee623dad4cd3c8a7a6d9078965516";
+          sha256 = "1n4b039448826w2jcsv4r2iw3v2vlrsxw8dbci8wcfigmkbfc879";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minibuf-isearch";
+          sha256 = "0n36d152lc53zj9jy38b0c7hlww0z6hx94y3x2njy6cmh3p5g8nh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minibuf-isearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minibuffer-complete-cycle = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "minibuffer-complete-cycle";
+        ename = "minibuffer-complete-cycle";
+        version = "20130813.945";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "minibuffer-complete-cycle";
+          rev = "3df80135887d0169e02294a948711f6dfeca4a6f";
+          sha256 = "1zyb6c3xwdzk7dpn7xi0mvbcjdfxvzz1a0zlbs053pfar8iim5fk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minibuffer-complete-cycle";
+          sha256 = "0y1mxs6q9a8lzprrlb22qff6x5mvkw4gp2l6p2js2r0j9jzyffq2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minibuffer-complete-cycle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minibuffer-cua = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "minibuffer-cua";
+        ename = "minibuffer-cua";
+        version = "20130906.434";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "minibuffer-cua.el";
+          rev = "adc4979a64f8b36e05960e9afa0746dfa9e2e4c7";
+          sha256 = "011kg76zr4hfhi2gngnc7jlmp0l0nvhmlgyc0y9bir2jbjf4yyvz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minibuffer-cua";
+          sha256 = "1ragvr73ykbvpgynnq3z0z4yzrlfhfqlwc1vbxclb8x2xmxq7pzw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minibuffer-cua";
+          license = lib.licenses.free;
+        };
+      }) {};
+    miniedit = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "miniedit";
+        ename = "miniedit";
+        version = "20100419.1045";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "miniedit";
+          rev = "e12bf659c3eb92dd8a4cb77642dc0865c54667a3";
+          sha256 = "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/miniedit";
+          sha256 = "10s407q7igdi2hsaaahbw8vckalrl7z3s6l9cflf51q16xh2ih87";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/miniedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minimal-session-saver = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "minimal-session-saver";
+        ename = "minimal-session-saver";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "minimal-session-saver";
+          rev = "ac42b6835f777a8a7e04599d8f20ec650997ba96";
+          sha256 = "0n2drkqnd02d7n5f4qlxlzlh4gkdi33w4hprndpw15gyny2i8x29";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minimal-session-saver";
+          sha256 = "1ay7wvriga28bdmarpfwagqzmmk93ri9f3idhr6z6iivwggwyy2i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minimal-session-saver";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minimal-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "minimal-theme";
+        ename = "minimal-theme";
+        version = "20160608.322";
+        src = fetchFromGitHub {
+          owner = "anler";
+          repo = "minimal-theme";
+          rev = "430e0d3fc2044c16aa9f10961841febbd60df285";
+          sha256 = "1rmcvdydgwppma1v2yajz6yzhns8bh3gdb09338jlk0nkp1akpfj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minimal-theme";
+          sha256 = "01dar95l7wjjqhbsknvsfbpvv41ka7iqd1fssckz18lgfqpb54bs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minimal-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minions = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "minions";
+        ename = "minions";
+        version = "20181030.1401";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "minions";
+          rev = "d36d2445420460c81bcd4822d0bfcbafaec2c682";
+          sha256 = "0q2y37zfxlbfvgdn70ikg3abp8vljna4ir9nyqlz1awmz5i1c43s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minions";
+          sha256 = "0ximlj93yp6646bh99r2vnayk15ky26sibrmrqqysfw1pzs4a940";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/minions";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minitest = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "minitest";
+        ename = "minitest";
+        version = "20160628.1120";
+        src = fetchFromGitHub {
+          owner = "arthurnn";
+          repo = "minitest-emacs";
+          rev = "2997ba81456f2a0f3e25b6555b491586865ebb61";
+          sha256 = "10f1caszcas39g8kz0hfx1gq1jbpcnb5wwd1c262l9lwvla85nyl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minitest";
+          sha256 = "0x6nd4kkhiw8hh79r69861pf41j8p1y39kzf2rl61zlmyjz9zpmw";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/minitest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minizinc-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "minizinc-mode";
+        ename = "minizinc-mode";
+        version = "20180201.650";
+        src = fetchFromGitHub {
+          owner = "m00nlight";
+          repo = "minizinc-mode";
+          rev = "2512521ba7f8e263a06db88df663fc6b3cca7e16";
+          sha256 = "1yrawvvn3ndzzrllh408v4a5n0y0n5p1jczdm9r8pbxqgyknbk1n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minizinc-mode";
+          sha256 = "1blb6mbyqvmdvwp477p1ggs3n6rzi9sdfvi0v1wfzmd7k749b10c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/minizinc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minor-mode-hack = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "minor-mode-hack";
+        ename = "minor-mode-hack";
+        version = "20170925.1734";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "minor-mode-hack";
+          rev = "c3aa957602c924c01fe07d48d191b8616fb3696a";
+          sha256 = "0lmcf7mv2sk33ajngxasc7kmf5qf17fccijllm3yr0lqdnxbx0pa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minor-mode-hack";
+          sha256 = "07ga48xvbi641i053bykv9v4wxhka6jhhg76b1ll24rys02az526";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minor-mode-hack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mip-mode = callPackage ({ fetchFromGitLab
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "mip-mode";
+        ename = "mip-mode";
+        version = "20151126.2217";
+        src = fetchFromGitLab {
+          owner = "gaudecker";
+          repo = "mip-mode";
+          rev = "7c88c383b4c7ed0a4c1dc397735f365c1fcb461c";
+          sha256 = "12k9ii4090dn03xvgqisl4zl4qi33054zxyfkqzzpa9wv72h4knc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mip-mode";
+          sha256 = "0jr8lzs1qzp2ki7xmm5vrdc6vmzagy8zsil0217vyl89pdfmxnyr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mip-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mips-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "mips-mode";
+        ename = "mips-mode";
+        version = "20180502.757";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-mips-mode";
+          rev = "75152fc78baa762af4f83602f6cb3c8b9bcebca3";
+          sha256 = "1bk1jfqwwrq3jr6zasyjaz16rjjqbihrn7kakgfk3szv6grvsd7p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mips-mode";
+          sha256 = "0gg18v80lbndi2yyr5nl37mz0zpamwv9ha4clajkf0bc0vplxkj7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mips-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mixed-pitch = callPackage ({ emacs
+                               , fetchFromGitLab
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "mixed-pitch";
+        ename = "mixed-pitch";
+        version = "20181004.759";
+        src = fetchFromGitLab {
+          owner = "jabranham";
+          repo = "mixed-pitch";
+          rev = "f9bcdd9e30f8370ef0607d714b9411eddf8dd866";
+          sha256 = "0wfwap23qdiagjp8c1p1mrzz4r3khb8j46sqy46mw20w7k5cn7lk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mixed-pitch";
+          sha256 = "1gda4jl946qlbf8rqm0mk493kwy8yqldr21cr583l6b6gl1nb4qf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mixed-pitch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mkdown = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , markdown-mode
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "mkdown";
+        ename = "mkdown";
+        version = "20140517.718";
+        src = fetchFromGitHub {
+          owner = "ajtulloch";
+          repo = "mkdown.el";
+          rev = "8e23de82719af6c5b53b52b3308a02b3a1fb872e";
+          sha256 = "1d08i2cfn1q446nyyji0hi9vlw7bzkpxhn6653jz2k77vd2y0wmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mkdown";
+          sha256 = "034bwwgh0w1dwawdx2nwn4d6wj65i58aqlvi60kflijfn8l3inr3";
+          name = "recipe";
+        };
+        packageRequires = [ markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/mkdown";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mmm-jinja2 = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , mmm-mode }:
+      melpaBuild {
+        pname = "mmm-jinja2";
+        ename = "mmm-jinja2";
+        version = "20170313.720";
+        src = fetchFromGitHub {
+          owner = "glynnforrest";
+          repo = "mmm-jinja2";
+          rev = "c8cb763174fa2fb61b9a0e5e0ff8cb0210f8492f";
+          sha256 = "0big2i3bg4cm14f68ncaiz2h6dk6zqiisrz4l0bv10q9kaa9q2sj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mmm-jinja2";
+          sha256 = "0zg4psrgikb8644x3vmsns0id71ni9fcpm591zn16b4j64llvgsi";
+          name = "recipe";
+        };
+        packageRequires = [ mmm-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/mmm-jinja2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mmm-mako = callPackage ({ fetchhg
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , mmm-mode }:
+      melpaBuild {
+        pname = "mmm-mako";
+        ename = "mmm-mako";
+        version = "20121019.2351";
+        src = fetchhg {
+          url = "https://bitbucket.com/pjenvey/mmm-mako";
+          rev = "5c9ff92137b5";
+          sha256 = "0rpp748ym79sxccp9pyrwri14m7624zzb80srfgjfdpysrrs0jrr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mmm-mako";
+          sha256 = "0a4af5q9wxafrid8visp30cz6073ig0c961b78vmmgqrwvvxd3kn";
+          name = "recipe";
+        };
+        packageRequires = [ mmm-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/mmm-mako";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mmt = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mmt";
+        ename = "mmt";
+        version = "20171231.2219";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "mmt";
+          rev = "b8cc8d29e185c15a1e43ecc2a78e36a6d2f86b8f";
+          sha256 = "17v26116g05py2yd24a5rjlr2lbdacahglxar10k5291v9i4msdw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mmt";
+          sha256 = "0hal3qcw6x9658xpdaw6q9l2rr2z107pvg5bdzshf67p1b3lf9dq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mo-git-blame = callPackage ({ fetchFromGitLab
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "mo-git-blame";
+        ename = "mo-git-blame";
+        version = "20160129.959";
+        src = fetchFromGitLab {
+          owner = "mbunkus";
+          repo = "mo-git-blame";
+          rev = "254a675eb794cdbbdef9fa2b4b7bb510b70089c0";
+          sha256 = "1dh92hzpicfvrlg6swrw4igwb771xbsmsf7hxp1a4iry4w8dk398";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mo-git-blame";
+          sha256 = "14ngwwgzrnnysq1k1k681b5i06ad8r3phhgpvn5alp2fj3il03l3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mo-git-blame";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mo-vi-ment-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "mo-vi-ment-mode";
+        ename = "mo-vi-ment-mode";
+        version = "20131028.2333";
+        src = fetchFromGitHub {
+          owner = "AjayMT";
+          repo = "mo-vi-ment";
+          rev = "6386db71640ed9415bbfa5f42296335f5da7d454";
+          sha256 = "0rkjkr5ak75s2h8293ifgvq063xb1lsf0z0679bmvymq6li8gz6h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mo-vi-ment-mode";
+          sha256 = "1pg889mgpv0waccm135mlvag7q13gzfkzchv2532jngwrn6amqc7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mo-vi-ment-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mobdebug-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , lua-mode
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "mobdebug-mode";
+        ename = "mobdebug-mode";
+        version = "20140109.1946";
+        src = fetchFromGitHub {
+          owner = "deftsp";
+          repo = "mobdebug-mode";
+          rev = "e1d483bc4e341c762bc5c0a8c52306a8d01ea0da";
+          sha256 = "04hbd7mv29v3fv4ld0b3skrir0wp9dix2n5nbqp63fj6n5i4cyyz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mobdebug-mode";
+          sha256 = "19k0c7igqsqvib6hx0nssig4l5f959dlr4wijd1hp5h1hmcb5vv8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lua-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/mobdebug-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mocha = callPackage ({ f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , js2-mode
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "mocha";
+        ename = "mocha";
+        version = "20180321.1622";
+        src = fetchFromGitHub {
+          owner = "scottaj";
+          repo = "mocha.el";
+          rev = "33e1b521a8a8d0225df353b51f1e8a4588ee32d0";
+          sha256 = "1ln6wz452sfxy7ii211ha9p0n3pygxyzyk0raczfla3ln8dh989q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mocha";
+          sha256 = "0kjgrl5iy7cd3b9csgpjg3y0wp0q6c7c8cvf0mx8gdbsj7296kyx";
+          name = "recipe";
+        };
+        packageRequires = [ f js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/mocha";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mocha-snippets = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yasnippet }:
+      melpaBuild {
+        pname = "mocha-snippets";
+        ename = "mocha-snippets";
+        version = "20170103.2127";
+        src = fetchFromGitHub {
+          owner = "cowboyd";
+          repo = "mocha-snippets.el";
+          rev = "e054137bd78f0d236e983874da1f345d30a71816";
+          sha256 = "0lxc5zhb03jpy48ql4mn2l35qhsdwav4dkxyqim72b7c75cy1cml";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mocha-snippets";
+          sha256 = "0dbsdk4jpzxv2sxx0nia9zhd0a0wmkz1qcqmbd15m1909ccdwxds";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/mocha-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mocker = callPackage ({ eieio ? null
+                          , el-x
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "mocker";
+        ename = "mocker";
+        version = "20150916.1854";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "mocker.el";
+          rev = "55b078b53ea49e48bd1821d96f0fb86f794fdc6c";
+          sha256 = "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mocker";
+          sha256 = "1g90jp1czrrzrmn7n4linby3q4fb4gcflzv2amjv0sdimw1ln1w3";
+          name = "recipe";
+        };
+        packageRequires = [ eieio el-x ];
+        meta = {
+          homepage = "https://melpa.org/#/mocker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    modalka = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "modalka";
+        ename = "modalka";
+        version = "20171231.2213";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "modalka";
+          rev = "e69ec8fa01e86cb789f7f2b27b6d5a47e1ca3069";
+          sha256 = "10yn56vamcfblilsnfqfagssr4060gr7qbpnqa2fjqv1l8fg6jrf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/modalka";
+          sha256 = "0bkjykvl6sw797h7j76dzn1viy598asly98gcl5wrq13n4w1md4c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/modalka";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mode-icons = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "mode-icons";
+        ename = "mode-icons";
+        version = "20180910.804";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "mode-icons";
+          rev = "26138d825cba7e6bd882707a909505d5536acb9b";
+          sha256 = "1z62g5dhv36x5an89za8h5vdab0ss7af13p42kjnjrs54f50pv9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mode-icons";
+          sha256 = "1dqcry27rz7afyvjg7345wysp6wmh8fpj32ysk5iw5i7v5scf6kf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mode-icons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mode-line-bell = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "mode-line-bell";
+        ename = "mode-line-bell";
+        version = "20181028.2216";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "mode-line-bell";
+          rev = "4985ba42f5a19f46ddbf9b3622453a9694995ce5";
+          sha256 = "13n3di05lgqfm4f8krn3p36yika5znhymp5vr2d747x54hqmgh7y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mode-line-bell";
+          sha256 = "1ri771hb91b7hd203f8zp83h5hcndh8ccc1y8shhqmak6a6l04wk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mode-line-bell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mode-line-debug = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "mode-line-debug";
+        ename = "mode-line-debug";
+        version = "20180318.1525";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "mode-line-debug";
+          rev = "a0fcc394b07d2414bd6f722da10f1c7567333f6b";
+          sha256 = "04vsb0lniy90bhnqb590dap9y4wac64xz0lc2rlfczic0nrqd1aa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mode-line-debug";
+          sha256 = "0ppj14bm3rx3xgg4mfxa5zcm2r129jgmsx817wq3h7akjngcbfkd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mode-line-debug";
+          license = lib.licenses.free;
+        };
+      }) {};
+    modern-cpp-font-lock = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "modern-cpp-font-lock";
+        ename = "modern-cpp-font-lock";
+        version = "20180110.1231";
+        src = fetchFromGitHub {
+          owner = "ludwigpacifici";
+          repo = "modern-cpp-font-lock";
+          rev = "9b10e1831bac34685be89e32e83ed969c4bac683";
+          sha256 = "0csaky9k24hd3qjhb3kyraycvlsdkjhmw6bbd36z0q0ac56sd2sg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/modern-cpp-font-lock";
+          sha256 = "0h43icb5rqbkc5699kdy2mrjs5448phl18jch45ylp2wy2r8c2qj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/modern-cpp-font-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    modtime-skip-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "modtime-skip-mode";
+        ename = "modtime-skip-mode";
+        version = "20140128.1401";
+        src = fetchFromGitHub {
+          owner = "jordonbiondo";
+          repo = "modtime-skip-mode";
+          rev = "c0e49523aa26b2263a8693691ac775988015f592";
+          sha256 = "0ri841cwx2mx8ri50lhvifmxnysdc022421mlmklql0252kn775l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/modtime-skip-mode";
+          sha256 = "1drafwf4kqp83jp47j2ddl2n4a92zf1589fnp6c72hmjqcxv3l28";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/modtime-skip-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moe-theme = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "moe-theme";
+        ename = "moe-theme";
+        version = "20180616.1900";
+        src = fetchFromGitHub {
+          owner = "kuanyui";
+          repo = "moe-theme.el";
+          rev = "ee6d7a1c84ac7a11fcc82dfc3b174eee1c8461fa";
+          sha256 = "1g0hzivvqxijbmnnw8ivdlr1z90brnfp555hg6h7hhsh0b6v0arl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moe-theme";
+          sha256 = "1nqvj8spvffgjvqlf25rcm3dc6w1axb6qlwwsjhq401a6xhw67f6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/moe-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    molecule = callPackage ({ emacs
+                            , fetchgit
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "molecule";
+        ename = "molecule";
+        version = "20180527.43";
+        src = fetchgit {
+          url = "https://git.daemons.it/drymer/molecule.el/";
+          rev = "2ef72b81d9aa24ea782b71a061a3abdad6cae162";
+          sha256 = "0fn16jlpdfy35mz0n27bzdiwgvv8l9nfxf8j4pypgpqarnxzpsgc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/molecule";
+          sha256 = "0kdwmn4gb382igy979y7x2fdqcnfxlb4dvqvm6w7ghs564grzgj4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/molecule";
+          license = lib.licenses.free;
+        };
+      }) {};
+    molokai-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "molokai-theme";
+        ename = "molokai-theme";
+        version = "20151016.845";
+        src = fetchFromGitHub {
+          owner = "alloy-d";
+          repo = "color-theme-molokai";
+          rev = "04a44f21184b6a26caae4f2c92db9019d883309c";
+          sha256 = "1hqa59pdrnwfykyl58lr8pfbh2f13sygvmrh707hbwc2aii0jjv2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/molokai-theme";
+          sha256 = "0srdh3yx7j6xs7rgpzmsyzz6ds00kq887rs2sfa0nvk0j0ga6baf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/molokai-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mongo = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "mongo";
+        ename = "mongo";
+        version = "20150315.519";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "mongo-el";
+          rev = "595529ddd70ecb9fab8b11daad2c3929941099d6";
+          sha256 = "0z8mcfhj425hb91fkj1pyg3apw1kf4mgy8lx6n1sc8zmib38py0x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mongo";
+          sha256 = "0jb5m611m7w26wgfwijgy0dn65s7p1y6fdcfpfgpxa7j5vrcxasc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mongo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monitor = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "monitor";
+        ename = "monitor";
+        version = "20161018.444";
+        src = fetchFromGitHub {
+          owner = "GuiltyDolphin";
+          repo = "monitor";
+          rev = "63f4643a0ee81616dbb692b8b03bae21df2283e2";
+          sha256 = "1hl7nzxvjwv9kknyjikkbxw1gbi5kx4hkkq7sw6jnj06192n93yg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monitor";
+          sha256 = "11n4nv6vkjw434yrwqjw20229m2sxqxxdp7sg99gzrd5gjyab643";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/monitor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monky = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "monky";
+        ename = "monky";
+        version = "20181027.838";
+        src = fetchFromGitHub {
+          owner = "ananthakumaran";
+          repo = "monky";
+          rev = "c831bd5861e92798ce9e4547eb484ee0e9cb2e1f";
+          sha256 = "1g8kpp2zr8mgvxwplj89rl46mis9ssbqaydxy0ynlgm9kmc2y908";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monky";
+          sha256 = "1m7hy3ijwgxqjk3vjvqkxqj8b5bqnd201bmf302k45n0dpjmhshz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/monky";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monochrome-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "monochrome-theme";
+        ename = "monochrome-theme";
+        version = "20140326.350";
+        src = fetchFromGitHub {
+          owner = "fxn";
+          repo = "monochrome-theme.el";
+          rev = "9cf993670c9e8d198f41d840216e13280585b3e1";
+          sha256 = "0x6k0lxhp6y32ws54fgb71j3vfkn864iswhxs0ygg7n1nrkz1ipq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monochrome-theme";
+          sha256 = "0cq2clliwcwnn1spz1w6y5qw1lgqznw212rcc4q6f1kslq0jyk5x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/monochrome-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monokai-alt-theme = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "monokai-alt-theme";
+        ename = "monokai-alt-theme";
+        version = "20170630.1348";
+        src = fetchFromGitHub {
+          owner = "dawidof";
+          repo = "emacs-monokai-theme";
+          rev = "f342b6afc31f929be0626eca2d696ee9fab78011";
+          sha256 = "1lgsqrwf21b0rh4x8nmj08a46ld7dkq4jhwxi1fi7a9xhmi2yd4i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monokai-alt-theme";
+          sha256 = "135bli9vhgl898526q6znjvck356bja1ylsfi95d9445jd136c4v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/monokai-alt-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monokai-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "monokai-theme";
+        ename = "monokai-theme";
+        version = "20180730.629";
+        src = fetchFromGitHub {
+          owner = "oneKelvinSmith";
+          repo = "monokai-emacs";
+          rev = "f4ef092129f4a35edaee0a9b2219c17e86309730";
+          sha256 = "1dshz153y25pmff0pn2rsvgxsv0jv0pjn5cpzvr5x11b65ijwshy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monokai-theme";
+          sha256 = "13mv4vgsmdbf3v748lqi7b42hvr3yp86n97rb6792bcgd3kbdx7a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/monokai-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monotropic-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "monotropic-theme";
+        ename = "monotropic-theme";
+        version = "20181015.530";
+        src = fetchFromGitHub {
+          owner = "caffo";
+          repo = "monotropic-theme";
+          rev = "36df566aa8225e303f6c9d90c00740dd678a415e";
+          sha256 = "05n8s3719f6yrh4fi5xyzzlhpsgpbc60mmfmzycxlb4sinq9bfks";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monotropic-theme";
+          sha256 = "129yqjh4gaab1kjijzkzbw50alzdiwmpv9cl3lsy04m8zk02shl8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/monotropic-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monroe = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "monroe";
+        ename = "monroe";
+        version = "20180703.1046";
+        src = fetchFromGitHub {
+          owner = "sanel";
+          repo = "monroe";
+          rev = "36fd5b250de51f8bfa62bbe6ce35e8690e0ad120";
+          sha256 = "1aw823a5llv196rzqhqvh7bk2npwzy1fgaj24xv0x2g5fk9n85hv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monroe";
+          sha256 = "04rhninxppvilk7s90g0wwa0g9vfcg7mk8mrb2m2c7cb9vj6wyig";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/monroe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moody = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "moody";
+        ename = "moody";
+        version = "20181014.747";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "moody";
+          rev = "f0cfdcff5946775a22e5b789899269669ba58ecd";
+          sha256 = "19ahk775rd9rz8wv6kr5kdynblmyrgg0j6l7g9vs0rwn9ywdxqsn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moody";
+          sha256 = "095241sjw330fb5lk48aa4zx8xbzk8s4ml22n6a8bzr99nkhn5jy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/moody";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moom = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "moom";
+        ename = "moom";
+        version = "20180909.2138";
+        src = fetchFromGitHub {
+          owner = "takaxp";
+          repo = "moom";
+          rev = "a8820f19a8168ab395ba835872606280ad96916d";
+          sha256 = "1lpkmbabw9n50hf7yr6n4aim8x0km1wa15mpf7mv9w91ca2blg5d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moom";
+          sha256 = "11l4yc8fhxsrsjfksqj4cxr13jln0khhd2dn09i94n71dx7lybh1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/moom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moonscript = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "moonscript";
+        ename = "moonscript";
+        version = "20170831.1526";
+        src = fetchFromGitHub {
+          owner = "k2052";
+          repo = "moonscript-mode";
+          rev = "56f90471e2ced2b0a177aed4d8c2f854797e9cc7";
+          sha256 = "1v2phdpfngrb01x4qygpfgxdzpgvbprki2kbmpc83vlqxlmkvvjk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moonscript";
+          sha256 = "1fi4hg5gk5zpfkrk0hqghghkzbbi33v48piq2i085i4nc6m3imp0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/moonscript";
+          license = lib.licenses.free;
+        };
+      }) {};
+    morganey-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "morganey-mode";
+        ename = "morganey-mode";
+        version = "20170118.134";
+        src = fetchFromGitHub {
+          owner = "morganey-lang";
+          repo = "morganey-mode";
+          rev = "7e33f1be486f58dfcf02adcbf82ccac47f69bd9b";
+          sha256 = "1ic3m71ilclrvshc6lasbb1s7ifhjp10iwy0zbjbhfy27n05g3z1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/morganey-mode";
+          sha256 = "18cbmx8lnypgxkisxa3lrh88v8l9k0q8fnai5ps8ngvfgz42rlqp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/morganey-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    morlock = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "morlock";
+        ename = "morlock";
+        version = "20180318.1323";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "morlock";
+          rev = "5fd655ba3050981ab8059bcddf5b19c21f9ceea1";
+          sha256 = "0bgrqydh9bb059j6b6y86xn6qdq85y0radsi1zq20p5xmrsgivbn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/morlock";
+          sha256 = "0693jr1k8mzd7hwp52azkl62c1g1p5yinarjcmdksfyqblqq5jna";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/morlock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mosey = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "mosey";
+        ename = "mosey";
+        version = "20180614.949";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "mosey.el";
+          rev = "2e3ac9d334fa2937ed5267193dfd25d8e1f14dc2";
+          sha256 = "1yxy6m5igvsy37vn93ijs0b479v50vsnsyp8zi548iy2ribr0qr5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mosey";
+          sha256 = "0zprzr5aqv77kmg1ki9w6fw1nc2ap6yqjl4ak05a1i9cq8g6nf3m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mosey";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mote-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , ruby-mode ? null }:
+      melpaBuild {
+        pname = "mote-mode";
+        ename = "mote-mode";
+        version = "20160122.1629";
+        src = fetchFromGitHub {
+          owner = "inkel";
+          repo = "mote-mode";
+          rev = "666c6641addbd3b337a7aa01fd2742ded2f41b83";
+          sha256 = "10mf96r75558scn71pri71aa8nhp6hmnb5rwjxlh5dlf80r5dfd7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mote-mode";
+          sha256 = "0ccsyl0wvf0nbsw57sxad7w0c0i5al5s5mjrjjq8bnfh4dyj2x0y";
+          name = "recipe";
+        };
+        packageRequires = [ ruby-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/mote-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    motion-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , flymake-cursor
+                               , flymake-easy
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "motion-mode";
+        ename = "motion-mode";
+        version = "20140919.1856";
+        src = fetchFromGitHub {
+          owner = "ainame";
+          repo = "motion-mode";
+          rev = "4c94180e3ecea611a61240a0c0cd48f1032c4a55";
+          sha256 = "17570labnwdnwca2cg4ga0mrrm00n0h3wlxry823k5yn3k93rnj1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/motion-mode";
+          sha256 = "1lfsc8ayiz2v3dfn8c0mmfch8vpzqyddxw8kscan2lzl2lcj50h0";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-cursor flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/motion-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mouse-slider-mode = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "mouse-slider-mode";
+        ename = "mouse-slider-mode";
+        version = "20161021.1214";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "mouse-slider-mode";
+          rev = "b3c19cd231edecce76787c5a9bbe5e4046d91f88";
+          sha256 = "1qkbrwicp3gaknnmfrajf1qdyhj5s0c09cx62869rp2721p8rqaw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mouse-slider-mode";
+          sha256 = "0aqxjm78k7i8c59w6mw9wsfw3rail1pg40ac1dbcjkm62fjbh5hy";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mouse-slider-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    move-dup = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "move-dup";
+        ename = "move-dup";
+        version = "20180531.537";
+        src = fetchFromGitHub {
+          owner = "wyuenho";
+          repo = "move-dup";
+          rev = "24e5b6d7222cbe2437c602f1af37d5807569961a";
+          sha256 = "0i78cv3xdchzak8xxm7xm1fw4z6ww3v402cl2rwyg4363fx00f7y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/move-dup";
+          sha256 = "0b0lmiisl9yckblwf7619if88qsmbka3bl4qiaqam7fka7psxs7f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/move-dup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    move-text = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "move-text";
+        ename = "move-text";
+        version = "20170908.2030";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "move-text";
+          rev = "daaa5c3e01d1b88f4eea8e1421acd2453c2df350";
+          sha256 = "1hm2j28vf7zh5h552wszawxsp2c4jwpc33017ld1vc9qcccp3895";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/move-text";
+          sha256 = "04bfrkanafmbrdyw06ciw9kiyn7h3kpikxk3clx2gc04jl67hzgy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/move-text";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mowedline = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "mowedline";
+        ename = "mowedline";
+        version = "20161121.1835";
+        src = fetchFromGitHub {
+          owner = "retroj";
+          repo = "mowedline";
+          rev = "bde4de0a4e1404127b0a48897d8cd1d1cb8a263d";
+          sha256 = "0wwl9f01b9sgs8n19a4i7h08xaf6zdljf2plbdpyy4gzi2iiqcc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mowedline";
+          sha256 = "0c2hvvwa7s5iyz517jaskshdcq9zs15zr6xsvrcb3biahrh4bmfb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mowedline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moz = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "moz";
+        ename = "moz";
+        version = "20150805.1006";
+        src = fetchFromGitHub {
+          owner = "bard";
+          repo = "mozrepl";
+          rev = "2209e126b509b9a4d0800b1c7f9623e8d2b4345b";
+          sha256 = "18b214667b4hr76dd09kbjb3acsnr9n5aik49ji1v50k78aaswvv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moz";
+          sha256 = "0ar2xgsi7csjj6fgiamrjwjc58j942dm32j3f3lz21yn2c4pnyxi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/moz";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moz-controller = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , moz }:
+      melpaBuild {
+        pname = "moz-controller";
+        ename = "moz-controller";
+        version = "20151208.1806";
+        src = fetchFromGitHub {
+          owner = "RenWenshan";
+          repo = "emacs-moz-controller";
+          rev = "46f665c03574fa922de767fc29795e0db4a7c5c6";
+          sha256 = "0fssn33ld6xhjlwg1dbrjg8sa0pjmglq0dw792yrmvm4fj0zjph8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moz-controller";
+          sha256 = "18gca1csl9dfi9995mky8cbgi3xzf1if8pzdjiz5404gzcqk0rfd";
+          name = "recipe";
+        };
+        packageRequires = [ moz ];
+        meta = {
+          homepage = "https://melpa.org/#/moz-controller";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mozc = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "mozc";
+        ename = "mozc";
+        version = "20180101.0";
+        src = fetchFromGitHub {
+          owner = "google";
+          repo = "mozc";
+          rev = "f5ddd0e06f5d94ecc626b38797c982e8598d18e0";
+          sha256 = "03ccc2v80033av5a5gq7w90rpk851idfg28979hjq8qfzsizx7x6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mozc";
+          sha256 = "0nslh4xyqpvzdxcgrd1bzaqcdz77bghizh6n2w6wk46cflir8xba";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mozc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mozc-im = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , mozc }:
+      melpaBuild {
+        pname = "mozc-im";
+        ename = "mozc-im";
+        version = "20160411.1722";
+        src = fetchFromGitHub {
+          owner = "d5884";
+          repo = "mozc-im";
+          rev = "df614a1076c28a11551fb3e822868bae47e855a5";
+          sha256 = "0cpcldizgyr125j7lzkl8l6jw1hc3fb12cwgkpjrl6pjpr80vb15";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mozc-im";
+          sha256 = "1gqzmm712npj36qfi506zgl0ycd6k7l5m46c7zz2z2lb6jpssw10";
+          name = "recipe";
+        };
+        packageRequires = [ mozc ];
+        meta = {
+          homepage = "https://melpa.org/#/mozc-im";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mozc-popup = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , mozc
+                              , popup }:
+      melpaBuild {
+        pname = "mozc-popup";
+        ename = "mozc-popup";
+        version = "20150223.1634";
+        src = fetchFromGitHub {
+          owner = "d5884";
+          repo = "mozc-popup";
+          rev = "f0684b875a7427ec08f8df13939a486e5d5cf420";
+          sha256 = "1mbpkjc6sk7qqmgsmr5a5l2ycwnqp8bkwgikdavgs6hnal10bkmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mozc-popup";
+          sha256 = "1n43lwflxzzyskxgzg19rg3hiqqkf5l7vfgaydryf4sk8480x687";
+          name = "recipe";
+        };
+        packageRequires = [ mozc popup ];
+        meta = {
+          homepage = "https://melpa.org/#/mozc-popup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mozc-temp = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , mozc }:
+      melpaBuild {
+        pname = "mozc-temp";
+        ename = "mozc-temp";
+        version = "20160228.40";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "mozc-temp";
+          rev = "7f5dd5fc8ceeca9b1822f7e056a4be67e2e74959";
+          sha256 = "1gdi2pz8450h11aknz3hbgjlx09w6c4l8d8sz0zv3pb1z8cqkgqv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mozc-temp";
+          sha256 = "0x1bsa1py0kn73hzbsb4ijl0bqng8nib191vgn6xq8f5cx55044d";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs mozc ];
+        meta = {
+          homepage = "https://melpa.org/#/mozc-temp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mpages = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "mpages";
+        ename = "mpages";
+        version = "20150710.704";
+        src = fetchFromGitHub {
+          owner = "slevin";
+          repo = "mpages";
+          rev = "39a72a0931ab1cdbfdf0ab9f412dc12d43a3829f";
+          sha256 = "11c8pr3s77aq34ic32lnsialwh8bw3m78kj838xl2aab2pgrlny2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mpages";
+          sha256 = "11scjjwwrpgaz6i4jq9y7m864nfak46vnbfb0w15625znz926jcs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mpages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mpdel = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , libmpdel
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "mpdel";
+        ename = "mpdel";
+        version = "20181018.508";
+        src = fetchFromGitHub {
+          owner = "mpdel";
+          repo = "mpdel";
+          rev = "b9ada1670d6c104ebee3d186977a09b0aaca0d5e";
+          sha256 = "1lpi2xabsgx0f5143fa84pv7ag7fvw4sf2w96cvi0ysc0440ix5b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mpdel";
+          sha256 = "1py6zk16yl7pyql2qxzd770clzszw7c769hw70n963kns1qmpif8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs libmpdel ];
+        meta = {
+          homepage = "https://melpa.org/#/mpdel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mpmc-queue = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , queue }:
+      melpaBuild {
+        pname = "mpmc-queue";
+        ename = "mpmc-queue";
+        version = "20180303.1229";
+        src = fetchFromGitHub {
+          owner = "smizoe";
+          repo = "mpmc-queue";
+          rev = "df07d6bef7468edb1d73ef73b8331b94d0e5d0ca";
+          sha256 = "17817l3afghg9z8jxkj61yg85plmr74ki3wf4hz685llx8fr69w0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mpmc-queue";
+          sha256 = "08jcmhfl87nsg6zgv582yfs152bqihbcssh085gxxqn2x99li354";
+          name = "recipe";
+        };
+        packageRequires = [ emacs queue ];
+        meta = {
+          homepage = "https://melpa.org/#/mpmc-queue";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mpv = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , json ? null
+                       , lib
+                       , melpaBuild
+                       , org }:
+      melpaBuild {
+        pname = "mpv";
+        ename = "mpv";
+        version = "20180602.314";
+        src = fetchFromGitHub {
+          owner = "kljohann";
+          repo = "mpv.el";
+          rev = "9dedf3b7c1bfd778284df7f394207ce0447ea7aa";
+          sha256 = "15z62wi47pwvkbh4qgvz06yk4cyy570pjz1276sd9frdwgd4kc19";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mpv";
+          sha256 = "1vq308ac6jj1h8qa2b2sypisb38hbvwjimqndhpfir06fghkw94l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json org ];
+        meta = {
+          homepage = "https://melpa.org/#/mpv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mqr = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mqr";
+        ename = "mqr";
+        version = "20180527.504";
+        src = fetchFromGitHub {
+          owner = "calancha";
+          repo = "multi-replace";
+          rev = "4ade19d4620b8b61340290bf63fa56d5e493859f";
+          sha256 = "0pkxmv0rla9f2ly9fq3i3mrsa2q8rsrs4pk6w7wpi3v5fbj1jmd6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mqr";
+          sha256 = "1nw713sha29q1zgsxxfrkggkrk6q8vvk9sdi1s539r8h35bc3jx0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mqr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mqtt-mode = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "mqtt-mode";
+        ename = "mqtt-mode";
+        version = "20180605.1031";
+        src = fetchFromGitHub {
+          owner = "andrmuel";
+          repo = "mqtt-mode";
+          rev = "36d1d4296d79e17b8f35e8e14f2708980eb502db";
+          sha256 = "1116xvwpavg7icm263s0clgxhw3qqm4aqiw4ky94w9a8ydazx51l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mqtt-mode";
+          sha256 = "1zbnhd65c9wz9yr29j37c8z7vz3axpfwkzx0z8xjplp40mafpz1z";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mqtt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    msvc = callPackage ({ ac-clang
+                        , cedet ? null
+                        , cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "msvc";
+        ename = "msvc";
+        version = "20171225.738";
+        src = fetchFromGitHub {
+          owner = "yaruopooner";
+          repo = "msvc";
+          rev = "dfc529aa6da8b46b0a0c7db9a0e5e9bc33ab1fb3";
+          sha256 = "19n9an0nznwqw3ml022i6vidqbrgxf4yff0nbvvcb91ppc1saf40";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/msvc";
+          sha256 = "04gq2klana557qvsi3bv6416l0319jsqb6bdfs7y6729qd94hlq3";
+          name = "recipe";
+        };
+        packageRequires = [ ac-clang cedet cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/msvc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mtg-deck-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "mtg-deck-mode";
+        ename = "mtg-deck-mode";
+        version = "20180613.1310";
+        src = fetchFromGitHub {
+          owner = "mattiasb";
+          repo = "mtg-deck-mode";
+          rev = "8265b8ed17fcd4406760c19aa6ee9c76068b1ab0";
+          sha256 = "04qdcqpkic2nhqy6nf15j3zp5hmrfzs2kndvmg5v4vjac2vfmzfb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mtg-deck-mode";
+          sha256 = "07hszf33nawhp218f90qr4s713yyjdd7zzkq0s8q0fb6aai5iiih";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mtg-deck-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mu-cite = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , flim
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "mu-cite";
+        ename = "mu-cite";
+        version = "20160130.300";
+        src = fetchFromGitHub {
+          owner = "ksato9700";
+          repo = "mu-cite";
+          rev = "aea3c2d01eb3284d5e0124059d368e8c6b6ffddc";
+          sha256 = "1gxspy50gh7j4sysvr17fvvp8p417ww39ii5dy0fxncfwczdsa19";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mu-cite";
+          sha256 = "0ap21sw4r2x774q2np6rhrxh2m2rf3f6ak3k71iar159chx32y6q";
+          name = "recipe";
+        };
+        packageRequires = [ flim ];
+        meta = {
+          homepage = "https://melpa.org/#/mu-cite";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mu4e-alert = callPackage ({ alert
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , ht
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "mu4e-alert";
+        ename = "mu4e-alert";
+        version = "20180304.2246";
+        src = fetchFromGitHub {
+          owner = "iqbalansari";
+          repo = "mu4e-alert";
+          rev = "96a293b28646f4620e257f24748becc4a06843cd";
+          sha256 = "01rgsd958shph01ialk0lp3snxqydvjkiik170jshfls1jric1di";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mu4e-alert";
+          sha256 = "0b74ky51nx75vcrrbabr5cj2cx4yax5kgaq479hjp5yc5mq2q46r";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/mu4e-alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mu4e-conversation = callPackage ({ emacs
+                                     , fetchFromGitLab
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "mu4e-conversation";
+        ename = "mu4e-conversation";
+        version = "20181105.922";
+        src = fetchFromGitLab {
+          owner = "ambrevar";
+          repo = "mu4e-conversation";
+          rev = "54368a009474276247bdf39683e25ea68ae1f943";
+          sha256 = "1dqsq972s29wrz8a2x01fi7zpqryzqmf57l59jfgfd8w68csi4i7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mu4e-conversation";
+          sha256 = "16vhjaxjhshw7ch9ihk35r99549xlbmvybwjx0p9mzyqi30dn3s6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mu4e-conversation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mu4e-jump-to-list = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitLab
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "mu4e-jump-to-list";
+        ename = "mu4e-jump-to-list";
+        version = "20180425.1132";
+        src = fetchFromGitLab {
+          owner = "wavexx";
+          repo = "mu4e-jump-to-list.el";
+          rev = "e336ffe84b55edaaf4e48040d4d9156a9f4c881e";
+          sha256 = "0ff7a64vk0kd1sl52ncwj2xf3sh0kb0yln1cmdxdz0hyfsnc8d1h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mu4e-jump-to-list";
+          sha256 = "0yl1vi62pjgklwa7ifvr35fciiqqc5zkrc0m4yxjiv0c0dn50b7n";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mu4e-jump-to-list";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mu4e-maildirs-extension = callPackage ({ dash
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "mu4e-maildirs-extension";
+        ename = "mu4e-maildirs-extension";
+        version = "20180606.112";
+        src = fetchFromGitHub {
+          owner = "agpchil";
+          repo = "mu4e-maildirs-extension";
+          rev = "3ef4c48516be66e73d24fe764aadbcfc126b7964";
+          sha256 = "04nf947sxkir3gni67jc5djhywkmay1l8cqkicayimrh3vd5cy05";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mu4e-maildirs-extension";
+          sha256 = "0bisxm0rph5q1p3zjr7vyyr0jqr3ihs6ihiwyfr8d3dvba1zhffc";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/mu4e-maildirs-extension";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mu4e-query-fragments = callPackage ({ emacs
+                                        , fetchFromGitLab
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "mu4e-query-fragments";
+        ename = "mu4e-query-fragments";
+        version = "20170923.622";
+        src = fetchFromGitLab {
+          owner = "wavexx";
+          repo = "mu4e-query-fragments.el";
+          rev = "5f2b195dad2d74f38ff35b93edea5dd133112012";
+          sha256 = "0frq485lghpzpzcrpw7f4vmc39nx1ph1dp0i0l8hb6h8rl1n4r7n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mu4e-query-fragments";
+          sha256 = "1gckwfgw7jvr6dbikcmy07i07wjhlvq66swhac2laaj6w567vc7w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mu4e-query-fragments";
+          license = lib.licenses.free;
+        };
+      }) {};
+    muban = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "muban";
+        ename = "muban";
+        version = "20180415.519";
+        src = fetchFromGitHub {
+          owner = "jiahaowork";
+          repo = "muban.el";
+          rev = "c134c46e60be1fb3e9a08dba3d07346855e0fcc2";
+          sha256 = "1xlkzvfbzhhpmzz008ad4l9sxdvda2cxhq6grn84pcfh5g2ccn2c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/muban";
+          sha256 = "1njphxx6sgw952p7v2qkbjwa8sb2mwrxrzv35bzp0d4c84ny2sa0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/muban";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "multi";
+        ename = "multi";
+        version = "20131013.844";
+        src = fetchFromGitHub {
+          owner = "kurisuwhyte";
+          repo = "emacs-multi";
+          rev = "884203b11fdac8374ec644cca975469aab263404";
+          sha256 = "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi";
+          sha256 = "1c240d1c1g8wb2ld944344zklnv86d9rycmya4z53b2ai10642ig";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/multi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-compile = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "multi-compile";
+        ename = "multi-compile";
+        version = "20160306.1423";
+        src = fetchFromGitHub {
+          owner = "ReanGD";
+          repo = "emacs-multi-compile";
+          rev = "bd0331854774e7a269ce8a7dd49580cd397c0ec2";
+          sha256 = "1aswpv1m02n26620hgkcfd38f06bzmmijlr9rs5krv6snq5gdb8g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-compile";
+          sha256 = "16fv0hpwcjw1771zlbgznph0fix9fbm6yqj2rcz1f9l26iih6apz";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/multi-compile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-line = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s
+                              , shut-up }:
+      melpaBuild {
+        pname = "multi-line";
+        ename = "multi-line";
+        version = "20170821.1926";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "multi-line";
+          rev = "d3ce76b6aec62f96ef2c0409d8262fd39e67dccc";
+          sha256 = "0kysz7l18z3fkzygpdnqf2ancixrwyzh6n49jgk0c50lhhqj324x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-line";
+          sha256 = "1aadmijnjr029s1qq4gk8xyl9m8xb5x5774b8i3jyfixyjqvhvwp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/multi-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-project = callPackage ({ emacs
+                                 , fetchhg
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "multi-project";
+        ename = "multi-project";
+        version = "20171217.1211";
+        src = fetchhg {
+          url = "https://bitbucket.com/ellisvelo/multi-project";
+          rev = "a6e7c1542c0b";
+          sha256 = "1wh7xlas6chdliya847092j5rkngxxg1m9a98y2r782ywgyl7xv6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-project";
+          sha256 = "19dy2wl5ad1xldiznlw2vjvr9ja8h9wiv6igcggixq56fhngp40x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/multi-project";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-run = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , window-layout }:
+      melpaBuild {
+        pname = "multi-run";
+        ename = "multi-run";
+        version = "20181118.1514";
+        src = fetchFromGitHub {
+          owner = "sagarjha";
+          repo = "multi-run";
+          rev = "ce5ce0c56b56a9f47915dd8b83a94db353b548a5";
+          sha256 = "1zh6fck20hn5nb3lbahkgkmdndid7s2kvg4g2lig9qrhzn83cl4b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-run";
+          sha256 = "1iv4a49czdjl0slp8590f1ya0vm8g2ycnkwrdpqi3b55haaqp91h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs window-layout ];
+        meta = {
+          homepage = "https://melpa.org/#/multi-run";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-term = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "multi-term";
+        ename = "multi-term";
+        version = "20160619.233";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "multi-term";
+          rev = "f954e4e18b0a035151d34852387e724d87a3316f";
+          sha256 = "00cz3q654vpmijbqxp8c6nkxqj9zx1hjr3552l0adk3fbg6qpmcq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-term";
+          sha256 = "16idk4nd7qpyrvyspbrdl8gdfaclng6ny0xigk6fqdv352djalal";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/multi-term";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-web-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "multi-web-mode";
+        ename = "multi-web-mode";
+        version = "20130823.2054";
+        src = fetchFromGitHub {
+          owner = "fgallina";
+          repo = "multi-web-mode";
+          rev = "ad1c8d1c870334052d244c7ae3636cb7b9357b7c";
+          sha256 = "0mc4kkgwnwfk27wwc21nw5ly7qcsl7y5bd8wf2y8r6pxhvwran4n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-web-mode";
+          sha256 = "0vi4yvahr10aqpcz4127c8pcqpr5srwc1yhgipnbnm86qnh34ql5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/multi-web-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multicolumn = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "multicolumn";
+        ename = "multicolumn";
+        version = "20150202.1451";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "multicolumn";
+          rev = "c7a3afecd470859b2e60aa7c554d6e4d436df7fa";
+          sha256 = "1ispa0wxpkydm0cyj4scyyacfrbilrip5v8bsrcqfc6qs597z8rf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multicolumn";
+          sha256 = "1ylnc3s4ixvnqn7g2p6nzz8x29ggqc703waci430f1rp1lsd3q09";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/multicolumn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multifiles = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "multifiles";
+        ename = "multifiles";
+        version = "20130615.1433";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "multifiles.el";
+          rev = "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897";
+          sha256 = "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multifiles";
+          sha256 = "0m0pi2qjis9p6z9cd8hlxm1r88ynwmd2ks8wg65sffffwsdbg4kz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/multifiles";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multiple-cursors = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "multiple-cursors";
+        ename = "multiple-cursors";
+        version = "20180913.537";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "multiple-cursors.el";
+          rev = "6a7c3c0853e3fe9e4b8e5985dbed8fd4075f33ff";
+          sha256 = "0g4mqjahfya5n0hjw4z7ivd2g1kjbsr5h94d052qx6bcnmp66h3r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multiple-cursors";
+          sha256 = "0mky5p9wpd3270wr5vfna8rkk2ff81wk7vicyxli39195m0qgg0x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/multiple-cursors";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multitran = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "multitran";
+        ename = "multitran";
+        version = "20181107.614";
+        src = fetchFromGitHub {
+          owner = "zevlg";
+          repo = "multitran.el";
+          rev = "9e10b29c4e7cc64736a832649fa9fad8781fc65f";
+          sha256 = "0ynqmrpw0qx3z0x1p20hg4052m7kng4hrm8m5cyr9ig4xafnpn08";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multitran";
+          sha256 = "0nxrzzlinl5310zfrb4z5j0553cmg11m9y2gaf990j61afaw8f32";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/multitran";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mustache = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ht
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "mustache";
+        ename = "mustache";
+        version = "20170923.533";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "mustache.el";
+          rev = "5e39654b933a18131146a0f3b3e3dc55c5058124";
+          sha256 = "0ilsdrvqy9zn0yb1c8zh1zidag32rfb9xhm43qpfcg6n5w6c7r82";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mustache";
+          sha256 = "1pjr00xx77mlfw1myxaz6i3y2gbivhbiq5hyjxxbjlfrkm1vxc8g";
+          name = "recipe";
+        };
+        packageRequires = [ dash ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/mustache";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mustache-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "mustache-mode";
+        ename = "mustache-mode";
+        version = "20141024.732";
+        src = fetchFromGitHub {
+          owner = "mustache";
+          repo = "emacs";
+          rev = "bf9897eb287ca47ced65d7d4e07ea61ea0aec39f";
+          sha256 = "15gw4d0hp15rglsj8hzd290li4p0kadj2dsz0dgfcxld7hnimihk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mustache-mode";
+          sha256 = "1xmqh663r5i42a586xn0wzw6h1jkvhbnw5iwvjv96w452slhkr36";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mustache-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mustang-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "mustang-theme";
+        ename = "mustang-theme";
+        version = "20170719.246";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "mustang-theme";
+          rev = "dda6d04803f1c9b196b620ef564e7768fee15de2";
+          sha256 = "0pg3iay0iinf361v4ay8kizdxs5rm23ir556cwwgz3m3gbs0mgsh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mustang-theme";
+          sha256 = "0771l3x6109ki914nwpfz3fj7pbvpcg9vf485mrccq2wlxymr5dr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mustang-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mustard-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "mustard-theme";
+        ename = "mustard-theme";
+        version = "20170808.619";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-mustard-theme";
+          rev = "3b15d992c79590d7ea2503004e2a863b57e274b5";
+          sha256 = "01ak4ayk46jqawlbb9cqliiqhnn68cq27kryamibdpds8sq0ch83";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mustard-theme";
+          sha256 = "0izxhivhmv49dja4wy9n0ipd41xdzdza2ql7pfa7ny35ji5hskik";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mustard-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mutant = callPackage ({ dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "mutant";
+        ename = "mutant";
+        version = "20160124.553";
+        src = fetchFromGitHub {
+          owner = "p-lambert";
+          repo = "mutant.el";
+          rev = "aff50603a70a110f4ecd7142963ef719e8c11c06";
+          sha256 = "1faqbkff0v6pigsnnq2dxnzdra8q62cvlxigscwalwxd27bbz548";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mutant";
+          sha256 = "0m5l5r37zb0ig96757ldyl9hbb01lknzqf08ap6dsmdwr1zayvp1";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mutant";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mvn = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mvn";
+        ename = "mvn";
+        version = "20181002.917";
+        src = fetchFromGitHub {
+          owner = "apg";
+          repo = "mvn-el";
+          rev = "ffa40235b7dabb6c6c165f64f32a963cde8031f0";
+          sha256 = "0ximk0aan7jqn5x7fk4pj35bxhi6zaspvyxrmac9kxaiz8znwffr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mvn";
+          sha256 = "0bpg9zpyfdyn9xvrbmq4gb10hd701mc49np8arlmnilphb3fdgzs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mvn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mw-thesaurus = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "mw-thesaurus";
+        ename = "mw-thesaurus";
+        version = "20180628.2225";
+        src = fetchFromGitHub {
+          owner = "agzam";
+          repo = "mw-thesaurus.el";
+          rev = "b3f8c3aae2b68a4e6cc054c6c99d3b3135e781d1";
+          sha256 = "01ljvhx2g4i5vgzwibdgp5jl37s01m0j4sfaw7bbsm8nag0h4aw5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mw-thesaurus";
+          sha256 = "10v3a09sz31ndj0ldpz0c3s45s62gyvdw0iq0c0dkg4da2rvicww";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mw-thesaurus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mwim = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "mwim";
+        ename = "mwim";
+        version = "20181110.1100";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "mwim.el";
+          rev = "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85";
+          sha256 = "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mwim";
+          sha256 = "0bsibwplvyv96y5i5svm2b0jwzs5a7jr2aara7v7xnpj0nqaxm8k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mwim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mxf-view = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "mxf-view";
+        ename = "mxf-view";
+        version = "20180501.40";
+        src = fetchFromGitHub {
+          owner = "t-suwa";
+          repo = "mxf-view";
+          rev = "c4825f35fad81c4624a2fcaea95cc605addf5cbc";
+          sha256 = "0ci1kdc7qs04yny6sxhbncb3d4gzcsdhk2w51phpb8m2rilm0xgl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mxf-view";
+          sha256 = "1a8hlp0r04p1cww3dmsqdxlm3ll522wjb0rnmj80d7mqizkbf52p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mxf-view";
+          license = lib.licenses.free;
+        };
+      }) {};
+    myanmar-input-methods = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "myanmar-input-methods";
+        ename = "myanmar-input-methods";
+        version = "20160106.737";
+        src = fetchFromGitHub {
+          owner = "yelinkyaw";
+          repo = "emacs-myanmar-input-methods";
+          rev = "9d4e0d6358c61bde7a2274e430ef71683faea32e";
+          sha256 = "0cf0c9g9k2lk1ifi2dlw7c601sh1ycxf3fgl2hy5wliyd6l9rf86";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/myanmar-input-methods";
+          sha256 = "1yg8zy2z18pbyr507ms2b162c0819rna1ilwyp6hb3iv2zjw45sd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/myanmar-input-methods";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mykie = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "mykie";
+        ename = "mykie";
+        version = "20150808.1505";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "mykie-el";
+          rev = "91f222b4f2b2b4285b0bc306905eb960826a67ed";
+          sha256 = "0x8pvcai8gvxwp2r2x4szh2xzk1mxjsh3698pc4l1cm7d8yrvwk0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mykie";
+          sha256 = "12ram39fp3m9ar6q184rsnpkxb14y0ajibng7ia2ck54ck7n36cj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mykie";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mynt-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , virtualenvwrapper }:
+      melpaBuild {
+        pname = "mynt-mode";
+        ename = "mynt-mode";
+        version = "20150512.1349";
+        src = fetchFromGitHub {
+          owner = "crshd";
+          repo = "mynt-mode";
+          rev = "23d4489167bfa899634548cb41ed32fdeb3600c9";
+          sha256 = "18ml0qz3iipm9w36zvwz77cbbrg885jgvzk6z4a33xcfp524xhma";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mynt-mode";
+          sha256 = "17s0wdwgh2dcpww6h3qszc9dcs7ki00xkyisvsfn4xqajrmmp75b";
+          name = "recipe";
+        };
+        packageRequires = [ virtualenvwrapper ];
+        meta = {
+          homepage = "https://melpa.org/#/mynt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mysql-to-org = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "mysql-to-org";
+        ename = "mysql-to-org";
+        version = "20181012.1334";
+        src = fetchFromGitHub {
+          owner = "mallt";
+          repo = "mysql-to-org-mode";
+          rev = "a8a0c15b04c9a9e9d936908731bf43e6faf81fa8";
+          sha256 = "0qi2q3ggq7fjwxl8ir6dbysfm31dzvcsp0nhm6xrk8gv6xfsyvlh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mysql-to-org";
+          sha256 = "0jjdv6ywdn1618l36bw3xa3mdgg3rc8r0rdv9xdqx8mmg648a7gj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/mysql-to-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mysql2sqlite = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "mysql2sqlite";
+        ename = "mysql2sqlite";
+        version = "20170725.1516";
+        src = fetchFromGitHub {
+          owner = "echosa";
+          repo = "emacs-mysql2sqlite";
+          rev = "8e6e74451c942e2e92f90dc13222b95a7dbb285e";
+          sha256 = "18jriaj391n4wr0qiva68jf482yx9v9l4xagbzl9vw125lszkngb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mysql2sqlite";
+          sha256 = "1jblrbw4rq2jwpb8d1dyna0fiv52b9va3sj881cb17rqx200y3nd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mysql2sqlite";
+          license = lib.licenses.free;
+        };
+      }) {};
+    myterminal-controls = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "myterminal-controls";
+        ename = "myterminal-controls";
+        version = "20170425.1936";
+        src = fetchFromGitHub {
+          owner = "myTerminal";
+          repo = "myterminal-controls";
+          rev = "59ff3a02e34969a2ac608906937cb65cb514f9f1";
+          sha256 = "11b0m09n1qqhjbdmcilb1g1408k17700qn37m3wavjrcjvdhnd5n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/myterminal-controls";
+          sha256 = "0ipk5s2whf3l68q0dydm1j6rcb6jhk61hgjwxygdphifvih7c5y2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/myterminal-controls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    n4js = callPackage ({ cypher-mode
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "n4js";
+        ename = "n4js";
+        version = "20150713.1931";
+        src = fetchFromGitHub {
+          owner = "tmtxt";
+          repo = "n4js.el";
+          rev = "3991ed8975151d5e8d568e952362df810f7ffab7";
+          sha256 = "1pd6c0jc1zxx3i3nk4qdx7gdf1qn8sc9jgqd72pkkpzvdwv998cp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/n4js";
+          sha256 = "0x7smxs91ffriyxx2df61fh1abpl39gqy4m62k77h7xb6fg7af6m";
+          name = "recipe";
+        };
+        packageRequires = [ cypher-mode emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/n4js";
+          license = lib.licenses.free;
+        };
+      }) {};
+    name-this-color = callPackage ({ cl-lib ? null
+                                   , dash
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "name-this-color";
+        ename = "name-this-color";
+        version = "20151014.1330";
+        src = fetchFromGitHub {
+          owner = "knl";
+          repo = "name-this-color.el";
+          rev = "e37cd1291d5d68d4c8d6386eab9cb9d94fd3bcfa";
+          sha256 = "0amhw630hgc0j8wr8m6aav399ixi3vbwrck79hhlr3pmyh91vv7n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/name-this-color";
+          sha256 = "15x3dp135p45gv4qn4ll3pd6zqi4glcpv6fzvjxnx0dcval9z4d8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/name-this-color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nameframe = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nameframe";
+        ename = "nameframe";
+        version = "20171106.1656";
+        src = fetchFromGitHub {
+          owner = "john2x";
+          repo = "nameframe";
+          rev = "aafb8c5c5fbe0510e2f5d5b6b6b5dd0b73abe5d8";
+          sha256 = "1ivklkz3j722wg038bh3hmycp9j64zjrig49vl42mkj6d3ggwilg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nameframe";
+          sha256 = "0iq8cfii39ha8sxn9w7kyfvys8kwyax8g4l0pkl05q0a0s95padp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nameframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nameframe-perspective = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , nameframe
+                                         , perspective }:
+      melpaBuild {
+        pname = "nameframe-perspective";
+        ename = "nameframe-perspective";
+        version = "20170405.1819";
+        src = fetchFromGitHub {
+          owner = "john2x";
+          repo = "nameframe";
+          rev = "d14186e99fa800d293e8e3072ba26f383c6624c6";
+          sha256 = "0aibzwp39lxafag0vpa36xp8md7nhvgibj1nklzhga2d9nq9l4km";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nameframe-perspective";
+          sha256 = "0wgr90m2pazc514slgdl1lin4mr3xxizasc82k7qinvdvdja515x";
+          name = "recipe";
+        };
+        packageRequires = [ nameframe perspective ];
+        meta = {
+          homepage = "https://melpa.org/#/nameframe-perspective";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nameframe-projectile = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , nameframe
+                                        , projectile }:
+      melpaBuild {
+        pname = "nameframe-projectile";
+        ename = "nameframe-projectile";
+        version = "20160927.2103";
+        src = fetchFromGitHub {
+          owner = "john2x";
+          repo = "nameframe";
+          rev = "696223c61ca8e8f5cc557d2c198801a2f3c32ad3";
+          sha256 = "14zrxv0x7p7rfrwdk02kzgvg8n594ij47yrr0c8q7b6vckhrz4gw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nameframe-projectile";
+          sha256 = "11z64wy8mnnrjmgfs2sjbv3mh136aki8r5f89myx861nfx18hc3k";
+          name = "recipe";
+        };
+        packageRequires = [ nameframe projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/nameframe-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nameless = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "nameless";
+        ename = "nameless";
+        version = "20180215.1421";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "Nameless";
+          rev = "79d7ba8e9b8f3093e93172bdb4c5a4d31b0fa3e0";
+          sha256 = "11xghz03csj5w3qfbjyr48liaxr08gl6gy73hmmrq2bl57six5n0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nameless";
+          sha256 = "14agx54h2vqfb0656n12z761ywyxsdskd6xa1ccar70l9vwj85vq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nameless";
+          license = lib.licenses.free;
+        };
+      }) {};
+    names = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "names";
+        ename = "names";
+        version = "20180321.455";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "names";
+          rev = "d8baba5360e5253938a25d3e005455b6d2d86971";
+          sha256 = "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/names";
+          sha256 = "1q784606jlakw1z6sx2g2x8hz8c8arywrm2r626wj0v105v510vg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/names";
+          license = lib.licenses.free;
+        };
+      }) {};
+    namespaces = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "namespaces";
+        ename = "namespaces";
+        version = "20130326.1550";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "elisp-namespaces";
+          rev = "3d02525d9b9a5ae6e7be3adefd880121436e6270";
+          sha256 = "157hhb253m6a9l5wy6x8w5ar3x0qz1326l7a0npxif6pma0dd140";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/namespaces";
+          sha256 = "02pb7762khxpah4q6xg8r7dmlv1kwyzinffi7pcaps6ycj29q2fr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/namespaces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nand2tetris = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "nand2tetris";
+        ename = "nand2tetris";
+        version = "20171201.1013";
+        src = fetchFromGitHub {
+          owner = "CestDiego";
+          repo = "nand2tetris.el";
+          rev = "fe37ee41367ceff6f7d7a472a5f80cf1285e1e01";
+          sha256 = "0g1gwayas7claa9cn3mv8dnlz46n78014qxb2ix25428dnsrridy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nand2tetris";
+          sha256 = "1zg9xx7mj8334m2v2zqqfkr5vkj4dzqbj8y13qk6xhzb7qkppyqd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nand2tetris";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nand2tetris-assembler = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , nand2tetris }:
+      melpaBuild {
+        pname = "nand2tetris-assembler";
+        ename = "nand2tetris-assembler";
+        version = "20171201.1013";
+        src = fetchFromGitHub {
+          owner = "CestDiego";
+          repo = "nand2tetris.el";
+          rev = "fe37ee41367ceff6f7d7a472a5f80cf1285e1e01";
+          sha256 = "0g1gwayas7claa9cn3mv8dnlz46n78014qxb2ix25428dnsrridy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nand2tetris-assembler";
+          sha256 = "1761kgrflipxba8894cnx90ks7f3ba4nj6ci515zzxcx9s45mfyy";
+          name = "recipe";
+        };
+        packageRequires = [ nand2tetris ];
+        meta = {
+          homepage = "https://melpa.org/#/nand2tetris-assembler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nanowrimo = callPackage ({ fetchhg
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nanowrimo";
+        ename = "nanowrimo";
+        version = "20151104.1828";
+        src = fetchhg {
+          url = "https://bitbucket.com/gvol/nanowrimo.el";
+          rev = "25e2ca20ed34";
+          sha256 = "1nzkamy53kl1g4y1jm7j5zgpkdsyg5ykp8zp1f0bg5mhy8mmf75w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nanowrimo";
+          sha256 = "1nhyj38qyn1x6a5rbrwhcxwfwzyqqjm3dvksdnmam6vfwn3s2r31";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nanowrimo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    naquadah-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "naquadah-theme";
+        ename = "naquadah-theme";
+        version = "20180212.440";
+        src = fetchFromGitHub {
+          owner = "jd";
+          repo = "naquadah-theme";
+          rev = "999056526db5095ce600c83672fc80cb744bd93e";
+          sha256 = "1f10598m4vcpr4md6hpdvv46zi6159rajxyzrrlkiz0g94v8y6rl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/naquadah-theme";
+          sha256 = "1aml1f2lgn530i86218nrc1pk3zw5n3qd2gw4gylwi7g75i0cqn1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/naquadah-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    narrow-reindent = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "narrow-reindent";
+        ename = "narrow-reindent";
+        version = "20150722.1206";
+        src = fetchFromGitHub {
+          owner = "emallson";
+          repo = "narrow-reindent.el";
+          rev = "87466aac4dbeb79597124dd077bf5c704872fd3d";
+          sha256 = "10yn215xb4s6kshk108y75im1xbdp0vwc9kah5bbaflp9234i0zh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/narrow-reindent";
+          sha256 = "0fybal70kk62zlra63x4jb72694m0mzv4cx746prx9anvq1ss2i0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/narrow-reindent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    narrowed-page-navigation = callPackage ({ cl-lib ? null
+                                            , emacs
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "narrowed-page-navigation";
+        ename = "narrowed-page-navigation";
+        version = "20150108.2119";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "narrowed-page-navigation";
+          rev = "b215adbac4873f56fbab65772062f0f5be8058a1";
+          sha256 = "0ydxj6dc10knambma2hpimqrhfz216nbj96w1dcwgjixs4cd4nax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/narrowed-page-navigation";
+          sha256 = "1yrmih60dd69qnin505jlmfidm2svzpdrz46286r7nm6pk7s4pb7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/narrowed-page-navigation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nash-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nash-mode";
+        ename = "nash-mode";
+        version = "20160830.512";
+        src = fetchFromGitHub {
+          owner = "tiago4orion";
+          repo = "nash-mode.el";
+          rev = "bb7ae728a16812a0ef506483b877f6221c92ca9c";
+          sha256 = "1n4dxbd388ibghismc5d1nkvxwxdi4r415prsaa3qad8l9s4ivwh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nash-mode";
+          sha256 = "1d6nfxn7fc2qv78bf5277sdwfqflag2gihgic8vxrbjlpnizxn1p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nash-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nasm-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nasm-mode";
+        ename = "nasm-mode";
+        version = "20180711.1209";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "nasm-mode";
+          rev = "1d4871ef184fc5da792bccbae1ea189f876706fc";
+          sha256 = "1pyawg7axx6rzcal3v0cya2jpdnsndd4af8vy60kjpwxa1sq7h2m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nasm-mode";
+          sha256 = "1626yf9mmqlsw8w01vzqsyb5ipa56259d4kl6w871k7rvhxwff17";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nasm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nav = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "nav";
+        ename = "nav";
+        version = "20120507.7";
+        src = fetchFromGitHub {
+          owner = "ijt";
+          repo = "emacs-nav";
+          rev = "c5eb234c063f435dbdcd1f8bdc46cfc68c973ebe";
+          sha256 = "0kfqpji6z3ra8sc951vmm1bzyhkws7vb5q6djvl45wlf1wrgkc4p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nav";
+          sha256 = "0ly1fk4ak1p8gkz3qmmxyslcjgicnfm8bpqqgndvwcznp8pvpjml";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nav-flash = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nav-flash";
+        ename = "nav-flash";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "nav-flash";
+          rev = "26b8c0d23e2d460f3ce06cb5df8a5e219c20da8b";
+          sha256 = "0xnvl851h1g1d4h0qa218a4a23bpadbiwx6lgx94gvwcylnbl722";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nav-flash";
+          sha256 = "0936kr0s6zxxmjwaqm7ywdw2im4dxai1xb7j6xa2gp7c70qvvsx3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nav-flash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    navi-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , outorg
+                             , outshine }:
+      melpaBuild {
+        pname = "navi-mode";
+        ename = "navi-mode";
+        version = "20180515.1948";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "navi";
+          rev = "7c3fd1a9b520300abfdb1b7c3de21403e81a95bf";
+          sha256 = "1k5g3ij6rq20jllb7w21sp068lvcc2cjrxm2yq76bjaajbfsa501";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/navi-mode";
+          sha256 = "0pc52iq8lng2g0vpnrhdfxmibc1dx9ksmrjg0303as1yv41fnc69";
+          name = "recipe";
+        };
+        packageRequires = [ outorg outshine ];
+        meta = {
+          homepage = "https://melpa.org/#/navi-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    navi2ch = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "navi2ch";
+        ename = "navi2ch";
+        version = "20150329.1916";
+        src = fetchFromGitHub {
+          owner = "naota";
+          repo = "navi2ch";
+          rev = "faebfd15184de9df6903eae436dafb52c38ee86e";
+          sha256 = "15l2zmm8bp4ip8m1hfxkvswfwa29pg72kisfya2n5v900r184a4m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/navi2ch";
+          sha256 = "13xwvyy27dz1abjkkazm3s1p6cw32l2klr1bnln02w0azkbdy7x3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/navi2ch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    navorski = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , multi-term
+                            , s }:
+      melpaBuild {
+        pname = "navorski";
+        ename = "navorski";
+        version = "20141203.1024";
+        src = fetchFromGitHub {
+          owner = "roman";
+          repo = "navorski.el";
+          rev = "698c1c62da70164aebe9a7a5d034778fbc30ea5b";
+          sha256 = "0g7rmvfm0ldv0d2x7f8k761mgmi47siyspfi1ns40ijhkpc15x8l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/navorski";
+          sha256 = "0dnzpsm0ya8rbcik5wp378hc9k7gjb3gwmkqqj889c38q5cdwsx7";
+          name = "recipe";
+        };
+        packageRequires = [ dash multi-term s ];
+        meta = {
+          homepage = "https://melpa.org/#/navorski";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ncl-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ncl-mode";
+        ename = "ncl-mode";
+        version = "20180128.2303";
+        src = fetchFromGitHub {
+          owner = "yyr";
+          repo = "ncl-mode";
+          rev = "602292712a9e6b7e7c25155978999e77d06b7338";
+          sha256 = "0sv44hn2ylick7ywpcbij8h2vxdj06zridjdmcfgpv5d090dbl9n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ncl-mode";
+          sha256 = "1niy0w24q6q6j7s0l9fcaqai7zz2gg1qlk2s9sxb8j79jc41y47k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ncl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nclip = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "nclip";
+        ename = "nclip";
+        version = "20130617.1315";
+        src = fetchFromGitHub {
+          owner = "maio";
+          repo = "nclip.el";
+          rev = "af88e38b1f04be02bf2e57affc662dbd0f828e67";
+          sha256 = "178gjv7kq97p9i4naxql7xabvmchw5x8idkpyjqqky3b24v5wkis";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nclip";
+          sha256 = "016jp1rqrf1baxlxbi3476m88a0l3r405dh6pmly519wm2k8pipw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nclip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    neato-graph-bar = callPackage ({ emacs
+                                   , fetchFromGitLab
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "neato-graph-bar";
+        ename = "neato-graph-bar";
+        version = "20171230.1753";
+        src = fetchFromGitLab {
+          owner = "RobertCochran";
+          repo = "neato-graph-bar";
+          rev = "c59f15ed9a40aecc174aa22c4bbfa7978e182705";
+          sha256 = "0bdgsxdlwpkd3hjnw1jmj30slakzmj2pinj3pyr5qqba9apxnvri";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/neato-graph-bar";
+          sha256 = "1p4jmla75ny443cv7djk3nvl3ikchllnsivxx9yds14ynk4jxhgb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/neato-graph-bar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nemerle = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "nemerle";
+        ename = "nemerle";
+        version = "20161029.1323";
+        src = fetchFromGitHub {
+          owner = "rsdn";
+          repo = "nemerle";
+          rev = "8818c5af5598e16ea59189e1e3245f0a3d7c78f0";
+          sha256 = "1ky63jyxdz1m6fcz3phi87mwc0ha6bn2fpg4lcdzp0w8cp8rc8ad";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nemerle";
+          sha256 = "1rbalq3s2inwz9cf6bfmnxgqd9ylba3crflfjs6b4mnp33z4swny";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nemerle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    neon-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "neon-mode";
+        ename = "neon-mode";
+        version = "20180406.456";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "neon-mode";
+          rev = "99d15e46beaf1e7d71e39a00cce810df1f33229d";
+          sha256 = "07vsi07m5q070fvkqhz32qa2y7dgnyi1kggairimbiwbn98bh642";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/neon-mode";
+          sha256 = "0kgyc0rkxvvks5ykizfv82f2cx7ck17sk63plj7bld6khlcgv0y6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/neon-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    neotree = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "neotree";
+        ename = "neotree";
+        version = "20181113.1325";
+        src = fetchFromGitHub {
+          owner = "jaypei";
+          repo = "emacs-neotree";
+          rev = "6e3ae07b08d4dd218c119e91a101d7e7ed6ef4d9";
+          sha256 = "19xk6gjfrb1bg7cx5w62p41av173d7f1f7nbg82ryiwjb7143qxi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/neotree";
+          sha256 = "05smm1xsn866lsrak0inn2qw6dvzy24lz6h7rvinlhk5w27xva06";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/neotree";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nerdtab = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "nerdtab";
+        ename = "nerdtab";
+        version = "20180810.2039";
+        src = fetchFromGitHub {
+          owner = "casouri";
+          repo = "nerdtab";
+          rev = "601d531fa3748db733fbdff157a0f1cdf8a66416";
+          sha256 = "0l9pbgpp90rhji42zmcn8rlp6pnhkplnpn8w6xflw51iwhdkm1rb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nerdtab";
+          sha256 = "0q7dyqxq058195pgb1pjy27gcrr96096xcvvrapkarym7jsa2wy3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nerdtab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    netease-music = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , names }:
+      melpaBuild {
+        pname = "netease-music";
+        ename = "netease-music";
+        version = "20181028.554";
+        src = fetchFromGitHub {
+          owner = "nicehiro";
+          repo = "netease-music";
+          rev = "31c31cff44d2889c0456ac11d5d38227f15f03b6";
+          sha256 = "0fwph4vyp0w4ir2g9bvvmspsgwpl9wqpn43x36y8ihgb3n32wcw8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/netease-music";
+          sha256 = "1vb81f1l45v6rny91rcqvnhzqh5ybdr0r39yrcaih8zhvamk685z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs names ];
+        meta = {
+          homepage = "https://melpa.org/#/netease-music";
+          license = lib.licenses.free;
+        };
+      }) {};
+    netherlands-holidays = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "netherlands-holidays";
+        ename = "netherlands-holidays";
+        version = "20150202.817";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "netherlands-holidays";
+          rev = "26236178cdd650df9958bf5a086e184096559f00";
+          sha256 = "1kkflj2qnrn6kzh1l6bjl5n5507qilb22pqj3h0f2m6hfyn0sw5z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/netherlands-holidays";
+          sha256 = "181linsbg5wrx1z7zbj3in2d3d4zd2v7drspkj0b6l0c5yfxwayf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/netherlands-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    netrunner = callPackage ({ company
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , popup }:
+      melpaBuild {
+        pname = "netrunner";
+        ename = "netrunner";
+        version = "20160910.1632";
+        src = fetchFromGitHub {
+          owner = "Kungsgeten";
+          repo = "netrunner";
+          rev = "c64672992175c8c1073c0f56c2e471839db71a0f";
+          sha256 = "1jj8qsq4xa93h3srskhw1l6igzf9jhwl8hfa73zvqr8dhqhp149k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/netrunner";
+          sha256 = "1lk5acbv1fw7q9jwpk0l5hqb9wnscg2kj3qn6b4pwn9ggf8axkpv";
+          name = "recipe";
+        };
+        packageRequires = [ company helm popup ];
+        meta = {
+          homepage = "https://melpa.org/#/netrunner";
+          license = lib.licenses.free;
+        };
+      }) {};
+    network-watch = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "network-watch";
+        ename = "network-watch";
+        version = "20171123.346";
+        src = fetchFromGitHub {
+          owner = "jamiguet";
+          repo = "network-watch";
+          rev = "d80b38dbec79f813c3949a8df8fb5f58d48b60ee";
+          sha256 = "1c8qbigdj61dqzkf03y6fzywykqgim6zpfmva8631q5ygnhsrnp2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/network-watch";
+          sha256 = "0y3vjrh9vlfg44c01ylkszisliwfy5zb8c5z3qrmf3yj4q096f42";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/network-watch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    never-comment = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "never-comment";
+        ename = "never-comment";
+        version = "20140104.1407";
+        src = fetchFromGitHub {
+          owner = "To1ne";
+          repo = "never-comment";
+          rev = "1996d003cad6bccf1475f7845d79efacbc7cd673";
+          sha256 = "16q90lbgdh9iz3njakgip20mhc8dmd0zjsvk02zsc5q5n9c7rs8i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/never-comment";
+          sha256 = "0sn8y57895bfpgiynnj4m9b3x3dbb9v5fwkcwmf9jr39dbf98v6s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/never-comment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    newlisp-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "newlisp-mode";
+        ename = "newlisp-mode";
+        version = "20160226.745";
+        src = fetchFromGitHub {
+          owner = "kosh04";
+          repo = "newlisp-mode";
+          rev = "ac23be40c81a360988ab803d365f1510733f6db4";
+          sha256 = "1zzsfyqwj1k4zh30gl491ipavr9pp9djwjq3zz2q3xh7jys68w8r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/newlisp-mode";
+          sha256 = "0i2d2gyzzvpr5qm2cqzbn9my21lfb66315hg9fj86ac5pkc25zrd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/newlisp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nexus = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "nexus";
+        ename = "nexus";
+        version = "20140114.505";
+        src = fetchFromGitHub {
+          owner = "juergenhoetzel";
+          repo = "emacs-nexus";
+          rev = "c46f499951b90839aa8683779fe43d8f01672a60";
+          sha256 = "1xnx6v49i6abzbhq4fl4bp9d0pp9gby40splpcj211xsb8yiry27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nexus";
+          sha256 = "1mdphgsqg6n4hryr53rk42z58vfv0g5wkar5ipanr4h4iclkf5vd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nexus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ng2-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , typescript-mode }:
+      melpaBuild {
+        pname = "ng2-mode";
+        ename = "ng2-mode";
+        version = "20180919.1712";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "ng2-mode";
+          rev = "db55c94c6697ca0e99d6713218bd8f47d2d374e3";
+          sha256 = "0d2jw2c3yvp80sqgcmcy7zhrfb9nnng4y7hzyz0ipjyhrfwf4qwa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ng2-mode";
+          sha256 = "0sr4yh5nkgqb1qciq9mzzhr64350bi2wjm6z9d616nkjw72saz1r";
+          name = "recipe";
+        };
+        packageRequires = [ typescript-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ng2-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nginx-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nginx-mode";
+        ename = "nginx-mode";
+        version = "20170611.2137";
+        src = fetchFromGitHub {
+          owner = "ajc";
+          repo = "nginx-mode";
+          rev = "a2bab83c2eb233d57d76b236e7c141c2ccc97005";
+          sha256 = "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nginx-mode";
+          sha256 = "07k17m64zhv6gik8v4n73d8l1k6fsp4qp8cl94r384ny0187y65c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nginx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    niceify-info = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "niceify-info";
+        ename = "niceify-info";
+        version = "20160416.544";
+        src = fetchFromGitHub {
+          owner = "aaron-em";
+          repo = "niceify-info.el";
+          rev = "66b45916f1994e16ee023d29fa7cf8fec48078f1";
+          sha256 = "0dzcaa88l7yjc7fhyhkvbzs7bmhi6bb6rx41wsnnidlnpzbgdrk7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/niceify-info";
+          sha256 = "1s9c8yxbab9zl5jx38alwa2hpp4zj5cb9a5gfm3x09jf3iw768bl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/niceify-info";
+          license = lib.licenses.free;
+        };
+      }) {};
+    niconama = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , request }:
+      melpaBuild {
+        pname = "niconama";
+        ename = "niconama";
+        version = "20170910.801";
+        src = fetchFromGitHub {
+          owner = "NOBUTOKA";
+          repo = "niconama.el";
+          rev = "96e7553e50e6bf7b58aac50f52c9b0b8edb41c56";
+          sha256 = "1gihjzwl6309vgav5z7jzi8jb7is8vx8lr23kb6h373gwws4bi10";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/niconama";
+          sha256 = "1v4cvcxrl254jhfl1q5ld0gn4598fcvv0pfhilh2jy76w5acqx81";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/niconama";
+          license = lib.licenses.free;
+        };
+      }) {};
+    night-owl-theme = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "night-owl-theme";
+        ename = "night-owl-theme";
+        version = "20180630.1431";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "night-owl-emacs";
+          rev = "deecfd6f47f0802ed760e0b5843fb3cc6f723fd1";
+          sha256 = "1mr0dr5yba6nkaki914yiaxa7b1yqw1p0dm9a75mvkzwra6fcljh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/night-owl-theme";
+          sha256 = "121jc59ry60h1ml1vxx4a6l4a6jcxk7fc4wz32fqv5pr03rzgs7h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/night-owl-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nikola = callPackage ({ async
+                          , emacs
+                          , fetchgit
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "nikola";
+        ename = "nikola";
+        version = "20170703.1321";
+        src = fetchgit {
+          url = "https://git.daemons.it/drymer/nikola.el/";
+          rev = "964715ac30943c9d6976999cad208dc60d09def0";
+          sha256 = "0b0bpw9r2xi1avzq76pl58bbk1shb57d3bmzd9d53d07gj5c9399";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nikola";
+          sha256 = "1d0a80y910klayb9jf0ahn5lj9l6xdhwcp2in3ridmqislavrcnv";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nikola";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nim-mode = callPackage ({ commenter
+                            , emacs
+                            , epc
+                            , fetchFromGitHub
+                            , fetchurl
+                            , flycheck-nimsuggest
+                            , let-alist
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "nim-mode";
+        ename = "nim-mode";
+        version = "20181028.1013";
+        src = fetchFromGitHub {
+          owner = "nim-lang";
+          repo = "nim-mode";
+          rev = "2acb601e6b3bf81f2fe29cfa1f3967e81bd12564";
+          sha256 = "0dynhsq8wmwa9411xknlrzi1w7871xkxzmd6jsbcimgdmkkk7iys";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nim-mode";
+          sha256 = "1kzn3kkkj7jzs7fqhvib196sl3vp7kbhb4icqzmvvmv366lkaib6";
+          name = "recipe";
+        };
+        packageRequires = [ commenter emacs epc flycheck-nimsuggest let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/nim-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nimbus-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "nimbus-theme";
+        ename = "nimbus-theme";
+        version = "20181109.414";
+        src = fetchFromGitHub {
+          owner = "m-cat";
+          repo = "nimbus-theme";
+          rev = "e1fbbb5644c0ef5cd070f958ca17f4e5978c2ab6";
+          sha256 = "1m71gldkmf35zc10iwph3c2cw2s3s3n15wilhik22fry798jb1yn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nimbus-theme";
+          sha256 = "1hy4rc1v5wg7n6nazdq09gadirb0qvn887mmdavwjnnac45xyi18";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nimbus-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ninja-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ninja-mode";
+        ename = "ninja-mode";
+        version = "20181024.739";
+        src = fetchFromGitHub {
+          owner = "ninja-build";
+          repo = "ninja";
+          rev = "d2045dedc39885e702176b2b5e05bc77024ae3aa";
+          sha256 = "0jmvjpq7fabb0bjdd4dncb1vdfizya0rjs57d6wvgc8hbgfjsvj8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ninja-mode";
+          sha256 = "1v6wy9qllbxl37fp9h47000lwp557qss6fdjb3a1f20msg8f70av";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ninja-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nix-buffer = callPackage ({ emacs
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nix-buffer";
+        ename = "nix-buffer";
+        version = "20180212.718";
+        src = fetchFromGitHub {
+          owner = "shlevy";
+          repo = "nix-buffer";
+          rev = "db57cda36e7477bdc7ef5a136357b971b1d4d099";
+          sha256 = "0b01b4l9c70sad5r5py5hvg7s6k6idwwp0pv3rn8rj0fq5wlyixj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nix-buffer";
+          sha256 = "1fjkf88345v9l2v2mk8a057mw0p0rckf6rjf00y5464dyhh58vcd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/nix-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nix-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "nix-mode";
+        ename = "nix-mode";
+        version = "20181029.2046";
+        src = fetchFromGitHub {
+          owner = "NixOS";
+          repo = "nix-mode";
+          rev = "84ee98019fbb48854ebd57cc74848b7e7327a78c";
+          sha256 = "1i9vg5q1fqp2h49p5m5p6a0nv796v0wq8ljbmfg1z4kmwll69mkx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nix-mode";
+          sha256 = "10f3ly4860lkxzykw4fbvhn3i0c2hgj77jfjbhlk2c1jz9x4yyy5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nix-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nix-sandbox = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "nix-sandbox";
+        ename = "nix-sandbox";
+        version = "20171004.1006";
+        src = fetchFromGitHub {
+          owner = "travisbhartwell";
+          repo = "nix-emacs";
+          rev = "7007363e773a419203a69798fb0e0731b2eb0f73";
+          sha256 = "00hv8fhyahkdh1vfy1qkahqvsik6d81c7mqh4gjiqxrmb2l1vbcb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nix-sandbox";
+          sha256 = "13zr0jbc6if2wvyiplay2gkd5548imfm38x1qy1dw6m2vhbzwp0k";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/nix-sandbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nix-update = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nix-update";
+        ename = "nix-update";
+        version = "20180424.1748";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "nix-update-el";
+          rev = "d92b2c190dbaeb16751be724fe381f8a796c424c";
+          sha256 = "0lqhc7nnw96pz9alq75w6zmjb6carmaak1g2cf4csslqbihnbriz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nix-update";
+          sha256 = "0if83pvjvr0347301j553bsxrrxniyykq20457cdkzlvva52c0b3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nix-update";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nixos-options = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "nixos-options";
+        ename = "nixos-options";
+        version = "20160209.1041";
+        src = fetchFromGitHub {
+          owner = "travisbhartwell";
+          repo = "nix-emacs";
+          rev = "045825c2e1cf0a4fb0a472e72c1dae8f55202cef";
+          sha256 = "12zwaiyr1n37zwrmyr3m8kn2302abyagj5dzmbr1wvbf3ihkxmxd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nixos-options";
+          sha256 = "1m3jipidk10zj68rzjbacgjlal31jf80gqjxlgj4qs8lm671gxmm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nixos-options";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nlinum-hl = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , nlinum }:
+      melpaBuild {
+        pname = "nlinum-hl";
+        ename = "nlinum-hl";
+        version = "20170613.1748";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-nlinum-hl";
+          rev = "46e26d1e3d5bfe9a3f79a5cce21f3c442ac10da8";
+          sha256 = "1yi3rg6j8r0c7a70dghj838vfslwdvjcy6w7735pfbdb073mpzfs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nlinum-hl";
+          sha256 = "17lcp1ira7yhch9npg9sf3npwg06yh9zyhg0lnb22xg09lbndj0x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs nlinum ];
+        meta = {
+          homepage = "https://melpa.org/#/nlinum-hl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nlinum-relative = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , nlinum }:
+      melpaBuild {
+        pname = "nlinum-relative";
+        ename = "nlinum-relative";
+        version = "20160526.8";
+        src = fetchFromGitHub {
+          owner = "CodeFalling";
+          repo = "nlinum-relative";
+          rev = "5b9950c97ba79a6f0683e38b13da23f39e01031c";
+          sha256 = "0h00ghr5sipayfxz7ykzy7bg1p1vkbwxl5xch3x0h8j2cp1dqc3d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nlinum-relative";
+          sha256 = "15ifh5bfsarkifx6m7d5rhx6hqlnm231plkf623885kar7i85ia4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs nlinum ];
+        meta = {
+          homepage = "https://melpa.org/#/nlinum-relative";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nm = callPackage ({ company
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild
+                      , notmuch
+                      , peg }:
+      melpaBuild {
+        pname = "nm";
+        ename = "nm";
+        version = "20151110.1110";
+        src = fetchFromGitHub {
+          owner = "tjim";
+          repo = "nevermore";
+          rev = "5a3f29174b3a4b2b2e7a700a862f3b16a942687e";
+          sha256 = "1skbjmyikzyiic470sngskggs05r35m8vzm69wbmrjapczginnak";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nm";
+          sha256 = "004rjbrkc7jalbd8ih170sy97w2g16k3whqrqwywh09pzrzb05kw";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs notmuch peg ];
+        meta = {
+          homepage = "https://melpa.org/#/nm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nnir-est = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "nnir-est";
+        ename = "nnir-est";
+        version = "20180710.1403";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "nnir-est";
+          rev = "6d0d5c8e33f4e4ccbc22350324c0990d2676fb5a";
+          sha256 = "1xmv2mddhvcvnyndpyv42gl8zn5dx7lvd03pl43bjp38srn4aj6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nnir-est";
+          sha256 = "04ih47pipph8sl84nv6ka4xlpd8vhnpwhs5cchgk5k1zv3l5scxv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nnir-est";
+          license = lib.licenses.free;
+        };
+      }) {};
+    no-emoji = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "no-emoji";
+        ename = "no-emoji";
+        version = "20180515.1137";
+        src = fetchFromGitHub {
+          owner = "ecraven";
+          repo = "no-emoji";
+          rev = "ebceeab50dbfe4d60235180a57633745dbc18c77";
+          sha256 = "19wni50073dwspppx0xlryagg2fgg0jiz5kqf1b1wmaq8xn5b8r9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/no-emoji";
+          sha256 = "1lr6bzjxwn3yzw0mq36h2k2h8bqb1ngin42swhv022yx6a022zn2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/no-emoji";
+          license = lib.licenses.free;
+        };
+      }) {};
+    no-littering = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "no-littering";
+        ename = "no-littering";
+        version = "20181030.547";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "no-littering";
+          rev = "0243e7485de736be9b7299c1e188d0cc9fdc3349";
+          sha256 = "1llibjlfgf71ssc2yrqqkszvk5mmb1cdya9k1fgjdgvjg5hjsk8q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/no-littering";
+          sha256 = "15w784ir48v8biiaar8ip19s9y3wn5831m815kcw02mgzy3bfjmh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/no-littering";
+          license = lib.licenses.free;
+        };
+      }) {};
+    noaa = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , request }:
+      melpaBuild {
+        pname = "noaa";
+        ename = "noaa";
+        version = "20180419.1133";
+        src = fetchFromGitHub {
+          owner = "thomp";
+          repo = "noaa";
+          rev = "e99f7702512de49f93138dce6e0a7cfe2bc5eed3";
+          sha256 = "1fhq6bly76qj67dbkbdlhl0icqpl4h1k3lip9ig64d8fqykpi8al";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/noaa";
+          sha256 = "11hzpmgapmf6dc5imvj5jvzcy7hfddyz74lqmrq8128i72q1sj0v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/noaa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    noccur = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "noccur";
+        ename = "noccur";
+        version = "20150514.1420";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "noccur.el";
+          rev = "ff2a76883c43b283a08680733ec3ad403a1b1827";
+          sha256 = "0y18hpwgzvm1i9yb3b6fxpbh3fmzkmyldq4as65i5s8n66i7mr6j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/noccur";
+          sha256 = "0a8l50v09bgap7rsls808k9wyjpjbcxaffsvz7hh9rw9s7m5fz5g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/noccur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nocomments-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "nocomments-mode";
+        ename = "nocomments-mode";
+        version = "20170213.1237";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "nocomments-mode";
+          rev = "5a41a20cc44dfe4a9ea584354ed6dbc15dd92f46";
+          sha256 = "0jwwnypa0lx812p3dqqn9c05g27qavnvr23pzphydx9i15nz80g0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nocomments-mode";
+          sha256 = "1qhalhs29fb3kv5ckk8ny9fbqn2c4r4lwnc566j3bb1caqf2j7g0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nocomments-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    noctilux-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "noctilux-theme";
+        ename = "noctilux-theme";
+        version = "20161113.642";
+        src = fetchFromGitHub {
+          owner = "sjrmanning";
+          repo = "noctilux-theme";
+          rev = "a3265a1be7f4d73f44acce6d968ca6f7add1f2ca";
+          sha256 = "12xx0v8d97kjvlkj0ii78vxxvzgmcfc4hzv4yvxymg50rsy0zzqi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/noctilux-theme";
+          sha256 = "15ymyv3rq0n31d8h0ry0l4w4r5a8as0q63ajm9wb6yrxxjl1imfp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/noctilux-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    node-resolver = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "node-resolver";
+        ename = "node-resolver";
+        version = "20140930.1023";
+        src = fetchFromGitHub {
+          owner = "meandavejustice";
+          repo = "node-resolver.el";
+          rev = "ef9d0486907a746a80b02ffc6208a09c168a9f7c";
+          sha256 = "1cgmq00ackabwcl4h0n2bb8y08wz0ir5rzca2q3sk4asly6d02m7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/node-resolver";
+          sha256 = "1ng4rgm8f745fajqnbjhi2rshvn6icwdpbh5dzpzhim1w9kb3bhh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/node-resolver";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nodejs-repl = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "nodejs-repl";
+        ename = "nodejs-repl";
+        version = "20181024.954";
+        src = fetchFromGitHub {
+          owner = "abicky";
+          repo = "nodejs-repl.el";
+          rev = "d518947584c8041a36ffa103e2d487d852cd12ee";
+          sha256 = "05ccv87rnw7fss3lib8m9sywjrj6n92fnd7mmhmjh27g2klqc83z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nodejs-repl";
+          sha256 = "0rvhhrsw87kfrwdhm8glq6b3nr0v90ivm7fcc0da4yc2jmcyk907";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nodejs-repl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nodemcu-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "nodemcu-mode";
+        ename = "nodemcu-mode";
+        version = "20180501.1525";
+        src = fetchFromGitHub {
+          owner = "andrmuel";
+          repo = "nodemcu-mode";
+          rev = "8effd9f3df40b6b92a2f05e4d54750b624afc4a7";
+          sha256 = "1s19sshsm4cdx8kj5prmsq8ryz4843xcqmdayvlfl99jxsp9j4pm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nodemcu-mode";
+          sha256 = "0xx5dys8vifgaf3hb4q762xhhn1jybc4xwajqj98iban4nrakb3a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nodemcu-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nodenv = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "nodenv";
+        ename = "nodenv";
+        version = "20181023.843";
+        src = fetchFromGitHub {
+          owner = "twlz0ne";
+          repo = "nodenv.el";
+          rev = "832fb0cbac4513edde7ebd6d1ab971c54313be36";
+          sha256 = "0hn29y8gv9y9646yacnhirx2iz1z7h0p3wrzjn5axbhw0y382qhq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nodenv";
+          sha256 = "15wqlpswp4m19widnls21rm5n0ijfhmw3vyx0ch5k2bhi4a5rip6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nodenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    noflet = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "noflet";
+        ename = "noflet";
+        version = "20141102.654";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-noflet";
+          rev = "7ae84dc3257637af7334101456dafe1759c6b68a";
+          sha256 = "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/noflet";
+          sha256 = "0vzamqb52n330mi6rydrd4ls8nbwh5s42fc2gs5y15zakp6mvhr3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/noflet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nofrils-acme-theme = callPackage ({ emacs
+                                      , fetchFromGitLab
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "nofrils-acme-theme";
+        ename = "nofrils-acme-theme";
+        version = "20180620.548";
+        src = fetchFromGitLab {
+          owner = "esessoms";
+          repo = "nofrils-theme";
+          rev = "98ad7bfaff1d85b33dc162645670285b067c6f92";
+          sha256 = "0f8s7mhcs1ym4an8d4dabfvhin30xs2d0c5gv875hsgz8p3asgxs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nofrils-acme-theme";
+          sha256 = "01xqsn8whczv34lfa9vbm5rpvrvsrlpav8pzng10jvax1a9wdp3a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nofrils-acme-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nord-theme = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nord-theme";
+        ename = "nord-theme";
+        version = "20180913.1049";
+        src = fetchFromGitHub {
+          owner = "arcticicestudio";
+          repo = "nord-emacs";
+          rev = "c4e0b5548e2f3a149658617b33813cb115bdecfe";
+          sha256 = "0am2gpk63b4cjlpdy1z2mrhq09q1hi54jqpmh2rvdvijsvp6335q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nord-theme";
+          sha256 = "0p4fqg4i2ayimd8kxsqnb1xkapzhhxf7szxi1skva4dcym3z67cc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nord-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nordless-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "nordless-theme";
+        ename = "nordless-theme";
+        version = "20180613.50";
+        src = fetchFromGitHub {
+          owner = "lthms";
+          repo = "nordless-theme.el";
+          rev = "e4da9d2465a123ea28e33a507cc7ab69692cde86";
+          sha256 = "172ww1amlvd17f9qr69a17ksk0i8zpfma0arkygmf8n951zkqv8d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nordless-theme";
+          sha256 = "1ylvqh5hf7asdx2mn57fsaa7ncfgfzq1ss50k9665k32zvv3zksx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nordless-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    northcode-theme = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "northcode-theme";
+        ename = "northcode-theme";
+        version = "20180423.949";
+        src = fetchFromGitHub {
+          owner = "Northcode";
+          repo = "northcode-theme.el";
+          rev = "4d3750461ba25ec45321318b5f1af4e8fdf16147";
+          sha256 = "1yin5i38jdp47k6b7mc0jkv9ihl8nk5rpqin4qmwbhb871zxn7ma";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/northcode-theme";
+          sha256 = "0x4dryx174kcjzm11z9q5qqlzr1c9zr0p32zwgbvgypgnvjy6i4g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/northcode-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nose = callPackage ({ fetchhg
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "nose";
+        ename = "nose";
+        version = "20140520.948";
+        src = fetchhg {
+          url = "https://bitbucket.com/durin42/nosemacs";
+          rev = "194d7789bf79";
+          sha256 = "07bhzddaxdjd591xmg59yd657a1is0q515291jd83mjsmgq258bm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nose";
+          sha256 = "1xdqsxq06x2m9rcfn1qh89g0mz1rvzl246d3sfmciwcyl932x682";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    notmuch = callPackage ({ fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "notmuch";
+        ename = "notmuch";
+        version = "20181021.630";
+        src = fetchgit {
+          url = "https://git.notmuchmail.org/git/notmuch";
+          rev = "7f726c6e87517eb9c84119a1c5e3a63bfaaa49f6";
+          sha256 = "0bcak0m0ckmvq06grw1i790jrp0mv29cx1474l0934lz0hc3ffv8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/notmuch";
+          sha256 = "0pznpl0aqybdg4b2qypq6k4jac64sssqhgz6rvk9g2nkqhkds1x7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/notmuch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    notmuch-labeler = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , notmuch }:
+      melpaBuild {
+        pname = "notmuch-labeler";
+        ename = "notmuch-labeler";
+        version = "20131230.919";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "notmuch-labeler";
+          rev = "d65d1129555d368243df4770ecc1e7ccb88efc58";
+          sha256 = "1ss87vlp7625lnn2iah3rc1xfxcbpx4kmiww9n16jx073fs2rj18";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/notmuch-labeler";
+          sha256 = "1c0cbkk5k8ps01xl63a0xa2adkqaj0znw8qs8ca4ai8v1420bpl0";
+          name = "recipe";
+        };
+        packageRequires = [ notmuch ];
+        meta = {
+          homepage = "https://melpa.org/#/notmuch-labeler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nov = callPackage ({ dash
+                       , emacs
+                       , esxml
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "nov";
+        ename = "nov";
+        version = "20181117.2350";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "nov.el";
+          rev = "3bb7a4038f0c2100df671c9f1f33b785ed4ae296";
+          sha256 = "1s2av1yrzsqslgjfiislf9bljdk0rxpyq2vrbyralfnj2wvgpk9m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nov";
+          sha256 = "0hlcncpdazi4rn5yxd0zq85v7gpjhw7a6dl2i99zf4ymsan97lhq";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs esxml ];
+        meta = {
+          homepage = "https://melpa.org/#/nov";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nova-theme = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nova-theme";
+        ename = "nova-theme";
+        version = "20180905.1211";
+        src = fetchFromGitHub {
+          owner = "muirmanders";
+          repo = "emacs-nova-theme";
+          rev = "932c83e6e06e795c2a380b69eee3913a3a805cea";
+          sha256 = "1mawj1dxp2s9fqg24j0v5xfn0r6wrlvplbl4a71q553rsr3q63il";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nova-theme";
+          sha256 = "1d2271qd5z48x71pxjg4lngsc5ddw5iqh496p04f63sm08cgaky4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nova-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    noxml-fold = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "noxml-fold";
+        ename = "noxml-fold";
+        version = "20170823.657";
+        src = fetchFromGitHub {
+          owner = "paddymcall";
+          repo = "noXML-fold";
+          rev = "46c7f6a008672213238a9f8d7a416ce80916aa62";
+          sha256 = "0axr7n4wdrd009lz6sg4y9ggf4f5svgrsclwhs0hyn2ld34rvrax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/noxml-fold";
+          sha256 = "11dninxxwhflf2qrmvwmrryspd9j6m95kdlmyx59ykqvw8j0siqc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/noxml-fold";
+          license = lib.licenses.free;
+        };
+      }) {};
+    npm-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "npm-mode";
+        ename = "npm-mode";
+        version = "20180720.1001";
+        src = fetchFromGitHub {
+          owner = "mojochao";
+          repo = "npm-mode";
+          rev = "4f4b9fc2c07290ae87f65179df95be5221e76bf2";
+          sha256 = "01dnyra7j72v7alalx5gk4mkq6gddvr66facpsq1dpvi2h4d8cky";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/npm-mode";
+          sha256 = "1aym4jfr6im6hdc5d7995q6myhgig286fk9hpaxdf418h1s17rqr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/npm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nrepl-eval-sexp-fu = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , highlight
+                                      , lib
+                                      , melpaBuild
+                                      , smartparens
+                                      , thingatpt ? null }:
+      melpaBuild {
+        pname = "nrepl-eval-sexp-fu";
+        ename = "nrepl-eval-sexp-fu";
+        version = "20140311.341";
+        src = fetchFromGitHub {
+          owner = "samaaron";
+          repo = "nrepl-eval-sexp-fu";
+          rev = "3a24b7d4bca13e87c987a4ddd212da914ff59191";
+          sha256 = "1nwj1ax2qmmlab4lik0b7japhqd424d0rb995dfv89p99gp8vmvc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nrepl-eval-sexp-fu";
+          sha256 = "1mz7a6aa4x23khlfqhhn9ycs3yxg44h5cckg4v4rc6lbif1jzzf8";
+          name = "recipe";
+        };
+        packageRequires = [ highlight smartparens thingatpt ];
+        meta = {
+          homepage = "https://melpa.org/#/nrepl-eval-sexp-fu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nrepl-sync = callPackage ({ cider
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nrepl-sync";
+        ename = "nrepl-sync";
+        version = "20140807.854";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "lein-sync";
+          rev = "9506238562c2e0c0df744e0d81edff4c74322a7d";
+          sha256 = "1si5pfczk3iypdx2ydhirznx2hvp6r7sq2hy64gn3mn4r68svlfi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nrepl-sync";
+          sha256 = "01b504b4d8rrhlf3sfq3kk9i222fch6jd5jbm02kqw20fgv6q3jd";
+          name = "recipe";
+        };
+        packageRequires = [ cider ];
+        meta = {
+          homepage = "https://melpa.org/#/nrepl-sync";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ns-auto-titlebar = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ns-auto-titlebar";
+        ename = "ns-auto-titlebar";
+        version = "20181022.1454";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ns-auto-titlebar";
+          rev = "b16092e8058af63ad2bc222f166b0aa3cb66bf9d";
+          sha256 = "0m1ih8ca4702zrkhl3zdvwbci96wyjlxhpfx95w372k25rca87dq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ns-auto-titlebar";
+          sha256 = "1wk4y2jwl65z18cv57m8zkcg31wp9by74z2zvccxzl7mwlhy7kqg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ns-auto-titlebar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nsis-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nsis-mode";
+        ename = "nsis-mode";
+        version = "20180718.2008";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "nsis-mode";
+          rev = "a49f5dbc8a5e60d3bbb803582efb5468bbbe7507";
+          sha256 = "05c8dhys08xmd53ya0633c1lhki5mraz0hqizwz2s5511anj417d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nsis-mode";
+          sha256 = "0pc047ryw906sz5mv0awvl67kh20prsgx6fbh0j1qm0cali2792l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nsis-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nu-mode = callPackage ({ ace-window
+                           , avy
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , transpose-frame
+                           , undo-tree
+                           , which-key }:
+      melpaBuild {
+        pname = "nu-mode";
+        ename = "nu-mode";
+        version = "20181021.1332";
+        src = fetchFromGitHub {
+          owner = "pyluyten";
+          repo = "emacs-nu";
+          rev = "1c20826ee462ad991e8b9cdeedfacb6bf1c159bf";
+          sha256 = "120ba0av9zczxncn97mlivjyaazlanrsisv6l8smhww0s7mvwhz6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nu-mode";
+          sha256 = "0nzv3p62k8yyyww6idlxyi94q4d07nis7ydypar8d01jfqlrybkn";
+          name = "recipe";
+        };
+        packageRequires = [
+          ace-window
+          avy
+          transpose-frame
+          undo-tree
+          which-key
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/nu-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nubox = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "nubox";
+        ename = "nubox";
+        version = "20170619.210";
+        src = fetchFromGitHub {
+          owner = "martijnat";
+          repo = "nubox";
+          rev = "84aa965f0cb4bde293237e4cc586643d1f662f83";
+          sha256 = "0i1x0sd61c8k4q9ijgxyz21gvj1gah273990qfjzj9a25r4hzvlj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nubox";
+          sha256 = "0snzfsd765i363ykdhqkn65lqy97c79d20lalszrwcl2snm96n1f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nubox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    number = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "number";
+        ename = "number";
+        version = "20170901.612";
+        src = fetchFromGitHub {
+          owner = "chrisdone";
+          repo = "number";
+          rev = "bbc278d34dbcca83e70e3be855ec98b23debfb99";
+          sha256 = "0a1r352zs58mdwkq58561qxrz3m5rwk3xqcaaqhkxc0h9jqs4a9r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/number";
+          sha256 = "1nwcdv5ibirxx3sqadh6mnpj40ni3wna7wnjh343mx38dk2dzncf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/number";
+          license = lib.licenses.free;
+        };
+      }) {};
+    number-lock = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "number-lock";
+        ename = "number-lock";
+        version = "20160829.1900";
+        src = fetchFromGitHub {
+          owner = "Liu233w";
+          repo = "number-lock.el";
+          rev = "1ac1b1a269128ddac820df7d45a8d0c703e9c05c";
+          sha256 = "11pqm2f8bx3m9mnvpjbvq8vd8sym7zpq7n0y4lbkybiyxswjrv5q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/number-lock";
+          sha256 = "13xqn4bcjm01zl0rgbwzad58x35230lm2qiipbyqkh2ma0a9pqn4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/number-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    numbers = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "numbers";
+        ename = "numbers";
+        version = "20170802.434";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "numbers.el";
+          rev = "dd02508b788a13b7d4dbcc4923fa23134b783ab3";
+          sha256 = "0bgha85j5f9lpk1h3siiw28v5sy6z52n7d7xi3m301r9hdlccc39";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/numbers";
+          sha256 = "02cx19fi34yvc0icajnwrmb8lr2g8y08kis08v9xxalfxz06kb3h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/numbers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nummm-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nummm-mode";
+        ename = "nummm-mode";
+        version = "20131117.214";
+        src = fetchFromGitHub {
+          owner = "agpchil";
+          repo = "nummm-mode";
+          rev = "73b1aa8643d86197c82cd28acdaefcb48a1e0abe";
+          sha256 = "1022dchkh0hbhsqds6zncfayjgq5zg2x2r5gklr0nyx8j2qd8g7j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nummm-mode";
+          sha256 = "1gdq00f3x0rxxj917x9381v2x7cl9yabj7559zr5vj1clwza8jn4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nummm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nv-delete-back = callPackage ({ emacs
+                                  , fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "nv-delete-back";
+        ename = "nv-delete-back";
+        version = "20170224.449";
+        src = fetchFromGitLab {
+          owner = "nivaca";
+          repo = "nv-delete-back";
+          rev = "44d506105989873dc1725e0cfc675925b35c9c98";
+          sha256 = "0lgz0sknnrxmc7iy4lniday1nwpz4q841c3w2hm72aiwn5z21h22";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nv-delete-back";
+          sha256 = "13izzym4alda05k7ra67lyjx6dx23fjqz2dqk7mrzhik9x552hsr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nv-delete-back";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nvm = callPackage ({ dash
+                       , dash-functional
+                       , f
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , s }:
+      melpaBuild {
+        pname = "nvm";
+        ename = "nvm";
+        version = "20171217.836";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "nvm.el";
+          rev = "bc0a33257ec16e9f575bb6914b5949199897ada9";
+          sha256 = "07fb6xxnij3nyhvf1yfv58zglawijfr0apmgx22qgaray53rp3nw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nvm";
+          sha256 = "0md1ybc2r2fxykwk21acjhdzy2kw326bdwa1d15c6f48lknzvg4w";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional f s ];
+        meta = {
+          homepage = "https://melpa.org/#/nvm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nyan-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nyan-mode";
+        ename = "nyan-mode";
+        version = "20170423.40";
+        src = fetchFromGitHub {
+          owner = "TeMPOraL";
+          repo = "nyan-mode";
+          rev = "4195cd368aca8f05a71cbff4e60cfa9dde10319a";
+          sha256 = "1bnfxw6cnhsqill3n32j9bc6adl437ia9ivbwvwjpz1ay928yxm7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nyan-mode";
+          sha256 = "1z2wnsbjllqa533g1ab5cgbv3d9hjix7fsd7z9c45nqh5cmadmyv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nyan-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nyx-theme = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nyx-theme";
+        ename = "nyx-theme";
+        version = "20170910.607";
+        src = fetchFromGitHub {
+          owner = "guidoschmidt";
+          repo = "emacs-nyx-theme";
+          rev = "afe2b8c3b5421b4c292d182dcf77079b278e93d8";
+          sha256 = "1qamw4x3yrygy8qkicy6smxksnsfkkp76hlnivswh7dm3fr23v6m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nyx-theme";
+          sha256 = "11629h7jfnq2sahwiiqx01qpv3xb0iqvcqm5k9w1zhg01jhjfmw2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nyx-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    o-blog = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "o-blog";
+        ename = "o-blog";
+        version = "20151202.1539";
+        src = fetchFromGitHub {
+          owner = "renard";
+          repo = "o-blog";
+          rev = "e466c59478feddc8126c43c1b98550474af484c0";
+          sha256 = "0xs6787a4v7djgd2zz2v1pk14x27mg2ganz30j9f0gdiai7da6ch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/o-blog";
+          sha256 = "08grkyvg27wd5232q3y8p0v7higfq7bmsdzmvhja96v6qy2xsbja";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/o-blog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    oauth = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "oauth";
+        ename = "oauth";
+        version = "20130127.1751";
+        src = fetchFromGitHub {
+          owner = "psanford";
+          repo = "emacs-oauth";
+          rev = "ee4744ad76a1560281b0c4944575a3bd598c6458";
+          sha256 = "058dyk1c3iw0ip8n8rfpskvqiriqilpclkzc18x73msp5svrh3lj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/oauth";
+          sha256 = "0vgxvscb9cr07g3lzpi269kamgzhpac6dir1rlr4qd2wdv0nifl9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/oauth";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-applescript = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ob-applescript";
+        ename = "ob-applescript";
+        version = "20160914.1327";
+        src = fetchFromGitHub {
+          owner = "stig";
+          repo = "ob-applescript.el";
+          rev = "b5c2966b3bab37a3b1f4e9c663d11da8ef9956ec";
+          sha256 = "0asab7zppxj9dm20f8i273lr8z19lcrjri7v9gmw1jjn0cshfgjm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-applescript";
+          sha256 = "1gk8cgscj9wbl5k8ahh1a61p271xpk5vk2w64a8y3njnwrwxm9jc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-applescript";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-async = callPackage ({ async
+                            , dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "ob-async";
+        ename = "ob-async";
+        version = "20180816.853";
+        src = fetchFromGitHub {
+          owner = "astahlman";
+          repo = "ob-async";
+          rev = "2470490e6efb3f8efde1702f7986f6e31cc1ab6c";
+          sha256 = "0p1m5bg9nv0pxlg880v6i12j1hiviw53rwn8yi0qgdi00vccszkk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-async";
+          sha256 = "0k7kv71nnibp53lav774c61w9pzhq8qvch9rvpyyrwbyd67ninl8";
+          name = "recipe";
+        };
+        packageRequires = [ async dash emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-async";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-axiom = callPackage ({ axiom-environment
+                            , emacs
+                            , fetchgit
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ob-axiom";
+        ename = "ob-axiom";
+        version = "20171103.1548";
+        src = fetchgit {
+          url = "https://bitbucket.org/pdo/axiom-environment";
+          rev = "38cea35e98997e0baf25ab6a1d70ac6daa83a73a";
+          sha256 = "1g1br2va3qz4r0pxmg4254vyscwal6kl2vh0nzlgjpck7x19id5i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-axiom";
+          sha256 = "17qh4hsr3aw4d0p81px3qcbax6dv2zjhyn5n9pxqwcp2skm5vff5";
+          name = "recipe";
+        };
+        packageRequires = [ axiom-environment emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-axiom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-blockdiag = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ob-blockdiag";
+        ename = "ob-blockdiag";
+        version = "20170727.1801";
+        src = fetchFromGitHub {
+          owner = "corpix";
+          repo = "ob-blockdiag.el";
+          rev = "634fcf64a4ae735afe7001d865b03f5d71e23046";
+          sha256 = "0xr3bv4wxz13b1grfyl2qnrszzab3n9735za837nf4lxh527ksaj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-blockdiag";
+          sha256 = "1lmawbgrlp6qd7p664jcl98y1xd2yqw9np6j52bh9i6s3cz6628g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-blockdiag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-browser = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , org }:
+      melpaBuild {
+        pname = "ob-browser";
+        ename = "ob-browser";
+        version = "20170720.1218";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "ob-browser";
+          rev = "a347d9df1c87b7eb660be8723982c7ad2563631a";
+          sha256 = "0q2amf2kh2gkn65132q9nvn87pws5mmnr3wm1ajk23c01kcjf29c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-browser";
+          sha256 = "1yqbzmmazamgf8fi8ipq14ffm8h1pp5d2lkflbxjsagdq61hirxm";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-browser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-cfengine3 = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ob-cfengine3";
+        ename = "ob-cfengine3";
+        version = "20180102.1012";
+        src = fetchFromGitHub {
+          owner = "nickanderson";
+          repo = "ob-cfengine3";
+          rev = "2d15491e91ba84f5242610fdffafe31d4d68dc4a";
+          sha256 = "1fp9ll4kp3qjyj0ai1fygrwzja7yblq7si8h7hsgwfmcr261d15v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-cfengine3";
+          sha256 = "1pp3mykc5k629qlqixpl2900m1j604xpp6agrngwagsvf7qkhnvl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-cfengine3";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-clojurescript = callPackage ({ emacs
+                                    , fetchFromGitLab
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , org }:
+      melpaBuild {
+        pname = "ob-clojurescript";
+        ename = "ob-clojurescript";
+        version = "20180406.1128";
+        src = fetchFromGitLab {
+          owner = "statonjr";
+          repo = "ob-clojurescript";
+          rev = "17ee1558aa94c7b0246fd03f684884122806cfe7";
+          sha256 = "1an4m7mpr345xw4fanyf2vznxm1dxbv35987caq1wq9039mzfaxr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-clojurescript";
+          sha256 = "0h4qjz65k8m1ms7adrm5ypmjcjxx1nws1jmda88c4jjwjyz40jjf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-clojurescript";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-coffee = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "ob-coffee";
+        ename = "ob-coffee";
+        version = "20170725.724";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "ob-coffee";
+          rev = "7f0b330273e8af7777de87a75fe52a89798e4548";
+          sha256 = "1w3fw3ka46d7vcsdq03l0wlviwsk52asfjiy9zfk4qabhpqwj9mz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-coffee";
+          sha256 = "16k8r9rqz4mayxl85pjdfsrz43k2hwcf8k7aff8wnic0ldzp6ivf";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-coffee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-coffeescript = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ob-coffeescript";
+        ename = "ob-coffeescript";
+        version = "20180125.2319";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "ob-coffeescript";
+          rev = "5a5bb04aea9c2a6eab5b05f90f5c7cb6de7b4261";
+          sha256 = "0yy20w1127xmz0mx2swbr294vg0jh8g0ibj5bpdf55xwdnv6im2l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-coffeescript";
+          sha256 = "05q1wnabw52kd3fpcpinpxs9z6xmi4n1p19jbcz0bgjpnw05s27p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-coffeescript";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-crystal = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ob-crystal";
+        ename = "ob-crystal";
+        version = "20180125.2318";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "ob-crystal";
+          rev = "b3bb27a21a4cefef3f5aeef52718b694bd51245b";
+          sha256 = "0clrvk2vz1ag93rlmsc0dd0pgxb4x22935v51jqjkp2gw3n50kxx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-crystal";
+          sha256 = "11mk2spwlddbrvcimhzw43b6d3gxzmi8br58bily1x4qkvl6zy4n";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-crystal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-cypher = callPackage ({ cypher-mode
+                             , dash
+                             , dash-functional
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "ob-cypher";
+        ename = "ob-cypher";
+        version = "20170725.720";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "ob-cypher";
+          rev = "114bdf6db20ee0ade060bb5df379ddee48ff4f26";
+          sha256 = "142d91jvf7nr7q2sj61njy5hv6ljhsq2qkvkdbkfqj07rgpwfgn3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-cypher";
+          sha256 = "1ygmx0rjvxjl8hifkkwrkk9gpsmdsk6ndb6pg7y78p8hfp5jpyq3";
+          name = "recipe";
+        };
+        packageRequires = [ cypher-mode dash dash-functional s ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-cypher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-dao = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , org }:
+      melpaBuild {
+        pname = "ob-dao";
+        ename = "ob-dao";
+        version = "20170816.858";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "ob-dao";
+          rev = "8c62bd800b1f572860e30be4b72c71fa415a2e31";
+          sha256 = "12pxn04qn24grinbybaj03qimg6vc1n2cbs9bh94s9zcyg2wv982";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-dao";
+          sha256 = "0nj1qyac0lj5ljrqfqi9g2z0d7z5yihajkvjhlx5kg9zs3lgs5rs";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-dao";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-dart = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ob-dart";
+        ename = "ob-dart";
+        version = "20170106.824";
+        src = fetchFromGitHub {
+          owner = "mzimmerm";
+          repo = "ob-dart";
+          rev = "2e463d83a3fe1c9c86f2040e0d22c06dfa49ecbf";
+          sha256 = "0qkyyrrgs0yyqzq6ks1xcb8iwm1qfxwan1n8ichmrsbhwsc05jd3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-dart";
+          sha256 = "1lqi4pazkjcxvmm2bdpd9vcakmdclkamb69xwxdl44p68wsq2gn8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-dart";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-diagrams = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ob-diagrams";
+        ename = "ob-diagrams";
+        version = "20160407.537";
+        src = fetchFromGitHub {
+          owner = "bergey";
+          repo = "org-babel-diagrams";
+          rev = "be45815f5596d181592fae709096b7b5f4a71992";
+          sha256 = "0kx95lvkvg6h6lhs9knlp8rwi05y8y0i8w8vs7mwm378syls0qk0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-diagrams";
+          sha256 = "1r1p9l61az1jb5m4k2dwnkp9j8xlcb588gq4mcg796vnbdscfcy2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-diagrams";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-elixir = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "ob-elixir";
+        ename = "ob-elixir";
+        version = "20170725.719";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "ob-elixir";
+          rev = "8990a8178b2f7bd93504a9ab136622aab6e82e32";
+          sha256 = "19awvfbjsnd5la14ad8cfd20pdwwlf3d2wxmz7kz6x6rf48x38za";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-elixir";
+          sha256 = "1l5b9hww2vmqnjlsd6lbjpz9walck82ngang1amfnk4xn6d0gdhi";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-elixir";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-elvish = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ob-elvish";
+        ename = "ob-elvish";
+        version = "20180427.1200";
+        src = fetchFromGitHub {
+          owner = "zzamboni";
+          repo = "ob-elvish";
+          rev = "369181ceae1190bf971c71aebf9fc6133bd98c39";
+          sha256 = "170bw9qryhzjzmyi84qc1jkzy1y7i8sjz6vmvyfc264ia4j51m9w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-elvish";
+          sha256 = "1rpn3dabwgray1w55jib4ixr3l1afz9j7nyn0ha2r602hs02x1ya";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-elvish";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-fsharp = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , fsharp-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ob-fsharp";
+        ename = "ob-fsharp";
+        version = "20170618.729";
+        src = fetchFromGitHub {
+          owner = "juergenhoetzel";
+          repo = "ob-fsharp";
+          rev = "65ec2b626ac55313d8a04e746940370f615fed1e";
+          sha256 = "12k6z3zsh8av3avhl2a62v475bpxpcdy56v8i248bv1wgd3ma2mi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-fsharp";
+          sha256 = "1b9052lvr03vyizkjz3qsa8cw3pjml4kb3yy13jwh09jz5q87qbf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs fsharp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-fsharp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-go = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "ob-go";
+        ename = "ob-go";
+        version = "20181107.1141";
+        src = fetchFromGitHub {
+          owner = "pope";
+          repo = "ob-go";
+          rev = "237aded7aeb236573514fb26f23129852fd3c206";
+          sha256 = "15a3m8hsnyarbpasv4hrzla7pfdfcarjwxdji52q1hb79r61nbs6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-go";
+          sha256 = "09d8jrzijf8gr08615rdmf366zgip43dxvyihy0yzhk7j0p3iahj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-go";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-http = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "ob-http";
+        ename = "ob-http";
+        version = "20180707.748";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "ob-http";
+          rev = "b1428ea2a63bcb510e7382a1bf5fe82b19c104a7";
+          sha256 = "11fx9c94xxhl09nj9z5b5v6sm0xwkqawgjnnm7bg56vvj495n6h7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-http";
+          sha256 = "0b7ghz9pqbyn3b52cpmnwa2wnd4svj23p6gc48ybwzwiid42wiss";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib s ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-http";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-hy = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "ob-hy";
+        ename = "ob-hy";
+        version = "20180701.2240";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "ob-hy";
+          rev = "a42ecaf440adc03e279afe43ee5ef6093ddd542a";
+          sha256 = "0kv92r6j0dcqcg1s0g4iq1xvanscg6crwniysbrq6ifvmc4lvfdj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-hy";
+          sha256 = "18a8fpda0f28wxmjprhd9dmz7bpk1j3iayl20lqffrcal6m4f1h7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-hy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-ipython = callPackage ({ dash
+                              , dash-functional
+                              , emacs
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "ob-ipython";
+        ename = "ob-ipython";
+        version = "20180224.153";
+        src = fetchFromGitHub {
+          owner = "gregsexton";
+          repo = "ob-ipython";
+          rev = "7147455230841744fb5b95dcbe03320313a77124";
+          sha256 = "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-ipython";
+          sha256 = "06llf365k8m81ljmlajqvxlh84qg6h0flp3m6gb0zx71xilvw186";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-ipython";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-kotlin = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "ob-kotlin";
+        ename = "ob-kotlin";
+        version = "20180823.621";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "ob-kotlin";
+          rev = "b817ffb7fd03a25897eb2aba24af2035bbe3cfa8";
+          sha256 = "1w31cj1wbblm9raav4kxbykf124k6rvn0ryxfn6myvv1x900w02a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-kotlin";
+          sha256 = "19g4s9dnipg9aa360mp0affmnslm6h7byg595rnaz6rz25a3qdpx";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-kotlin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-lfe = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , org }:
+      melpaBuild {
+        pname = "ob-lfe";
+        ename = "ob-lfe";
+        version = "20170725.720";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "ob-lfe";
+          rev = "f7780f58e650b4d29dfd834c662b1d354b620a8e";
+          sha256 = "1ricvb2wxsmsd4jr0301pk30mswx41msy07fjgwhsq8dimxzmngp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-lfe";
+          sha256 = "11cpaxk9wb27b9zhyns75dqpds4gh3cbjcvia4p2bnvmbm8lz4y8";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-lfe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-mermaid = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ob-mermaid";
+        ename = "ob-mermaid";
+        version = "20180522.959";
+        src = fetchFromGitHub {
+          owner = "arnm";
+          repo = "ob-mermaid";
+          rev = "7f7fb533babc0b783c20e82527ddc7f0ebfbb629";
+          sha256 = "0cllrjbbcqgr8qm9n8w7bmvgh2xvrrl3gqjmws3rsn0k7biq3kz5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-mermaid";
+          sha256 = "0fp57m80ksnb6zs1gndwsqhrphkv9lfysq0h7h8g3parizh2idzs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-mermaid";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-ml-marklogic = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ob-ml-marklogic";
+        ename = "ob-ml-marklogic";
+        version = "20170622.1133";
+        src = fetchFromGitHub {
+          owner = "ndw";
+          repo = "ob-ml-marklogic";
+          rev = "f678af0f440b3030e311ed6fbc444200be04da91";
+          sha256 = "1fszg6bn927bi1dx4zgiq0wr7zxrjv8sjrwgn9mansbljszbmccm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-ml-marklogic";
+          sha256 = "1y5cgba7gzlmhdrs0k7clgrxixdl4najj5271x1m023jch7bz7xl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-ml-marklogic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-mongo = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "ob-mongo";
+        ename = "ob-mongo";
+        version = "20170720.1219";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "ob-mongo";
+          rev = "371bf19c7c10eab2f86424f8db8ab685997eb5aa";
+          sha256 = "02k4gvh1nqhn0h36h77vvms7xwwak8rdddibbidsrwwspbr4qr1s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-mongo";
+          sha256 = "1cgmqsl5dzi8xy3sh5xsfkczl555fpd4q6kgsh9xkn74sz227907";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-mongo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-nim = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ob-nim";
+        ename = "ob-nim";
+        version = "20170809.1130";
+        src = fetchFromGitHub {
+          owner = "Lompik";
+          repo = "ob-nim";
+          rev = "742b6b1fccdb245807b540f41f7f422b27f36230";
+          sha256 = "0qnx9b40y1vxb7wsznnn29chl80fwlh42g2gm9l1p8jvli3jm2wp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-nim";
+          sha256 = "0j8mk12d29jyhhj4dlc0jykqmqy8g0yrbv7f2sqig83wj531bwza";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-nim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-prolog = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ob-prolog";
+        ename = "ob-prolog";
+        version = "20180720.344";
+        src = fetchFromGitHub {
+          owner = "ljos";
+          repo = "ob-prolog";
+          rev = "85ada8fc1f523167f137746c82d823a194160141";
+          sha256 = "1fa3hn9l9av7z6g4az8cfr2157g5cdryzp8nrmjr8w9386p13m4l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-prolog";
+          sha256 = "0ki8yd20yk5xwn0zpk06zjxzgrsf8paydif9n98svb9s2l9wrh1s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-prolog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-restclient = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , restclient }:
+      melpaBuild {
+        pname = "ob-restclient";
+        ename = "ob-restclient";
+        version = "20180904.9";
+        src = fetchFromGitHub {
+          owner = "alf";
+          repo = "ob-restclient.el";
+          rev = "00b2c5a6637ab6e504708612357ffb29b5416e4b";
+          sha256 = "03jsdczywys5df1ac7bmli31wkxvbsymd5k0s6iaz62kc454l3wj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-restclient";
+          sha256 = "0nv2wsqmpschym6ch8fr4a79hlnpz31jc8y2flsygaqj0annjkfk";
+          name = "recipe";
+        };
+        packageRequires = [ restclient ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-restclient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-rust = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ob-rust";
+        ename = "ob-rust";
+        version = "20180911.835";
+        src = fetchFromGitHub {
+          owner = "micanzhang";
+          repo = "ob-rust";
+          rev = "f57b489d931d6a7f9ca2b688af3352fd706f5f6b";
+          sha256 = "1fsvfy2yr22mhjkdn0bv3n3i8039a5gw5rs1cq41msv8ghb2cp0i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-rust";
+          sha256 = "1syzwh399wcwqhg1f3fvl12978dr574wji7cknqvll3hyh0zwd65";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-rust";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-sagemath = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s
+                               , sage-shell-mode }:
+      melpaBuild {
+        pname = "ob-sagemath";
+        ename = "ob-sagemath";
+        version = "20170130.1833";
+        src = fetchFromGitHub {
+          owner = "stakemori";
+          repo = "ob-sagemath";
+          rev = "1d99614509624d7bfd457325ca52f3bf1059f4d5";
+          sha256 = "11qsh0lfb1kqiz0cfx7acfpyw0a90bh7r86a4h31d4xl1xfq94sx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-sagemath";
+          sha256 = "02ispac1y4g7p7iyscf5p8lvp92ncrn6281jm9igyiny1w6hivy7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s sage-shell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-sagemath";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-sml = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , sml-mode }:
+      melpaBuild {
+        pname = "ob-sml";
+        ename = "ob-sml";
+        version = "20130829.1143";
+        src = fetchFromGitHub {
+          owner = "swannodette";
+          repo = "ob-sml";
+          rev = "958165c92b6cff6cada5c85c8ae5887806b8451b";
+          sha256 = "0gymna48igcixrapjmg842pnlsshhw8zplxwyyn0x2yrma9fjyyg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-sml";
+          sha256 = "04qvzhwjr8ipvq3znnhn0wbl4pbb1rwxi90iidavzk3phbkpaskn";
+          name = "recipe";
+        };
+        packageRequires = [ sml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-sml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-sql-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ob-sql-mode";
+        ename = "ob-sql-mode";
+        version = "20180426.1211";
+        src = fetchFromGitHub {
+          owner = "nikclayton";
+          repo = "ob-sql-mode";
+          rev = "8d36d312bec4a742bec8890373948a888cac18de";
+          sha256 = "1q69acl5lrnac14r8mddvdphvfl4wphqilfgm8l2f5nzhi9cmn02";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-sql-mode";
+          sha256 = "143agagkmwqwdqc0mbdsqp6v02y12q437v4x6dlh81yihif56rdk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-sql-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-swift = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "ob-swift";
+        ename = "ob-swift";
+        version = "20170921.625";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "ob-swift";
+          rev = "ed478ddbbe41ce5373efde06b4dd0c3663c9055f";
+          sha256 = "1vwg10d33mwb32bpdbpghfihy3ryiqbc4yydpb5hfv3v5k83vs0x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-swift";
+          sha256 = "19mcjfmijbajldm3jz8ij1x2p7d164mbq2ln6yb6iihxmdqnn2q4";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-swift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-tmux = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , seq }:
+      melpaBuild {
+        pname = "ob-tmux";
+        ename = "ob-tmux";
+        version = "20180831.317";
+        src = fetchFromGitHub {
+          owner = "ahendriksen";
+          repo = "ob-tmux";
+          rev = "73bed0ebad27f0ad57ea67582494543eb2fab73d";
+          sha256 = "0wgfjm3xf4wz8kfxnijfmgkifp6f6fwk5y31vdwadkjjggbhp0pk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-tmux";
+          sha256 = "12c0m2xxd75lbc98h7cwprmdn823mh2ii59pxr6fgnq7araqkz20";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s seq ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-tmux";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-translate = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , google-translate
+                                , lib
+                                , melpaBuild
+                                , org }:
+      melpaBuild {
+        pname = "ob-translate";
+        ename = "ob-translate";
+        version = "20170720.1219";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "ob-translate";
+          rev = "9d9054a51bafd5a29a8135964069b4fa3a80b169";
+          sha256 = "143dq3wp3h1zzk8ihj8yjw9ydqnf48q7y8yxxa0ly7f2v1li84bc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-translate";
+          sha256 = "1hi0rxbyxvk9sbk2fy3kqw7l4lgri921vya1mn4i1q2i1979r2gz";
+          name = "recipe";
+        };
+        packageRequires = [ google-translate org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-translate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-typescript = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , org }:
+      melpaBuild {
+        pname = "ob-typescript";
+        ename = "ob-typescript";
+        version = "20150804.530";
+        src = fetchFromGitHub {
+          owner = "lurdan";
+          repo = "ob-typescript";
+          rev = "9dcbd226cbfb75e790dd9de91d9401dde85a889a";
+          sha256 = "1ycqdjqn5361pcnc95hxhjqd3y96cjjnaylrnzwhmacl38jm3vai";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-typescript";
+          sha256 = "1wpy928ndvc076jzi14f6k5fsw8had0pz7f1yjdqql4icszhqa0p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-typescript";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-uart = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ob-uart";
+        ename = "ob-uart";
+        version = "20170521.158";
+        src = fetchFromGitHub {
+          owner = "andrmuel";
+          repo = "ob-uart";
+          rev = "90daeac90a9e75c20cdcf71234c67b812110c50e";
+          sha256 = "1syxxq411izmyfrhlywasax7n5c3yjy487mvfdjzjg8csmmk0m9v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-uart";
+          sha256 = "1dkbyk8da0zw784dgwi8njnz304s54341dyfzvlb0lhcn41dmkz7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-uart";
+          license = lib.licenses.free;
+        };
+      }) {};
+    oberon = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "oberon";
+        ename = "oberon";
+        version = "20120715.209";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "oberon";
+          rev = "fb57d18ce13835a8a69b6bafecdd9193ca9a59a3";
+          sha256 = "16462cgq91jg7i97h440zss5vw2qkxgdy7gm148ns4djr2fchnf6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/oberon";
+          sha256 = "1wna7ld670r6ljdg5yx0ga0grbq1ma8q92gkari0d5czr7s9lggv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/oberon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    obfusurl = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "obfusurl";
+        ename = "obfusurl";
+        version = "20170809.824";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "obfusurl.el";
+          rev = "7a5a41905000ce2ec1fd72509a5567e5fd9f47e5";
+          sha256 = "0jbrxlpx0cxg8jzqrssk3y3ab7v62ymi6ys24542a8vpk522vqxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/obfusurl";
+          sha256 = "0xx2zsjbkd17iy7xzqc66f9xgc97f9js3nz656yhmmxakjk2krra";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/obfusurl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    objc-font-lock = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "objc-font-lock";
+        ename = "objc-font-lock";
+        version = "20141021.1122";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "objc-font-lock";
+          rev = "34b457d577f97ca94b8792d025f9a909c7610612";
+          sha256 = "138c1nm579vr37dqprqsakfkhs2awm3klzyyd6bv9rhkrysrpbqk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/objc-font-lock";
+          sha256 = "0njslpgdcph3p3gamrbd6pc04szks07yv4ij3p1l7p5dc2p06rs6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/objc-font-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    objed = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "objed";
+        ename = "objed";
+        version = "20181119.1055";
+        src = fetchFromGitHub {
+          owner = "clemera";
+          repo = "objed";
+          rev = "79ec8af642fd6bb79504e3efb218ac11470c9db6";
+          sha256 = "1221as5w1cxb7v0bw0d3m58q0cya75nyvr64jird3pwnm5nra90f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/objed";
+          sha256 = "0iqvwa664fzklajqgnss7igjh7jr9v9i8dp9acm42g8ingp9zf7b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/objed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    obsidian-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "obsidian-theme";
+        ename = "obsidian-theme";
+        version = "20170719.248";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "obsidian-theme";
+          rev = "f45efb2ebe9942466c1db6abbe2d0e6847b785ea";
+          sha256 = "1d36mdq8b1q1x84a2nb93bwnzlpdldiafh7q7qfjjm9dsgbij73b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/obsidian-theme";
+          sha256 = "17ckshimdma6fqiis4kxczxkbrsfpm2a0b41m5f3qz3qlhcw2xgr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/obsidian-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    occidental-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "occidental-theme";
+        ename = "occidental-theme";
+        version = "20130312.1258";
+        src = fetchFromGitHub {
+          owner = "olcai";
+          repo = "occidental-theme";
+          rev = "fd2db7256d4f78c43d99c3cddb1c39106d479816";
+          sha256 = "0pnliw02crqw8hbg088klz54z6s1ih8q2lcn9mq5f12xi752hxm8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/occidental-theme";
+          sha256 = "1ra5p8k96wvb04v69xm87jl4jlgi57v4jw2xxzkwbwxbydncnv0b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/occidental-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    occur-context-resize = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "occur-context-resize";
+        ename = "occur-context-resize";
+        version = "20170904.1609";
+        src = fetchFromGitHub {
+          owner = "dgtized";
+          repo = "occur-context-resize.el";
+          rev = "cdee5a631ceed9337579d4090e0acf8140747f80";
+          sha256 = "0h7ypw45h5rcbwx4c4mn2ps9hp84dpjp3iay2nc9zaavv05n7ysa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/occur-context-resize";
+          sha256 = "0sp5v4rwqgqdj26gdkrmjvkmbp4g6jq4lrn2c3zm8s2gq0s3l6ri";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/occur-context-resize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    occur-x = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "occur-x";
+        ename = "occur-x";
+        version = "20130610.643";
+        src = fetchFromGitHub {
+          owner = "juan-leon";
+          repo = "occur-x";
+          rev = "352f5fab207d8a1d3dd048073ff127a83e97c82b";
+          sha256 = "1zj0xhvl5qx42injv0av4lyzd3jsjls1m368dqd2qnswhfw8wfn6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/occur-x";
+          sha256 = "04nydxp4syd0chfnfrz8v1vkx2qasfh86b98qv8719cily1jw76p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/occur-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    oceanic-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "oceanic-theme";
+        ename = "oceanic-theme";
+        version = "20161015.119";
+        src = fetchFromGitHub {
+          owner = "terry3";
+          repo = "oceanic-theme";
+          rev = "00288f6a5245eb001dc123e36af1820eb3cbe985";
+          sha256 = "00qij2h9kha557b3d69a8z3a3jsl8h4iwygxmr4h3i1w63nvy165";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/oceanic-theme";
+          sha256 = "1i69dy9hfqwfyiykvnqzkqim0lv1p5z5fjsdk84068si4b029gzv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/oceanic-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ocodo-svg-modelines = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , svg-mode-line-themes }:
+      melpaBuild {
+        pname = "ocodo-svg-modelines";
+        ename = "ocodo-svg-modelines";
+        version = "20150516.719";
+        src = fetchFromGitHub {
+          owner = "ocodo";
+          repo = "ocodo-svg-modelines";
+          rev = "a6c5b9a7536c7a8fa3bd9d9dafdebc8d99903018";
+          sha256 = "05ay599nc6jdw2fjss4izz1ynv2wc4svff932n8j9hvrhygipb2w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ocodo-svg-modelines";
+          sha256 = "0fa88ns70wsr9i9gf4zx3fvmn1a32mrjsda105n0cx6c965kfmay";
+          name = "recipe";
+        };
+        packageRequires = [ svg-mode-line-themes ];
+        meta = {
+          homepage = "https://melpa.org/#/ocodo-svg-modelines";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ocp-indent = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ocp-indent";
+        ename = "ocp-indent";
+        version = "20180417.849";
+        src = fetchFromGitHub {
+          owner = "OCamlPro";
+          repo = "ocp-indent";
+          rev = "b15fd7585b42f89d745fad69ed1f2b70ecb8757d";
+          sha256 = "0aszx9kxfbrlg0amsl3j3kdwn6n0a5fl33kvl8rgyv543p2jcx8f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ocp-indent";
+          sha256 = "0wc4z9dsnnyr24n3vg1npvc3rm53av8bpbvrl8kldxxdiwgnbkjw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ocp-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    octicons = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "octicons";
+        ename = "octicons";
+        version = "20151031.2040";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-octicons";
+          rev = "229286a6166dba8ddabc8c4d338798c6cd3cf67d";
+          sha256 = "0dp7dhmgrq078rjhpm1cr993qjqz7qgy2z4sn73qw6j55va7d9kw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/octicons";
+          sha256 = "02f37bvnc5qvkvfbyx5wp54nz71bqm747mq1p5361sx091lllkxk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/octicons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    octo-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "octo-mode";
+        ename = "octo-mode";
+        version = "20161008.529";
+        src = fetchFromGitHub {
+          owner = "cryon";
+          repo = "octo-mode";
+          rev = "4b2ed4a61674f73a6ccd390b5ae123474bd0c977";
+          sha256 = "1jkmf3j7wmv3b3ngi9fky1d94h4501lz5jcbn6xa3cb477j5nzj8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/octo-mode";
+          sha256 = "1xvpykdrkmxlk302kbqycasrq89f72xvhqlm14qrcd2lqnwhbi07";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/octo-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    octopress = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "octopress";
+        ename = "octopress";
+        version = "20181009.1651";
+        src = fetchFromGitHub {
+          owner = "aaronbieber";
+          repo = "octopress.el";
+          rev = "d4d16f52278b14a271131a11e9cc0a94316de10e";
+          sha256 = "1b69ssf4kjwjdmibrw0f7bpqx2703lz6p25n6mqr68z86c19gr0x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/octopress";
+          sha256 = "0zsir6chjvn5i1irmf5aj6mmb401c553r5wykq796sz7jnjhrjg0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/octopress";
+          license = lib.licenses.free;
+        };
+      }) {};
+    offlineimap = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "offlineimap";
+        ename = "offlineimap";
+        version = "20150916.458";
+        src = fetchFromGitHub {
+          owner = "jd";
+          repo = "offlineimap.el";
+          rev = "cc3e067e6237a1eb7b21c575a41683b1febb47f1";
+          sha256 = "1bjrgj8klg7ly63vx90jpaih9virn02bhqi16p6z0mw36q1q7ysq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/offlineimap";
+          sha256 = "0nza7lrz7cn06njcblwh9hy3050j8ja4awbxx7jzv6nazjg7201b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/offlineimap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    old-norse-input = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "old-norse-input";
+        ename = "old-norse-input";
+        version = "20170816.1142";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "emacs-old-norse-input";
+          rev = "c2e21ee72c3768e9152aff6baf12a19cde1d0c53";
+          sha256 = "0zybr1v91884p4ncrpr962pr02qsns6hf7kc4c5gyad8sg4pbvxh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/old-norse-input";
+          sha256 = "1g00h6ykf61ckr6f3r17j72w3h04p5q65aa3rhr5llk3jk1wv331";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/old-norse-input";
+          license = lib.licenses.free;
+        };
+      }) {};
+    oldlace-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "oldlace-theme";
+        ename = "oldlace-theme";
+        version = "20150705.600";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "oldlace-theme";
+          rev = "9ecbef999b63021c967846a3c80b3fbfc81f1290";
+          sha256 = "1kn25kamsb0s0cdg8mggi8rc7qgz4x6m3w6s42jvqybv41zhv50x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/oldlace-theme";
+          sha256 = "1pxiqqh5x4wsayqgwplzvsbalbj44zvby7x0pijdvwcnsh74znj8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/oldlace-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    olivetti = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "olivetti";
+        ename = "olivetti";
+        version = "20180531.37";
+        src = fetchFromGitHub {
+          owner = "rnkn";
+          repo = "olivetti";
+          rev = "02272654f1d920ea2da5a4b553acd5e5cc096ab1";
+          sha256 = "0f7i2f42mlr27d9wa9h2zvz0k0xyqvwndzgz81x8gsm0w1iv15k9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/olivetti";
+          sha256 = "0fkvw2y8r4ww2ar9505xls44j0rcrxc884p5srf1q47011v69mhd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/olivetti";
+          license = lib.licenses.free;
+        };
+      }) {};
+    om-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "om-mode";
+        ename = "om-mode";
+        version = "20140915.1410";
+        src = fetchFromGitHub {
+          owner = "danielsz";
+          repo = "om-mode";
+          rev = "5a6b380f8d1293a865d8a37aa4816d7412c512ce";
+          sha256 = "1wbnmg2lfv5xqgwj3axgwkccxmx0i202nf2nnfglg10hffy67rcm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/om-mode";
+          sha256 = "0bnlnxmzch9j39l8sf85npi89xlnkcnkmy4fihmwhrm86mnmayrb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/om-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-kill = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "omni-kill";
+        ename = "omni-kill";
+        version = "20171016.1440";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-kill.el";
+          rev = "904549c8fd6ac3cf22b5d7111ca8944e179cffea";
+          sha256 = "1mlnh5pdqdv1qb8jvi0wvkgbpy74zq807gmp04bp6cpxdns9j63f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-kill";
+          sha256 = "03kydl16rd9mnc1rnan2byqa6f70891fhcj16wkavl2r68rfj75k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/omni-kill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-log = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ht
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "omni-log";
+        ename = "omni-log";
+        version = "20170930.535";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-log.el";
+          rev = "e32bee893359476da9771871e342b70d6a03c671";
+          sha256 = "1dzg3sb2zb7cwjl6lyxmh3j4s64dld987p9vw86hfisp2ccxxk2v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-log";
+          sha256 = "0c29243zq8r89ax4rxlmb8imag12icnldcb0q0xsnhjccw8lyw1r";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/omni-log";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-quotes = callPackage ({ dash
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ht
+                               , lib
+                               , melpaBuild
+                               , omni-log
+                               , s }:
+      melpaBuild {
+        pname = "omni-quotes";
+        ename = "omni-quotes";
+        version = "20170425.1132";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-quotes.el";
+          rev = "454116c1dd6581baaeefd6b9310b1b6b7a5c36d0";
+          sha256 = "1h8lrpi5wizi5vncdz83cxlx7c71xw3sw89sfg462zfbz2sq8afl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-quotes";
+          sha256 = "0dqki0ibabs9cpcjvnh8lc2114x46i1xmnyjc6qqblfxa3ggdygs";
+          name = "recipe";
+        };
+        packageRequires = [ dash f ht omni-log s ];
+        meta = {
+          homepage = "https://melpa.org/#/omni-quotes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-scratch = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "omni-scratch";
+        ename = "omni-scratch";
+        version = "20171009.1451";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-scratch.el";
+          rev = "636374c59c7d33c2f72c97ad8ba9fb4854f2324d";
+          sha256 = "0w62bk2m0gs4b605s691z4iap9baz1z6c8z4v9vb05917qlsx5xb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-scratch";
+          sha256 = "190dkqcw8xywzrq8a99w4rqi0y1h2aj23s84g2ln1sf7jaf6d6n9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/omni-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-tags = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , pcre2el }:
+      melpaBuild {
+        pname = "omni-tags";
+        ename = "omni-tags";
+        version = "20170426.1409";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-tags.el";
+          rev = "8f0f6c302fab900b7681e5c039f90850cbbabd33";
+          sha256 = "0cqj4h4bdhmb0r6f2xx9g6cs3599m4j3snkrvsgddaq8c6mg47w0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-tags";
+          sha256 = "133ww1jf14jbw02ssbx2a46mp52j18a2wwzb6x77azb0akmf1lzl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib pcre2el ];
+        meta = {
+          homepage = "https://melpa.org/#/omni-tags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omnibox = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , frame-local
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "omnibox";
+        ename = "omnibox";
+        version = "20180422.1749";
+        src = fetchFromGitHub {
+          owner = "sebastiencs";
+          repo = "omnibox";
+          rev = "8ee75c71c20c438ebc43ba24ef6f543633d118f3";
+          sha256 = "19d7djf942dagxsz0c0lnfra4fk09qm6grkc0nihpsw4afjbj01a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omnibox";
+          sha256 = "05jc9hhr3gnjfyjpdx79ij9b5qwfrsmdf8h2s5ldxbw82q8a0z02";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs frame-local ];
+        meta = {
+          homepage = "https://melpa.org/#/omnibox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omnisharp = callPackage ({ auto-complete
+                             , cl-lib ? null
+                             , csharp-mode
+                             , dash
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , flycheck
+                             , lib
+                             , melpaBuild
+                             , popup
+                             , s
+                             , shut-up }:
+      melpaBuild {
+        pname = "omnisharp";
+        ename = "omnisharp";
+        version = "20181022.2205";
+        src = fetchFromGitHub {
+          owner = "OmniSharp";
+          repo = "omnisharp-emacs";
+          rev = "260b2423b7b909b12b98d84e5b05b5b4e20040d0";
+          sha256 = "1czyzyryr2cjw39sz97fzw8vh2kgns6l9hv8qwh1cq67f9wfsbci";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omnisharp";
+          sha256 = "0gh0wwdpdx2cjf95pcagj52inf7mrmiq7x8p0x5c7lvl4pfzhh87";
+          name = "recipe";
+        };
+        packageRequires = [
+          auto-complete
+          cl-lib
+          csharp-mode
+          dash
+          emacs
+          f
+          flycheck
+          popup
+          s
+          shut-up
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/omnisharp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omtose-phellack-theme = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "omtose-phellack-theme";
+        ename = "omtose-phellack-theme";
+        version = "20161111.1320";
+        src = fetchFromGitHub {
+          owner = "franksn";
+          repo = "omtose-phellack-theme";
+          rev = "66f99633e199e65bd28641626435e8e59246529a";
+          sha256 = "0imf2pcf93srm473nvaksw5pw5i4caqxb6aqfbq6xww8gdbqfazy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omtose-phellack-theme";
+          sha256 = "0aj0sw611w13xryn762ws63dfalczxixa5rv3skglmfy9axg3v3b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/omtose-phellack-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    on-parens = callPackage ({ dash
+                             , emacs
+                             , evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , smartparens }:
+      melpaBuild {
+        pname = "on-parens";
+        ename = "on-parens";
+        version = "20180202.1441";
+        src = fetchFromGitHub {
+          owner = "willghatch";
+          repo = "emacs-on-parens";
+          rev = "7a41bc02bcffd265f8a69ed4b4e0df3c3009aaa4";
+          sha256 = "0pkc05plbjqfxrw54amlm6pzg9gcsz0nvqzprplr6rhh7ss419zn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/on-parens";
+          sha256 = "19kyzpkgfl0ipbcgnl8fbfbapnfdxr8w9i7prfkm6rjp6amxyqab";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs evil smartparens ];
+        meta = {
+          homepage = "https://melpa.org/#/on-parens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    on-screen = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "on-screen";
+        ename = "on-screen";
+        version = "20160302.150";
+        src = fetchFromGitHub {
+          owner = "michael-heerdegen";
+          repo = "on-screen.el";
+          rev = "206468aa4de299ad26c2db12b757f5ad7290912f";
+          sha256 = "1rrby3mbh24qd43nsb3ymcrjxh1cz6iasf1gv0a8fmivmb4f7dyz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/on-screen";
+          sha256 = "104jisc2bckzrajxlvj1cfx1drnjj7jhqjblvm89ry32xdnjxmqb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/on-screen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    one-themes = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "one-themes";
+        ename = "one-themes";
+        version = "20181030.442";
+        src = fetchFromGitHub {
+          owner = "balajisivaraman";
+          repo = "emacs-one-themes";
+          rev = "1b50f2f88fe5e207cbe6d68db710361e3bc4a9ce";
+          sha256 = "1jap6i7kavvwv7bis4x8s7a3ww4srsm3qb05r2vbchfgk7adw92m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/one-themes";
+          sha256 = "11c6py5vani2cv4qjvizlzz9xvr5v57qxy1chcxy2lq3jlz1q5w0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/one-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    one-time-pad-encrypt = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "one-time-pad-encrypt";
+        ename = "one-time-pad-encrypt";
+        version = "20160329.813";
+        src = fetchFromGitHub {
+          owner = "garvinguan";
+          repo = "emacs-one-time-pad";
+          rev = "87cc1f124024ce3d277299ca0ac703f182937d9f";
+          sha256 = "0g2hvpnmgyy1k393prv97nqwlqc58nqf71hkrmaijw0cyy9q03nz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/one-time-pad-encrypt";
+          sha256 = "0xl74vxq9dzl84b6wsw8flykxcsxggpd4s47a2ph3irr64mbbgq5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/one-time-pad-encrypt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    opam = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "opam";
+        ename = "opam";
+        version = "20150719.520";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "opam.el";
+          rev = "4d589de5765728f56af7078fae328b6792de8600";
+          sha256 = "1yqrp9icci5snp1485wb6y8mr2hjp9006ahch58lvmnq98bn7j45";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/opam";
+          sha256 = "004r93nn1ranvxkcc0y5m3p8gh4axgghgnsvim38nc1sqda5h6xa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/opam";
+          license = lib.licenses.free;
+        };
+      }) {};
+    open-in-msvs = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "open-in-msvs";
+        ename = "open-in-msvs";
+        version = "20170123.1428";
+        src = fetchFromGitHub {
+          owner = "evgeny-panasyuk";
+          repo = "open-in-msvs.el";
+          rev = "e0d071c83188ad5db8f3297d6ce784b4ed554a04";
+          sha256 = "0aiccdcll5zjy11fandd9bvld8p8srmhrh3waqc33yp4x8pjkjpd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/open-in-msvs";
+          sha256 = "0cng0brxjdriyhwsbn85pfrgqg56chzk24lvkx91rzgz15fbpnv5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/open-in-msvs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    open-junk-file = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "open-junk-file";
+        ename = "open-junk-file";
+        version = "20161210.314";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "open-junk-file";
+          rev = "558bec7372b0fed4c4cb6074ab906535fae615bd";
+          sha256 = "0kcgkxn5v9bsbkcvpjxjqhj1w3c29bfb33bmiw32gzbfphmrvhh1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/open-junk-file";
+          sha256 = "0r1v9m8a5blv70fzq5miv5i57jx0bm1p0jxh0lwklam0m99znmcj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/open-junk-file";
+          license = lib.licenses.free;
+        };
+      }) {};
+    opencc = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "opencc";
+        ename = "opencc";
+        version = "20170722.116";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "emacs-opencc";
+          rev = "959d9ffbae095752182026e3bd9b8fd61178c39f";
+          sha256 = "0qym9xxjsn4ally7qlfffin7rybdz3w5z4gw1cw2j6ragwcm6w8a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/opencc";
+          sha256 = "1dd62x0h3imil4g3psndxykp45jf83fm4afxcvvyayj45z099f4r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/opencc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    opencl-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "opencl-mode";
+        ename = "opencl-mode";
+        version = "20170816.549";
+        src = fetchFromGitHub {
+          owner = "salmanebah";
+          repo = "opencl-mode";
+          rev = "6e69434d0fa6e11a542acad370611bba18d3bc5c";
+          sha256 = "00vhmbfh51mncx5xnzv96kbb5r6r27xw6xwvi7gf454zbvcibrws";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/opencl-mode";
+          sha256 = "1g351wiaycwmg1bnf4s2mdnc3lb2ml5l54g19184xqssfqlx7y79";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/opencl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    opener = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , request }:
+      melpaBuild {
+        pname = "opener";
+        ename = "opener";
+        version = "20161207.1010";
+        src = fetchFromGitHub {
+          owner = "0robustus1";
+          repo = "opener.el";
+          rev = "ab75048b1073fb1b1452dabae94ab55e0cfb57c4";
+          sha256 = "00kh8m23jzwb0wipwjdm2wad08xqrlcg00vzc4vzijgrapz0da3h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/opener";
+          sha256 = "0fhny4m7x19wnlnr19s4rkl04dkx95yppd51jzrkr96xiznw97s7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/opener";
+          license = lib.licenses.free;
+        };
+      }) {};
+    opensource = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pkg-info
+                              , request
+                              , s }:
+      melpaBuild {
+        pname = "opensource";
+        ename = "opensource";
+        version = "20160926.916";
+        src = fetchFromGitHub {
+          owner = "OpenSourceOrg";
+          repo = "el-opensourceorg";
+          rev = "42742d5f1b9590acff7f05ee0094e3a80f4f7171";
+          sha256 = "0z92l9d3q12qlf18v7w8qjiw0ciha9l1nvxr0zmik5ck87qk4vmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/opensource";
+          sha256 = "17gi20s2vi7m75qqaff907x1g8ja5ny90klldpqmj258m2j6a6my";
+          name = "recipe";
+        };
+        packageRequires = [ dash pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/opensource";
+          license = lib.licenses.free;
+        };
+      }) {};
+    openstack-cgit-browse-file = callPackage ({ fetchFromGitHub
+                                              , fetchurl
+                                              , lib
+                                              , melpaBuild }:
+      melpaBuild {
+        pname = "openstack-cgit-browse-file";
+        ename = "openstack-cgit-browse-file";
+        version = "20130819.227";
+        src = fetchFromGitHub {
+          owner = "chmouel";
+          repo = "openstack-cgit-browse-file";
+          rev = "244219288b9aef41155044697bb114b7af83ab8f";
+          sha256 = "0086pfk4pq6xmknk7a42fihcjgzkcplqqc1rk9fhwmn9j7djbq70";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/openstack-cgit-browse-file";
+          sha256 = "05dl28a4npnnzzipypfcqb21sdww715lwji2xnsabx3fb1h1w5jl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/openstack-cgit-browse-file";
+          license = lib.licenses.free;
+        };
+      }) {};
+    openwith = callPackage ({ fetchhg
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "openwith";
+        ename = "openwith";
+        version = "20120531.1436";
+        src = fetchhg {
+          url = "https://bitbucket.com/jpkotta/openwith";
+          rev = "aeb78782ec87";
+          sha256 = "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/openwith";
+          sha256 = "0l3grbnn349cv26ap2phlmp2h94s68gqznh5zdqwc2cp7lf699sx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/openwith";
+          license = lib.licenses.free;
+        };
+      }) {};
+    operate-on-number = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "operate-on-number";
+        ename = "operate-on-number";
+        version = "20150706.2323";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "operate-on-number.el";
+          rev = "ceb3be565a29326c1098244fac0c50606723a56e";
+          sha256 = "0iw3c8sn702ziki59mvd5gxm484i7f0bwsy8fz95y08s9gknjjf9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/operate-on-number";
+          sha256 = "1rw3fqbzfizgcbz3yaf99rr2546msna4z7dyfa8dbi8h7yzl4fhk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/operate-on-number";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orca = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "orca";
+        ename = "orca";
+        version = "20171030.1216";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "orca";
+          rev = "5e1744afb793dda744ddc6fe342144b5e90bea08";
+          sha256 = "0gqgs3rmdzm5vqk8azgzwannxjifvrf5fj40n543d0066c2dfsfi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orca";
+          sha256 = "012ndbrgm58r09snhvi476rw0lq4m913y0slc0cxb688p9wgz5w3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/orca";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-ac = callPackage ({ auto-complete-pcmp
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , log4e
+                          , melpaBuild
+                          , yaxception }:
+      melpaBuild {
+        pname = "org-ac";
+        ename = "org-ac";
+        version = "20170401.607";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "org-ac";
+          rev = "41e3ef8e4039619d0370c23c66730b3b2e9e32ed";
+          sha256 = "1l3fn8vjdqq7rrn1b7l2i238bhjni13mg9v25dydin0sfb697abk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-ac";
+          sha256 = "059jr3v3558cgw626zbqfwmwwv5f4637ai26h7b6psqh0x9sf3mr";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete-pcmp log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/org-ac";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-agenda-property = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "org-agenda-property";
+        ename = "org-agenda-property";
+        version = "20140626.1416";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "org-agenda-property";
+          rev = "01afb36072eb27846eb09310dfca7991dbae831e";
+          sha256 = "1f98adm1vgc43q2k63ggddsbz4329h4m5zpnzkv9lqszbjwdaq5c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-agenda-property";
+          sha256 = "0zsjzjw52asl609q7a2s4jcsm478p4cxzhnd3azyr9ypxydjf6qk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-agenda-property";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-alert = callPackage ({ alert
+                             , dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "org-alert";
+        ename = "org-alert";
+        version = "20180523.1833";
+        src = fetchFromGitHub {
+          owner = "spegoraro";
+          repo = "org-alert";
+          rev = "f87bff4acbd839acb4d2245b56b2c3d21f950911";
+          sha256 = "05xhp1ggpcgd48vcrxf9l43aasxfjw1ypgzpq3gp7031x83m9rr6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-alert";
+          sha256 = "01bb0s22wa14lyr9wi58cvk4b03xqq268y3dvxbrhymw1ld97zk2";
+          name = "recipe";
+        };
+        packageRequires = [ alert dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-attach-screenshot = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "org-attach-screenshot";
+        ename = "org-attach-screenshot";
+        version = "20180419.2225";
+        src = fetchFromGitHub {
+          owner = "dfeich";
+          repo = "org-screenshot";
+          rev = "6b1edbd2384191122a30788ac72f2233c2df0294";
+          sha256 = "0vyxpc28b9b0cn02a9p48q6iy61qw7gj7gzk37ijdmzg8dzy6hxv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-attach-screenshot";
+          sha256 = "0108kahyd499q87wzvirv5d6p7jrb7ckz8r96pwqzgflj3njbnmn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-attach-screenshot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-autolist = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-autolist";
+        ename = "org-autolist";
+        version = "20170924.1201";
+        src = fetchFromGitHub {
+          owner = "calvinwyoung";
+          repo = "org-autolist";
+          rev = "c82d1e83e982b5f0c106b8800e5b0cfd5f73fdc1";
+          sha256 = "0ykiafbdjb2iy0s1gr6l51gddjbk08iwj4v13hgm8b675bl0cw56";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-autolist";
+          sha256 = "1jvspxhxlvd7h1srk9dbk1v5dykmf8jsjaqicpll7ial6i0qgikj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-autolist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-babel-eval-in-repl = callPackage ({ emacs
+                                          , ess
+                                          , eval-in-repl
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , matlab-mode
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "org-babel-eval-in-repl";
+        ename = "org-babel-eval-in-repl";
+        version = "20170511.514";
+        src = fetchFromGitHub {
+          owner = "diadochos";
+          repo = "org-babel-eval-in-repl";
+          rev = "bfa72c582ac1531ad42aba23e2b1267ab68e31f6";
+          sha256 = "1jm56zxa99s163jv02vhfrshmykvld7girq7gmj1x60g3wjzhn5k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-babel-eval-in-repl";
+          sha256 = "0brqp0w9s28ibws4idlm1rw09lsfa98l5wbpwm64rvlixhs6zlnx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ess eval-in-repl matlab-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/org-babel-eval-in-repl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-beautify-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "org-beautify-theme";
+        ename = "org-beautify-theme";
+        version = "20170908.1518";
+        src = fetchFromGitHub {
+          owner = "jonnay";
+          repo = "org-beautify-theme";
+          rev = "df6a1114fda313e1689363e196c8284fbe2a2738";
+          sha256 = "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-beautify-theme";
+          sha256 = "0rrlyn61xh3szw8aihxpbmg809xx5ac66xqzj895dn1raz129h2w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-beautify-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-board = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "org-board";
+        ename = "org-board";
+        version = "20180530.1120";
+        src = fetchFromGitHub {
+          owner = "scallywag";
+          repo = "org-board";
+          rev = "8899d8f8c1977df2397793a54868317463120553";
+          sha256 = "190rf8hi1233rjmr78cqy03m1vspcsdbzcf64xs8n4vckyb18vl4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-board";
+          sha256 = "00jsrxc8f85cvrh7364n7337frdj12yknlfp28fhdgk2ph6d7bp4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-board";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-bookmark-heading = callPackage ({ emacs
+                                        , f
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "org-bookmark-heading";
+        ename = "org-bookmark-heading";
+        version = "20180904.1009";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-bookmark-heading";
+          rev = "eba5ef7a3c992c4a9da86f64d12fca0c1158208a";
+          sha256 = "1amq48yldydg9prcxvxn5yi0k8xk87h1azscr9hh9phnll2yys1d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-bookmark-heading";
+          sha256 = "1q92rg9d945ypcpb7kig2r0cr7nb7avsylaa7nxjib25advx80n9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/org-bookmark-heading";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-brain = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "org-brain";
+        ename = "org-brain";
+        version = "20181114.1446";
+        src = fetchFromGitHub {
+          owner = "Kungsgeten";
+          repo = "org-brain";
+          rev = "94519aeb3c197cee56ecda4dedd2148fb39e6aef";
+          sha256 = "0cva0rq7d9n9i1zmg3v00jn8mx19jxsf0radxiihi3a5z1nx4ka4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-brain";
+          sha256 = "0c05c6lbr740nnjp9p34padrbrc3q1x2pgylkyhsxadm4mfsvj0c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-brain";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-bullets = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "org-bullets";
+        ename = "org-bullets";
+        version = "20180208.1543";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "org-bullets";
+          rev = "b56f2e3812626f2c4ac1686073d102c71f4a8513";
+          sha256 = "0a0dml6y49n3469vrfpgci40k4xxlk0q4kh2b27shjb440wrmv4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-bullets";
+          sha256 = "0yrfgd6r71rng3qipp3y9i5mpm6510k4xsfgyidcn25v27fysk3v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-bullets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-caldav = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , org }:
+      melpaBuild {
+        pname = "org-caldav";
+        ename = "org-caldav";
+        version = "20180403.1336";
+        src = fetchFromGitHub {
+          owner = "dengste";
+          repo = "org-caldav";
+          rev = "8d3492c27a09f437d2d94f2736c56d7652e87aa0";
+          sha256 = "19q83xgbdabkidx26xvff1x7kixk2wllplnwfsy7kggdj9wqpm9l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-caldav";
+          sha256 = "1wzb5garpxg8p7zaqp6z5q0l2x8n9m7fjg5xy3vg9878njnqr9kc";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-caldav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-capture-pop-frame = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "org-capture-pop-frame";
+        ename = "org-capture-pop-frame";
+        version = "20160518.308";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "org-capture-pop-frame";
+          rev = "b16fd712de62cf0d1f9befd03be6ab5983cb3301";
+          sha256 = "01ffkk79wz2qkh9h9cjl59j34wvbiqzzxbbc9a06lh2rc946wgis";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-capture-pop-frame";
+          sha256 = "1k0njip25527nkn8w11yl7dbk3zv9p9lhx0a9xx293havjxygvyi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-capture-pop-frame";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-category-capture = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , org }:
+      melpaBuild {
+        pname = "org-category-capture";
+        ename = "org-category-capture";
+        version = "20180531.1942";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "org-projectile";
+          rev = "e57023c0e33e4a0f848fcfec1902e13e6a92f711";
+          sha256 = "03svxxx6jh0c5517yvp7g5lfvjn3n4r169j589iii0fcjp4qri3n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-category-capture";
+          sha256 = "0l5n71h9lc8q9k0sb5ghzwb81lah4l1ykc06shfl9zw5lqqvahav";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-category-capture";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-chef = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "org-chef";
+        ename = "org-chef";
+        version = "20181105.1235";
+        src = fetchFromGitHub {
+          owner = "Chobbes";
+          repo = "org-chef";
+          rev = "a35ad92970bdf6e251756cfecf5455997b8f8599";
+          sha256 = "1pf5y1aqajibhv9h62hcz81l68vhw43ddqx4fvjpqvpq4s2x7c3q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-chef";
+          sha256 = "1xzbdrv5z31lxnzzgbp50l10lzlvx6j7kc7ssg76fma49wfpnra5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-chef";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-cliplink = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-cliplink";
+        ename = "org-cliplink";
+        version = "20181022.539";
+        src = fetchFromGitHub {
+          owner = "rexim";
+          repo = "org-cliplink";
+          rev = "7ab98f2b17a627e907b50c27737ec1a8ae8b0f3d";
+          sha256 = "0rwh5602d6hd0nvr3j50m2xz48a2kwknnn0f4aabshhb5x0ry5g8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-cliplink";
+          sha256 = "19l3k9w9csgvdr7n824bzg7jja0f28dmz6caldxh43vankpmlg3p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-cliplink";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-clock-convenience = callPackage ({ cl-lib ? null
+                                         , emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , org }:
+      melpaBuild {
+        pname = "org-clock-convenience";
+        ename = "org-clock-convenience";
+        version = "20160830.1156";
+        src = fetchFromGitHub {
+          owner = "dfeich";
+          repo = "org-clock-convenience";
+          rev = "d4f98e95d75d78822ddfab6b67bc971516f9773c";
+          sha256 = "0s69jqadrgsmlv74386i900gr6xr3kgr5x1n75gqf4rsdmhx4s5d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-clock-convenience";
+          sha256 = "1zis0fp7q253qfxypm7a69zb3w8jb4cbrbj2rk34d1jisvnn4irw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-clock-convenience";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-clock-csv = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , org
+                                 , s }:
+      melpaBuild {
+        pname = "org-clock-csv";
+        ename = "org-clock-csv";
+        version = "20180313.1957";
+        src = fetchFromGitHub {
+          owner = "atheriel";
+          repo = "org-clock-csv";
+          rev = "4a6e9e4895799afa0b994f4a908c1e3c2043451f";
+          sha256 = "1f7xvarimv82xwiw5cavnak7av0yi4afn94nhhp60pyfh8azls50";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-clock-csv";
+          sha256 = "02spjrzdf1kmvyvqkzg7nnmq9kqv75zwxn5ifqmg0f7a1gw28f0l";
+          name = "recipe";
+        };
+        packageRequires = [ org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-clock-csv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-clock-split = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "org-clock-split";
+        ename = "org-clock-split";
+        version = "20180909.1347";
+        src = fetchFromGitHub {
+          owner = "justintaft";
+          repo = "org-clock-split";
+          rev = "b2f1497b62e7f4a767be02e249e4ac95d4f8f21c";
+          sha256 = "099jxkyx7ikfqz99sx632a6c0mc630qkix3c307sm7y317jcdz8l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-clock-split";
+          sha256 = "1ihqp4ilz4a3qs2lrc3j0lqkjh782510m2nbzba89pasgl4c4jhw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-clock-split";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-clock-today = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "org-clock-today";
+        ename = "org-clock-today";
+        version = "20161014.220";
+        src = fetchFromGitHub {
+          owner = "mallt";
+          repo = "org-clock-today-mode";
+          rev = "02b8fd541a01040405a9a1400c46dcb68b7c2a3a";
+          sha256 = "1gbkrgbpsrwkjd199giffim8jvx1n4dqrsyk53sz1swj9dlhxgp9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-clock-today";
+          sha256 = "1x9hplz9w2kpa239rz6y02hsl4fgzxlkwr9hhwjy12x1f88x0k73";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-clock-today";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-commentary = callPackage ({ dash
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , org }:
+      melpaBuild {
+        pname = "org-commentary";
+        ename = "org-commentary";
+        version = "20160801.2337";
+        src = fetchFromGitHub {
+          owner = "smaximov";
+          repo = "org-commentary";
+          rev = "821ccb994811359c42f4e3d459e0e88849d42b75";
+          sha256 = "0ixhyn8s7l2caq0qpv9zlq9fzm3z8b81755c3yffnk5camnij6py";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-commentary";
+          sha256 = "0ym1rq2zhyhc6hkk40wsa9jni2h1z5dkaisldqzg8ggl7iv3v4fx";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-commentary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-context = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "org-context";
+        ename = "org-context";
+        version = "20170107.537";
+        src = fetchFromGitHub {
+          owner = "thisirs";
+          repo = "org-context";
+          rev = "a3b4a4ce6d15e3c2d45eb5dcb78bea81913f3e21";
+          sha256 = "18swz38q8z1nga6l8f1l27b7ba3y5y3ikk0baplmich3hxav58xj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-context";
+          sha256 = "19y8aln7wix9p506ajvfkl641147c5mdmjm98jnq68cx2r4wp6zz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-context";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-cua-dwim = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-cua-dwim";
+        ename = "org-cua-dwim";
+        version = "20120202.2134";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "org-cua-dwim.el";
+          rev = "a55d6c7009fc0b22f1110c07de629acc955c85e4";
+          sha256 = "0nrfvmqb70phnq0k4wbdj6z666wq6xvabg4pgv8qn62rbrw4yyhm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-cua-dwim";
+          sha256 = "0ib3m41b4lh0p0xxhsmfv42qs00xm2cfwwl2cgfdjjp1s57p19xy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-cua-dwim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-dashboard = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "org-dashboard";
+        ename = "org-dashboard";
+        version = "20171223.1124";
+        src = fetchFromGitHub {
+          owner = "bard";
+          repo = "org-dashboard";
+          rev = "02c0699771d199075a286e4502340ca6e7c9e831";
+          sha256 = "0zi23xgv5fq827dljhzp6m2v7ggr3pdw3fpgq8515gs9q4f12v1r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-dashboard";
+          sha256 = "1hvhhbmyx12wsf2n1hd0hg5cy05zyspd82xxcdh04g4s9r3ikqj5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-dashboard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-doing = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "org-doing";
+        ename = "org-doing";
+        version = "20161017.920";
+        src = fetchFromGitHub {
+          owner = "rudolfolah";
+          repo = "org-doing";
+          rev = "4819e75c827c2115bd28f3b3148d846aa64ccd9b";
+          sha256 = "0pb7ljysh8ap572f9y813js6lvvac4kjky2a5r39hv28px33hmx5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-doing";
+          sha256 = "10vg0wl8dsy12r51178qi4rzi94img692z5x3zv8dxa29lmn26xs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-doing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-dotemacs = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , org }:
+      melpaBuild {
+        pname = "org-dotemacs";
+        ename = "org-dotemacs";
+        version = "20180801.1728";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "org-dotemacs";
+          rev = "49072168158b6cd45796e92e940c9ac71e181722";
+          sha256 = "18p9qpp1pja7b8bjsdghb2bfsqz72xg01ysmlj7105vn6zrsm161";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-dotemacs";
+          sha256 = "1vc391fdkdqd4g0piq66zhrlgqx5s2ijv7qd1rc3a235sjb9i2n4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-dotemacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-download = callPackage ({ async
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-download";
+        ename = "org-download";
+        version = "20180925.828";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "org-download";
+          rev = "07b98eb4f7252e3f64a306c09dfb618be6ac181d";
+          sha256 = "1k1i6h0g00qa6bdiscx6k0b6xcwrijfmnhx4pz8pg8sjy5a3yp6k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-download";
+          sha256 = "19yjx0qqpmrdwagp3d6lwwv7dcb745m9ccq3m29sin74f5p4svsi";
+          name = "recipe";
+        };
+        packageRequires = [ async ];
+        meta = {
+          homepage = "https://melpa.org/#/org-download";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-dp = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "org-dp";
+        ename = "org-dp";
+        version = "20180311.123";
+        src = fetchFromGitHub {
+          owner = "tj64";
+          repo = "org-dp";
+          rev = "334fefd06eb925c86b1642787b2a088aa0932bab";
+          sha256 = "0cjx9428ypadvrlbfnfj6zwnfhdcay82q2f9x8v5gaffa6wrr7j3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-dp";
+          sha256 = "0fnrzpgw8l0g862j20yy4mw1wfcm2i04r6dxi4yd7yay8bw2i4yq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-dp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-drill-table = callPackage ({ cl-lib ? null
+                                   , dash
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , org
+                                   , s }:
+      melpaBuild {
+        pname = "org-drill-table";
+        ename = "org-drill-table";
+        version = "20180115.209";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "org-drill-table";
+          rev = "e4c4c1b0a17f51cb8de67eafe06a6bffc754f525";
+          sha256 = "1nzn890z30l062flbnww9f3nq7wm5x5146rh76az8h7jm6vigvca";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-drill-table";
+          sha256 = "1gb5b4hj4xr8nv8bxfar145i38zcic6c34gk98wpshvwzvb43r69";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-drill-table";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-dropbox = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , names }:
+      melpaBuild {
+        pname = "org-dropbox";
+        ename = "org-dropbox";
+        version = "20150113.2109";
+        src = fetchFromGitHub {
+          owner = "heikkil";
+          repo = "org-dropbox";
+          rev = "2dc677a770c9e82f928ad8e97a7707eb368e58ed";
+          sha256 = "1ldyxxlgfm2zskjr06b5kppq560cy75ic2dh9si09hrsw3qj0m4s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-dropbox";
+          sha256 = "0qfvdz13ncqn7qaz03lwabzsnk62z6wqzlxlvdqv5xyllcy9m6ln";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs names ];
+        meta = {
+          homepage = "https://melpa.org/#/org-dropbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-easy-img-insert = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "org-easy-img-insert";
+        ename = "org-easy-img-insert";
+        version = "20160915.1308";
+        src = fetchFromGitHub {
+          owner = "tashrifsanil";
+          repo = "org-easy-img-insert";
+          rev = "3efb4d70e5a39bfbf7ee4c4033cc61afa89430dd";
+          sha256 = "1nijybb8dc251n187ljwffw3hxppb7nhb0lhc7jx4fyymg3r27l3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-easy-img-insert";
+          sha256 = "0gpb9f66gn8dbhwrlw7z2a5rpphbh1fv845wz8yy4v7nv2j3sf54";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-easy-img-insert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-edit-latex = callPackage ({ auctex
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "org-edit-latex";
+        ename = "org-edit-latex";
+        version = "20170908.822";
+        src = fetchFromGitHub {
+          owner = "et2010";
+          repo = "org-edit-latex";
+          rev = "ecd91601cb6f3aa79d055bde99bfec6d2b335952";
+          sha256 = "0m2smwn18zvq5sg5p6j15vf6s1y9lzzrl088ziv9725wil5jwkly";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-edit-latex";
+          sha256 = "0nkiz4682qgk5dy4if3gij98738482ys8zwm8yx834za38xxbwry";
+          name = "recipe";
+        };
+        packageRequires = [ auctex emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-edit-latex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-ehtml = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , web-server }:
+      melpaBuild {
+        pname = "org-ehtml";
+        ename = "org-ehtml";
+        version = "20150506.1658";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "org-ehtml";
+          rev = "9df85de1a0fe1e7b2d6c000777c1a0c0217f92d0";
+          sha256 = "0kqvwqmwnwg2h7r38fpjg6qlkcj9v8011df8nmsgs1w1mfdvnjsq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-ehtml";
+          sha256 = "0n82fbd7aircqg2c9m138qfv8csrv0amhya3xlwswdkqn51vn3gw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs web-server ];
+        meta = {
+          homepage = "https://melpa.org/#/org-ehtml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-elisp-help = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , org }:
+      melpaBuild {
+        pname = "org-elisp-help";
+        ename = "org-elisp-help";
+        version = "20161121.1655";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "org-elisp-help";
+          rev = "3e33ab1a2933dd7f2782ef91d667a37f12d633ab";
+          sha256 = "088pbafz1x4z7qi70cjbrvfrcdrjp4zy0yl115klbidshqhxycmj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-elisp-help";
+          sha256 = "0a4wvz52hkcw5nrml3h1yp8w97vg5jw22wnpfbb827zh7iwb259h";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-elisp-help";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-emms = callPackage ({ emacs
+                            , fetchFromGitLab
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "org-emms";
+        ename = "org-emms";
+        version = "20181010.414";
+        src = fetchFromGitLab {
+          owner = "jagrg";
+          repo = "org-emms";
+          rev = "07a8917f3d628c32e5de1dbd118ac08203772533";
+          sha256 = "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-emms";
+          sha256 = "0g7d2y1dgy2hgiwaxz9crxf3nv8aqzxhyf2jmnmhphdv2s9ipvjw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-emms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-evil = callPackage ({ dash
+                            , evil
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , monitor
+                            , org }:
+      melpaBuild {
+        pname = "org-evil";
+        ename = "org-evil";
+        version = "20180620.817";
+        src = fetchFromGitHub {
+          owner = "GuiltyDolphin";
+          repo = "org-evil";
+          rev = "3b4620edc606412ef75c0b5aa637af22486eb126";
+          sha256 = "0aqya9l9s55h5wd728iz15f53p5xajrfk8pn9gjxnw0i8m4d09sd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-evil";
+          sha256 = "0wvd201k9b9ghg39rwbah6rw8b7hyyd27vvqjynjwbk3v8rp5zyn";
+          name = "recipe";
+        };
+        packageRequires = [ dash evil monitor org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-fancy-priorities = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "org-fancy-priorities";
+        ename = "org-fancy-priorities";
+        version = "20180328.1631";
+        src = fetchFromGitHub {
+          owner = "harrybournis";
+          repo = "org-fancy-priorities";
+          rev = "fc09edc9b139e82395982d08db2825702045cb85";
+          sha256 = "0pzqbszjm24c8gfcczcmn242ipprsqi7pmys65bqgz63iypfxpcw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-fancy-priorities";
+          sha256 = "13rljgi5fbzlc16cxqj49yg47a5qpyxzj0lswhdyhgzncp1fyq7p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-fancy-priorities";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-gcal = callPackage ({ alert
+                            , cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org
+                            , request-deferred }:
+      melpaBuild {
+        pname = "org-gcal";
+        ename = "org-gcal";
+        version = "20181004.48";
+        src = fetchFromGitHub {
+          owner = "kidd";
+          repo = "org-gcal.el";
+          rev = "d1c2549e7e220880848bef5a8fcc06cbb82dbd9f";
+          sha256 = "1x463ji1998p21nbsgqk2gbmi4chxby3ialdv418mygldzdamxc1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-gcal";
+          sha256 = "014h67ba0cwi4i1llngypscyvyrm74ljh067i3iapx5a18q7xw5v";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib emacs org request-deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/org-gcal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-gnome = callPackage ({ alert
+                             , fetchFromGitHub
+                             , fetchurl
+                             , gnome-calendar
+                             , lib
+                             , melpaBuild
+                             , telepathy }:
+      melpaBuild {
+        pname = "org-gnome";
+        ename = "org-gnome";
+        version = "20150614.757";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "org-gnome.el";
+          rev = "1012d47886cfd30eed25b73d9f18e475e0155f88";
+          sha256 = "0b57ik05iax2h3nrj96kysbk4hxmxlaabd0n6lv1xsayrlli3sj1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-gnome";
+          sha256 = "0c37gfs6xs0jbvg6ypd4z5ip1khm26wr5lxgmv1dzcc383ynzg0v";
+          name = "recipe";
+        };
+        packageRequires = [ alert gnome-calendar telepathy ];
+        meta = {
+          homepage = "https://melpa.org/#/org-gnome";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-grep = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "org-grep";
+        ename = "org-grep";
+        version = "20151202.429";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "org-grep";
+          rev = "5bdd04c0f53b8a3d656f36ea17bba3df7f0cb684";
+          sha256 = "10jwqzs431mnwz717qdmcn0v8raklw41sbxbnkb36yrgznk8c09c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-grep";
+          sha256 = "0kpgizy0zxnlmyh0prwdll62ri2c1l4sb0yrkl7yw17cr4gxmkkz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-grep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-if = callPackage ({ fetchFromGitLab
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "org-if";
+        ename = "org-if";
+        version = "20150920.813";
+        src = fetchFromGitLab {
+          owner = "elzair";
+          repo = "org-if";
+          rev = "fab602cc1bbee7a4e99c0083e129219d3f9ed2e8";
+          sha256 = "1iyqv34b7q2k73srshcnpvfzcadq47w4rzkqp6m1d3ajk8x2vypq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-if";
+          sha256 = "0h0jdyawz2j4mp33w85z8q77l37qid8palvw5n4z379qa0wr5h96";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-if";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-index = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "org-index";
+        ename = "org-index";
+        version = "20181019.558";
+        src = fetchFromGitHub {
+          owner = "marcIhm";
+          repo = "org-index";
+          rev = "30b225694572f56dcd3ba87b98a8adeb746e69f1";
+          sha256 = "0aadwydgamyc861vn9l0yk8nllc0f14p2xji90sglpvhn38h7afw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-index";
+          sha256 = "092q92hwvknwm3v2shp8dm59qdamfivx9z9v23msysy7x2mhg98f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-index";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-iv = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , impatient-mode
+                          , lib
+                          , melpaBuild
+                          , org }:
+      melpaBuild {
+        pname = "org-iv";
+        ename = "org-iv";
+        version = "20171001.322";
+        src = fetchFromGitHub {
+          owner = "kuangdash";
+          repo = "org-iv";
+          rev = "7f2bb1b32647655fd9d6684f6f09dcc66b61b0cd";
+          sha256 = "0s3fi8sk7jm5vr0fz20fbygm4alhpirv0j20jfi1pab14yhhf34h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-iv";
+          sha256 = "1akhabp6mdw1h7zms6ahlfvwizl07fwsizwxpdzi4viggfccsfwx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib impatient-mode org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-iv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-jira = callPackage ({ cl-lib ? null
+                            , dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , request
+                            , s }:
+      melpaBuild {
+        pname = "org-jira";
+        ename = "org-jira";
+        version = "20181117.1910";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "org-jira";
+          rev = "45f3e8f19f511fae2012828a99b8e3254708531c";
+          sha256 = "1s42bvmg04vf5fl1y9pzga63xmbk72s3ydgnqhq88xg7cj9siw0h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-jira";
+          sha256 = "1sbypbz00ki222zpm47yplyprx7h2q076b3l07qfilk0sr8kf4ql";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs request s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-jira";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-journal = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "org-journal";
+        ename = "org-journal";
+        version = "20181114.2314";
+        src = fetchFromGitHub {
+          owner = "bastibe";
+          repo = "org-journal";
+          rev = "3ae2e7d7e372dee08143282a9137bf4dfc946645";
+          sha256 = "1sqn68l1rlyypz3839hghrpwzcdxvqwr50dbfad5827garflg3m4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-journal";
+          sha256 = "1npzqxn1ssigq7k1nrxz3xymxaazby0ddgxq6lgw2a1zjmjm4h2b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-journal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-kanban = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , org }:
+      melpaBuild {
+        pname = "org-kanban";
+        ename = "org-kanban";
+        version = "20180916.116";
+        src = fetchFromGitHub {
+          owner = "gizmomogwai";
+          repo = "org-kanban";
+          rev = "476b896cdc537b7bc25d2a652c2d49f4560e2118";
+          sha256 = "0b4lmhp3ghjk5s2x45lgh5yf5i3qlk1gi60pgrd2y0kphaxj0y4j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-kanban";
+          sha256 = "1flgqa2pwzw6b2zm3j09i9bvz1i8k03mbwj6l75yrk29lh4njq41";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-kanban";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-link-minor-mode = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , org }:
+      melpaBuild {
+        pname = "org-link-minor-mode";
+        ename = "org-link-minor-mode";
+        version = "20170805.1152";
+        src = fetchFromGitHub {
+          owner = "seanohalpin";
+          repo = "org-link-minor-mode";
+          rev = "7b92df60f3fee7f609d649d80ef243b45771ebea";
+          sha256 = "1lz7qj57s391ssawmccvhgxv1w99fj1m9rg3g4pymdl3sgdcz4g4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-link-minor-mode";
+          sha256 = "1akb670mzzhmldw2202x3k6b7vwfcn0rs55znpxsrc4iqihdgka3";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-link-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-link-travis = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , org }:
+      melpaBuild {
+        pname = "org-link-travis";
+        ename = "org-link-travis";
+        version = "20140405.1627";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "org-link-travis";
+          rev = "596615ad8373d9090bd4138da683524f0ad0bda5";
+          sha256 = "1797pd264zn19zk93nifyw6pwk2a7wrpfir373qclk601yv2g5h8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-link-travis";
+          sha256 = "0hj4x7cw7a3ry8xislkz9bnavy77z4cpmnvns02yi3gnib53mlfs";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-link-travis";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-linkany = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , log4e
+                               , melpaBuild
+                               , yaxception }:
+      melpaBuild {
+        pname = "org-linkany";
+        ename = "org-linkany";
+        version = "20160206.2011";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "org-linkany";
+          rev = "8cfe2f1a46e6654a79f56505349d1396263cecb3";
+          sha256 = "0lqxzmjxs80z3z90f66f3zfrdajiamdcwpvfv5j2w40js9xz4x37";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-linkany";
+          sha256 = "0arjj3c23yqm1ljvbnl7v9cqvd9lbz4381g8f3jyqbafs25bdc3c";
+          name = "recipe";
+        };
+        packageRequires = [ log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/org-linkany";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-listcruncher = callPackage ({ cl-lib ? null
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , seq }:
+      melpaBuild {
+        pname = "org-listcruncher";
+        ename = "org-listcruncher";
+        version = "20180814.2303";
+        src = fetchFromGitHub {
+          owner = "dfeich";
+          repo = "org-listcruncher";
+          rev = "daa948f54631dda96ed83a2c63265e176b177ff3";
+          sha256 = "0r6gmadd20w3giw40973kyl83954pdmhslxagn6vafh1ygg9vi83";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-listcruncher";
+          sha256 = "05vi7a03gj1waaqcjnkgpij4r45r2087xg7kgfs6ki8zhsyws23q";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/org-listcruncher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-make-toc = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , org
+                                , s }:
+      melpaBuild {
+        pname = "org-make-toc";
+        ename = "org-make-toc";
+        version = "20181117.2100";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-make-toc";
+          rev = "a73ec43211a2ec41a8dadae2e82a516c8bf5856a";
+          sha256 = "198nvhrsj502ir5rq8c0ci8792daqhzgqhbf52hpgwngkpv0zndn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-make-toc";
+          sha256 = "0xaw3d1axvln4pr7p0jnqf0j6fd1g6cra1gykvf6y12zx02xkchh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-make-toc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-mime = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "org-mime";
+        ename = "org-mime";
+        version = "20181023.1614";
+        src = fetchFromGitHub {
+          owner = "org-mime";
+          repo = "org-mime";
+          rev = "1e792ef0616069b3ec74a4b7d96fced8c9c6eb8a";
+          sha256 = "182ifw3rdblmk6hrrybmz7g6dm9k4kxnqg89drmicfy0qvn4h059";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-mime";
+          sha256 = "14154pajl2bbawdd8iqfwgc67pcjp2lxl6f92c62nwq12wkcnny6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-mime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-mind-map = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , org }:
+      melpaBuild {
+        pname = "org-mind-map";
+        ename = "org-mind-map";
+        version = "20180826.1640";
+        src = fetchFromGitHub {
+          owner = "theodorewiles";
+          repo = "org-mind-map";
+          rev = "41df4b2e30455494f1848b4e06cc9208aa9e902b";
+          sha256 = "0y0yjb0w6s5yxklcxkmylmw031plxhl9dvachx325mb9qcwskycp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-mind-map";
+          sha256 = "07wffzf4dzfj8bplwhr9yscm6l9wbz8y01j0jc8cw943z5b8pdgs";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-mind-map";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-mobile-sync = callPackage ({ emacs
+                                   , fetchgit
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , org }:
+      melpaBuild {
+        pname = "org-mobile-sync";
+        ename = "org-mobile-sync";
+        version = "20180605.2224";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/org-mobile-sync.git";
+          rev = "06764b943a528827df1e2acc6bc7806cc2c1351f";
+          sha256 = "0qdgs965ppihsz2ihyykdinr4n7nbb89d384z7kn985b17263lvn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-mobile-sync";
+          sha256 = "152mswykbz3m9w1grpsvb6wi9rg1vf3clnrl8qy6v911c0hy1s9c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-mobile-sync";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-mru-clock = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "org-mru-clock";
+        ename = "org-mru-clock";
+        version = "20180419.606";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "org-mru-clock";
+          rev = "0e2dcb7799fb82bbe55c8aa9930192871e8b6109";
+          sha256 = "08z6jc7qhj7zmzf1sag1n4nqh77k1dis2ijc6s2pzqlaxm3rhxyw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-mru-clock";
+          sha256 = "1arww5x6vdyyn1bwxry91w88phbr9l6nk8xxrw40iqmmbhggahgm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-mru-clock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-msg = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , htmlize
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "org-msg";
+        ename = "org-msg";
+        version = "20181005.843";
+        src = fetchFromGitHub {
+          owner = "jeremy-compostella";
+          repo = "org-msg";
+          rev = "bc488c5ef820644660991c4cb73de2738173b4d4";
+          sha256 = "1gbm2dfan7qyhfm1aafpw55y0djsl9gwa9lcgbf4sx86gd14h5xq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-msg";
+          sha256 = "0pznyvjks4ga204nv9v1rn7y7ixki437gknp2h854kpf6pdlb2jy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs htmlize ];
+        meta = {
+          homepage = "https://melpa.org/#/org-msg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-multiple-keymap = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , org }:
+      melpaBuild {
+        pname = "org-multiple-keymap";
+        ename = "org-multiple-keymap";
+        version = "20150328.1806";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "org-multiple-keymap.el";
+          rev = "8ebc532df7f0dd6e6c3aa7c380a51d4166c668e8";
+          sha256 = "0zbpzm9lni6z180s7n52x8s5by5zkq2nlhx82l2h9i7in9y4r6c3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-multiple-keymap";
+          sha256 = "16iv5575634asvn1b2k535ml8g4lqgy8z5w6ykma5f9phq5idb9f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-multiple-keymap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-notebook = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , org }:
+      melpaBuild {
+        pname = "org-notebook";
+        ename = "org-notebook";
+        version = "20170321.2152";
+        src = fetchFromGitHub {
+          owner = "Rahi374";
+          repo = "org-notebook";
+          rev = "d90c4aeca2442161e6dd89de175561af85aace03";
+          sha256 = "15hf0x0v4fz6gxj8qx9pfm6xic7qni33nn4ga6cxbdgpwgyr61wz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-notebook";
+          sha256 = "045xqmrik1s83chl7l7fnlav2p76xrfj21kacpjj215saz1f8nld";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-notebook";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-noter = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "org-noter";
+        ename = "org-noter";
+        version = "20181106.1541";
+        src = fetchFromGitHub {
+          owner = "weirdNox";
+          repo = "org-noter";
+          rev = "8e5d8eacffe251a4b6ab55f6cb36e0830f5fe8dc";
+          sha256 = "0pz1rxfvbvdgv6nqgx5cdk858wqqrir11mxacqh6fs87yvbp1y33";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-noter";
+          sha256 = "0vsc2b1yz9lw0zv1vnm722pl35kxpwhcdi7h6mijhnw8vv7rhixf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-noter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-octopress = callPackage ({ ctable
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , org
+                                 , orglue }:
+      melpaBuild {
+        pname = "org-octopress";
+        ename = "org-octopress";
+        version = "20170820.2115";
+        src = fetchFromGitHub {
+          owner = "yoshinari-nomura";
+          repo = "org-octopress";
+          rev = "38598ef98d04076a8eb78d549907ddfde8d3a652";
+          sha256 = "0bmj5wkwidj1v3b8ipligr0nkfdaxm82717nz8fqidz967q4xbk6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-octopress";
+          sha256 = "0r6ms9j4xxsrik4206g7gz4wz41wr4ylpal6yfqs4hhz88yhxrhw";
+          name = "recipe";
+        };
+        packageRequires = [ ctable org orglue ];
+        meta = {
+          homepage = "https://melpa.org/#/org-octopress";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-onenote = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , oauth2
+                               , org
+                               , request }:
+      melpaBuild {
+        pname = "org-onenote";
+        ename = "org-onenote";
+        version = "20171007.2200";
+        src = fetchFromGitHub {
+          owner = "ifree";
+          repo = "org-onenote";
+          rev = "5ce5cf4edb143180e0b185ac26826d39ae5bc929";
+          sha256 = "1jlnnb04ichcl155lklvjw91l8j1dvg77bv1815chak226aq4xqj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-onenote";
+          sha256 = "0qgmizzryb6747yd80d3nic3546f4h8vjd6c30jr99vv2ildjsfk";
+          name = "recipe";
+        };
+        packageRequires = [ oauth2 org request ];
+        meta = {
+          homepage = "https://melpa.org/#/org-onenote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-outline-numbering = callPackage ({ cl-lib ? null
+                                         , emacs
+                                         , fetchFromGitLab
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , org
+                                         , ov }:
+      melpaBuild {
+        pname = "org-outline-numbering";
+        ename = "org-outline-numbering";
+        version = "20180705.801";
+        src = fetchFromGitLab {
+          owner = "andersjohansson";
+          repo = "org-outline-numbering";
+          rev = "b95b6a7ed9289637cb512232470633b330ca9713";
+          sha256 = "03x3n2ywgk2x7slpzy26bw3l9l000pd964z0yifvf9fqhpbk5d0r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-outline-numbering";
+          sha256 = "131cpvfsiv92bbicq5n7dlr6k643sk7xw31xs0lwmw4pxq44m8sg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ov ];
+        meta = {
+          homepage = "https://melpa.org/#/org-outline-numbering";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-outlook = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "org-outlook";
+        ename = "org-outlook";
+        version = "20160705.638";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "org-outlook.el";
+          rev = "ec32d8d9d8ffd17e6de4de0b52fc3f5ad9b4cc0d";
+          sha256 = "1la7g9qzn8wbfzc2zd6gddi1zl145b35311l66sjyffidmhgfw8d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-outlook";
+          sha256 = "0cn8h6yy67jr5h1yxsfqmr8q7ii4f99pgghfp821m01pj55qyjx9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-outlook";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-page = callPackage ({ cl-lib ? null
+                            , dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , git
+                            , ht
+                            , htmlize
+                            , lib
+                            , melpaBuild
+                            , mustache
+                            , org
+                            , simple-httpd }:
+      melpaBuild {
+        pname = "org-page";
+        ename = "org-page";
+        version = "20170806.1924";
+        src = fetchFromGitHub {
+          owner = "kelvinh";
+          repo = "org-page";
+          rev = "50430ababf73a2d090881a952e9770badaf7478b";
+          sha256 = "1xph0pdcbzlxfnbhhad2jgkznrl2vs76yl3jd29ny4xsl0n3gglw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-page";
+          sha256 = "1326m3w7vz22zk7rx40z28fddsccy5fl1qhbb7clci8l69blcc2v";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          dash
+          git
+          ht
+          htmlize
+          mustache
+          org
+          simple-httpd
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/org-page";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-parser = callPackage ({ dash
+                              , emacs
+                              , fetchhg
+                              , fetchurl
+                              , ht
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "org-parser";
+        ename = "org-parser";
+        version = "20171002.2136";
+        src = fetchhg {
+          url = "https://bitbucket.com/zck/org-parser.el";
+          rev = "105050acee08";
+          sha256 = "1y1ikk950awxhvx4d930ymqa8ds6a0wlywzx09jvrnkvbisd4l63";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-parser";
+          sha256 = "06yb78mf486b986dhvqg3avflfyi271vykyars465qpk0v8ahq8h";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ht ];
+        meta = {
+          homepage = "https://melpa.org/#/org-parser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-password-manager = callPackage ({ dash
+                                        , fetchgit
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , org
+                                        , s }:
+      melpaBuild {
+        pname = "org-password-manager";
+        ename = "org-password-manager";
+        version = "20180227.1010";
+        src = fetchgit {
+          url = "https://github.com/leafac/org-password-manager";
+          rev = "4b30a36e71182553a02e4dd415369290d98ec03a";
+          sha256 = "1a6i3g032c5xzsnaf7rprn22kk68y1ay3w21p3q52p3lvlzhnfis";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-password-manager";
+          sha256 = "0wxvl6ypgn6ky1z3dh33ya3rh73znkh5f8qhqwfmwp7hy2mbl4la";
+          name = "recipe";
+        };
+        packageRequires = [ dash org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-password-manager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-pdfview = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , org
+                               , pdf-tools }:
+      melpaBuild {
+        pname = "org-pdfview";
+        ename = "org-pdfview";
+        version = "20180225.206";
+        src = fetchFromGitHub {
+          owner = "markus1189";
+          repo = "org-pdfview";
+          rev = "09ef4bf8ff8319c1ac78046c7e6b89f6a0beb82c";
+          sha256 = "15zxdq6f6w3l8pzg3b58cj37z61dx106jwslpqni71m8wczdqkz1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-pdfview";
+          sha256 = "1qhlmzf2ffcrjnx4yghv7n6rsry8bcwnkw489spgraq9vxvqklah";
+          name = "recipe";
+        };
+        packageRequires = [ org pdf-tools ];
+        meta = {
+          homepage = "https://melpa.org/#/org-pdfview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-pomodoro = callPackage ({ alert
+                                , cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-pomodoro";
+        ename = "org-pomodoro";
+        version = "20171108.1314";
+        src = fetchFromGitHub {
+          owner = "lolownia";
+          repo = "org-pomodoro";
+          rev = "3deed1c26dcbda4d5231b9085ddf68e302b0f9dc";
+          sha256 = "0mpcqqrz8mrqn1gbvffyw5d0qgpg3cpljxqk028s9snj4vy6xpz5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-pomodoro";
+          sha256 = "1vdi07hrhniyhhvg0hcr5mlixy6bjynvwm89z2lvfyvnnxpx0r27";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-pomodoro";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-present = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , org }:
+      melpaBuild {
+        pname = "org-present";
+        ename = "org-present";
+        version = "20180303.1530";
+        src = fetchFromGitHub {
+          owner = "rlister";
+          repo = "org-present";
+          rev = "d13acd70eff6a1608bc991920232146a0de76b21";
+          sha256 = "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-present";
+          sha256 = "09h0cjqjwhqychyrdv1hmiyak677vgf1b94392sdsq3ns70zyjk7";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-present";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-present-remote = callPackage ({ elnode
+                                      , emacs
+                                      , fetchFromGitLab
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , org-present }:
+      melpaBuild {
+        pname = "org-present-remote";
+        ename = "org-present-remote";
+        version = "20181001.1441";
+        src = fetchFromGitLab {
+          owner = "duncan-bayne";
+          repo = "org-present-remote";
+          rev = "aca889be14400d68fb6b86bb89702942883e06b9";
+          sha256 = "0xmsaza4i702hvm49kg8hh871isr4j5ra8w3yc27n2447jlsniif";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-present-remote";
+          sha256 = "06xxxa8hxfxx47bs6wxi8nbgqc8nm82c3h0yv1ddlm35qfscggks";
+          name = "recipe";
+        };
+        packageRequires = [ elnode emacs org-present ];
+        meta = {
+          homepage = "https://melpa.org/#/org-present-remote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-preview-html = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , org }:
+      melpaBuild {
+        pname = "org-preview-html";
+        ename = "org-preview-html";
+        version = "20180624.2319";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "org-preview-html";
+          rev = "8ba7ecd7ac624f33b3e2395f477bbff4f1ec4efe";
+          sha256 = "1h46v0ckhfzv3fixcfxk7pkmh56c5lana8kpwiknm447q1wmlbx4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-preview-html";
+          sha256 = "1dnr046mk5ngmic2yqcmrnn7pzrrx3sg22rk2pc3vgdxs8bhvhf9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-preview-html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-projectile = callPackage ({ dash
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , org-category-capture
+                                  , projectile
+                                  , s }:
+      melpaBuild {
+        pname = "org-projectile";
+        ename = "org-projectile";
+        version = "20180531.1942";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "org-projectile";
+          rev = "e57023c0e33e4a0f848fcfec1902e13e6a92f711";
+          sha256 = "03svxxx6jh0c5517yvp7g5lfvjn3n4r169j589iii0fcjp4qri3n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-projectile";
+          sha256 = "0xdkd5pkyi6yfqi4przgp5mpklyxfxv0cww285zdlh00rzl935cw";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org-category-capture projectile s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-projectile-helm = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , helm
+                                       , lib
+                                       , melpaBuild
+                                       , org-projectile }:
+      melpaBuild {
+        pname = "org-projectile-helm";
+        ename = "org-projectile-helm";
+        version = "20180601.1122";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "org-projectile";
+          rev = "674e3cdda4a3ea4bdcc369dae032d49dfb5c5765";
+          sha256 = "02ia5i8aal9gck248v6kqzffsp09mmf4cispdbhqkp83mz96bxdn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-projectile-helm";
+          sha256 = "0x79j5yr9wsgzjf1dpp7d4xiji8hgyhr79vb973an5z2r02vnaf4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm org-projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/org-projectile-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-protocol-jekyll = callPackage ({ cl-lib ? null
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "org-protocol-jekyll";
+        ename = "org-protocol-jekyll";
+        version = "20170328.939";
+        src = fetchFromGitHub {
+          owner = "vonavi";
+          repo = "org-protocol-jekyll";
+          rev = "dec064a42d6dfe81dfde7ba59ece5ca103ac6334";
+          sha256 = "1pgc0lfbz6q2x8b5qkk766i5qylql4p0ng732rcqr7rzg6j31gm7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-protocol-jekyll";
+          sha256 = "18wg489n2d1sx9jk00ki6p2rxkqz67kqwnmy2kb1ga1rmb6x9wfs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-protocol-jekyll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-radiobutton = callPackage ({ dash
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "org-radiobutton";
+        ename = "org-radiobutton";
+        version = "20180612.328";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "org-radiobutton";
+          rev = "4182aafbe5ae1bdfb0b07efa435bdba8bbd7199d";
+          sha256 = "0jm5ijs4pjzvlzpqk3k9qqcvaza2lmz2c0fcxf1g357v643bmaj4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-radiobutton";
+          sha256 = "16ly42iyfh7d34yz4bvdpj3zrlwkw3kmh82gwr25a05mlsdc1d93";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-radiobutton";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-random-todo = callPackage ({ alert
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "org-random-todo";
+        ename = "org-random-todo";
+        version = "20180312.104";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "org-random-todo";
+          rev = "8357350a66bbc4e0e5cb590acc104d39870cf736";
+          sha256 = "1cl1abgflbnnmvakb1z69rpr2gsm3hyg20iggwl6pn2fl0pf5wf5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-random-todo";
+          sha256 = "0yflppdbkfn2phd21zkjdlidzasfm846mzniay83v3akz0qx31lr";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-random-todo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-randomnote = callPackage ({ dash
+                                  , f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "org-randomnote";
+        ename = "org-randomnote";
+        version = "20171210.557";
+        src = fetchFromGitHub {
+          owner = "mwfogleman";
+          repo = "org-randomnote";
+          rev = "c544202d6cba1c1618ed39b2a45fa0ffc5f83e60";
+          sha256 = "1ny7qq3av43kbzd9q2rsqi04sg7n9snaqss3nazr80mpswx906dx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-randomnote";
+          sha256 = "06i42ig7icap1i1mqzv5cqwhnmsrzpjmjbjjn49nv26ljr3mjw0b";
+          name = "recipe";
+        };
+        packageRequires = [ dash f ];
+        meta = {
+          homepage = "https://melpa.org/#/org-randomnote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-readme = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , header2
+                              , http-post-simple
+                              , lib
+                              , lib-requires
+                              , melpaBuild
+                              , yaoddmuse }:
+      melpaBuild {
+        pname = "org-readme";
+        ename = "org-readme";
+        version = "20151204.417";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "org-readme";
+          rev = "4cb9f768d282a2835b4510b6504ff9ede487007d";
+          sha256 = "1q3s12s0ll7jhrnd3adkaxv7ff69ppprv0pyl5f6gy8y51y63k8d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-readme";
+          sha256 = "1qqbsgspd006gy0kc614w7bg6na0ygmflvqkmw47899pbgj81hxh";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          header2
+          http-post-simple
+          lib-requires
+          yaoddmuse
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/org-readme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-recent-headings = callPackage ({ dash
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , frecency
+                                       , lib
+                                       , melpaBuild
+                                       , org }:
+      melpaBuild {
+        pname = "org-recent-headings";
+        ename = "org-recent-headings";
+        version = "20170907.2129";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-recent-headings";
+          rev = "a09c2670c400c7a4fbbf0ac05d2d9226aa10e8f4";
+          sha256 = "1m0v94zaz30c5p4k1s213dpg0kjs6nd92bph2zlbm37wq8znizmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-recent-headings";
+          sha256 = "0b51pyxdk8fdbksx7h1c88sw1liwng8wkjfb1q7w7lglw6f8sjsa";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs frecency org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-recent-headings";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-redmine = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "org-redmine";
+        ename = "org-redmine";
+        version = "20160711.414";
+        src = fetchFromGitHub {
+          owner = "gongo";
+          repo = "org-redmine";
+          rev = "a526c3ac802634486bf10de9c2283ccb1a30ec8d";
+          sha256 = "04lfnyq6d86wa3acvjd4w2wvh538z9crsgsg4rgpyahklc5vm01f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-redmine";
+          sha256 = "0y2pm18nnyzm9wjc0j15v46nf3xi7a0wvspfzi360qv08i54skqv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-redmine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-ref = callPackage ({ dash
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , helm-bibtex
+                           , htmlize
+                           , hydra
+                           , ivy
+                           , key-chord
+                           , lib
+                           , melpaBuild
+                           , pdf-tools
+                           , s }:
+      melpaBuild {
+        pname = "org-ref";
+        ename = "org-ref";
+        version = "20181114.1651";
+        src = fetchFromGitHub {
+          owner = "jkitchin";
+          repo = "org-ref";
+          rev = "1b5cf239d2abe203b9c64000c9010bbb6bf18fb4";
+          sha256 = "1zzbf1kaapfwa9q40wbssvx25ah5yrlrv2hskrw8j9ja2w878i47";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-ref";
+          sha256 = "087isxf3z8cgmmniaxr3lpq9jg3sriw88dwp4f0ky286hlvgzw08";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          emacs
+          f
+          helm
+          helm-bibtex
+          htmlize
+          hydra
+          ivy
+          key-chord
+          pdf-tools
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/org-ref";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-repo-todo = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "org-repo-todo";
+        ename = "org-repo-todo";
+        version = "20171227.1719";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "org-repo-todo";
+          rev = "f73ebd91399c5760ad52c6ad9033de1066042003";
+          sha256 = "0c74zwmac8x1y8jimdx473v0falpky2kfig8pnaxavz415gb315q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-repo-todo";
+          sha256 = "0l5ns1hs3i4dhrpmvzl34zc9zysgjkfa7j8apbda59n9jdvml5v1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-repo-todo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-review = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "org-review";
+        ename = "org-review";
+        version = "20160906.2237";
+        src = fetchFromGitHub {
+          owner = "brabalan";
+          repo = "org-review";
+          rev = "44773bbd9868bb3ddca27cd35d2fc54139a70ab5";
+          sha256 = "1iqcxdni680pgl9azi7khx2ns3mh8sgpbq1mcc4ivxkbwrb93crb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-review";
+          sha256 = "1v7p7pmrjjyj0my9xw55gsn9vvr9aq5x53x13nmspvqg47z6bd98";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-review";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-rich-yank = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "org-rich-yank";
+        ename = "org-rich-yank";
+        version = "20180430.644";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "org-rich-yank";
+          rev = "b29bd06f295424fc15b3b8c1b3f78f501d67db47";
+          sha256 = "0c4ywznxwf7hdc4x434d90hp440rplc4nsih4aswjkb7lx38lp9a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-rich-yank";
+          sha256 = "1v0sc90g5sl6b9ylxbk2y8s3pvxkf4v7k2rkzpgpbp4nrq0miy4y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-rich-yank";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-rtm = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , rtm }:
+      melpaBuild {
+        pname = "org-rtm";
+        ename = "org-rtm";
+        version = "20160214.436";
+        src = fetchFromGitHub {
+          owner = "pmiddend";
+          repo = "org-rtm";
+          rev = "adc42ad1fbe92ab447ccc9553780f4456f2508d2";
+          sha256 = "1hn8y9933x5x6lxpijcqx97p3hln69ahabqdsl2bmzda3mxm4bn2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-rtm";
+          sha256 = "1hdcwmiv2qivdr2g78xz9fl38wn45vj0bn55dbsdj3qx7k7wgfx6";
+          name = "recipe";
+        };
+        packageRequires = [ rtm ];
+        meta = {
+          homepage = "https://melpa.org/#/org-rtm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-seek = callPackage ({ ag
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "org-seek";
+        ename = "org-seek";
+        version = "20161216.2102";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "org-seek.el";
+          rev = "1f51e6634e3b9a6a29d335d0d14370a6ffef2265";
+          sha256 = "0aq3af6fd16lm9iirzya6hmc8g48kfp8pc4dx51mgb5d6jjiizkv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-seek";
+          sha256 = "04ay4abm03kn15cn45ldrzh2rw6gr6ia3qrj7hn5crd75ppwvln7";
+          name = "recipe";
+        };
+        packageRequires = [ ag emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-seek";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-send-ebook = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , seq }:
+      melpaBuild {
+        pname = "org-send-ebook";
+        ename = "org-send-ebook";
+        version = "20181016.100";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "org-send-ebook";
+          rev = "b4913a709f9206115c3e3ea73e217029cc0fb3de";
+          sha256 = "13bivxqgi5z7iyzw37zl168x8iip6g0yhbl5yywkdfj51z81alr7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-send-ebook";
+          sha256 = "0gvnrl4rfqn3zd0wmj4bhd63zkjk68lwwcgmsqrfw7af22wlfv3d";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/org-send-ebook";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-starter = callPackage ({ dash
+                               , dash-functional
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "org-starter";
+        ename = "org-starter";
+        version = "20180917.505";
+        src = fetchFromGitHub {
+          owner = "akirak";
+          repo = "org-starter";
+          rev = "a1274f901366a39c2eeeaa36644c0bdd9837374b";
+          sha256 = "157h9z8wxbbqlil7ka7awnqhk9d9qa7qnsc17vza7m8v4c9bsz54";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-starter";
+          sha256 = "0vb11g5lvkvazrdzgdjvl8w7y5rr5nppg6685gq9pl6hw3sda0bs";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-starter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-static-blog = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "org-static-blog";
+        ename = "org-static-blog";
+        version = "20180527.2348";
+        src = fetchFromGitHub {
+          owner = "bastibe";
+          repo = "org-static-blog";
+          rev = "f69d2fd6671fb250fbd87df5efa898a7bf5b9bda";
+          sha256 = "1h9c96rbxxk1jypib5f9pfi5zkimkvhxi61j0sps6r39435dd3w7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-static-blog";
+          sha256 = "07vh2k7cj0cs1yzfmrrz9p03x5mbfh0bigbl93s72h1wf7i05rkw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-static-blog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-sticky-header = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , org }:
+      melpaBuild {
+        pname = "org-sticky-header";
+        ename = "org-sticky-header";
+        version = "20170422.2135";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-sticky-header";
+          rev = "a435bffa3d155bdc2ad536f4da869f884e38773e";
+          sha256 = "1gq0xcb1824kgjcfy868sf0a6xv4qmnzl4pmv8zlp8jb5d1ghlic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-sticky-header";
+          sha256 = "0ign3vjckmxp7n3625wb53qlch07c3s4l67jsvk38dhhcsg1rhnj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-sticky-header";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-super-agenda = callPackage ({ dash
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , ht
+                                    , lib
+                                    , melpaBuild
+                                    , org
+                                    , s }:
+      melpaBuild {
+        pname = "org-super-agenda";
+        ename = "org-super-agenda";
+        version = "20181119.128";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-super-agenda";
+          rev = "6d3f0ffc2def625b3df3116e8c5fd2d489f523fb";
+          sha256 = "1mjbm46z9mmlrysa33p821ic93avrlqsa2wraphgmqkj7ywhw3ax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-super-agenda";
+          sha256 = "1h3kqvpjq2w0n8qiqwb8wcpdy2g4ac7j6kin0943g7p5gm5yf0ra";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ht org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-super-agenda";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-sync = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "org-sync";
+        ename = "org-sync";
+        version = "20180221.1127";
+        src = fetchFromGitHub {
+          owner = "arbox";
+          repo = "org-sync";
+          rev = "fedddd20384de9919ba8e0b08344ff9356508805";
+          sha256 = "0hkr5m795srmx8vzqaa4rhrnnm7qyxnadj5wlkdgsa8c3vcjl5gc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-sync";
+          sha256 = "0n8fz2d1vg9r8dszgasbnb6pgaxr2i8mqrp953prf1nhmfpjpxad";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-sync";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-sync-snippets = callPackage ({ emacs
+                                     , f
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , org }:
+      melpaBuild {
+        pname = "org-sync-snippets";
+        ename = "org-sync-snippets";
+        version = "20170824.1128";
+        src = fetchFromGitHub {
+          owner = "abrochard";
+          repo = "org-sync-snippets";
+          rev = "0f264a032d371d7dbb4a7cbaf0ea2f91b5a629ca";
+          sha256 = "0j680cla1zlxkwnslxwnxd5h6v1vvwr9byi1aawm9gxvz11x7vsj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-sync-snippets";
+          sha256 = "0kv15zqva2cgx7jscp02x9gx20b5ckf525h546hyca86vfaakfbp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-sync-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-table-comment = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "org-table-comment";
+        ename = "org-table-comment";
+        version = "20120209.1051";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "org-table-comment.el";
+          rev = "33b9966c33ecbc3e27cca67c2f2cdea04364d74e";
+          sha256 = "1qx3kd02sxs9k7adlvdlbmyhkc5kr7ni5lw4gxjw3nphnc536bkb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-table-comment";
+          sha256 = "1d40vl8aa1x27z4gwnkzxgrqp7vd3ln2pc445ijjxp1wr8bjxvdz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-table-comment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-table-sticky-header = callPackage ({ emacs
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild
+                                           , org }:
+      melpaBuild {
+        pname = "org-table-sticky-header";
+        ename = "org-table-sticky-header";
+        version = "20170408.1814";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "org-table-sticky-header";
+          rev = "93dc69efc00ac9fd3cc2ece5100f51df33ec7d8b";
+          sha256 = "0d9d9sxak6kvqbb91h65ahw272d7dfxpgjw6zbs472xb6di1r6pm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-table-sticky-header";
+          sha256 = "1rk41279rcsdma39zpr1ka5p47gh1d0969wahd0jbm5xlmx5gz2m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-table-sticky-header";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-tfl = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "org-tfl";
+        ename = "org-tfl";
+        version = "20170923.518";
+        src = fetchFromGitHub {
+          owner = "storax";
+          repo = "org-tfl";
+          rev = "f0d7d39106a1de5457f5160cddd98ab892b61066";
+          sha256 = "1rwdibiq0w4nzccmvdkpwnmfga70y35lfg2xlkqxd02x7bfl7j3m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-tfl";
+          sha256 = "1rqmmw0222vbxfn5wxq9ni2j813x92lpv99jjszqjvgnf2rkhjhf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-tfl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-themis = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "org-themis";
+        ename = "org-themis";
+        version = "20160121.2004";
+        src = fetchFromGitHub {
+          owner = "zellio";
+          repo = "org-themis";
+          rev = "78aadbbe22b1993be5c4accd0d3f91a4e85c9a3c";
+          sha256 = "1apd5yyr12skagma7xpzrh22rhplmhhv0pma4zf5b0i6nkxy06j2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-themis";
+          sha256 = "08rajz5y7h88fh94s2ad0f66va4vi31k9hwdv8p212bs276rp7ln";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-themis";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-time-budgets = callPackage ({ alert
+                                    , cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "org-time-budgets";
+        ename = "org-time-budgets";
+        version = "20151111.1";
+        src = fetchFromGitHub {
+          owner = "leoc";
+          repo = "org-time-budgets";
+          rev = "530dd4ce72f94a86db28b3e19c164e64df2a29ab";
+          sha256 = "09iw2jffb2qrx5r07zd1j8sk5wafamjkc2khqyfwc5kx6xyp1f46";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-time-budgets";
+          sha256 = "0r8km586n6xdnjha7xnzlh03nw1dp066hydaz8kxfmhvygl9cpah";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-time-budgets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-timeline = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-timeline";
+        ename = "org-timeline";
+        version = "20180812.419";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "org-timeline";
+          rev = "701f13246ad1ce286be69cc16c1126536b71e7ca";
+          sha256 = "09w5qd4bsahsp8qa14z380ahg5lmwdgvf6lqh092s142kljmag27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-timeline";
+          sha256 = "0zlhjzjc7jwqh6wcys17hraz76n2hnjwffis02x71maclrf2cfdd";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-timeline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-toodledo = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , request-deferred }:
+      melpaBuild {
+        pname = "org-toodledo";
+        ename = "org-toodledo";
+        version = "20150301.313";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "org-toodledo";
+          rev = "01b53b637f304b89cd3bf2d29009b5ed6ad9466d";
+          sha256 = "1c6kc79f6qkg7dl40mzmhcjph29i8frcfvfcvz4b155ilxwzr0z4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-toodledo";
+          sha256 = "0c7qr0jsc4iyrwkc22xp9nmk6984v7q1k0rvpd62m07lb5gvbiq3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs request-deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/org-toodledo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-tracktable = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "org-tracktable";
+        ename = "org-tracktable";
+        version = "20161118.529";
+        src = fetchFromGitHub {
+          owner = "tty-tourist";
+          repo = "org-tracktable";
+          rev = "8e0e60a582a034bd66d5efb72d513140b7d4d90a";
+          sha256 = "1aq7qv5jyc2x2a4iphnzmmsvak6dbi7nwdcf3m8nly8w75vrl5lj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-tracktable";
+          sha256 = "0mngf9q2ffxq32cgng0xl30661mj15wmr9y4hr3xddj626kxrp00";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-tracktable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-transform-tree-table = callPackage ({ dash
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild
+                                            , s }:
+      melpaBuild {
+        pname = "org-transform-tree-table";
+        ename = "org-transform-tree-table";
+        version = "20150110.633";
+        src = fetchFromGitHub {
+          owner = "jplindstrom";
+          repo = "emacs-org-transform-tree-table";
+          rev = "0a9bf07f01bc5fc3b349aff64e83999a8de83b52";
+          sha256 = "1h15fr16kgbyrxambmk4hsmha6hx4c4yqkccb82g3wlvzmnqj5x3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-transform-tree-table";
+          sha256 = "0n68cw769nk90ms6w1w6cc1nxjwn1navkz56mf11bsiqvsk3km7r";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-transform-tree-table";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-tree-slide = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "org-tree-slide";
+        ename = "org-tree-slide";
+        version = "20180906.249";
+        src = fetchFromGitHub {
+          owner = "takaxp";
+          repo = "org-tree-slide";
+          rev = "d45152fad1c0a153251073806f1b65ebd3731411";
+          sha256 = "1qqjvbcwacxfkyq2y6vxsmlnq6z8b4fmxg91a9k4ws827qxrnass";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-tree-slide";
+          sha256 = "0v857zplv0wdbg4li667v2p5pn5zcf9fgbqcwa75x8babilkl6jn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-tree-slide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-trello = callPackage ({ dash
+                              , dash-functional
+                              , deferred
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , request-deferred
+                              , s }:
+      melpaBuild {
+        pname = "org-trello";
+        ename = "org-trello";
+        version = "20180330.2331";
+        src = fetchFromGitHub {
+          owner = "org-trello";
+          repo = "org-trello";
+          rev = "e2e8a3d45057645e4caae7d46a79d2d9be2894bd";
+          sha256 = "12yw54hg1lhfxw6mvxjsvbiv7cg1zwm3ccsl7g127vbf0yp2dhrl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-trello";
+          sha256 = "14lq8nn1x6qb3jx518zaaz5582m4npd593w056igqhahkfm0qp8i";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional deferred request-deferred s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-trello";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-variable-pitch = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "org-variable-pitch";
+        ename = "org-variable-pitch";
+        version = "20180429.1515";
+        src = fetchFromGitHub {
+          owner = "cadadr";
+          repo = "elisp";
+          rev = "ffe03506694c94de0444995f973a925deccc400a";
+          sha256 = "02wcvka96zdlq3myfar7dqywfil2b77bc6ydmgcphwn3as3kl08r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-variable-pitch";
+          sha256 = "1xci5zq1bpwnm3adlcsxzpskxywzalb1n3n14lvf787f77ib602c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-variable-pitch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-vcard = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "org-vcard";
+        ename = "org-vcard";
+        version = "20170929.410";
+        src = fetchFromGitHub {
+          owner = "flexibeast";
+          repo = "org-vcard";
+          rev = "dbe266b79df4fb31f1766010322bf4e383ce1c03";
+          sha256 = "1rcqcgxvjshbz3n1p376h618xapj03n6m7b3cxgv9gnryviyr6ax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-vcard";
+          sha256 = "0l6azshvzl1wws582njqr3qx4h73gwrdqwa3jcic1qbs9hg2l4yl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-vcard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-wc = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "org-wc";
+        ename = "org-wc";
+        version = "20180609.1953";
+        src = fetchFromGitHub {
+          owner = "tesujimath";
+          repo = "org-wc";
+          rev = "0716c1e8276f6953e139e357e97566e792c8be19";
+          sha256 = "0wx4z6y3wn6948bz2pgrpffd4jzwgplvjkh0rnra4gihrapg1bv8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-wc";
+          sha256 = "1yk2py4bzm2yr8vw6rbgl2hfpd21hf4fga0d5q6y779631klp6wl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-wc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-web-tools = callPackage ({ dash
+                                 , emacs
+                                 , esxml
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , org
+                                 , request
+                                 , s }:
+      melpaBuild {
+        pname = "org-web-tools";
+        ename = "org-web-tools";
+        version = "20181112.2127";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-web-tools";
+          rev = "e9071d404efa417b6d46784c57b4725ff66f2f22";
+          sha256 = "05wrw7w6fbf7arm0lm2skpq9xssa9f9v1clj0h0n747rwas9m505";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-web-tools";
+          sha256 = "19zpspap85fjqg5a20ps34rcigb0ws986pj6dzd7xik8s6ia29s7";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs esxml org request s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-web-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-wild-notifier = callPackage ({ alert
+                                     , dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "org-wild-notifier";
+        ename = "org-wild-notifier";
+        version = "20180221.2025";
+        src = fetchFromGitHub {
+          owner = "akhramov";
+          repo = "org-wild-notifier.el";
+          rev = "d0df145d9bbb72b2c315b7d8007cb6a59fea2095";
+          sha256 = "1xcnb5x539776b6ljd9qyl9jadp2r4qg805m4m8yfz9sk00dv7yl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-wild-notifier";
+          sha256 = "1lmpa614jnkpmfg3m1d2wjn9w0zig3gwd02n3dyjn23n71fiyhkp";
+          name = "recipe";
+        };
+        packageRequires = [ alert dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-wild-notifier";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-wunderlist = callPackage ({ alert
+                                  , cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , org
+                                  , request-deferred
+                                  , s }:
+      melpaBuild {
+        pname = "org-wunderlist";
+        ename = "org-wunderlist";
+        version = "20150817.1913";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "org-wunderlist.el";
+          rev = "18565a018364db123dd0785c3c459a33ac458a2c";
+          sha256 = "1yyhh9ys67cg3y64vwi5nsl4vz793lkl4gpbv6jar8j5ryfg0z5w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-wunderlist";
+          sha256 = "08zg3wgr80rp89c53ffqzz22ws9bp62a1m74xvxa74x6nq9i4xl0";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib emacs org request-deferred s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-wunderlist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org2blog = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , htmlize
+                            , lib
+                            , melpaBuild
+                            , metaweblog
+                            , org
+                            , xml-rpc }:
+      melpaBuild {
+        pname = "org2blog";
+        ename = "org2blog";
+        version = "20171218.1911";
+        src = fetchFromGitHub {
+          owner = "org2blog";
+          repo = "org2blog";
+          rev = "04ea7e80497ab7f7bc0d097f1807d3a085074812";
+          sha256 = "1qpw5bs5qjlpw3hphbf2jg0h8bdrcgrb8xavdsx8viwjl013d4ps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org2blog";
+          sha256 = "15nr6f45z0i265llf8xs87958l5hvafh518k0s7jan7x1l6w5q33";
+          name = "recipe";
+        };
+        packageRequires = [ htmlize metaweblog org xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/org2blog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org2ctex = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "org2ctex";
+        ename = "org2ctex";
+        version = "20181011.1851";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "org2ctex";
+          rev = "2143992462594ce63733305f75f7c7d08123710a";
+          sha256 = "0xrg66yx4xrmkswbapaz21q4i6qm2199zvxqvgaxd8qyk19fc46c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org2ctex";
+          sha256 = "0049zf3ls7vbbcz1hdwai57ih9gppk2j0gzwijzwkb23ccwaf64a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org2ctex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org2elcomment = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , org }:
+      melpaBuild {
+        pname = "org2elcomment";
+        ename = "org2elcomment";
+        version = "20170324.245";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "org2elcomment";
+          rev = "c88a75d9587c484ead18f7adf08592b09c1cceb0";
+          sha256 = "19r7rxnd2cl0vc8bbf86mh5b779pl5z917657ymlc74bqq140m3x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org2elcomment";
+          sha256 = "0jv8sskw55rzxw578l6nm4arsycrw1si80ds7gr8i0x352fdydyp";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/org2elcomment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org2issue = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , gh
+                             , lib
+                             , melpaBuild
+                             , org
+                             , ox-gfm
+                             , s }:
+      melpaBuild {
+        pname = "org2issue";
+        ename = "org2issue";
+        version = "20160426.1818";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "org2issue";
+          rev = "0f7f13463e389f2d8d7d830a928042d0cf1c71eb";
+          sha256 = "1lvwkvzqgy9nlz7zmqfl9j8cairjfv3vknpzcqp6rzp6hkq04zk5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org2issue";
+          sha256 = "1qd5l9ga26smgp1gkc8r9ja2n974kq1jf2z876s5v0489ipa59bz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs gh org ox-gfm s ];
+        meta = {
+          homepage = "https://melpa.org/#/org2issue";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org2jekyll = callPackage ({ dash-functional
+                              , deferred
+                              , fetchFromGitHub
+                              , fetchurl
+                              , kv
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "org2jekyll";
+        ename = "org2jekyll";
+        version = "20170225.115";
+        src = fetchFromGitHub {
+          owner = "ardumont";
+          repo = "org2jekyll";
+          rev = "52a19a5d372116262b9d613f4ec8490a3b49e329";
+          sha256 = "14ld8ip487282if2sil96lfg5wx7632kg71sxhafygphbdl9vxd4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org2jekyll";
+          sha256 = "1j9d6xf5nsakifxwd4zmjc29lbj46ffn3z109k2y2yhz7q3r9hzv";
+          name = "recipe";
+        };
+        packageRequires = [ dash-functional deferred kv s ];
+        meta = {
+          homepage = "https://melpa.org/#/org2jekyll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org2web = callPackage ({ cl-lib ? null
+                           , dash
+                           , el2org
+                           , fetchFromGitHub
+                           , fetchurl
+                           , ht
+                           , htmlize
+                           , lib
+                           , melpaBuild
+                           , mustache
+                           , org
+                           , simple-httpd }:
+      melpaBuild {
+        pname = "org2web";
+        ename = "org2web";
+        version = "20171005.1617";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "org2web";
+          rev = "5243b399927a4c474bb3b8d1c8a00799df1f27d7";
+          sha256 = "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org2web";
+          sha256 = "0lcqf0pgkd7jilasw1485fy45k269jxvyl7hl7qrcs94s6fy2vaf";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          dash
+          el2org
+          ht
+          htmlize
+          mustache
+          org
+          simple-httpd
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/org2web";
+          license = lib.licenses.free;
+        };
+      }) {};
+    organic-green-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "organic-green-theme";
+        ename = "organic-green-theme";
+        version = "20180522.920";
+        src = fetchFromGitHub {
+          owner = "kostafey";
+          repo = "organic-green-theme";
+          rev = "200ac4a636eeb6faf1793d1937e62a343debc437";
+          sha256 = "18a04grh4k9npf566xki9fiivy5qvpvv5v8mpj66wfx919fwa44c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/organic-green-theme";
+          sha256 = "1fdj3dpcdqx0db5q8dlxag6pr2qn4yiz1hmg3c7dkmh51n85ssw2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/organic-green-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    organize-imports-java = callPackage ({ cl-lib ? null
+                                         , emacs
+                                         , f
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , s }:
+      melpaBuild {
+        pname = "organize-imports-java";
+        ename = "organize-imports-java";
+        version = "20180623.1209";
+        src = fetchFromGitHub {
+          owner = "jcs090218";
+          repo = "organize-imports-java";
+          rev = "cd21c23f903384ffe0eca5e6511bdf893457ab19";
+          sha256 = "196rwbj8ayccrm7qz72fxk5lngpi00vg9hn4v05krwfhg496yp0k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/organize-imports-java";
+          sha256 = "1k8s7pm268w42fm0lqlqg77mib8mbccw11ppf99r574510a1bni3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/organize-imports-java";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgbox = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , org }:
+      melpaBuild {
+        pname = "orgbox";
+        ename = "orgbox";
+        version = "20180826.1918";
+        src = fetchFromGitHub {
+          owner = "yasuhito";
+          repo = "orgbox";
+          rev = "609e5e37348815ec3ba53ab6d643e38b0cc4fe17";
+          sha256 = "0kg5ns87p8v6vsb7abgqcfnzi55fbgi7b5dj98hrvnlkv4sqz7pc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgbox";
+          sha256 = "12wfqlpjh9nr7zgqs4h8kmfsk825n68qcbn8z2fw2mpshg3nj7l8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib org ];
+        meta = {
+          homepage = "https://melpa.org/#/orgbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgit = callPackage ({ dash
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , magit
+                         , melpaBuild
+                         , org }:
+      melpaBuild {
+        pname = "orgit";
+        ename = "orgit";
+        version = "20180318.1301";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "orgit";
+          rev = "d909f92d3b1b42184143fd5e6d4c6a2762477ab7";
+          sha256 = "1jdc874bxkpbfpllak3vmfsn82p930s565bzff341vzv7aw2528c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgit";
+          sha256 = "0askccb3h98v8gmylwxaph3gbyv5b1sp4slws76aqz1kq9x0jy7w";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs magit org ];
+        meta = {
+          homepage = "https://melpa.org/#/orgit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orglink = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "orglink";
+        ename = "orglink";
+        version = "20180318.1323";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "orglink";
+          rev = "82ea67b7f1bf10627759044acb74828f66a85a83";
+          sha256 = "0zqbz1idj73wz3kljkkzl7mvalk73j7xpl3di6mb16ylscg9sraw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orglink";
+          sha256 = "0ldrvvqs3hlazj0dch162gsbnbxcg6fgrxid8p7w9gj19vbcl52b";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/orglink";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orglue = callPackage ({ epic
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , org }:
+      melpaBuild {
+        pname = "orglue";
+        ename = "orglue";
+        version = "20171220.426";
+        src = fetchFromGitHub {
+          owner = "yoshinari-nomura";
+          repo = "orglue";
+          rev = "ae2a45c19b52e45db7891093a3ff17ba2e51c507";
+          sha256 = "0h3b37wz4hlk022c0sq7c9p5z3v4n6cljhy8g1qjhnxac8y7mkr0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orglue";
+          sha256 = "1kj62y3cf3as2d5s207s6kg5alm09jmw0aag1z6lblrjlzbi1p2j";
+          name = "recipe";
+        };
+        packageRequires = [ epic org ];
+        meta = {
+          homepage = "https://melpa.org/#/orglue";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgnav = callPackage ({ dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , helm
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "orgnav";
+        ename = "orgnav";
+        version = "20170608.1013";
+        src = fetchFromGitHub {
+          owner = "facetframer";
+          repo = "orgnav";
+          rev = "9e2cac9c1a67af5f0080e60022e821bf7b70312d";
+          sha256 = "0764dg3dcsdy4i6syv9aqqmr47civn9dl3638g4lsqdikghw7lvv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgnav";
+          sha256 = "0z04n5rzv5c0lvn658nrfj6rg3a31n369h5rjgi5bap06qm427ix";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/orgnav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgtbl-aggregate = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "orgtbl-aggregate";
+        ename = "orgtbl-aggregate";
+        version = "20180731.1454";
+        src = fetchFromGitHub {
+          owner = "tbanel";
+          repo = "orgaggregate";
+          rev = "1079dfc3ca0f86fef6ca3e251f3829e031aef8c4";
+          sha256 = "17acwy9x23xh2fb3xhy5w3lz6ssnrv5nf33zsqadra9y1cxs9fcc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgtbl-aggregate";
+          sha256 = "0gnyjwn6jshs8bzdssm2xppg2s9p2x3rrhp523q39aydskc6ggc9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/orgtbl-aggregate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgtbl-ascii-plot = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "orgtbl-ascii-plot";
+        ename = "orgtbl-ascii-plot";
+        version = "20151215.1351";
+        src = fetchFromGitHub {
+          owner = "tbanel";
+          repo = "orgtblasciiplot";
+          rev = "cd91f6ae26a7402e192a1f4fd6248f5797edf19e";
+          sha256 = "1vbnp37xz0nrpyi0hah345928zsb1xw915mdb0wybq1fzn93mp1z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgtbl-ascii-plot";
+          sha256 = "1ssjbdprbn34nsfx1xjc382l2195rbh8mybpn31d4kcjx6fqf78h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/orgtbl-ascii-plot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgtbl-join = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "orgtbl-join";
+        ename = "orgtbl-join";
+        version = "20150121.1446";
+        src = fetchFromGitHub {
+          owner = "tbanel";
+          repo = "orgtbljoin";
+          rev = "863f0bde0aa226ecc6d000d9bcb1424be407dfb0";
+          sha256 = "0issbnl13lkfg3w0ia42mrjyvl8sl2blnmv2kazyd0lzkcfy1kap";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgtbl-join";
+          sha256 = "1kq2h0lb521z8q2xb9bsi37xzzdsa0hw4mm3qkzidi5j9fi3apf1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/orgtbl-join";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgtbl-show-header = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "orgtbl-show-header";
+        ename = "orgtbl-show-header";
+        version = "20141023.137";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "orgtbl-show-header";
+          rev = "2f13391f56cf94f8fe1dc79d6eccb662198f9b69";
+          sha256 = "0s3pf18n7vh67am1pjaa22gh645088dbz2rgxixr9avpfyalaycj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgtbl-show-header";
+          sha256 = "1xgqjg3lmcczdblxaka47cc1ad8p8jhyb2nqwq0qnbqw46fqjp3k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/orgtbl-show-header";
+          license = lib.licenses.free;
+        };
+      }) {};
+    origami = callPackage ({ cl-lib ? null
+                           , dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "origami";
+        ename = "origami";
+        version = "20180101.753";
+        src = fetchFromGitHub {
+          owner = "gregsexton";
+          repo = "origami.el";
+          rev = "1f38085c8f9af7842765ed63f7d6dfe4dab59366";
+          sha256 = "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/origami";
+          sha256 = "0rkb55zcvsgxzp190vrnbzdfbcjd8zi6vhbhwpqxi0qmyq6a08pr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/origami";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-browse = callPackage ({ browse-url-dwim
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , string-utils }:
+      melpaBuild {
+        pname = "osx-browse";
+        ename = "osx-browse";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "osx-browse";
+          rev = "838b81625853e04919fbb56fd21f387762b2e3f5";
+          sha256 = "0c1jh9396bwgs3n7yh9lvyj464x66r4b40c8zm9sv73c6g80m77q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-browse";
+          sha256 = "06rfzq2hxhzg6jh2zs28r7ffxwlq40nz954j13ly8403c7rmbrfm";
+          name = "recipe";
+        };
+        packageRequires = [ browse-url-dwim string-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/osx-browse";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-clipboard = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "osx-clipboard";
+        ename = "osx-clipboard";
+        version = "20141012.17";
+        src = fetchFromGitHub {
+          owner = "joddie";
+          repo = "osx-clipboard-mode";
+          rev = "e46dd31327a3f92f77b013b4c9b1e5fdd0e5c73d";
+          sha256 = "1ykn48src7qhx9cmpjkaqsz7h36p75kkq1h9wlcpv5fhaky2d4n4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-clipboard";
+          sha256 = "0gjgr451v6rlyarz96v6h8kfbvkk7npvhgvkgwdi0bjighrhlv4f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/osx-clipboard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-dictionary = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "osx-dictionary";
+        ename = "osx-dictionary";
+        version = "20171026.34";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "osx-dictionary.el";
+          rev = "b16630ecf69f87ac873486d8b9c8c03e6c9ea7fa";
+          sha256 = "06qsg8hlw1b725pzpsg5f194pxqcg1pjncsi8j0815yrlzfcg6sp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-dictionary";
+          sha256 = "13033fxc5vjd1f7mm6znmprcp3mwxbvblb2d25shr8d4imqqhv82";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/osx-dictionary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-lib = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "osx-lib";
+        ename = "osx-lib";
+        version = "20160919.1700";
+        src = fetchFromGitHub {
+          owner = "raghavgautam";
+          repo = "osx-lib";
+          rev = "fdbbb41e07ba64d6a09b54bd142a7c7b83bfd09f";
+          sha256 = "0n03yca62znrri1pg0cl4xzm4lkmdqyf1p9sm1vfjwlwxk552z5x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-lib";
+          sha256 = "12wvki8jhzqsanxv5yqzjmfx6ifwz9ab9zh6r8nss86bk8864ix4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/osx-lib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-location = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "osx-location";
+        ename = "osx-location";
+        version = "20150613.217";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "osx-location";
+          rev = "110aee945b53ea550e4debe69bf3c077d940ec8c";
+          sha256 = "1csnxpsfnv9lv07kgvc60qx5c33sshmnz60p3qjz7ym7rnjy9b5x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-location";
+          sha256 = "1p12mmrw70p3b04zlprkdxdfnb7m3vkm6gci3fwhr5zyfvwxvn0c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/osx-location";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-org-clock-menubar = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "osx-org-clock-menubar";
+        ename = "osx-org-clock-menubar";
+        version = "20150205.1311";
+        src = fetchFromGitHub {
+          owner = "jordonbiondo";
+          repo = "osx-org-clock-menubar";
+          rev = "9964d2a97cc2fb6570dc4116da44f73bd8eb7cb3";
+          sha256 = "1rgykby1ysbapq53lnk9yy04r9q4qirnzs2abgvz7g2qjq5fyzag";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-org-clock-menubar";
+          sha256 = "1y5qxslxl0d93f387nyj8zngz5nh1p4rzdfx0lnbvya6shfaxaf6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/osx-org-clock-menubar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-pseudo-daemon = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "osx-pseudo-daemon";
+        ename = "osx-pseudo-daemon";
+        version = "20170721.2307";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "mac-pseudo-daemon";
+          rev = "0358b3acd932082082971c489012bf139f5860dc";
+          sha256 = "1scdqy8g8dx3qzii70p3m2gddqqy7dkv63p8nfkp7vw1y5m19426";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-pseudo-daemon";
+          sha256 = "1sch7bb8hl96fji2ayw2ah5cjgsga08wj44vddjxskyway8ykf0z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/osx-pseudo-daemon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-trash = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "osx-trash";
+        ename = "osx-trash";
+        version = "20160520.600";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "osx-trash.el";
+          rev = "0f1dc052d0a750b8c75f14530a4897f5d4324b4e";
+          sha256 = "0f4md49175iyrgzv4pijf7qbxyddcm2yscrrlh91pg410la7fysk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-trash";
+          sha256 = "1f6pi53mhp2pvrfjm8544lqqj36gzpzxq245lzvv91lvqkxr9ysj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/osx-trash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    otama = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "otama";
+        ename = "otama";
+        version = "20160404.332";
+        src = fetchFromGitHub {
+          owner = "yoshinari-nomura";
+          repo = "otama";
+          rev = "b69e0740846ace7885b0c0717f7abe8d0419eefd";
+          sha256 = "0javkbzsc4bbx121awbn35fb6lyvhskkkh9jb0byd51gpvg74g1r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/otama";
+          sha256 = "04ffyscldb2sn2n26ixrnc07ybvl7iclv2hi1kmhr5hdgxwpyjq9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/otama";
+          license = lib.licenses.free;
+        };
+      }) {};
+    other-emacs-eval = callPackage ({ async
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "other-emacs-eval";
+        ename = "other-emacs-eval";
+        version = "20180408.648";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "other-emacs-eval";
+          rev = "8ace5acafef65daabf0c6619eff60733d7f5d792";
+          sha256 = "1pry1xw2p01b18ks5n0xs895qqqci7v2nrwjiil2vr3m1ys92ymc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/other-emacs-eval";
+          sha256 = "07sr5bb6x9w450cvfg32darg6jlwg11n7c1qhhk0ijcrnlsm09n7";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/other-emacs-eval";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outline-magic = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "outline-magic";
+        ename = "outline-magic";
+        version = "20180619.1119";
+        src = fetchFromGitHub {
+          owner = "tj64";
+          repo = "outline-magic";
+          rev = "2a5f07417b696cf7541d435c43bafcc64817636b";
+          sha256 = "1iyslhk2zvhn4ip27apkjzkqw56lfakp2jzwz106jm45f3kllpc8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outline-magic";
+          sha256 = "085yayzph3y7fh6pd5sdjdkhdcvwfzcyqd6y3xlbz7wni5ac6b5f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/outline-magic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outline-minor-faces = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "outline-minor-faces";
+        ename = "outline-minor-faces";
+        version = "20181111.106";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "outline-minor-faces";
+          rev = "3dc548f145f26a1405910d69468728846d575f79";
+          sha256 = "142ry05n41jx13lrxc10dzy5hqllpqggphi6p2g42a9n4ijm2yqg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outline-minor-faces";
+          sha256 = "1728imdqmmfqw5f67w8xsailn2b09y4xgdr769pd6kx8z6lsi8zb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/outline-minor-faces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outline-toc = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "outline-toc";
+        ename = "outline-toc";
+        version = "20170730.430";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "outline-toc.el";
+          rev = "31f04bea19cfcfb01a94d1fd2b72391cb02b7463";
+          sha256 = "1pqz2ynw51n3f7d9hknz80d42017lccsggkg13zqmn51wkjpc48j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outline-toc";
+          sha256 = "13hy9ahla68qcbfbm7b5d0yy774qfc3byb6pn9c66k2wg4xh6pxb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/outline-toc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outlined-elisp-mode = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "outlined-elisp-mode";
+        ename = "outlined-elisp-mode";
+        version = "20131108.327";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "outlined-elisp-mode";
+          rev = "c16cb02b540448919ad148f2be6a41523ee5489c";
+          sha256 = "0d9hfr4kb6rkhwacdn70bkfchgam26gj92zfyaqw77a2sgwcmwwv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outlined-elisp-mode";
+          sha256 = "165sivmv5h4nvh08ampq95x6b0bkzxgrdjbxjxlq6rv00vaidn7v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/outlined-elisp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outlook = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "outlook";
+        ename = "outlook";
+        version = "20180428.730";
+        src = fetchFromGitHub {
+          owner = "asavonic";
+          repo = "outlook.el";
+          rev = "b6a7a06b996d84647e8024412876e9e76ca884e4";
+          sha256 = "0qyrpki1m4j0m32iadg58rjfy589lpig0547bhxzh51x4smkazhx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outlook";
+          sha256 = "0yq9zl7dr8kkm4rps5np4dwvjfhzsxq9wd1af7zwcmms4l3qry6k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/outlook";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outorg = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "outorg";
+        ename = "outorg";
+        version = "20170414.1215";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "outorg";
+          rev = "78b0695121fb974bc4e971eb4ef7f8afd6d89d64";
+          sha256 = "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outorg";
+          sha256 = "10jh64d1nalfig69nnsib46915jinv37lvmxa0aj91zymq2szdm9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/outorg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outrespace = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "outrespace";
+        ename = "outrespace";
+        version = "20180711.732";
+        src = fetchFromGitHub {
+          owner = "articuluxe";
+          repo = "outrespace";
+          rev = "7dafed7e1cabf4a0bb55e5c6465e83796e3fdabe";
+          sha256 = "0xdaaxvamjjghidxir1hpagrglxws646avl4d196g4z9y479wdyg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outrespace";
+          sha256 = "13xasp9vjb3n0smdhrh9pq1yhhrg3p6z14fmlvf6xqip52rx89hl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/outrespace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outshine = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , outorg }:
+      melpaBuild {
+        pname = "outshine";
+        ename = "outshine";
+        version = "20181024.714";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "outshine";
+          rev = "345d85ab5467ec6015fc58fe268936da93be0a5c";
+          sha256 = "1r7mjgwbljz16sa73gr7ig7zh6kkc8abqgma704njrbhlwygh9b0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outshine";
+          sha256 = "1qqmvs17hq5s047nqplg4sa09xg5ck6zwqyg91xmbh71bx80v28v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib outorg ];
+        meta = {
+          homepage = "https://melpa.org/#/outshine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ov = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ov";
+        ename = "ov";
+        version = "20150311.2228";
+        src = fetchFromGitHub {
+          owner = "ShingoFukuyama";
+          repo = "ov.el";
+          rev = "4e1c254d74bc1773c92f1613c3865cdcb4bc7095";
+          sha256 = "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ov";
+          sha256 = "0d71mpv74cfxcnwixbrl90nr22cw4kv5sdgpny5wycvh6cgmd6qb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ov";
+          license = lib.licenses.free;
+        };
+      }) {};
+    overcast-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "overcast-theme";
+        ename = "overcast-theme";
+        version = "20180315.1243";
+        src = fetchFromGitHub {
+          owner = "myTerminal";
+          repo = "overcast-theme";
+          rev = "faafe7c19106cb4db29ba716d117fbb6ebdda3f4";
+          sha256 = "1kjvx2wjb9ksdr7w0c4xnvqa4sbplj6rwlh85lbmcg8lwkb1s2sy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/overcast-theme";
+          sha256 = "1v8hdnvc4pfmadkvdm6b8z0cy20pminvhjdlr13q5m9immr88a4r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/overcast-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    overseer = callPackage ({ dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , pkg-info }:
+      melpaBuild {
+        pname = "overseer";
+        ename = "overseer";
+        version = "20180225.2219";
+        src = fetchFromGitHub {
+          owner = "tonini";
+          repo = "overseer.el";
+          rev = "02d49f582e80e36b4334c9187801c5ecfb027789";
+          sha256 = "0q4ai7ividy8xv09s342y49s97ismhfdfsjk70zif60fp0ajfzfn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/overseer";
+          sha256 = "0zbh0j21h6wsqnqvnzai6y6rpccdciksb7g64qw7fx0cpg5x2ms8";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/overseer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    owdriver = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , log4e
+                            , melpaBuild
+                            , smartrep
+                            , yaxception }:
+      melpaBuild {
+        pname = "owdriver";
+        ename = "owdriver";
+        version = "20170401.612";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "owdriver";
+          rev = "d934f182bafe29aa16c173440eff3fef08b0ec10";
+          sha256 = "0yy5sah7vcjxcik3sp2cxp9gvcryyzw799h8zf4wbvjxv74kd17c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/owdriver";
+          sha256 = "0j8z7ynan0zj581x50gsi9lljkbi6bwmzpfyha3i6q8ch5qkdxfd";
+          name = "recipe";
+        };
+        packageRequires = [ log4e smartrep yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/owdriver";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-asciidoc = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , org }:
+      melpaBuild {
+        pname = "ox-asciidoc";
+        ename = "ox-asciidoc";
+        version = "20171111.354";
+        src = fetchFromGitHub {
+          owner = "yashi";
+          repo = "org-asciidoc";
+          rev = "e75d9565dd07dc59d11fa92d392ab47cecb3c902";
+          sha256 = "1irv8k8l99kk5qqgapj1bfg9ppnd4fkkagm96mgxf0bxax0pblhn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-asciidoc";
+          sha256 = "07b549dqyh1gk226d7zbls1mw6q4mas7kbfwkansmyykax0r2zyr";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-asciidoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-bibtex-chinese = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "ox-bibtex-chinese";
+        ename = "ox-bibtex-chinese";
+        version = "20170722.2009";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "ox-bibtex-chinese";
+          rev = "2ad2364399229144110db7ef6365ad0461d6a38c";
+          sha256 = "06lp56na1fv87296hhaxgb6gfnzln39p4v245gfxhk0k27589vxj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-bibtex-chinese";
+          sha256 = "0f3xigrkhc86vv23f76fdd4rjsspsd2ck5c65biq2ds247f4gm61";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-bibtex-chinese";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-clip = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , htmlize
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "ox-clip";
+        ename = "ox-clip";
+        version = "20180305.1940";
+        src = fetchFromGitHub {
+          owner = "jkitchin";
+          repo = "ox-clip";
+          rev = "594c90953a91948505bb394350adf110e041f19a";
+          sha256 = "1alm6hh7qg8sv50cm5p03icx47za2g7b2nvbwzx6kxkrgmgqfq6c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-clip";
+          sha256 = "1sm0ivd8rypnl0z901anjsnbfjwhxqcaagqav82ybdb1z6x1qicv";
+          name = "recipe";
+        };
+        packageRequires = [ htmlize org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-clip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-epub = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "ox-epub";
+        ename = "ox-epub";
+        version = "20181101.1154";
+        src = fetchFromGitHub {
+          owner = "ofosos";
+          repo = "ox-epub";
+          rev = "a66eeb00daa01ad403ac1a1db953ddbf9054be07";
+          sha256 = "0ws2dpybrafck07q12w0avxglwr7crf4xcqxqnp48sj993v2qggx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-epub";
+          sha256 = "15q6vsmgv76c0qfdxa3prqvgmr6n7k4rd4bpi05574ibi23y0ynh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-epub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-gfm = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ox-gfm";
+        ename = "ox-gfm";
+        version = "20170628.1402";
+        src = fetchFromGitHub {
+          owner = "larstvei";
+          repo = "ox-gfm";
+          rev = "99f93011b069e02b37c9660b8fcb45dab086a07f";
+          sha256 = "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-gfm";
+          sha256 = "065ngmzfd3g2h8n903hc4d363hz4z5rrdgizh2xpz03kf3plca6q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ox-gfm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-html5slide = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , org }:
+      melpaBuild {
+        pname = "ox-html5slide";
+        ename = "ox-html5slide";
+        version = "20131227.2206";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "org-html5slide";
+          rev = "4703dfbd9d79161509def673d2c1e118d722a58f";
+          sha256 = "19h3w3fcas60jv02v7hxjmh05804sb7bif70jssq3qwisj0j09xm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-html5slide";
+          sha256 = "0nqk6chg0ky98ap2higa74786prj7dbwx2a3l67m0llmdajw76qn";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-html5slide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-hugo = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "ox-hugo";
+        ename = "ox-hugo";
+        version = "20181106.1550";
+        src = fetchFromGitHub {
+          owner = "kaushalmodi";
+          repo = "ox-hugo";
+          rev = "7fb284ec4b7f47ff1286598220650c5b24b56b45";
+          sha256 = "159anw8vdkm4s72jih48y5nrbq9rz6ii3dja12d444hg2idiimza";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-hugo";
+          sha256 = "1niarxj2y4a14lrv2nqcc36msw7k61h8fbjpcdrfbaw3n0kchd40";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-hugo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-impress-js = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , org }:
+      melpaBuild {
+        pname = "ox-impress-js";
+        ename = "ox-impress-js";
+        version = "20150412.1016";
+        src = fetchFromGitHub {
+          owner = "kinjo";
+          repo = "org-impress-js.el";
+          rev = "91c6d2af6af308ade352a03355c4fb551b238c6b";
+          sha256 = "1kf2si2lyy0xc971bx5zd2j9mnz1smc9s8l0dwc6iksh2v9q8cy9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-impress-js";
+          sha256 = "0p0cc51lmxgl0xv951ybdg5n8gbzv8qf0chfgigijizzjypxc21l";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-impress-js";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-ioslide = callPackage ({ cl-lib ? null
+                              , emacs
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , makey
+                              , melpaBuild
+                              , org }:
+      melpaBuild {
+        pname = "ox-ioslide";
+        ename = "ox-ioslide";
+        version = "20161015.638";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "org-ioslide";
+          rev = "6555680be5364c8ddd2bf446865cb1a82adb6b9e";
+          sha256 = "05d1bykgj454g0vq2k2sd36pd9hmcwr9a8033dagkqc625h7wj4h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-ioslide";
+          sha256 = "0z0qnvpw64wxbgz8203rphswlh9hd2i11pz2mlay8l3bzz4gx4vc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f makey org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-ioslide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-jekyll-md = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ox-jekyll-md";
+        ename = "ox-jekyll-md";
+        version = "20180831.1032";
+        src = fetchFromGitHub {
+          owner = "gonsie";
+          repo = "ox-jekyll-md";
+          rev = "f997f41d89afd2360973ef8118b5221f17bba757";
+          sha256 = "1padg3nq2fn7f5x96z19iqmknk5z3aa8yyipz0v3bdv0a3iqngli";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-jekyll-md";
+          sha256 = "0lfnrikrismcd2zyfb0sf3pwwx12cyki7kzs2mjlswq3sap8w544";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ox-jekyll-md";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-jira = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "ox-jira";
+        ename = "ox-jira";
+        version = "20171001.216";
+        src = fetchFromGitHub {
+          owner = "stig";
+          repo = "ox-jira.el";
+          rev = "23565783ca66e2aafc2aa03796e09dde4ae11c1a";
+          sha256 = "169v87xmdr41f0wyjpq4wzmr1kfb8gf6x67c24v9dbb7bldynl2g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-jira";
+          sha256 = "088ks14d7slgs2qsqp1kkxvqzzhdkwphdvpg27ix686dz1krxxib";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-jira";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-mdx-deck = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , ox-hugo }:
+      melpaBuild {
+        pname = "ox-mdx-deck";
+        ename = "ox-mdx-deck";
+        version = "20181115.1047";
+        src = fetchFromGitHub {
+          owner = "WolfeCub";
+          repo = "ox-mdx-deck";
+          rev = "f3dbc35870b69a5d8971b1647da8c5468f520c5d";
+          sha256 = "0v82d3ylmrh6pbha4kxs3lif40jfa3sd0adqarmz7yyqccv9ixkk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-mdx-deck";
+          sha256 = "1k41sbqcfrj485ps11f6xdb1kxp7kh22k0zhn9vrjb5mxwdilfyl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ox-hugo ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-mdx-deck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-mediawiki = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "ox-mediawiki";
+        ename = "ox-mediawiki";
+        version = "20180105.1354";
+        src = fetchFromGitHub {
+          owner = "tomalexander";
+          repo = "orgmode-mediawiki";
+          rev = "a9327150293e370e500ba55bddfe5fc435c6bf9b";
+          sha256 = "0dsq86hli24imdkgsf45asx23kriw9di3d0cf5z8axfpkcbkn770";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-mediawiki";
+          sha256 = "0lijj2n4saw0xd3jaghbvx9v6a4ldl5gd8wy7s7hfcm30wb75cdb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib s ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-mediawiki";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-minutes = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ox-minutes";
+        ename = "ox-minutes";
+        version = "20180202.934";
+        src = fetchFromGitHub {
+          owner = "kaushalmodi";
+          repo = "ox-minutes";
+          rev = "27c29f3fdb9181322ae56f8bace8d95e621230e5";
+          sha256 = "10rw12gmg3d6fvkqijmjnk5bdpigvm8fy34435mwg7raw0gmlq75";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-minutes";
+          sha256 = "13rwcp0k9h7l5g8xw2s2r1xhsmkibhfqyq6hlicvddv232g724sj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-minutes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-nikola = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org
+                             , ox-rst }:
+      melpaBuild {
+        pname = "ox-nikola";
+        ename = "ox-nikola";
+        version = "20151114.316";
+        src = fetchFromGitHub {
+          owner = "msnoigrs";
+          repo = "ox-nikola";
+          rev = "5bcbc1a38f6619f62294194f13ca0cd4ca14dd48";
+          sha256 = "0cc14p6c3d4djfmrkac0abb2jq128vlmayv2a8cyvnyjffyvjbk7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-nikola";
+          sha256 = "13k5wggz8bhnfgpsc09jnisk7xdb226d6imp7v6vmd1ax9m2xb0w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ox-rst ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-nikola";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-pandoc = callPackage ({ cl-lib ? null
+                             , dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ht
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "ox-pandoc";
+        ename = "ox-pandoc";
+        version = "20180510.638";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "ox-pandoc";
+          rev = "aa37dc7e94213d4ebedb85c384c1ba35007da18e";
+          sha256 = "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-pandoc";
+          sha256 = "0wy6yvwd4vyq6xalkrshnfjjxlh1p24y52z49894nz5fl63b74xc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ht org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-pandoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-pukiwiki = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , org }:
+      melpaBuild {
+        pname = "ox-pukiwiki";
+        ename = "ox-pukiwiki";
+        version = "20150124.916";
+        src = fetchFromGitHub {
+          owner = "yashi";
+          repo = "org-pukiwiki";
+          rev = "b53920abf698fa6682623d671108393e92c68bd7";
+          sha256 = "031xl8wry4frbc3d5d0nq7bca6y4plij9v8v8p8rg5ms3sh2fhjq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-pukiwiki";
+          sha256 = "10sfbri5hv5hyx9jc1bzlk4qmzfmpfgfy8wkjkpv7lv2x0axqd8a";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-pukiwiki";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-qmd = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , org }:
+      melpaBuild {
+        pname = "ox-qmd";
+        ename = "ox-qmd";
+        version = "20170402.957";
+        src = fetchFromGitHub {
+          owner = "0x60df";
+          repo = "ox-qmd";
+          rev = "3a24c7a0b3ec80e494b977e14a3dfb94c9f1d8ec";
+          sha256 = "030nay81c49ings96akzzy108a6agg91rvpmg0pf05qmjysfysmf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-qmd";
+          sha256 = "1i2kdpp6prgphc1l42nz7q6vdfsbcn2vvlf10s7dfhhr8jzcyyy7";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-qmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-reveal = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "ox-reveal";
+        ename = "ox-reveal";
+        version = "20161027.226";
+        src = fetchFromGitHub {
+          owner = "yjwen";
+          repo = "org-reveal";
+          rev = "d7ffc3fd1b095ed81e0af005ecbb0b42427d13b0";
+          sha256 = "0y8cnpm7hw8s3d09j8imdpaddqq914nfy3skjm7i10g9xacrp294";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-reveal";
+          sha256 = "092swxkkisvj2y18ynal8dn7wcfi7h4y6n0dlzqq28bfflarbwik";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-reveal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-rst = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , org }:
+      melpaBuild {
+        pname = "ox-rst";
+        ename = "ox-rst";
+        version = "20180314.1713";
+        src = fetchFromGitHub {
+          owner = "msnoigrs";
+          repo = "ox-rst";
+          rev = "a74b60883b0d844c80efb364dac1560b85f2548f";
+          sha256 = "0smgz2q7bjj2svx1gdr187m58yxq1hs878bciz9h6jcp03a9sb61";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-rst";
+          sha256 = "0447q0gvasii57rp391la9prz0w228jnzgi59s785vzswdryww0n";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-rst";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-slack = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org
+                            , ox-gfm }:
+      melpaBuild {
+        pname = "ox-slack";
+        ename = "ox-slack";
+        version = "20181119.331";
+        src = fetchFromGitHub {
+          owner = "titaniumbones";
+          repo = "ox-slack";
+          rev = "96d90914e6df1a0141657fc51f1dc5bb8f1da6bd";
+          sha256 = "1cda5c35wm7aqyj7yj80wkwb79dgzlzis1dlpysdxv30ahcf4w8p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-slack";
+          sha256 = "0ggw64lx93crfzm1sfwqhsfhaprkbyrjay88nyn43frf7c5l4a63";
+          name = "recipe";
+        };
+        packageRequires = [ org ox-gfm ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-slack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-textile = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , org }:
+      melpaBuild {
+        pname = "ox-textile";
+        ename = "ox-textile";
+        version = "20180502.247";
+        src = fetchFromGitHub {
+          owner = "yashi";
+          repo = "org-textile";
+          rev = "b179abaa6616604c6efe32cb509e62ad46e7374e";
+          sha256 = "1hwrnnrhrdp5cjn81wipzi5j8zr82kpwlvr6hna2cj2zr3r7a6m8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-textile";
+          sha256 = "01kri7vh16xhy8x5qd6s5z08xr0q964rk6xrligdb3i6x78wfvi4";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-textile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-tiddly = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "ox-tiddly";
+        ename = "ox-tiddly";
+        version = "20180626.1352";
+        src = fetchFromGitHub {
+          owner = "dfeich";
+          repo = "org8-wikiexporters";
+          rev = "21317d7e963f79e7b883962ca097eab049115799";
+          sha256 = "1s5s2h3kpsx5cn1lqzsn9h2w7zlcgh51d679lyy45f9szm26hn3y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-tiddly";
+          sha256 = "1rpbnz152af588r8kafqpg9aq3ngwjfkrsjqk6w90l5rh280yi39";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-tiddly";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-trac = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "ox-trac";
+        ename = "ox-trac";
+        version = "20171026.1123";
+        src = fetchFromGitHub {
+          owner = "JalapenoGremlin";
+          repo = "ox-trac";
+          rev = "5ac6c81bbc18db6c17e267d6399778c3fb5bf1ee";
+          sha256 = "1bg8bis4ykyq3iy6x93wksyigwg7jyzphlhfvvvqk093sp15fgd9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-trac";
+          sha256 = "0f8b3i83vzxzfa91p4ahlqz6njql18xy5nk265sjxpy9zr898rsa";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-trac";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-tufte = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "ox-tufte";
+        ename = "ox-tufte";
+        version = "20160926.907";
+        src = fetchFromGitHub {
+          owner = "dakrone";
+          repo = "ox-tufte";
+          rev = "ca1b16eb91b25bb4f05e58e9b6692e8486c8c619";
+          sha256 = "0vyb1ilkywdhjx0j8hq1h993jh6ylwshmqiaa04fq4kbk9yqvspf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-tufte";
+          sha256 = "15b7aml9nl1kh8gbc086nb155f5mzlh8dmq41zi9frn6gskzjnfk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-tufte";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-twbs = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ox-twbs";
+        ename = "ox-twbs";
+        version = "20161103.1316";
+        src = fetchFromGitHub {
+          owner = "marsmining";
+          repo = "ox-twbs";
+          rev = "2414e6b1de7deb6dd2ae79a7be633fdccb9c2f28";
+          sha256 = "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-twbs";
+          sha256 = "050rv270jlkc1v7wp47cv9cwr9pz3n840dd4jxxhfs6s47b9ln73";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ox-twbs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-twiki = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "ox-twiki";
+        ename = "ox-twiki";
+        version = "20170803.1339";
+        src = fetchFromGitHub {
+          owner = "dfeich";
+          repo = "org8-wikiexporters";
+          rev = "970bb8ed0e4c4426c37a929b1fe08f944c1cf74f";
+          sha256 = "14k9jsz7vkjqxn2xpj71qg54w0laqr99178bzsmbapkfp5yxrib5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-twiki";
+          sha256 = "1p1k0yg5fxcjgwpq2ix9ckh2kn69m7d5rnz76h14hw9p72cb54r0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-twiki";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-wk = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , org }:
+      melpaBuild {
+        pname = "ox-wk";
+        ename = "ox-wk";
+        version = "20181111.134";
+        src = fetchFromGitHub {
+          owner = "w-vi";
+          repo = "ox-wk.el";
+          rev = "9fc37e7e2f789b0ba07cb117ea1e1dcd14a2fd83";
+          sha256 = "00wsx21nmnvci2wfvxaci1kdxplavi2a4dw8ahvl7ncr3b60219f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-wk";
+          sha256 = "0rb4xkkqb65ly01lb1gl3gyz4yj9hzv4ydbdzsbvmpj0hrdw5nv3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-wk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    p4 = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "p4";
+        ename = "p4";
+        version = "20150721.1237";
+        src = fetchFromGitHub {
+          owner = "gareth-rees";
+          repo = "p4.el";
+          rev = "eff047caa75dbe4965defca9d1212454cdb755d5";
+          sha256 = "12jsnfppif4l548wymvakx0f2zlm63xs6kfrb49hicmk668cq4ra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/p4";
+          sha256 = "0215li17gn35wmvd84gnp4hkwa2jd81wz4frb1cba2b5j33rlprc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/p4";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pabbrev = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pabbrev";
+        ename = "pabbrev";
+        version = "20160320.1401";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "pabbrev";
+          rev = "56400d5d256b42ffe45c229ea9827f026b650cf5";
+          sha256 = "09bn19ydyz1hncmvyyh87gczp3lmlczpm352p0107z1gw6xmpjil";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pabbrev";
+          sha256 = "1mbfa40pbzbi00sp155zm43sj6nw221mcayc2rk3ppin9ps95hx3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pabbrev";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pacfiles-mode = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "pacfiles-mode";
+        ename = "pacfiles-mode";
+        version = "20181028.1044";
+        src = fetchFromGitHub {
+          owner = "UndeadKernel";
+          repo = "pacfiles-mode";
+          rev = "ff58f387e0f85ca20c4c9f119bf13303bf8b5a76";
+          sha256 = "1my9qhnla61wgrhf0izjx0kyjrxwyz3cfh3xp80mmnxhxrrf21kl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pacfiles-mode";
+          sha256 = "08yc3w7zvckg8s1g707hvbbkvi2k52jrk2iwlj0sk22ih3q3yaa9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pacfiles-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-build = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "package-build";
+        ename = "package-build";
+        version = "20181005.1541";
+        src = fetchFromGitHub {
+          owner = "melpa";
+          repo = "package-build";
+          rev = "0a22c3fbbf661822ec1791739953b937a12fa623";
+          sha256 = "0dpy5p34il600sc8ic5jdgb3glya9si3lrvhxab0swks8fdydjgs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-build";
+          sha256 = "0kr82j9rbvmapsph0jdxy24p0b8mcnj01sg1myywf428nf30cgbh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/package-build";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-filter = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "package-filter";
+        ename = "package-filter";
+        version = "20161121.2319";
+        src = fetchFromGitHub {
+          owner = "milkypostman";
+          repo = "package-filter";
+          rev = "c8e2531227c02c4c5e9d593f2cdb6a4ab4a6849b";
+          sha256 = "001h92jchz6x6pm8bj90law0yzc5xd84f703z7fcwan4k0g1iwl7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-filter";
+          sha256 = "0am73zch2fy1hfjwzk8kg0j3lgbcz3hzxjrdf0j0a9w0myp0mmjm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/package-filter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-lint = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "package-lint";
+        ename = "package-lint";
+        version = "20181016.2323";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "package-lint";
+          rev = "ef9112273d9e3e410c2efed6502b0ab2716c5b11";
+          sha256 = "07b4i0mmkn3pk0jkcviqyx8ypilqkzq27pybgj1z2nwr8wm1js1h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-lint";
+          sha256 = "05akg9cgcqbgja966iv2j878y14d5wvky6m9clkfbw5wyg66xpr0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/package-lint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-lint-flymake = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , package-lint }:
+      melpaBuild {
+        pname = "package-lint-flymake";
+        ename = "package-lint-flymake";
+        version = "20181117.56";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "package-lint";
+          rev = "83f34f747a13633c92210e6110e3c5377397761c";
+          sha256 = "0mljhvc03a8fj3zn5rz8i3mfcb8vd4xfaxmb7m7h9gr8ap3lwz7g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-lint-flymake";
+          sha256 = "076v3xvbxym7dwwl95j8kynj9kj2xw3gzq6qv6qkm0xls7df4yjz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs package-lint ];
+        meta = {
+          homepage = "https://melpa.org/#/package-lint-flymake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-plus = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "package-plus";
+        ename = "package+";
+        version = "20170815.1956";
+        src = fetchFromGitHub {
+          owner = "zenspider";
+          repo = "package";
+          rev = "09f37a21256223a770d3b6a6174cb7da427720c3";
+          sha256 = "149ba7nq380azi4rypvk0xqdv3bin2sqvab9q1kcwg3kidhspx8a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package+";
+          sha256 = "1mbsxr4llz8ny7n7w3lykld9yvbaywlfqnvr9l0aiv9rvmdv03bn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/package+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-safe-delete = callPackage ({ emacs
+                                       , epl
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "package-safe-delete";
+        ename = "package-safe-delete";
+        version = "20150116.807";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "package-safe-delete";
+          rev = "138171e4fc03c0ef05a8260cbb5cd2e114c1c194";
+          sha256 = "1pdv6d6bm5jmpgjqf9ycvzasxz1205zdi0zjrmkr33c03azwz7rd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-safe-delete";
+          sha256 = "12ss5yjhnyxsif4vlbgxamn5jfa0wxkkphffxnv6drhvmpq226jw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs epl ];
+        meta = {
+          homepage = "https://melpa.org/#/package-safe-delete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-utils = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , restart-emacs }:
+      melpaBuild {
+        pname = "package-utils";
+        ename = "package-utils";
+        version = "20180514.715";
+        src = fetchFromGitHub {
+          owner = "Silex";
+          repo = "package-utils";
+          rev = "5621b95c56b55499f0463fd8b29501da25d861bd";
+          sha256 = "1mhsf0l0253d9b7n3c68mw5kwnsk7wf217y7m2fiybh51bdgjfnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-utils";
+          sha256 = "02hgh7wg68ysfhw5hckrpshzv4vm1vnm395d34x6vpgl4ccx7v9r";
+          name = "recipe";
+        };
+        packageRequires = [ restart-emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/package-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    packed = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "packed";
+        ename = "packed";
+        version = "20180318.1029";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "packed";
+          rev = "788ea94bff319d6a776954c32cff1de8b400f051";
+          sha256 = "1sga68hf6zf5j8sb56zqy35p5gn6x7c12m6h8q1gzazfy7xz57p0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/packed";
+          sha256 = "103z6fas2fkvlhvwbv1rl6jcij5pfsv5vlqqsb4dkq1b0s7k11jd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/packed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pacmacs = callPackage ({ cl-lib ? null
+                           , dash
+                           , dash-functional
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pacmacs";
+        ename = "pacmacs";
+        version = "20160131.32";
+        src = fetchFromGitHub {
+          owner = "codingteam";
+          repo = "pacmacs.el";
+          rev = "d813e9c62c2540fe619234824fc60e128c786442";
+          sha256 = "0zx72qbqy2n1r6mjylw67zb6nnchp2b49vsdyl0k5bdaq2xyqv6i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pacmacs";
+          sha256 = "0w0r6z365jrglpbifb94w6c22wqi9x93qgkss9pn820hrndqbqxy";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash dash-functional emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/pacmacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pact-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "pact-mode";
+        ename = "pact-mode";
+        version = "20180905.947";
+        src = fetchFromGitHub {
+          owner = "kadena-io";
+          repo = "pact-mode";
+          rev = "5f401b282e2f8f897fd67e882312875f967be4d6";
+          sha256 = "1nqr7jw2anyicr9pxypsmqqwzjn9qnn770gsmdz6r2xam55j81vg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pact-mode";
+          sha256 = "1awmczhz4cl2vxrn0h1wqkrhy1n9p4j3ayksvgifr4cfhqlsxk6v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pact-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paganini-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "paganini-theme";
+        ename = "paganini-theme";
+        version = "20180815.1221";
+        src = fetchFromGitHub {
+          owner = "onurtemizkan";
+          repo = "paganini";
+          rev = "255c5a2a8abee9c5935465ec42b9c3604c178c3c";
+          sha256 = "0qhmj8dyy722ds8cmwghhxknwwis1w64wix2hdmzs21c5pa5hgkw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paganini-theme";
+          sha256 = "1kypkf52hjlfj75pcmjf2a60m6iwj0y1dspjwqynzz3l48i6ippm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/paganini-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    page-break-lines = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "page-break-lines";
+        ename = "page-break-lines";
+        version = "20171210.31";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "page-break-lines";
+          rev = "fd3b7e38ad8747cd009ead7ef1bb150849ccc693";
+          sha256 = "0ik5v2kd0l5a6sznld5ncdb4lsyqbbw7axs0qwxc968b540k9zq5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/page-break-lines";
+          sha256 = "0i5kx191wnq9763jyqxbyh33hvdaqbd98a1rhgqd97zhvg0hslz1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/page-break-lines";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pager = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "pager";
+        ename = "pager";
+        version = "20151201.1720";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "pager";
+          rev = "5c791ed23f1136e04040d6f4bc9b4ca5b6dc919f";
+          sha256 = "198zlh7zrql1185b9qjim44a09kbbgs9zyahak9nhv1gxqn7mrdf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pager";
+          sha256 = "0s5zwimkbsivbwlyd7g8dpnjyzqcfc5plg53ij4sljiipgjh5brl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pager-default-keybindings = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild
+                                             , pager }:
+      melpaBuild {
+        pname = "pager-default-keybindings";
+        ename = "pager-default-keybindings";
+        version = "20130719.1357";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "pager-default-keybindings";
+          rev = "dbbd49c2ac5906d1dabf9e9c832bfebc1ab405b3";
+          sha256 = "11msqs8v9wn8sj45dw1fl0ldi3sw33v0xclynbxgmawyabfq3bqm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pager-default-keybindings";
+          sha256 = "0vqb3s1fxkl1fxxspq89344s55sfcplz26z0pbh347l1681h3pci";
+          name = "recipe";
+        };
+        packageRequires = [ pager ];
+        meta = {
+          homepage = "https://melpa.org/#/pager-default-keybindings";
+          license = lib.licenses.free;
+        };
+      }) {};
+    palimpsest = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "palimpsest";
+        ename = "palimpsest";
+        version = "20170119.1232";
+        src = fetchFromGitHub {
+          owner = "danielsz";
+          repo = "Palimpsest";
+          rev = "168839453e25f8ff7f1b28170909e5428c8fe5f8";
+          sha256 = "0j6cn0bc4vxvviawmkgkzdrmf3j5rbl8f7dkzvv6k1hislzhzpsb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/palimpsest";
+          sha256 = "18kklfdlcg982pdrslh0xqa42h28f91bdm7q2zn890d6dcivp6bk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/palimpsest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pallet = callPackage ({ cask
+                          , dash
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "pallet";
+        ename = "pallet";
+        version = "20150512.2";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "pallet";
+          rev = "0e1ae11e1ebfe644cbf832df62ac2dbf6ecd0501";
+          sha256 = "03mlg6dmpjw8fq2s3c4gpqj20kjhzldz3m51bf6s0mxq9bclx2xw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pallet";
+          sha256 = "0q50cdwnn2w1n5h4bappncjjyi5yaixxannwgy23fngdrz1mxwd7";
+          name = "recipe";
+        };
+        packageRequires = [ cask dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/pallet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pamparam = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , hydra
+                            , lib
+                            , lispy
+                            , melpaBuild
+                            , worf }:
+      melpaBuild {
+        pname = "pamparam";
+        ename = "pamparam";
+        version = "20180415.48";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "pamparam";
+          rev = "8fa25d06fb2ae6d992e738a10d8b2150e109d9bf";
+          sha256 = "0p50cfmwgwahb1czqvgx2kvnd3k46zl0pybvxlyf45y4c4kr8wjp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pamparam";
+          sha256 = "0xwz1il9ldkfprin3rva407m4wm7c48blwfn4mgaxmqafy4p0g9f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hydra lispy worf ];
+        meta = {
+          homepage = "https://melpa.org/#/pamparam";
+          license = lib.licenses.free;
+        };
+      }) {};
+    panda-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "panda-theme";
+        ename = "panda-theme";
+        version = "20180807.443";
+        src = fetchFromGitHub {
+          owner = "jamiecollinson";
+          repo = "emacs-panda-theme";
+          rev = "53b4cbb6bfdd531a8366bf1d01eede420e1f93c9";
+          sha256 = "1l7vc6m6iklcdm3hw8h54q71wfk055mmmmzyp0hbvrnlicg5yvr9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/panda-theme";
+          sha256 = "1q3zp331hz8l54p8ym9jrs4f36aj15r8aka6bqqnalnk237xqxl7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/panda-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pandoc = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pandoc";
+        ename = "pandoc";
+        version = "20161128.357";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "pandoc.el";
+          rev = "198d262d09e30448f1672338b0b5a81cf75e1eaa";
+          sha256 = "0njc6xlwa8hihyqrk0hs12sb6rs7jma2wpjfr8xsj9p8jld4y359";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pandoc";
+          sha256 = "0x81anxam7agr2v2zqgc331zs5s5zxcw54kzpanndda23n51h5cc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pandoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pandoc-mode = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , hydra
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "pandoc-mode";
+        ename = "pandoc-mode";
+        version = "20180917.21";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "pandoc-mode";
+          rev = "d594ce399fc75eb553a6d8572713b827f744d95b";
+          sha256 = "1n3rbjvaqf6gzqgqsfcn989cwhi2kva4dr9xy0vdhqxikwm5gkaq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pandoc-mode";
+          sha256 = "0qvc6cf87h1jqf590kd68jfg25snxaxayfds634wj4z6gp70l781";
+          name = "recipe";
+        };
+        packageRequires = [ dash hydra ];
+        meta = {
+          homepage = "https://melpa.org/#/pandoc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pangu-spacing = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "pangu-spacing";
+        ename = "pangu-spacing";
+        version = "20170317.157";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "pangu-spacing";
+          rev = "a4463dbb74abdeddb6c1c132a1f8fcf67ed87498";
+          sha256 = "143ywxgaf5y52ynd4wcqp40c5pgy61ng431y77l46iix10vasslq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pangu-spacing";
+          sha256 = "082qh26vlk7kifz1800lyai17yvngwjygrfrsh1dsd8dxhk6l9j8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pangu-spacing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paper-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "paper-theme";
+        ename = "paper-theme";
+        version = "20180429.1515";
+        src = fetchFromGitHub {
+          owner = "cadadr";
+          repo = "elisp";
+          rev = "ffe03506694c94de0444995f973a925deccc400a";
+          sha256 = "02wcvka96zdlq3myfar7dqywfil2b77bc6ydmgcphwn3as3kl08r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paper-theme";
+          sha256 = "1ph6c6g907cnxzl74byc754119qia8rs8y7wvaj8i6q3fz2658zr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/paper-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paperless = callPackage ({ cl-lib ? null
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "paperless";
+        ename = "paperless";
+        version = "20180224.445";
+        src = fetchFromGitHub {
+          owner = "atgreen";
+          repo = "paperless";
+          rev = "04d98b13f591206429a9192c1804b7a2fd6287cb";
+          sha256 = "1vk20vdcfjng3p3srf140k85lm8pqp41mfnwnahxm32bi0dx6hl3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paperless";
+          sha256 = "182arnx2fz0dww6bvg6m70a1picqd3czmzwv92x0rb4ghwrnq2dq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/paperless";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paradox = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , hydra
+                           , let-alist
+                           , lib
+                           , melpaBuild
+                           , seq
+                           , spinner }:
+      melpaBuild {
+        pname = "paradox";
+        ename = "paradox";
+        version = "20181027.1534";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "paradox";
+          rev = "798bdabdca6575d677631b1c482e975c9372d536";
+          sha256 = "15xxfy947sgm8lcg1pghi8i0n0galzfsvvib8bfmgi4zs7dkvh0g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paradox";
+          sha256 = "1xq14nfvprsq18464qr4mhphq7cl1f570lji5n8z6j9vpfm9a4p2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hydra let-alist seq spinner ];
+        meta = {
+          homepage = "https://melpa.org/#/paradox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paredit = callPackage ({ fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "paredit";
+        ename = "paredit";
+        version = "20171126.1805";
+        src = fetchgit {
+          url = "https://mumble.net/~campbell/git/paredit.git";
+          rev = "acbe10fdd85d2e91831adf70b6a828bc7e900da0";
+          sha256 = "1c7ag0cvd6rl5fsj3dpfcjpyb8xjd26d864z98a74cirn8pc8f7l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paredit";
+          sha256 = "01qh8kfb5hyfi0jfl1kq3inkyzr0rf3wncmzgxlkfdc8zlq4v653";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/paredit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paredit-everywhere = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , paredit }:
+      melpaBuild {
+        pname = "paredit-everywhere";
+        ename = "paredit-everywhere";
+        version = "20180506.149";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "paredit-everywhere";
+          rev = "653d7a58fb370d5f7df367464d8d05e23a70b29d";
+          sha256 = "0q6a3cvanjh3j0kdpqa812yql2axgga45g6nljvxijm8i9ba2hqf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paredit-everywhere";
+          sha256 = "0gbkwk8mrbjr2l8pz3q4y6j8q4m12zmzl31c88ngs1k5d86wav36";
+          name = "recipe";
+        };
+        packageRequires = [ paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/paredit-everywhere";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paredit-menu = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , paredit }:
+      melpaBuild {
+        pname = "paredit-menu";
+        ename = "paredit-menu";
+        version = "20160128.933";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "paredit-menu";
+          rev = "cc0ae85bd819f9ebfa4f2a419ab3b2d70e39c9c8";
+          sha256 = "15xkanrwxh3qqay3vkfqvhzs88g7nnfv9bqk509qflyhqnvc9sxr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paredit-menu";
+          sha256 = "05jp4cc548x5f07k096dgizhivdpaajxq38hin831sm0p9cibm4p";
+          name = "recipe";
+        };
+        packageRequires = [ paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/paredit-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paren-completer = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "paren-completer";
+        ename = "paren-completer";
+        version = "20160501.352";
+        src = fetchFromGitHub {
+          owner = "MatthewBregg";
+          repo = "paren-completer";
+          rev = "74183a8e13fa1266271bdcbcb4bfb29a4f915f0a";
+          sha256 = "1il0gbyjnlxhk04z3lgxmvlmlhgc94rmxdf8nl5sk3gblqmr8v3b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paren-completer";
+          sha256 = "1k71nmsf155b4pvzcsymsc1bn42h9apypapkvc1kxyr6zm29zcr4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/paren-completer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paren-face = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "paren-face";
+        ename = "paren-face";
+        version = "20180318.1325";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "paren-face";
+          rev = "42b2141b5427bc78d640229821b2b8053e6743d2";
+          sha256 = "1f1srk4100rsc7i6257q460g4ykmqx4fwrpgb57dlp83d3342c6h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paren-face";
+          sha256 = "0dmzk66m3rd8x0rb925pyrfpc2qsvayks4kmhpb2ccdrx68pg8gf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/paren-face";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parent-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "parent-mode";
+        ename = "parent-mode";
+        version = "20150824.1600";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "parent-mode";
+          rev = "db692cf08deff2f0e973e6e86e26662b44813d1b";
+          sha256 = "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parent-mode";
+          sha256 = "1ndn6m6aasmk9yrml9xqj8141100nw7qi1bhnlsss3v8b6njwwig";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/parent-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parinfer = callPackage ({ cl-lib ? null
+                            , dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "parinfer";
+        ename = "parinfer";
+        version = "20180904.144";
+        src = fetchFromGitHub {
+          owner = "DogLooksGood";
+          repo = "parinfer-mode";
+          rev = "a7c041454e05ec2b88333a73e72debaa671ed596";
+          sha256 = "14ld7r2867aqa1rzk75bzf6qivqd1va4ilawggnxbbx5j2d82r1d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parinfer";
+          sha256 = "05w4w7j6xyj19dm63073amd4n7fw4zm3qnn4x02fk2011iw8fq7i";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/parinfer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parrot = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "parrot";
+        ename = "parrot";
+        version = "20181026.912";
+        src = fetchFromGitHub {
+          owner = "dp12";
+          repo = "parrot";
+          rev = "e9fe686408214884b20c65284a6a595e1c755794";
+          sha256 = "079k4j0lcaj0lff1llp29bj5ah2b59byw9lw3jjw9wkl9px87r0m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parrot";
+          sha256 = "0m67b80vc3qivcxs4w6fpzdg6h9d8s75251rlhnbc0xp7271zgnk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/parrot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parse-csv = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "parse-csv";
+        ename = "parse-csv";
+        version = "20160512.1023";
+        src = fetchFromGitHub {
+          owner = "mrc";
+          repo = "el-csv";
+          rev = "96bef1ffbc89ea12d13311c9fa239c5c3e864890";
+          sha256 = "06xg6f74697zmn042wg259qlik2l21k4al08a06xz4gv9a83nsx6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parse-csv";
+          sha256 = "0khpfxbarw0plx8kka357d8wl1vvdih5797xlld9adc0g3cng0zz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/parse-csv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parsebib = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "parsebib";
+        ename = "parsebib";
+        version = "20181031.321";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "parsebib";
+          rev = "27b30f5220b80637ed55f3b062ce2823adb40477";
+          sha256 = "0bjn36rchdkgsyg4cvscvdnng9qb7szgdk2cf58hn2ywk44lrvwi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parsebib";
+          sha256 = "07br2x68scsxykdk2ajc4mfqhdb7vjkcfgz3vnpy91sirxzgfjdd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/parsebib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parsec = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "parsec";
+        ename = "parsec";
+        version = "20180729.1716";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "parsec.el";
+          rev = "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26";
+          sha256 = "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parsec";
+          sha256 = "1p3364sv5r868xjj1411xqj4acxqmbzcdl900sd03585ql5wbypj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/parsec";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parseclj = callPackage ({ a
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "parseclj";
+        ename = "parseclj";
+        version = "20180602.1306";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "parseclj";
+          rev = "dc0d165b0a8633f5b11ed9175a6e421c52f4d314";
+          sha256 = "1ra1z9xp8v4qsw00dzr3w7a9qznj2laarc3s09n1wnr8xbp6nwxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parseclj";
+          sha256 = "077qigx0qyjyvm3437ffnv05rmnpqxvpxf69yyfdgnay1xclv172";
+          name = "recipe";
+        };
+        packageRequires = [ a emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/parseclj";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pasp-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "pasp-mode";
+        ename = "pasp-mode";
+        version = "20180404.1000";
+        src = fetchFromGitHub {
+          owner = "santifa";
+          repo = "pasp-mode";
+          rev = "59385eb0e8ebcfc8c11dd811fb145d4b0fa3cc92";
+          sha256 = "1ar4vws3izzmir7m870mccci620ns3c5j26dcmwaxavhgw45wcmf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pasp-mode";
+          sha256 = "0aix8siyd5yhgxq94k1sl64a9q2xlfrz6cj9y5mcqhb6qjgmrnva";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pasp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pass = callPackage ({ emacs
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , password-store
+                        , password-store-otp }:
+      melpaBuild {
+        pname = "pass";
+        ename = "pass";
+        version = "20180201.451";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "pass";
+          rev = "da08fed8dbe1bac980088d47b01f90154dbb8d8b";
+          sha256 = "1j5fdcqmqw62zvmwd80bjvkrr5vg59l5k6673hvvhjx77c8nvidv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pass";
+          sha256 = "1vvyvnqf6k7wm0p45scwi6ny86slkrcbr36lnxdlkf96cqyrqzfr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f password-store password-store-otp ];
+        meta = {
+          homepage = "https://melpa.org/#/pass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    passmm = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , password-store }:
+      melpaBuild {
+        pname = "passmm";
+        ename = "passmm";
+        version = "20180622.1626";
+        src = fetchFromGitHub {
+          owner = "pjones";
+          repo = "passmm";
+          rev = "f6130373b84a2d7180a04f6bd533148aa778d8fc";
+          sha256 = "19sszl0vjsy0wk0bysm938c3sj458faj4dhw8fqb2nhm6l5v194r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/passmm";
+          sha256 = "0p6qps9ww7s6w5x7p6ha26xj540pk4bjkr629lcicrvnfr5jsg4b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs password-store ];
+        meta = {
+          homepage = "https://melpa.org/#/passmm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    passthword = callPackage ({ cl-lib ? null
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "passthword";
+        ename = "passthword";
+        version = "20141201.123";
+        src = fetchFromGitLab {
+          owner = "pidu";
+          repo = "passthword";
+          rev = "30bace842eaaa6b48cb2251fb84868ebca0467d6";
+          sha256 = "0yckh61v9a798gpyk8x2z9990h3b61lwsw0kish571pygfyqhjkq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/passthword";
+          sha256 = "19zv80kidb6a3985n3zij507hvffcxhcvlfxd01gwx64wvfc0c3c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/passthword";
+          license = lib.licenses.free;
+        };
+      }) {};
+    password-generator = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "password-generator";
+        ename = "password-generator";
+        version = "20150222.1240";
+        src = fetchFromGitHub {
+          owner = "zargener";
+          repo = "emacs-password-genarator";
+          rev = "c8193d5e963bda0a2f8e51fd4a94dcf37c76f282";
+          sha256 = "1pw401ar114wpayibphv3n6m0gz68zjmiwz60r4lbar45bmxvihx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/password-generator";
+          sha256 = "1ziiz4x4slfadlm7fjpmwvq4a9fi3ird74b6v5na499ylqnzrl59";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/password-generator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    password-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "password-mode";
+        ename = "password-mode";
+        version = "20170411.2329";
+        src = fetchFromGitHub {
+          owner = "juergenhoetzel";
+          repo = "password-mode";
+          rev = "ed764a4ec1011526457c71b7c37fa9a659a866ab";
+          sha256 = "102zydbkr2zrr7w0j11n7pivnsdmq3c6lykf3qc84jifp7j58pgr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/password-mode";
+          sha256 = "1rxh6jg99qxagc6i2xgvswvw93h4ma7j8lhjr4ln44vbgyhzph11";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/password-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    password-store = callPackage ({ emacs
+                                  , f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s
+                                  , with-editor }:
+      melpaBuild {
+        pname = "password-store";
+        ename = "password-store";
+        version = "20181031.740";
+        src = fetchFromGitHub {
+          owner = "zx2c4";
+          repo = "password-store";
+          rev = "d29a389a40524c684595f51bb937f66958bc14ea";
+          sha256 = "17g43i0if9nggcq6005iyxxy9my8s15ihc2nzwjgqzhy3svh5xvn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/password-store";
+          sha256 = "03r8j14l12yc42b51fzvn1jh8j85nyl1rg6c80r0a7ihwkj27jv6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f s with-editor ];
+        meta = {
+          homepage = "https://melpa.org/#/password-store";
+          license = lib.licenses.free;
+        };
+      }) {};
+    password-store-otp = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , password-store
+                                      , s }:
+      melpaBuild {
+        pname = "password-store-otp";
+        ename = "password-store-otp";
+        version = "20180814.2310";
+        src = fetchFromGitHub {
+          owner = "volrath";
+          repo = "password-store-otp.el";
+          rev = "1819cd88463cd98a5be9a63273b09202dc2bba63";
+          sha256 = "1p53bpwbkjfq4b7znqy0283f7rv7hj4lpcrd9vcvwby6vz4312j7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/password-store-otp";
+          sha256 = "0m3n4gjf6hmcs2kg80h1whzbl74zsj79ihliyqfcdfc4v31m32sg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs password-store s ];
+        meta = {
+          homepage = "https://melpa.org/#/password-store-otp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    password-vault = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "password-vault";
+        ename = "password-vault";
+        version = "20160126.1020";
+        src = fetchFromGitHub {
+          owner = "PuercoPop";
+          repo = "password-vault";
+          rev = "dc56e6c2f5da66f1ab63736cecf08fb2c6c2b30f";
+          sha256 = "0921xwg3d3345hiqz4c1iyqwvfyg8rv0wggcnig7xh9qivspag4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/password-vault";
+          sha256 = "17i556xwq6yaxv9v18l1abcpbaz6hygsa4vf4b68fc98vcy7396a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/password-vault";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paste-of-code = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , request }:
+      melpaBuild {
+        pname = "paste-of-code";
+        ename = "paste-of-code";
+        version = "20170709.1655";
+        src = fetchFromGitHub {
+          owner = "spebern";
+          repo = "paste-of-code.el";
+          rev = "92d258e8ec98598d847ecab82903f9224c7c2050";
+          sha256 = "1bf2d0i726psjwnqdp0w4h0qk7fnwcbwf1a66q7p8vczavqygfan";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paste-of-code";
+          sha256 = "0wjcchpp1689arfz6s7gfq4bxn0svz6qj5azvjwwsyzais1bicdi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/paste-of-code";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pastebin = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pastebin";
+        ename = "pastebin";
+        version = "20101125.1202";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "elpastebin";
+          rev = "8e9a829298ce0f747ab80758aa26caeb2af6cb30";
+          sha256 = "1hjzpza8zmzb83sacmqcnh9a52m4x5d8xbwvcqvld1ajglv4y124";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pastebin";
+          sha256 = "0ff01vzslgdmsj1jp1m2lvnan6immd4l7vz466g1glb5nkb7qfcr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pastebin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pastehub = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pastehub";
+        ename = "pastehub";
+        version = "20140614.2320";
+        src = fetchFromGitHub {
+          owner = "kiyoka";
+          repo = "pastehub";
+          rev = "3cc5dcb87104f3b4320a6d7fa20fa7340e6b7026";
+          sha256 = "0wbb5689n9k351gf3s9mqr3bi00lpajk0h1k9gx1b2mdbb7lq7xd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pastehub";
+          sha256 = "1slvqn5ay6gkbi0ai1gy1wmc02h4g3n6srrh4fqn72y7b9nv5i0v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pastehub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pastelmac-theme = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "pastelmac-theme";
+        ename = "pastelmac-theme";
+        version = "20151030.1936";
+        src = fetchFromGitHub {
+          owner = "bmastenbrook";
+          repo = "pastelmac-theme-el";
+          rev = "bead21741e3f46f6506e8aef4469d4240a819389";
+          sha256 = "1v5mpjb8kavbqhvg4rizwg8cypgmi6ngdiy8qp9pimmkb56y42ly";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pastelmac-theme";
+          sha256 = "168zzqhp2dbfcnknwfqxk68rgmibfw71ksghvi6h2j2c1m08l23f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pastelmac-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pastery = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , request }:
+      melpaBuild {
+        pname = "pastery";
+        ename = "pastery";
+        version = "20171113.1949";
+        src = fetchFromGitHub {
+          owner = "diasbruno";
+          repo = "pastery.el";
+          rev = "4493be98b743b4d062cb4e00760125e394a55022";
+          sha256 = "0bmm18d84lrkclg4md46k1ma03w7a97s10hrvjcm9yj8xbrjqqsc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pastery";
+          sha256 = "006qawjc86spbbs2pxvhg9w94rcsxap577cndqwaiw1k0cc8vkhp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/pastery";
+          license = lib.licenses.free;
+        };
+      }) {};
+    path-headerline-mode = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "path-headerline-mode";
+        ename = "path-headerline-mode";
+        version = "20140423.632";
+        src = fetchFromGitHub {
+          owner = "7696122";
+          repo = "path-headerline-mode";
+          rev = "b5b2725c6a8b1cb592fc242b7dbbd54b4dff2e69";
+          sha256 = "1ffnkw8djs8kvfjd1crnaqram1vl4w3g1zhsqp74ds0mccsd6830";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/path-headerline-mode";
+          sha256 = "0yw2i3cp20v8nd2wj1rs1qad8abghzzasf2sjyla90q06wlna98w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/path-headerline-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    path-helper = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "path-helper";
+        ename = "path-helper";
+        version = "20181112.1028";
+        src = fetchFromGitHub {
+          owner = "arouanet";
+          repo = "path-helper";
+          rev = "f04b637aca9d2d87bb14896ac8961668284a0fb9";
+          sha256 = "1cmayv1pzd4r9q2cazhxp6v6294p21qc5x3c57s4mg4mh7bqjnc3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/path-helper";
+          sha256 = "0fff3l88jgflqpxlcfxfyp2prc2ichajvm7c8i19qhvw70sbasny";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/path-helper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pathify = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pathify";
+        ename = "pathify";
+        version = "20160423.146";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "pathify.el";
+          rev = "335332a900717ae01bde5ccb8f3dc97a5350f123";
+          sha256 = "1brdyrp2sz1pszdfr6f4w94qxk5lrd6kphc1xa5pywfns14c9386";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pathify";
+          sha256 = "1z970xnzbhmfikj1rkfx24jvwc7f1xxw6hk7kmahxvphjxrvgc2f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pathify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paxedit = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , paredit }:
+      melpaBuild {
+        pname = "paxedit";
+        ename = "paxedit";
+        version = "20160730.1027";
+        src = fetchFromGitHub {
+          owner = "promethial";
+          repo = "paxedit";
+          rev = "48df0a26285f68cd20ea64368e7bf2a5fbf13135";
+          sha256 = "0z32lb2s943vk9fincsifdrjqmk7ks2skpzr6g4s3gd40sz5imfz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paxedit";
+          sha256 = "06ymilr0zrwfpyzql7dcpg48lhkx73f2jlaw3caxgsjaz7x3n4ic";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/paxedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pbcopy = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pbcopy";
+        ename = "pbcopy";
+        version = "20150224.2059";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "pbcopy.el";
+          rev = "338f7245746b5de1bb96c5cc2b32bfd9b5d83272";
+          sha256 = "138w0dlp3msjmr2x09kfcnxwhdldbz9xjfy7l6lig1x9ima0z5w6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pbcopy";
+          sha256 = "1989pkhaha6s2rmgyswnzps92x9hhzymjz4ng4a5jda1b9snp60q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pbcopy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pc-bufsw = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pc-bufsw";
+        ename = "pc-bufsw";
+        version = "20180107.1040";
+        src = fetchFromGitHub {
+          owner = "ibukanov";
+          repo = "pc-bufsw";
+          rev = "b99ba484e18ebf2b88654704146746490bb7625f";
+          sha256 = "184nnkfh7n6vbbmvykvklr1dn3dcwjj3w800irdg55bbnkxxzkj4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pc-bufsw";
+          sha256 = "01d7735ininlsjkql7dy57irgwgk4k9br8bl18wq51vgkg90i5k5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pc-bufsw";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcache = callPackage ({ eieio ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pcache";
+        ename = "pcache";
+        version = "20170105.1414";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "pcache";
+          rev = "025ef2411fa1bf82a9ac61dfdb7bd4cedaf2d740";
+          sha256 = "1jkdyacpcvbsm1g2rjpnk6hfr01r3j5ibgh09441scz41v6xk248";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcache";
+          sha256 = "0wwx20x6gzlli3hh4zd9pfv2cmqfm38xbl9p4vsgy08q1rm5agva";
+          name = "recipe";
+        };
+        packageRequires = [ eieio ];
+        meta = {
+          homepage = "https://melpa.org/#/pcache";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcap-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "pcap-mode";
+        ename = "pcap-mode";
+        version = "20161025.748";
+        src = fetchFromGitHub {
+          owner = "orgcandman";
+          repo = "pcap-mode";
+          rev = "52780669af0ade136f84d73f21b4dbb7ab655416";
+          sha256 = "1v218cjs0qy3ac0rbzm22y1x388nxnf0pslh9jrvlymkn227pjs8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcap-mode";
+          sha256 = "1p6lnr7yr8i3yp63xc8r1hnx8a4v0mz1s7q89zxx7aprk7i9kpv6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pcap-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcmpl-args = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "pcmpl-args";
+        ename = "pcmpl-args";
+        version = "20120911.2224";
+        src = fetchFromGitHub {
+          owner = "JonWaltman";
+          repo = "pcmpl-args.el";
+          rev = "2ba03b3125ada8037585e545b88bd85b79da5c37";
+          sha256 = "0pwx1nbgciy28rivvrgka46zihmag9ljrs40bvscgd9rkragm4zy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcmpl-args";
+          sha256 = "10mgci1rk6sr7wk46mnp5l37v3qxdc6yy5zfvy9mzwzh3va1pw31";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pcmpl-args";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcmpl-git = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "pcmpl-git";
+        ename = "pcmpl-git";
+        version = "20170120.1659";
+        src = fetchFromGitHub {
+          owner = "leoliu";
+          repo = "pcmpl-git-el";
+          rev = "9472ac70baeda025ef7becd1cf141d72aec93f32";
+          sha256 = "17y3rdp7fgyg4i9hwyzgpv1d19i5c6rqdf1gm5bdm2csk12vfg9n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcmpl-git";
+          sha256 = "12y9pg1g4i1ghnjvgfdpa6p84h4bcqrr23y9bazwl9n6aj20cmxk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pcmpl-git";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcmpl-homebrew = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "pcmpl-homebrew";
+        ename = "pcmpl-homebrew";
+        version = "20181104.1909";
+        src = fetchFromGitHub {
+          owner = "kaihaosw";
+          repo = "pcmpl-homebrew";
+          rev = "3dc4eb22231d82edb9d33d17287bd9a018f7645e";
+          sha256 = "0s3rk8b4cv2l20fkkkplzsr3vjhvnlni3nrig28h3cysqfpingqk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcmpl-homebrew";
+          sha256 = "1mfkg9i2hqq8mkhnc8yzc9br9wlhjv17vdvjzwhkybcbmhqf2qkm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pcmpl-homebrew";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcmpl-pip = callPackage ({ f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s
+                             , seq }:
+      melpaBuild {
+        pname = "pcmpl-pip";
+        ename = "pcmpl-pip";
+        version = "20171201.33";
+        src = fetchFromGitHub {
+          owner = "kaihaosw";
+          repo = "pcmpl-pip";
+          rev = "8b001b579fc015f80ee0e4f3211058b830bf7c47";
+          sha256 = "0f8s2gn82dhyrnv0j688697xy0ig2yhn5m94gwhcllxq5a3yhbdg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcmpl-pip";
+          sha256 = "17nmgq4wgv4yl2rsdf32585hfa58j0825mzzajrlwgmjiqx9i778";
+          name = "recipe";
+        };
+        packageRequires = [ f s seq ];
+        meta = {
+          homepage = "https://melpa.org/#/pcmpl-pip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcomplete-extension = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "pcomplete-extension";
+        ename = "pcomplete-extension";
+        version = "20180706.2155";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "pcomplete-extension";
+          rev = "bb941272b54f49f780819f7ce4fd2c802de9a0da";
+          sha256 = "0bwbxnnw760i6mi7h9pyx3gaasrcja7dj3bfrlia07gw8jgl81ad";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcomplete-extension";
+          sha256 = "0m0c9ir44p21rj93fkisvpvi08936717ljmzsr4qdf69b3i54cwc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pcomplete-extension";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcre2el = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pcre2el";
+        ename = "pcre2el";
+        version = "20161120.1303";
+        src = fetchFromGitHub {
+          owner = "joddie";
+          repo = "pcre2el";
+          rev = "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d";
+          sha256 = "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcre2el";
+          sha256 = "1l72hv9843qk5p8gi9ibr15wczm804j3ws2v1x7nx4dr7pc5c7l3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pcre2el";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcsv = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "pcsv";
+        ename = "pcsv";
+        version = "20150220.331";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-pcsv";
+          rev = "798e0933f8d0818beb17aebf3b1056bbf74e03d0";
+          sha256 = "0aaprjczjf3al5vcypw1fsnz5a0xnnlhmvy0lc83i9aqbsa2y8af";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcsv";
+          sha256 = "1zphndkbva59g1fd319a240yvq8fjk315b1fyrb8zvmqpgk9n0dl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pcsv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pdb-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pdb-mode";
+        ename = "pdb-mode";
+        version = "20150128.951";
+        src = fetchFromGitHub {
+          owner = "sixpi";
+          repo = "pdb-mode";
+          rev = "855fb18ebb73b5df30c8d7677c2bcd0f361b138a";
+          sha256 = "1xkkyz7y08jr71rzdacb9v7gk95qsxlsshkdsxq8jp70irq51099";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pdb-mode";
+          sha256 = "1ihkxd15kx5m5xb9yxwz8wqbmyk9iaskry9szzdz1j4gjlczb6hy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pdb-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pdf-tools = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , let-alist
+                             , lib
+                             , melpaBuild
+                             , tablist }:
+      melpaBuild {
+        pname = "pdf-tools";
+        ename = "pdf-tools";
+        version = "20181118.1251";
+        src = fetchFromGitHub {
+          owner = "politza";
+          repo = "pdf-tools";
+          rev = "9e765939ee42d59ba0280e52a2ce70f41c61f71e";
+          sha256 = "0bv2x1h14ja7xag02cj362nvzfvdysfnfvl1785vws5fz079c7rk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pdf-tools";
+          sha256 = "1hnc8cci00mw78h7d7gs8smzrgihqz871sdc9hfvamb7iglmdlxw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist tablist ];
+        meta = {
+          homepage = "https://melpa.org/#/pdf-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pdfgrep = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pdfgrep";
+        ename = "pdfgrep";
+        version = "20181007.1028";
+        src = fetchFromGitHub {
+          owner = "jeremy-compostella";
+          repo = "pdfgrep";
+          rev = "e251cd5c88a4ba5cb69008ba412d329f4d59e1d2";
+          sha256 = "0fy6h8ys490kw63l9jigsa0cf1psybyd9gcljpddnjd3nhkdwikw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pdfgrep";
+          sha256 = "0q511l57xv1s6z496jrlz6j2nf0fync0dlbm4r800p49lbh4abl3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pdfgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    peacock-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "peacock-theme";
+        ename = "peacock-theme";
+        version = "20170808.620";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-peacock-theme";
+          rev = "9e46fbfb562b6e26c6e3d6d618b044b3694da4c8";
+          sha256 = "0w4dzdsv2cdldss5jwmdbjb5a62k5j1szwdim4gv8ldifhj7fy22";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/peacock-theme";
+          sha256 = "0jpdq090r37d07bm52yx3x9y3gsip6fyxxq1ax1k5k0r0js45kq9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/peacock-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    peek-mode = callPackage ({ elnode
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "peek-mode";
+        ename = "peek-mode";
+        version = "20130620.1246";
+        src = fetchFromGitHub {
+          owner = "erikriverson";
+          repo = "peek-mode";
+          rev = "55a7dd011375330c7d57322257a5167516702c71";
+          sha256 = "11nv6pll0zj9dkgzlzgav39a6x3sfi7kvfhwm96fa3iy4v8bixrb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/peek-mode";
+          sha256 = "07wcnh3jmp2gi9xhd3d8i2n0pr2g9kav497nnz94i85awhzf8fi4";
+          name = "recipe";
+        };
+        packageRequires = [ elnode ];
+        meta = {
+          homepage = "https://melpa.org/#/peek-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    peep-dired = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "peep-dired";
+        ename = "peep-dired";
+        version = "20160321.1537";
+        src = fetchFromGitHub {
+          owner = "asok";
+          repo = "peep-dired";
+          rev = "12d7e52cd5ae29fd828db0bf1fbf648020077145";
+          sha256 = "159yc9fcpywqhy92kn7i7aid30j3bzybfdz9kxb643026v30nhxq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/peep-dired";
+          sha256 = "16k5y3h2ip96k071vhx83avg4r4nplnd973b1271vvxbx2bly735";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/peep-dired";
+          license = lib.licenses.free;
+        };
+      }) {};
+    peg = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "peg";
+        ename = "peg";
+        version = "20150707.2341";
+        src = fetchFromGitHub {
+          owner = "ellerh";
+          repo = "peg.el";
+          rev = "081efeca91d790c7fbc90871ac22c40935f4833b";
+          sha256 = "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/peg";
+          sha256 = "0nxy9xn99myz0p36m4jflfj48qxhhn1sspbfx8d90030xg3cc2gm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/peg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pelican-mode = callPackage ({ emacs
+                                , fetchgit
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "pelican-mode";
+        ename = "pelican-mode";
+        version = "20180604.1507";
+        src = fetchgit {
+          url = "https://git.korewanetadesu.com/pelican-mode.git";
+          rev = "209ad24318e1f28675da430aa10ef3467694b9ac";
+          sha256 = "1hiyl2iy2pa38bfr0z4axxmq3b79c31djyxqchx5mwzl9427dfsr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pelican-mode";
+          sha256 = "0z6w5j3qwb58pndqbmpsvy1l77w9jv90bss9qq9hicil8nlk4pvi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pelican-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    per-buffer-theme = callPackage ({ cl-lib ? null
+                                    , fetchhg
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "per-buffer-theme";
+        ename = "per-buffer-theme";
+        version = "20160318.1501";
+        src = fetchhg {
+          url = "https://bitbucket.com/inigoserna/per-buffer-theme.el";
+          rev = "9e6200da91b3";
+          sha256 = "0w02l91x624cgzdg33a9spgcwy12m607dsfnr1xbc1fi08np4sd1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/per-buffer-theme";
+          sha256 = "1czcaybpfmx4mwff7hs07iayyvgvlhifkickccap6kpd0cp4n6hn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/per-buffer-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    perl6-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pkg-info }:
+      melpaBuild {
+        pname = "perl6-mode";
+        ename = "perl6-mode";
+        version = "20180619.459";
+        src = fetchFromGitHub {
+          owner = "perl6";
+          repo = "perl6-mode";
+          rev = "4ad9987e2576ab2f17cc7090ce35d347167449bb";
+          sha256 = "0578mgy1pdiz19kam7n6cp98kbq8vmn2q6xc8qsjvzma3rfdsmgv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/perl6-mode";
+          sha256 = "0r5q2nggb9kbjcdfv81d7sm41jqz040j9z52fnck4b9mlz2dy6d0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/perl6-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    perlbrew = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "perlbrew";
+        ename = "perlbrew";
+        version = "20161108.2309";
+        src = fetchFromGitHub {
+          owner = "kentaro";
+          repo = "perlbrew.el";
+          rev = "3a3406c3307c92aa30f9400d430925c434a3b6f0";
+          sha256 = "0kxz8ljc7w69ywp0bb15010sgrr13i1p05hcvhfr9c35l0n62r6p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/perlbrew";
+          sha256 = "1qadwkcic2qckqy8hgrnj08ajhxayknhpyxkc6ir15vfqjk5crr8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/perlbrew";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persistent-overlays = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "persistent-overlays";
+        ename = "persistent-overlays";
+        version = "20161127.2300";
+        src = fetchFromGitHub {
+          owner = "mneilly";
+          repo = "Emacs-Persistent-Overlays";
+          rev = "f563c8b966edc78c9d806661c4eb80e4781c4eab";
+          sha256 = "0csllpkpjf4csw3zfaw8k05jg078najfmjz6pz1jcl6b4sxjdfqa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persistent-overlays";
+          sha256 = "136acbxqykvsw8a5il1zgpxr7llxmc3347847vf0jnmbzb1b472a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/persistent-overlays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persistent-scratch = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "persistent-scratch";
+        ename = "persistent-scratch";
+        version = "20180929.713";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "persistent-scratch";
+          rev = "2e6678a837db85e68da713bbd4772c7fb88d83d4";
+          sha256 = "0ipr2cnw5b26q560c82mm6bmkx9clw1mrndycs2qz894y53dzlmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persistent-scratch";
+          sha256 = "0iai65lsg3zxj07hdb9201w3rwrvdb3wffr6k2jdl8hzg5idghn1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/persistent-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persistent-soft = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , list-utils
+                                   , melpaBuild
+                                   , pcache }:
+      melpaBuild {
+        pname = "persistent-soft";
+        ename = "persistent-soft";
+        version = "20150223.1053";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "persistent-soft";
+          rev = "a1e0ddf2a12a6f18cab565dee250f070384cbe02";
+          sha256 = "14p20br8vzxs39d4hswzrrkgwql5nnmn5j17cpbabzjvck42rixc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persistent-soft";
+          sha256 = "0a4xiwpgyyynjf69s8p183mqd3z53absv544ggvhb2gkpm6jravc";
+          name = "recipe";
+        };
+        packageRequires = [ list-utils pcache ];
+        meta = {
+          homepage = "https://melpa.org/#/persistent-soft";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persp-fr = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , persp-mode }:
+      melpaBuild {
+        pname = "persp-fr";
+        ename = "persp-fr";
+        version = "20180801.27";
+        src = fetchFromGitHub {
+          owner = "rocher";
+          repo = "persp-fr";
+          rev = "3f536440b120499464106fd25f182d7580192870";
+          sha256 = "0bnplxv6igry7ak3wvn2b88zm4aarv35z4z5q38x52k4zac94rl8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persp-fr";
+          sha256 = "0p4379yr1b32l8ghq1axyb8qhp28gnq5qxxvbk3mdzgbwwj8y4b2";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs persp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/persp-fr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persp-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "persp-mode";
+        ename = "persp-mode";
+        version = "20180930.1020";
+        src = fetchFromGitHub {
+          owner = "Bad-ptr";
+          repo = "persp-mode.el";
+          rev = "689f63e7370cd9424d84b9f7b2eb3d1955443313";
+          sha256 = "141yakk7xfs0b58far1zqmwimim139bbzk0ymyzgghf5vyb5lxin";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persp-mode";
+          sha256 = "1bgni7y5xsn4a21494npr90w3320snfzw1hvql30xrr57pw3765w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/persp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persp-mode-projectile-bridge = callPackage ({ cl-lib ? null
+                                                , fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild
+                                                , persp-mode
+                                                , projectile }:
+      melpaBuild {
+        pname = "persp-mode-projectile-bridge";
+        ename = "persp-mode-projectile-bridge";
+        version = "20170315.420";
+        src = fetchFromGitHub {
+          owner = "Bad-ptr";
+          repo = "persp-mode-projectile-bridge.el";
+          rev = "f6453cd7b8b4352c06e771706f2c5b7e2cdff1ce";
+          sha256 = "1gyfn2fhx3bqzr9m1r4b8nyak8pmpcgj7yz2bagnjs21vfngr18c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persp-mode-projectile-bridge";
+          sha256 = "169mpikixa33ljmh2n9sm186yibrik3f5p8m1hcisnzdsc3wgxmp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib persp-mode projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/persp-mode-projectile-bridge";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persp-projectile = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , perspective
+                                    , projectile }:
+      melpaBuild {
+        pname = "persp-projectile";
+        ename = "persp-projectile";
+        version = "20180616.1244";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "persp-projectile";
+          rev = "3a79cb26e290b478e83aa7795146fb1759092d14";
+          sha256 = "17i1srw1k771i3a5wlydbyasyd9z39ryf48mxfs0dsbx1zjbj0pg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persp-projectile";
+          sha256 = "10l2kqjyigg98qbbpf3qf4d5bm63kkk4vp7ip8fibgj1p9gqmnxm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib perspective projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/persp-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    perspective = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "perspective";
+        ename = "perspective";
+        version = "20181101.1534";
+        src = fetchFromGitHub {
+          owner = "nex3";
+          repo = "perspective-el";
+          rev = "1358ba2c1727bd9eaa6c52b727e1e7b0c11ec5ca";
+          sha256 = "1d9g3b2lq75r3i6gljmk641c162l1ipzf0qaiaxmzicx4zvsbzck";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/perspective";
+          sha256 = "021ax1c2ys82dcjs5jl7b4nb83n6gax2imnpm030rcbihjl1lzm7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/perspective";
+          license = lib.licenses.free;
+        };
+      }) {};
+    perspeen = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , powerline }:
+      melpaBuild {
+        pname = "perspeen";
+        ename = "perspeen";
+        version = "20171203.221";
+        src = fetchFromGitHub {
+          owner = "seudut";
+          repo = "perspeen";
+          rev = "edb70c530bda50ff3d1756e32a703d5fef5e5480";
+          sha256 = "12h0kj96s4h8z4kqalp7hccnlnqn5lrax3df75gz16pskx2dwxqr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/perspeen";
+          sha256 = "0kwmllas9vnppsfaviy58d0nk4hmlqp566mfr4l53x46sybv1y04";
+          name = "recipe";
+        };
+        packageRequires = [ emacs powerline ];
+        meta = {
+          homepage = "https://melpa.org/#/perspeen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pfuture = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pfuture";
+        ename = "pfuture";
+        version = "20180922.615";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "pfuture";
+          rev = "c06e78b37ac3fba72ea446f11da38a6a5cba428c";
+          sha256 = "0239s4n8na7jxkc51zy8lnwdcncvr0l692sy0lha7pp0a620zc2d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pfuture";
+          sha256 = "15fr9wkpv8v1p22wz7hsyihq7f807ck105c2crfs8y7capfvs53s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pfuture";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pg = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "pg";
+        ename = "pg";
+        version = "20130731.1442";
+        src = fetchFromGitHub {
+          owner = "cbbrowne";
+          repo = "pg.el";
+          rev = "4f6516ec3946d95dcef49abb6703cc89ecb5183d";
+          sha256 = "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pg";
+          sha256 = "0n0187ndvwza1nis9a12h584qdqkwqfzhdw21kz5d1i6c43g7gji";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pgdevenv = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pgdevenv";
+        ename = "pgdevenv";
+        version = "20150105.1436";
+        src = fetchFromGitHub {
+          owner = "dimitri";
+          repo = "pgdevenv-el";
+          rev = "7f1d5bc734750aca98cf67a9491cdbd5615fd132";
+          sha256 = "0c9d4c24ic67y07y74bv5b7vc56b6l0lbh2fbzm870r1dl5zbzcj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pgdevenv";
+          sha256 = "0za35sdwwav81wpk4jjqh56icaswwxxyg3bqqp0qiz24llb5ln1w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pgdevenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ph = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ph";
+        ename = "ph";
+        version = "20161029.822";
+        src = fetchFromGitHub {
+          owner = "gromnitsky";
+          repo = "ph";
+          rev = "a66e38637d1898b2ec31ee611033ac3f295fd97f";
+          sha256 = "10xznvjszn0smn6wf84rykkkiqyzv7xf7fjjyklhll7zphg714mw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ph";
+          sha256 = "0azx4cpfdn01yrqyn0q1gg9z7w0h0rn7zl39v3dx6yidd76ysh0l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ph";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phabricator = callPackage ({ dash
+                               , emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , projectile
+                               , s }:
+      melpaBuild {
+        pname = "phabricator";
+        ename = "phabricator";
+        version = "20160510.725";
+        src = fetchFromGitHub {
+          owner = "ajtulloch";
+          repo = "phabricator.el";
+          rev = "d09d6f059aea92d3b11c68664a5e80c901182ab8";
+          sha256 = "0cmfb5ns335nq27iw94qxvrldpwjga0hw40da9kpdcfg0in4ya0c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phabricator";
+          sha256 = "07988f2xyp76xjs25b3rdblhmijs2piriz4p0q92jw69bdvkl14c";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f projectile s ];
+        meta = {
+          homepage = "https://melpa.org/#/phabricator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phan = callPackage ({ composer
+                        , emacs
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "phan";
+        ename = "phan";
+        version = "20180527.2039";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phan.el";
+          rev = "6b077b3421a0b2c0b98a6906b8ab0d14d9d7bf50";
+          sha256 = "1af4pam149dgxqzwqkjklxxqq2n8fg3l1b9w6bmaw24lx1pdxcyv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phan";
+          sha256 = "17ar6nxy0plx5li49kgf4f0h99wwmnnp5kwmpf34jg9ygyhaglvb";
+          name = "recipe";
+        };
+        packageRequires = [ composer emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/phan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phi-autopair = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , paredit }:
+      melpaBuild {
+        pname = "phi-autopair";
+        ename = "phi-autopair";
+        version = "20170216.1953";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "phi-autopair";
+          rev = "3c7556779c3a53b045f5df33ae2a0c67469cbf60";
+          sha256 = "16gh2r1mhmirbq20kklym4l60rfcfn8dsj0vv3hx3fj8q81h8qc9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phi-autopair";
+          sha256 = "1ya1bvh28qgz1zg9kdh2lzbsf0w0lx4xr42mdrjwaz3bbfa9asg4";
+          name = "recipe";
+        };
+        packageRequires = [ paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/phi-autopair";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phi-grep = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "phi-grep";
+        ename = "phi-grep";
+        version = "20170606.107";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "phi-grep";
+          rev = "ab9bd8d25e751a9cbfa108b49839293230b6e8b5";
+          sha256 = "0p1i07dgaic0jnwdsnvsnib2913r9w8j98d1p5rx8db2nabjmzc0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phi-grep";
+          sha256 = "1y5lq6lq9qdydbypb1pjnxryh94a295nnqqh2x27whiwdiysirjj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/phi-grep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phi-rectangle = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "phi-rectangle";
+        ename = "phi-rectangle";
+        version = "20151207.2254";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "phi-rectangle";
+          rev = "0c12716afc71d803d1f39417469521dc465762d9";
+          sha256 = "0d2c579rg8wdfmn94nzaix9332jch4wlr939jszls330s38d0iv4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phi-rectangle";
+          sha256 = "111fqqa7h5cajq92sbiqhavm25l5bcapxhfh38y7irq4mv08xifw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/phi-rectangle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phi-search = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "phi-search";
+        ename = "phi-search";
+        version = "20180321.1829";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "phi-search";
+          rev = "9a089b8271cb1cff9640848850298c9ec855286c";
+          sha256 = "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phi-search";
+          sha256 = "0nj06ixl76dd80zg83q4bi8k224mcwb612mr4gd1xppj5k8xl03g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/phi-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phi-search-dired = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , phi-search }:
+      melpaBuild {
+        pname = "phi-search-dired";
+        ename = "phi-search-dired";
+        version = "20150405.14";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "phi-search-dired";
+          rev = "162a5e4507c72512affae22744bb606a906d4193";
+          sha256 = "1b44947hncw4q42fxxrz6fm21habzp4pyp0569xdwysrx2rca2fn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phi-search-dired";
+          sha256 = "1gf3vs3vrp5kbq4ixnj7adazmnqixi63qswgc2512p10gf7inf8p";
+          name = "recipe";
+        };
+        packageRequires = [ phi-search ];
+        meta = {
+          homepage = "https://melpa.org/#/phi-search-dired";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phi-search-mc = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , multiple-cursors
+                                 , phi-search }:
+      melpaBuild {
+        pname = "phi-search-mc";
+        ename = "phi-search-mc";
+        version = "20160324.803";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "phi-search-mc.el";
+          rev = "7aa671910f766437089aec26c3aa7814222d1356";
+          sha256 = "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phi-search-mc";
+          sha256 = "07hd80rbyzr5n3yd7hv1j51nl6pvcxmln20g6xvw8gh5yfl9k0m8";
+          name = "recipe";
+        };
+        packageRequires = [ multiple-cursors phi-search ];
+        meta = {
+          homepage = "https://melpa.org/#/phi-search-mc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phi-search-migemo = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , migemo
+                                     , phi-search }:
+      melpaBuild {
+        pname = "phi-search-migemo";
+        ename = "phi-search-migemo";
+        version = "20170618.221";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "phi-search-migemo";
+          rev = "723b584d386639d59298d872ad7a035d3f8008b0";
+          sha256 = "01j3fpn44vgj8fq4smay1qd3wnh321v5pkgm9vkhpryj1v1g7am1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phi-search-migemo";
+          sha256 = "0qk73s09sasm438w29j5z2bmlb60p1mgbv2ch43rgq8c6kjzg6h6";
+          name = "recipe";
+        };
+        packageRequires = [ migemo phi-search ];
+        meta = {
+          homepage = "https://melpa.org/#/phi-search-migemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phoenix-dark-mono-theme = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "phoenix-dark-mono-theme";
+        ename = "phoenix-dark-mono-theme";
+        version = "20170729.706";
+        src = fetchFromGitHub {
+          owner = "j0ni";
+          repo = "phoenix-dark-mono";
+          rev = "a54f515d162148bcb38676980bc2316adb3d7b8b";
+          sha256 = "1zr334qsjrajd2vrrlc1rfm4b4kdw15jfh5d102vj5bp7z7ajhb4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phoenix-dark-mono-theme";
+          sha256 = "15in299j170n0wxmkg3cx1zzx1n7r1ifraqqzfqhcnk8i8lmc939";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/phoenix-dark-mono-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phoenix-dark-pink-theme = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "phoenix-dark-pink-theme";
+        ename = "phoenix-dark-pink-theme";
+        version = "20170729.703";
+        src = fetchFromGitHub {
+          owner = "j0ni";
+          repo = "phoenix-dark-pink";
+          rev = "4defbb76b00c1a29f060813898578152d6be623d";
+          sha256 = "03d7ak4ia3fifp0c8fm4qdydizsfsxvcvbzwfxlsk66s28p5wglc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phoenix-dark-pink-theme";
+          sha256 = "0bz6iw73d85bi12qqx6fdw3paqknrxvn0asbwjmgdcrlqrfczjlr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/phoenix-dark-pink-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-auto-yasnippets = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , php-mode
+                                       , yasnippet }:
+      melpaBuild {
+        pname = "php-auto-yasnippets";
+        ename = "php-auto-yasnippets";
+        version = "20170330.1814";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "php-auto-yasnippets";
+          rev = "03e1f0899c081813901ac15c2f7a675a37cca9f5";
+          sha256 = "0d7y6njsd1s2r5df2k8wvvwgxpwwyaqkhdd2b3p1php8rrbj3mg8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-auto-yasnippets";
+          sha256 = "047i51ks2nn7ydrx2hjx9qvsh3lxnyxp8a6c3h3nb1acy84f5bd1";
+          name = "recipe";
+        };
+        packageRequires = [ php-mode yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/php-auto-yasnippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-boris = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "php-boris";
+        ename = "php-boris";
+        version = "20130527.121";
+        src = fetchFromGitHub {
+          owner = "tomterl";
+          repo = "php-boris";
+          rev = "4bb7e4d34d9906ddce688205eb24cafe634c6d06";
+          sha256 = "1pya68rbn3bs67nn0mprjx2w759byqmixylcvl25v8f645nmxd0r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-boris";
+          sha256 = "0kklwk8b98czsg567vgzzdfnv76yn1id3ah2q2qqdhaky1yzw7ak";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/php-boris";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-boris-minor-mode = callPackage ({ fetchgit
+                                        , fetchurl
+                                        , highlight
+                                        , lib
+                                        , melpaBuild
+                                        , php-boris }:
+      melpaBuild {
+        pname = "php-boris-minor-mode";
+        ename = "php-boris-minor-mode";
+        version = "20140209.1035";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/php-boris-minor-mode.git";
+          rev = "8648eba604e4ff82ef6594a2c5ee4cb4825e6235";
+          sha256 = "00lmvsmh053zhdv56vkcxc4dpzrlx6jyck87vq8vjbj8q9nmkf23";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-boris-minor-mode";
+          sha256 = "06nzdvzjp6ywq0jf0v0cmcv77wj1vyas2r10kmxd45rzw12hqjd9";
+          name = "recipe";
+        };
+        packageRequires = [ highlight php-boris ];
+        meta = {
+          homepage = "https://melpa.org/#/php-boris-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-cs-fixer = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "php-cs-fixer";
+        ename = "php-cs-fixer";
+        version = "20170506.1133";
+        src = fetchFromGitHub {
+          owner = "OVYA";
+          repo = "php-cs-fixer";
+          rev = "2e28b82d192c6f420ecb8cbef04256f3c9c47c4b";
+          sha256 = "1lh37z4z09nz4wfp8ly94dwrmjsqpg6phw5r8y4gjhfnfbgpq4b9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-cs-fixer";
+          sha256 = "1xvz6v1fwngi2rizrx5sf0wrs4cy8rb13467r26k8hb7z8h1rqmf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/php-cs-fixer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-eldoc = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "php-eldoc";
+        ename = "php-eldoc";
+        version = "20140202.1141";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "php-eldoc";
+          rev = "df05064146b884d9081e10657e32dc480f070cfe";
+          sha256 = "0hm6myvf91f4d2yfc7fs2xky9m8hfnimx1gkfzmn9f5pcc2l2p0i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-eldoc";
+          sha256 = "1q5fkl8crqrgxik2mxbkqv10qnqhqrazd66rgfw797s3jcchv58j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/php-eldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-mode = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "php-mode";
+        ename = "php-mode";
+        version = "20180828.2220";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "php-mode";
+          rev = "16b3f7c1ae894c74b4f59026470b0183bf1bc188";
+          sha256 = "0mc5nk8kabk6fp0xdbwwwhahxi6j7padm09g094hjgm2v293prxs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-mode";
+          sha256 = "1gqmcynz2wx09xjnk70db1a2pbnrh1vfm5vd6mks1s10y59bh0zq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/php-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-refactor-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "php-refactor-mode";
+        ename = "php-refactor-mode";
+        version = "20171123.2235";
+        src = fetchFromGitHub {
+          owner = "keelerm84";
+          repo = "php-refactor-mode.el";
+          rev = "d06dabd9ca743a04067e02282b69d7b7467fb4b7";
+          sha256 = "1mdbv079xj0a506hcq99bd8cdpwgq6anhqfkfwm56b3cn7g54qkr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-refactor-mode";
+          sha256 = "0gj0nv6ii7pya0hcxs8haz5pahj0sa12c2ls53c3j85in645zb3s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/php-refactor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-runtime = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "php-runtime";
+        ename = "php-runtime";
+        version = "20180922.1515";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "php-runtime.el";
+          rev = "a205c8dc4d19619b5e37478caeec0c74b7502b3c";
+          sha256 = "0alsq5r6ifhpzjmcjm9759zasy4l8hfm51injqs55gkf5zw2hmhg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-runtime";
+          sha256 = "0dvnwajrjsgyqzglzpkx9vwx3f55mrag6dsbdjqc9vvpvxhmgfwb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/php-runtime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-scratch = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , php-mode
+                               , s }:
+      melpaBuild {
+        pname = "php-scratch";
+        ename = "php-scratch";
+        version = "20161103.1517";
+        src = fetchFromGitHub {
+          owner = "mallt";
+          repo = "php-scratch";
+          rev = "3aa66d1d53b84b779374edff7a7e6b5f2cd7575d";
+          sha256 = "0iyb4y0wrd1yqm56p37riw6nwvrlcgxj1x0nhw8304p8hv76mzdi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-scratch";
+          sha256 = "0sl9cccp4xjsidiyjf3sca8wlch3zd23zyac21xys11xm3rjxh9r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs php-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/php-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phpactor = callPackage ({ cl-lib ? null
+                            , composer
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "phpactor";
+        ename = "phpactor";
+        version = "20181027.2256";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phpactor.el";
+          rev = "08a81a1315b665a987a3d48afaeeaaedbef52a25";
+          sha256 = "04ldmw2lk5a58fm91a0i6yrk8lnn0pgh3cpr48ipnwg874l4aqa6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phpactor";
+          sha256 = "0w2iszi74y3s6rcn6p2ic545cg319y4jpy83npbh5m98y8jma84m";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib composer emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/phpactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phpcbf = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "phpcbf";
+        ename = "phpcbf";
+        version = "20180519.138";
+        src = fetchFromGitHub {
+          owner = "nishimaki10";
+          repo = "emacs-phpcbf";
+          rev = "a31020fc4c5add7339e009faea66894dc02a77f1";
+          sha256 = "04iw5is9h6a0i650mymyxq32z02rzl6k7pvwmv849rka16xhw1aq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phpcbf";
+          sha256 = "1hf88ys4grffpqgavrbc72dn3m7crafgid2ygzx9c5j55syh8mfv";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/phpcbf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phpstan = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "phpstan";
+        ename = "phpstan";
+        version = "20180721.1235";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phpstan.el";
+          rev = "09102b062b607affc93f2d8a113a9fc9f9cf3016";
+          sha256 = "0n21vyvd5c42v03xcfx94dz252z3s413i0f9pwjrssq2yd3x2bgm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phpstan";
+          sha256 = "0j3xb3h6fqgk0nv5mlfz7lgfkcy0z04an9qy8nq5y473hdj87qzm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/phpstan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phpunit = callPackage ({ cl-lib ? null
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , pkg-info
+                           , s }:
+      melpaBuild {
+        pname = "phpunit";
+        ename = "phpunit";
+        version = "20180829.738";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "phpunit.el";
+          rev = "fe6bc91c3bd8b329c6d26ad883a025f06b5121ee";
+          sha256 = "1silbfmv85r73pbc7f5cm4znc6644ngihfnhibk1fgp9j0rf7ahc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phpunit";
+          sha256 = "0nj8ss1yjkcqnbnn4jgbp0403ljjk2xhipzikdrl3dbxlf14i4f8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f pkg-info s ];
+        meta = {
+          homepage = "https://melpa.org/#/phpunit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pianobar = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pianobar";
+        ename = "pianobar";
+        version = "20180416.1804";
+        src = fetchFromGitHub {
+          owner = "agrif";
+          repo = "pianobar.el";
+          rev = "3154c4cb7401017fd441fcd6a7a0b669a4406882";
+          sha256 = "0dy51pi85i8ag47zmnhppllsbmxd0bp704azffddkg36pjh4inxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pianobar";
+          sha256 = "16vsf2cig9qjbh9s58zb5byjmyghxbsxpzpm5hyyrv251jap1jjn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pianobar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pickle = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pickle";
+        ename = "pickle";
+        version = "20180627.1937";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "pickle-mode";
+          rev = "568570b7d376026fbcb7c3df1ad8f605bd14c820";
+          sha256 = "0dg44js5l1p93h73x7zh4znr0iwgmms7qr4v4594ab6sg7cc54jm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pickle";
+          sha256 = "0fryzmrs6bn6r590qp08jyzx9g6jakf1pahxhcfglsv9k3jbfp13";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pickle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    picolisp-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "picolisp-mode";
+        ename = "picolisp-mode";
+        version = "20150516.155";
+        src = fetchFromGitHub {
+          owner = "flexibeast";
+          repo = "picolisp-mode";
+          rev = "1a537b14090813f46cbba54636d40365e1a8067e";
+          sha256 = "0p91ysyjksbravnw3l78mshay6swgb5k1zi5bbppppk8zkmdp115";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/picolisp-mode";
+          sha256 = "1n56knbapyfs8n23arzlz27y0q4846r64krwlwh8agfqkcdw9dp5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/picolisp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    picpocket = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "picpocket";
+        ename = "picpocket";
+        version = "20180914.1119";
+        src = fetchFromGitHub {
+          owner = "johanclaesson";
+          repo = "picpocket";
+          rev = "f0f9947a097b2a02901d6d0bb427c7a6e02f2af7";
+          sha256 = "0fnafiax2xb97vkvr8fd2x3rpnw72661k0p163mkvp1zp59zy6is";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/picpocket";
+          sha256 = "0p2mrjcd8ig0h7dk0zvyfma4nnfk2ic6gp2dwfqyqq6irb010f45";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/picpocket";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pig-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pig-mode";
+        ename = "pig-mode";
+        version = "20180520.700";
+        src = fetchFromGitHub {
+          owner = "motus";
+          repo = "pig-mode";
+          rev = "4c6c6e1b1bb719d8adc6c47cc24665f6fe558959";
+          sha256 = "1vwnybyrzk8nw2cs27yrsipxb6hmx7cs5d60yf00h0wiv3l6v3rr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pig-mode";
+          sha256 = "0gmvc4rrqkn0cx8fk1sxk6phfbpf8dcba3k6i24k3idcx8rxsw3x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pig-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pig-snippets = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , yasnippet }:
+      melpaBuild {
+        pname = "pig-snippets";
+        ename = "pig-snippets";
+        version = "20130912.2324";
+        src = fetchFromGitHub {
+          owner = "motus";
+          repo = "pig-mode";
+          rev = "69ca24cb756dd516828e284e33274145eba21183";
+          sha256 = "1b1wibla851f7mra0jf13xhil1xw4s0m2l53f1s2h36468wb24y1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pig-snippets";
+          sha256 = "1sqi0a2dsqgmabkrncxiyrhibyryyy25d11b15ybhlngd05wqbx2";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/pig-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pillar = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , makey
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pillar";
+        ename = "pillar";
+        version = "20141112.1011";
+        src = fetchFromGitHub {
+          owner = "pillar-markup";
+          repo = "pillar-mode";
+          rev = "13a7f676544cc66005ccd8e6fc1c25e4ccd6f909";
+          sha256 = "19i8hgzr7kdj4skf0cnv6vlsklq9qcyxcv3p33k9vgq7y4f9mah8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pillar";
+          sha256 = "1lklky3shyvm1iygp621hbldpx37m0a9vd5l6mxs4y60ksj6z0js";
+          name = "recipe";
+        };
+        packageRequires = [ makey ];
+        meta = {
+          homepage = "https://melpa.org/#/pillar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pinboard-api = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "pinboard-api";
+        ename = "pinboard-api";
+        version = "20140324.448";
+        src = fetchFromGitHub {
+          owner = "danieroux";
+          repo = "pinboard-api-el";
+          rev = "b7b5214d0c35178f8dca08cf22d6ef3c21f0fce4";
+          sha256 = "0wy9c37g6m5khchlp8qvfnjgkwq4r38659adcm5prvzjgzqhlfja";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pinboard-api";
+          sha256 = "0yzvgnpkj2fhl01id36nc5pj8vyb05bllraiz3lwwcc66y98h9n0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pinboard-api";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pinboard-popular = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , loop
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "pinboard-popular";
+        ename = "pinboard-popular";
+        version = "20180511.1026";
+        src = fetchFromGitHub {
+          owner = "asimpson";
+          repo = "pinboard-popular";
+          rev = "c0bc76cd35f8ecf34723c64a702b82eec2751318";
+          sha256 = "1msvb5r6ixd886plpbss62q2nwrrsb6271bi922vlhr817lhsain";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pinboard-popular";
+          sha256 = "0d9ng4mclnb9yfzh8wzz03fbhfxayns0dg31bdixkwvy2vk00rkf";
+          name = "recipe";
+        };
+        packageRequires = [ loop ];
+        meta = {
+          homepage = "https://melpa.org/#/pinboard-popular";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pine-script-mode = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "pine-script-mode";
+        ename = "pine-script-mode";
+        version = "20181109.1751";
+        src = fetchFromGitHub {
+          owner = "EricCrosson";
+          repo = "pine-script-mode";
+          rev = "9176de41a5c80f7b56e41fb7a9ba7350885a2512";
+          sha256 = "1kxdrqa420zbl73jlakilvn1ja83vfqnhqdirgfvp23z4xhcddq6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pine-script-mode";
+          sha256 = "0ihijbcx7m4vhxr1fnfkwjdk6ka1mqzxb8z164yh8yn73qs0saiq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pine-script-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pinot = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "pinot";
+        ename = "pinot";
+        version = "20140211.1226";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-pinot-search";
+          rev = "67fda555a155b22bb2ce44ba618b4bd6fc5f144a";
+          sha256 = "1wc31r5fpcia4n4vbpg7vv3rzrnjzh18yygi3kp4wvl2wzx2azqh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pinot";
+          sha256 = "1kjzq02pddnkia637xz2mnjjyglyh6qzragnf7nnxbw9ayiim58i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pinot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pinyin = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pinyin";
+        ename = "pinyin";
+        version = "20180620.541";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "pinyin.el";
+          rev = "80b588cbf97973973fce4d720df3cf41306df2e4";
+          sha256 = "1crd90f1b603k5k9qsdbi2zdkyhqcim8xk5mqw5w20mxrf39y36n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pinyin";
+          sha256 = "1afgz62zpar6d65q4h12s7ijhhl2r2vlrnk79vsjrl560jh7hgfm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pinyin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pinyin-search = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , pinyinlib }:
+      melpaBuild {
+        pname = "pinyin-search";
+        ename = "pinyin-search";
+        version = "20160514.2058";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "pinyin-search.el";
+          rev = "2e877a76851009d41bde66eb33182a03a7f04262";
+          sha256 = "0bp4raxqv34jyg3yvdcsh9lav28x376gngm9nn8vjgmq9wggzf3i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pinyin-search";
+          sha256 = "1si693nmmxgg0kp5mxvj5nq946kfc5cv3wfsl4znbqzps8qb2b7z";
+          name = "recipe";
+        };
+        packageRequires = [ pinyinlib ];
+        meta = {
+          homepage = "https://melpa.org/#/pinyin-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pinyinlib = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "pinyinlib";
+        ename = "pinyinlib";
+        version = "20170827.1442";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "pinyinlib.el";
+          rev = "45f05d3dbb4fe957f7ab332ca6f94675848b6aa3";
+          sha256 = "0pmgb4y06dbffs4442aa92vn8ydwl45zqwzxzwhk6md1318fppvd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pinyinlib";
+          sha256 = "0kv67qa3825fw64qimkph2b65pilrsx5730y4c7f7c1f8giz5vxr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pinyinlib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pip-requirements = callPackage ({ dash
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "pip-requirements";
+        ename = "pip-requirements";
+        version = "20181027.929";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "pip-requirements.el";
+          rev = "216cd1690f80cc965d4ae47b8753fc185f778ff6";
+          sha256 = "0da3q0n5nn0l96kk49kanw5knx3jmga439zbmiii76na16bg5y3i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pip-requirements";
+          sha256 = "1wsjfyqga7pzp8gsm5x53qrkn40srairbjpifyrqbi2fpzmwhrnz";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/pip-requirements";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pipenv = callPackage ({ emacs
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "pipenv";
+        ename = "pipenv";
+        version = "20180718.2247";
+        src = fetchFromGitHub {
+          owner = "pwalsh";
+          repo = "pipenv.el";
+          rev = "05e98e80be2dd92f14ffb9f6048f98547a9f0253";
+          sha256 = "1gdy31nlxac1c500jpcnvgb32lcg0xfqgiiyci4s958cwn1yn704";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pipenv";
+          sha256 = "110ddg6yjglp49rgn1ck41rl97q92nm6zx86mxjmcqq35cxmc6g1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/pipenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pippel = callPackage ({ dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "pippel";
+        ename = "pippel";
+        version = "20180710.156";
+        src = fetchFromGitHub {
+          owner = "brotzeit";
+          repo = "pippel";
+          rev = "21a5200e8e5ccaa1911abb4ebf090b76ca839756";
+          sha256 = "1amqjm6kn1xda058kdwq3xgk7raz6y9iw0mzrac78sgf57qaczyb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pippel";
+          sha256 = "1li4h0dff1n7njy2lk3d50ndrlw84fphmdg16j0srkbgy7xz90yn";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/pippel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pivotal-tracker = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "pivotal-tracker";
+        ename = "pivotal-tracker";
+        version = "20170720.816";
+        src = fetchFromGitHub {
+          owner = "jxa";
+          repo = "pivotal-tracker";
+          rev = "0311d117037c74512149a4a78b269c2e46d7dfba";
+          sha256 = "0g3xzh8jr9lbg6h2hk81cdyxkxx3l79qhxrp4g34rc0dml79rzf9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pivotal-tracker";
+          sha256 = "0yiyz11sd25ybgr2qmg62qqmcz96va1pq3q866cqmpl38xn7znpj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pivotal-tracker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pixie-mode = callPackage ({ clojure-mode
+                              , fetchFromGitHub
+                              , fetchurl
+                              , inf-clojure
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "pixie-mode";
+        ename = "pixie-mode";
+        version = "20180625.2241";
+        src = fetchFromGitHub {
+          owner = "johnwalker";
+          repo = "pixie-mode";
+          rev = "a40c2632cfbe948852a5cdcfd44e6a65db11834d";
+          sha256 = "11c5gv88chh7sg2i0rzisbad0mkq1zc7dyi5md8hdi5gqm68704g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pixie-mode";
+          sha256 = "16z15yh78837k548xk5widdmy6fv03vym6q54i40knmgf5cllsl8";
+          name = "recipe";
+        };
+        packageRequires = [ clojure-mode inf-clojure ];
+        meta = {
+          homepage = "https://melpa.org/#/pixie-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pixiv-novel-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "pixiv-novel-mode";
+        ename = "pixiv-novel-mode";
+        version = "20160220.621";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "pixiv-novel-mode.el";
+          rev = "0d1ca524d92b91f20a7105402a773bc21779b434";
+          sha256 = "18rvnvm097ca4yc1nfswdv7dfqg36insnif5kfj19aa60m9qxl09";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pixiv-novel-mode";
+          sha256 = "0f1rxvf9nrw984122i6dzsgik9axfjv6yscmg203s065n9lz17px";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pixiv-novel-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pkg-info = callPackage ({ epl
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pkg-info";
+        ename = "pkg-info";
+        version = "20150517.443";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "pkg-info.el";
+          rev = "4dbe328c9eced79e0004e3fdcd7bfb997a928be5";
+          sha256 = "1xkdbyhz9mgdz5zmjm4hh050klsl12w5lkckw2l77ihcxv0vjnf2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pkg-info";
+          sha256 = "1k23hmpcq534060qcxbrv4g6bw9nzcbjg192mbdp20kwidw7p81n";
+          name = "recipe";
+        };
+        packageRequires = [ epl ];
+        meta = {
+          homepage = "https://melpa.org/#/pkg-info";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pkgbuild-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "pkgbuild-mode";
+        ename = "pkgbuild-mode";
+        version = "20181116.531";
+        src = fetchFromGitHub {
+          owner = "juergenhoetzel";
+          repo = "pkgbuild-mode";
+          rev = "c27b65c3deb116b296cef013f342159d9dec5c11";
+          sha256 = "1c403mqkf0h7ls2nbbp37z3nv1ixh0rksd66v6syjjqqh7m4sc12";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pkgbuild-mode";
+          sha256 = "1lp7frjahcpr4xnzxz77qj5hbpxbxm2g28apkixrnc1xjha66v3x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pkgbuild-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plain-theme = callPackage ({ emacs
+                               , fetchFromGitLab
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "plain-theme";
+        ename = "plain-theme";
+        version = "20171123.2010";
+        src = fetchFromGitLab {
+          owner = "yegortimoshenko";
+          repo = "plain-theme";
+          rev = "2609a811335d58cfb73a65d6307c156fe09037d3";
+          sha256 = "0g5vl4xigdm2pn2mnkwgj1kxdjr66w7ynr77bchy3ij6qvzdzkqd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plain-theme";
+          sha256 = "10qq7cy6hqh6c8qi796y9lk4wyyjbhdn1pvkcw3g29cfh857x50m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/plain-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plan9-theme = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "plan9-theme";
+        ename = "plan9-theme";
+        version = "20180804.741";
+        src = fetchFromGitHub {
+          owner = "john2x";
+          repo = "plan9-theme.el";
+          rev = "4c1050b8ed42e0f99ef64c77ec370a786bd0003c";
+          sha256 = "1l2bgdip617zkd9470rja1qyijpc896dvmc6dgclvaz1ajgjwa9j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plan9-theme";
+          sha256 = "0bvr877mc79s1shr82b33ipspz09jzc3809c6pkbw0jqpfid44cc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/plan9-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    planet-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "planet-theme";
+        ename = "planet-theme";
+        version = "20161030.1917";
+        src = fetchFromGitHub {
+          owner = "cmack";
+          repo = "emacs-planet-theme";
+          rev = "b0a310ff36565fe22224c407cf59569986698a32";
+          sha256 = "1xdj59skmldq5dnarirhwq4qycipas86nbyqwl8zsv0bh20nl1rs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/planet-theme";
+          sha256 = "1hr5m08qn51r9804jd0k95ryz3frzkk1dp6wpybil6bf67a2l5lr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/planet-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plantuml-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "plantuml-mode";
+        ename = "plantuml-mode";
+        version = "20180816.312";
+        src = fetchFromGitHub {
+          owner = "skuro";
+          repo = "plantuml-mode";
+          rev = "82ab084c8631e70b089448ace72525f647af4f10";
+          sha256 = "0jcsbswpg41r27i5xb5lvw17n1kndwl8df9iwyhpm26jh2i2hpyv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plantuml-mode";
+          sha256 = "03srbg34512vxcqn95q4r7h2aqbqq0sd5c9ffnbx2a75vsblqc6h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/plantuml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plaster = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "plaster";
+        ename = "plaster";
+        version = "20180127.1250";
+        src = fetchFromGitHub {
+          owner = "Shirakumo";
+          repo = "plaster";
+          rev = "11eb23920410818fe444887b97ad4c8722d66c85";
+          sha256 = "0lqz8m8a2ahvgm0i9cz0j4bisi34czc4s29z70p5p6rdg4g21fk1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plaster";
+          sha256 = "0vfixc0f5n4flsmdf1iqlbx03yv28w3nqm1ycz2fx6p5jvhkvfqk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/plaster";
+          license = lib.licenses.free;
+        };
+      }) {};
+    platformio-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , projectile }:
+      melpaBuild {
+        pname = "platformio-mode";
+        ename = "platformio-mode";
+        version = "20161210.539";
+        src = fetchFromGitHub {
+          owner = "ZachMassia";
+          repo = "PlatformIO-Mode";
+          rev = "1466aed132a77f48fcb31938d64abb1a1e58ec42";
+          sha256 = "1lfkp7df8as9gspynkyhz4dbm95kbngyba1ymg6ql67adyv79v1i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/platformio-mode";
+          sha256 = "1v1pp3365wj19a5wmsxyyy5n548z3lmcbm2pwl914wip3ca7546f";
+          name = "recipe";
+        };
+        packageRequires = [ projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/platformio-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    play-crystal = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , request }:
+      melpaBuild {
+        pname = "play-crystal";
+        ename = "play-crystal";
+        version = "20180114.224";
+        src = fetchFromGitHub {
+          owner = "veelenga";
+          repo = "play-crystal.el";
+          rev = "86b54346e7c832c14f8e5654a462f6490a6b11d7";
+          sha256 = "0kvkr24f8r21pahm2lsvbr9bg53770wxwpdfmmjljs2zmgxf2c40";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/play-crystal";
+          sha256 = "1jqf36b1mhyf4j7fs386g6isy09q7k8zwdc4rb34mhjg1a56gcnf";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/play-crystal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    play-routes-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "play-routes-mode";
+        ename = "play-routes-mode";
+        version = "20170426.33";
+        src = fetchFromGitHub {
+          owner = "brocode";
+          repo = "play-routes-mode";
+          rev = "ef8230932f7bb96643febbd6872c522932f9571a";
+          sha256 = "1wv4wnkcdlq5qvxr55wgs6dc64m69r0niz0r5h2ch9d5nclmvbkh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/play-routes-mode";
+          sha256 = "17phqil2zf5rfvhs5v743dh4lix4v2azbf33z9n97ahs7j66y2gz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/play-routes-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    playerctl = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "playerctl";
+        ename = "playerctl";
+        version = "20180301.554";
+        src = fetchFromGitHub {
+          owner = "thomasluquet";
+          repo = "playerctl.el";
+          rev = "c75358240a9bc234f31fc3e652929b103b1238b9";
+          sha256 = "1yf66kw967xminfwzzdfzimh1313m3lm946bmcdl1zb8db0fcrdc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/playerctl";
+          sha256 = "1pix3hcsg6ymzajiixwcq4v3clvadpkl0rhplkhachv6wmci327x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/playerctl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    playground = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "playground";
+        ename = "playground";
+        version = "20180623.2026";
+        src = fetchFromGitHub {
+          owner = "akirak";
+          repo = "emacs-playground";
+          rev = "85ab8ce4b574254eead623a3553082a9e6e655af";
+          sha256 = "0m780v6h3mjib5hmmv3afjnmh562v5c13l6vam4nnhj4qrq33ri8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/playground";
+          sha256 = "1xjmxkl8h4l87fvv1sr478r6mkmy9gkzw2fxmzqn5fcsahzkyg4d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/playground";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plenv = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "plenv";
+        ename = "plenv";
+        version = "20130706.2316";
+        src = fetchFromGitHub {
+          owner = "karupanerura";
+          repo = "plenv.el";
+          rev = "ee937d0f3a1a7ba2d035f45be896d3ed8fefaee2";
+          sha256 = "11cbpgjsnw8fiqf1s12hbm9qxgjcw6y2zxx7wz4wg7idmi7m0b7g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plenv";
+          sha256 = "0dw9fy5wd9wm76ag6yyw3f9jnlj7rcdcxgdjm30h514qfi9hxbw4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/plenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plim-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "plim-mode";
+        ename = "plim-mode";
+        version = "20140812.1713";
+        src = fetchFromGitHub {
+          owner = "dongweiming";
+          repo = "plim-mode";
+          rev = "98cd6d11b7ff3ee7b6cb8845f143b5a692a3e6e8";
+          sha256 = "1mcd6c3kgq9a5mv9c9di042vqicjp16nm9i6kz0p8ij3hk2ib22i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plim-mode";
+          sha256 = "1nrqw5dvb3j5x3wkpsjbpv1d2s367icq9j4h1xv1cahfsn8nn4m9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/plim-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plsense = callPackage ({ auto-complete
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , log4e
+                           , melpaBuild
+                           , yaxception }:
+      melpaBuild {
+        pname = "plsense";
+        ename = "plsense";
+        version = "20151104.645";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-plsense";
+          rev = "d50f9dccc98f42bdb42f1d1c8142246e03879218";
+          sha256 = "1r2yxa7gqr0z9fwhx38siwjpg73a93rdmnhr4h6nm6lr32vviyxm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plsense";
+          sha256 = "1ka06r4ashhjkfyzql9mfvs3gj7n684h4gaycj29w4nfqrhcw9va";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/plsense";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plsense-direx = callPackage ({ direx
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , log4e
+                                 , melpaBuild
+                                 , plsense
+                                 , yaxception }:
+      melpaBuild {
+        pname = "plsense-direx";
+        ename = "plsense-direx";
+        version = "20140520.1308";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "plsense-direx";
+          rev = "8a2f465264c74e04524cc789cdad0190ace43f6c";
+          sha256 = "0s34nbqqy6aqi113xj452pbmqp43046wfbfbbfv1xwhybgq0c1j1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plsense-direx";
+          sha256 = "0qd4b7gkmn5ydadhp70995rap3643s1aa8gfi5izgllzhg0i864j";
+          name = "recipe";
+        };
+        packageRequires = [ direx log4e plsense yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/plsense-direx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plur = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "plur";
+        ename = "plur";
+        version = "20160504.224";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "plur";
+          rev = "5bdd3b9a2f0624414bd596e798644713cd1545f0";
+          sha256 = "0qlxj19hj96l4lw81xh5r14ppf6kp63clikk060s9yw00q7gnl6a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plur";
+          sha256 = "0nf1dc7xf2zp316rssnz8sv374akcr54hp0rb219qvgyck9bdqiv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/plur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pmdm = callPackage ({ fetchhg
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "pmdm";
+        ename = "pmdm";
+        version = "20151109.1036";
+        src = fetchhg {
+          url = "https://bitbucket.com/inigoserna/pmdm.el";
+          rev = "f50a54774156";
+          sha256 = "0x3s9fj41n6a21la762qm1si9ysv3zj5bbp6ykfskr73sxq6s9ff";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pmdm";
+          sha256 = "1zmy6cbnqhsbwc5vx30mx45xn88d2186hgrl75ws7vvbl197j03b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pmdm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    po-mode = callPackage ({ fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "po-mode";
+        ename = "po-mode";
+        version = "20180505.415";
+        src = fetchgit {
+          url = "https://git.savannah.gnu.org/git/gettext.git";
+          rev = "a57ffdb2f17d040a737e84114544fcd748fa87fa";
+          sha256 = "19qg3l6w2lapjv73yvjiy5mj6j8kv7ch1gjpx2b86y2y5mqrqii7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/po-mode";
+          sha256 = "0km19n87iqd6m6n23h46b6225zyvava9jbx6b8frna3sjwb4ls7w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/po-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pocket-api = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , request }:
+      melpaBuild {
+        pname = "pocket-api";
+        ename = "pocket-api";
+        version = "20180402.1809";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "pocket-api.el";
+          rev = "3eb9430b9db90bc02e736e433eb86389f7655189";
+          sha256 = "0k6a9zzdi02g677cc699llk04i06yb7ddnlnmxndap5jszfyqwfi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pocket-api";
+          sha256 = "1f5j491wbqgbx6zlb0zdajca5il0628vr9a38y0n3x0h69wm0cx5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/pocket-api";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pocket-lib = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , kv
+                              , lib
+                              , melpaBuild
+                              , request
+                              , s }:
+      melpaBuild {
+        pname = "pocket-lib";
+        ename = "pocket-lib";
+        version = "20180711.1723";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "pocket-lib.el";
+          rev = "8dd89153472d2e49bf9a3b3507b93c2acf0b44ac";
+          sha256 = "05wyi3mj8mhswdajyng10r0z6ai2y9gh888x8bskdvxdnd772glk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pocket-lib";
+          sha256 = "0v619blifmvm36dr773wjf35fjji4dj3pyck9nkz0m8zmpz0fg78";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs kv request s ];
+        meta = {
+          homepage = "https://melpa.org/#/pocket-lib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pocket-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , pocket-api }:
+      melpaBuild {
+        pname = "pocket-mode";
+        ename = "pocket-mode";
+        version = "20171201.515";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "pocket-mode";
+          rev = "229de7d35b7e5605797591c46aa8200d7efc363c";
+          sha256 = "0j3axac4lp7p00a7mf7frryqg1y3jwqaw0s475gz606642vg9l45";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pocket-mode";
+          sha256 = "04zxll5yg021m13vr54w2pnrmqb87ykdbpa8nx2wn9myg2rywh0v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pocket-api ];
+        meta = {
+          homepage = "https://melpa.org/#/pocket-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pocket-reader = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , ht
+                                 , kv
+                                 , lib
+                                 , melpaBuild
+                                 , org-web-tools
+                                 , ov
+                                 , pocket-lib
+                                 , rainbow-identifiers
+                                 , s }:
+      melpaBuild {
+        pname = "pocket-reader";
+        ename = "pocket-reader";
+        version = "20180819.1307";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "pocket-reader.el";
+          rev = "0eb2e678b3fdc8899e420e6ecca03a2ada4b6283";
+          sha256 = "0060h0g2992iw030qp5fr81gl0cac43dj9w2apzslp7dqmk3d9df";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pocket-reader";
+          sha256 = "0gcgmz4mhjgvqbh2gmv8v09sy80cnfccjym455m0fbl31b8dczhf";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          emacs
+          ht
+          kv
+          org-web-tools
+          ov
+          pocket-lib
+          rainbow-identifiers
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/pocket-reader";
+          license = lib.licenses.free;
+        };
+      }) {};
+    podcaster = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "podcaster";
+        ename = "podcaster";
+        version = "20161020.835";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "podcaster";
+          rev = "9854517025deb5d556168a68955fb7b662239f5c";
+          sha256 = "06ag0idz7cf6i9kg7kqr03js9b6cw6my1jzd1x3wkgazx5slqk4q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/podcaster";
+          sha256 = "1kzac0mhg8dk2vfk29ns36jl8vwg6ghbdb3n6kqfzci5ygn96yib";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/podcaster";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poet-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "poet-theme";
+        ename = "poet-theme";
+        version = "20180923.2029";
+        src = fetchFromGitHub {
+          owner = "kunalb";
+          repo = "poet";
+          rev = "44439fd84143632760abfd5d8a65436e787955fd";
+          sha256 = "1pdyy7zq5hyrzhrpyw2mrmn54w4qxk7c9z0qn1b0lrq55vd18scr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poet-theme";
+          sha256 = "0pllyp4spj30g6ihzc91hzvnrvcg2zb49adj8wcmbzvq3hxnvls1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/poet-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    point-pos = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "point-pos";
+        ename = "point-pos";
+        version = "20170421.932";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "point-pos.el";
+          rev = "f4126b64567a81e7f22058f09d56c63b2ff06632";
+          sha256 = "1sbwz9kxvnd5r24q9x6bhcjajjnm2z8q6khgqs4gl4ycs60kn0s6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/point-pos";
+          sha256 = "1zv6hx8i8jwq52j4la1ff0ar0bpbs2pb4gcsh9hypghba11gnync";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/point-pos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    point-stack = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "point-stack";
+        ename = "point-stack";
+        version = "20170808.958";
+        src = fetchFromGitHub {
+          owner = "dgutov";
+          repo = "point-stack";
+          rev = "76e17311e3a810314c7d31ac46dc55450ff30fa2";
+          sha256 = "1sp3djnyg3f5ci43m4pi0f6clblrz5lrnzc415r87csbavqqgv2z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/point-stack";
+          sha256 = "0201gka1izqgxyivan60jbg9x1mmsw5dscxacasg97ffsciwbfr9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/point-stack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pointback = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "pointback";
+        ename = "pointback";
+        version = "20100210.752";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "pointback";
+          rev = "e3a02c1784d81b5a1d2477338d049af581ed19f8";
+          sha256 = "016cjy5pnnqccjqb0njqc9jq6kf6p165nlki83b8c0sj75yxghav";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pointback";
+          sha256 = "198q511hixvzc13b3ih89xs9g47rdvbiixn5baqakpmpx3a12hz4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pointback";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pollen-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "pollen-mode";
+        ename = "pollen-mode";
+        version = "20181021.1830";
+        src = fetchFromGitHub {
+          owner = "lijunsong";
+          repo = "pollen-mode";
+          rev = "3b57f40f78eb4458e7be41dc4051f9cf0ff6982e";
+          sha256 = "0ddi08v94vjrvf6nwk18mppfp17d934r0wksw1h34szi7qf05hx7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pollen-mode";
+          sha256 = "1kskvdh6rczlki724h5xym8s4iychqzm0i82qdj87x1cg1kx9i85";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pollen-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-R = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , poly-markdown
+                          , poly-noweb
+                          , polymode }:
+      melpaBuild {
+        pname = "poly-R";
+        ename = "poly-R";
+        version = "20181024.1354";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-R";
+          rev = "b9236aab9043747bf764703e7b84f3c6bb526dec";
+          sha256 = "0dipnlk79mnlw3mw9n7cp6dl0j1nfhaf04j8w4mhp4afpkfwbr3c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-R";
+          sha256 = "1v2was6pdynwm22b4n2hkwyrr0c0iir9kp1wz4hjab8haqxz68ii";
+          name = "recipe";
+        };
+        packageRequires = [ emacs poly-markdown poly-noweb polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-R";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-erb = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , polymode }:
+      melpaBuild {
+        pname = "poly-erb";
+        ename = "poly-erb";
+        version = "20181019.702";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-erb";
+          rev = "61fa4640a1cb08120c2c70bfc32029cc79b31b79";
+          sha256 = "15k2gmjkn9w5gn7njh8nyr8whhn8xc1hcqqn2as2p1b6m2jh0xcl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-erb";
+          sha256 = "01c1z2jll497k1y8835pp54n121y0gkyz1pdxcdjjqv7ia8jwfyy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-erb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-markdown = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , markdown-mode
+                                 , melpaBuild
+                                 , polymode }:
+      melpaBuild {
+        pname = "poly-markdown";
+        ename = "poly-markdown";
+        version = "20181010.1437";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-markdown";
+          rev = "bf41bd2f30066573f562c674d38b9e42a43ed016";
+          sha256 = "0w2xy1cksik332qs1i26imxiyd89vbfy3ff7di4b3l14cxz6ybra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-markdown";
+          sha256 = "0pxai5x2vz6j742s3bpcy82dxja6441fsgclhz1hbv2ykazbm141";
+          name = "recipe";
+        };
+        packageRequires = [ emacs markdown-mode polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-markdown";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-noweb = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , polymode }:
+      melpaBuild {
+        pname = "poly-noweb";
+        ename = "poly-noweb";
+        version = "20181010.1437";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-noweb";
+          rev = "f27f09184573c579bfcd164ba995e8b5bfb84954";
+          sha256 = "096a2bm1i2ngyv4gdy0gz8bnwmgr50b4chvryxg2fh840p07540f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-noweb";
+          sha256 = "1692js29wdjpxvcbcaxysbsq6pxdqr38frqf88ksldlz35cmy62b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-noweb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-org = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , polymode }:
+      melpaBuild {
+        pname = "poly-org";
+        ename = "poly-org";
+        version = "20181010.1437";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-org";
+          rev = "2465f1d252940f13555252ef7b8e4d02ee3956ce";
+          sha256 = "1xw6h7qcva4529vs8v13gsw5zdcgc1sky7i3vbhcchxkm3d4ffdb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-org";
+          sha256 = "1xrhdjmz3p5d3sgbfpmf6wksa1cpxqhy1wg17b5x8ah4w4yhpdca";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-ruby = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , polymode }:
+      melpaBuild {
+        pname = "poly-ruby";
+        ename = "poly-ruby";
+        version = "20180905.229";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "poly-ruby.el";
+          rev = "794ebb926ace23e9c1398da934701951432dcea2";
+          sha256 = "1ffm81hg1gah7hb9x556hda5g4j3gk4c986q9gaacvfizqak3gyy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-ruby";
+          sha256 = "0d8s6bl5ynx0r5cwvfkd52rksiq5kdyrgbxds56r8ls6cfkwqngg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-slim = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , polymode
+                             , slim-mode }:
+      melpaBuild {
+        pname = "poly-slim";
+        ename = "poly-slim";
+        version = "20181010.1438";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-slim";
+          rev = "2216d7edf315ab8df1e01c2a826041bcdb8bcd01";
+          sha256 = "0wcfacd5wpi52glfz4snxh8ghff2qlv8d1jwj890297ikmk7mn1g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-slim";
+          sha256 = "15nh0d8y79rwc24akxfpf346jypadfgjjn6vlgaj6xjnj7wsp7ax";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode slim-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-slim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    polymode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "polymode";
+        ename = "polymode";
+        version = "20181118.344";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "polymode";
+          rev = "ce328b8c9526f495536e4502fc6f606e1b2b8d06";
+          sha256 = "0nws80k2ljyspf8farj1080f1sj1yqykm19y90hcfm4k3ir08262";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/polymode";
+          sha256 = "15i9masklpy4iwskc7dzqjhb430ggn0496z4wb1zjj0b9xx4wj66";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/polymode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pomidor = callPackage ({ alert
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pomidor";
+        ename = "pomidor";
+        version = "20180614.128";
+        src = fetchFromGitHub {
+          owner = "TatriX";
+          repo = "pomidor";
+          rev = "8859aecdb48b76a36c5e251793da0f108b2dfeb4";
+          sha256 = "07amyi7i6jb8byv4gmyhadiyyqwpd9d64aayr826x7pnzx5gcg5s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pomidor";
+          sha256 = "0pdzipyza98dhnz6am8lrmz8fh3p1c21v2mhs56fb9lwyvcgv8fi";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pomidor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pomodoro = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pomodoro";
+        ename = "pomodoro";
+        version = "20150716.1046";
+        src = fetchFromGitHub {
+          owner = "baudtack";
+          repo = "pomodoro.el";
+          rev = "4a299b8f5e6623010224dcb3e524ff288c6a082c";
+          sha256 = "1dlk0ypw8316vgvb7z2p7fvaiz1wcy1l8crixypaya1zdsnh9v1z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pomodoro";
+          sha256 = "075sbypas8xlhsw8wg3mgi3fn5yf7xb3klyjgyy8wfkgdz0269f8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pomodoro";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pony-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "pony-mode";
+        ename = "pony-mode";
+        version = "20170807.822";
+        src = fetchFromGitHub {
+          owner = "davidmiller";
+          repo = "pony-mode";
+          rev = "760684d30b6c234d1b88c9a4673a808f36f7f341";
+          sha256 = "1y4gxn25i2nszdhqq8jxf9h65mqfgcwbypx5p4wkan5i1v2i3yr1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pony-mode";
+          sha256 = "1hgiryhpxv30bjlgv9pywzqn2ypimwzdhx03znqvn56zrwn1frnl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pony-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pony-snippets = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , yasnippet }:
+      melpaBuild {
+        pname = "pony-snippets";
+        ename = "pony-snippets";
+        version = "20160204.2011";
+        src = fetchFromGitHub {
+          owner = "SeanTAllen";
+          repo = "pony-snippets";
+          rev = "a6615ab0693f17fc47ec45753202010238157810";
+          sha256 = "002jhj47b9aqrfjy8b31ccbqhah5sn9wn7dmrhm1wbbgj9rfyw6s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pony-snippets";
+          sha256 = "12ygvpfkzldq6s4mwbrxs4x9927i7pa7ywn7lf1r3gg4h29ar9gn";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/pony-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ponylang-mode = callPackage ({ dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ponylang-mode";
+        ename = "ponylang-mode";
+        version = "20180804.821";
+        src = fetchFromGitHub {
+          owner = "SeanTAllen";
+          repo = "ponylang-mode";
+          rev = "963abdcdb398b71fb13a4f7d2ffde23eb20e2a23";
+          sha256 = "1h0y6x4h7higwdq569h2lk0iddd23c3csqjk7y5phvc0lq812xs0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ponylang-mode";
+          sha256 = "02fq0qp7f4bzmynzszrwskfs78nzsmf413qjxqndrh3hamixzpi1";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ponylang-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pophint = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , log4e
+                           , melpaBuild
+                           , yaxception }:
+      melpaBuild {
+        pname = "pophint";
+        ename = "pophint";
+        version = "20170917.1948";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-pophint";
+          rev = "909025c5a871ca4b9ec7aed7f1a27c819a94dba1";
+          sha256 = "0qbb36qijkzbzxlmqsvvddm7x2gk9rkafnyjbkxsl76rz1ajy6nz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pophint";
+          sha256 = "1chq2j79hg095jxw5z3pz4qicqrccw0gj4sxrin0a55hnprzzp72";
+          name = "recipe";
+        };
+        packageRequires = [ log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/pophint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poporg = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "poporg";
+        ename = "poporg";
+        version = "20170403.51";
+        src = fetchFromGitHub {
+          owner = "QBobWatson";
+          repo = "poporg";
+          rev = "2c58d68c81ecca4140bf179f19ed153ec804b65a";
+          sha256 = "1ymqhy0sqd54z154s3cm6q1m4xnr9wkx9dl5f93845k11ay3kvln";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poporg";
+          sha256 = "08s42689kd78h2fmw230ja5dd3c3b4lx5mzadncwq0lj91y86kd8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/poporg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popup = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "popup";
+        ename = "popup";
+        version = "20160709.729";
+        src = fetchFromGitHub {
+          owner = "auto-complete";
+          repo = "popup-el";
+          rev = "e452399db8bb0a8906c627f598eb8f0dcfca5572";
+          sha256 = "07jcpdjk33nw82wx872fp2dph025kb0szfnbgc2xs56i11141371";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popup";
+          sha256 = "151g00h9rkid76qf6c53n8bncsfaikmhj8fqcb3r3a6mbngcd5k2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/popup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popup-complete = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , popup }:
+      melpaBuild {
+        pname = "popup-complete";
+        ename = "popup-complete";
+        version = "20141108.1908";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-popup-complete";
+          rev = "e362d4a005b36646ffbaa6be604e9e31bc406ca9";
+          sha256 = "084hb3zn1aiabbyxgaalszb2qjf9z64z960ks5fvz8nh7n6y7ny4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popup-complete";
+          sha256 = "04bpm31zx87j390r2xi1yl4kyqgalmyqc48xarsm67zfww9fw9c1";
+          name = "recipe";
+        };
+        packageRequires = [ popup ];
+        meta = {
+          homepage = "https://melpa.org/#/popup-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popup-edit-menu = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "popup-edit-menu";
+        ename = "popup-edit-menu";
+        version = "20170404.725";
+        src = fetchFromGitHub {
+          owner = "debugfan";
+          repo = "popup-edit-menu";
+          rev = "925600a6e29183841199e866cf55e566a6a1b002";
+          sha256 = "1dd0ss7cjdjs3c7vkq8p874408iysih80brc8vlfh1f43cnc5v92";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popup-edit-menu";
+          sha256 = "1mqni09l1xfxv4g64hskpsla41r5d2xfbw81ncbszwqzlln6k5bf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/popup-edit-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popup-imenu = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , flx-ido
+                               , lib
+                               , melpaBuild
+                               , popup }:
+      melpaBuild {
+        pname = "popup-imenu";
+        ename = "popup-imenu";
+        version = "20170326.340";
+        src = fetchFromGitHub {
+          owner = "ancane";
+          repo = "popup-imenu";
+          rev = "c5e2e69adbd3a630e4cb750965a1aee8c10c1f09";
+          sha256 = "0vn0jli0ya7xnapifkgzynbnh3rpnzb82j5k9bla2j4miqfc6cg8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popup-imenu";
+          sha256 = "0lxwfaa9vhdn55dj3idp8c3fg1g26qsqq46y5bimfd0s89bjbaxn";
+          name = "recipe";
+        };
+        packageRequires = [ dash flx-ido popup ];
+        meta = {
+          homepage = "https://melpa.org/#/popup-imenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popup-kill-ring = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , popup
+                                   , pos-tip }:
+      melpaBuild {
+        pname = "popup-kill-ring";
+        ename = "popup-kill-ring";
+        version = "20131020.1154";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "popup-kill-ring";
+          rev = "dc50b62ae8b7c2675dde96bb410d9bf0e8643f6a";
+          sha256 = "0bpnsc4agy6mcnc79d9a6gi79jiiqrhf3a55pw0p4z16m86vwyqr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popup-kill-ring";
+          sha256 = "1jfw669xi2983jj3hiw5lyhc0rc0318qrmqx03f7m4ylg70dgxip";
+          name = "recipe";
+        };
+        packageRequires = [ popup pos-tip ];
+        meta = {
+          homepage = "https://melpa.org/#/popup-kill-ring";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popup-switcher = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , popup }:
+      melpaBuild {
+        pname = "popup-switcher";
+        ename = "popup-switcher";
+        version = "20171205.51";
+        src = fetchFromGitHub {
+          owner = "kostafey";
+          repo = "popup-switcher";
+          rev = "f5788a31918e37bb5c04139048c667bcec9f1b62";
+          sha256 = "0gfi8dlgynciv3q5a208c7gd66g2r99b3zn0i31ibpppjqy2vcsk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popup-switcher";
+          sha256 = "1888xiqhrn7fcpjnr3smchmmqwfayfbbyvdkdb79c6drzjcvidp1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib popup ];
+        meta = {
+          homepage = "https://melpa.org/#/popup-switcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popwin = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "popwin";
+        ename = "popwin";
+        version = "20150315.600";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "popwin-el";
+          rev = "95dea14c60019d6cccf9a3b33e0dec4e1f22c304";
+          sha256 = "0nips9npm4zmz3f37vvb4s0g1ci0p9cl6w0z4sc6agg4rybjhpdp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popwin";
+          sha256 = "1zp54nv8rh0b3g8y5aj4793miiw2r1ijwbzq31lkwmbdr09mixmf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/popwin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    portage-navi = callPackage ({ concurrent
+                                , ctable
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "portage-navi";
+        ename = "portage-navi";
+        version = "20141208.555";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-portage-navi";
+          rev = "8016c3e99fe6cef101d479a3d69185796b22ca2f";
+          sha256 = "1pm4x74pw67m2izr9dir201dn5g9icgk6h2j8rqvasgx8v8krv3i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/portage-navi";
+          sha256 = "1wjkh8xj5120v9fz1nrpkd6x4f22ni8h2lfkd82df7kjz6bzdfwg";
+          name = "recipe";
+        };
+        packageRequires = [ concurrent ctable ];
+        meta = {
+          homepage = "https://melpa.org/#/portage-navi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pos-tip = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pos-tip";
+        ename = "pos-tip";
+        version = "20150318.813";
+        src = fetchFromGitHub {
+          owner = "pitkali";
+          repo = "pos-tip";
+          rev = "051e08fec5cf30b7574bdf439f79fef7d42d689d";
+          sha256 = "168hl76rhj6f5ncmrij4rd3z55228h6kb23384h2phsjw0avgf23";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pos-tip";
+          sha256 = "13qjz112qlrnq34lr70087gshzq8m44knfl6694hfprzjgix84vh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pos-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    posframe = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "posframe";
+        ename = "posframe";
+        version = "20180926.2302";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "posframe";
+          rev = "2f4baf00ab9184dff75ec97fc520d1c91e1acb9c";
+          sha256 = "1y22ayhb4sv3iwbrj43whyz9qw3qcqb1l1jh0iw7bm1inhy4m3ja";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/posframe";
+          sha256 = "02chwkc7gn7fxaaxsz9msmrhrd62bji5hhb71kdm019x8d84z06w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/posframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    postcss-sorting = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "postcss-sorting";
+        ename = "postcss-sorting";
+        version = "20180211.156";
+        src = fetchFromGitHub {
+          owner = "P233";
+          repo = "postcss-sorting.el";
+          rev = "deb0c935d2904c11a965758a9aee5a0e905f21fc";
+          sha256 = "03kng7i09px5vizvmmrar7rj3bk27y43bi8hlzxax0ja27k0c66c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/postcss-sorting";
+          sha256 = "0730b2wddal15yi4k6wzhv9xv1k40iwrn3mivg9bkxabh3mgrl10";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/postcss-sorting";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pov-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pov-mode";
+        ename = "pov-mode";
+        version = "20161114.2343";
+        src = fetchFromGitHub {
+          owner = "melmothx";
+          repo = "pov-mode";
+          rev = "9fc1db3aab7c27155674dd1a87ec62606035d074";
+          sha256 = "1399fxivy15y2k4vp7vqqgsi8l1mzxc8aa2mf2x1hksgiyq60acp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pov-mode";
+          sha256 = "1xzdmlfi5ixdh08v0ca80zkh9n3gfn4ql5pnl3jh745wbj9azxp9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pov-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pow = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "pow";
+        ename = "pow";
+        version = "20140420.106";
+        src = fetchFromGitHub {
+          owner = "yukihr";
+          repo = "emacs-pow";
+          rev = "782532d5d3582fe8fd67014507b20077f3f2d292";
+          sha256 = "0d87h67qk7jw4fpq3kzzsh5v1k2nhrz6yfl1hzi7hqm5mdvnbfc9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pow";
+          sha256 = "13f3pk52f9lkkl3zi6448j9b39kn6ny9vmnlsvhwa6s0vaz8f220";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    powerline = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "powerline";
+        ename = "powerline";
+        version = "20180321.1948";
+        src = fetchFromGitHub {
+          owner = "milkypostman";
+          repo = "powerline";
+          rev = "af5ef31a33c3589a9be0b2a55a2741582e605efd";
+          sha256 = "0zynj4pl9717xbj8g1mac3haiybdndb034bnqk03bb42iyrwy767";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/powerline";
+          sha256 = "0gsffr6ilmckrzifsmhwd42vr85vs42pc26f1205pbxb7ma34dhx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/powerline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    powerline-evil = callPackage ({ evil
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , powerline }:
+      melpaBuild {
+        pname = "powerline-evil";
+        ename = "powerline-evil";
+        version = "20151112.710";
+        src = fetchFromGitHub {
+          owner = "raugturi";
+          repo = "powerline-evil";
+          rev = "98b3a102b6dba6632aa0755a7257300c9b164309";
+          sha256 = "1c8y4r7zdr6764kzs5bc64idv2pfjvi78lg2f1d2hp1595ia8y5r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/powerline-evil";
+          sha256 = "0cdnmq9f06lzkj0hs948a7j5sgg6fl5f36bfnyaxgss23akbfjhr";
+          name = "recipe";
+        };
+        packageRequires = [ evil powerline ];
+        meta = {
+          homepage = "https://melpa.org/#/powerline-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    powershell = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "powershell";
+        ename = "powershell";
+        version = "20181011.1251";
+        src = fetchFromGitHub {
+          owner = "jschaf";
+          repo = "powershell.el";
+          rev = "c9a20e5a8b02dc5d7ccd2b1974eba28a9348ad5e";
+          sha256 = "1y8bph4133n4pcvsplni0ahg14ny27vl03jxf5lhhqkh06miqqsg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/powershell";
+          sha256 = "162k8y9k2n48whaq93sqk86zy3p9qvsfxgyfv9n1nvk4l5wn70wk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/powershell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    powerthesaurus = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , request
+                                  , s }:
+      melpaBuild {
+        pname = "powerthesaurus";
+        ename = "powerthesaurus";
+        version = "20180719.208";
+        src = fetchFromGitHub {
+          owner = "SavchenkoValeriy";
+          repo = "emacs-powerthesaurus";
+          rev = "ab39b050e801934872f3dcaa60b50b0d30ecf367";
+          sha256 = "0l4rny6ssa5wmksc0g1qnyfj15qlffavflm2adcqywr660d93pq9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/powerthesaurus";
+          sha256 = "011kl3n1hfmz844w198gvh5anjyqj0m4pvryahslc0r1zavik7ni";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request s ];
+        meta = {
+          homepage = "https://melpa.org/#/powerthesaurus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ppd-sr-speedbar = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , project-persist-drawer
+                                   , sr-speedbar }:
+      melpaBuild {
+        pname = "ppd-sr-speedbar";
+        ename = "ppd-sr-speedbar";
+        version = "20151108.424";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "ppd-sr-speedbar";
+          rev = "19d3e924407f40a6bb38c8fe427a159af755adce";
+          sha256 = "0pv671j8g09pn61kkfb3pa9axfa9zd2jdrkgr81rm2gqb2vh1hsq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ppd-sr-speedbar";
+          sha256 = "1m2918hqvb9c6rgb5szs95ds99gdjdxggcbdfqzmbb5sz2936av8";
+          name = "recipe";
+        };
+        packageRequires = [ project-persist-drawer sr-speedbar ];
+        meta = {
+          homepage = "https://melpa.org/#/ppd-sr-speedbar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prassee-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "prassee-theme";
+        ename = "prassee-theme";
+        version = "20180709.304";
+        src = fetchFromGitHub {
+          owner = "prassee";
+          repo = "prassee-emacs-theme";
+          rev = "81126f69cdbaab836c00ae7a49aaf89d4229fde1";
+          sha256 = "18yqsl8jsi3zxfcigvm6fjcx84hzb8b3j7ihiyzqmdhmvma3i08y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prassee-theme";
+          sha256 = "1j0817hxxri6mq9pplgwf5jp2dagk6hay7g1a1lgz4qgkf5jnshs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/prassee-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    preproc-font-lock = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "preproc-font-lock";
+        ename = "preproc-font-lock";
+        version = "20151107.1218";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "preproc-font-lock";
+          rev = "565fda9f5fdeb0598986174a07e9fb09f7604397";
+          sha256 = "0yrfd9qaz16nqcvjyjm9qci526qgkv6k51q5752h3iyqkxnss1pd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/preproc-font-lock";
+          sha256 = "1ra0lgjv6713zym2h8pblf2ryf0f658l1khbxbwnxl023gkyj9v4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/preproc-font-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prescient = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "prescient";
+        ename = "prescient";
+        version = "20181022.1556";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "prescient.el";
+          rev = "1623a0d4e5b9a752db45923fd91da48b49c85068";
+          sha256 = "0yan4m9xf4iia4ns8kqa0zsham4h2mcnwsq9xnfwm26rkn94xrw0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prescient";
+          sha256 = "04js3hblavfrc6kqp942x5yjdl3ndazf3n64p83423ldsmhbip6s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/prescient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    preseed-generic-mode = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "preseed-generic-mode";
+        ename = "preseed-generic-mode";
+        version = "20180209.2100";
+        src = fetchFromGitHub {
+          owner = "suntong";
+          repo = "preseed-generic-mode";
+          rev = "3aa8806c4a659064baa01751400c53fbaf847f66";
+          sha256 = "02yb5xkgwqxpwghhjmxf2gx0faifi04w2jd8cvfsiwzwqmqyhmv7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/preseed-generic-mode";
+          sha256 = "14vbx6y7h4vqc5kkgj4mbr9zj6gqf6ib3hh2917m203s8y87lsfl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/preseed-generic-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    presentation = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "presentation";
+        ename = "presentation";
+        version = "20180426.1924";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "emacs-presentation-mode";
+          rev = "b1948e6d8b37b6df9290d77d181e1b1d58dd33c0";
+          sha256 = "0wm7rg7gvyngps3b7agpyhhbi2r7z0n5x8wxzahl8l1bm820y8jk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/presentation";
+          sha256 = "0zdpfvg6kbvi6b4lb7vbdjrkgk0j1q6gzyd0s2b0603fnyy4sqdg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/presentation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prettier-js = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "prettier-js";
+        ename = "prettier-js";
+        version = "20180108.2326";
+        src = fetchFromGitHub {
+          owner = "prettier";
+          repo = "prettier-emacs";
+          rev = "0e8b95c4e5898a03e85dbc555c37b4f968292aec";
+          sha256 = "0l8i0fbwwyhllkpk8xd6w5gcv65z4ja1ygf6slh5sd1g0ixh29md";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prettier-js";
+          sha256 = "0mf66sdsdbhf76pwkjkfjsnh26g4j3zb4y1qrbxc9jcvymccb3yq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/prettier-js";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prettify-greek = callPackage ({ fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "prettify-greek";
+        ename = "prettify-greek";
+        version = "20160603.208";
+        src = fetchFromGitLab {
+          owner = "fommil";
+          repo = "emacs-prettify-greek";
+          rev = "698d07a6ffe85f6fb53f3bfec4f49380c25cfd90";
+          sha256 = "0g2bxa7mwfkc8navbi2w28rd4f4zqphxi13kwmd2p83g3wavd99v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prettify-greek";
+          sha256 = "1izl6r6i3zbhd7r7lz2k42yyz6qcng11wfmb7lx4883dj00flsl7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/prettify-greek";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pretty-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "pretty-mode";
+        ename = "pretty-mode";
+        version = "20160614.1146";
+        src = fetchFromGitHub {
+          owner = "pretty-mode";
+          repo = "pretty-mode";
+          rev = "500085206e25b98d00b9ec996f91c87ba569c4ce";
+          sha256 = "0m7ii971zxlz8a9yx2ljf9fmd8k6hc9w1q8mi5xi32v9viccjabs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pretty-mode";
+          sha256 = "0zm6azbl70qmq2ybi576wfs3mx0ny54mf97b94ac501miv4fv0mq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pretty-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pretty-sha-path = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "pretty-sha-path";
+        ename = "pretty-sha-path";
+        version = "20141105.1026";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "pretty-sha-path.el";
+          rev = "beea38bdf34ed27059d6484e1e2a337a27e1f7ce";
+          sha256 = "1hfk3j69r0xva1c7v72vc2hhksdjia7vmxfx82j6j0jfpn6163f1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pretty-sha-path";
+          sha256 = "0qqsg383391dnsk46xm8plq7xmdmnis3iv7h7dmchpzd99bkm9lq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pretty-sha-path";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pretty-symbols = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "pretty-symbols";
+        ename = "pretty-symbols";
+        version = "20140814.259";
+        src = fetchFromGitHub {
+          owner = "drothlis";
+          repo = "pretty-symbols";
+          rev = "ab82b3fba129fae14e4031eb7fd648c1a92d0e71";
+          sha256 = "12ny0lpqhj7g1hmj3y6012zz7145xx6ivgg381d4lc8791j35djd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pretty-symbols";
+          sha256 = "0d1ad2x4md0n3fad3s2355wm8hl311qdhih1gkdqwdaj4i1d6gvb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pretty-symbols";
+          license = lib.licenses.free;
+        };
+      }) {};
+    private = callPackage ({ aes
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "private";
+        ename = "private";
+        version = "20150121.1757";
+        src = fetchFromGitHub {
+          owner = "zhangkaiyulw";
+          repo = "private";
+          rev = "f57f1c2f6bfe900bd40b252688df4c6ed6a5f44b";
+          sha256 = "0720vrb9nwy4c069fk7adw5f50g9dji1wra9s3jwazr8jn45k0mn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/private";
+          sha256 = "1mvma2xgjy9vkh468x80xlri6qfr7d494la1j6r1clkjsn5kg7hr";
+          name = "recipe";
+        };
+        packageRequires = [ aes ];
+        meta = {
+          homepage = "https://melpa.org/#/private";
+          license = lib.licenses.free;
+        };
+      }) {};
+    private-diary = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "private-diary";
+        ename = "private-diary";
+        version = "20151216.857";
+        src = fetchFromGitHub {
+          owner = "cacology";
+          repo = "private-diary";
+          rev = "5b1aeb22f22447fd35e1c107b6db44a7b27b8a42";
+          sha256 = "14g1hi9m91lb23jf4475pcdnb97fxrm52zblxag628nik3gp7qpb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/private-diary";
+          sha256 = "0dgnf375c00nlkp66kbkzsf469063l03b9miiplbhd63zshlv1i1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/private-diary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    proc-net = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "proc-net";
+        ename = "proc-net";
+        version = "20130321.1712";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-proc-net";
+          rev = "00bfc92a381787ec387974ed17070118ced6d9ad";
+          sha256 = "1df4kpr298hkii3rhx341qqnc9g4nq5vna6w687knzibbm0iixga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/proc-net";
+          sha256 = "0562x2s3kk9vlaavak4lya1nlmn4mwlzlc7nw1l3687q023z4hmv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/proc-net";
+          license = lib.licenses.free;
+        };
+      }) {};
+    processing-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "processing-mode";
+        ename = "processing-mode";
+        version = "20171022.1602";
+        src = fetchFromGitHub {
+          owner = "ptrv";
+          repo = "processing2-emacs";
+          rev = "448aba82970c98322629eaf2746e73be6c30c98e";
+          sha256 = "1fv74k37yyrh6jzasgqj88lrbq152gs9gpbjpxn7fz424c38gq2q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/processing-mode";
+          sha256 = "184yg9z14ighz9djg53ji5dgnb98dnxkkwx55m8f0f879x31i89m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/processing-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    processing-snippets = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , yasnippet }:
+      melpaBuild {
+        pname = "processing-snippets";
+        ename = "processing-snippets";
+        version = "20140426.728";
+        src = fetchFromGitHub {
+          owner = "ptrv";
+          repo = "processing2-emacs";
+          rev = "6175b8eef76369c4b1b8608b8df9a37f14b1be5c";
+          sha256 = "1mjzn8mynagck6fcw499gxzs1xm7gfqamlmgyqiy58wjni2xllr6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/processing-snippets";
+          sha256 = "09vkm9asmjz1in0f63s7bf4amifspsqf5w9pxiy5y0qvmn28fr2r";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/processing-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prodigy = callPackage ({ dash
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "prodigy";
+        ename = "prodigy";
+        version = "20180511.238";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "prodigy.el";
+          rev = "701dccaa56de9e6a330c05bde33bce4f3b3d6a97";
+          sha256 = "1vyvxawlayp2nra0q83146q2nzv8qwn5a4nj0sx1jc90a0a83vgj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prodigy";
+          sha256 = "0lfxb80jqjnzssjs6l511jcsmhkpzb5rh5czrb16dkqcz0cl5b2p";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/prodigy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    professional-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "professional-theme";
+        ename = "professional-theme";
+        version = "20150315.400";
+        src = fetchFromGitHub {
+          owner = "juanjux";
+          repo = "emacs-professional-theme";
+          rev = "0927d1474049a193f9f366bde5eb1887b9ba20ed";
+          sha256 = "0hx7rxa3smdippcpj4j63k0r5l4wflllb0vpnwwknc9j93r7042b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/professional-theme";
+          sha256 = "1l8nisn2c124cpylyahr76hfpdim2125zrns2897p466l5wcxcx5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/professional-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prog-fill = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "prog-fill";
+        ename = "prog-fill";
+        version = "20180606.1832";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "prog-fill";
+          rev = "3fbf7da6dd826e95c9077d659566ee29814a31d8";
+          sha256 = "167is1hbv3nsskz26g9q3zdndqsw9d3rwhbasj0r7a3wabpr8j4r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prog-fill";
+          sha256 = "0wnqzkzhaywcyw93z86pngpycsrd1mi79psmck6qbhms1aia79p3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/prog-fill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prognth = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "prognth";
+        ename = "prognth";
+        version = "20130920.1059";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "prognth";
+          rev = "2f1ca4d34b1fd581163e1df122c85418137e8e62";
+          sha256 = "1szxsbk470fg3jp70r20va9hnnf4jj0mb7kxdkn6rd7ky6w34lwm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prognth";
+          sha256 = "0hr5a3s0ij4hvn424v885z7pcs62yqm9mamw5b096hgjxgjf6ylm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/prognth";
+          license = lib.licenses.free;
+        };
+      }) {};
+    programmer-dvorak = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "programmer-dvorak";
+        ename = "programmer-dvorak";
+        version = "20150426.1837";
+        src = fetchFromGitHub {
+          owner = "yangchenyun";
+          repo = "programmer-dvorak";
+          rev = "c35d5e3b8b53c1e9341957b5d5db40387ba0c8ee";
+          sha256 = "1y2n11d1kbpgb4jivvgd1j4gz409jfrg0kxfa04nx1b0nx4f3gd6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/programmer-dvorak";
+          sha256 = "1w8r35hkl6qy9a89l0m74x9q2vcc4h2hvmi3r2hqcy2ypkn5l5bv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/programmer-dvorak";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-abbrev = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "project-abbrev";
+        ename = "project-abbrev";
+        version = "20180705.1954";
+        src = fetchFromGitHub {
+          owner = "jcs090218";
+          repo = "project-abbrev";
+          rev = "ca4bddd72a73d43332c5b262e6a104a341882af5";
+          sha256 = "15nbfdc0z4wp8hakrc5m6bqn6klv22xxs3c3z6c49sdrlhqr9jvy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/project-abbrev";
+          sha256 = "0771r4a652r3sqb601q5j6348kx1741s7svzxyfr2a4lspfffvqb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/project-abbrev";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-explorer = callPackage ({ cl-lib ? null
+                                    , emacs
+                                    , es-lib
+                                    , es-windows
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "project-explorer";
+        ename = "project-explorer";
+        version = "20150503.1714";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "project-explorer";
+          rev = "589a09008706f5f4ef91393dc4306eede0d15ca9";
+          sha256 = "04l4m3kxbwvyw9xy6cwakrdxxdswrrs7sya8zn6m738aawbr1mcd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/project-explorer";
+          sha256 = "076lzmyi1n7yrgdgyh9qinq271qk6k64x0msbzarihr3p4psrn8m";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs es-lib es-windows ];
+        meta = {
+          homepage = "https://melpa.org/#/project-explorer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-persist = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "project-persist";
+        ename = "project-persist";
+        version = "20180906.602";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "project-persist";
+          rev = "26d9435bef44da2a1b0892eba822f9f487b98eec";
+          sha256 = "0ja2pnbw11a2gwywfyfbdpk8rkm8imy04wkshpnlh0nwn7lf0clm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/project-persist";
+          sha256 = "0csjwj0qaw0hz2qrj8kxgxlixh2hi3aqib98vm19sr3f1b8qab24";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/project-persist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-persist-drawer = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild
+                                          , project-persist }:
+      melpaBuild {
+        pname = "project-persist-drawer";
+        ename = "project-persist-drawer";
+        version = "20151108.422";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "project-persist-drawer";
+          rev = "35bbe132a4fab6a0fec15ce6c0fd2fe6a4aa9626";
+          sha256 = "1nq320ph8fs9a197ji4mnw2xa24dld0r1nka476yvkg4azmcc9x8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/project-persist-drawer";
+          sha256 = "1jv2y2hcqakyvfibclzm7g4diw0bvsv3a8fa43yf19wb64jm8hdb";
+          name = "recipe";
+        };
+        packageRequires = [ project-persist ];
+        meta = {
+          homepage = "https://melpa.org/#/project-persist-drawer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-root = callPackage ({ fetchhg
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "project-root";
+        ename = "project-root";
+        version = "20110206.1230";
+        src = fetchhg {
+          url = "https://bitbucket.com/piranha/project-root";
+          rev = "843ca1f4ab2b";
+          sha256 = "0nw02f5lmbqdfnw93d3383sdxx1d31szk23zvjlrmmdwv2124281";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/project-root";
+          sha256 = "0xjir204zk254y2x70k9vqwirx2ljmrikpsgn5kn170d1bxvhwmb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/project-root";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-shells = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , seq }:
+      melpaBuild {
+        pname = "project-shells";
+        ename = "project-shells";
+        version = "20171107.51";
+        src = fetchFromGitHub {
+          owner = "hying-caritas";
+          repo = "project-shells";
+          rev = "d9401de750e444697c2eb9de1ff79f2a2eba4af8";
+          sha256 = "1x16l0gijirmj667s8l87nizsiww2wzjka9ydl4yxzchl7a486cp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/project-shells";
+          sha256 = "0mhifxcpgsfwrhbs7axg6ja4klgzzy9pc0nqa7w3qg45xgi9s4m8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/project-shells";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pkg-info }:
+      melpaBuild {
+        pname = "projectile";
+        ename = "projectile";
+        version = "20181106.831";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "projectile";
+          rev = "aa74ae12bbb73581a9f2d0e868720f9b69aa2017";
+          sha256 = "1dszmccsmhfx5cj6ar88kzwhi1inbhd6wfalb17mdv2y7x1wn20q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile";
+          sha256 = "1kf8hql59nwiy13q0p6p6rf5agjvah43f0sflflfqsrxbihshvdn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-codesearch = callPackage ({ codesearch
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , projectile }:
+      melpaBuild {
+        pname = "projectile-codesearch";
+        ename = "projectile-codesearch";
+        version = "20180508.822";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-codesearch";
+          rev = "e40efc62e9333db0593bd81b5c78d08b19bfb193";
+          sha256 = "04xivg6f19mlpsv77jwasg4ii9vlv8amblm03siwhx53ib9wlcyc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-codesearch";
+          sha256 = "1457dhmpgrq1qafr3v4ccw26ix10m60c5vlrpyqsfz8vh8lv0bb8";
+          name = "recipe";
+        };
+        packageRequires = [ codesearch projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-codesearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-direnv = callPackage ({ dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , projectile
+                                     , s }:
+      melpaBuild {
+        pname = "projectile-direnv";
+        ename = "projectile-direnv";
+        version = "20160305.1738";
+        src = fetchFromGitHub {
+          owner = "christianromney";
+          repo = "projectile-direnv";
+          rev = "250a902585acb611e10cf0f0248a84416df01522";
+          sha256 = "1yzq7zsm76p6gcgq3hz9bg3pgdj709gxx6jzp24mszkfb87jiw79";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-direnv";
+          sha256 = "1s5dapdcblcbcqyv8df26v8wxl8bhrs9ybl5h5qbzz49gigd8nqh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs projectile s ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-direnv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-git-autofetch = callPackage ({ alert
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild
+                                            , projectile }:
+      melpaBuild {
+        pname = "projectile-git-autofetch";
+        ename = "projectile-git-autofetch";
+        version = "20180418.1636";
+        src = fetchFromGitHub {
+          owner = "andrmuel";
+          repo = "projectile-git-autofetch";
+          rev = "55855886bccb5a22fbeb2b1c86ef2e9ff4de9067";
+          sha256 = "11h6ix7j145azg69kha46g2ggrmqff178p1krp12wv07iv3sijj6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-git-autofetch";
+          sha256 = "0m0raddsw5yvjrw2v6bdaswffmva8y9hxksdgf9axpvrd3rzlk9n";
+          name = "recipe";
+        };
+        packageRequires = [ alert projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-git-autofetch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-hanami = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , inf-ruby
+                                     , lib
+                                     , melpaBuild
+                                     , projectile
+                                     , rake }:
+      melpaBuild {
+        pname = "projectile-hanami";
+        ename = "projectile-hanami";
+        version = "20160505.611";
+        src = fetchFromGitHub {
+          owner = "avdgaag";
+          repo = "projectile-hanami";
+          rev = "b1da03d14b96972b6d369ed6dde40f65b4a2ca41";
+          sha256 = "1jsp2ca07w1y0v7zrx47yj0apqmkzx5577labp3ndd751x21bvnj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-hanami";
+          sha256 = "0qi9i4wdggrmihf1j42fqrf38psmb33rlafg3y6da5r7lpn03j1a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs inf-ruby projectile rake ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-hanami";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-rails = callPackage ({ emacs
+                                    , f
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , inf-ruby
+                                    , inflections
+                                    , lib
+                                    , melpaBuild
+                                    , projectile
+                                    , rake }:
+      melpaBuild {
+        pname = "projectile-rails";
+        ename = "projectile-rails";
+        version = "20181009.617";
+        src = fetchFromGitHub {
+          owner = "asok";
+          repo = "projectile-rails";
+          rev = "af0f826f2e1b1aad4e31e089e5fc7b5937e82359";
+          sha256 = "110mkg0wk1xcy8r031vyrbp5q9nz88jas94lgzqslbdh7ifj0907";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-rails";
+          sha256 = "0fgvignqdqh0ma91z9385782l89mvwfn77rp1gmy8cbkwi3b7fkq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f inf-ruby inflections projectile rake ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-rails";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-ripgrep = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , projectile
+                                      , ripgrep }:
+      melpaBuild {
+        pname = "projectile-ripgrep";
+        ename = "projectile-ripgrep";
+        version = "20180914.800";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "ripgrep.el";
+          rev = "93eca9138f6d6eea1af92f476c797ce19fa573d9";
+          sha256 = "0b1pa7srl1qmxaylv6iqy7rn4ajv9l87agpjrni01al01z6jfk1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-ripgrep";
+          sha256 = "1iczizyayql40wcljvpc1mvfvn9r28b1dkrkcmdxif732gd01jjg";
+          name = "recipe";
+        };
+        packageRequires = [ projectile ripgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-ripgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-sift = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , projectile
+                                   , sift }:
+      melpaBuild {
+        pname = "projectile-sift";
+        ename = "projectile-sift";
+        version = "20160107.215";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "sift.el";
+          rev = "8c3f3d14a351a2394027d72ee0599aa73b9f0d13";
+          sha256 = "1ma6djvhvjai07v1g9a36lfa3nw8zsy6x5vliwcdnkf44gs287ra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-sift";
+          sha256 = "1wbgpwq9yy3v7hqidaczrvvsw5ajj7m3n4gsy3b169xv5h673a0i";
+          name = "recipe";
+        };
+        packageRequires = [ projectile sift ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-sift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-speedbar = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , projectile
+                                       , sr-speedbar }:
+      melpaBuild {
+        pname = "projectile-speedbar";
+        ename = "projectile-speedbar";
+        version = "20170516.1943";
+        src = fetchFromGitHub {
+          owner = "anshulverma";
+          repo = "projectile-speedbar";
+          rev = "dcab13db72c2084edbebe808e35f1126fe0b3bcd";
+          sha256 = "106a4y5r1adjpbnjn734s7d910r6akhjlyjpd6bnczjhp357wyc7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-speedbar";
+          sha256 = "0dli4gzsiycivh8dwa00lfpbimyg42qygfachzrhi8qy5413pwlp";
+          name = "recipe";
+        };
+        packageRequires = [ projectile sr-speedbar ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-speedbar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-trailblazer = callPackage ({ emacs
+                                          , f
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , inf-ruby
+                                          , inflections
+                                          , lib
+                                          , melpaBuild
+                                          , projectile
+                                          , rake }:
+      melpaBuild {
+        pname = "projectile-trailblazer";
+        ename = "projectile-trailblazer";
+        version = "20170928.924";
+        src = fetchFromGitHub {
+          owner = "micdahl";
+          repo = "projectile-trailblazer";
+          rev = "79299498d74876f2ac3fe8075716b39a5bdd04cd";
+          sha256 = "1lkj9jdr3g7nl80fxvic6g5cn7vbkyxys7m3kcmd6xa9mq7nvci4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-trailblazer";
+          sha256 = "18cijb5c1ym5kn2g2apbijbfd3aqhrraki8vv9bk8rvi7wmm6qj4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f inf-ruby inflections projectile rake ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-trailblazer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-variable = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "projectile-variable";
+        ename = "projectile-variable";
+        version = "20170208.918";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "projectile-variable";
+          rev = "8d348ac70bdd6dc320c13a12941b32b38140e264";
+          sha256 = "0l38nldx6lwjb7mxixykiyj10xwb35249dxfg0k2wkmb2vy1fkxs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-variable";
+          sha256 = "15qc5n91nxyfvb100iyihfmrdr57qgw6098yv3nfqgw3zx1qchdw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-variable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projector = callPackage ({ alert
+                             , cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , projectile }:
+      melpaBuild {
+        pname = "projector";
+        ename = "projector";
+        version = "20180724.1122";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "projector.el";
+          rev = "d4aad9449960457932c19123c7ea2d60a67d1cca";
+          sha256 = "1zj9kg99allzb1hlz646hhhq3d0spvs26hc3y3pxykr58s611lrv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projector";
+          sha256 = "0hrinplk607wcc2ibn05pl8ghikv9f3zvymncp6nz95jw9brdapf";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/projector";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projekt = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "projekt";
+        ename = "projekt";
+        version = "20150324.148";
+        src = fetchFromGitHub {
+          owner = "tekai";
+          repo = "projekt";
+          rev = "a65e554e5d8b0def08c5d06f3fe34fec40bebd83";
+          sha256 = "0hvvlh24157qjxz82sbg22d4cbrf95xyx202cybp0n1vyxsmjcmw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projekt";
+          sha256 = "1bhb24701flihl54w8xrj6yxhynpq4dk0fp5ciac7k28n4930lw8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/projekt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projmake-mode = callPackage ({ dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , indicators
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "projmake-mode";
+        ename = "projmake-mode";
+        version = "20161031.1015";
+        src = fetchFromGitHub {
+          owner = "ericbmerritt";
+          repo = "projmake-mode";
+          rev = "a897701f7e8f8cc11459ed44eb0e454db2a460c1";
+          sha256 = "0las0xl4af6sn5pbllq16abw2hj1kswwpkyi6lf31sbwr5wnq4qb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projmake-mode";
+          sha256 = "192gvmhcz1anl80hpmcjwwd08dljyrap9sk6qj0y85mcnaafm882";
+          name = "recipe";
+        };
+        packageRequires = [ dash indicators ];
+        meta = {
+          homepage = "https://melpa.org/#/projmake-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    promise = callPackage ({ async
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "promise";
+        ename = "promise";
+        version = "20180409.252";
+        src = fetchFromGitHub {
+          owner = "chuntaro";
+          repo = "emacs-promise";
+          rev = "f623fa7466983fd1ba7034371f599434c03da723";
+          sha256 = "1ffk5scab9whn27xz4wyik5vl235ngvhx30fd05abq97d6l7hndl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/promise";
+          sha256 = "1y1v3ikcmh9yp5fdwagcjg755bgkyqk714lb6s1hb2606m3ia03s";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/promise";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prompt-text = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "prompt-text";
+        ename = "prompt-text";
+        version = "20160106.609";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "prompt-text-el";
+          rev = "3cc486c070b7a7c806c8d6002f9ba4979f56107d";
+          sha256 = "1hv4p1x5sli5lplm8hl6frxmwvbc1vmamgj9m2ryk17ykqmr05r5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prompt-text";
+          sha256 = "1b9sj9kzx5ydq2zsfmkwsx78pzg0vsvrn92397js6b2cm24vrwwc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/prompt-text";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prompts = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "prompts";
+        ename = "prompts";
+        version = "20160916.341";
+        src = fetchFromGitHub {
+          owner = "GuiltyDolphin";
+          repo = "prompts.el";
+          rev = "1cd5e732ff2a86b47836eb7252e5b59cd4b6ab26";
+          sha256 = "10y8x54p64zs1jlq4nf1kixpb42078n2gdf9s62b1siyb1vhl581";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prompts";
+          sha256 = "1fz5sbc45jiq64y89lm8nj6lsanq3lzyjzahxzrgqvr7655pphzm";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/prompts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    proof-general = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "proof-general";
+        ename = "proof-general";
+        version = "20181115.810";
+        src = fetchFromGitHub {
+          owner = "ProofGeneral";
+          repo = "PG";
+          rev = "05df29f7ff065d8da45b81691c602b6cf075e4a0";
+          sha256 = "0q7bij62mlpyzqmxcydffagmf8hkj293xqzr75p54z0kad3yi36i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/proof-general";
+          sha256 = "10zif9ax4d3m8sa9y2xqz7g24xa2r3m2x5l0zqa06wm4afq29p87";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/proof-general";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prop-menu = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "prop-menu";
+        ename = "prop-menu";
+        version = "20150728.418";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "prop-menu-el";
+          rev = "50b102c1c0935fd3e0c465feed7f27d66b21cdf3";
+          sha256 = "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prop-menu";
+          sha256 = "0dhy52fxxpa058mhhx0slw3sly3dlxm9vkax6fd1sap6f6v00p5i";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/prop-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    propfont-mixed = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "propfont-mixed";
+        ename = "propfont-mixed";
+        version = "20150113.1411";
+        src = fetchFromGitHub {
+          owner = "ikirill";
+          repo = "propfont-mixed";
+          rev = "0b461ef4754a469610dba71874a34b6da42176bf";
+          sha256 = "0lch20njy248w7bnvgs7jz0zqasskf5dakmykxwpb48llm6kx95v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/propfont-mixed";
+          sha256 = "19k0ydpkiviznsngwcqwn4k30r6j8w34pchgpjlsfwq1bndaai9y";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/propfont-mixed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    proportional = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "proportional";
+        ename = "proportional";
+        version = "20171025.1637";
+        src = fetchFromGitHub {
+          owner = "ksjogo";
+          repo = "proportional";
+          rev = "f671ffe8fd803e2fc462e2e1844aeeab1a13918e";
+          sha256 = "02sbrcb9c27djk64xv41vii6pbw83b6iljrd66w4ad9hgz2pkxzk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/proportional";
+          sha256 = "022lhbslzd67wyah8r0gl73vzxgjjwia08l3ssdd08jj3p56m3wx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/proportional";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prosjekt = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "prosjekt";
+        ename = "prosjekt";
+        version = "20151127.616";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "prosjekt";
+          rev = "a864a8be5842223043702395f311e3350c28e9db";
+          sha256 = "1m8zvrv5aws7b0dffk8y6b5mncdk2c4k90mx69jys10fs0gc5hb3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prosjekt";
+          sha256 = "1fn7ii1bq7bjkz27hihclpvx0aabgwy3kv47r9qibjl2jin97rck";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/prosjekt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    protobuf-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "protobuf-mode";
+        ename = "protobuf-mode";
+        version = "20170526.950";
+        src = fetchFromGitHub {
+          owner = "google";
+          repo = "protobuf";
+          rev = "4674cc7c073f1b8d5efd2a42ffcf3ca30a907bfe";
+          sha256 = "0sspwvwxyqq9aibf3piv6cp5vb28w2fnfk6x7wkmaiy7a4gcklcv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/protobuf-mode";
+          sha256 = "1hh0w93fg6mfwsbb9wvp335ry8kflj50k8hybchpjcn6f4x39xsj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/protobuf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    protocols = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "protocols";
+        ename = "protocols";
+        version = "20170802.432";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "protocols.el";
+          rev = "d0f7c4acb05465f1a0d4be54363bbd2802647e77";
+          sha256 = "1xg3pwsnzn795bz299x273ral2jrz2v3p9r6gjm4dcx5pm3348mj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/protocols";
+          sha256 = "1wg3qh8a1ms82lkzz4i1bk787147a8agcj8rszj1zfvwg0ckqq1a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/protocols";
+          license = lib.licenses.free;
+        };
+      }) {};
+    proxy-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "proxy-mode";
+        ename = "proxy-mode";
+        version = "20180520.2030";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "proxy-mode";
+          rev = "1cf689c2408945081215550589936a7eaab14987";
+          sha256 = "0xvc33xwrdh71kmv1g85gb28ba7yx8cz6257dgh6sx7ligz7cmvd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/proxy-mode";
+          sha256 = "0ldjfmxn8k8bzvdrlsfpijsmgn754aza54by5d59k7a1xn6d37mp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/proxy-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    psc-ide = callPackage ({ cl-lib ? null
+                           , company
+                           , dash
+                           , dash-functional
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , flycheck
+                           , let-alist
+                           , lib
+                           , melpaBuild
+                           , s
+                           , seq }:
+      melpaBuild {
+        pname = "psc-ide";
+        ename = "psc-ide";
+        version = "20181002.619";
+        src = fetchFromGitHub {
+          owner = "epost";
+          repo = "psc-ide-emacs";
+          rev = "01a158b77210fec9c1bfc0caffaf08fccc0412ac";
+          sha256 = "00lhidhi5m7lxpq2bm9prfzz35kgkjwyl27lmlyc49gh1ky4g19q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/psc-ide";
+          sha256 = "1f8bphrbksz7si9flyhz54brb7w1lcz19pmn92hjwx7kd4nl18i9";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          company
+          dash
+          dash-functional
+          emacs
+          flycheck
+          let-alist
+          s
+          seq
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/psc-ide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    psci = callPackage ({ dash
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , purescript-mode
+                        , s }:
+      melpaBuild {
+        pname = "psci";
+        ename = "psci";
+        version = "20180418.533";
+        src = fetchFromGitHub {
+          owner = "purescript-emacs";
+          repo = "emacs-psci";
+          rev = "3f5ef1141a97c4b5507204d48e8aeccd553e4591";
+          sha256 = "1g06hqr23mg8457azkjp7wjsqavj48c0mjck0igi6mc2rh310930";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/psci";
+          sha256 = "1iwkr58b910vrwwxyk00psy74vp201vmm3b0cm4k5fh3glr31vp9";
+          name = "recipe";
+        };
+        packageRequires = [ dash f purescript-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/psci";
+          license = lib.licenses.free;
+        };
+      }) {};
+    psession = callPackage ({ async
+                            , cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "psession";
+        ename = "psession";
+        version = "20181111.612";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "psession";
+          rev = "ce7c28dc5aed37a3a3c4bd9a099032c15e5ef9e1";
+          sha256 = "1bm8zh2lis21jlg2a74bpc76bgpzhhjlcah2csi06dcdm3hgrgh8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/psession";
+          sha256 = "18va6kvpia5an74vkzccs72z02vg4vq9mjzr5ih7xbcqxna7yv3a";
+          name = "recipe";
+        };
+        packageRequires = [ async cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/psession";
+          license = lib.licenses.free;
+        };
+      }) {};
+    psysh = callPackage ({ emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , s }:
+      melpaBuild {
+        pname = "psysh";
+        ename = "psysh";
+        version = "20171022.2229";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "psysh.el";
+          rev = "926af4ae0c068ed699fc939f4b3e642aaa6f7c9e";
+          sha256 = "0k6kb4xbfxcvd7dm3kb600mq56xyy086zi7nal04jkv9lc59bwn7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/psysh";
+          sha256 = "00rzfw8nlbcmfbjnzbfl08136dhgvrrn9g1s9l623xgpbcay63sg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/psysh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pt = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "pt";
+        ename = "pt";
+        version = "20161226.1159";
+        src = fetchFromGitHub {
+          owner = "bling";
+          repo = "pt.el";
+          rev = "6d99b2aaded3ece3db19a20f4b8f1d4abe382622";
+          sha256 = "1vi97hgwrf7n8vsbkvvhn398m20755jnbbbz4kxgqfmcgpimc8nc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pt";
+          sha256 = "0zmz1hcr4ajc2ydvpdxhy1dlhp7hvlkv6y6w1b79ffvq6acdd5mj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pug-mode = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pug-mode";
+        ename = "pug-mode";
+        version = "20180513.1426";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-pug-mode";
+          rev = "8739fe5b5ff83a53cfb233263e85346562e58f1d";
+          sha256 = "16whqy3plqarlvmifakgc7a8fjp4gv7hchzgspnvgjadqk3h0ik0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pug-mode";
+          sha256 = "1njhr95y2rx7inpl9phxxz580844p2iadqlga1kj7xzvjz698x85";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pug-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pulseaudio-control = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "pulseaudio-control";
+        ename = "pulseaudio-control";
+        version = "20180627.450";
+        src = fetchFromGitHub {
+          owner = "flexibeast";
+          repo = "pulseaudio-control";
+          rev = "1da372ec79f5d2fb901d1f9f0679fee8848fd011";
+          sha256 = "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pulseaudio-control";
+          sha256 = "1vdhg85lbdx7sj1xg2vhhfmhrrp5q2x560agnsb0gxi2akp6z9r0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pulseaudio-control";
+          license = lib.licenses.free;
+        };
+      }) {};
+    punctuality-logger = callPackage ({ fetchFromGitLab
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "punctuality-logger";
+        ename = "punctuality-logger";
+        version = "20141120.1231";
+        src = fetchFromGitLab {
+          owner = "elzair";
+          repo = "punctuality-logger";
+          rev = "d76c5d5589a4f8a94cc5537686d9a3b46ea7cc59";
+          sha256 = "03872n1v5qqqblviq9sf2ml6ibs50mcjrh0i35sb0m7l202nh52b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/punctuality-logger";
+          sha256 = "0q9s74hkfqvcx67xpq9rlvh38nyjnz230bll6ks7y5yzxvl4qhcm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/punctuality-logger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pungi = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , jedi
+                         , lib
+                         , melpaBuild
+                         , pyvenv }:
+      melpaBuild {
+        pname = "pungi";
+        ename = "pungi";
+        version = "20150222.446";
+        src = fetchFromGitHub {
+          owner = "mgrbyte";
+          repo = "pungi";
+          rev = "41c9f8b7795e083bfd63ba0d06c789c250998723";
+          sha256 = "012lv7hrwlhvins81vw3yjkhdwbpi6g1dx55i101qyrpzv5ifngm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pungi";
+          sha256 = "1v9fsd764z5wdcips63z53rcipdz7bha4q6s4pnn114jn3a93ls1";
+          name = "recipe";
+        };
+        packageRequires = [ jedi pyvenv ];
+        meta = {
+          homepage = "https://melpa.org/#/pungi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    punpun-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "punpun-theme";
+        ename = "punpun-theme";
+        version = "20161103.147";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "punpun-theme";
+          rev = "cce8b10b2df6f9187a9eaa0c3f21ff0dda175968";
+          sha256 = "1iz1qc9bphl2y2z7abc33fvyaccj733drkl7nzbr1jlpbknkmk2k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/punpun-theme";
+          sha256 = "1l7nphh8v7w5w790cwmnp6nw5rciwhgzkvynkrvpiv9chhacx0xg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/punpun-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    puppet-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , pkg-info }:
+      melpaBuild {
+        pname = "puppet-mode";
+        ename = "puppet-mode";
+        version = "20180813.1247";
+        src = fetchFromGitHub {
+          owner = "voxpupuli";
+          repo = "puppet-mode";
+          rev = "7dee1b5a5debac6e56f9107492a413b6c0edb94d";
+          sha256 = "01isn90h50p5c6cgzwhb1jq8yacj0fxw9ppfqrnynckg6ydpvg74";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/puppet-mode";
+          sha256 = "1qn71j6fkwnrsq1s6fhfcxhic3rbspg5cy9n7jv451ji7ywyhakf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/puppet-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    purescript-mode = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "purescript-mode";
+        ename = "purescript-mode";
+        version = "20181028.138";
+        src = fetchFromGitHub {
+          owner = "purescript-emacs";
+          repo = "purescript-mode";
+          rev = "a6c7e4cc5ea29cf96478490a57d495e745d6e054";
+          sha256 = "0x6w9sgvq3xxxv4fni94acr2q683p81k7ipd7sc27yv8zzj2giyv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/purescript-mode";
+          sha256 = "1g30xbv3xvv52r873465a2lp6fnws9q8dz277697qm0mgxkpimbp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/purescript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    purp-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "purp-theme";
+        ename = "purp-theme";
+        version = "20181012.754";
+        src = fetchFromGitHub {
+          owner = "gnuvince";
+          repo = "purp";
+          rev = "9c0c1246008ed0844a90661e45c660d99451425e";
+          sha256 = "0h7nsxsfwkqkjlgbxdm73253g9m30xhrcg1bdjsfp9zn806jy57c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/purp-theme";
+          sha256 = "1ni8nnyfg4g49fw5m4pxa8fr147pyyvqa5gmydggv5r1xmldgsli";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/purp-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    purple-haze-theme = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "purple-haze-theme";
+        ename = "purple-haze-theme";
+        version = "20141014.1929";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-purple-haze-theme";
+          rev = "3e245cbef7cd09e6b3ee124963e372a04e9a6485";
+          sha256 = "15myw5rkbnnpgzpiipm5xl4cyzymv8hh66x9al4aalb5nf52dckc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/purple-haze-theme";
+          sha256 = "1rvfpm3zkhdv3ikc8pqqngf9pi0niwyi52pg8dq8i056nwc5bk9z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/purple-haze-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    purty-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "purty-mode";
+        ename = "purty-mode";
+        version = "20131004.1559";
+        src = fetchFromGitHub {
+          owner = "jcatw";
+          repo = "purty-mode";
+          rev = "ad48149bfd0c765796a728b22d679e03fc124328";
+          sha256 = "1gx2c94bq34d2zjdr9mbnafq6alzz8vrlj5pskm15p225s85a2q3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/purty-mode";
+          sha256 = "0gbbwl5kg74jf1i1zsr40zg3gw43qmz1l87k0r578v1xvyqmhm1i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/purty-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pushbullet = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , grapnel
+                              , json ? null
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "pushbullet";
+        ename = "pushbullet";
+        version = "20140809.532";
+        src = fetchFromGitHub {
+          owner = "theanalyst";
+          repo = "revolver";
+          rev = "73c59a0f1dc04875b3e5a2c8afbc26c32128e445";
+          sha256 = "03ivg3ddhy5zh410wgwxa17m98wywqhk62jgijhjd00b6l8i4aym";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pushbullet";
+          sha256 = "1swzl25rcw7anl7q099qh14yhnwlbn3m20ib9kis0l1rv59kkarl";
+          name = "recipe";
+        };
+        packageRequires = [ grapnel json ];
+        meta = {
+          homepage = "https://melpa.org/#/pushbullet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pushover = callPackage ({ cl-lib ? null
+                            , fetchgit
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pushover";
+        ename = "pushover";
+        version = "20170818.1403";
+        src = fetchgit {
+          url = "https://git.flintfam.org/swf-projects/emacs-pushover.git";
+          rev = "bbe3ac8df3c532a72da4552615af960b8a577588";
+          sha256 = "187bisngi37n66ik2dq7rg4hy4nlxl9pifqgqq08kf9238y8hd11";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pushover";
+          sha256 = "0im5bf2r69s2jb6scm8xdk63y1xi5zm4kg9ghfixlvyvipfli4kl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/pushover";
+          license = lib.licenses.free;
+        };
+      }) {};
+    px = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "px";
+        ename = "px";
+        version = "20170317.1630";
+        src = fetchFromGitHub {
+          owner = "aaptel";
+          repo = "preview-latex";
+          rev = "0c52f7933eab3ca1642ab0df151db9950430c9e2";
+          sha256 = "0f741a2gpc2mdl85ivbiskga620b6ci2x0dwjs7m8c1vk6xrxbpi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/px";
+          sha256 = "0xjmz18m2dslh6yq5z32r43zq3svfxn8mhrfbmihglyv2mkwxw44";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/px";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-autopep8 = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "py-autopep8";
+        ename = "py-autopep8";
+        version = "20160925.352";
+        src = fetchFromGitHub {
+          owner = "paetzke";
+          repo = "py-autopep8.el";
+          rev = "68e12d8788c91c7ec53a68acf1d23adb2ffa4788";
+          sha256 = "16fmym6hvi2lx0mmbrrhld1vzki5iqfqx2m0xa9021gjjzb33lw6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-autopep8";
+          sha256 = "1argjdmh0x9c90zkb6cr4z3zkpgjp2mkpsw0dr4v6gg83jcggfpp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/py-autopep8";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-gnitset = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "py-gnitset";
+        ename = "py-gnitset";
+        version = "20170821.1032";
+        src = fetchFromGitHub {
+          owner = "quodlibetor";
+          repo = "py-gnitset";
+          rev = "1e993cc29cbc31e06fe1e335dec198e21972fa55";
+          sha256 = "1hslq2bdk95cgza9qbskxf942ckhjb4bqi6nrhbmlnm9agmjqm59";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-gnitset";
+          sha256 = "0f6ivq4ignb4gfxw2q8qvigvv3fbvvyr87x25wcaz6yipg1lr18r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/py-gnitset";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-import-check = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "py-import-check";
+        ename = "py-import-check";
+        version = "20130802.411";
+        src = fetchFromGitHub {
+          owner = "psibi";
+          repo = "emacs-py-import-check";
+          rev = "38ad91e67047bd37231497d11d409d064d510f98";
+          sha256 = "1irdc740za4vb1ixnp2j33m8xwknybdg5szj1pgy28r72w4lipfy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-import-check";
+          sha256 = "1261dki0q44sw9h0g1305i2fj1dg9xgwzry50jbn2idcrqg4xf7k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/py-import-check";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-isort = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "py-isort";
+        ename = "py-isort";
+        version = "20160925.318";
+        src = fetchFromGitHub {
+          owner = "paetzke";
+          repo = "py-isort.el";
+          rev = "e67306f459c47c53a65604e4eea88a3914596560";
+          sha256 = "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-isort";
+          sha256 = "0k5gn3bjn5pv6dn6p0m9xghn0sx3m29bj3pfrmyh6gd5ic0l00yb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/py-isort";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-smart-operator = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , s }:
+      melpaBuild {
+        pname = "py-smart-operator";
+        ename = "py-smart-operator";
+        version = "20170531.509";
+        src = fetchFromGitHub {
+          owner = "rmuslimov";
+          repo = "py-smart-operator";
+          rev = "0c8a66faca4b35158d0b5885472cb75286039167";
+          sha256 = "09pmkp24s7nwh6p4pzsjp1z65ksi9n3n2xv7d3igpa86l8qgcm2d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-smart-operator";
+          sha256 = "1n0bdr9z2s1ikhmfz642k94gjzb88anwlb61mh27ay8wqdgm74c4";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/py-smart-operator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-test = callPackage ({ dash
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "py-test";
+        ename = "py-test";
+        version = "20151116.2222";
+        src = fetchFromGitHub {
+          owner = "Bogdanp";
+          repo = "py-test.el";
+          rev = "3b2a0bdaacb54df6f2bee8317423e5c0d159d5cf";
+          sha256 = "1s39407z3rxz10r5sshv2vj7s23ylkhg59ixasgnpjk82gl4igpf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-test";
+          sha256 = "1mbwbzg606winf5af7qkg6a1hg79lc7k2miq4d3mwih496l5sinb";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/py-test";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-yapf = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "py-yapf";
+        ename = "py-yapf";
+        version = "20160925.422";
+        src = fetchFromGitHub {
+          owner = "paetzke";
+          repo = "py-yapf.el";
+          rev = "a878304202ad827a1f3de3dce1badd9ca8731146";
+          sha256 = "1mmzqdigxx46my0h9497l25cjydy3vykg6slxkch4dzvhhlbap48";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-yapf";
+          sha256 = "1381x0ffpllxwgkr2d8xxbv1nd4k475m1aff8l5qijw7d1fqga2f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/py-yapf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pycarddavel = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "pycarddavel";
+        ename = "pycarddavel";
+        version = "20150831.516";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "pycarddavel";
+          rev = "6ead921066fa0156f20155b7126e5875ce11c328";
+          sha256 = "0qg1kjzsv2mcvlsivqy8ys3djbs5yala37r9h2zcxdicl88q0l11";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pycarddavel";
+          sha256 = "12k2mnzkd8yv17csfhclsnd479vcabawmac23yw6dsw7ic53jf1a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/pycarddavel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pycoverage = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "pycoverage";
+        ename = "pycoverage";
+        version = "20160324.1812";
+        src = fetchFromGitHub {
+          owner = "mattharrison";
+          repo = "pycoverage.el";
+          rev = "dbc152a807efcaac4e50bedb64c026674009a279";
+          sha256 = "0qap6iz865l43mixga7541c2z9kdx8zkkdcgdlgn6n8pyv8iz7qs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pycoverage";
+          sha256 = "1jaanmpnawk0r6zfzx18crqml7lv412l2l0iabp345xvfvsh8h1m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pycoverage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pydoc = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "pydoc";
+        ename = "pydoc";
+        version = "20181024.1751";
+        src = fetchFromGitHub {
+          owner = "statmobile";
+          repo = "pydoc";
+          rev = "abb948e27efaf2452f339c62cd99a1c69930bbfe";
+          sha256 = "1da08x2hjjd9d832fwrd4rbd3h6f7m031kkxh53v9xdavkp0xqf1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pydoc";
+          sha256 = "0sf52cb80yiridsl1pffdr3wpbgxrn2l8vnq03l70djckild477n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pydoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pydoc-info = callPackage ({ fetchhg
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "pydoc-info";
+        ename = "pydoc-info";
+        version = "20110301.34";
+        src = fetchhg {
+          url = "https://bitbucket.com/jonwaltman/pydoc-info";
+          rev = "151d877c8fb8";
+          sha256 = "1mzyr6yznkyv99x9q8zx2f270ngjh8s94zvnhcbhidi57inpd1nh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pydoc-info";
+          sha256 = "0l80g0rzkk3a1wrw2riiywz9wdyxwr5i64jb2h5r8alp9qq1k7mf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pydoc-info";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyenv-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pythonic }:
+      melpaBuild {
+        pname = "pyenv-mode";
+        ename = "pyenv-mode";
+        version = "20170801.1648";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "pyenv-mode";
+          rev = "215b7f0ed3847e0c844adbff7d9b19057aa7c820";
+          sha256 = "0wb9xgpp9bc045kkw0jg14qnxa1y7ydsv1zw4nmy0mw7acxpcjgn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyenv-mode";
+          sha256 = "00yqrk92knv9gq1m9xcg78gavv70jsjlwzkllzxl63iva9qrch59";
+          name = "recipe";
+        };
+        packageRequires = [ pythonic ];
+        meta = {
+          homepage = "https://melpa.org/#/pyenv-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyenv-mode-auto = callPackage ({ f
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , pyenv-mode
+                                   , s }:
+      melpaBuild {
+        pname = "pyenv-mode-auto";
+        ename = "pyenv-mode-auto";
+        version = "20180620.552";
+        src = fetchFromGitHub {
+          owner = "ssbb";
+          repo = "pyenv-mode-auto";
+          rev = "b6eef88ad89865a7e0ec8bae8c6ce8239cb649c6";
+          sha256 = "1gz7145jnjcky1751pqrlhh3pq02ybsmz49ngx4ip2589nry7iyv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyenv-mode-auto";
+          sha256 = "1l7h4fas1vshkh4skxzpw7v2a11s1hwnb20n6a81yh701pbikqnd";
+          name = "recipe";
+        };
+        packageRequires = [ f pyenv-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/pyenv-mode-auto";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyfmt = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "pyfmt";
+        ename = "pyfmt";
+        version = "20150521.1356";
+        src = fetchFromGitHub {
+          owner = "aheaume";
+          repo = "pyfmt.el";
+          rev = "3022283c1ae7da1b6a983fedc90179670725f8d0";
+          sha256 = "0p0hjac9qk809ygmg566avv4fkljfnrn7rk1pxh61dsj7al6kzzp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyfmt";
+          sha256 = "112kjsp763c2plhqlhydpngrabhc58ya7cszvi4119xqw2s699g6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pyfmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pygen = callPackage ({ dash
+                         , elpy
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , python-mode }:
+      melpaBuild {
+        pname = "pygen";
+        ename = "pygen";
+        version = "20161120.2106";
+        src = fetchFromGitHub {
+          owner = "JackCrawley";
+          repo = "pygen";
+          rev = "3a5d1d1a0640865b15be05cd1eeb33bb4793b622";
+          sha256 = "0fzpvdwb7hhmfmjxzvap8413bc81lrx8r3ij3yasqaxyqw3a6vy1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pygen";
+          sha256 = "1ivg7a1ghg0bvz3idz7dzy5yb0ln3b2j7dfizg2g0fi4iwvc4czz";
+          name = "recipe";
+        };
+        packageRequires = [ dash elpy python-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/pygen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyim = callPackage ({ async
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , popup
+                        , pyim-basedict }:
+      melpaBuild {
+        pname = "pyim";
+        ename = "pyim";
+        version = "20181109.550";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "pyim";
+          rev = "8648d467d79b3bf1c3a99623f9329939cacc40da";
+          sha256 = "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyim";
+          sha256 = "1ly4xhfr3irlrwvv20j3kyz98g7barridi9n8jppc0brh2dlv98j";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs popup pyim-basedict ];
+        meta = {
+          homepage = "https://melpa.org/#/pyim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyim-basedict = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "pyim-basedict";
+        ename = "pyim-basedict";
+        version = "20170726.1959";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "pyim-basedict";
+          rev = "3196cb210e056702c5a4ea1dac1d8e1e27740fab";
+          sha256 = "03jbjc5a1h22vpcybg0gmbyibaa85w2ml1pjk646qb28ljywd5aw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyim-basedict";
+          sha256 = "1y8cmccli3im5bvws2h582z7k4nj6p8brgypl8h09y3na6yjy2z9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pyim-basedict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyim-cangjie5dict = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , pyim }:
+      melpaBuild {
+        pname = "pyim-cangjie5dict";
+        ename = "pyim-cangjie5dict";
+        version = "20170729.1946";
+        src = fetchFromGitHub {
+          owner = "HesperusArcher";
+          repo = "pyim-cangjie5dict";
+          rev = "c8618590780b818db1a67a29bc47c5d25903517a";
+          sha256 = "0p49h2kn8wy3b51zahzyc1cy24h3b44cg5yjpmv4w23dhsr4zlz8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyim-cangjie5dict";
+          sha256 = "1l2k8kfnfciacp1zps8j1g6ijzv1k3g9198079l8c8xlw789irlv";
+          name = "recipe";
+        };
+        packageRequires = [ pyim ];
+        meta = {
+          homepage = "https://melpa.org/#/pyim-cangjie5dict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyim-wbdict = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , pyim }:
+      melpaBuild {
+        pname = "pyim-wbdict";
+        ename = "pyim-wbdict";
+        version = "20180929.2158";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "pyim-wbdict";
+          rev = "55c7eed02c3253de12c71b925b8d9ef23425b64c";
+          sha256 = "0sc0zjp2k190vd8fyzild7ndvfpg528qdlgs1xl9jdkrjnwb85l0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyim-wbdict";
+          sha256 = "1s0i9xcnpy8kxqhsv7rqxabv5vnxsciyng398mn32mknib03315i";
+          name = "recipe";
+        };
+        packageRequires = [ pyim ];
+        meta = {
+          homepage = "https://melpa.org/#/pyim-wbdict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyimport = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s
+                            , shut-up }:
+      melpaBuild {
+        pname = "pyimport";
+        ename = "pyimport";
+        version = "20180308.952";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "pyimport";
+          rev = "a6f63cf7ed93f0c0f7c207e6595813966f8852b9";
+          sha256 = "1q5gqhvh4zq5dy8vns694warcz48j1hdnxg16sjck4gsi9xivbvs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyimport";
+          sha256 = "1qwigplawknykw1kbm5babyyknzn43ddhbdpahvzh4wy3kycn6n8";
+          name = "recipe";
+        };
+        packageRequires = [ dash s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/pyimport";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyimpsort = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "pyimpsort";
+        ename = "pyimpsort";
+        version = "20160129.2053";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "pyimpsort.el";
+          rev = "d5c61d70896b642646dfd3c809c06174ae086c1a";
+          sha256 = "05qx1p19dw3nr264shihfn33k579hd0wf4cxki5cqrxi7xzpjgrc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyimpsort";
+          sha256 = "0kdk3bmryfzvwf8vshfszbih8mwncf4xlb0n0n0yjn0p1n98q99k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pyimpsort";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pylint = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pylint";
+        ename = "pylint";
+        version = "20170402.555";
+        src = fetchFromGitHub {
+          owner = "PyCQA";
+          repo = "pylint";
+          rev = "c812c59b31ba0b3f45c4bef6d4d93f561f79949d";
+          sha256 = "1234ms5brqvx468hqpslzg4nsj42g9vjza2rp5msn15nj7cdhbxj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pylint";
+          sha256 = "1138a8dn9y4ypbphs1zfvr8gr4vdjcy0adsl4xfbgsls4kcdwpxx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pylint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pynt = callPackage ({ deferred
+                        , ein
+                        , emacs
+                        , epc
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "pynt";
+        ename = "pynt";
+        version = "20180710.26";
+        src = fetchFromGitHub {
+          owner = "ebanner";
+          repo = "pynt";
+          rev = "963c43cfdb5deea7daedc269aafa79192d853154";
+          sha256 = "167hw8flq5fgxf4wzsdx07a1jgp8qg11lraj7g09ds2wrlh9awid";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pynt";
+          sha256 = "07c0zc68r3pskn3bac3a8x5nrsykl90a1h22865g3i5vil76vvg3";
+          name = "recipe";
+        };
+        packageRequires = [ deferred ein emacs epc ];
+        meta = {
+          homepage = "https://melpa.org/#/pynt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyramid = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , pythonic
+                           , tablist }:
+      melpaBuild {
+        pname = "pyramid";
+        ename = "pyramid";
+        version = "20181031.402";
+        src = fetchFromGitHub {
+          owner = "dakra";
+          repo = "pyramid.el";
+          rev = "ad207ebe31a5b027560b69e20852156a3b882c0c";
+          sha256 = "0fi4y5ali58bjpsnlpacpf3ggd0lx7f7y550h3wnhdr23r0m06ia";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyramid";
+          sha256 = "149p9k6wjlgamm3vrkkcdj4fqhdfsskv1jqflp1bccfkgqpi5096";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pythonic tablist ];
+        meta = {
+          homepage = "https://melpa.org/#/pyramid";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pytest = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "pytest";
+        ename = "pytest";
+        version = "20181005.824";
+        src = fetchFromGitHub {
+          owner = "ionrock";
+          repo = "pytest-el";
+          rev = "1bfa7549001e61ecd59cd6eae7c6656a924d1ba4";
+          sha256 = "1ry0czn0qjjiw75v47jamxbfzh70jxai6lvf3pp5v87wp1xhnznh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pytest";
+          sha256 = "0ssib65wa20h8r6156f392l481vns5fcax6w70hcawmn84nficdh";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/pytest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-cell = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "python-cell";
+        ename = "python-cell";
+        version = "20181028.1440";
+        src = fetchFromGitHub {
+          owner = "thisch";
+          repo = "python-cell.el";
+          rev = "2faa78b3f4faa12f09f9864ebd854ae7d4e95fd0";
+          sha256 = "13b1ym3bncahyarbiqib5qhkyn3s6brq78kmfl7xvgjvfqfsb8pl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-cell";
+          sha256 = "07i3vyci52jvslq28djwkgx1r157wvxd99rvqlxnmmsl5yj4k1jf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/python-cell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-django = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "python-django";
+        ename = "python-django";
+        version = "20150821.2104";
+        src = fetchFromGitHub {
+          owner = "fgallina";
+          repo = "python-django.el";
+          rev = "fc54ad74f0309670359b939f64d0f1fff68aeac4";
+          sha256 = "1qckn5bi1ib54hgqbym5qqwzvbv70ria1w3c2x543xlr0l7zga6h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-django";
+          sha256 = "02whx8g8r02mzng7d7bnbkz5n7gyzp5hcnmvd6a3lq106c0h7w9k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/python-django";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-docstring = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "python-docstring";
+        ename = "python-docstring";
+        version = "20170508.156";
+        src = fetchFromGitHub {
+          owner = "glyph";
+          repo = "python-docstring-mode";
+          rev = "d35d2e0fbe468743c19a870fec7b28a7e725790d";
+          sha256 = "11y208svg5nxw8k7cbgd2iydng40gwpr85bdnxkywd910sac5p7b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-docstring";
+          sha256 = "1vi30y71vflsbprp5j4phbp7x1j24vxn9d6sifaddari0g0zxpfw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/python-docstring";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-environment = callPackage ({ deferred
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "python-environment";
+        ename = "python-environment";
+        version = "20150310.153";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-python-environment";
+          rev = "401006584e32864a10c69d29f14414828909362e";
+          sha256 = "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-environment";
+          sha256 = "1pq16rddw76ic5d02j5bswl9qcydi47hqmhs7r06jk46vsfzxpl7";
+          name = "recipe";
+        };
+        packageRequires = [ deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/python-environment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-info = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "python-info";
+        ename = "python-info";
+        version = "20151228.1052";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "python-info";
+          rev = "306f15441b54b25757cdfd3b327b84024ea21ed7";
+          sha256 = "0zk6014dzfrb3y3nhs890x082xf044w0a8nmy6rlrj375lvhfn99";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-info";
+          sha256 = "0kvpz1r2si94rs1iajn1ffmx7a5bgyjnzri36ajdgd5gcgh41dhy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/python-info";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-mode = callPackage ({ fetchFromGitLab
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "python-mode";
+        ename = "python-mode";
+        version = "20181109.2339";
+        src = fetchFromGitLab {
+          owner = "python-mode-devs";
+          repo = "python-mode";
+          rev = "3954afcf093f50930f9d500dfad68cbbed84a01c";
+          sha256 = "1b4r4cj4z0gza6329pdi7qlyyv5h6ijkmdkxm2q7mxnjyrd9iw85";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-mode";
+          sha256 = "1m7c6c97xpr5mrbyzhcl2cy7ykdz5yjj90mrakd4lknnsbcq205k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/python-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-pytest = callPackage ({ dash
+                                 , dash-functional
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , magit-popup
+                                 , melpaBuild
+                                 , projectile
+                                 , s }:
+      melpaBuild {
+        pname = "python-pytest";
+        ename = "python-pytest";
+        version = "20180725.446";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "emacs-python-pytest";
+          rev = "09ad688df207ee9b02c990d3897a9e2841931d97";
+          sha256 = "18v7kxdhrayxg2pgbysm0y47xpdvwa15fmazpkfg0q8dfp2j3022";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-pytest";
+          sha256 = "0n97akqq7dss7rsww311ljh9w1hyc4j64wjmpxjlc9lg5aqwjbh4";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          dash-functional
+          emacs
+          magit-popup
+          projectile
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/python-pytest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-switch-quotes = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "python-switch-quotes";
+        ename = "python-switch-quotes";
+        version = "20161228.9";
+        src = fetchFromGitHub {
+          owner = "werehuman";
+          repo = "python-switch-quotes";
+          rev = "93f1e9b40e061a6cea480139e8b1362b6404abd0";
+          sha256 = "1x04hnf3m8cgqp0i566q4n7kh59cayzfxka3g07kv0h543xbys4n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-switch-quotes";
+          sha256 = "1wc27q9ac8p7c5mfk3kznbmdd5ds4ray0csgba79n19g152y5jjc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/python-switch-quotes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-test = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "python-test";
+        ename = "python-test";
+        version = "20181017.1729";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "python-test.el";
+          rev = "f899975b133539e19ba822e4b0bfd1a28572967e";
+          sha256 = "0ww0qf9hsd8j31dc0p3fmsiqsir3mqbd4pwv4i29qidmbgrk3cv0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-test";
+          sha256 = "16grx9xzl48dcwflfmv64wigyxlw495a6q01b1ynkqj5sjdl3fkn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/python-test";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-x = callPackage ({ cl-lib ? null
+                            , fetchFromGitLab
+                            , fetchurl
+                            , folding
+                            , lib
+                            , melpaBuild
+                            , python ? null }:
+      melpaBuild {
+        pname = "python-x";
+        ename = "python-x";
+        version = "20180802.1042";
+        src = fetchFromGitLab {
+          owner = "wavexx";
+          repo = "python-x.el";
+          rev = "74d8c7eb824846de94705b1e74ee03ef109868d1";
+          sha256 = "00vy3qqkg3zzvjk1cmkl72nmvjdhrccybd36ggnzszq73szcl7n2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-x";
+          sha256 = "03px1z27yhvc9084h9j2p0khvhkwmfxdskf0ndvz79ywp6nl7mb6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib folding python ];
+        meta = {
+          homepage = "https://melpa.org/#/python-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pythonic = callPackage ({ emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "pythonic";
+        ename = "pythonic";
+        version = "20180920.1615";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "pythonic";
+          rev = "6a5a2a365e4ea6fc5adfa96359418c437aa351c8";
+          sha256 = "04x27zhj6yc2lvl79cns365a6w1psvamrzx5vmcqmi4imfp4g8a4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pythonic";
+          sha256 = "1hq0r3vg8vmgw89wfjdqknwm76pimlk0dy56wmh9vffh06gqsb51";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/pythonic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyvenv = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pyvenv";
+        ename = "pyvenv";
+        version = "20180831.147";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "pyvenv";
+          rev = "921ae2356b6a111ac0b7e44fd04cba8e95cbe936";
+          sha256 = "04kxx8fjqzzdl2rn56vn9jac2v3irpmr9dfckwfa3r4gslvipybm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyvenv";
+          sha256 = "0gai9idss1wvryxyqk3pv854mc2xg9hd0r55r2blql8n5rd2yv8v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pyvenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    qiita = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , helm
+                         , lib
+                         , markdown-mode
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "qiita";
+        ename = "qiita";
+        version = "20140118.44";
+        src = fetchFromGitHub {
+          owner = "gongo";
+          repo = "qiita-el";
+          rev = "d38988863a17a6fa8af617349b033c53b7634a83";
+          sha256 = "0m3sr3csab80y408y5rm2ph379n5g5sv08wr32arfh815x3ql0wk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/qiita";
+          sha256 = "1kzk7pc68ks9gxm2l2d28al23gxh56z0cmkl80qwg7sh4gsmhyxl";
+          name = "recipe";
+        };
+        packageRequires = [ helm markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/qiita";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ql = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ql";
+        ename = "ql";
+        version = "20180418.1320";
+        src = fetchFromGitHub {
+          owner = "ieure";
+          repo = "ql-el";
+          rev = "d976414ba6aa576ad524b5ee5bfa620efd072258";
+          sha256 = "138h4ndnzpphsmi4b8yw53mxc3rnqrj1c3jp8njx5pkmiqkp1q00";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ql";
+          sha256 = "0wxjblqacs5nx2hyh7r6rlv1yngbhn6phn5rni4dw2dms98zj34z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    qml-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "qml-mode";
+        ename = "qml-mode";
+        version = "20161015.1731";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "qml-mode";
+          rev = "6c5f33ba88ae010bf201a80ee8095e20a724558c";
+          sha256 = "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/qml-mode";
+          sha256 = "123mlibviplzra558x87da4zx0kpbhsgfigjjgjgp3mdg897084n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/qml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    qt-pro-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "qt-pro-mode";
+        ename = "qt-pro-mode";
+        version = "20170604.1141";
+        src = fetchFromGitHub {
+          owner = "EricCrosson";
+          repo = "qt-pro-mode";
+          rev = "1e0052fcfb89c15cb47714c1546d4e8ec6e01ae6";
+          sha256 = "11bwxq4nwfbnlk4clg0m8jh2xz0ldv4ggyaw645sy7hprvwkp8y4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/qt-pro-mode";
+          sha256 = "1k3ph9bqvvg6i6n623qrwdpsffs8w9rv9nihmlggb4w30dwqc9nf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/qt-pro-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quack = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "quack";
+        ename = "quack";
+        version = "20181106.501";
+        src = fetchFromGitHub {
+          owner = "emacsmirror";
+          repo = "quack";
+          rev = "2146805ce2b5a9b155d73929986f11e713787e26";
+          sha256 = "005wkji4wjqqilgmqy81rjqr8zx4gl39mari2ahvr9mfps2ypmjz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quack";
+          sha256 = "18f3py9vr08589g9kvbcn2nvpd074rx45ni9k66cwl3hjb3hdkg5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/quack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quasi-monochrome-theme = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "quasi-monochrome-theme";
+        ename = "quasi-monochrome-theme";
+        version = "20180516.813";
+        src = fetchFromGitHub {
+          owner = "lbolla";
+          repo = "emacs-quasi-monochrome";
+          rev = "e803bc0c2e38f350feb8297a092812e5204781c7";
+          sha256 = "0s1pqyxahkz5rrczk8m7xiqm41rjhxsyfdl2klp2l8ih13zlwf6i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quasi-monochrome-theme";
+          sha256 = "0h5pqrklyga40jg8qc47lwmf8khn0vcs5jx2sdycl2ipy0ikmfs0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/quasi-monochrome-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quelpa = callPackage ({ emacs
+                          , fetchgit
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "quelpa";
+        ename = "quelpa";
+        version = "20181110.819";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/quelpa.git";
+          rev = "bc8070c43480fa5c3c0ad5775350e52bea7347c2";
+          sha256 = "0vnlfal6n1rm4ii5jf5ih6ls9bkc6yiv99r9jwph1xna14x68l7a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quelpa";
+          sha256 = "0qm4dxwlvaka6j8ismb4lhar4dzlhpvjsx6524w15ilcbdbyqqjl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/quelpa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quelpa-use-package = callPackage ({ emacs
+                                      , fetchgit
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , quelpa
+                                      , use-package }:
+      melpaBuild {
+        pname = "quelpa-use-package";
+        ename = "quelpa-use-package";
+        version = "20180812.329";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/quelpa-use-package.git";
+          rev = "90fc1eadf3f7ff3a3bef07d229a807aba2f7beef";
+          sha256 = "1ij5fqnd0ypn66v8b4s2577b47ninmk085hnjjc4fav6a5gd5csr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quelpa-use-package";
+          sha256 = "1rdhnv7iz9clcy68j1gqv8cwq70ip4w12179v553lyikk9icrpp8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs quelpa use-package ];
+        meta = {
+          homepage = "https://melpa.org/#/quelpa-use-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quick-buffer-switch = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "quick-buffer-switch";
+        ename = "quick-buffer-switch";
+        version = "20151007.1508";
+        src = fetchFromGitHub {
+          owner = "renard";
+          repo = "quick-buffer-switch";
+          rev = "d5fdd67b4c9f04b7a7122da2215e4ae076a03b1b";
+          sha256 = "0kh63nzdzwxksn2ar2i1ds7n96jga2dhhc9gg27p1g2ca66fs6h5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quick-buffer-switch";
+          sha256 = "1fsnha3x3pgq582libb3dmxb93aagv1avnc0rigpfd7hv6bagj40";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/quick-buffer-switch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quick-peek = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "quick-peek";
+        ename = "quick-peek";
+        version = "20180525.711";
+        src = fetchFromGitHub {
+          owner = "cpitclaudel";
+          repo = "quick-peek";
+          rev = "3cc57cc12f4b5f27a18cc5fb0c32c3a943c16158";
+          sha256 = "0wrgdny402z95234kn86k17qn1v3sg8bfdn48y9mg52dk7wnsxvf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quick-peek";
+          sha256 = "0ivg6v9c535bw2bv636wmkd4sy037j55054bfm31wvvxk99bndwq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/quick-peek";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quick-preview = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "quick-preview";
+        ename = "quick-preview";
+        version = "20150828.2139";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "quick-preview.el";
+          rev = "29c884c6ab385ef67d9aa656ebb7c94cabeb5c35";
+          sha256 = "1cp3z05qjy7qvjjv105ws1j9qykx8sl4s13xff0ijwvjza6ga44c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quick-preview";
+          sha256 = "18janbmhbwb6a46fgc1sxl9ww591v60y3wgh2wqh62vdy4ix3bd9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/quick-preview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quick-shell-keybind = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "quick-shell-keybind";
+        ename = "quick-shell-keybind";
+        version = "20171022.2313";
+        src = fetchFromGitHub {
+          owner = "eyeinsky";
+          repo = "quick-shell-keybind";
+          rev = "5f4541a5a5554d108bf16b5fd1713e962161ca1b";
+          sha256 = "19hqywwf80q6ay886xmcjjpr4pghkw78hzdg0mrpkpkqn2vj06gk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quick-shell-keybind";
+          sha256 = "1f66wk2m0yykcbq6qbalgscpq8s53qshyyqdnimlmdi0g0glif1b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/quick-shell-keybind";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quickref = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "quickref";
+        ename = "quickref";
+        version = "20170817.532";
+        src = fetchFromGitHub {
+          owner = "pd";
+          repo = "quickref.el";
+          rev = "f368c8b8219bb90498c5ab84e26f00eedaa234cf";
+          sha256 = "0nalnfb816qk1dfxjk9j8r5lvzv2k4jf747xdjbj2mcvv07g2jd2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quickref";
+          sha256 = "0jahi84ra9g7h0cvz3c02zkbkknrzgv48zq32n72lkxl958swqn1";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/quickref";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quickrun = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "quickrun";
+        ename = "quickrun";
+        version = "20170222.1715";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-quickrun";
+          rev = "55bbe5d54b80206ea5a60bf2f58eb6368b2c8201";
+          sha256 = "1skbd5q99d9rwfi954r9p7b7nhwcfijq30z0fpdhbi1iiabf7vqz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quickrun";
+          sha256 = "0f989d6niw6ghf9mq454kqyp0gy7gj34vx5l6krwc52agckyfacy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/quickrun";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quiet = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "quiet";
+        ename = "quiet";
+        version = "20160508.556";
+        src = fetchFromGitHub {
+          owner = "zzkt";
+          repo = "quiet";
+          rev = "6f20309f99e26fcae2601d1544b342f044e54baf";
+          sha256 = "14q7x341gqcxn3bq72wmfxipqmj2dh35kxcrwjkyghbsbd43rv8n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quiet";
+          sha256 = "1jq65jpx0rlkc0dzy55gs37ybpjzvcv06ahwiw1lk2n92g4pi96a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/quiet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quiz = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "quiz";
+        ename = "quiz";
+        version = "20170818.415";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "quiz.el";
+          rev = "b7c8fc14ebad50ca170c40e4ecb07b7f49f054ba";
+          sha256 = "1kxivd572ww5c6m7d3183ikiyrgvmvhbs8kkyhpc9y3y8ziaid1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quiz";
+          sha256 = "0pcjfhk109ifi834jw8lndwhpfcv764wym1dhiqhp5qd2vf431kg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/quiz";
+          license = lib.licenses.free;
+        };
+      }) {};
+    r-autoyas = callPackage ({ ess
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , yasnippet }:
+      melpaBuild {
+        pname = "r-autoyas";
+        ename = "r-autoyas";
+        version = "20140101.710";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "r-autoyas.el";
+          rev = "d321a7da0ef2e94668d53e0807277da7b70ea678";
+          sha256 = "1m4iwza0dvwzqfapwpsrbphgnxbv5vhw8ar332pj8i16vh3h0fry";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/r-autoyas";
+          sha256 = "18zifadsgbwnga205jvpx61wa2dvjxmxs5v7cjqhny45a524nbv4";
+          name = "recipe";
+        };
+        packageRequires = [ ess yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/r-autoyas";
+          license = lib.licenses.free;
+        };
+      }) {};
+    racer = callPackage ({ dash
+                         , emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pos-tip
+                         , rust-mode
+                         , s }:
+      melpaBuild {
+        pname = "racer";
+        ename = "racer";
+        version = "20181023.1604";
+        src = fetchFromGitHub {
+          owner = "racer-rust";
+          repo = "emacs-racer";
+          rev = "bf8f76f17c64eff2d6ca6029ee0ab7a466590128";
+          sha256 = "0c60fs9p8ryql8jlgx8g9qh27rjfxjlq8w0isajriay2rvxr25af";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/racer";
+          sha256 = "1091y5pisbf73i6zg5d7yny2d5yckkjg0z6fpjpmz5qjs3xcm9wi";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f pos-tip rust-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/racer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    racket-mode = callPackage ({ emacs
+                               , faceup
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "racket-mode";
+        ename = "racket-mode";
+        version = "20181116.1829";
+        src = fetchFromGitHub {
+          owner = "greghendershott";
+          repo = "racket-mode";
+          rev = "dd51668ad9d5293c5eb57f37bbc4c25a201ba467";
+          sha256 = "0waj8034l502blcqb43pyi3smcys826yw2qfnky9dzn2wd12msbd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/racket-mode";
+          sha256 = "0cmlz314w5227br0vns5d7jhpspv1byzalgzv8f9v2qjyvk6jvsn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs faceup s ];
+        meta = {
+          homepage = "https://melpa.org/#/racket-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rails-log-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "rails-log-mode";
+        ename = "rails-log-mode";
+        version = "20140407.2125";
+        src = fetchFromGitHub {
+          owner = "ananthakumaran";
+          repo = "rails-log-mode";
+          rev = "ff440003ad7d47cb0ac3300f2a632f4cfd36a446";
+          sha256 = "1fh8wsb0pa2isr1kgh3v9zmmxq1nlmqwqk4z34dw5wpaiyihmk84";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rails-log-mode";
+          sha256 = "0h7gfg0c5pwfh18qzg1mx7an9p958ygdfqb54s85mbkv8x3rh1a0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rails-log-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    railscasts-reloaded-theme = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "railscasts-reloaded-theme";
+        ename = "railscasts-reloaded-theme";
+        version = "20181030.50";
+        src = fetchFromGitHub {
+          owner = "thegeorgeous";
+          repo = "railscasts-reloaded-theme";
+          rev = "ae77bc04fe5a948f418ec8693f6ff2c9ea757c50";
+          sha256 = "1vn9cw343w9vvxhzqi85vyqnj6kxcv99qvva4xjvy1sf65i24wy4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/railscasts-reloaded-theme";
+          sha256 = "1iy30mnm3s7p7qigrm3lvv7xjgwvinwg6yg0hry2aifwn88cnwmz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/railscasts-reloaded-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    railscasts-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "railscasts-theme";
+        ename = "railscasts-theme";
+        version = "20150219.725";
+        src = fetchFromGitHub {
+          owner = "mikenichols";
+          repo = "railscasts-theme";
+          rev = "1340c3f6c2717761cab95617cf8dcbd962b1095b";
+          sha256 = "021x1l5kzsbm0qj5a3bngxa7ickm4lbwsdz81a2ks9pi1ivmw205";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/railscasts-theme";
+          sha256 = "1z5m8ccx2k18gbzqvg0051mp2myy2qncf4xvv47k80f83pk2hw6r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/railscasts-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rainbow-blocks = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "rainbow-blocks";
+        ename = "rainbow-blocks";
+        version = "20171025.738";
+        src = fetchFromGitHub {
+          owner = "istib";
+          repo = "rainbow-blocks";
+          rev = "dd435d7bb34ff6f162a5f315df308b90b7e9f842";
+          sha256 = "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rainbow-blocks";
+          sha256 = "1zf1z1hnp8q0s9za7nnpq83isbpmz26l8hxafz0h0b5dz1w2vlvs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rainbow-blocks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rainbow-delimiters = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "rainbow-delimiters";
+        ename = "rainbow-delimiters";
+        version = "20170929.432";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "rainbow-delimiters";
+          rev = "19b93892afa0494ba749c2ca9c154e04447ad778";
+          sha256 = "0c2a8pbhzzy0bxx8gxz320r106k69hvwkn43j06i6sidbgjwh786";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rainbow-delimiters";
+          sha256 = "132nslbnszvbgkl0819z811yar3lms1hp5na4ybi9gkmnb7bg4rg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rainbow-delimiters";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rainbow-identifiers = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "rainbow-identifiers";
+        ename = "rainbow-identifiers";
+        version = "20141102.726";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "rainbow-identifiers";
+          rev = "19fbfded1baa98d12335f26f6d7b20e5ae44ce2e";
+          sha256 = "05i0jpmxzsj2lsj48cafn3v93z37l7k5kaza2ik3yirdpjdibyrh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rainbow-identifiers";
+          sha256 = "0lw790ymrgpyh0sxwmzinl2ik5vl5vggbg14cd0cx5yagkw5y3mp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rainbow-identifiers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rake = callPackage ({ cl-lib ? null
+                        , dash
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "rake";
+        ename = "rake";
+        version = "20180212.208";
+        src = fetchFromGitHub {
+          owner = "asok";
+          repo = "rake";
+          rev = "9c204334b03b4e899fadae6e59c20cf105404128";
+          sha256 = "09k2fqkmqr6g19rvqr5x2kpj1cn3wkncxg50hz02vmsrbgmzmnja";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rake";
+          sha256 = "0cw47g6cjnkh3z4hbwwq1f8f5vrvs84spn06k53bx898brqdh8ns";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash f ];
+        meta = {
+          homepage = "https://melpa.org/#/rake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rally-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , popwin }:
+      melpaBuild {
+        pname = "rally-mode";
+        ename = "rally-mode";
+        version = "20161113.1954";
+        src = fetchFromGitHub {
+          owner = "seanleblanc";
+          repo = "rally-mode";
+          rev = "0f5e09a6abe2de7613f174b4f54863df93343134";
+          sha256 = "1vrsv8ph1v853ii0i3q889xlwxnjdqz4bs3ipi502rjx6g7y5gdz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rally-mode";
+          sha256 = "1vzsh5855bzln3p3235yccl2azpndpc4rh95zrx6p1k62h2kv0y1";
+          name = "recipe";
+        };
+        packageRequires = [ popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/rally-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rand-theme = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "rand-theme";
+        ename = "rand-theme";
+        version = "20151219.1535";
+        src = fetchFromGitHub {
+          owner = "gopar";
+          repo = "rand-theme";
+          rev = "65a00e5c5150f857aa96803b68f50bc8da0215b7";
+          sha256 = "0fmajgqf9j21qn7h35sky5di8cnma432g0ki9d5m41byxp9y1bdl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rand-theme";
+          sha256 = "0c2xs99jgrhk6f1s6pls8pigg6qwcr4imnwdlngwzr0jz8jhqvxa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/rand-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    random-splash-image = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "random-splash-image";
+        ename = "random-splash-image";
+        version = "20151002.1830";
+        src = fetchFromGitHub {
+          owner = "kakakaya";
+          repo = "random-splash-image";
+          rev = "907e2db5ceff781ac7f4dbdd65fe71736c36aa22";
+          sha256 = "1z25xmz8pl3rsfahw6ay8wx5wbnlxabnzr2dq20m0i5jyci8lqll";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/random-splash-image";
+          sha256 = "1j454jy4ia2wrgi3fxzjfdqi3z8x13hq8kh62lnb84whs7a1nhik";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/random-splash-image";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ranger = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ranger";
+        ename = "ranger";
+        version = "20170817.857";
+        src = fetchFromGitHub {
+          owner = "ralesi";
+          repo = "ranger.el";
+          rev = "6bbff5df2e55f56047fca5058d9ca93ba4963aef";
+          sha256 = "000dqqy5fbic8rwyndchj5pjmzad2yfa7z3xzi84dla6vhv15q6p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ranger";
+          sha256 = "14g4r4iaz0nzfsklslrswsik670pvfd0605xfjghvpngn2a8ych4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ranger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rase = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "rase";
+        ename = "rase";
+        version = "20120928.1345";
+        src = fetchFromGitHub {
+          owner = "m00natic";
+          repo = "rase";
+          rev = "59b5f7e8102570b65040e8d55781c7ea28de7338";
+          sha256 = "1i16361klpdsxphcjdpxqswab3ing69j1wb9nygws7ghil85h0bx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rase";
+          sha256 = "1g7v2z7l4csl5by64hc3zg4kgrkvv81iq30mfqq4nvy1jc0xa6j0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rase";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rats = callPackage ({ cl-lib ? null
+                        , fetchFromGitHub
+                        , fetchurl
+                        , go-mode
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "rats";
+        ename = "rats";
+        version = "20170818.313";
+        src = fetchFromGitHub {
+          owner = "ane";
+          repo = "rats.el";
+          rev = "a6d55aebcc54f669c6c6ffedf84364c4097903cc";
+          sha256 = "0cskw05jb7wckhfs2qs9pn5icxa93ay2mw2i1brsmdd0igz34lg3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rats";
+          sha256 = "0jhwiq9yzwpyqhk3c32vqx8nryingzh58psxbzjl3812b7xdqphr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib go-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/rats";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rbenv = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "rbenv";
+        ename = "rbenv";
+        version = "20141119.2349";
+        src = fetchFromGitHub {
+          owner = "senny";
+          repo = "rbenv.el";
+          rev = "2ea1a5bdc1266caef1dd77700f2c8f42429b03f1";
+          sha256 = "0yd0rs6fnc6lsfi7pivw5sivh698055r8ifj9vrxb82dcx2y6v2h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rbenv";
+          sha256 = "1skh1v8dgwl1f9m3pmy2s3rnzp8n3cydi3579fgjv4mzi81k3d5q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rbenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rbt = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , magit
+                       , melpaBuild
+                       , popup }:
+      melpaBuild {
+        pname = "rbt";
+        ename = "rbt";
+        version = "20170202.1502";
+        src = fetchFromGitHub {
+          owner = "joeheyming";
+          repo = "rbt.el";
+          rev = "32bfba9062a014e375451cf4203c29535b5efc1e";
+          sha256 = "0jzhyf42m9gqcnsz9gxc9wk8bbb9a7fj78swwyj0wqn9jm8jxbra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rbt";
+          sha256 = "1mrb6v8zybvhh242vvq0kdvg6cvws7gabfhcydrw5g2njhyqkygm";
+          name = "recipe";
+        };
+        packageRequires = [ magit popup ];
+        meta = {
+          homepage = "https://melpa.org/#/rbt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rc-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "rc-mode";
+        ename = "rc-mode";
+        version = "20160913.1218";
+        src = fetchFromGitHub {
+          owner = "mrhmouse";
+          repo = "rc-mode.el";
+          rev = "fe2e0570bf9c19a292e16b18fd4b0a256df5d93f";
+          sha256 = "0skjg3l3ss8nlrpnpjjflmf7wjib4jfarkmx4438nc6vm6553fmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rc-mode";
+          sha256 = "0p77mckw8jyxcwspj1ffm8mz0k01ddm67hh9j8rw812wddwnj7qf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rcirc-alert = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "rcirc-alert";
+        ename = "rcirc-alert";
+        version = "20141127.247";
+        src = fetchFromGitHub {
+          owner = "csantosb";
+          repo = "rcirc-alert";
+          rev = "0adf8ff9c47023fec578f678424be62b0f49057f";
+          sha256 = "0xdyrp0zs2v2glpfwlajmj97wygwi0y492zbp6rp3caa5bj3j4z2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rcirc-alert";
+          sha256 = "0lyd3gz1sflp93xb7xbvk1gh69w468ync1p144avyh2pybl40q4a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rcirc-alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rcirc-alertify = callPackage ({ alert
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "rcirc-alertify";
+        ename = "rcirc-alertify";
+        version = "20140406.1819";
+        src = fetchFromGitHub {
+          owner = "fgallina";
+          repo = "rcirc-alertify";
+          rev = "ea5cafc55893f375eccbe013d12dbaa94bf6e259";
+          sha256 = "1mpk5rzsil298q3ppv5v9jrn274v71jffyz0jihrksh1wbjzwhlx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rcirc-alertify";
+          sha256 = "13448bykmy0jqcajhn2gjiar3m8cingyr8394vxybp2m1zvv0pws";
+          name = "recipe";
+        };
+        packageRequires = [ alert ];
+        meta = {
+          homepage = "https://melpa.org/#/rcirc-alertify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rcirc-groups = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "rcirc-groups";
+        ename = "rcirc-groups";
+        version = "20170731.1401";
+        src = fetchFromGitHub {
+          owner = "dimitri";
+          repo = "rcirc-groups";
+          rev = "b68ece9d219b909244d4e3c0d8bf6a746d6fead7";
+          sha256 = "196x3qg22rhh917diml1q0hszqrqwg0klzp96q1c7c744mlq82fx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rcirc-groups";
+          sha256 = "1iws3f8vkwrflcj6ni8nmf1wcw1jrlnssm76kzzhag77ry3iswgx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rcirc-groups";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rcirc-notify = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "rcirc-notify";
+        ename = "rcirc-notify";
+        version = "20150219.1404";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "rcirc-notify";
+          rev = "841a7b5a6cdb0c11a812df924d2c6a7d364fd455";
+          sha256 = "1k4knsrca626pikgaalqbqwy7im4wz1vrmzzhdrdb4lhdz6sq3q3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rcirc-notify";
+          sha256 = "0mwhzkbzhpq4jws05p7qp0kbay8kcblb9xikznm0i8drpdyc617v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rcirc-notify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rcirc-styles = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "rcirc-styles";
+        ename = "rcirc-styles";
+        version = "20160206.1850";
+        src = fetchFromGitHub {
+          owner = "aaron-em";
+          repo = "rcirc-styles.el";
+          rev = "f313bf6a7470bed314b27c7a40558cb787d7bc67";
+          sha256 = "1kwn33rxaqik5jls66c2indvswhwmxdmd60n7a1h9siqm5qhy9d6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rcirc-styles";
+          sha256 = "01dxhnzsnljig769dk9axdi970b3lw2s6p1z3ljf29qlb5j4548r";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/rcirc-styles";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rdf-prefix = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "rdf-prefix";
+        ename = "rdf-prefix";
+        version = "20180127.1006";
+        src = fetchFromGitHub {
+          owner = "simenheg";
+          repo = "rdf-prefix";
+          rev = "164136d05505275d42d1ca3a390f55fcc89694b8";
+          sha256 = "18jp3yynnk2248mzwf8h62awfw8fh25m5ah5di0dg62xw56l9nig";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rdf-prefix";
+          sha256 = "1vxgn5f2kws17ndfdv1vj5p9ks3rp6sikzpc258j07bhsfpjz5qm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rdf-prefix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rdp = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "rdp";
+        ename = "rdp";
+        version = "20120928.1854";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "rdp";
+          rev = "b620192afada04aec33b38cc130fef0765f41ca9";
+          sha256 = "08l96bhghmnckar4i6afj9csqglasmpmby1r7j38ic9bp37z2yqd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rdp";
+          sha256 = "0lj3idwv4fxz8pi8mnxkbhwhzaa1gs6ib4nzly3fc6yiix9ampkz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rdp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rdxmk = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "rdxmk";
+        ename = "rdxmk";
+        version = "20170629.1834";
+        src = fetchFromGitHub {
+          owner = "jsalzbergedu";
+          repo = "rdxmk";
+          rev = "e78749fb29738365ffa4d863ffabeb969ebb0bcf";
+          sha256 = "0gwlqjk84ih89c2ckx0rrw07jgwd32wfwj4mibchdrn0ai891md0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rdxmk";
+          sha256 = "14iavsgqp28y2ykgly8x69sny34r32dl4bpb47m921vk5n4y6zky";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rdxmk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    react-snippets = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yasnippet }:
+      melpaBuild {
+        pname = "react-snippets";
+        ename = "react-snippets";
+        version = "20181002.346";
+        src = fetchFromGitHub {
+          owner = "johnmastro";
+          repo = "react-snippets.el";
+          rev = "87ccb640d265fe799583ab55605b84d113223694";
+          sha256 = "0zs78mn37ngy86blmp2xfy7jr5p0s6r0qq6z3z924amrhy5bwdqc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/react-snippets";
+          sha256 = "0chs0h41nb2fdz02hdsaynz7ma8fg66a8m1q1np0464skrsdaj73";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/react-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    read-aloud = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "read-aloud";
+        ename = "read-aloud";
+        version = "20160922.2200";
+        src = fetchFromGitHub {
+          owner = "gromnitsky";
+          repo = "read-aloud.el";
+          rev = "d5f80ab72054a957aed25224639c1779cae5f4d1";
+          sha256 = "1hbb6diz96jabajxrnancjfpyd9div8vzbwys1f5bddi9z8l2jyy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/read-aloud";
+          sha256 = "01fd87k50x71w8qypbi7llgyc1xnmyxifxh4ni9pgbx2ryn72lzv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/read-aloud";
+          license = lib.licenses.free;
+        };
+      }) {};
+    readability = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , oauth
+                               , ov }:
+      melpaBuild {
+        pname = "readability";
+        ename = "readability";
+        version = "20140715.1727";
+        src = fetchFromGitHub {
+          owner = "ShingoFukuyama";
+          repo = "emacs-readability";
+          rev = "3329d7c77d010c8fa92215cd2b7cd891eb2f68c7";
+          sha256 = "0s226fqhc9y1s49l5y01mlxxz3ah4k3payy4jdgnd8r03rb3gia7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/readability";
+          sha256 = "0kg91ma9k3p5ps467jjz2lw13rv1l8ivwc3zpg6c1rl474ds0qqv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs oauth ov ];
+        meta = {
+          homepage = "https://melpa.org/#/readability";
+          license = lib.licenses.free;
+        };
+      }) {};
+    readline-complete = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "readline-complete";
+        ename = "readline-complete";
+        version = "20150708.737";
+        src = fetchFromGitHub {
+          owner = "monsanto";
+          repo = "readline-complete.el";
+          rev = "30c020c37b2741160cc37e656e13c85d826a0ebf";
+          sha256 = "1j5b5xapflwzh8a297gva0l12ralwa9vl5z3bb75c9ksjkhi4nm6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/readline-complete";
+          sha256 = "1qymk5ypv6ljk8x49z4jcifz7c2dqcg5181f4hqh67g1byvj2277";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/readline-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    real-auto-save = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "real-auto-save";
+        ename = "real-auto-save";
+        version = "20180802.2147";
+        src = fetchFromGitHub {
+          owner = "ChillarAnand";
+          repo = "real-auto-save";
+          rev = "fb1477244fe365cc79c6946507fde2caf71af600";
+          sha256 = "0g4a3cmfngx59byn22ihq6izpjg1srpgn3gkx13jdsxdwxrwbg14";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/real-auto-save";
+          sha256 = "1li0b2d93ffxjq4jdyzyvjdy5h7q5xllys0w4748d2bhr8q35p3w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/real-auto-save";
+          license = lib.licenses.free;
+        };
+      }) {};
+    realgud = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , load-relative
+                           , loc-changes
+                           , melpaBuild
+                           , test-simple }:
+      melpaBuild {
+        pname = "realgud";
+        ename = "realgud";
+        version = "20180924.1710";
+        src = fetchFromGitHub {
+          owner = "realgud";
+          repo = "realgud";
+          rev = "296a802b349da310350a79d95e976dda5b3d26a7";
+          sha256 = "03df94xz5xclws6ss8828bax55ar97rav0zzbj4jzys0qxf6kix3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/realgud";
+          sha256 = "0wbcclgd23d91c7lx8yx7qigcbc0ywr4hjh7h49pi2avy1cm2q0v";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          emacs
+          load-relative
+          loc-changes
+          test-simple
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/realgud";
+          license = lib.licenses.free;
+        };
+      }) {};
+    realgud-byebug = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , realgud }:
+      melpaBuild {
+        pname = "realgud-byebug";
+        ename = "realgud-byebug";
+        version = "20180308.1923";
+        src = fetchFromGitHub {
+          owner = "realgud";
+          repo = "realgud-byebug";
+          rev = "de603d58aa9ef72a2619247a0234fccf6bc2cc9a";
+          sha256 = "1hk2z7axy1v5yvx4xgkisfk00varq5rf8j88f0l63ywylyw1fwhl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/realgud-byebug";
+          sha256 = "1akv9raa6yb5h4lsvz7mxlnd9l7adg2rpgw7ski6036n6facn18a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs realgud ];
+        meta = {
+          homepage = "https://melpa.org/#/realgud-byebug";
+          license = lib.licenses.free;
+        };
+      }) {};
+    realgud-old-debuggers = callPackage ({ cl-lib ? null
+                                         , emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , realgud }:
+      melpaBuild {
+        pname = "realgud-old-debuggers";
+        ename = "realgud-old-debuggers";
+        version = "20170316.31";
+        src = fetchFromGitHub {
+          owner = "realgud";
+          repo = "realgud-old-debuggers";
+          rev = "1e1d573a6ba731afbe68c1309a316457ca3fbb94";
+          sha256 = "1gk8k9lqbvqq4ngw0ffp3sqhkaj23n54m3ndh2ba9gvlmx7mxm7g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/realgud-old-debuggers";
+          sha256 = "14kig9yxss9nfc0cc54ph80pbdrmh1mdazypiwxbnj2nk1dk3qsv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs realgud ];
+        meta = {
+          homepage = "https://melpa.org/#/realgud-old-debuggers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    realgud-pry = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , realgud }:
+      melpaBuild {
+        pname = "realgud-pry";
+        ename = "realgud-pry";
+        version = "20160805.745";
+        src = fetchFromGitHub {
+          owner = "realgud";
+          repo = "realgud-pry";
+          rev = "fca36075a223f6a4a643764199babe3d1dfde2ac";
+          sha256 = "08jnav5v5q1mwgk9x100magm3jcprzfhmx8z6x8vcmp7xf79n1pp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/realgud-pry";
+          sha256 = "1f8qap30r26gg33i76474zk6fs3r9qjf7jrxpm4xwpbjraggqy3z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs realgud ];
+        meta = {
+          homepage = "https://melpa.org/#/realgud-pry";
+          license = lib.licenses.free;
+        };
+      }) {};
+    realgud-rdb2 = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , realgud }:
+      melpaBuild {
+        pname = "realgud-rdb2";
+        ename = "realgud-rdb2";
+        version = "20160303.43";
+        src = fetchFromGitHub {
+          owner = "realgud";
+          repo = "realgud-ruby-debugger2";
+          rev = "e63eeed131517a9e8225f972c9f6c975c8121e41";
+          sha256 = "0skaw5fzvqk56mfk3ciy9n85vznq1sxv6w575v3jd80w2dns4yay";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/realgud-rdb2";
+          sha256 = "16pk034g26xnbsz0w9z8p76jiaraz8lvbf5hf0mmg1f5f4xlinz7";
+          name = "recipe";
+        };
+        packageRequires = [ realgud ];
+        meta = {
+          homepage = "https://melpa.org/#/realgud-rdb2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reason-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "reason-mode";
+        ename = "reason-mode";
+        version = "20180727.1158";
+        src = fetchFromGitHub {
+          owner = "reasonml-editor";
+          repo = "reason-mode";
+          rev = "4123ee5b3dccf8986e94d5f51220a544deee0b93";
+          sha256 = "0w5957fniyx58a4qnmabrkisz8302f3hmsip7gg2r272fbf29nzc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reason-mode";
+          sha256 = "07sirgj8bs9yv7pbx1lahwslvjd2aadkzkz7lsyw6xflj5fxpggr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/reason-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reazon = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "reazon";
+        ename = "reazon";
+        version = "20180921.737";
+        src = fetchFromGitHub {
+          owner = "nickdrozd";
+          repo = "reazon";
+          rev = "020be6467a83957adcbdcb192b61f2c76a94079b";
+          sha256 = "18la2g0srybr10vm1dajgbxi67j1l0cs08mr696hxb6m558yxdv5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reazon";
+          sha256 = "1lymdc1lnwr7s8s15mnjcavxdyqncy2rkfdj571lf1a37y52jcj1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/reazon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rebecca-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "rebecca-theme";
+        ename = "rebecca-theme";
+        version = "20180324.121";
+        src = fetchFromGitHub {
+          owner = "vic";
+          repo = "rebecca-theme";
+          rev = "1fe3662d1b02caea96e9a780252b2c45f7a49b1d";
+          sha256 = "0qcfnc9slhm4y2bpld0ckbv3wijr9y7h6555sy23z3dlmz7xs1wm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rebecca-theme";
+          sha256 = "1m72jqyqx18i1vpj07v3vkbi0di9dks5sz46wb2h0f23xqyx00md";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rebecca-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rebox2 = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "rebox2";
+        ename = "rebox2";
+        version = "20121113.500";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "rebox2";
+          rev = "00634eca420cc48657b81e40e599ff8548083985";
+          sha256 = "1xh9nxqfg9abcl41ni69rnwjfgyfr0pbl55dzyxsbh6sb36r3h8z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rebox2";
+          sha256 = "06ra50afjqac9ck1s9gaxy0sqxcb612wzd28s4q4imicqpgfxzjw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rebox2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    recentf-ext = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "recentf-ext";
+        ename = "recentf-ext";
+        version = "20170925.1735";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "recentf-ext";
+          rev = "450de5f8544ed6414e88d4924d7daa5caa55b7fe";
+          sha256 = "1jylpqgngbl594a1qvd305m9lda48cib4dsasimdqxp20d4c56iy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/recentf-ext";
+          sha256 = "122kns45l75cdwxbfjznks3kvm5jc89ik714ij2qx14qyik0xmni";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/recentf-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    recentf-remove-sudo-tramp-prefix = callPackage ({ emacs
+                                                    , fetchFromGitHub
+                                                    , fetchurl
+                                                    , lib
+                                                    , melpaBuild }:
+      melpaBuild {
+        pname = "recentf-remove-sudo-tramp-prefix";
+        ename = "recentf-remove-sudo-tramp-prefix";
+        version = "20180204.2156";
+        src = fetchFromGitHub {
+          owner = "ncaq";
+          repo = "recentf-remove-sudo-tramp-prefix";
+          rev = "6d23ebc3f52b0a66236c171c45cc77a4d3aba541";
+          sha256 = "0rzs9fmy1iqips6px0v57wnplbxmm3sbnk6xcszwhkwwp563hk32";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/recentf-remove-sudo-tramp-prefix";
+          sha256 = "01kdpx7kqd39a5hjym5plcj5d8szzghigq9mq186mggayg8q44cr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/recentf-remove-sudo-tramp-prefix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    recompile-on-save = callPackage ({ cl-lib ? null
+                                     , dash
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "recompile-on-save";
+        ename = "recompile-on-save";
+        version = "20151126.646";
+        src = fetchFromGitHub {
+          owner = "maio";
+          repo = "recompile-on-save.el";
+          rev = "92e11446869d878803d4f3dec5d2101380c12bb2";
+          sha256 = "0wk28blnfks987iby0p3qpd4nxnz6sqn4fx8g59gyddjhav51lri";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/recompile-on-save";
+          sha256 = "0bg2p7pk4jlpqc7lg48mxd6zkwnx15r0r7lmsxgx9dv1ilfwrmgn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/recompile-on-save";
+          license = lib.licenses.free;
+        };
+      }) {};
+    recover-buffers = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "recover-buffers";
+        ename = "recover-buffers";
+        version = "20171008.2137";
+        src = fetchFromGitHub {
+          owner = "tripleee";
+          repo = "recover-buffers";
+          rev = "81a5cb53099955ebc2a411a44cba5a394ee3f2d1";
+          sha256 = "07dfdvz5rn5l13xdycd7h75zaq0pw2afb9n1yiq01fqk6gvrhc5b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/recover-buffers";
+          sha256 = "0g40d7440hzlc9b45v63ng0anvmgip4dhbd9wcm2sn8qjfr4w11b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/recover-buffers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rect-plus = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "rect-plus";
+        ename = "rect+";
+        version = "20150620.1744";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-rectplus";
+          rev = "299b742faa0bc4448e0d5fe9cb98ab1eb93b8dcc";
+          sha256 = "1vpsihrl03hkd6n6b7mrjccm0a023qf3154a8rw4chihikxw27pj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rect+";
+          sha256 = "0vk0jwpl6yp2md9nh0ghp2qn883a8lr3cq8c9mgq0g552dwdiv5m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rect+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rectangle-utils = callPackage ({ cl-lib ? null
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "rectangle-utils";
+        ename = "rectangle-utils";
+        version = "20160914.2108";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "rectangle-utils";
+          rev = "6fe38fdd48ef5305a908b94a043a966ac3f2053a";
+          sha256 = "08n3ah40gfgkbriwj2z3y0751vpvgz86qjdn6dxs4mghjrwr2545";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rectangle-utils";
+          sha256 = "1w5z2gykydsfp30ahqjihpvq04c5v0cfslbrrg429hycys8apws7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rectangle-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    recursive-narrow = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "recursive-narrow";
+        ename = "recursive-narrow";
+        version = "20180916.2149";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "recursive-narrow";
+          rev = "94f5c16a81ecf85c7442ebc8cd04ba7553ab5244";
+          sha256 = "0l0czf1405pcxshwdvvniddz00lygh25xdim8xzn7b1w13knb863";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/recursive-narrow";
+          sha256 = "15pzwxzyc3dl81v27gk7a4866cxbhzpmmcmfi9n4vrrxmf61h905";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/recursive-narrow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    redis = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "redis";
+        ename = "redis";
+        version = "20150531.1248";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "redis.el";
+          rev = "2c33f3397bc14e7a8192867b55920492d4eead8c";
+          sha256 = "1rjpf23a8rggjmmxvm1997d3xz03kz84xams486b9ky0n2v02d57";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/redis";
+          sha256 = "1awnilb8bk0izp6yw0187ybh9slf1hc51014xvvmj90darxby79a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/redis";
+          license = lib.licenses.free;
+        };
+      }) {};
+    redpen-paragraph = callPackage ({ cl-lib ? null
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , json ? null
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "redpen-paragraph";
+        ename = "redpen-paragraph";
+        version = "20160625.350";
+        src = fetchFromGitHub {
+          owner = "karronoli";
+          repo = "redpen-paragraph.el";
+          rev = "770ffb34b04bfa0ea8484fa1506e96c530168e13";
+          sha256 = "0cqln3d8yp9fdam984bwnngjl0hjnwi7yhcggdkjwribhr79cxhl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/redpen-paragraph";
+          sha256 = "0jr707ik6fhznq0q421l986w85ah0n9b4is91zrgbk1v6miqrhca";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/redpen-paragraph";
+          license = lib.licenses.free;
+        };
+      }) {};
+    redprl = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "redprl";
+        ename = "redprl";
+        version = "20180418.734";
+        src = fetchFromGitHub {
+          owner = "RedPRL";
+          repo = "sml-redprl";
+          rev = "4abdbdeda4604ff30ce19c0df3f43e34faf60bd7";
+          sha256 = "0m6ck4x16b9qnd33dcw5zvygwgcqzwqydrvcw0gfyfypfcw13qwb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/redprl";
+          sha256 = "1zinzs3vzf2alsnxf5k71i7lp90fm26wv4y20ci52n0hnh5nz861";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/redprl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    redshank = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , paredit }:
+      melpaBuild {
+        pname = "redshank";
+        ename = "redshank";
+        version = "20180729.2107";
+        src = fetchFromGitHub {
+          owner = "emacsattic";
+          repo = "redshank";
+          rev = "d059c5841044aa163664f8bf87c1d981bf0a04fe";
+          sha256 = "1545z1dd85zg8sg2r5r5gdnmgxbxwjvl5xklx5nvpd0gbxlwbpqk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/redshank";
+          sha256 = "0p18rkn09qb4ssr6jix13kqc3jld407qr2z2k8z78i3xy4bfzr5f";
+          name = "recipe";
+        };
+        packageRequires = [ paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/redshank";
+          license = lib.licenses.free;
+        };
+      }) {};
+    redtick = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "redtick";
+        ename = "redtick";
+        version = "20180424.1436";
+        src = fetchFromGitHub {
+          owner = "ferfebles";
+          repo = "redtick";
+          rev = "0faa6b7b479fae39f5d4632f0cbbef0f2917780e";
+          sha256 = "12wsczhz03vjfvck20jg9xi2mgiihq2d4cnkj6r95jkja0ds7brh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/redtick";
+          sha256 = "1a9rviz0hg6vlh2jc04g6vslyf9n89xglcz9cb79vf10hhr6igrb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/redtick";
+          license = lib.licenses.free;
+        };
+      }) {};
+    redtt = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "redtt";
+        ename = "redtt";
+        version = "20181017.1559";
+        src = fetchFromGitHub {
+          owner = "RedPRL";
+          repo = "redtt";
+          rev = "fd5741dbdf3721a7d86268940c91c1d57f98eac2";
+          sha256 = "1s6q4fh68l3vw3m5mn2r0spbxi797f1fgxalrrzmdkl3vwd9x4pk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/redtt";
+          sha256 = "0gnqik2p2rb8c1mp3vrz1xf7z89xfcx5pi4lqsdnwjhxjh2534zk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/redtt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    refine = callPackage ({ dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , list-utils
+                          , loop
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "refine";
+        ename = "refine";
+        version = "20180315.1528";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "refine";
+          rev = "0a99439a0b4ed6f79b9a240ea1270140a9e328bc";
+          sha256 = "1scw449mbmr70kb0r2ymhph9j0s5ym77ijp5fpwph9bri46cad3g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/refine";
+          sha256 = "1sk6rsd92pix7k8snnqm3hsimjzaihzjgac0g5h3a2zm9dabf4py";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs list-utils loop s ];
+        meta = {
+          homepage = "https://melpa.org/#/refine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    regex-dsl = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "regex-dsl";
+        ename = "regex-dsl";
+        version = "20100124.228";
+        src = fetchFromGitHub {
+          owner = "alk";
+          repo = "elisp-regex-dsl";
+          rev = "c9d9ce30669e3c4ccfa6030eb4a080083451ac71";
+          sha256 = "11lrgygmwgc93av33md601alqr7ffh5ga0r60lvkl3rgwgnxz7iw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/regex-dsl";
+          sha256 = "0c9mxsvmx6mgpq838qnjjr7ra4hafikv7hq4nfab7zw9mxrcr2f9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/regex-dsl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    regex-tool = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "regex-tool";
+        ename = "regex-tool";
+        version = "20170104.1118";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "regex-tool";
+          rev = "0b4a0111143c88ef94bec56624cb2e00c1a054e6";
+          sha256 = "03qm8s7nqsj0pjnnb0p84gk7hvad4bywn3rhr3ibzj6hxqvppbqj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/regex-tool";
+          sha256 = "1s4clmy5r7w6aj2bh2vf2fmbcwnainzidj28mf3kc34x3qhybngq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/regex-tool";
+          license = lib.licenses.free;
+        };
+      }) {};
+    region-bindings-mode = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "region-bindings-mode";
+        ename = "region-bindings-mode";
+        version = "20140407.1514";
+        src = fetchFromGitHub {
+          owner = "fgallina";
+          repo = "region-bindings-mode";
+          rev = "3fa5dbdbd7c000bebff6d9d14a4be326ec24b6fc";
+          sha256 = "02kfi3c6ydnr7xw611ck66kfjyl5w86dr9vfjv3wjl6ad9jya4zy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/region-bindings-mode";
+          sha256 = "141q4x6rilidpnsm9s78qks9i1v6ng0ydhbzqi39xcaccfyyjb69";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/region-bindings-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    region-convert = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "region-convert";
+        ename = "region-convert";
+        version = "20161118.1859";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "right-click-context";
+          rev = "32f572b4f9ff6f9a062a914b4f8ba66f43e7ee8a";
+          sha256 = "1lsr7ljzvfs84jnlk2igg8h0ki09gzw2ihgl2p6wdn27d47blcwd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/region-convert";
+          sha256 = "0daghvxc6gxgric1aa1gw036gbpbzilqz72gr1inqy92hz7xrxfm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/region-convert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    region-state = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "region-state";
+        ename = "region-state";
+        version = "20151128.238";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "region-state.el";
+          rev = "07ffb7d9ada2fcd204f3447f078c265d25f36f60";
+          sha256 = "0gsh0x1rqxvzrszdyna9d8b8w22mqnd9yqcwzay2prc6rpl26g1f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/region-state";
+          sha256 = "1iq2x1w8lqjjiwjja7r3qki6drvydnk171k9fj9g6rk7wslknz8x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/region-state";
+          license = lib.licenses.free;
+        };
+      }) {};
+    register-channel = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "register-channel";
+        ename = "register-channel";
+        version = "20180926.1649";
+        src = fetchFromGitHub {
+          owner = "YangZhao11";
+          repo = "register-channel";
+          rev = "9272923757402d177a0b2deab1d9c3c74601c48e";
+          sha256 = "0k9qgrbzbxx4sjffnr02qx5wm71i3m61w7mh2j4hq9jf8k6nbkq4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/register-channel";
+          sha256 = "037i2fgxxsfb85vd6xk17wyh7ny6fqfixvb0a18lf8m1hib1gyhr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/register-channel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    related = callPackage ({ cl-lib ? null
+                           , fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "related";
+        ename = "related";
+        version = "20161002.2310";
+        src = fetchgit {
+          url = "https://bitbucket.org/julien-montmartin/related";
+          rev = "0065a2e16eeaa9bface49f7f0815b9cf9719f441";
+          sha256 = "0gaj1mqv77dahw6zfqlf8q624b2ba589chgaa22vy4vg3lz6qzks";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/related";
+          sha256 = "0nm2dnmz4a5z187mzggsj8xrdy1x84lxx79rmwcrkh1d7jzjhi6f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/related";
+          license = lib.licenses.free;
+        };
+      }) {};
+    relative-buffers = callPackage ({ cl-lib ? null
+                                    , dash
+                                    , f
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "relative-buffers";
+        ename = "relative-buffers";
+        version = "20160221.1123";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "relative-buffers";
+          rev = "88c24259ed62b85adff6850e34bbbe844caddccf";
+          sha256 = "0100maanb1v0hl4pj8ykzlqpr3cvs6ldak5japndm5yngzp6m8ks";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/relative-buffers";
+          sha256 = "131182yb0pr0d6jibqd8aag4w8hywdyi87ldp77b95gw4bqhr96i";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/relative-buffers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    relax = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , json ? null
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "relax";
+        ename = "relax";
+        version = "20131029.1434";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "relax.el";
+          rev = "6e33892623ab87833082262321dc8e1977209626";
+          sha256 = "0lqbhwi1f8b4sv9p1rf0gyjllk0l7g6v6mlws496079wxx1n5j66";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/relax";
+          sha256 = "0gfr4ym6aakawhkfz40ar2n0rfz503hq428yj6rbf7jmq3ajaysk";
+          name = "recipe";
+        };
+        packageRequires = [ json ];
+        meta = {
+          homepage = "https://melpa.org/#/relax";
+          license = lib.licenses.free;
+        };
+      }) {};
+    remark-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , markdown-mode
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "remark-mode";
+        ename = "remark-mode";
+        version = "20171217.2356";
+        src = fetchFromGitHub {
+          owner = "torgeir";
+          repo = "remark-mode.el";
+          rev = "e8a95f25d865d6165a7fdb1cadf5e6f0bb5ee73b";
+          sha256 = "01qdaby7mn5d8y95wcbqzwzcbjmf2329g6yjbvmdd1gn6s7qzs0b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/remark-mode";
+          sha256 = "1zl8k3h4acbgb3hmjs2b4a14g0s0vl3xamrqxrr742zmqpr1h0w0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/remark-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    remember-last-theme = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "remember-last-theme";
+        ename = "remember-last-theme";
+        version = "20170619.1433";
+        src = fetchFromGitHub {
+          owner = "anler";
+          repo = "remember-last-theme";
+          rev = "57e8e2a475ea89316dbb5c4d2ea047f56a2cbcdf";
+          sha256 = "0sb110rb6pnjnvyqn0kji19bhbn8mk4x32yps00aq2g2v9pc1jzr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/remember-last-theme";
+          sha256 = "0pw36f9mchkl1qhaii39zd0vwrydjlijzanv706ai2bl8r7l0ppy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/remember-last-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    renpy = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "renpy";
+        ename = "renpy";
+        version = "20180907.1234";
+        src = fetchFromGitHub {
+          owner = "billywade";
+          repo = "renpy-mode";
+          rev = "cf9c9ead6084210a4c0290a0d999a099b8d00a81";
+          sha256 = "1blv8f1qr0nd7j7ciyba05n5a4jijffqmchxjhl7nxljlghwiy27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/renpy";
+          sha256 = "1xfk3j13wzgxg56izbwad0kw4izg0hdzkh7h7cfdmdf4v6mxc7f0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/renpy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    repeatable-motion = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "repeatable-motion";
+        ename = "repeatable-motion";
+        version = "20170620.1148";
+        src = fetchFromGitHub {
+          owner = "willghatch";
+          repo = "emacs-repeatable-motion";
+          rev = "77aa35b27c8a76dc8deef87c9f71ef7e6fd289ee";
+          sha256 = "0pm9z0w402430j66167s1az37jxw89sck1b7lm9gjnc3gslh0lpm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/repeatable-motion";
+          sha256 = "12z4z8apd8ksf6dfvqm54l71mx68j0yg4hrjypa9p77fpcd6p0zw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/repeatable-motion";
+          license = lib.licenses.free;
+        };
+      }) {};
+    repeater = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "repeater";
+        ename = "repeater";
+        version = "20180418.512";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "repeater";
+          rev = "854b874542b186b2408cbc58ad0591fe8eb70b6c";
+          sha256 = "0cx6b8l9ssf56fz8xjsmbyhy8mdcj8l0rvsdx37qk86xq4nlz74p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/repeater";
+          sha256 = "07fq3d6w5ns5ryv4vd23iww2bz34f62syzbg8y643kdd0kp1m772";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/repeater";
+          license = lib.licenses.free;
+        };
+      }) {};
+    repl-toggle = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , fullframe
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "repl-toggle";
+        ename = "repl-toggle";
+        version = "20180501.328";
+        src = fetchFromGitHub {
+          owner = "tomterl";
+          repo = "repl-toggle";
+          rev = "934f59478a5c5577795f9507e945d564be368510";
+          sha256 = "13pgfqijfp0ad9h1rpcf0blppq3jv31wdgvpjndgi213vwrkk79j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/repl-toggle";
+          sha256 = "16k9fk1nl2llk9qli52kiirlx9rlz8yhjh3cy6v5y2b3k0y1cf0b";
+          name = "recipe";
+        };
+        packageRequires = [ fullframe ];
+        meta = {
+          homepage = "https://melpa.org/#/repl-toggle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    replace-from-region = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "replace-from-region";
+        ename = "replace-from-region";
+        version = "20170227.1516";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "replace-from-region";
+          rev = "dc9318b9b2822da7b00ecc34d1dc965c8f96c9bb";
+          sha256 = "05l0wn1gqw2sbl65s1m7afmg3b1ps2qgqqrjkl9r2i26p95kqlq3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/replace-from-region";
+          sha256 = "1p77sajghqkjd7k83nma4qpz682la3zg716jdsnpcwcw0qk9ybcb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/replace-from-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    replace-pairs = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "replace-pairs";
+        ename = "replace-pairs";
+        version = "20160207.451";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "replace-pairs";
+          rev = "ef6f2719aab7714f6cb209fd3dd6d2e720681b3c";
+          sha256 = "169p85rmgashm0g26apkxynmypqk9ndh76kvh572db5kqb8ix0c6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/replace-pairs";
+          sha256 = "0l9674rba25wh6fskvfwkhv99lwlszb177hsfzx39s6b4hshvlsb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/replace-pairs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    replace-symbol = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "replace-symbol";
+        ename = "replace-symbol";
+        version = "20160517.1712";
+        src = fetchFromGitHub {
+          owner = "bmastenbrook";
+          repo = "replace-symbol-el";
+          rev = "baf949e528aee1881f455f9c84e67718bedcb3f6";
+          sha256 = "178y1cmpdb2r72igx8j4l7pyhs1idw56j6hg5h8r9a2p99lkgjjc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/replace-symbol";
+          sha256 = "07ljmw6aw9hsqffhwmiq2pvhry27acg6f4vgxgi91vjr8jj3r4ng";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/replace-symbol";
+          license = lib.licenses.free;
+        };
+      }) {};
+    replace-with-inflections = callPackage ({ cl-lib ? null
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , inflections
+                                            , lib
+                                            , melpaBuild
+                                            , string-inflection }:
+      melpaBuild {
+        pname = "replace-with-inflections";
+        ename = "replace-with-inflections";
+        version = "20180830.2335";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "replace-with-inflections.el";
+          rev = "d9201e047856492f282da65459b28aba25998dbb";
+          sha256 = "09yvn489z33hww7mi1flh344faxrpbkzqhm0i6xb2rridcj7acqh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/replace-with-inflections";
+          sha256 = "1pqpin5ipm3g74zjh1kh6s1gh0aan6202p0y2q00d4ywbz9kn5s0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib inflections string-inflection ];
+        meta = {
+          homepage = "https://melpa.org/#/replace-with-inflections";
+          license = lib.licenses.free;
+        };
+      }) {};
+    repo = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "repo";
+        ename = "repo";
+        version = "20170213.139";
+        src = fetchFromGitHub {
+          owner = "canatella";
+          repo = "repo-el";
+          rev = "9f03c0d90c9036b96e531c17d529f3855364d47a";
+          sha256 = "1ggxs40mbk50aqhqqfdcz6izvlvsz53s93dj3ndxvgdxkpkxr6yn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/repo";
+          sha256 = "0z4lcswh0c6xnsxlv33bsxh0nh26ydzfl8sv8xabdp5a2gk6bhpb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/repo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    req-package = callPackage ({ dash
+                               , fetchFromGitLab
+                               , fetchurl
+                               , ht
+                               , lib
+                               , log4e
+                               , melpaBuild
+                               , use-package }:
+      melpaBuild {
+        pname = "req-package";
+        ename = "req-package";
+        version = "20180121.2100";
+        src = fetchFromGitLab {
+          owner = "edvorg";
+          repo = "req-package";
+          rev = "0c0ac7451149dac6bfda2adfe959d1df1c273de6";
+          sha256 = "0sx3kw1gpliifbc0gh2z1lvig68v3gwqjbj0izgn77js8kqxad84";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/req-package";
+          sha256 = "1zjhc6f9qcb3j72k1llp6vym25lxnvq1jgqgmnrjxxwc4fhxx595";
+          name = "recipe";
+        };
+        packageRequires = [ dash ht log4e use-package ];
+        meta = {
+          homepage = "https://melpa.org/#/req-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    request = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "request";
+        ename = "request";
+        version = "20170131.1747";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-request";
+          rev = "a3d080e57eb8be606fbf39d1baff94e1b16e1fb8";
+          sha256 = "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/request";
+          sha256 = "0h4jqg98px9dqqvjp08vi2z1lhmk0ca59lnrcl96bi7gkkj3jiji";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/request";
+          license = lib.licenses.free;
+        };
+      }) {};
+    request-deferred = callPackage ({ deferred
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , request }:
+      melpaBuild {
+        pname = "request-deferred";
+        ename = "request-deferred";
+        version = "20160419.1605";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-request";
+          rev = "aeae9028de5c489b07a5f5df29682eff47f80f6b";
+          sha256 = "002blp30bvi8l9b9mzjk8ib6xv3fps3j8cqrvbdj6dw2yvrcfl1g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/request-deferred";
+          sha256 = "1dcxqnzmvddk61dzmfx8vjbzd8m44lscr3pjdp3r7211zhwfk40n";
+          name = "recipe";
+        };
+        packageRequires = [ deferred request ];
+        meta = {
+          homepage = "https://melpa.org/#/request-deferred";
+          license = lib.licenses.free;
+        };
+      }) {};
+    requirejs = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , js2-mode
+                             , lib
+                             , melpaBuild
+                             , popup
+                             , s
+                             , yasnippet }:
+      melpaBuild {
+        pname = "requirejs";
+        ename = "requirejs";
+        version = "20151203.2319";
+        src = fetchFromGitHub {
+          owner = "joeheyming";
+          repo = "requirejs-emacs";
+          rev = "4ea2a5fcbc76e4cbb6a7461e6f05f019b75865b1";
+          sha256 = "1bfj2zjn3x41jal6c136wnwkgmag27bmrwbfwdylafc7qqk6dflv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/requirejs";
+          sha256 = "09z6r9wcag3gj075wq215zcslyknl1izap595rn48xvizxi06c6k";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib js2-mode popup s yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/requirejs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    requirejs-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "requirejs-mode";
+        ename = "requirejs-mode";
+        version = "20130215.1304";
+        src = fetchFromGitHub {
+          owner = "moricard";
+          repo = "requirejs-mode";
+          rev = "011849043098b6c4f27571625ae19071b53b8824";
+          sha256 = "1dhhwz3910lcyabmpm14ky61dhgj4hvdv87k2nnzm73iwxl876ih";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/requirejs-mode";
+          sha256 = "00bl5dz56f77hl9wy3xvjhq81641mv9jbskcd8mcgcz9ycj9g5k2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/requirejs-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    resize-window = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "resize-window";
+        ename = "resize-window";
+        version = "20180917.2238";
+        src = fetchFromGitHub {
+          owner = "dpsutton";
+          repo = "resize-window";
+          rev = "09dc5968f1c988c51fcd6ea5d68bb38b7541eb66";
+          sha256 = "02hzn0r9bzpmhjij1fvj6q3qvha8rwyn53m4yw995bg9xk32c0hj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/resize-window";
+          sha256 = "0h1hlj50hc97wxqpnmvg6w3qhdd9nbnb8r8v39ylv87zqjcmlp8l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/resize-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    restart-emacs = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "restart-emacs";
+        ename = "restart-emacs";
+        version = "20180601.331";
+        src = fetchFromGitHub {
+          owner = "iqbalansari";
+          repo = "restart-emacs";
+          rev = "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9";
+          sha256 = "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/restart-emacs";
+          sha256 = "03aabz7fmy99nwimvjn7qz6pvc94i470hfgiwmjz3348cw02k0n6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/restart-emacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    restclient = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "restclient";
+        ename = "restclient";
+        version = "20180316.851";
+        src = fetchFromGitHub {
+          owner = "pashky";
+          repo = "restclient.el";
+          rev = "859d944796ce298b5779d9d256bd8d271d57e221";
+          sha256 = "18grh9pislyr1mnj05nd2wj2ns8wy2irsxi7y203qkhkhqaamdgn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/restclient";
+          sha256 = "0wzp8i89a4hwm7qyxvdk10frknbqcni0isnp8k63nhq7c30s7md4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/restclient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    restclient-helm = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , helm
+                                   , lib
+                                   , melpaBuild
+                                   , restclient }:
+      melpaBuild {
+        pname = "restclient-helm";
+        ename = "restclient-helm";
+        version = "20170314.854";
+        src = fetchFromGitHub {
+          owner = "pashky";
+          repo = "restclient.el";
+          rev = "af7420085dd67ed08d199a2402e8ff3e996c3029";
+          sha256 = "04c1b0xvhrsxb4r98qvvasn1nbkl4ddinip2rplilacywjy26rsz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/restclient-helm";
+          sha256 = "0cpf02ippfr9w6kiw3kng8smabv256ff388322hhn8a8icyjl24j";
+          name = "recipe";
+        };
+        packageRequires = [ helm restclient ];
+        meta = {
+          homepage = "https://melpa.org/#/restclient-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    restclient-test = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , restclient }:
+      melpaBuild {
+        pname = "restclient-test";
+        ename = "restclient-test";
+        version = "20180106.1246";
+        src = fetchFromGitHub {
+          owner = "simenheg";
+          repo = "restclient-test.el";
+          rev = "4518561bc9661fedacb6fb352e9677207f45c418";
+          sha256 = "0hbilpn77w0vykga9p4dkwaygipyna7mwn24y2kwfcahcr39pqjb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/restclient-test";
+          sha256 = "0g26z5p9fq7fm6bgrwaszya5xmhsgzcn1p7zqr83w74fbw6bcl39";
+          name = "recipe";
+        };
+        packageRequires = [ emacs restclient ];
+        meta = {
+          homepage = "https://melpa.org/#/restclient-test";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reveal-in-osx-finder = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "reveal-in-osx-finder";
+        ename = "reveal-in-osx-finder";
+        version = "20150802.957";
+        src = fetchFromGitHub {
+          owner = "kaz-yos";
+          repo = "reveal-in-osx-finder";
+          rev = "5710e5936e47139a610ec9a06899f72e77ddc7bc";
+          sha256 = "1q13cgpz4wzhnqv84ablawy3y2wgdwy46sp7454mmfx9m77jzb2v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reveal-in-osx-finder";
+          sha256 = "00jgrmh5s3vlpj1jjf8l3c3h4hjk5x781m95sidw6chimizvfmfc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/reveal-in-osx-finder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reverse-im = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "reverse-im";
+        ename = "reverse-im";
+        version = "20180213.525";
+        src = fetchFromGitHub {
+          owner = "a13";
+          repo = "reverse-im.el";
+          rev = "16931909115a922b1cf3846b1f60509b6590001f";
+          sha256 = "0ccpnd1n9z18wpf8m9xyx5gps2xh5kxv8s1q2zan2zs9f46sz9pc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reverse-im";
+          sha256 = "0c0dxxpa2s6gvhi14zfb0rnb4i7jaqw627a7ngm5fzyh0r9himcf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/reverse-im";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reverse-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "reverse-theme";
+        ename = "reverse-theme";
+        version = "20141204.1745";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-reverse-theme";
+          rev = "13d0821a4ec5ece7e6a81f50d2a1a7e7ad21394d";
+          sha256 = "1sfl0rm4sxjkcjki0hmkkcicr24qr2q7gmficg9bi5q6vlrid1pn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reverse-theme";
+          sha256 = "163kk5qnz9bk3l2fam79n264s764jfxbwqbiwgid8kw9cmk0v776";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/reverse-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    review-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "review-mode";
+        ename = "review-mode";
+        version = "20180312.535";
+        src = fetchFromGitHub {
+          owner = "kmuto";
+          repo = "review-el";
+          rev = "bf38b0ce8be2eef1cf810ac6f3664d2190bb9ef7";
+          sha256 = "0vmv19qvpba715xqx18dmlxq9kgkzvkf6jfd03bdcj2lh804y3pb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/review-mode";
+          sha256 = "0wapicggkngpdzi0yxc0b24s526fs819rc2d6miv6ix3gnw11n0n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/review-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reykjavik-theme = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "reykjavik-theme";
+        ename = "reykjavik-theme";
+        version = "20180823.844";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "reykjavik-theme";
+          rev = "2cd0043ae6d046f812a95bb26398ea23141beccc";
+          sha256 = "0rk0fw5b1lz7if779h3bngc86iix8v9k8bz3zw8icwfwmjsgg1fh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reykjavik-theme";
+          sha256 = "1f0q2gfzkmpd374jryrd1lgg8xj6rwdq181jhppj3rfjizgw4l35";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/reykjavik-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rg = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild
+                      , s
+                      , wgrep }:
+      melpaBuild {
+        pname = "rg";
+        ename = "rg";
+        version = "20181022.2334";
+        src = fetchFromGitHub {
+          owner = "dajva";
+          repo = "rg.el";
+          rev = "f6271b51915d2cffb041a58d1694d2319208e3a7";
+          sha256 = "1cdx55gl130z1ya932a17dcwmgcbxf03fn4g8hzwgfzcl0dx0cx7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rg";
+          sha256 = "0i78qvqdznh1z3b0mnzihv07j8b9r86dc1lsa1qlzacv6a2i9sbm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs s wgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/rg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rhtml-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "rhtml-mode";
+        ename = "rhtml-mode";
+        version = "20130422.611";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "rhtml";
+          rev = "a6d71b38a3db867ccf82999c99805db1a3a33c33";
+          sha256 = "1qlpv5lzj4yfyjgdykhm6q9izg6g0z5pf5nmynj42vsx7v8bhy1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rhtml-mode";
+          sha256 = "038j5jkcckmhlq3vz4h07s5y2scljh1fdn9r614hiyxwgk48lc35";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rhtml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rib-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "rib-mode";
+        ename = "rib-mode";
+        version = "20170726.748";
+        src = fetchFromGitHub {
+          owner = "blezek";
+          repo = "rib-mode";
+          rev = "97470158784c3c212e22e2c20b8471ee65ba59af";
+          sha256 = "0hln0hympmxmsci82ivc2rw289j1bmgdxns96m1ng1bl668bwag7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rib-mode";
+          sha256 = "0qgbzrwbbgg4mzjb7yw85qs83b6hpldazip1cigywr46w7f81587";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rib-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rich-minority = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "rich-minority";
+        ename = "rich-minority";
+        version = "20170813.622";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "rich-minority";
+          rev = "333e4669f76a0fb68b433117d377711e418a525e";
+          sha256 = "0ms42fnfis6y2h717cqhngzv7ysgf8340rsfm2i7rx2gbdynr1ic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rich-minority";
+          sha256 = "11xd76w5k3b3q5bxqjb55vi6dsal9drvyc1nh7z83awm59hvgczc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/rich-minority";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rigid-tabs = callPackage ({ emacs
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "rigid-tabs";
+        ename = "rigid-tabs";
+        version = "20170903.859";
+        src = fetchFromGitLab {
+          owner = "wavexx";
+          repo = "rigid-tabs.el";
+          rev = "d48ba58acbe8934700cd23db2acb574b09306238";
+          sha256 = "03dmyn5lnw0mj4ymgyxz6gksl2byw31plxn61qcggkj6gk8g500d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rigid-tabs";
+          sha256 = "0623hhhykrxq702871s5p4vddkvx7jpj6hg5q0c9jkbvflz9n9y8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rigid-tabs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rimero-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "rimero-theme";
+        ename = "rimero-theme";
+        version = "20180901.648";
+        src = fetchFromGitHub {
+          owner = "yveszoundi";
+          repo = "emacs-rimero-theme";
+          rev = "a2e706c2b34f749019979a133f08a2d94a1104b3";
+          sha256 = "1kcvvaizggzi7s3dlh611bkirdf6y89kzddc273drdks705s01wh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rimero-theme";
+          sha256 = "0jbknrp9hc8s956cy2gqffxnx0fgnhmjqp2i4vyp0ywh45wrls5r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rimero-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rinari = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , inf-ruby
+                          , jump
+                          , lib
+                          , melpaBuild
+                          , ruby-compilation
+                          , ruby-mode ? null }:
+      melpaBuild {
+        pname = "rinari";
+        ename = "rinari";
+        version = "20150708.2340";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "rinari";
+          rev = "be07b0f42aefa24c5d36c441d1f3f72e64fffaa4";
+          sha256 = "1kg83z10jw4ik0aapv9cjqlvqy31rln2am8vh3f77zh61qha37hx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rinari";
+          sha256 = "0qknicg3vzl7zbkwsdvp10hrvlng6mbi8hgslx4ir522dflrf9p0";
+          name = "recipe";
+        };
+        packageRequires = [ inf-ruby jump ruby-compilation ruby-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/rinari";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rings = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "rings";
+        ename = "rings";
+        version = "20160531.1327";
+        src = fetchFromGitHub {
+          owner = "konr";
+          repo = "rings";
+          rev = "3590b222eb80652cbd27866f066bd3571d86edfc";
+          sha256 = "01mfiyq4cr2qdmvaxid8a094p20w97n2nsiy9vyng77vcmv36sd5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rings";
+          sha256 = "1ncsb4jip07hbrf1l4j9yzn3l0kb63ylhzzsb4bb2yx6as4a66k7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rings";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ripgrep = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ripgrep";
+        ename = "ripgrep";
+        version = "20180323.920";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "ripgrep.el";
+          rev = "a1f8f030bf5daea92dd13b953720a6c13dd3557c";
+          sha256 = "0mpysjcbw9qxy1lcwsd2rqf72xahpdpn88xcq0cnk1y2jam8gjkf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ripgrep";
+          sha256 = "1j9c3mhcyhs4xf44z6fnlvmb81pps25bp43gdqvp0954i068mgah";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ripgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    riscv-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "riscv-mode";
+        ename = "riscv-mode";
+        version = "20170804.821";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "riscv-mode";
+          rev = "99febf97d1fa9441e8dada94fe30c2aa439c9749";
+          sha256 = "119p926ypz525xdh82m2d1saky1qh5va224fxyqisfbwfrc17arh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/riscv-mode";
+          sha256 = "0496b7xwshmk3gv6s5hggbm9qd60a05racj3xcsxwqzak359lk2b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/riscv-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rjsx-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , js2-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "rjsx-mode";
+        ename = "rjsx-mode";
+        version = "20180913.1524";
+        src = fetchFromGitHub {
+          owner = "felipeochoa";
+          repo = "rjsx-mode";
+          rev = "68fe4c0e0277220e04f420e1968b9d251b4b75d1";
+          sha256 = "1x187pna2dbx8wqiy1w3ffs8wggnn33s5rcakqmailin6z2vkdch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rjsx-mode";
+          sha256 = "0w3ij8k8058pfw443chm1kn30ia0f5rfbg03w9ddw86xb3wa2q0b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/rjsx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rmsbolt = callPackage ({ emacs
+                           , fetchFromGitLab
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "rmsbolt";
+        ename = "rmsbolt";
+        version = "20181107.1924";
+        src = fetchFromGitLab {
+          owner = "jgkamat";
+          repo = "rmsbolt";
+          rev = "a4f794666df7b35d6d8383fe71d9b2e00e8a05dc";
+          sha256 = "0wlb176ihqpb0cx669jnw1qrlln6il2h75xj67mawz2rgf8fjnj2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rmsbolt";
+          sha256 = "0mgzc4q9mmnqjafp2i9qp0plc7qnh4kmkgjs1c7frk9x07navscf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rmsbolt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    robe = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , inf-ruby
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "robe";
+        ename = "robe";
+        version = "20171116.1249";
+        src = fetchFromGitHub {
+          owner = "dgutov";
+          repo = "robe";
+          rev = "7829f4fdda41eee0add8868646ab86e6b17de4b4";
+          sha256 = "1h526m21g0yqpry8dh42aj8nv4lp74dc1cmcyfb16sx5rrk0vx27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/robe";
+          sha256 = "19py2lwi7maya90kh1mgwqb16j72f7gm05dwla6xrzq1aks18wrk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/robe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    robots-txt-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "robots-txt-mode";
+        ename = "robots-txt-mode";
+        version = "20180919.841";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "robots-txt-mode";
+          rev = "f8fc7ee50a3d5d7a2838772ed298fb69b9051c5c";
+          sha256 = "11qyzsfp2kmi6sd24m30y537mic9xg7y29npninrjihr6k9rw3a2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/robots-txt-mode";
+          sha256 = "00hxz4mygcxg7d8m2i4cm0bl82v3hw8wb4m8vv7g7fqkjp32c9qc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/robots-txt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    roguel-ike = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , popup }:
+      melpaBuild {
+        pname = "roguel-ike";
+        ename = "roguel-ike";
+        version = "20160119.1902";
+        src = fetchFromGitHub {
+          owner = "stevenremot";
+          repo = "roguel-ike";
+          rev = "706dcb0687e8016d7d776f9d9e5ace9fdbbca43c";
+          sha256 = "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/roguel-ike";
+          sha256 = "1a7sa6nhgi0s4gjh55bhk5cg6q6s7564fk008ibmrm05gfq9wlg8";
+          name = "recipe";
+        };
+        packageRequires = [ popup ];
+        meta = {
+          homepage = "https://melpa.org/#/roguel-ike";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rope-read-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "rope-read-mode";
+        ename = "rope-read-mode";
+        version = "20171003.719";
+        src = fetchFromGitHub {
+          owner = "marcowahl";
+          repo = "rope-read-mode";
+          rev = "77b183a6f5450138388509f54a6a2ce442766e50";
+          sha256 = "0ddm7gwr51ip8mc79jxkvp52sxhlvs0kyy59v7r7pf5mbadbpsbz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rope-read-mode";
+          sha256 = "0grnn5k6rbck0hz4c6cadgj3a4dv62habyingznisg2kx9i3m0dw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rope-read-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rotate = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "rotate";
+        ename = "rotate";
+        version = "20160909.136";
+        src = fetchFromGitHub {
+          owner = "daichirata";
+          repo = "emacs-rotate";
+          rev = "eb177ec2aba1a358aa757720a9a4c8d8ce4856e8";
+          sha256 = "1v8m08hrj3g1vcyhjmkh6wsiczrvjq0v90nqb5y3hy3l40pkag5x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rotate";
+          sha256 = "11a0svvfq29cb4630jq0hz19xk9jfhfjnssm7vg0dnlzpxqi3vif";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rotate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    roy-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "roy-mode";
+        ename = "roy-mode";
+        version = "20121208.358";
+        src = fetchFromGitHub {
+          owner = "folone";
+          repo = "roy-mode";
+          rev = "e1a4fb5ec0f46e82f569865ca47042ba5934e425";
+          sha256 = "1m19hjgh9s21qknb1278pf6gw77a747siy04qdznj4519j12wjjg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/roy-mode";
+          sha256 = "1r49c1v0xjkrpxmq0k2l2nrx95n06b7hbpmr1n7nkil2bxdq275i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/roy-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rpm-spec-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "rpm-spec-mode";
+        ename = "rpm-spec-mode";
+        version = "20160710.436";
+        src = fetchFromGitHub {
+          owner = "stigbjorlykke";
+          repo = "rpm-spec-mode";
+          rev = "c1c38050c48ea330c7cea632b8785d66daeefb2b";
+          sha256 = "0427kcvf2ljhzwxskn3jzk0ncrl3f9zcz2sm83d9pmhh5jax2gch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rpm-spec-mode";
+          sha256 = "1ygk0pdhq1hvgzd173h79lxb04b9lmvq4hi70qf9244bqbm0m182";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rpm-spec-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rpn-calc = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , popup }:
+      melpaBuild {
+        pname = "rpn-calc";
+        ename = "rpn-calc";
+        version = "20170522.1842";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "rpn-calc";
+          rev = "66fcb64dbfddfc23823356b6213215bd7ab5efc6";
+          sha256 = "1lgabs97x6h4yrgwln8hsxi47wgl46jzhf162wa1almdbqbp9100";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rpn-calc";
+          sha256 = "04dj2r4035k0c3x6iyjydshzmq381d60pmscp2hg5m7sp7bqn5xs";
+          name = "recipe";
+        };
+        packageRequires = [ popup ];
+        meta = {
+          homepage = "https://melpa.org/#/rpn-calc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rsense = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "rsense";
+        ename = "rsense";
+        version = "20100510.2105";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "rsense";
+          rev = "fbcfc00402742b0d8744a9bfd1bcdd869f4fb923";
+          sha256 = "178rnmhj3987dscsjkg5qcsw92s3b5rv51s0j7qcavx254h7xdf0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rsense";
+          sha256 = "1901xqlpc8fg4sl9j58jn40i2djs8s0cdcqcrzrq02lvk8ssfdf5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rsense";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rspec-mode = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , ruby-mode ? null }:
+      melpaBuild {
+        pname = "rspec-mode";
+        ename = "rspec-mode";
+        version = "20180614.448";
+        src = fetchFromGitHub {
+          owner = "pezra";
+          repo = "rspec-mode";
+          rev = "dda1ece81bd2802c4097e5c963fac33a444659cb";
+          sha256 = "1d8i2y9r1im346df3ishsx16g5264pfq930whbj9hipfml6s8ddy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rspec-mode";
+          sha256 = "0nyib9rx9w9cbsgkcjx9n8fp77xkzxg923z0rdm3f9kc7njcn0zx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ruby-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/rspec-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rtags = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "rtags";
+        ename = "rtags";
+        version = "20181117.1308";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "b8c948e97db32e02ad908fe94c21279c6ebb59db";
+          sha256 = "17aaraa7mx6gkqzpfqiggpb0dnsffdf9i37i01qvv9mdf6ww6xxy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rtags";
+          sha256 = "0s5m4zjvnc1k4gkkizbs4ysvzzbfh45717pksg9bnyzwx5lcw5yd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rtm = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "rtm";
+        ename = "rtm";
+        version = "20180329.808";
+        src = fetchFromGitHub {
+          owner = "pmiddend";
+          repo = "emacs-rtm";
+          rev = "3e3d09387cb84801343ecca8fb02e82f213e7bbe";
+          sha256 = "0cc07lhh27i1ra4alrwb6w322ddi6hw0498nkzf388arhn10h3wv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rtm";
+          sha256 = "1bwbaps76pawz73fs7nzkvbii9d57zmfdccpm18dwn6phaqxbhyc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/rtm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rubik = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "rubik";
+        ename = "rubik";
+        version = "20180222.1214";
+        src = fetchFromGitHub {
+          owner = "Kurvivor19";
+          repo = "rubik-mode";
+          rev = "c8dab1726463dbc9042a0b00186e4a8df02eb868";
+          sha256 = "13razzmk70h5sd69ms0a3ljr285zcad0wnrqkfxbgi5rnppqlkh1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rubik";
+          sha256 = "07bbh5vjw3jdxf06lxqm45y8ijcai391mf97xw5c29z33vhqs267";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rubik";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rubocop = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "rubocop";
+        ename = "rubocop";
+        version = "20170311.2211";
+        src = fetchFromGitHub {
+          owner = "rubocop-hq";
+          repo = "rubocop-emacs";
+          rev = "980bedb455e3551d35a212fae515c054888907c1";
+          sha256 = "152ara2p59imry2ymfnk5mycbc07rblcmfmqjgm5fijb2x94xv8p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rubocop";
+          sha256 = "07ma4fv015wzpj5j4rdb0ckwwmhkxs3k5vy33qxgwghqmn6xby6x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rubocop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rubocopfmt = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "rubocopfmt";
+        ename = "rubocopfmt";
+        version = "20181009.1003";
+        src = fetchFromGitHub {
+          owner = "jimeh";
+          repo = "rubocopfmt.el";
+          rev = "fc96145719a65b2551339d087ddd95b72e14646f";
+          sha256 = "12sfzvb5lf20d4kqa1fzhz8s48lgr8w0x7qimjcy5c75yjb123wl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rubocopfmt";
+          sha256 = "06ficv1r3axzi7q659pk1m3gbpf44nd2ir2ikmi8mr8rq44sqps0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/rubocopfmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-additional = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , ruby-mode ? null }:
+      melpaBuild {
+        pname = "ruby-additional";
+        ename = "ruby-additional";
+        version = "20180913.557";
+        src = fetchFromGitHub {
+          owner = "ruby";
+          repo = "elisp";
+          rev = "695b2791769205167a06c50075c65474b8783f23";
+          sha256 = "030j29k3hjl3vdk1hf3zlbsmncw8zzk4988c3dnl1g1dpcnb33h5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-additional";
+          sha256 = "09g4zz6pfzhxlhac2d041bys7qis4w4shpdn4bpskm1rnmvm10s7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ruby-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-additional";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-compilation = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , inf-ruby
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-compilation";
+        ename = "ruby-compilation";
+        version = "20150708.2340";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "rinari";
+          rev = "be07b0f42aefa24c5d36c441d1f3f72e64fffaa4";
+          sha256 = "1kg83z10jw4ik0aapv9cjqlvqy31rln2am8vh3f77zh61qha37hx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-compilation";
+          sha256 = "1x1vpkjpx95sfcjhkx4cafypj0nkbd1i0mzxx3lmcrsmg8iv0rjc";
+          name = "recipe";
+        };
+        packageRequires = [ inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-compilation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-electric = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-electric";
+        ename = "ruby-electric";
+        version = "20170810.430";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "ruby-electric.el";
+          rev = "3553448a780a1ea5c3b0e9becd820d4762876593";
+          sha256 = "0h47lfgxjcyyl8gb1w7l8j8h65s3lp1hsq742sl7a1gf5y6bbm3v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-electric";
+          sha256 = "02xskivi917l8xyhrij084dmzwjq3knjcn65l2iwz34s767fbwl2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-electric";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-end = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-end";
+        ename = "ruby-end";
+        version = "20141215.423";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ruby-end.el";
+          rev = "648b81af136a581bcef387744d93c011d9cdf54b";
+          sha256 = "1cpz9vkp57nk682c5xm20g7bfj5g2aq5ahpk4nhgx7pvd3xvr1ds";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-end";
+          sha256 = "1cnmdlkhm8xsifbjs6ymvi92gdnxiaghb04h10qg41phj6v7m9mg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-end";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-extra-highlight = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-extra-highlight";
+        ename = "ruby-extra-highlight";
+        version = "20171106.1133";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "ruby-extra-highlight";
+          rev = "83942d18eae361998d24c1c523b308eea821f048";
+          sha256 = "18mq0ap7f0b22cdp2wdj0y2fqsahm2ngf7fvdy0mkkfs3818awlp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-extra-highlight";
+          sha256 = "0dybf39yv0yzy8bsz9k5s64033id6hq4v268m11la4bp5fbv5r37";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-extra-highlight";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-factory = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , inflections
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-factory";
+        ename = "ruby-factory";
+        version = "20160101.2321";
+        src = fetchFromGitHub {
+          owner = "sshaw";
+          repo = "ruby-factory-mode";
+          rev = "2bb7ccc2fccb5257376a989aa395bc7b9eb1d55d";
+          sha256 = "15b2rs6m4d511qqkc2gc8k15mbqzrgv6s3hpypajl8nvqa79xnyd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-factory";
+          sha256 = "0v8009pad0l41zh9r1wzcx1h6vpzhr5rgpq6rb002prxz2lcbd37";
+          name = "recipe";
+        };
+        packageRequires = [ inflections ];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-factory";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-hash-syntax = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-hash-syntax";
+        ename = "ruby-hash-syntax";
+        version = "20180323.1909";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ruby-hash-syntax";
+          rev = "89fc364a837d7a78ecce34380f09c073a83e30e0";
+          sha256 = "1nwf3681fa6lfqr14n9wihckpi220hvamv1ppzmrhn4k49vxljy8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-hash-syntax";
+          sha256 = "0bvwyagfh7mn457iibrpv1ay75089gp8pg608gbm24m0ix82xvb5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-hash-syntax";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-interpolation = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-interpolation";
+        ename = "ruby-interpolation";
+        version = "20131112.852";
+        src = fetchFromGitHub {
+          owner = "leoc";
+          repo = "ruby-interpolation.el";
+          rev = "1978e337601222cedf00e117bf4b5cac15d1f203";
+          sha256 = "1r2f5jxi6wnkmr1ssvqgshi97gjvxvf3qqc0njg1s33cy39wpqq5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-interpolation";
+          sha256 = "07idndxw8vgfrk5zfmjjhmixza35mqxwjhsrbjrq5yy72i5ivznp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-interpolation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-refactor = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , ruby-mode ? null }:
+      melpaBuild {
+        pname = "ruby-refactor";
+        ename = "ruby-refactor";
+        version = "20160214.850";
+        src = fetchFromGitHub {
+          owner = "ajvargo";
+          repo = "ruby-refactor";
+          rev = "e6b7125878a08518bffec6942df0c606f748e9ee";
+          sha256 = "13008ih4hwa80bn2dbgj551knbvgpriz5sb241rkf7mifmlfzgsi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-refactor";
+          sha256 = "0nwinnnhy72h1ihjlnjl8k8z3yf4nl2z7hfv085gwiacr6nn2rby";
+          name = "recipe";
+        };
+        packageRequires = [ ruby-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-refactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-test-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , pcre2el
+                                  , ruby-mode ? null }:
+      melpaBuild {
+        pname = "ruby-test-mode";
+        ename = "ruby-test-mode";
+        version = "20171016.931";
+        src = fetchFromGitHub {
+          owner = "r0man";
+          repo = "ruby-test-mode";
+          rev = "87f6d770f8d2326c8d36099aeee5d577f3e2af69";
+          sha256 = "0qiwc2h5hyh6np16a2gfcchbnyh7v5wnzd8idr64cmd9blg3jh8d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-test-mode";
+          sha256 = "06j1q9m08jkwlnkccppf2qlcs48nr8ic9sjdv90rnixc18bw7bpk";
+          name = "recipe";
+        };
+        packageRequires = [ pcre2el ruby-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-test-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-tools = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-tools";
+        ename = "ruby-tools";
+        version = "20151209.815";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ruby-tools.el";
+          rev = "6b97066b58a4f82eb2ecea6434a0a7e981aa4c18";
+          sha256 = "0jd9acycpbdd90hallrl0k5055rypp502qv4c6i286p7f9is4kvq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-tools";
+          sha256 = "0zpk55rkrqyangyyljxzf0n1icgqnpdzycwack5rji556h5grvjy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rufo = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "rufo";
+        ename = "rufo";
+        version = "20170718.716";
+        src = fetchFromGitHub {
+          owner = "danielma";
+          repo = "rufo.el";
+          rev = "85a6d80fb05fef396a8029b8f944c92a53faf8fe";
+          sha256 = "11klircrdc9z9jfksd6rjgwbb775mziss67mw74673b8iva8n1y7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rufo";
+          sha256 = "0pxsifcxic3q54rqj0jbj20hq7f2s4icl57lligf9g0w23qzj239";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rufo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rum-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "rum-mode";
+        ename = "rum-mode";
+        version = "20180126.1622";
+        src = fetchFromGitHub {
+          owner = "rumlang";
+          repo = "rum-mode";
+          rev = "161471e6476d232d479f9767535918920811d7bf";
+          sha256 = "12fh1fmfnfpkgsya5asxqywimdb5361cvw1cqfmhrm1z5pyjgbd7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rum-mode";
+          sha256 = "1838w8rk5pgp1hn7a0m83mfw9jin4qv5mkyl68hl3gj7g9lhn7sd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rum-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    run-stuff = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "run-stuff";
+        ename = "run-stuff";
+        version = "20180208.2348";
+        src = fetchFromGitHub {
+          owner = "ideasman42";
+          repo = "emacs-run-stuff";
+          rev = "ed42a7bc9a197ccf1ca87f9937bf98f0a9ed3f92";
+          sha256 = "1w49v868n3723q6887y4bc5q8spd7xync5d581vvxdpi75qgvr0z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/run-stuff";
+          sha256 = "0zx96m6cval5g4p0lhy9kpyycp2jygaq3y2njhkpij9gl4nb2ll2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/run-stuff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    runner = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "runner";
+        ename = "runner";
+        version = "20160524.43";
+        src = fetchFromGitHub {
+          owner = "thamer";
+          repo = "runner";
+          rev = "e7394d7c9e886788a656a7085b4cf963d6fc318f";
+          sha256 = "0gpfszp6bqr3vdr32vr6l0nq9hnic31vnins68hc5hknli91bpsq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/runner";
+          sha256 = "09apmk22swj05z77ziij31jj6b3g221qv3mw3mymffzxn5ap2rbx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/runner";
+          license = lib.licenses.free;
+        };
+      }) {};
+    runtests = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "runtests";
+        ename = "runtests";
+        version = "20150807.131";
+        src = fetchFromGitHub {
+          owner = "sunesimonsen";
+          repo = "emacs-runtests";
+          rev = "ed90249f24cc48290018df48b9b9b7172440be3e";
+          sha256 = "18w6gkpxp0g7rzvnrk8vvr267y768dfik447ssq8jpz3jlr5jnq6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/runtests";
+          sha256 = "0m9rqjb5c0yqr2wv5dsdiba21knr63b5pxsqgbkbybi15zgxcicb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/runtests";
+          license = lib.licenses.free;
+        };
+      }) {};
+    russian-holidays = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "russian-holidays";
+        ename = "russian-holidays";
+        version = "20170109.1340";
+        src = fetchFromGitHub {
+          owner = "grafov";
+          repo = "russian-holidays";
+          rev = "b285a30f29d85c48e3ea4eb93972d34a090c167b";
+          sha256 = "1mz842gvrscklg2w2r2q2wbj92qr31h895k700j3axqx6k30ni0h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/russian-holidays";
+          sha256 = "0lawjwz296grbvb4a1mm1j754q7mpcanyfln1gqxr339kqx2aqd8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/russian-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rust-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "rust-mode";
+        ename = "rust-mode";
+        version = "20181008.928";
+        src = fetchFromGitHub {
+          owner = "rust-lang";
+          repo = "rust-mode";
+          rev = "12cb16964ce01f0e484b082ccc8a3430cc1c4158";
+          sha256 = "1qv15w1p0bjrf62i6m0c4h1080y130mbwx794jgg56ff8qbnk4lf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rust-mode";
+          sha256 = "1i1mw1v99nyikscg2s1m216b0h8svbzmf5kjvjgk9zjiba4cbqzc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rust-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rust-playground = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "rust-playground";
+        ename = "rust-playground";
+        version = "20180807.458";
+        src = fetchFromGitHub {
+          owner = "grafov";
+          repo = "rust-playground";
+          rev = "092c8b11d62dea23953a004744833092bac85fe1";
+          sha256 = "0n2c1pjbvy46ic0k84jd3ffwwb5hibjqc1wv7knzkldi5agigfsh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rust-playground";
+          sha256 = "0ml0zr9vz2vjd9wr0v706w4v4qqfzpa56rdzfak2kb5llx53j89v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rust-playground";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rustic = callPackage ({ dash
+                          , emacs
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , markdown-mode
+                          , melpaBuild
+                          , projectile
+                          , s
+                          , spinner
+                          , xterm-color }:
+      melpaBuild {
+        pname = "rustic";
+        ename = "rustic";
+        version = "20181101.657";
+        src = fetchFromGitHub {
+          owner = "brotzeit";
+          repo = "rustic";
+          rev = "dfd65e40f96168a8e793ff4464018db4fdbb1a21";
+          sha256 = "1yib51hnvwd9q2yabfb93iglz6wadr376spg43ii6rnm6rnw914g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rustic";
+          sha256 = "13bwrdqmm6xb34k8r72c0r3b9aym5dwsalp63bkfh9k9kq9hic0n";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          emacs
+          f
+          markdown-mode
+          projectile
+          s
+          spinner
+          xterm-color
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/rustic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rvm = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "rvm";
+        ename = "rvm";
+        version = "20150402.742";
+        src = fetchFromGitHub {
+          owner = "senny";
+          repo = "rvm.el";
+          rev = "8e45a9bad8e317ff195f384dab14d3402497dc79";
+          sha256 = "0iblk0vagjcg3c8q9hlpwk7426ms7aq0s80izgvascfmyqycv6qm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rvm";
+          sha256 = "08i7cmav2cz73jp88ww0ay2yjhk9dj8146836q4sij1bl1slbaf8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rvm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ryo-modal = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ryo-modal";
+        ename = "ryo-modal";
+        version = "20180331.118";
+        src = fetchFromGitHub {
+          owner = "Kungsgeten";
+          repo = "ryo-modal";
+          rev = "42f874467dfdce59b511f883496ce2624b133dd7";
+          sha256 = "0k9nmi014vb9c8rymy3w8xbnj1q85xlslpblacz78iqn1kr6wy1z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ryo-modal";
+          sha256 = "06pm6grsdcldi1khbjfjp7lpi6f6x3pa5ikspp0xdwijnmi0xrrf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ryo-modal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    s = callPackage ({ fetchFromGitHub
+                     , fetchurl
+                     , lib
+                     , melpaBuild }:
+      melpaBuild {
+        pname = "s";
+        ename = "s";
+        version = "20180406.108";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "s.el";
+          rev = "03410e6a7a2b11e47e1fea3b7d9899c7df26435e";
+          sha256 = "074ny8y68fhnknkjxvrijrk534xzdiwip8wkifxfbwv3va315x83";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/s";
+          sha256 = "0dars9212z0yv97mj4615h23vd22vy8b6cw2n433z9jhif3aybqa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/s";
+          license = lib.licenses.free;
+        };
+      }) {};
+    s-buffer = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , noflet
+                            , s }:
+      melpaBuild {
+        pname = "s-buffer";
+        ename = "s-buffer";
+        version = "20130605.1424";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-s-buffer";
+          rev = "f95d234282377f00a2c3a9846681080cb95bb1df";
+          sha256 = "06ng960fj2ivnwb0hrn0qic5x8hb0sswjzph01zmwhbfnwykhr85";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/s-buffer";
+          sha256 = "07kivgzv24psjq1240gwj9wkndq4bhvjh38x552k90m9v6jz8l6m";
+          name = "recipe";
+        };
+        packageRequires = [ noflet s ];
+        meta = {
+          homepage = "https://melpa.org/#/s-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    s12cpuv2-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "s12cpuv2-mode";
+        ename = "s12cpuv2-mode";
+        version = "20171013.1351";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "s12cpuv2-mode";
+          rev = "b17d4cf848dec1e20e66458e5c7ff77a2c051a8c";
+          sha256 = "1fc132gv48xwrxiw139kc9f5wkhjgsgqdfm6b7v97xj5025zg6hr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/s12cpuv2-mode";
+          sha256 = "0mrcf5s7vmkyrsdka7qd2vfcmdy8hzf6a6g14la88rxrv4chv29s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/s12cpuv2-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    s3ed = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , seq }:
+      melpaBuild {
+        pname = "s3ed";
+        ename = "s3ed";
+        version = "20180204.549";
+        src = fetchFromGitHub {
+          owner = "mattusifer";
+          repo = "s3ed";
+          rev = "55b03717caa672b7aebf528b686455fe1d39888c";
+          sha256 = "1qh9hy220pzbzandpcxc2p8knl674gyym0qmqi63scx7s8hn8nmh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/s3ed";
+          sha256 = "08scv3aqnidz28rad5npz7b4pz9dx05rs72qkp3ybkk2vhqf2qwa";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/s3ed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sackspace = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sackspace";
+        ename = "sackspace";
+        version = "20130719.256";
+        src = fetchFromGitHub {
+          owner = "cofi";
+          repo = "sackspace.el";
+          rev = "fd0480eaaf6d3d11fd30ac5feb2da2f4f7572708";
+          sha256 = "06gqqbkn85l2p05whmr4wkg9axqyzb7r7sgm3r8wfshm99kgpxvl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sackspace";
+          sha256 = "1m10iw83k6m7v7sg2dxzdy83zxq6svk8h9fh4ankyn3baqrdxg5z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sackspace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sage-shell-mode = callPackage ({ cl-lib ? null
+                                   , deferred
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , let-alist
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "sage-shell-mode";
+        ename = "sage-shell-mode";
+        version = "20180215.35";
+        src = fetchFromGitHub {
+          owner = "sagemath";
+          repo = "sage-shell-mode";
+          rev = "9f07ff835e8d19afe571dbe414afb690c7b1cb5c";
+          sha256 = "07al41ir1ab0z2m2acvx63scr33bfp3asshjl05shs4j9d4bkmdp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sage-shell-mode";
+          sha256 = "0ivqiigmp9cf88j4xapzanjpbx692r70wb4i25mnppqsi3jlwxdv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib deferred emacs let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/sage-shell-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sailfish-scratchbox = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "sailfish-scratchbox";
+        ename = "sailfish-scratchbox";
+        version = "20171202.532";
+        src = fetchFromGitHub {
+          owner = "vityafx";
+          repo = "sailfish-scratchbox.el";
+          rev = "bb5ed0f0b0cd72f2eb1af065b7587ec81866b089";
+          sha256 = "1b53mdqgcmjay3i3fnxnycv8crqi20yvyv57ybgs2ikfl3v282h2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sailfish-scratchbox";
+          sha256 = "1s0glsi4fm6is7fv9vy1h14frq8a4bgahkc8w08vqfnpiin2r567";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sailfish-scratchbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    salesforce-utils = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "salesforce-utils";
+        ename = "salesforce-utils";
+        version = "20160813.1854";
+        src = fetchFromGitHub {
+          owner = "grimnebulin";
+          repo = "emacs-salesforce";
+          rev = "73328baf0fb94ac0d0de645a8f6d42e5ae27f773";
+          sha256 = "1zsznz9pn9dj672jii6wcvs47yqyxv3dsm5qy1dax1d6gvvbf4zq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/salesforce-utils";
+          sha256 = "0b70w92zghid6n0ba28dh5r3pckr8jsd1743qyi8vj04ih1dns5i";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/salesforce-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    salt-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , mmm-jinja2
+                             , mmm-mode
+                             , yaml-mode }:
+      melpaBuild {
+        pname = "salt-mode";
+        ename = "salt-mode";
+        version = "20181015.325";
+        src = fetchFromGitHub {
+          owner = "glynnforrest";
+          repo = "salt-mode";
+          rev = "e50c04a0e004fa11040025b3a50a4b97c484c42b";
+          sha256 = "1kjc74i25aasmxn88hhss6nyhh3055p38b26qqr182rngf111kbk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/salt-mode";
+          sha256 = "1n7i9d6qpjsdcgbzmbf63y4c7ggxh5wsim8fd0casnrq9bl7ssym";
+          name = "recipe";
+        };
+        packageRequires = [ emacs mmm-jinja2 mmm-mode yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/salt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sane-term = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sane-term";
+        ename = "sane-term";
+        version = "20160620.647";
+        src = fetchFromGitHub {
+          owner = "adamrt";
+          repo = "sane-term";
+          rev = "034033141b2eb467e2d0b79c8ce1da1f8ff2f013";
+          sha256 = "0nhs916h52hxbp479ma01p6i0zfap26n4fvyx83822pisbcd3krb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sane-term";
+          sha256 = "08b8zlr8qzxfrpg9lqiyam3sb8a8rzak79ra4r6ljjppyj4zmwi7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sane-term";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sass-mode = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , haml-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sass-mode";
+        ename = "sass-mode";
+        version = "20161006.2326";
+        src = fetchFromGitHub {
+          owner = "nex3";
+          repo = "sass-mode";
+          rev = "37105f46f6ea3592039f2ea7d0463ae7f042616e";
+          sha256 = "0gd0n5mh2f1gr2aq65d94zmvc2d04z2yb1baw24m0c11fai4y710";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sass-mode";
+          sha256 = "1byjk5zpzjlyiwkp780c4kh7s9l56y686sxji89wc59d19rp8800";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib haml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/sass-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sauron = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "sauron";
+        ename = "sauron";
+        version = "20171105.247";
+        src = fetchFromGitHub {
+          owner = "djcb";
+          repo = "sauron";
+          rev = "50f09bfc6f5bf79e72a1223e345ee720b507e56a";
+          sha256 = "1k80vzgky4fcakxs3h0yb7g3zpn4382p8zz730kk1ibfd7i56a68";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sauron";
+          sha256 = "01fk1xfh7r16fb1xg5ibbs7gci9dja49msdlf7964hiq7pnnhxgb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sauron";
+          license = lib.licenses.free;
+        };
+      }) {};
+    save-load-path = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "save-load-path";
+        ename = "save-load-path";
+        version = "20140206.414";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "save-load-path";
+          rev = "6cb763a37e2b8af505bff2bcd11fd49c9ea04d66";
+          sha256 = "0rxcg60lxaabdx9gjj17sfxnr09694viphlhhk355dcc4v5ngbdm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/save-load-path";
+          sha256 = "1cl9kkv996m2irm9i5n7f020zqzvrsv9dyscc16ca9jsn16msww2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/save-load-path";
+          license = lib.licenses.free;
+        };
+      }) {};
+    save-visited-files = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "save-visited-files";
+        ename = "save-visited-files";
+        version = "20170228.2250";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "save-visited-files";
+          rev = "33e8d223f622001f5792c52d8b36661e46b5834c";
+          sha256 = "1lf03fhmgjz1pixfahdm3cbqs5vbp6bk4qgm2xkm51vzmp39hfim";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/save-visited-files";
+          sha256 = "1pmjz27dlp5yrihgsy8q1bwbhkkj3sn7d79ccvljvzxg5jn1grkd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/save-visited-files";
+          license = lib.licenses.free;
+        };
+      }) {};
+    savekill = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "savekill";
+        ename = "savekill";
+        version = "20140417.1929";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "savekill";
+          rev = "67fc94e3d8fe8ce3ca16f90518f6a46479b63e34";
+          sha256 = "0h8bl28p5xrs9daapcjkslm066a4hqlb764i5nz1db0lwrvr0csm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/savekill";
+          sha256 = "14hfqia7d2v1dn1wdwsphrrkq9hc57721irms9s9vinign0pqx7h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/savekill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    say-what-im-doing = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "say-what-im-doing";
+        ename = "say-what-im-doing";
+        version = "20160706.1231";
+        src = fetchFromGitHub {
+          owner = "Benaiah";
+          repo = "say-what-im-doing";
+          rev = "5b2ce6783b02805bcac1107a149bfba3852cd9d5";
+          sha256 = "0wy4hrc44ajl88krp6qy40szl2kl2wc3xjz3y4n250d1v81k25xi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/say-what-im-doing";
+          sha256 = "0wi7318q7mms4wjbzhnsw298bjh7g957dnra0bvg87vv48pz3yfp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/say-what-im-doing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sayid = callPackage ({ cider
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "sayid";
+        ename = "sayid";
+        version = "20181024.1138";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "sayid";
+          rev = "e9dd81867ba8bbcdb25e24c5937e55d4a26d2a2b";
+          sha256 = "0vwww4p1awxcyvyiyk653fz5jgfqahnaji6njb9g2jkvg3r0i33a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sayid";
+          sha256 = "065mxb2la3dq2zqyb8dfksb18fpqym04nnax5rrp19izcw488qsm";
+          name = "recipe";
+        };
+        packageRequires = [ cider ];
+        meta = {
+          homepage = "https://melpa.org/#/sayid";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sbt-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "sbt-mode";
+        ename = "sbt-mode";
+        version = "20180511.922";
+        src = fetchFromGitHub {
+          owner = "ensime";
+          repo = "emacs-sbt-mode";
+          rev = "e658af140547cbef495c33535c7f694a501d318c";
+          sha256 = "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sbt-mode";
+          sha256 = "0v0n70czgkdijnw5jd4na41vlrmqcshvr8gdpv0bv55ilqhiihc8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sbt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scad-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "scad-mode";
+        ename = "scad-mode";
+        version = "20180108.1809";
+        src = fetchFromGitHub {
+          owner = "openscad";
+          repo = "openscad";
+          rev = "2de6815c7c2ade42e53e86751b9584ac4a5e1ef9";
+          sha256 = "188wbnhdgk0820izing6hb7fca1d42hw9bnn405kms157kvcgqsi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scad-mode";
+          sha256 = "04b4y9jks8sslgmkx54fds8fba9xv54z0cfab52dy99v1301ms3k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scad-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scad-preview = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , scad-mode }:
+      melpaBuild {
+        pname = "scad-preview";
+        ename = "scad-preview";
+        version = "20160206.536";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "scad-preview";
+          rev = "fee011589671cc8f1296cb6aa81553e5bb699819";
+          sha256 = "13x00dls59zshz69260pnqmx6ydrjg8p2jdjn1rzgf5dsmwfy3sc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scad-preview";
+          sha256 = "0wcd2r60ibbc2mzpq8fvyfc1fy172rf9kzdj51p4jyl51r76i86z";
+          name = "recipe";
+        };
+        packageRequires = [ scad-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/scad-preview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scala-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "scala-mode";
+        ename = "scala-mode";
+        version = "20170802.432";
+        src = fetchFromGitHub {
+          owner = "ensime";
+          repo = "emacs-scala-mode";
+          rev = "56cba2903cf6e12c715dbb5c99b34c97b2679379";
+          sha256 = "13miqdn426cw9y1wqaz5smmf0wi3bzls95z6shcxzdz8cg50zmpg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scala-mode";
+          sha256 = "12x377iw085fbkjb034dmcsbi7hma17zkkmbgrhkvfkz8pbgaic8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scala-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scf-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "scf-mode";
+        ename = "scf-mode";
+        version = "20151121.1848";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "scf-mode";
+          rev = "dbfcdcd89034f208d65e181af58e0d73ad09f8b2";
+          sha256 = "0m7hanpc2skmsz783m0212xd10y31gkj5n6w8gx9s989l1y4i1b8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scf-mode";
+          sha256 = "0acbrw94q6cr9b29mz1wcbwi1g90pbm7ly2xbaqb2g8081r5rgg0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scheme-complete = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "scheme-complete";
+        ename = "scheme-complete";
+        version = "20181029.555";
+        src = fetchFromGitHub {
+          owner = "ashinn";
+          repo = "scheme-complete";
+          rev = "b86ee41d48664839181498313f4f3dc2fef17d6f";
+          sha256 = "1by7ky8za6idam4m4xgmf0f5ss0cacd7wv53glhmjb4nslxhgl7d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scheme-complete";
+          sha256 = "1mp9gssd2fx3ra2bjd7w311hwmflhybr5x574qb12603gjkgrp1h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scheme-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scheme-here = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "scheme-here";
+        ename = "scheme-here";
+        version = "20141028.18";
+        src = fetchFromGitHub {
+          owner = "kaihaosw";
+          repo = "scheme-here";
+          rev = "fccf668bb8f1d481be6e70fffa2b52ea681e32a5";
+          sha256 = "1m5aqcm4pd0m0rz3r09i52q55nlx3ga7hca9xlzf0gwcyyn8xzyg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scheme-here";
+          sha256 = "17r77b99nh03v79r97fzr3pyvigp4w8gr41k6zzj82xka2swhr2h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scheme-here";
+          license = lib.licenses.free;
+        };
+      }) {};
+    schrute = callPackage ({ emacs
+                           , fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "schrute";
+        ename = "schrute";
+        version = "20170521.1140";
+        src = fetchgit {
+          url = "https://bitbucket.org/shackra/dwight-k.-schrute";
+          rev = "59faa6c4232ae183cea93237301acad8c0763997";
+          sha256 = "1w5l1vf4cn4psrxgnq5n6j3zw644s70inpa17vsvng3sk5r8crcb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/schrute";
+          sha256 = "1sr49wr3738sqfzix7v9rj6bvv7q2a46qdkimn9z7rnsjys9i7zy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/schrute";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scion = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "scion";
+        ename = "scion";
+        version = "20130315.555";
+        src = fetchFromGitHub {
+          owner = "nominolo";
+          repo = "scion";
+          rev = "99b4589175665687181a932cd836850205625f71";
+          sha256 = "0ark720g0nrdqri5bjdpss6kn6k3hz3w3zdvy334wws05mkb17y4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scion";
+          sha256 = "17qmc7fpvbamqkzyk8jspp2i0nw93iya4iwddvas7vdpjy7mk81d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scion";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sclang-extensions = callPackage ({ auto-complete
+                                     , dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , s }:
+      melpaBuild {
+        pname = "sclang-extensions";
+        ename = "sclang-extensions";
+        version = "20160508.2038";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "sclang-extensions";
+          rev = "e9cc79732f16fdb582129303110c163dcc0d6da0";
+          sha256 = "164dn5615bxvya4n58lly9r739va1xzm00wyfg4shcwgnwm3byqb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sclang-extensions";
+          sha256 = "00nirxawsngvlx7bmf5hqg2wk0l1v5pi09r6phzd0q8gyq3kmbbn";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/sclang-extensions";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sclang-snippets = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , yasnippet }:
+      melpaBuild {
+        pname = "sclang-snippets";
+        ename = "sclang-snippets";
+        version = "20130513.51";
+        src = fetchFromGitHub {
+          owner = "ptrv";
+          repo = "sclang-snippets";
+          rev = "c840a416b96f83bdd70491e3d1fbe2f1ae8b3f58";
+          sha256 = "0vbcghgapwdf3jgjnjdla17dhf5mkmwapz4a8fmlr7sw1wqvj857";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sclang-snippets";
+          sha256 = "0q1bh316v737a0hm9afijk1spvg144cgrf45jm0bpd60zhiv7bb2";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/sclang-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scp = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "scp";
+        ename = "scp";
+        version = "20171203.1851";
+        src = fetchFromGitHub {
+          owner = "tszg";
+          repo = "emacs-scp";
+          rev = "3f437ee9f52df7d9f4c57275a8cfb7f06c3c26ff";
+          sha256 = "013i4152irybladx0lyi1kriaxpn6dnpnc9bqdxngmgycmwsrn4r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scp";
+          sha256 = "1q7v2cr89syw682zqxhavaggv6aqi69rl94vm8bmn745a868gliw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/scp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scpaste = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , htmlize
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "scpaste";
+        ename = "scpaste";
+        version = "20180822.851";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "scpaste";
+          rev = "9757bb5b38f2ec9200391864a9f6971a14b60fc9";
+          sha256 = "0sp8rkaylwpibdxvvxdb3zf4fi8klfcmkkbd7hdll36dwc3yk75v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scpaste";
+          sha256 = "02dqmx6v3jxdn5yz1z74624sc6sz2bm4qjyi78w9akhp2jplwlk1";
+          name = "recipe";
+        };
+        packageRequires = [ htmlize ];
+        meta = {
+          homepage = "https://melpa.org/#/scpaste";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scratch = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "scratch";
+        ename = "scratch";
+        version = "20170614.1401";
+        src = fetchFromGitHub {
+          owner = "ieure";
+          repo = "scratch-el";
+          rev = "2cdf2b841ce7a0987093f65b0cc431947549f897";
+          sha256 = "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scratch";
+          sha256 = "1an30pr64fz13s6lghlcb36b7hn3961vv0yipfp9s140ccygdvh7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scratch-ext = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "scratch-ext";
+        ename = "scratch-ext";
+        version = "20140103.2116";
+        src = fetchFromGitHub {
+          owner = "kyanagi";
+          repo = "scratch-ext-el";
+          rev = "388c53cddd0466b451264894667ed64a6947ad67";
+          sha256 = "0ng0by647r49mia7vmjqc97gwlwgs8kmaz0lw2y54jdz8m0bbngp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scratch-ext";
+          sha256 = "031wxz10k1q4bi5hywhcw1vzi41d5pv5hc09x8jk9s5nzyssvc0y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scratch-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scratch-log = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "scratch-log";
+        ename = "scratch-log";
+        version = "20141114.2343";
+        src = fetchFromGitHub {
+          owner = "mori-dev";
+          repo = "scratch-log";
+          rev = "1168f7f16d36ca0f4ddf2bb98881f8db62cc5dc0";
+          sha256 = "030mcq0cmamizvra8jh2x76f71g5apiavwb10c28j62rl0r5bisk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scratch-log";
+          sha256 = "1yp3p0dzhmqrd0krqii3x79k4zc3p59148cijhk6my4n1xqnhs69";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scratch-log";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scratch-message = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "scratch-message";
+        ename = "scratch-message";
+        version = "20170107.536";
+        src = fetchFromGitHub {
+          owner = "thisirs";
+          repo = "scratch-message";
+          rev = "3ecc7f5e3b8a597ebd1492fd426d3720a7f34302";
+          sha256 = "1kb664r3gbhv2ja8jyyzfw22db99ini8qbgzcy9xsl56lha4x4xi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scratch-message";
+          sha256 = "1dl9d4gvicwnb662ir9azywjmmm7xv4d0sz42z7mmwy8hl9hi91b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scratch-message";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scratch-palette = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , popwin }:
+      melpaBuild {
+        pname = "scratch-palette";
+        ename = "scratch-palette";
+        version = "20150225.42";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "scratch-palette";
+          rev = "f6803b448079f4a81cc699cec7442ef543cd5818";
+          sha256 = "00b4r8bqlxc29k18vig0164d5c9fp5bp5q26d28lwr4f0s4a71d2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scratch-palette";
+          sha256 = "0m6hc2amwnnii4y189kkridhapl9jipkmadvrmwvspgy3lxhlafs";
+          name = "recipe";
+        };
+        packageRequires = [ popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/scratch-palette";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scratch-pop = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , popwin }:
+      melpaBuild {
+        pname = "scratch-pop";
+        ename = "scratch-pop";
+        version = "20170510.758";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "scratch-pop";
+          rev = "7f4172c792b10bd38898dd8963cf0ade91921869";
+          sha256 = "0mwjq7z0cpaqhqygzhfcpfqyx8376jsc1g2874np6ff49389bj4d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scratch-pop";
+          sha256 = "0s7g1fbnc5hgz8gqmp1lynj5g7vvxisj7scxx5wil9qpn2zyggq1";
+          name = "recipe";
+        };
+        packageRequires = [ popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/scratch-pop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scratches = callPackage ({ dash
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "scratches";
+        ename = "scratches";
+        version = "20151005.2116";
+        src = fetchFromGitHub {
+          owner = "zhangkaiyulw";
+          repo = "scratches";
+          rev = "9441afe6396ca38f08029123fab5d87429cbf315";
+          sha256 = "10hmy0p4pkrzvvyisk4rjc6hqqyk2sir1rszqgmkhrdywl010vlc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scratches";
+          sha256 = "116bjy1m35h83r2c354i2xk1br87nmvd99kbzax0wgkkkcjff8c4";
+          name = "recipe";
+        };
+        packageRequires = [ dash f ];
+        meta = {
+          homepage = "https://melpa.org/#/scratches";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scribble-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "scribble-mode";
+        ename = "scribble-mode";
+        version = "20160124.1528";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "scribble-mode";
+          rev = "7e83ddf30b7089607c1653eced3edef459d4ad16";
+          sha256 = "14bpdn89ry1im84zcx3jq64q2gl0jxfz9x7fy0szdas7ycrhjghz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scribble-mode";
+          sha256 = "0idagikxhr86h2k6fb45zdzg73wpmpiszx0gi6d8jx7s1xqd6s50";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/scribble-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scrooge = callPackage ({ cl-lib ? null
+                           , dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , thrift }:
+      melpaBuild {
+        pname = "scrooge";
+        ename = "scrooge";
+        version = "20180630.322";
+        src = fetchFromGitHub {
+          owner = "cosmicexplorer";
+          repo = "emacs-scrooge";
+          rev = "0a8c58e9e6708abe4ef7e415bc1e0472318bb1b0";
+          sha256 = "1my5yz9ppr7d90ad94mkqzkp20c8bym6mdi7jwab2yisbzykmwzc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scrooge";
+          sha256 = "1gisyfzawrgg55jbwrbnri314f6zd38di19iwy0b2dim8in4sjpg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs thrift ];
+        meta = {
+          homepage = "https://melpa.org/#/scrooge";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scss-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "scss-mode";
+        ename = "scss-mode";
+        version = "20180123.908";
+        src = fetchFromGitHub {
+          owner = "antonj";
+          repo = "scss-mode";
+          rev = "cf58dbec5394280503eb5502938f3b5445d1b53d";
+          sha256 = "0raja19l0igwr0pn0ghr1pj1d8i9k3m3764ma4r8nwzxcj9qw4ja";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scss-mode";
+          sha256 = "1g27xnp6bjaicxjlb9m0njc6fg962j3hlvvzmxvmyk7gsdgcgpkv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scss-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sdcv = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , popup
+                        , pos-tip
+                        , showtip }:
+      melpaBuild {
+        pname = "sdcv";
+        ename = "sdcv";
+        version = "20180211.833";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "sdcv.el";
+          rev = "50ac95be1369fe8cf98d6254e05d6ac343dad421";
+          sha256 = "09i7zsizwq5k79wi5sgcfqdlbx0nazrnw3nd6hkn2vfrcffb7pf1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sdcv";
+          sha256 = "1bj3b17sjd9fha686g6w191l4p8a1p8sb9br65xf54n6nd9bmv7a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs popup pos-tip showtip ];
+        meta = {
+          homepage = "https://melpa.org/#/sdcv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sdlang-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "sdlang-mode";
+        ename = "sdlang-mode";
+        version = "20161130.2311";
+        src = fetchFromGitHub {
+          owner = "CyberShadow";
+          repo = "sdlang-mode";
+          rev = "d42a6eedefeb44919fbacf58d302b6df18f05bbc";
+          sha256 = "0r6sm7b15scmjcpdcqvm55hdsvyw5d2g7mrfhsx2hs8sqz64gkwc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sdlang-mode";
+          sha256 = "1z6n374z55dr2c6xdwgvmpznd5gk9y23k136zmy29b68j2kswj6l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sdlang-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    search-web = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "search-web";
+        ename = "search-web";
+        version = "20150312.403";
+        src = fetchFromGitHub {
+          owner = "tomoya";
+          repo = "search-web.el";
+          rev = "c4ae86ac1acfc572b81f3d78764bd9a54034c331";
+          sha256 = "08yc67a4ji7z8s0zh500wiscziqsxi92i1d33fjla2mcr8sxxn0i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/search-web";
+          sha256 = "0qqx9l8dn1as4gqpq80jfacn6lz0132m91pjzxv0fx6al2iz0m36";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/search-web";
+          license = lib.licenses.free;
+        };
+      }) {};
+    searchq = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "searchq";
+        ename = "searchq";
+        version = "20150829.511";
+        src = fetchFromGitHub {
+          owner = "boyw165";
+          repo = "searchq";
+          rev = "dd510d55ad66a82c6ef022cfe7c4a73ad5365f82";
+          sha256 = "0zs08vxmjb3y4dnfq6djnrhmkgyhhwd5zylrjisrd4y7f089fyh4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/searchq";
+          sha256 = "0flsc07v887pm62mslrv7zqnhl62l6348nkm77mizm1592q3kjgr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/searchq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    seclusion-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "seclusion-mode";
+        ename = "seclusion-mode";
+        version = "20121118.1553";
+        src = fetchFromGitHub {
+          owner = "dleslie";
+          repo = "seclusion-mode";
+          rev = "9634e76c52bfb7200ff0f9f01404f743429e9ef0";
+          sha256 = "15cjhwjiwmrfzmr74hbw5s92si2qdb8i97nmkbsgkj3444rxg239";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/seclusion-mode";
+          sha256 = "0ff10x6yr37vpp6ffbk1nb027lgmrydwjrb332fskwlf3xmy6v0m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/seclusion-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    secretaria = callPackage ({ alert
+                              , emacs
+                              , f
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "secretaria";
+        ename = "secretaria";
+        version = "20181025.1257";
+        src = fetchFromGitLab {
+          owner = "shackra";
+          repo = "secretaria";
+          rev = "27528f57c7543b425940db29b9b99d59d430ff09";
+          sha256 = "1kw91pp5aidlwk1cz0wq76xyqzrm1yilw0l0az7x0xvcz94l32xj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/secretaria";
+          sha256 = "04pcibzdljcfiha4yh10van8gsjrzn6bdkvkm2ahfcwrmscfn3hf";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/secretaria";
+          license = lib.licenses.free;
+        };
+      }) {};
+    see-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , language-detection
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "see-mode";
+        ename = "see-mode";
+        version = "20180510.1741";
+        src = fetchFromGitHub {
+          owner = "marcelino-m";
+          repo = "see-mode";
+          rev = "db9e4324f9dcc14d5125cb6a79d6c9fad5b14626";
+          sha256 = "0w595mpdd999j7m9dsy18fy7pr9nq4dm666lvjvlzzgdgwwf0zvc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/see-mode";
+          sha256 = "1124x11vxci9mvx3zn56v5h9dhmy7bzd5pilqdgzp3hzjmyydnfi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs language-detection ];
+        meta = {
+          homepage = "https://melpa.org/#/see-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    seeing-is-believing = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "seeing-is-believing";
+        ename = "seeing-is-believing";
+        version = "20170214.520";
+        src = fetchFromGitHub {
+          owner = "jcinnamond";
+          repo = "seeing-is-believing";
+          rev = "fbbe246c0fda87bb26227bb826eebadb418a220f";
+          sha256 = "1h1b48s2iirswdlvfz41jbflm4x09ksc2lycrc1awzlwd6r8hdhg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/seeing-is-believing";
+          sha256 = "05aja5xycb3kpmxyi234l50h98f5m1fil6ll4f2xkpxwv31ba5rb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/seeing-is-believing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    seethru = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , shadchen }:
+      melpaBuild {
+        pname = "seethru";
+        ename = "seethru";
+        version = "20150218.1029";
+        src = fetchFromGitHub {
+          owner = "Benaiah";
+          repo = "seethru";
+          rev = "d87e231f99313bea75b1e69e48c0f32968c82060";
+          sha256 = "0qd462qbqdx53xh3ddf76chiljxf6s43r28v2ix85gsig7nm5pgr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/seethru";
+          sha256 = "1lcwslkki9s15xr2dmh2iic4ax8ia0j20hjnjmkv612wv04b806v";
+          name = "recipe";
+        };
+        packageRequires = [ shadchen ];
+        meta = {
+          homepage = "https://melpa.org/#/seethru";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sekka = callPackage ({ cl-lib ? null
+                         , concurrent
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , popup }:
+      melpaBuild {
+        pname = "sekka";
+        ename = "sekka";
+        version = "20170803.547";
+        src = fetchFromGitHub {
+          owner = "kiyoka";
+          repo = "sekka";
+          rev = "d1fd5d47aacba723631d5d374169a45ff2051c41";
+          sha256 = "035rx863cj3hs1lhayff0810cpp6kv8nwc1c0y54gvdk1bb333x0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sekka";
+          sha256 = "1jj4ly9p7m3xvb31nfn171lbpm9y70y8cbf8p24w0fhv665dx0cp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib concurrent popup ];
+        meta = {
+          homepage = "https://melpa.org/#/sekka";
+          license = lib.licenses.free;
+        };
+      }) {};
+    select-themes = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "select-themes";
+        ename = "select-themes";
+        version = "20160220.1706";
+        src = fetchFromGitHub {
+          owner = "jasonm23";
+          repo = "emacs-select-themes";
+          rev = "236f54287519a3ea6dd7b3992d053e4f4ff5d0fe";
+          sha256 = "1c9yv1kjcd0jrzgw99q9p4kzj980f261mjcsggbcw806wb0iw1xn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/select-themes";
+          sha256 = "18ydv7240vcqppg1i7n8sy18hy0lhpxz17947kxs7mvj4rl4wd84";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/select-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    selected = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "selected";
+        ename = "selected";
+        version = "20170222.34";
+        src = fetchFromGitHub {
+          owner = "Kungsgeten";
+          repo = "selected.el";
+          rev = "03edaeac90bc6000d263f03be3d889b4685e1bf7";
+          sha256 = "1d72vw1dcxnyir7vymr3cfxal5dndm1pmm192aa9bcyrcg7aq39g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/selected";
+          sha256 = "1zk9jvsiw30zqh68xjx2zcc71php68ryiwqmws52ghqiaifj50gf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/selected";
+          license = lib.licenses.free;
+        };
+      }) {};
+    selectric-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "selectric-mode";
+        ename = "selectric-mode";
+        version = "20170216.311";
+        src = fetchFromGitHub {
+          owner = "rbanffy";
+          repo = "selectric-mode";
+          rev = "a35cb3815caceaf273ad7d16ac3b2dd3c7a3003e";
+          sha256 = "04bj71080wqybznyx63dawhppq6x3p88x1j56gvl8kvxv2hwzgzf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/selectric-mode";
+          sha256 = "1k4l0lr68rqyi37wvqp1cnfci6jfkz0gvrd1hwbgx04cjgmz56n4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/selectric-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    semi = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , flim
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "semi";
+        ename = "semi";
+        version = "20180825.201";
+        src = fetchFromGitHub {
+          owner = "wanderlust";
+          repo = "semi";
+          rev = "d445dbdf39bab9aaf00582506357f25f1b78d76d";
+          sha256 = "10bd95fd9sf3fn7x1vrfl7nra5sg4df8v39bl7yc3i9gh9yiiy9q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/semi";
+          sha256 = "01wk3lgln5lac65hp6v83d292bdk7544z23xa1v6a756nhybwv25";
+          name = "recipe";
+        };
+        packageRequires = [ flim ];
+        meta = {
+          homepage = "https://melpa.org/#/semi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sendto = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "sendto";
+        ename = "sendto";
+        version = "20160425.550";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "sendto.el";
+          rev = "076b81d7a53f75b0a59b0ef3448f35570567054c";
+          sha256 = "13qqprxz87cv3sjlq5hj0jp0qcfm3djfgasga8cc84ykrcc47p9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sendto";
+          sha256 = "00ifasqpmggr4bhdyymzr215840y0ayfnfp0mh7wj99mr6f3zfq0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sendto";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sensitive = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , sequences }:
+      melpaBuild {
+        pname = "sensitive";
+        ename = "sensitive";
+        version = "20170818.551";
+        src = fetchFromGitHub {
+          owner = "timvisher";
+          repo = "sensitive.el";
+          rev = "69dd6125a41d8b55f4b6ba61daa4d1aa1f716fa8";
+          sha256 = "0nj71ds4frfi16hsfswmp89rfxkvvdvhdlsqizzi9cbvr49s0l1f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sensitive";
+          sha256 = "0v988k0x3mdp7ank2ihghphh8sanvv96s4sg6pnszg5hczak1vr3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs sequences ];
+        meta = {
+          homepage = "https://melpa.org/#/sensitive";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sentence-navigation = callPackage ({ ample-regexps
+                                       , cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "sentence-navigation";
+        ename = "sentence-navigation";
+        version = "20180408.919";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "emacs-sentence-navigation";
+          rev = "7c5d2edeaed01196aec25031782e89adeaa089f0";
+          sha256 = "15za4fg7c8fsih86wz1npyx6gdmw0xhizklfsyfh84416dsmgswp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sentence-navigation";
+          sha256 = "1p3ch1ab06v038h130fsxpbq45d1yadl67i2ih4l4fh3xah5997m";
+          name = "recipe";
+        };
+        packageRequires = [ ample-regexps cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sentence-navigation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    seoul256-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "seoul256-theme";
+        ename = "seoul256-theme";
+        version = "20180505.57";
+        src = fetchFromGitHub {
+          owner = "anandpiyer";
+          repo = "seoul256-emacs";
+          rev = "8e76d0207489964ef780420723d49e409f68f7d1";
+          sha256 = "1fcnq2jh330va1xvpfh6nnd9gbjjisv0ham44zwi5lh0j7424jkj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/seoul256-theme";
+          sha256 = "1nvhnyfvmpqg0a54nq73lhz3h9g94zkbix13bbzv9bp1lg8v6w1x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/seoul256-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sequences = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sequences";
+        ename = "sequences";
+        version = "20170818.552";
+        src = fetchFromGitHub {
+          owner = "timvisher";
+          repo = "sequences.el";
+          rev = "564ebbd93b0beea4e75acfbf824350e90b5d5738";
+          sha256 = "0ym2bl9dpsglz35is0iwxfw5w7zs9398bkln8lgv28nr6kw0ym4s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sequences";
+          sha256 = "12wnkywkmxfk2sx40h90k53d5qmc8hiky5vhlyf0ws3n39zvhplh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sequences";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sequential-command = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "sequential-command";
+        ename = "sequential-command";
+        version = "20170925.1740";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "sequential-command";
+          rev = "a48cbcbe273b33edd3ae56e68f44b4100fa3a48a";
+          sha256 = "1f05amz22klvs2yqyw7n5bmivgdn5zc7vkv5x6bgc9b5k977lggj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sequential-command";
+          sha256 = "0qhrpwcgn89sqdj8yhgax0qk81ycdanlgwx25cxy8wnxkqqcvh9m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sequential-command";
+          license = lib.licenses.free;
+        };
+      }) {};
+    servant = callPackage ({ ansi
+                           , commander
+                           , dash
+                           , epl
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , shut-up
+                           , web-server }:
+      melpaBuild {
+        pname = "servant";
+        ename = "servant";
+        version = "20140216.419";
+        src = fetchFromGitHub {
+          owner = "cask";
+          repo = "servant";
+          rev = "4d2aa8250b54b28e6e7ee4cd5ebd98a33db2c134";
+          sha256 = "15lx6qvmq3vp84ys8dzbx1nzxcnzlq41whawc2yhrnd1dbq4mv2d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/servant";
+          sha256 = "0h8xsg37cvc5r8vkclf7d3gbf6gh4k5pmbiyhwpkbrxwjyl1sl21";
+          name = "recipe";
+        };
+        packageRequires = [ ansi commander dash epl f s shut-up web-server ];
+        meta = {
+          homepage = "https://melpa.org/#/servant";
+          license = lib.licenses.free;
+        };
+      }) {};
+    serverspec = callPackage ({ dash
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "serverspec";
+        ename = "serverspec";
+        version = "20150623.455";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "emacs-serverspec";
+          rev = "b6dfe82af9869438de5e5d860ced196641f372c0";
+          sha256 = "1h58q41wixjlapia1ggf83jxcllq7492k55mc0fq7hbx3hw1q1y2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/serverspec";
+          sha256 = "001d57yd0wmz4d7qmhnanac8g29wls0sqw194003hrgirakg82id";
+          name = "recipe";
+        };
+        packageRequires = [ dash f helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/serverspec";
+          license = lib.licenses.free;
+        };
+      }) {};
+    services = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "services";
+        ename = "services";
+        version = "20170802.430";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "services.el";
+          rev = "04c7986041a33dfa0b0ae57c7d6fbd600548c596";
+          sha256 = "0ycfkskkdlmc0l75z5a8f66wq5mvb24c4kz19a6kqs8rwm2ygz35";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/services";
+          sha256 = "02lgmpbw52ps6z4p9gwzvh9iaxisq5mb0n9aml9ajxac1473vpcd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/services";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sesman = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "sesman";
+        ename = "sesman";
+        version = "20181109.300";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "sesman";
+          rev = "2a1a9a4ccfd88127e13f2655ac130c82fe84f2f7";
+          sha256 = "02jb0fz6sg1dj8yb5yyn16pj4pnliz18y8vxylinqbwvn7v4q0rp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sesman";
+          sha256 = "106jcdsp7rhkr4bbyprcld5fxcnimfcyx0cwcpzhd0b4vh3v3qvg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sesman";
+          license = lib.licenses.free;
+        };
+      }) {};
+    session = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "session";
+        ename = "session";
+        version = "20120510.1700";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "session";
+          rev = "19ea0806873daac3539a4b956e15655e99e3dd6c";
+          sha256 = "0sp952abz7dkq8b8kkzzmnwnkq5w15zsx5dr3h8lzxb92lnank9v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/session";
+          sha256 = "0fghxbnf1d5iyrx1q8xd0lbw9nvkdgg2v2f89j6apnawisrsbhwx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/session";
+          license = lib.licenses.free;
+        };
+      }) {};
+    seti-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "seti-theme";
+        ename = "seti-theme";
+        version = "20161208.836";
+        src = fetchFromGitHub {
+          owner = "caisah";
+          repo = "seti-theme";
+          rev = "cbfef2fc15d19ce4c8326e65fafdd61737077132";
+          sha256 = "191mvz6d6j764q1sj2496i6lq0q42b5qh5zfdvf0yl39pzbwx8jx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/seti-theme";
+          sha256 = "1mwkx3hynabwr0a2rm1bh91h7xf38a11h1fb6ys8s3mnr68csd9z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/seti-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sexp-move = callPackage ({ fetchFromGitLab
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sexp-move";
+        ename = "sexp-move";
+        version = "20150915.1030";
+        src = fetchFromGitLab {
+          owner = "elzair";
+          repo = "sexp-move";
+          rev = "117f7a91ab7c25e438413753e916570122011ce7";
+          sha256 = "11h5z2gmwq07c4gqzj2c9apksvqk3k8kpbb9kg78bbif2xfajr3m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sexp-move";
+          sha256 = "0sdm3kr4594fy9hk8yljj2iwa40bgs8nqpwwl2a60r060spz54z9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sexp-move";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sexy-monochrome-theme = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "sexy-monochrome-theme";
+        ename = "sexy-monochrome-theme";
+        version = "20180526.108";
+        src = fetchFromGitHub {
+          owner = "voloyev";
+          repo = "sexy-monochrome-theme";
+          rev = "bf4b6ccd63b9dfbe14035963a80057e1f56ad1e7";
+          sha256 = "0m2m4ini1dzk7hzjy7zqn90vih9n6kiz1amgv4gyhzarbwj7zyw6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sexy-monochrome-theme";
+          sha256 = "0rlx4029zxrnzzqspn8zrp3q6w0n46q24qk7za46hvxdsmgdpxbq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sexy-monochrome-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shackle = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "shackle";
+        ename = "shackle";
+        version = "20171209.1401";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "shackle";
+          rev = "4189c1c773aab533969b587f7801ffbcd1d7d613";
+          sha256 = "1gh30sryh884mpwxpkf0ngkcvixjrxxf4bgq4nqm9n969sr5bhsq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shackle";
+          sha256 = "159z0cwg7afrmym0xk902d8z093sqv39jig25ds7z4a224yrv5w6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/shackle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shadchen = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "shadchen";
+        ename = "shadchen";
+        version = "20141102.1039";
+        src = fetchFromGitHub {
+          owner = "VincentToups";
+          repo = "shadchen-el";
+          rev = "35f2b9c304eec990c16efbd557198289dc7cbb1f";
+          sha256 = "0phivbhjdw76gzrx35rp0zybqfb0fdy2hjllf72qf1r0r5gxahl8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shadchen";
+          sha256 = "1r1mfmv4cdlc8kzjiqz81kpqdrwbnyciwdgg6n5x0yi4apwpvnl4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shadchen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shader-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "shader-mode";
+        ename = "shader-mode";
+        version = "20180518.457";
+        src = fetchFromGitHub {
+          owner = "midnightSuyama";
+          repo = "shader-mode";
+          rev = "d7dc8d0d6fe8914e8b6d5cf2081ad61e6952359c";
+          sha256 = "13scj6w3vsdcgmq7zak3pflqpq295wgzsng72rcafgkkr7r12rar";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shader-mode";
+          sha256 = "12y84fa1wc82js53rpadaysmbshhqf6wb97889qkksx19n3xmb9g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shader-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shakespeare-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "shakespeare-mode";
+        ename = "shakespeare-mode";
+        version = "20180704.1438";
+        src = fetchFromGitHub {
+          owner = "CodyReichert";
+          repo = "shakespeare-mode";
+          rev = "c442eeea9d585e1b1fbb8813e33d47feec348a57";
+          sha256 = "1ba9xy5jwn8ni8fi2k144j669jp95k2qf9ip77r16rsiy7divl0y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shakespeare-mode";
+          sha256 = "1sg8n4ifpi36zmf6b6s0swq7k3r038cmj8kxjm7hpgxq6f9qnk9x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shakespeare-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shampoo = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "shampoo";
+        ename = "shampoo";
+        version = "20131230.219";
+        src = fetchFromGitHub {
+          owner = "dmatveev";
+          repo = "shampoo-emacs";
+          rev = "bc193c39636c30182159c5c91c37a9a4cb50fedf";
+          sha256 = "15a8gs4lrqxn0jyfw16rc6vm7z1i10pzzlnp30x6nly9a7xra47x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shampoo";
+          sha256 = "01ssgw4cnnx8d86g3r1d5hqcib4qyhmpqvcvx47xs7zh0jscps61";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shampoo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-command = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "shell-command";
+        ename = "shell-command";
+        version = "20090830.340";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "shell-command";
+          rev = "7e22125f746ce9ffbe9b0282d62f4b4bbbe672bd";
+          sha256 = "1my2i26a03z8xyyacsnl5wdylnbhhvazn23bpy639d3l4x4l7jzw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-command";
+          sha256 = "01nviashfr64wm78zi3vrqrqdqgsamp76d9kasxv0b7fqmfx7yjk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shell-command";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-current-directory = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "shell-current-directory";
+        ename = "shell-current-directory";
+        version = "20140101.1554";
+        src = fetchFromGitHub {
+          owner = "metaperl";
+          repo = "shell-current-directory";
+          rev = "bf843771bf9a4aa05e054ade799eb8862f3be89a";
+          sha256 = "1w42j5cdddr0riz1xjq3wiz5i9f71i9jdzd1l92ir0mlj05wjyic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-current-directory";
+          sha256 = "0bj2gs96ivm5x8l7gwvfckyalr1amh4cb1v2dbl323zmrqddhgkd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shell-current-directory";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-here = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "shell-here";
+        ename = "shell-here";
+        version = "20150728.1004";
+        src = fetchFromGitHub {
+          owner = "ieure";
+          repo = "shell-here";
+          rev = "251309141e18978d2b8014345acc6f5afcd4d509";
+          sha256 = "0z04z07r7p5p05zhaka37s48y82hg2dbk0ynap4inph3frn4yyfl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-here";
+          sha256 = "0csi70v89bqdpbsizji6c5z0jmkx4x4vk1zfclkpap4dalmxxcsh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shell-here";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-history = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "shell-history";
+        ename = "shell-history";
+        version = "20100505.139";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "shell-history";
+          rev = "ee371a81f2d2bf5a308344078329ca1e9b5ed38c";
+          sha256 = "0jyz31j5a07shcf2ym5gnn16xk5r3s84ls8kxk5myvxi3wkpgdd4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-history";
+          sha256 = "1cmk8rymnj7dscxjq0p23jgwc16yvzw1804ya5wsg95v239gz1hy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shell-history";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-pop = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "shell-pop";
+        ename = "shell-pop";
+        version = "20170304.616";
+        src = fetchFromGitHub {
+          owner = "kyagi";
+          repo = "shell-pop-el";
+          rev = "4a3a9d093ad1add792bba764c601aa28de302b34";
+          sha256 = "1ybvg048jvijcg9jjfrbllf59pswmp0fd5zwq5x6nwg5wmggplzd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-pop";
+          sha256 = "02s17ln0hbi9gy3di8fksp3mqc7d8ahhf5vwyz4vrc1bg77glxw8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shell-pop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-split-string = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "shell-split-string";
+        ename = "shell-split-string";
+        version = "20151224.208";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "shell-split-string-el";
+          rev = "19f6f999c33cc66a4c91bacdcc3697c25d97bf5a";
+          sha256 = "16srngml5xmpaxb0wzhx91jil0r0dmn673bwai3lzxrkmjnl748l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-split-string";
+          sha256 = "1yj1h7za4ylxh2nikj7s1qqlilpsk05x9571a2fymfyznm3iq77m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shell-split-string";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-switcher = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "shell-switcher";
+        ename = "shell-switcher";
+        version = "20161028.2252";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "shell-switcher";
+          rev = "28a7f753dd7addd2933510526f52620cb5a22048";
+          sha256 = "1x7rrf56hjasciim8rj29vfngwis4pr3mhclvxd4sbmhz9y66wm0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-switcher";
+          sha256 = "07g9naiv2jk9jxwjywrbb05dy0pbfdx6g8pkra38rn3vqrjzvhyx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shell-switcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-toggle = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "shell-toggle";
+        ename = "shell-toggle";
+        version = "20150226.611";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "shell-toggle.el";
+          rev = "0d01bd9a780fdb7fe6609c552523f4498649a3b9";
+          sha256 = "0ssaccdacabpja9nqzhr8x8ggfwmlian7y4p0fa6gvr7qsvjpgr9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-toggle";
+          sha256 = "1ai0ks7smr8b221j9hmsikswpxqraa9b13fpwv4wwagavnlah446";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shell-toggle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shelldoc = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "shelldoc";
+        ename = "shelldoc";
+        version = "20151114.1925";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-shelldoc";
+          rev = "20eb889f3d3d9bd01aafdc699e712a75db42d8f3";
+          sha256 = "0i6xp6g3ggs4fkr410blxa4mkb1y05pcygkdbvb7y3gh878q5b5k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shelldoc";
+          sha256 = "1xlp03aaidp7dp8349v8drzhl4lcngvxgdrwwn9cahfqlrvvbbbx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib s ];
+        meta = {
+          homepage = "https://melpa.org/#/shelldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shelltest-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "shelltest-mode";
+        ename = "shelltest-mode";
+        version = "20180430.1841";
+        src = fetchFromGitHub {
+          owner = "rtrn";
+          repo = "shelltest-mode";
+          rev = "5fea8c9394380e822971a171905b6b5ab9be812d";
+          sha256 = "1np65a92n4y9i0nr8wymzn6md9xqmi9qyggya7sz0q4nzsh45wqg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shelltest-mode";
+          sha256 = "1inb0vq34fbwkr0jg4dv2lljag8djggi8kyssrzhfawri50m81nh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shelltest-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shen-elisp = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "shen-elisp";
+        ename = "shen-elisp";
+        version = "20180915.1328";
+        src = fetchFromGitHub {
+          owner = "deech";
+          repo = "shen-elisp";
+          rev = "73b74c8d6e3a2ea34b667d177d9f130765bfe501";
+          sha256 = "1ym048cmkghx373fb7n5m6r73q5nfa62m10mqr4nzhsizgyzdbrn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shen-elisp";
+          sha256 = "045nawzyqaxd3g5f56fxfy680pl18x67w0wi28nrq4l4681w9xyq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shen-elisp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shift-number = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "shift-number";
+        ename = "shift-number";
+        version = "20170301.659";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "shift-number.el";
+          rev = "94c3713cc11283a831f66d5205d112762edc186b";
+          sha256 = "17a5aifj37pv3jm6k7ilc3s4vwhiy2dwyjjy9dxy3qqc8w9h4rr1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shift-number";
+          sha256 = "1sbzkmd336d0dcdpk29pzk2b5bhlahrn083x62l6m150n2xzxn4p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shift-number";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shift-text = callPackage ({ cl-lib ? null
+                              , es-lib
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "shift-text";
+        ename = "shift-text";
+        version = "20130831.955";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "shift-text";
+          rev = "1be9cbf994000022172ceb746fe1d597f57ea8ba";
+          sha256 = "13zsws8gq9a8nfk4yzlvfsvqjh9zbnanmw68rcna93yc5nc634nr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shift-text";
+          sha256 = "1v9zk7ycc8k1qk1cfs2y1knygl686msmlilqy5a7mh0w0z9f3a2i";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib es-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/shift-text";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shimbun = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "shimbun";
+        ename = "shimbun";
+        version = "20181019.121";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "w3m";
+          rev = "4eeed17f47a89031c51d843e902071738d5d2905";
+          sha256 = "1f8ipg4ln2swykn8b4gzl288s21wfsgf7crwm13j21s4qgxhj9ip";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shimbun";
+          sha256 = "1rjykr0y5jfd6r3shm8x23yyra6qjsb55jrfc45rhpb89klyg1nk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shimbun";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shm = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "shm";
+        ename = "shm";
+        version = "20180326.1757";
+        src = fetchFromGitHub {
+          owner = "chrisdone";
+          repo = "structured-haskell-mode";
+          rev = "7f9df73f45d107017c18ce4835bbc190dfe6782e";
+          sha256 = "1jcc30048j369jgsbbmkb63whs4wb37bq21jrm3r6ry22izndsqa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shm";
+          sha256 = "1qmp8cc83dcz25xbyqd4987i0d8ywvh16wq2wfs4km3ia8a2vi3c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shoulda = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "shoulda";
+        ename = "shoulda";
+        version = "20140616.1133";
+        src = fetchFromGitHub {
+          owner = "marcwebbie";
+          repo = "shoulda.el";
+          rev = "24dc6b6138a06edde9c8d13a6aaa1654d1d7de54";
+          sha256 = "18p0z5d8vhdhmw6x5rys2kfk93pb7mzdagls9ml0mjcixsyy7qsc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shoulda";
+          sha256 = "0lmlhx34nwvn636y2wvw3sprhhh6q3mdg7dzgpjj7ybibvhp1lzk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/shoulda";
+          license = lib.licenses.free;
+        };
+      }) {};
+    show-css = callPackage ({ doom
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "show-css";
+        ename = "show-css";
+        version = "20160210.608";
+        src = fetchFromGitHub {
+          owner = "8cylinder";
+          repo = "showcss-mode";
+          rev = "771daeddd4df7a7c10f66419a837145649bab63b";
+          sha256 = "11kzjm12hbcdzrshq20r20l29k3555np1sva7afqrhgvd239fdq1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/show-css";
+          sha256 = "0sq15l58macy2affdgbimnchn491fnrqr3bbgn30k3l3xkvkmc7k";
+          name = "recipe";
+        };
+        packageRequires = [ doom s ];
+        meta = {
+          homepage = "https://melpa.org/#/show-css";
+          license = lib.licenses.free;
+        };
+      }) {};
+    show-marks = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , fm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "show-marks";
+        ename = "show-marks";
+        version = "20130805.749";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "show-marks";
+          rev = "97609566582e65eed0d0a854efa5c312f209115d";
+          sha256 = "15vkk7lnnfwgzkiwpqz1l1qpnz2d10l82m10m0prbw03k1zx22c7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/show-marks";
+          sha256 = "1jgxdclj88ca106vcvf1k8zbf7iwamy80c2ad8b3myz0f4zscjzb";
+          name = "recipe";
+        };
+        packageRequires = [ fm ];
+        meta = {
+          homepage = "https://melpa.org/#/show-marks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    showtip = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "showtip";
+        ename = "showtip";
+        version = "20090830.340";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "showtip";
+          rev = "930da302809a4257e8d69425455b29e1cc91949b";
+          sha256 = "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/showtip";
+          sha256 = "1d5ckka2z0ffwyk9g3h91n3waijj2v7n8kvdks35gcr2yl3yk780";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/showtip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shpec-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "shpec-mode";
+        ename = "shpec-mode";
+        version = "20150530.222";
+        src = fetchFromGitHub {
+          owner = "shpec";
+          repo = "shpec-mode";
+          rev = "76bccd63e3b70233a6c9ca0798dd03550952cc76";
+          sha256 = "09454mcjd8n1090pjc5mk1dc6bn3bgh60ddpnv9hkajkzpcjxx4h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shpec-mode";
+          sha256 = "155hc1nym3fsvflps8d3ixaqw1cafqp97zcaywdppp47n7vj8zjl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shpec-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shr-tag-pre-highlight = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , language-detection
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "shr-tag-pre-highlight";
+        ename = "shr-tag-pre-highlight";
+        version = "20171113.114";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "shr-tag-pre-highlight.el";
+          rev = "6182f43a36b0f82ba6edcf6e423b5f69a46a814e";
+          sha256 = "0916bpzi6sw5gyn5xgi9czf35zrvl04w10wz6fvz0lc57giihil1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shr-tag-pre-highlight";
+          sha256 = "1v8fqx8bd5504r2mflq6x8xs3k0py3bgsnadz3bjs68yhaxacj3v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs language-detection ];
+        meta = {
+          homepage = "https://melpa.org/#/shr-tag-pre-highlight";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shrink-path = callPackage ({ dash
+                               , emacs
+                               , f
+                               , fetchFromGitLab
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "shrink-path";
+        ename = "shrink-path";
+        version = "20170812.1947";
+        src = fetchFromGitLab {
+          owner = "bennya";
+          repo = "shrink-path.el";
+          rev = "a94c80743280fe317cf56cd4d4cd6385ce9e3dfb";
+          sha256 = "1s5ax71qi8pl8jsc49yaqrhfvxmc4z4hjzmy1fhfr1qjmxl5d08i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shrink-path";
+          sha256 = "0fq13c6g7qbq6f2ry9dzdyg1f6p41wimkjcdaj177rnilz77alzb";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/shrink-path";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shrink-whitespace = callPackage ({ fetchFromGitLab
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "shrink-whitespace";
+        ename = "shrink-whitespace";
+        version = "20181002.2021";
+        src = fetchFromGitLab {
+          owner = "jcpetkovich";
+          repo = "shrink-whitespace.el";
+          rev = "0407b89c142bd17e65edb666f35e2c6755bd0867";
+          sha256 = "1qxdi2jm3zl5f55c6irsbnxrmqw039pcm99jafn7hg5z5zc3xhbx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shrink-whitespace";
+          sha256 = "12i6xlcgk27bsdfnlcdjww8vxbx1yilaqa0pkh5n0hxb66zi6x15";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shrink-whitespace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shut-up = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "shut-up";
+        ename = "shut-up";
+        version = "20180628.1130";
+        src = fetchFromGitHub {
+          owner = "cask";
+          repo = "shut-up";
+          rev = "081d6b01e3ba0e60326558e545c4019219e046ce";
+          sha256 = "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shut-up";
+          sha256 = "1bcqrnnafnimfcg1s7vrgq4cb4rxi5sgpd92jj7xywvkalr3kh26";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shut-up";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shx = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "shx";
+        ename = "shx";
+        version = "20181118.1851";
+        src = fetchFromGitHub {
+          owner = "riscy";
+          repo = "shx-for-emacs";
+          rev = "a7d9dda0196423bbb673f9a4d30ac948449758f6";
+          sha256 = "0hf4b9a2azdj2xh7ffwz5j2b4akpxia0237ibk6g2kv902982n4s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shx";
+          sha256 = "0h5ldglx4y85lm0pfilasnch2k82mlr7rb20qvarzwd41hb1az1k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sibilant-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "sibilant-mode";
+        ename = "sibilant-mode";
+        version = "20151119.1345";
+        src = fetchFromGitHub {
+          owner = "jbr";
+          repo = "sibilant-mode";
+          rev = "5baf8c3e80ee0736c7298a2a17fb615ba5ac0d2d";
+          sha256 = "0lpr3pcmwn51wl732kb9a2cagrkxjsgk384z2b7cq9zs79mdh616";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sibilant-mode";
+          sha256 = "0jd6dsk93nvwi5yia3623hfc4v6zz4s2n8m1wx9bw8x6kv3h3qbq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sibilant-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sicp = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "sicp";
+        ename = "sicp";
+        version = "20180823.522";
+        src = fetchFromGitHub {
+          owner = "webframp";
+          repo = "sicp-info";
+          rev = "33acfa10a058aa65b6b22084a5b86a82410d794e";
+          sha256 = "1l8isy8kicr4xa6iilxj0cf0f5rqmkidzr6pigql74204db56jhd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sicp";
+          sha256 = "1q7pbhjk8qgwvj27ianrdbmj98pwf3xv10gmpchh7bypmbyir4wz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sicp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    side-notes = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "side-notes";
+        ename = "side-notes";
+        version = "20180523.2328";
+        src = fetchFromGitHub {
+          owner = "rnkn";
+          repo = "side-notes";
+          rev = "981ac308b9b5d58e2af20485377e693d2a6e15aa";
+          sha256 = "1hjj6pkl83b9fldzf2bixdny85l5mn81a9kf25kyp0cc6apvwsqr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/side-notes";
+          sha256 = "07hrrplgvp3fvl10fsmxifnim8wz34w7fhzzzkxpdj1zlwls6h83";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/side-notes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sift = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "sift";
+        ename = "sift";
+        version = "20160107.215";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "sift.el";
+          rev = "8c3f3d14a351a2394027d72ee0599aa73b9f0d13";
+          sha256 = "1ma6djvhvjai07v1g9a36lfa3nw8zsy6x5vliwcdnkf44gs287ra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sift";
+          sha256 = "1kr5rxza5li3zrkfvs91y7dxmn213z0zf836rkwkmwg2b9rmqxvj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    signal = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "signal";
+        ename = "signal";
+        version = "20160816.738";
+        src = fetchFromGitHub {
+          owner = "mola-T";
+          repo = "signal";
+          rev = "aa58327e2297df921d72a0370468b48663efd438";
+          sha256 = "1gzfdk3ks56h8q4xk69aaxkhkg9jhs55iqdicyvq7x9wmjn6b7xw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/signal";
+          sha256 = "1g8sbszh7cnhpfaql8jn22bsdjdyjdnjb00xr43krr6smc1dr2xq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/signal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    signature = callPackage ({ fetchFromGitLab
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "signature";
+        ename = "signature";
+        version = "20140730.1249";
+        src = fetchFromGitLab {
+          owner = "pidu";
+          repo = "signature";
+          rev = "c47df2e1189a84505f9224aa78e87b6c65d13d37";
+          sha256 = "1g4rr7hpy9r3y4vdpv48xpmy8kqvs4j64kvnhnj2rw2wv1grw78j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/signature";
+          sha256 = "0y5xspcsjap662n1gp882kjripiz90wwbhsq27c0qwl1zcx5rrkj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/signature";
+          license = lib.licenses.free;
+        };
+      }) {};
+    silkworm-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "silkworm-theme";
+        ename = "silkworm-theme";
+        version = "20180301.637";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "silkworm-theme";
+          rev = "4a297f952401cfe894dcb24174f6eda05e00fada";
+          sha256 = "00kjibpn3ry7j1s6kqmakybialpcx4919344lxks7wij5l6qqxx0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/silkworm-theme";
+          sha256 = "1zbrjqmhf80qs3i910sixirrv42rxkqdrg2z03gnz1g885gpcn13";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/silkworm-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simp = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "simp";
+        ename = "simp";
+        version = "20180606.1954";
+        src = fetchFromGitHub {
+          owner = "re5et";
+          repo = "simp";
+          rev = "d4d4b8547055347828bedccbeffdb4fd2d5a5d34";
+          sha256 = "1a60vk46haibzrm6zgssdw085wpssmmqc66bipvkq6xnp2cvchkc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simp";
+          sha256 = "0x4lssjkj3fk9fw603f0sggvcj25iw0zbzsm5c949lhl4a3wvc9c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/simp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simple-bookmarks = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "simple-bookmarks";
+        ename = "simple-bookmarks";
+        version = "20160804.701";
+        src = fetchFromGitHub {
+          owner = "jtkDvlp";
+          repo = "simple-bookmarks";
+          rev = "e89e8163a0705e28e9346320a1ee13c1aae249af";
+          sha256 = "0bx8inaihfs48rzi01nlr3wp2iw0bnk318hhgpd4zg64ap3sgdsv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simple-bookmarks";
+          sha256 = "0jn5wzm9y4054mr9czd3224s5kbrqpcpcfmj6fi62yhy3p1ys9rb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/simple-bookmarks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simple-call-tree = callPackage ({ anaphora
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "simple-call-tree";
+        ename = "simple-call-tree";
+        version = "20180224.1256";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "simple-call-tree";
+          rev = "20059eb5549408def76aeb03d0d20839903dedef";
+          sha256 = "0gvhn2r7h6jz7a3i3a8gwlmghv1xfzj0sdib25kz645iylazji4h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simple-call-tree";
+          sha256 = "1cbv4frsrwd8d3rg8r4sylwnc1hl3hgh595qwbpx0zd3dp5na2yl";
+          name = "recipe";
+        };
+        packageRequires = [ anaphora emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/simple-call-tree";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simple-httpd = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "simple-httpd";
+        ename = "simple-httpd";
+        version = "20180528.903";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacs-web-server";
+          rev = "a5eb49a6567e33586fba15dd649d63ca6e964314";
+          sha256 = "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simple-httpd";
+          sha256 = "1g9m8dx62pql6dqz490pifcli96i5pv6sar18w4lwrfgpfisfz8c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/simple-httpd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simple-mpc = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "simple-mpc";
+        ename = "simple-mpc";
+        version = "20180715.1829";
+        src = fetchFromGitHub {
+          owner = "jorenvo";
+          repo = "simple-mpc";
+          rev = "bee8520e81292b4c7353e45b193f9a13b482f5b2";
+          sha256 = "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simple-mpc";
+          sha256 = "05x2xyys5mf6k7ndh0l6ykyiygaznb4f8bx3npbhvihrsz9ilf8r";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/simple-mpc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simple-paren = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "simple-paren";
+        ename = "simple-paren";
+        version = "20180427.218";
+        src = fetchFromGitHub {
+          owner = "andreas-roehler";
+          repo = "simple-paren";
+          rev = "8d735905306c587851eff1445898499c01c530ca";
+          sha256 = "0fv8s9h9sdiahi49al7zp0ldrlxi0dj46i2il75y7ay70l29wza2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simple-paren";
+          sha256 = "0bmw8pkh9864gymy36r3w5yw08pq894gb1n80wfqls4a78zyvkm3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/simple-paren";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simple-rtm = callPackage ({ dash
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , rtm }:
+      melpaBuild {
+        pname = "simple-rtm";
+        ename = "simple-rtm";
+        version = "20160222.734";
+        src = fetchFromGitLab {
+          owner = "mbunkus";
+          repo = "simple-rtm";
+          rev = "37c5feffea7c9b571279b6f549d06cf9c0720273";
+          sha256 = "0rwvlhwg66ny0rm972wjfz41ck9kqmbax49wkagrkimm1cdrjfia";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simple-rtm";
+          sha256 = "0v5f0vr8sh62yvb7znx00wgybb83dfnkvgl8afyk3ry8n9xkhf5b";
+          name = "recipe";
+        };
+        packageRequires = [ dash rtm ];
+        meta = {
+          homepage = "https://melpa.org/#/simple-rtm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simple-screen = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "simple-screen";
+        ename = "simple-screen";
+        version = "20161009.220";
+        src = fetchFromGitHub {
+          owner = "wachikun";
+          repo = "simple-screen";
+          rev = "596e3a451d9af24730ab31a8fe15c91a4264d09d";
+          sha256 = "0mqlwrkipgf977s0gx57fv5xrqli67hixprvra6q64isapr86yh1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simple-screen";
+          sha256 = "16zvsmqn882w320h26hjjz5lcyl9y0x4amkf2zfps77xxmkmi5n0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/simple-screen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simpleclip = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "simpleclip";
+        ename = "simpleclip";
+        version = "20181105.836";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "simpleclip";
+          rev = "2468b08ad829aaf4a90246541978be3974c60ab8";
+          sha256 = "1pkv4mi0pmi3hwbl3yyzahin5xv4zkd0jw8xh1cdipymndga4iwq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simpleclip";
+          sha256 = "07qkfwlg8vw5kb097qbsv082hxir047q2bcvc8scbak2dr6pl12s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/simpleclip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simplenote = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "simplenote";
+        ename = "simplenote";
+        version = "20141118.640";
+        src = fetchFromGitHub {
+          owner = "dotemacs";
+          repo = "simplenote.el";
+          rev = "734603e877b2d642162ca45f799d2f7b956d2ea0";
+          sha256 = "1cqdnnj8pshcxzwb0vivvk8zywbw7a3vibcs88kd9zxkxmdwg0fz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simplenote";
+          sha256 = "0rnvm3q2spfj15kx2c8ic1p8hxg7rwiqgf3x2zg34j1xxayn3h2j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/simplenote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simplenote2 = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , request-deferred }:
+      melpaBuild {
+        pname = "simplenote2";
+        ename = "simplenote2";
+        version = "20171201.1806";
+        src = fetchFromGitHub {
+          owner = "alpha22jp";
+          repo = "simplenote2.el";
+          rev = "0fd6dbd0566af29964078e4b74baf69c2f52381a";
+          sha256 = "0qlwmxrz2kngri7ywy64bja0najq9m6asq2gr53ns0mkq1ngf0l8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simplenote2";
+          sha256 = "1qdzbwhzmsga65wmrd0mb3rbs71nlyqqb6f4v7kvfxzyis50cswm";
+          name = "recipe";
+        };
+        packageRequires = [ request-deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/simplenote2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simplezen = callPackage ({ dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "simplezen";
+        ename = "simplezen";
+        version = "20130421.300";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "simplezen.el";
+          rev = "9f91554a3f7f4e9b2b5ec009effafbf12b091973";
+          sha256 = "04hg5c7pc7ms8kizjzd8s8a70gpkmazkhp8722fxcl0khbv6r3ix";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simplezen";
+          sha256 = "13f2anhfsxmx1vdd209gxkhpywsi3nn6pazhc6bkswmn27yiig7j";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/simplezen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    skeletor = callPackage ({ cl-lib ? null
+                            , dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , let-alist
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "skeletor";
+        ename = "skeletor";
+        version = "20170616.1746";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "skeletor.el";
+          rev = "01c330ec115fc29bba5d9bdf6c15beb4a44e2281";
+          sha256 = "0i3axni8y4s5n2s7qbqzz3sadcfhr3369q7qn8psk29qbicjw5wv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/skeletor";
+          sha256 = "1vfvg5l12dzksr24dxwc6ngawsqzpxjs97drw48qav9dy1vyl10v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs f let-alist s ];
+        meta = {
+          homepage = "https://melpa.org/#/skeletor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    skewer-less = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , skewer-mode }:
+      melpaBuild {
+        pname = "skewer-less";
+        ename = "skewer-less";
+        version = "20160828.1321";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "skewer-less";
+          rev = "cc1a8e8fe0b62a08da89c4639fb942f5165454b4";
+          sha256 = "0mqrxhy03dwm590shshz63nr2nfn19n6f0p37ybkjwqn0w7b834w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/skewer-less";
+          sha256 = "0fhv5cnp5bgw3krfmb0jl18kw2hzx2p81falj57lg3p8rn23dryl";
+          name = "recipe";
+        };
+        packageRequires = [ skewer-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/skewer-less";
+          license = lib.licenses.free;
+        };
+      }) {};
+    skewer-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , js2-mode
+                               , lib
+                               , melpaBuild
+                               , simple-httpd }:
+      melpaBuild {
+        pname = "skewer-mode";
+        ename = "skewer-mode";
+        version = "20180706.1107";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "skewer-mode";
+          rev = "a381049acc4fa2087615b4b3b26c0865841386bd";
+          sha256 = "12fsp7mwmjxh5mhshriyxw8mlghzn3gfswf6hkz1hcb0yfd56d53";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/skewer-mode";
+          sha256 = "1zp4myi9f7pw6zkgc0xg12585iihn7khcsf20pvqyc0vn4ajdwqm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs js2-mode simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/skewer-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    skewer-reload-stylesheets = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild
+                                             , skewer-mode }:
+      melpaBuild {
+        pname = "skewer-reload-stylesheets";
+        ename = "skewer-reload-stylesheets";
+        version = "20160725.520";
+        src = fetchFromGitHub {
+          owner = "NateEag";
+          repo = "skewer-reload-stylesheets";
+          rev = "3207abca9551660407a6b009cb40fb32bbb550da";
+          sha256 = "0fgxil70yrf6annrbvza4lqaagrn65c7pmayg6pr16hy5w8wcgsk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/skewer-reload-stylesheets";
+          sha256 = "1hcz8q7rs5g7gbj6w72g8prry4niqjmyxvvc0ala83qw76x4cm7k";
+          name = "recipe";
+        };
+        packageRequires = [ skewer-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/skewer-reload-stylesheets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    skype = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "skype";
+        ename = "skype";
+        version = "20160711.124";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-skype";
+          rev = "8e3b33e620ed355522aa36434ff41e3ced080629";
+          sha256 = "078gjgknsrm1n2f0diian9l056kqh1fj2w0y6ildsvzjipygdz1y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/skype";
+          sha256 = "06p5s5agajbm9vg9xxpzv817xmjw2kmcahiw4iypn5yzwhv1aykl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/skype";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sl = callPackage ({ cl-lib ? null
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "sl";
+        ename = "sl";
+        version = "20161217.604";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "sl.el";
+          rev = "0882117728be91276b815e18c2a66106bf9d69d3";
+          sha256 = "1cr3ilf96d8kkyc48nasd4iy2q84kkxjssmvlclanss1hj95nj2l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sl";
+          sha256 = "0h90ajikr6kclsy73vs9f50jg8z3d6kqbpanm9ryh2pw3sd4rnii";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/sl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slack = callPackage ({ alert
+                         , circe
+                         , emojify
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , oauth2
+                         , request
+                         , websocket }:
+      melpaBuild {
+        pname = "slack";
+        ename = "slack";
+        version = "20181112.1936";
+        src = fetchFromGitHub {
+          owner = "yuya373";
+          repo = "emacs-slack";
+          rev = "19af9a367b55ca79377058f4d9b5776dd98a9f99";
+          sha256 = "1js9bzxsnm6vfk4p841j9m5bl3ka1xi5g7nyfvrv6a579idxc6d8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slack";
+          sha256 = "0mybjx08yskk9vi06ayiknl5ddyd8h0mnr8c0a3zr61p1x4s6anp";
+          name = "recipe";
+        };
+        packageRequires = [ alert circe emojify oauth2 request websocket ];
+        meta = {
+          homepage = "https://melpa.org/#/slack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slideview = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "slideview";
+        ename = "slideview";
+        version = "20150324.1540";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-slideview";
+          rev = "b6d170bda139aedf81b47dc55cbd1a3af512fb4c";
+          sha256 = "11p1pghx55a4gcn45cadw7c594134b21cdim723k2h99z14f89az";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slideview";
+          sha256 = "0zr08yrnrz49zds1651ysmgjqgbnhfdcqbg90sbsb086iw89rxl1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/slideview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slim-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "slim-mode";
+        ename = "slim-mode";
+        version = "20170728.648";
+        src = fetchFromGitHub {
+          owner = "slim-template";
+          repo = "emacs-slim";
+          rev = "3636d18ab1c8b316eea71c4732eb44743e2ded87";
+          sha256 = "1sqylm6ipmlh9249mmwfb16b4pv94cvzdwvi3zakdpz713phyjw5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slim-mode";
+          sha256 = "1hip0r22irr9sah3b65ky71ic508bhqvj9hj95a81qvy1zi9rcac";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/slim-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slime = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , macrostep
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "slime";
+        ename = "slime";
+        version = "20181119.941";
+        src = fetchFromGitHub {
+          owner = "slime";
+          repo = "slime";
+          rev = "0a1784dfbc1adeee058c7f44b5c1c0761fb36835";
+          sha256 = "0sz94vccxdzb9nsx0f07nxdzkl2jjzqn80gg95j1qcp3v1qsn353";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slime";
+          sha256 = "04zcvjg0bbx5mdbsk9yn7rlprakl89dq6jmnq5v2g0n6q0mh6ign";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib macrostep ];
+        meta = {
+          homepage = "https://melpa.org/#/slime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slime-company = callPackage ({ company
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , slime }:
+      melpaBuild {
+        pname = "slime-company";
+        ename = "slime-company";
+        version = "20180119.1043";
+        src = fetchFromGitHub {
+          owner = "anwyn";
+          repo = "slime-company";
+          rev = "4c2e2805540dea700130607fa235018a87e4a070";
+          sha256 = "0ihwchp6hc1rxmahrhaly1cnhqs6k6ks32iiywwsyw7fjc34alc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slime-company";
+          sha256 = "195s5fi2dl3h2jyy4d45q22jac35sciz81n13b4lgw94mkxx4rq2";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs slime ];
+        meta = {
+          homepage = "https://melpa.org/#/slime-company";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slime-docker = callPackage ({ cl-lib ? null
+                                , docker-tramp
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , slime }:
+      melpaBuild {
+        pname = "slime-docker";
+        ename = "slime-docker";
+        version = "20181107.756";
+        src = fetchFromGitHub {
+          owner = "daewok";
+          repo = "slime-docker";
+          rev = "83a6ea7e4302e03f894a03f15ae0b68b101023c0";
+          sha256 = "042n7pqy4ig0jk16hmimghky640srdjkk6mrjbw9sccrgnigjn69";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slime-docker";
+          sha256 = "13zkkrpww51ndsblpyz2msiwrjnaz6yrk61jbzrwp0r7a2v0djsa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib docker-tramp emacs slime ];
+        meta = {
+          homepage = "https://melpa.org/#/slime-docker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slime-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "slime-theme";
+        ename = "slime-theme";
+        version = "20170808.622";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-slime-theme";
+          rev = "8e5880ac69e0b6a079103001cc3a90bdb688998f";
+          sha256 = "0g90ypwyvpdzilvhj0rgfrp78a5gflply3rix2wx8rncw569qb6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slime-theme";
+          sha256 = "1b709cplxip48a6qjdnzcn5qcgsy0jq1m05d7vc8p5ywgr1f9a00";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/slime-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slime-volleyball = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "slime-volleyball";
+        ename = "slime-volleyball";
+        version = "20140717.2141";
+        src = fetchFromGitHub {
+          owner = "fitzsim";
+          repo = "slime-volleyball";
+          rev = "159b5c0f40b109e3854e94b89ec5383854c46ae3";
+          sha256 = "00v4mh04affd8kkw4rn51djpyga2rb8f63mgy86napglqnkz40r3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slime-volleyball";
+          sha256 = "1dzvj8z3l5l9ixjl3nc3c7zzi23zc2300r7jzw2l3bvg64cfbdg7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/slime-volleyball";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slirm = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "slirm";
+        ename = "slirm";
+        version = "20160201.625";
+        src = fetchFromGitHub {
+          owner = "fbie";
+          repo = "slirm";
+          rev = "9adfbe1fc67580e7d0d90f7e927a25d63a797464";
+          sha256 = "0srj0zcvzr0sjcs37zz11xz8w0yv94m69av9ny7mx8ssf4qp0pxa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slirm";
+          sha256 = "061xjj3vjdkkvd979fhp7bc12g5zkxqxywvcz3z9dlkgdks41ld7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/slirm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slovak-holidays = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "slovak-holidays";
+        ename = "slovak-holidays";
+        version = "20150418.155";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "slovak-holidays";
+          rev = "effb16dfcd14797bf7448f5113085479db339c02";
+          sha256 = "1y1gay1h91c0690gly4qibx1my0l1zpb6s3x58lks8m21jdwfw28";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slovak-holidays";
+          sha256 = "1dcw8pa3r9b7n7dc8fgzijz7ywwxb3nlfg7n0by8dnvpjq2c30bg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/slovak-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slow-keys = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "slow-keys";
+        ename = "slow-keys";
+        version = "20180830.2159";
+        src = fetchFromGitHub {
+          owner = "manuel-uberti";
+          repo = "slow-keys";
+          rev = "b93ad77f9fc1d14e080d7d64864fc9cb222248b6";
+          sha256 = "1s4yk6w9fqf6hmimjcq8r7b54v7f2hz3isihiaidj3sv5zclhflw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slow-keys";
+          sha256 = "03p0qx8a3g8mapjhdf9pjp3n0ng2pxmizpqn87wk8mbc8cmlwk2w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/slow-keys";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slstats = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "slstats";
+        ename = "slstats";
+        version = "20170823.149";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "slstats.el";
+          rev = "e9696066abf3f2b7b818a57c062530dfd9377033";
+          sha256 = "1mjzr6lqcyx3clp3bxq77k2rpkaglnq407xdk05xkaqissirpc83";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slstats";
+          sha256 = "0z5y2fmb3v16g5gf87c9gll04wbjp3d1cf7gm5cxi4w3y1kw4r7q";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/slstats";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sly = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "sly";
+        ename = "sly";
+        version = "20181116.1331";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "sly";
+          rev = "c338f22cc2b88c05b80b417b8a7a13b3e3346ca9";
+          sha256 = "0pvw2nzdn98mhzi8pl8znx1bk594rpcry8yv9mdpgpf189aj3slb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sly";
+          sha256 = "18as0g1fi1x6lgjzd9rn2s6iw3n00q3nxi99lchjnn004pwsv8kq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sly";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sly-hello-world = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , sly }:
+      melpaBuild {
+        pname = "sly-hello-world";
+        ename = "sly-hello-world";
+        version = "20160119.636";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "sly-hello-world";
+          rev = "1bfcca692b6ec0670ed309ffe29eb9384397c183";
+          sha256 = "1fxsv83fcv5l7cndsysd8salvfwsabvd84sm7zli2ksf678774gp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sly-hello-world";
+          sha256 = "0mry5r0qc2w9k31kifqfc9slmh8mp2pz44qb36f41i3znckf7xy4";
+          name = "recipe";
+        };
+        packageRequires = [ sly ];
+        meta = {
+          homepage = "https://melpa.org/#/sly-hello-world";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sly-macrostep = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , macrostep
+                                 , melpaBuild
+                                 , sly }:
+      melpaBuild {
+        pname = "sly-macrostep";
+        ename = "sly-macrostep";
+        version = "20160119.434";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "sly-macrostep";
+          rev = "b0830871e2bd96ed58876aed6b49f1328d78a3cb";
+          sha256 = "00lw6hkxs71abjyi7nhzi8j6n55jyhzsp81ycn6f2liyp4rmqgi7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sly-macrostep";
+          sha256 = "0gg9r5np2008593n1igq5chda1a3x1iblj0r4mqnnxa0r1hdsw3j";
+          name = "recipe";
+        };
+        packageRequires = [ macrostep sly ];
+        meta = {
+          homepage = "https://melpa.org/#/sly-macrostep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sly-named-readtables = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , sly }:
+      melpaBuild {
+        pname = "sly-named-readtables";
+        ename = "sly-named-readtables";
+        version = "20150817.816";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "sly-named-readtables";
+          rev = "f3c28a2e636bd1776b6c7dbc563ef5080bed9f5c";
+          sha256 = "1yw1fg1vc6l85v7d6bg16lknxpg7ns1gfw0bxyzyb698zmwzsv60";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sly-named-readtables";
+          sha256 = "0wy0z9m8632qlcxb4pw3csc52yaq7dj7gdf3pbg0wb67f32ihihz";
+          name = "recipe";
+        };
+        packageRequires = [ sly ];
+        meta = {
+          homepage = "https://melpa.org/#/sly-named-readtables";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sly-quicklisp = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , sly }:
+      melpaBuild {
+        pname = "sly-quicklisp";
+        ename = "sly-quicklisp";
+        version = "20170112.135";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "sly-quicklisp";
+          rev = "8a9e3c0c07c6861ec33b338cc46ac12e7ce6a477";
+          sha256 = "17xx79s2nx8prmg0xhfs9i8sdprbysaajc8k4131lnahj65v159l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sly-quicklisp";
+          sha256 = "0j0qkvs2v563dz2rd70dfmd0qpdwicymx59zv3gn57z5a8m14866";
+          name = "recipe";
+        };
+        packageRequires = [ sly ];
+        meta = {
+          homepage = "https://melpa.org/#/sly-quicklisp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sly-repl-ansi-color = callPackage ({ cl-lib ? null
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , sly }:
+      melpaBuild {
+        pname = "sly-repl-ansi-color";
+        ename = "sly-repl-ansi-color";
+        version = "20171020.816";
+        src = fetchFromGitHub {
+          owner = "PuercoPop";
+          repo = "sly-repl-ansi-color";
+          rev = "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048";
+          sha256 = "0fgcn6bwgz8yyjza07kfi86siargvpq4kp4j20hs6b67ckxjxx0x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sly-repl-ansi-color";
+          sha256 = "0wz24kfjl6rp4qss0iq2ilav0mkg2spy2ziikypy7v0iqbssmssi";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib sly ];
+        meta = {
+          homepage = "https://melpa.org/#/sly-repl-ansi-color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-backspace = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "smart-backspace";
+        ename = "smart-backspace";
+        version = "20171013.2226";
+        src = fetchFromGitHub {
+          owner = "itome";
+          repo = "smart-backspace";
+          rev = "acb390628a181a993aa0d137624f2e5283efa6d9";
+          sha256 = "08r2821skwvi9gbkj3l8zzvrizbfs3wapzxppgd0ks2mfhcnsqsl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-backspace";
+          sha256 = "152xdxzrr91qiyq25ghvjlbpc627cw4s120axmz2p2d48pinwir9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-backspace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-comment = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "smart-comment";
+        ename = "smart-comment";
+        version = "20160322.1139";
+        src = fetchFromGitHub {
+          owner = "paldepind";
+          repo = "smart-comment";
+          rev = "ad4e0de29115dc010733b9060d3dab02836b15e1";
+          sha256 = "0hg0mabh06ggqcfhcjxbw5hsbrk85bk21hafqlvpd0xizwqq0w0a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-comment";
+          sha256 = "0lbrasdrkyj7zybz0f3xick8p0bvci5bhb2kg6pqzz9pw2iaxw12";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-comment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-compile = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "smart-compile";
+        ename = "smart-compile";
+        version = "20180315.2030";
+        src = fetchFromGitHub {
+          owner = "zenitani";
+          repo = "elisp";
+          rev = "16ebc3c570f1949b8198fcc8663d6d26df32717a";
+          sha256 = "0i5g7inbr90l3n1rsf4152ax4wkbw2q41ks9j3x6a956zxn8q92w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-compile";
+          sha256 = "1w3vyb6wz786ydrywkjmazyvgfl0qxamn0fgnqpn17d2c5jr9c4g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-compile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-cursor-color = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "smart-cursor-color";
+        ename = "smart-cursor-color";
+        version = "20141124.919";
+        src = fetchFromGitHub {
+          owner = "7696122";
+          repo = "smart-cursor-color";
+          rev = "fda3510b23a118f152ece09af88c727065ba016a";
+          sha256 = "0f6f7vw6kcifl4f9mwxrb6h90r6vmrcf0ayk37g3ymz6k5blj3q4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-cursor-color";
+          sha256 = "19ah55514ashkm4f49nlbnrpwxpwlfn6x3fbi4dv0x2b8v1828ss";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-cursor-color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-dash = callPackage ({ fetchhg
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "smart-dash";
+        ename = "smart-dash";
+        version = "20110130.1916";
+        src = fetchhg {
+          url = "https://bitbucket.com/malsyned/smart-dash";
+          rev = "f8f23121ecb1";
+          sha256 = "069jwi74qh9hy152k19c7avdgb89zym989v92kgghbaaiyinng22";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-dash";
+          sha256 = "1n3lh0ximwrqawdg8q9ls6aabidrawqca5w67f8vsfmrvyfx48n4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-dash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-forward = callPackage ({ expand-region
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "smart-forward";
+        ename = "smart-forward";
+        version = "20140430.13";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "smart-forward.el";
+          rev = "7b6dbfdbd4b646376a567c70e1a161545431b72b";
+          sha256 = "19l47xqzjhhm9j3izik0imssip5ygg3lnflb9ixsz1js571aaxha";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-forward";
+          sha256 = "032yc45c19fl886jmi5q04r6q47xz5rphb040wjvpd4fnb06hr8c";
+          name = "recipe";
+        };
+        packageRequires = [ expand-region ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-forward";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-hungry-delete = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "smart-hungry-delete";
+        ename = "smart-hungry-delete";
+        version = "20170412.643";
+        src = fetchFromGitHub {
+          owner = "hrehfeld";
+          repo = "emacs-smart-hungry-delete";
+          rev = "bae1bdf9647dfe0f92cb138fbadf7ee0f842453d";
+          sha256 = "120sg7wfq3nly0qwbchhmwjrg8cdra0g3y08fk5zfngc3ddh3gk7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-hungry-delete";
+          sha256 = "03hw5p055dbayw5z43c1ippf2lnjgs77l7q969ng3fffqkazjq9b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-hungry-delete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-indent-rigidly = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "smart-indent-rigidly";
+        ename = "smart-indent-rigidly";
+        version = "20141205.1615";
+        src = fetchFromGitHub {
+          owner = "re5et";
+          repo = "smart-indent-rigidly";
+          rev = "323d1fe4d0b81e598249aad01bc44adb180ece0e";
+          sha256 = "0q5hxg265ad9gpclv2kzikg6jvbf3zzb1mrykxn0n7mnvdfdlhsi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-indent-rigidly";
+          sha256 = "12qggg1m28mlvkdn52dig8bwv58pvipkvn1mlc4r7w569arar44x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-indent-rigidly";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-jump = callPackage ({ dumb-jump
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "smart-jump";
+        ename = "smart-jump";
+        version = "20181103.1527";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "smart-jump";
+          rev = "aa963735196b7f64fb286163cd5c3e4d435814e5";
+          sha256 = "0nfqa9ziccf30fiy813qps34zn41a4am7d0v835c55hgdx97vgij";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-jump";
+          sha256 = "14c7p6xqasd0fgn70zj1jlpwjxldzqx44bcdqdk6nmjihw0rk632";
+          name = "recipe";
+        };
+        packageRequires = [ dumb-jump emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-jump";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-mark = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "smart-mark";
+        ename = "smart-mark";
+        version = "20150911.1910";
+        src = fetchFromGitHub {
+          owner = "zhangkaiyulw";
+          repo = "smart-mark";
+          rev = "d179cdc3f53001a5ce99d5095f493cdf3a792567";
+          sha256 = "0kd3rh6idlaqand9i6sc44s1iahg5jdhqs9jpvivxlycj6z9p7m8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-mark";
+          sha256 = "0kx34983qqxkx2afql1daj155294dkbinw861lhx537614fq7wmn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-mark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-mode-line = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , rich-minority }:
+      melpaBuild {
+        pname = "smart-mode-line";
+        ename = "smart-mode-line";
+        version = "20180926.336";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "smart-mode-line";
+          rev = "b79f4fa5f2380b0d726a895dd7199e5483004490";
+          sha256 = "1n24g265slp655h5wn32ghcv1khn1dnf1l96c65mc6fd4csmzhd1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-mode-line";
+          sha256 = "0qmhzlkc6mfqyaw4jaw6195b8sw0wg9pfjcijb4p0mlywf5mh5q6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs rich-minority ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-mode-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-mode-line-atom-one-dark-theme = callPackage ({ emacs
+                                                       , fetchFromGitHub
+                                                       , fetchurl
+                                                       , lib
+                                                       , melpaBuild
+                                                       , smart-mode-line }:
+      melpaBuild {
+        pname = "smart-mode-line-atom-one-dark-theme";
+        ename = "smart-mode-line-atom-one-dark-theme";
+        version = "20180915.635";
+        src = fetchFromGitHub {
+          owner = "daviderestivo";
+          repo = "smart-mode-line-atom-one-dark-theme";
+          rev = "57026628a5c6a9eb620364dd784b90ae3aa26988";
+          sha256 = "1y7zb1vdgck401wximjjc518r2ca2cdskzzwz03yzs5iyfgzf9xh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-mode-line-atom-one-dark-theme";
+          sha256 = "02hasm2vjvw3r9xkdnn2ddsval8vvhvx15dsac0jp3cc1y1qkm27";
+          name = "recipe";
+        };
+        packageRequires = [ emacs smart-mode-line ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-mode-line-atom-one-dark-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-mode-line-powerline-theme = callPackage ({ emacs
+                                                   , fetchFromGitHub
+                                                   , fetchurl
+                                                   , lib
+                                                   , melpaBuild
+                                                   , powerline
+                                                   , smart-mode-line }:
+      melpaBuild {
+        pname = "smart-mode-line-powerline-theme";
+        ename = "smart-mode-line-powerline-theme";
+        version = "20160705.1738";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "smart-mode-line";
+          rev = "558251e200cc555df137e60326295f2bd640fd6a";
+          sha256 = "1xh1qcxw0r3j8hx8k8hsx0cl82wps5x755j4kbn01m7srzv6v167";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-mode-line-powerline-theme";
+          sha256 = "0hv3mx39m3l35xhz351zp98321ilr6qq9wzwn1f0ziiv814khcn4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs powerline smart-mode-line ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-mode-line-powerline-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-newline = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "smart-newline";
+        ename = "smart-newline";
+        version = "20131207.1940";
+        src = fetchFromGitHub {
+          owner = "ainame";
+          repo = "smart-newline.el";
+          rev = "c50ab035839b307c66d439083b6761cb7db5e972";
+          sha256 = "1k853hngjrhp7n1bj18p2pk30adzk7j03knhl9i3889lfmd5p4yi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-newline";
+          sha256 = "1kyk865vkgh05vzlggs3ii81v86fcbcxybfkv5rkyl3fyqpkza1w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-newline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-region = callPackage ({ cl-lib ? null
+                                , emacs
+                                , expand-region
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , multiple-cursors }:
+      melpaBuild {
+        pname = "smart-region";
+        ename = "smart-region";
+        version = "20150903.703";
+        src = fetchFromGitHub {
+          owner = "uk-ar";
+          repo = "smart-region";
+          rev = "5a8017fd8e8dc3483865951c4942cab3f96f69f6";
+          sha256 = "0h559cdyln5f4ignx1r86ryi7wizys0gj03dj7lfzaxr7wkd0jaf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-region";
+          sha256 = "1bcvxf62bfi5lmhprma9rh670kka9p9ygbkgmv6dg6ajjfsplgwc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs expand-region multiple-cursors ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-semicolon = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "smart-semicolon";
+        ename = "smart-semicolon";
+        version = "20171007.1833";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "smart-semicolon";
+          rev = "94cf665aed45c5882e94afe465704fed6326e92e";
+          sha256 = "16nkxf8phxi240fd9ksazxmjs91j0xplny6890a06kx4r8s61p9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-semicolon";
+          sha256 = "1vq6l3vc615w0p640wy226z5i7dky666sgzczkngv07kag0iwqp0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-semicolon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-shift = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "smart-shift";
+        ename = "smart-shift";
+        version = "20150202.2325";
+        src = fetchFromGitHub {
+          owner = "hbin";
+          repo = "smart-shift";
+          rev = "a26ab2b240137e62ec4bce1698ed9c5f7b6d13ae";
+          sha256 = "0azhfffm1bkgjx4i3p9f6x2gmw8kc3fafzqj4vxxdibhn0nizqk8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-shift";
+          sha256 = "0azahlflnh6sk081k5dcqal6nmwkjnj4dq8pv8ckwf8684zp23d3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-shift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-tab = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "smart-tab";
+        ename = "smart-tab";
+        version = "20170902.1407";
+        src = fetchFromGitHub {
+          owner = "genehack";
+          repo = "smart-tab";
+          rev = "76a8ec13384975d39aa1b25e5384a02558dba574";
+          sha256 = "02mj2is05adq5v64aahivbkx2kzrxmmg2va650hsvl4izj3dr2x3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-tab";
+          sha256 = "0qi8jph2c9fdsv2mqgxd7wb3q4dax3g5x2hc53kbgkjxylagjvp5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-tab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-tabs-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "smart-tabs-mode";
+        ename = "smart-tabs-mode";
+        version = "20160629.752";
+        src = fetchFromGitHub {
+          owner = "jcsalomon";
+          repo = "smarttabs";
+          rev = "1b2f34cc33335486f2b08b864a8037092c1a2956";
+          sha256 = "07zc2iw5ijyn822z29g5xb6hhhdmg9b98pfrdwrm0kw86pypxyxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-tabs-mode";
+          sha256 = "1fmbi0ypzhsizzb1vm92hfaq23swiyiqvg0pmibavzqyc9lczhhl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-tabs-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-window = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "smart-window";
+        ename = "smart-window";
+        version = "20160716.1830";
+        src = fetchFromGitHub {
+          owner = "dryman";
+          repo = "smart-window.el";
+          rev = "5996461b7cbc5ab4509ac48537916eb29a8e4c16";
+          sha256 = "0p1cqpdsp2vdx85i22shyzfhz22zwf1k1dxkqcmlgh3y7f4qq8ir";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-window";
+          sha256 = "0w24v7v0477yl5zchyk6713yqp8lyfz600myvv4dp3kgppxpgd3f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smartparens = callPackage ({ cl-lib ? null
+                               , dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "smartparens";
+        ename = "smartparens";
+        version = "20181028.305";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "smartparens";
+          rev = "d65f3c0f47413c1a67ced979dc2062a073d907af";
+          sha256 = "1i6nhgag8aakk7j4qys9axizqmjq7d20yp3xkkr0049xizfmwwg2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smartparens";
+          sha256 = "025nfrfw0992024i219jzm4phwf29smc5hib45s6h1s67942mqh6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/smartparens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smartrep = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "smartrep";
+        ename = "smartrep";
+        version = "20150508.1930";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "smartrep.el";
+          rev = "f0ff5a6d7b8603603598ae3045c98b011e58d86e";
+          sha256 = "1sjwqi8w83qxihqmcm7z0vwmrz1az0y266qgj2nwfv39bri6y4i6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smartrep";
+          sha256 = "1ypls52d51lcqhz737rqg73c6jwl6q8b3bwb29z51swyamf37rbn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smartrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smartscan = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "smartscan";
+        ename = "smartscan";
+        version = "20170211.1233";
+        src = fetchFromGitHub {
+          owner = "mickeynp";
+          repo = "smart-scan";
+          rev = "234e077145710a174c20742de792b97ed2f965f6";
+          sha256 = "1nzkgfr1w30yi88h4kwgiwq4lcd0fpm1cd50gy0csjcpbnyq6ykf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smartscan";
+          sha256 = "1q0lqms16g7avln1pbxzb49z3w96kv1r7lbh61ijlnz3jips098w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smartscan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smarty-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "smarty-mode";
+        ename = "smarty-mode";
+        version = "20100703.458";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "smarty-mode";
+          rev = "3dfdfe1571f5e9ef55a29c51e5a80046d4cb7568";
+          sha256 = "1vl3nx0y2skb8sibqxvmc3wrmmd6z88hknbry348d0ik3cbr0ijx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smarty-mode";
+          sha256 = "06cyr2330asy2dlx81g3h9gq0yhd4pbnmzfvmla7amh4pfnjg14v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smarty-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smbc = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "smbc";
+        ename = "smbc";
+        version = "20171229.1008";
+        src = fetchFromGitHub {
+          owner = "sakshamsharma";
+          repo = "emacs-smbc";
+          rev = "10538e3d575ba6ef3c94d555af2744b42dfd36c7";
+          sha256 = "0b2fndvp9kzlr65b0gr0z5hmapa4y96a6zvc2nrlijffkgyk05nn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smbc";
+          sha256 = "0aviqa8mk8dxxnddfskq9jgz3knqhf0frj7gq7nk6ckxkrxrgqn4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smbc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smblog = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "smblog";
+        ename = "smblog";
+        version = "20170419.321";
+        src = fetchFromGitHub {
+          owner = "aaptel";
+          repo = "smblog-mode";
+          rev = "5245e7aeac20915121946f59bba30899305d950b";
+          sha256 = "0i5q29b3hk644dnc0d98d613l065p0k846ljg13vgawpiic6ld6b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smblog";
+          sha256 = "1byalkpc1bcb6p4j4g1cwc4q2i7irxjcphb0hqh1b2k1zixrw5rr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/smblog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smeargle = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "smeargle";
+        ename = "smeargle";
+        version = "20161212.1558";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-smeargle";
+          rev = "0665b1ff5109731898bc4a0ca6d939933b804777";
+          sha256 = "0p0kxmjdr02l9injlyyrnnzqdbb7mirz1xx79c3lw1rgpalf0jnf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smeargle";
+          sha256 = "1dy87ah1w21csvrkq5icnx7g7g7nxqkcyggxyazqwwxvh2silibd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/smeargle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smex = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "smex";
+        ename = "smex";
+        version = "20151212.1409";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "smex";
+          rev = "55aaebe3d793c2c990b39a302eb26c184281c42c";
+          sha256 = "0xrbkpc3w7yadpjih169cpp75gilsnx4y9akgci5vfcggv4ffm26";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smex";
+          sha256 = "1rwyi7gdzswafkwpfqd6zkxka1mrf4xz17kld95d2ram6cxl6zda";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/smex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smiles-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "smiles-mode";
+        ename = "smiles-mode";
+        version = "20160717.420";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "smiles-mode";
+          rev = "fbb381758adcb000a0c304be1b797f985f00e2de";
+          sha256 = "07lzr1p58v95a4n6zad8y0dpj7chbxlcmb6s144pvcxx8kjwd4dr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smiles-mode";
+          sha256 = "0wf02aj9bhl2m861342f5jfkx3xws1ggcyszfp9jphlykw6r0v9k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smiles-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sml-modeline = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "sml-modeline";
+        ename = "sml-modeline";
+        version = "20170614.1411";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "sml-modeline";
+          rev = "d2f9f70174c4cf68c67eb3bb8088235735e34d9a";
+          sha256 = "18k2k213vgawxskp9m57r8qarg3pnza6nvbpyi6l03jnmf2kcw2b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sml-modeline";
+          sha256 = "00kz03ixkfnm4id8dd8aij2rhakzd4arzd790jdac1y3yyd5pp3y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sml-modeline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smmry = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "smmry";
+        ename = "smmry";
+        version = "20161024.201";
+        src = fetchFromGitHub {
+          owner = "microamp";
+          repo = "smmry.el";
+          rev = "b7ee765337fa627a6c59eb4f2a91df5d280ac6df";
+          sha256 = "0hzs8xi7n3bsqwm3nlm3vk8p2p33ydwxpwk9wp3325g03jl921in";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smmry";
+          sha256 = "05ikcvyr74jy3digd0ad443h5kf11w29hgnmb71bclm3mfslh5wn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smmry";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smooth-scroll = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "smooth-scroll";
+        ename = "smooth-scroll";
+        version = "20130321.2114";
+        src = fetchFromGitHub {
+          owner = "k-talo";
+          repo = "smooth-scroll.el";
+          rev = "02320f28abb5cae28b3a18f6b9ce93129bdbfc45";
+          sha256 = "1kkg7qhb2lmwr4siiazqny9w2z9nk799lzl5i159lfivlxcgixmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smooth-scroll";
+          sha256 = "1b0mjpd4dqgk7ij37145ry2jqbn1msf8rrvymn7zyckbccg83zsf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smooth-scroll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smooth-scrolling = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "smooth-scrolling";
+        ename = "smooth-scrolling";
+        version = "20161002.1249";
+        src = fetchFromGitHub {
+          owner = "aspiers";
+          repo = "smooth-scrolling";
+          rev = "2462c13640aa4c75ab3ddad443fedc29acf68f84";
+          sha256 = "1h15gjq781i6fsz32qlh51knawdr8hcqvshsz6cszp752cibdcdg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smooth-scrolling";
+          sha256 = "0zy2xsmr05l2narslfgril36d7qfb55f52qm2ki6fy1r18lfiyc6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smooth-scrolling";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smotitah = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "smotitah";
+        ename = "smotitah";
+        version = "20150218.230";
+        src = fetchFromGitHub {
+          owner = "laynor";
+          repo = "smotitah";
+          rev = "f9ab562128a5460549d016913533778e8c94bcf3";
+          sha256 = "1a097f1x9l0m4dizvnb742svlqsm6hlif73rk7qjar081sk1gjxx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smotitah";
+          sha256 = "1m5qjl3r96riljp48il8k4rb6rwys1xf1pl93d4qjhprwvz57mv2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smotitah";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smtpmail-multi = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "smtpmail-multi";
+        ename = "smtpmail-multi";
+        version = "20160218.1549";
+        src = fetchFromGitHub {
+          owner = "vapniks";
+          repo = "smtpmail-multi";
+          rev = "81eabfe56f620ee044ff9dd52fa8b6148d0a9f30";
+          sha256 = "0zknryfpg4791l7d7xv9hn2fx00rmbqw3737lfm75484hr10lymz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smtpmail-multi";
+          sha256 = "0nc3k8ly4nx7fm3b2apga3p4svz5c9sldnlk86pz2lzra5h3b4ss";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smtpmail-multi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smyx-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "smyx-theme";
+        ename = "smyx-theme";
+        version = "20141127.28";
+        src = fetchFromGitHub {
+          owner = "tacit7";
+          repo = "smyx";
+          rev = "6263f6b401bbabaed388c8efcfc0be2e58c51401";
+          sha256 = "1z2sdnf11wh5hz1rkrbg7fs4ha3zrbj9qnvfzq9005y89d7cs95x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smyx-theme";
+          sha256 = "1r85yxr864df5akqknl3hsrmzikr4085bqr6ijrbdj27nz00vl61";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smyx-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snakemake-mode = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , magit-popup
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "snakemake-mode";
+        ename = "snakemake-mode";
+        version = "20181007.1950";
+        src = fetchFromGitHub {
+          owner = "kyleam";
+          repo = "snakemake-mode";
+          rev = "0cadd2bbd20aae1555561e81ed72fec43ec7296e";
+          sha256 = "1i4cwdyhfyawfx07i63iqdx524mlphgbrl44wqqnnxrbdqm0h534";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snakemake-mode";
+          sha256 = "1xxd3dms5vgvpn18a70wjprka5xvri2pj9cw8qz09s640f5jf3r4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/snakemake-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snapshot-timemachine = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "snapshot-timemachine";
+        ename = "snapshot-timemachine";
+        version = "20161221.129";
+        src = fetchFromGitHub {
+          owner = "mrBliss";
+          repo = "snapshot-timemachine";
+          rev = "99efcebab309b11ed512a8dc62555d3834df5efb";
+          sha256 = "18qibcyqxjwpvphmpghppb8ky1xcch1dd4pz91qj5f4h42684ips";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snapshot-timemachine";
+          sha256 = "0pvh1ilzv0ambc5cridyhjcxs58wq92bxjkisqv42yar3h3z6f8p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/snapshot-timemachine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snapshot-timemachine-rsnapshot = callPackage ({ fetchFromGitHub
+                                                  , fetchurl
+                                                  , lib
+                                                  , melpaBuild
+                                                  , seq
+                                                  , snapshot-timemachine }:
+      melpaBuild {
+        pname = "snapshot-timemachine-rsnapshot";
+        ename = "snapshot-timemachine-rsnapshot";
+        version = "20170324.513";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "snapshot-timemachine-rsnapshot";
+          rev = "72b0b700d80f1a0442e62bbbb6a0c8c59182f97f";
+          sha256 = "1bdy7p0bjfdlv6l6yih6fvvi7xpldal4rj8l2ajpc6sgby24h8bb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snapshot-timemachine-rsnapshot";
+          sha256 = "0fxijd94p961ab0p4ddmhja4bfrif2d87v32g4c41amc1klyf25r";
+          name = "recipe";
+        };
+        packageRequires = [ seq snapshot-timemachine ];
+        meta = {
+          homepage = "https://melpa.org/#/snapshot-timemachine-rsnapshot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snazzy-theme = callPackage ({ base16-theme
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "snazzy-theme";
+        ename = "snazzy-theme";
+        version = "20170823.1132";
+        src = fetchFromGitHub {
+          owner = "weijiangan";
+          repo = "emacs-snazzy";
+          rev = "8729d10b5c1edf1053800170dab1ffd820b6fff2";
+          sha256 = "1c07yggr6cnbca2iag1rjjsp1hiaccix222wzybxrphb72fn93wq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snazzy-theme";
+          sha256 = "0srmhwhqrp1s01p1znhjzs254l3r2i6c91v7cnlwlvrls1sbh32k";
+          name = "recipe";
+        };
+        packageRequires = [ base16-theme emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/snazzy-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snippet = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "snippet";
+        ename = "snippet";
+        version = "20130210.1515";
+        src = fetchFromGitHub {
+          owner = "pkazmier";
+          repo = "snippet.el";
+          rev = "11d00dd803874b93836f2010b08bd2c97b0f3c63";
+          sha256 = "1nyrfbjrg74wrqlh8229rf7ym07k2a0wscjm0kbg3sam9ryc546y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snippet";
+          sha256 = "1yld7y1hsrqs0f0iq7zfwknil5zqv65npm67nh548hbyy3rhgd68";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/snippet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snoopy = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "snoopy";
+        ename = "snoopy";
+        version = "20171008.1304";
+        src = fetchFromGitHub {
+          owner = "anmonteiro";
+          repo = "snoopy-mode";
+          rev = "ec4123bdebfe0bb7bf4feaac2dc02b59caffe386";
+          sha256 = "01l44lshw0zvykay9886s1vqryanagkd4ciw3ramchn0baqz11vl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snoopy";
+          sha256 = "1wa8jykqyj6rxqfhwbiyli6yh8s7n0pqv7fc9sfaymarda93zbgi";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/snoopy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    socyl = callPackage ({ cl-lib ? null
+                         , dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pkg-info
+                         , s }:
+      melpaBuild {
+        pname = "socyl";
+        ename = "socyl";
+        version = "20170211.2242";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "socyl";
+          rev = "1ef2da42f66f3ab31a34131e51648f352416f0ba";
+          sha256 = "0jks5dkxhhgh4gbli90p71s8354iywlwj2lq6n5fyqxbdxzk412d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/socyl";
+          sha256 = "00b7x247cyjh4gci101fq1j6708vbcz1g9ls3845w863wjf6m5sz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash pkg-info s ];
+        meta = {
+          homepage = "https://melpa.org/#/socyl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    soft-charcoal-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "soft-charcoal-theme";
+        ename = "soft-charcoal-theme";
+        version = "20140420.943";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "soft-charcoal-theme";
+          rev = "5607ab977fae6638e78b1495e02da8955c9ba19f";
+          sha256 = "07056pnjgsgw06c67776qp7jci96iqbzlprbavzz2l1j8ywz8cwm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/soft-charcoal-theme";
+          sha256 = "1j9yd4kfh7ih5ipmwvxh9qqq6wxv6qk8a9vb5jiyk90dn8a2d7g5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/soft-charcoal-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    soft-morning-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "soft-morning-theme";
+        ename = "soft-morning-theme";
+        version = "20150918.1341";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "soft-morning-theme";
+          rev = "c0f9c70c97ef2be2a093cf839c4bfe27740a111c";
+          sha256 = "06q82v1hndvznsqg0r6jrxvgxhycg9m65kay4db4yy0gmc66v2xf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/soft-morning-theme";
+          sha256 = "0lzg478ax6idzh6m5sf2ds4gbv096y0c0gn15dai19f58bs63xzr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/soft-morning-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    soft-stone-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "soft-stone-theme";
+        ename = "soft-stone-theme";
+        version = "20140614.135";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "soft-stone-theme";
+          rev = "fb475514cfb02cf30ce358a61c48e46614344d48";
+          sha256 = "030mf8b0sf9mmzwhg85zh0ccvcg768kckwvbm0yzg7vmq1x46hjl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/soft-stone-theme";
+          sha256 = "05jjw9z6hqln9yj8ya2xrmjnylp7psfdj9206n30m3lwnlwx399v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/soft-stone-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    solaire-mode = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "solaire-mode";
+        ename = "solaire-mode";
+        version = "20180521.235";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-solaire-mode";
+          rev = "abf2ce4da77d0877efb4a035687390ce921eda4f";
+          sha256 = "15wszz841vd9i59gq2xxh8rk7bh7agwglh2dwhxgs70m24hsp3p4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/solaire-mode";
+          sha256 = "0pvgip12xl16rwz4wqmqjd8nhh3a299aknfsghazmxigamlmlsl5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/solaire-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    solarized-theme = callPackage ({ cl-lib ? null
+                                   , dash
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "solarized-theme";
+        ename = "solarized-theme";
+        version = "20181030.1212";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "solarized-emacs";
+          rev = "87d4758e7ecc8ed873f3326e4f8b185fd2b9da0a";
+          sha256 = "004ivjg6hknx13cay7prj7yk6nnmyp6kk278lwc62d0z78a87821";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/solarized-theme";
+          sha256 = "15d8k32sj8i11806byvf7r57rivz391ljr0zb4dx8n8vjjkyja12";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/solarized-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    solidity-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "solidity-mode";
+        ename = "solidity-mode";
+        version = "20181117.718";
+        src = fetchFromGitHub {
+          owner = "ethereum";
+          repo = "emacs-solidity";
+          rev = "d6c48a1cb64d3c8a825dc0d06c839f2cacd4d289";
+          sha256 = "14v71xf3z60s1fhpsz8b3l1v4na2ds0ddcp41y412fnrg4scbrhr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/solidity-mode";
+          sha256 = "0bnpak4n3324igln2cp9gz820zkpjyw3q2k42dm7mx6n5bv2pjj6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/solidity-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sonic-pi = callPackage ({ cl-lib ? null
+                            , dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , highlight
+                            , lib
+                            , melpaBuild
+                            , osc }:
+      melpaBuild {
+        pname = "sonic-pi";
+        ename = "sonic-pi";
+        version = "20171205.405";
+        src = fetchFromGitHub {
+          owner = "repl-electric";
+          repo = "sonic-pi.el";
+          rev = "3cf101b3b299735ed91658c7791ea4f04164e076";
+          sha256 = "1x2w7qcx9xcvagb47hlc5vsf5aj5mr0mzvnazyd7ajjilbzn48yr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sonic-pi";
+          sha256 = "0j6n1qgdrma6vvi6f7xiy66qwsl8710pca4ga9i7srhxv0r47x68";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs highlight osc ];
+        meta = {
+          homepage = "https://melpa.org/#/sonic-pi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    soothe-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "soothe-theme";
+        ename = "soothe-theme";
+        version = "20141027.741";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-soothe-theme";
+          rev = "0568a61eeec0b074d8911886359a6c5da13d14cb";
+          sha256 = "089ph9c6ggpfcd06166s2qgsghlfw5kvkbn8mqq6hjlyc5a9mvns";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/soothe-theme";
+          sha256 = "124akv3a4q4vrmprdcjmq7rq6x73mz4wqxvnlczglh9vjl39ndbk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/soothe-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sort-words = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "sort-words";
+        ename = "sort-words";
+        version = "20160929.635";
+        src = fetchFromGitHub {
+          owner = "dotemacs";
+          repo = "sort-words.el";
+          rev = "7b6e108f80237363faf7ec28b2c58dec270b8601";
+          sha256 = "18cwii9h2planb9bgrih4hkz2cqinbl8wq5sal4b8kwnaq07bbw7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sort-words";
+          sha256 = "1hvbq09byjdbqzbyashw3y1h65wins44jnqcdic7vqzd1p1mzwka";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sort-words";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sos = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , org }:
+      melpaBuild {
+        pname = "sos";
+        ename = "sos";
+        version = "20141214.2003";
+        src = fetchFromGitHub {
+          owner = "rudolfolah";
+          repo = "emacs-sos";
+          rev = "2469bf1d7c47a55b0ffa8a6ceef0bb21252b3c3a";
+          sha256 = "0zhz1j389jmfcxmzvp3gj2bkg996nk1mcf0sxw04wbyivh38hnql";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sos";
+          sha256 = "0d0n2h7lbif32qgz0z2c36536mrx36d22gq86xm7kmxday6iy19k";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/sos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sotclojure = callPackage ({ cider
+                              , clojure-mode
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , sotlisp }:
+      melpaBuild {
+        pname = "sotclojure";
+        ename = "sotclojure";
+        version = "20170921.1708";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "speed-of-thought-clojure";
+          rev = "ceac82aa691e8d98946471be6aaff9c9a4603c32";
+          sha256 = "1a6riq7ksk5m76dsgc75d8b992nyr50l48l8cpms9064m6b0r9jv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sotclojure";
+          sha256 = "12byqjzg0pffqyq958265qq8yxxmf3iyy4m7zib492qcj8ccy090";
+          name = "recipe";
+        };
+        packageRequires = [ cider clojure-mode emacs sotlisp ];
+        meta = {
+          homepage = "https://melpa.org/#/sotclojure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sotlisp = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "sotlisp";
+        ename = "sotlisp";
+        version = "20180706.1049";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "speed-of-thought-lisp";
+          rev = "cc5730c0803a6e0f18e22d6027784b915d304318";
+          sha256 = "1s1l2lscjnv8f60ncynv82xrqg5npj1m77z28fxlx53calj6k0qk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sotlisp";
+          sha256 = "0zjnn6hhwy6cjvc5rhvhxcq5pmrhcyil14a48fcgwvg4lv7fbljk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sotlisp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sound-wav = callPackage ({ cl-lib ? null
+                             , deferred
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sound-wav";
+        ename = "sound-wav";
+        version = "20160725.724";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-sound-wav";
+          rev = "406868043761524118c27b1207be0f8bbda8798e";
+          sha256 = "1vwszcxknkjq4q32vb4dab4rlyd7w0l3pl5rpl08haczmr2frl4d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sound-wav";
+          sha256 = "1vrwzk6zqma7r0w5ivbx16shys6hsifj52fwlf5rxs6jg1gqdb4f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/sound-wav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    soundcloud = callPackage ({ deferred
+                              , emms
+                              , fetchFromGitHub
+                              , fetchurl
+                              , json ? null
+                              , lib
+                              , melpaBuild
+                              , request
+                              , request-deferred
+                              , string-utils }:
+      melpaBuild {
+        pname = "soundcloud";
+        ename = "soundcloud";
+        version = "20150501.2026";
+        src = fetchFromGitHub {
+          owner = "thieman";
+          repo = "soundcloud.el";
+          rev = "f998d4276ea90258909c698f6a5a51fccb667c08";
+          sha256 = "1m8wcm6y80gq5rrm4brd3f20kmk54s6ph26j4lz4cmilxk6gj56v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/soundcloud";
+          sha256 = "06cbr1h03k5ixam6lsr82lx3nh2kkp0416mlig0zfkd4b8a9mf8c";
+          name = "recipe";
+        };
+        packageRequires = [
+          deferred
+          emms
+          json
+          request
+          request-deferred
+          string-utils
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/soundcloud";
+          license = lib.licenses.free;
+        };
+      }) {};
+    soundklaus = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , emms
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pkg-info
+                              , request
+                              , s }:
+      melpaBuild {
+        pname = "soundklaus";
+        ename = "soundklaus";
+        version = "20160314.531";
+        src = fetchFromGitHub {
+          owner = "r0man";
+          repo = "soundklaus.el";
+          rev = "09ec030843482594beae2664b8fe1e0ad1e66472";
+          sha256 = "0w5ac515ymj43p5j19nhfqk0c3251c7x3i97r550g780niby1nc5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/soundklaus";
+          sha256 = "0b63sbgwp99ff94dxrqqp2p99j268fjkkzx0g42g726hv80d4fxb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs emms pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/soundklaus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sourcekit = callPackage ({ dash
+                             , dash-functional
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , request }:
+      melpaBuild {
+        pname = "sourcekit";
+        ename = "sourcekit";
+        version = "20180101.34";
+        src = fetchFromGitHub {
+          owner = "nathankot";
+          repo = "company-sourcekit";
+          rev = "abf9bc5a0102eb666d3aa6d6bf22f6efcc852781";
+          sha256 = "1g8a4fgy2c5nqk8gysbnzn5jvfw6ynmfhc6j3hkrbswgf9188v5n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sourcekit";
+          sha256 = "1lvk3m86awlinivpg89h6zvrwrdqa5ljdp563k3i4h9384w82pks";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/sourcekit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sourcemap = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sourcemap";
+        ename = "sourcemap";
+        version = "20161215.2140";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-sourcemap";
+          rev = "64c89d296186f48d9135fb8aad501de19f64bceb";
+          sha256 = "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sourcemap";
+          sha256 = "0cjg90y6a0l59a9v7d7p12pgmr21gwd7x5msil3h6xkm15f0qcc5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sourcemap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sourcerer-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "sourcerer-theme";
+        ename = "sourcerer-theme";
+        version = "20161014.925";
+        src = fetchFromGitHub {
+          owner = "gilbertw1";
+          repo = "sourcerer-emacs";
+          rev = "c7f8e665d53bb48fb72f95f706710d53d24bd407";
+          sha256 = "06bxsbjyrn4grp9i17p90cs4x50cmw62k6a2c6gapkw8f1xbv7xv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sourcerer-theme";
+          sha256 = "0xikcln8sz3cic5a77cdvq2aazy1csf1qfxgmcavpqz54ps14j1z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sourcerer-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sourcetrail = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "sourcetrail";
+        ename = "sourcetrail";
+        version = "20170410.1437";
+        src = fetchFromGitHub {
+          owner = "CoatiSoftware";
+          repo = "emacs-sourcetrail";
+          rev = "2f4327b32360b1549d84fecfe06ef8a85cfdedb8";
+          sha256 = "0q9fipdn77mk8gpjrcmka3cxshnklksaa45v1b5qza0nlqcg3q1y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sourcetrail";
+          sha256 = "0qa3iw82dbfc1b45505s39m99r0m2473312prws6hch0qhjyji7h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sourcetrail";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spacegray-theme = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "spacegray-theme";
+        ename = "spacegray-theme";
+        version = "20150719.1231";
+        src = fetchFromGitHub {
+          owner = "bruce";
+          repo = "emacs-spacegray-theme";
+          rev = "7f70ee36297e5ccf9bc90b1f81472024f5a7a749";
+          sha256 = "1a8jp7m9zarvljg5d9c8ydir3qcmwx05c3frs696p9nwvapf6lsb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spacegray-theme";
+          sha256 = "0khiddpsywpv9qvynpfdmybd80lbrhm68j3py6ranxlv7p79j9dx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/spacegray-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spaceline = callPackage ({ cl-lib ? null
+                             , dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , powerline
+                             , s }:
+      melpaBuild {
+        pname = "spaceline";
+        ename = "spaceline";
+        version = "20180628.46";
+        src = fetchFromGitHub {
+          owner = "TheBB";
+          repo = "spaceline";
+          rev = "29ced71ed0097cd5eba15d6bfdbafd9d18f5bd82";
+          sha256 = "1l929zlma30h4b3bkldzn0pp5wps4ws0pylzw141nj0l3r7b3lcg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spaceline";
+          sha256 = "0jpcj0i8ckdylrisx9b4l9kam6kkjzhhv1s7mwwi4b744rx942iw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs powerline s ];
+        meta = {
+          homepage = "https://melpa.org/#/spaceline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spaceline-all-the-icons = callPackage ({ all-the-icons
+                                           , emacs
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild
+                                           , memoize
+                                           , spaceline }:
+      melpaBuild {
+        pname = "spaceline-all-the-icons";
+        ename = "spaceline-all-the-icons";
+        version = "20170829.120";
+        src = fetchFromGitHub {
+          owner = "domtronn";
+          repo = "spaceline-all-the-icons.el";
+          rev = "e2e195f64a541d72b6d0ba0451f1e3072234b820";
+          sha256 = "0lrf62gsss19z2ca4hg5c08b3nbkqaa33fqrbfa126v2c98bj583";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spaceline-all-the-icons";
+          sha256 = "1h6clkr2f29k2vw0jcrmnfbjpphaxm7s3zai6pn6qag32bgm3jq6";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons emacs memoize spaceline ];
+        meta = {
+          homepage = "https://melpa.org/#/spaceline-all-the-icons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spacemacs-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "spacemacs-theme";
+        ename = "spacemacs-theme";
+        version = "20181107.925";
+        src = fetchFromGitHub {
+          owner = "nashamri";
+          repo = "spacemacs-theme";
+          rev = "c162ad13e4ae1965619012332d3b5f57c9172e98";
+          sha256 = "03p9wcbyjy8jywdkmnql415l1y1dpb2fvlanqkp9lhzs4kxf1w2x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spacemacs-theme";
+          sha256 = "0riiim6qb6x9g5hz0k3qgdymgikynlb9l07mrbfmybkv4919p992";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/spacemacs-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spaces = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "spaces";
+        ename = "spaces";
+        version = "20170809.1508";
+        src = fetchFromGitHub {
+          owner = "chumpage";
+          repo = "chumpy-windows";
+          rev = "6bdb51e9a346907d60a9625f6180bddd06be6674";
+          sha256 = "1wkyvfqmf24c8kb162pwi6wcm88bzf0x9mxljzkx0s8bq9aliny6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spaces";
+          sha256 = "152x7fzjnjjdk9d9h0hbixdp3haqn5vdx3bq1nfqfrkvzychyr06";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/spaces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spark = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "spark";
+        ename = "spark";
+        version = "20160414.1901";
+        src = fetchFromGitHub {
+          owner = "alvinfrancis";
+          repo = "spark";
+          rev = "eec8feae7dbc8547f878fac302f03e0ff7bc9803";
+          sha256 = "155ap3vcypcj0pxvjhi2p0a5a9a2rp63hqnsjczsbabmbz1mdsd5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spark";
+          sha256 = "0dv7ixv9gw6xxhw5zm4gmv2ll4lja8hmn2pdizlqxaizpm245rkn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/spark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sparkline = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sparkline";
+        ename = "sparkline";
+        version = "20150101.519";
+        src = fetchFromGitHub {
+          owner = "woudshoo";
+          repo = "sparkline";
+          rev = "a2b5d817d272d6363b67ed8f8cc75499a19fa8d2";
+          sha256 = "1fqd3ycywxxmln2kzqwflc69xmqlvi9gwvmf7frn0rfv73w09cvp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sparkline";
+          sha256 = "081jzaxjb32nydvr1kmyafxqxi610n0yf8lwz9vldm84famf3g7y";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/sparkline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sparql-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "sparql-mode";
+        ename = "sparql-mode";
+        version = "20180320.1102";
+        src = fetchFromGitHub {
+          owner = "ljos";
+          repo = "sparql-mode";
+          rev = "a00bb622c54086ac1ee96c265bf7fbef12c68089";
+          sha256 = "0f919alnqbp5dnc4krgmnc9acqg84xs64fmzjc78gpbmfn0kyi0m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sparql-mode";
+          sha256 = "1xicrfmgxpb31lz30qj450w8v7dl4ipjp7b2wz54s4kn88nsfj7d";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sparql-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    speech-tagger = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "speech-tagger";
+        ename = "speech-tagger";
+        version = "20170728.1129";
+        src = fetchFromGitHub {
+          owner = "cosmicexplorer";
+          repo = "speech-tagger";
+          rev = "61955b40d4e8b09e66a3e8033e82893f81657c06";
+          sha256 = "07rgs1f9z2ayphv04jdjk9v1s2s47qvksf64z6qn1zss2alc0y0v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/speech-tagger";
+          sha256 = "0sqil949ny9qjxq7kpb4zmjd7770r0qvq4sz80agw6a27mqnaajc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/speech-tagger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    speechd-el = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "speechd-el";
+        ename = "speechd-el";
+        version = "20180105.1217";
+        src = fetchFromGitHub {
+          owner = "brailcom";
+          repo = "speechd-el";
+          rev = "0b25d3eb7ae219d2af9a7e9df2f3334652156bf5";
+          sha256 = "00b2851pgrzvcl828l48gxrmy779w8s1k4ngf8pf0sh1y9bd2715";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/speechd-el";
+          sha256 = "0p8zih9s2x6l2xcfjbzriyhsicaiwxz54iq9h3c8szlzq708mayc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/speechd-el";
+          license = lib.licenses.free;
+        };
+      }) {};
+    speed-type = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "speed-type";
+        ename = "speed-type";
+        version = "20171230.847";
+        src = fetchFromGitHub {
+          owner = "parkouss";
+          repo = "speed-type";
+          rev = "7a67fcd7bf825eee890097bd4a1b3c4f531a1135";
+          sha256 = "0nlmqgf4rg5qmkhpsal7j18wr5h74971k6d0wzw7rmjmpnjqhzvc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/speed-type";
+          sha256 = "0lsbi3b6v7fiwpvydgwcqx3y5i7bysfjammly22qpz3kcjmlvi06";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/speed-type";
+          license = lib.licenses.free;
+        };
+      }) {};
+    speeddating = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "speeddating";
+        ename = "speeddating";
+        version = "20180319.23";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "emacs-speeddating";
+          rev = "eeaf90cd10e376bff5a295590a3d5f7fd1402523";
+          sha256 = "00ybvyr8sr73i7m10cffgpy9lngwp3v8fsa0nbidc6daky84vrdr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/speeddating";
+          sha256 = "0b5lcb1inkcx94grib5ssv1qkbzxqryzm115qizlgfs04k8cwz09";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/speeddating";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sphinx-doc = callPackage ({ cl-lib ? null
+                              , dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "sphinx-doc";
+        ename = "sphinx-doc";
+        version = "20160116.317";
+        src = fetchFromGitHub {
+          owner = "naiquevin";
+          repo = "sphinx-doc.el";
+          rev = "f39da2e6cae55d5d7c7ce887e69755b7529bcd67";
+          sha256 = "1wif9wf8hwxk0q09cdnrmyas7zjg8l5b8jd6sjxd40ypn6dmz2ch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sphinx-doc";
+          sha256 = "00h3wx2p5hzbw6sggggdrzv4jrn1wc051iqql5y2m1hsh772ic5z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/sphinx-doc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sphinx-frontend = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "sphinx-frontend";
+        ename = "sphinx-frontend";
+        version = "20161025.58";
+        src = fetchFromGitHub {
+          owner = "kostafey";
+          repo = "sphinx-frontend";
+          rev = "0cbb03361c245382d3e679dded30c4fc1713c252";
+          sha256 = "1ksjgd995pcb4lvwip08i8ay0xpin8dcam3hcgnbjjqjg9hja1cf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sphinx-frontend";
+          sha256 = "0hdn6zjnhzyka0lzdxqfzbj3lrj767ij406zha9zw8ibbkk7cmag";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sphinx-frontend";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sphinx-mode = callPackage ({ dash
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "sphinx-mode";
+        ename = "sphinx-mode";
+        version = "20180620.215";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "sphinx-mode";
+          rev = "b5ac514e213459dcc57184086f10b5b6be3cecd8";
+          sha256 = "06r50n159g18fi03xyxzkv7zr6cvs29ly1yyrmyjl9m6dn97m9mc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sphinx-mode";
+          sha256 = "0f5xkaqsmxc4bfz80njlc395dcw2dbvmzx6h9fw31mylshzbmrys";
+          name = "recipe";
+        };
+        packageRequires = [ dash f ];
+        meta = {
+          homepage = "https://melpa.org/#/sphinx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spice-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "spice-mode";
+        ename = "spice-mode";
+        version = "20171027.2343";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "spice-mode";
+          rev = "702bf2d5c3561be44771ea77b476532d32068504";
+          sha256 = "1wqcy9nmhpl3vyasvc79msgd25xbbzva9nbxkdrsbpg07p1is9ik";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spice-mode";
+          sha256 = "1my6dbdnf4scshjf299d4n7vsdq3cxhq9kmqvirs45y3qjm7pgpg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/spice-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spiral = callPackage ({ a
+                          , avy
+                          , clojure-mode
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , highlight
+                          , lib
+                          , melpaBuild
+                          , treepy }:
+      melpaBuild {
+        pname = "spiral";
+        ename = "spiral";
+        version = "20180223.340";
+        src = fetchFromGitHub {
+          owner = "Unrepl";
+          repo = "spiral";
+          rev = "907b9792467139a942ba7b07ca0276b90770baf9";
+          sha256 = "1rggzzvya26abbzd8bc2kpv59kzgm75wqv1vwqnj9c8im1jvs1na";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spiral";
+          sha256 = "074ymaksb3dgrsrdsi6xdlvigki5l2v66r8204xv50yc88z7l8qr";
+          name = "recipe";
+        };
+        packageRequires = [ a avy clojure-mode emacs highlight treepy ];
+        meta = {
+          homepage = "https://melpa.org/#/spiral";
+          license = lib.licenses.free;
+        };
+      }) {};
+    splitjoin = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "splitjoin";
+        ename = "splitjoin";
+        version = "20150505.732";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-splitjoin";
+          rev = "39a77f1c6c7406e79095eb0385667097172a770c";
+          sha256 = "0zf03v067nh964ag1nwa8bk90h98lqwbrc25vckacp2gd919ifch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/splitjoin";
+          sha256 = "0l1x98fvvia8qx8g125h4d76slv0xnb3h1zxiq9xb5qh7a1h069l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/splitjoin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    splitter = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "splitter";
+        ename = "splitter";
+        version = "20170809.1508";
+        src = fetchFromGitHub {
+          owner = "chumpage";
+          repo = "chumpy-windows";
+          rev = "6bdb51e9a346907d60a9625f6180bddd06be6674";
+          sha256 = "1wkyvfqmf24c8kb162pwi6wcm88bzf0x9mxljzkx0s8bq9aliny6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/splitter";
+          sha256 = "02vdhvipzwnh6mlj25lirzxkc0shfzqfs1p4gn3smkxqx6g7mdb2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/splitter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spotify = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "spotify";
+        ename = "spotify";
+        version = "20181030.110";
+        src = fetchFromGitHub {
+          owner = "remvee";
+          repo = "spotify-el";
+          rev = "29577cf1188161f98b8358c149aaf47b2c137902";
+          sha256 = "0h6yhfvvyd9sd5d37d3ng3z56zfb546vl95qjq16kcvxq00hdn1v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spotify";
+          sha256 = "07y6d3cz3nziasza3znysvcnx3kw156ab78kw5y0pdll45nw210x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/spotify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spotlight = callPackage ({ counsel
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , swiper }:
+      melpaBuild {
+        pname = "spotlight";
+        ename = "spotlight";
+        version = "20150929.55";
+        src = fetchFromGitHub {
+          owner = "benmaughan";
+          repo = "spotlight.el";
+          rev = "ab902900f22e7d1ea2dd8169441d2da7155aaa68";
+          sha256 = "05knlca2dvpyqp9lw8dc47fl5kh2jb04q57cygkzfjjkzvywdwq8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spotlight";
+          sha256 = "0mmr1spr21pi8sfy95dsgqcxn8qfsphdkfjm5w5q97lh7496z65p";
+          name = "recipe";
+        };
+        packageRequires = [ counsel emacs swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/spotlight";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spray = callPackage ({ fetchFromGitLab
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "spray";
+        ename = "spray";
+        version = "20160304.1420";
+        src = fetchFromGitLab {
+          owner = "iankelling";
+          repo = "spray";
+          rev = "69fe48e7bb079e3011476b9f4eb6ac9ae94d6d9b";
+          sha256 = "0anidv7w2vwsjv8rwkvhs3x51av3y8dp435456czy5yfq6i6vfbl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spray";
+          sha256 = "1h8lngcqa343mlc091zs419frgsla65khfj93lv9fil3xbgrm7m9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/spray";
+          license = lib.licenses.free;
+        };
+      }) {};
+    springboard = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "springboard";
+        ename = "springboard";
+        version = "20170105.2355";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "springboard";
+          rev = "263a8cd4582c81bfc29d7db37d5267e2488b148c";
+          sha256 = "14mbmkqnw2kkzcb8f9z1g3c8f8f9lca3zb6f3q8jk9dsyp9vh81z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/springboard";
+          sha256 = "17rmsidsbb4p08vr07mfn25m17wnpadcwr4nxvp79glp5a0wyyib";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/springboard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sprintly-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , furl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "sprintly-mode";
+        ename = "sprintly-mode";
+        version = "20121005.2234";
+        src = fetchFromGitHub {
+          owner = "sprintly";
+          repo = "sprintly-mode";
+          rev = "6695892bae5860b5268bf3ae62be990ee9b63c11";
+          sha256 = "06rk07h92s5sljprs41y3q31q64cprx9kgs56c2j6v4c8cmsq5h6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sprintly-mode";
+          sha256 = "15i3rrv27ccpn12wwj9raaxpj7nlnrrj3lsp8vdfwph6ydvnfza4";
+          name = "recipe";
+        };
+        packageRequires = [ furl ];
+        meta = {
+          homepage = "https://melpa.org/#/sprintly-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sproto-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "sproto-mode";
+        ename = "sproto-mode";
+        version = "20151115.1005";
+        src = fetchFromGitHub {
+          owner = "m2q1n9";
+          repo = "sproto-mode";
+          rev = "1753277d9f2163fb3bc58b983a9892831cf9874b";
+          sha256 = "1brxm6hs2gsnl8mj6ps0s9kj2qp9v388wwccsqmx7s3bi9zjf10c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sproto-mode";
+          sha256 = "19l6si3sx2i542r5lyr9axby9hblx76m77f17vnsjf32n3r0qgma";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sproto-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sprunge = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , request }:
+      melpaBuild {
+        pname = "sprunge";
+        ename = "sprunge";
+        version = "20160229.1843";
+        src = fetchFromGitHub {
+          owner = "tomjakubowski";
+          repo = "sprunge.el";
+          rev = "0fd386b8b29c4175022a04ad70ea5643185b6726";
+          sha256 = "03wjzk1ljclfjgqzkg6m7v8saaajgavyd0xskd8fg8rdkx13ki0l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sprunge";
+          sha256 = "199vfl6i881aks8fi9d9w4w7mnc7n443h79p3s4srcpmbyfg6g3w";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib request ];
+        meta = {
+          homepage = "https://melpa.org/#/sprunge";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spu = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , signal
+                       , timp }:
+      melpaBuild {
+        pname = "spu";
+        ename = "spu";
+        version = "20161213.1924";
+        src = fetchFromGitHub {
+          owner = "mola-T";
+          repo = "SPU";
+          rev = "41eec86b595816e3852e8ad1a8e07e51a27fd065";
+          sha256 = "1j77h761vf74y9sfjpidgaznail95hsg9akjs55sz1xiyy7hkgyw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spu";
+          sha256 = "0g7j0rz6ga6x6akiijp4vg5iymvqx5d08d60cz6dccq120fi95v8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs signal timp ];
+        meta = {
+          homepage = "https://melpa.org/#/spu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sql-clickhouse = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "sql-clickhouse";
+        ename = "sql-clickhouse";
+        version = "20180302.755";
+        src = fetchFromGitHub {
+          owner = "leethargo";
+          repo = "sql-clickhouse";
+          rev = "35308c9292622547a79c0cc2659db2fc9de42e93";
+          sha256 = "12j9facwvwnwc8ga3nj9yddx3xp3kp28mih6lg4s1b67zj28pccg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sql-clickhouse";
+          sha256 = "083i9aaf69yk71mndl5x0pimn3bkkhp3mfppxvy0f5lzf2847q2j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sql-clickhouse";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sql-impala = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "sql-impala";
+        ename = "sql-impala";
+        version = "20160427.1658";
+        src = fetchFromGitHub {
+          owner = "jterk";
+          repo = "sql-impala";
+          rev = "68248e9851b153850542ed1f709298bb9ab59610";
+          sha256 = "12zyw8b8s3jga560wv141gc4yvlbldvfcmpibns8wrpx2w8aivfj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sql-impala";
+          sha256 = "1mh36ycqgr07r0hknkr6vb4k0r5b2h8bqd7m5faz9p56qbisgvvh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sql-impala";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sqlformat = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sqlformat";
+        ename = "sqlformat";
+        version = "20181018.1859";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "sqlformat";
+          rev = "b70b05bf469a27c1a2940eeaa1a5c8cc93d805fd";
+          sha256 = "14n2yjmi4ls8rmpvvw6d7cz5f6dcg7laaljxnhwbagfd5j4sdfrm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sqlformat";
+          sha256 = "07lf2gx629429b41qr04gl98gplb538gb5hw7idzrmi3higrmv8m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sqlformat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sqlite = callPackage ({ fetchFromGitLab
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "sqlite";
+        ename = "sqlite";
+        version = "20180708.1011";
+        src = fetchFromGitLab {
+          owner = "cnngimenez";
+          repo = "sqlite.el";
+          rev = "b8c22fdfed10d8554137ff1776b83cf2b4b9c5fd";
+          sha256 = "083fzfy9rmiam06ixxkg5djqdxg62ym0p2kpsij01fgi2vjvnhca";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sqlite";
+          sha256 = "1c5dprdl8q09yd0kvpkm19z60m9rhkilj5zmj938wlj5bmdlydv8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sqlite";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sqlup-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "sqlup-mode";
+        ename = "sqlup-mode";
+        version = "20170610.837";
+        src = fetchFromGitHub {
+          owner = "Trevoke";
+          repo = "sqlup-mode.el";
+          rev = "04970977b4abb4d44301651618bbf1cdb0b263dd";
+          sha256 = "14s66xrabj269z7f94iynsla96bka7zac011psrbcfyy4m8mlamz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sqlup-mode";
+          sha256 = "0ngs58iri3fwv5ny707kvb6xjq98x19pzak8c9nq4qnpw3nkr83b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sqlup-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sr-speedbar = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "sr-speedbar";
+        ename = "sr-speedbar";
+        version = "20161025.131";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "sr-speedbar";
+          rev = "77a83fb50f763a465c021eca7343243f465b4a47";
+          sha256 = "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sr-speedbar";
+          sha256 = "1v90jbqdw39yrfcsnyqas8c5g09rcf1db65q2m2rw7rik8cgb052";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sr-speedbar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    srcery-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "srcery-theme";
+        ename = "srcery-theme";
+        version = "20181114.849";
+        src = fetchFromGitHub {
+          owner = "srcery-colors";
+          repo = "srcery-emacs";
+          rev = "9f80e5b6a6b0cd5c6c1e1ca54d5611d0c7810425";
+          sha256 = "1fbqplj9cw0288nf0kz2v001lj2y939zigxrbd1ngwzafwrbkhdq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/srcery-theme";
+          sha256 = "1bnvf9v7g2mpx8519lh73fphhr4cqd33qlw22qyxnqiz5cz93lsp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/srcery-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    srefactor = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "srefactor";
+        ename = "srefactor";
+        version = "20180703.1110";
+        src = fetchFromGitHub {
+          owner = "tuhdo";
+          repo = "semantic-refactor";
+          rev = "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5";
+          sha256 = "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/srefactor";
+          sha256 = "01cd40jm4h00c5q2ix7cskp7klbkcd3n5763y5lqfv59bjxwdqd2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/srefactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    srv = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "srv";
+        ename = "srv";
+        version = "20180715.1259";
+        src = fetchFromGitHub {
+          owner = "legoscia";
+          repo = "srv.el";
+          rev = "b1eb7b109bc1c616dbf027429a90dc3b1a4263f1";
+          sha256 = "05kp8ajbqk7vxzkv23akyk2m7yg81pbrxpl3dsw67101sjazsybi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/srv";
+          sha256 = "0xrgbi63vg0msxkcmcnvijkxa9y0s7613liqac7fs9514yvkbwin";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/srv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ssass-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ssass-mode";
+        ename = "ssass-mode";
+        version = "20180428.1339";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "ssass-mode";
+          rev = "5f36a169a1ad497f1d7a465be386ffb5e1f80bcf";
+          sha256 = "1n1q26p52i6c6i8svkr0bn91hliqm540y1fcz3jci8w2ws0s5x11";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ssass-mode";
+          sha256 = "07aym4a7l70f1lb6yvwxkhsykrwbf0lcpwlwgcn5n44kavvdbzxm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ssass-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ssh = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ssh";
+        ename = "ssh";
+        version = "20120904.1342";
+        src = fetchFromGitHub {
+          owner = "ieure";
+          repo = "ssh-el";
+          rev = "c17cf5b43df8ac4662a0580f85898e1f078df0d1";
+          sha256 = "1rdhdkwdhb727rj53xyxk6i00sjr58a48hfig14m12niy1k739vd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ssh";
+          sha256 = "1wlzagcg2fxqcbpd3z02wsil2n224kzmhcd54df80jypgq5fa6k3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ssh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ssh-agency = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ssh-agency";
+        ename = "ssh-agency";
+        version = "20180507.1726";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "ssh-agency";
+          rev = "d9dbedd773ad3a831e02e162c47936d6814a850a";
+          sha256 = "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ssh-agency";
+          sha256 = "1b25fl1kk4mwsd25pg9s0lazlpmaa6s9wnfgvlqk8k65d7p7idzz";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ssh-agency";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ssh-config-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ssh-config-mode";
+        ename = "ssh-config-mode";
+        version = "20180922.251";
+        src = fetchFromGitHub {
+          owner = "jhgorrell";
+          repo = "ssh-config-mode-el";
+          rev = "1ec676c021269c7b9cf814cf1d12f6acdcc25588";
+          sha256 = "14d9zzfks4kqfqp54qzb2m74bd0rb25sff9rx2d90b5svmvbg15p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ssh-config-mode";
+          sha256 = "1jlaf1bipmf51552jyp2ax6n4gwg38n2348kyxlwd7d8vwsibbpq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ssh-config-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ssh-deploy = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ssh-deploy";
+        ename = "ssh-deploy";
+        version = "20181106.547";
+        src = fetchFromGitHub {
+          owner = "cjohansson";
+          repo = "emacs-ssh-deploy";
+          rev = "88300e389e69f08d1511bcd8f185e608c9f6fddf";
+          sha256 = "1q3jqncyz1s61f2br4ba0jr4265l2lscaaf6l1836i77f44kyvf0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ssh-deploy";
+          sha256 = "1ys3cc5fz8y4rsiq3daqgcpa14ssv1q4cw0pqbfscql6mps0mjdm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ssh-deploy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ssh-tunnels = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ssh-tunnels";
+        ename = "ssh-tunnels";
+        version = "20180703.1327";
+        src = fetchFromGitHub {
+          owner = "death";
+          repo = "ssh-tunnels";
+          rev = "a6b6ae9a5d17afa9ea39ca8c071e889deefcf8a3";
+          sha256 = "01j0yvii46bd46miihkyggw1lkcr76j03wiw682ir5i1s6lli9k9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ssh-tunnels";
+          sha256 = "0zlf22wg9adkhycsasv6bfim2h0cknsvihyi1q2l2l4pjdp9ypqj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ssh-tunnels";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stack-mode = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , flycheck
+                              , haskell-mode
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "stack-mode";
+        ename = "stack-mode";
+        version = "20150923.823";
+        src = fetchFromGitHub {
+          owner = "commercialhaskell";
+          repo = "stack-ide";
+          rev = "7e93bd3e03502beafb4613b7bc690fb9f0db1314";
+          sha256 = "1zi2s97idylk5whzlv5ybac9ricqckl81vlwcm79rphk0v6xi3zj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stack-mode";
+          sha256 = "0s0m2lj40php7bc2i3fy9ikd5rmx4v7zbxfkp9vadmlc5s7w25gf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib flycheck haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/stack-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stan-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "stan-mode";
+        ename = "stan-mode";
+        version = "20180110.1441";
+        src = fetchFromGitHub {
+          owner = "stan-dev";
+          repo = "stan-mode";
+          rev = "a8e88473ef996b455523dc3fbcf2d8520659652f";
+          sha256 = "13qw6n26jpr208h2366pcfv10d11880wlfzr0kiadrsg219wjgsi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stan-mode";
+          sha256 = "17ph5khwwrcpyl96xnp3rsbmnk7mpwmgskxka3cfgkm190qihfqy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stan-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stan-snippets = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , stan-mode
+                                 , yasnippet }:
+      melpaBuild {
+        pname = "stan-snippets";
+        ename = "stan-snippets";
+        version = "20161023.1958";
+        src = fetchFromGitHub {
+          owner = "stan-dev";
+          repo = "stan-mode";
+          rev = "45b8242611fe0437fcff48f5f4f7d8f0552531ac";
+          sha256 = "14yv57grsw3zyjcqasaanx8g2skix0i3w1f5r1fng3sgwclwbkdw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stan-snippets";
+          sha256 = "021skkvak645483s7haz1hsz98q3zd8hqi9k5zdzaqlabwdjwh85";
+          name = "recipe";
+        };
+        packageRequires = [ stan-mode yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/stan-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    standoff-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "standoff-mode";
+        ename = "standoff-mode";
+        version = "20171115.931";
+        src = fetchFromGitHub {
+          owner = "lueck";
+          repo = "standoff-mode";
+          rev = "cf84b14066d63694d931395c6026fd0245d8a62b";
+          sha256 = "0dbcaz3faw8knx91yjsrb988sn2d9k0i5byhs1bi1ww36y6hmgs6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/standoff-mode";
+          sha256 = "127bzpm1cz103f1pb860yqrh7mr0rdaivrm9p6ssd01kchl9nskp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/standoff-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    start-menu = callPackage ({ cl-lib ? null
+                              , config-parser
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "start-menu";
+        ename = "start-menu";
+        version = "20160426.525";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "el-start-menu";
+          rev = "f7d33fed7ad2dc61156f1c1cff9e1805366fbd69";
+          sha256 = "1w3l8ahal9hjisny382bcw9w1nh2swpb1jzf2djww5h0i4r2h36c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/start-menu";
+          sha256 = "1k1lc9i9vcl2am9afq0ksrxwsy6kppl4i0v10h0w2fq5z374rdkv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib config-parser ];
+        meta = {
+          homepage = "https://melpa.org/#/start-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stash = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "stash";
+        ename = "stash";
+        version = "20151117.627";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "stash.el";
+          rev = "c2e494d20c752b80ebbdffbf66687b3cdfc425ad";
+          sha256 = "0cl2y72iagmv87kg72a46a3kap2xigwnrbk2hjgvsbxv2ng5f9cr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stash";
+          sha256 = "116k40ispv7sq3jskwc1lvmhmk3jjz4j967r732s07f5h11vk1z9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    state = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "state";
+        ename = "state";
+        version = "20180627.1256";
+        src = fetchFromGitHub {
+          owner = "thisirs";
+          repo = "state";
+          rev = "99fb8e0a944d3b543d54769d332cbbfa92266b11";
+          sha256 = "173w874iyrbvcv2a8fdylcyxq2a9s5phbabqp3qp095qh6037klf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/state";
+          sha256 = "19y3n8wnbpgbpz4jxy2p7hjqxykg09arjp7s5v22yz7il3gn48l2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/state";
+          license = lib.licenses.free;
+        };
+      }) {};
+    status = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "status";
+        ename = "status";
+        version = "20151230.608";
+        src = fetchFromGitHub {
+          owner = "tromey";
+          repo = "emacs-status";
+          rev = "b62c74bf272566f82a68622f29fb9edafea0f241";
+          sha256 = "0jpxmzfvg4k5q3h3gn6lrg891wjzlcps2kkij1jbdjk4jkgq386i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/status";
+          sha256 = "0a9lqa7a5nki5711bjrmx214kah5ndqpwh3i240gdd08mcm07ps3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/status";
+          license = lib.licenses.free;
+        };
+      }) {};
+    steam = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "steam";
+        ename = "steam";
+        version = "20171108.1613";
+        src = fetchFromGitHub {
+          owner = "Kungsgeten";
+          repo = "steam.el";
+          rev = "d6ca2a828b0824da51978397e198bf91c51ce793";
+          sha256 = "16cxws1b3iwm9aqbiip298zsjm6gwjihpvkia4p0zvzynwhflw8q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/steam";
+          sha256 = "10k408spgbxi266jk8x57zwav989is16nvwg41dknz91l76v63gw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/steam";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stem = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "stem";
+        ename = "stem";
+        version = "20131102.409";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "stem";
+          rev = "dd704c3447bd5d3f5ac0a4840f8987d4f855d87e";
+          sha256 = "17x8zgml8sa5i828hg8bimfal84vvqzxlqdicjc7v7p8h0j57cgs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stem";
+          sha256 = "1625nbi2bmb7vzjz0s7y1cy7dp8lp83dayiib3nr2bfkv76fwkcq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stem";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stem-english = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "stem-english";
+        ename = "stem-english";
+        version = "20180108.1958";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "stem-english";
+          rev = "c9fc4c6ed6bf82382e479dae80912f4ae17d31f4";
+          sha256 = "1bkmgjfp7xir6d0yf782xkjvf595blrqhr3hack26jg5zl8qsrya";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stem-english";
+          sha256 = "15d13palwdwrki9p804cdls08ph7sxxzd44nl4bhfm3dxic4sw7x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/stem-english";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stgit = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "stgit";
+        ename = "stgit";
+        version = "20171130.759";
+        src = fetchFromGitHub {
+          owner = "ctmarinas";
+          repo = "stgit";
+          rev = "a29fc8873fca30cb5b13d94743a9010de28e2610";
+          sha256 = "1xhxba0m78zx00m55y125bs1zxibyg7d9nw8xw9gqyshcncjffpg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stgit";
+          sha256 = "1gbr0pvvig2vg94svy1r6zp57rhyg6n9yp7qvlkfal1z2lhzhs0g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stgit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sticky = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "sticky";
+        ename = "sticky";
+        version = "20170925.1736";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "sticky";
+          rev = "fec4e1af38f17f5cd80eca361d8e8ef8772db366";
+          sha256 = "126zs059snzpg83q9mrb51y0pqawwrj9smr3y7rza4q4qkdp1nk0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sticky";
+          sha256 = "0g98qagqchwq9j5nvdz315wak8fvdw1l972cfh0fr4yyg7gxi6xr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sticky";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stickyfunc-enhance = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "stickyfunc-enhance";
+        ename = "stickyfunc-enhance";
+        version = "20150429.1114";
+        src = fetchFromGitHub {
+          owner = "tuhdo";
+          repo = "semantic-stickyfunc-enhance";
+          rev = "13bdba51fcd83ccbc3267959d23afc94d458dcb0";
+          sha256 = "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stickyfunc-enhance";
+          sha256 = "13dh19c3bljs83l847syqlg07g33hz6sapg6j4s4xv4skix8zfks";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/stickyfunc-enhance";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stock-ticker = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , request
+                                , s }:
+      melpaBuild {
+        pname = "stock-ticker";
+        ename = "stock-ticker";
+        version = "20150204.252";
+        src = fetchFromGitHub {
+          owner = "hagleitn";
+          repo = "stock-ticker";
+          rev = "74251cc810604af75f48333d51133326c053dd16";
+          sha256 = "09rpn1gbxd0ppb0258l6bcnbxj8r5jhcwkvjg335sgh52srgk3ir";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stock-ticker";
+          sha256 = "1slcjk2avybr4v9s7gglizmaxbb3yqg6s6gdbg12m3vvj3b72lfi";
+          name = "recipe";
+        };
+        packageRequires = [ request s ];
+        meta = {
+          homepage = "https://melpa.org/#/stock-ticker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    strace-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "strace-mode";
+        ename = "strace-mode";
+        version = "20171116.1239";
+        src = fetchFromGitHub {
+          owner = "pkmoore";
+          repo = "strace-mode";
+          rev = "2901baa968d5180ab985ac40ca22cc20914d01f5";
+          sha256 = "1jd930nc2g562n4cqq1ppl2d8dq7bxkr3fh9f0gjms7bcm106kz9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/strace-mode";
+          sha256 = "16v350nqdxmmk1r4z25bssm436xcm4cvnaxm7f3wxwvmg9z0gx8d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/strace-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    strie = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "strie";
+        ename = "strie";
+        version = "20160211.1422";
+        src = fetchFromGitHub {
+          owner = "jcatw";
+          repo = "strie.el";
+          rev = "eb7efb0cccc127c414f6a64db11454869d9c10a8";
+          sha256 = "1kcbkf0wbmqy9slxfqg7wsyw5n2rsaz832ibrxszb642j0l8s7pr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/strie";
+          sha256 = "1ngvpbws7laqxk6mm023r5295msap12h8bh9zrsbr05yxfzhlx83";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/strie";
+          license = lib.licenses.free;
+        };
+      }) {};
+    string-edit = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "string-edit";
+        ename = "string-edit";
+        version = "20160410.2356";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "string-edit.el";
+          rev = "c44b65b4c5e9f52be9c14d88ca2f402a18d9e1dd";
+          sha256 = "1xm7bb3cp99ahr5jrwi0p0258qcvlbddy98wmbq00kk5pihqbzsg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/string-edit";
+          sha256 = "1l1hqsfyi6pp4x4g1rk4s7x9zjc03wfmhy16izia8nkjhzz88fi8";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/string-edit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    string-inflection = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "string-inflection";
+        ename = "string-inflection";
+        version = "20180827.601";
+        src = fetchFromGitHub {
+          owner = "akicho8";
+          repo = "string-inflection";
+          rev = "e9a50855a4c718592c28a5a892f164ecf46e39a8";
+          sha256 = "03kvp5xrv9p46m4w25jr5nvi801yafq5vxzif42y0dav7ifmmdfp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/string-inflection";
+          sha256 = "1vrjcg1fa5adw16s4v9dq0fid0gfazxk15z9cawz0kmnpyzz3fg2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/string-inflection";
+          license = lib.licenses.free;
+        };
+      }) {};
+    string-utils = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , list-utils
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "string-utils";
+        ename = "string-utils";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "string-utils";
+          rev = "8b56e1f79d2de46d1e9b5e24d889e9f4c3cc85d4";
+          sha256 = "0c8msw48cmvd4i7cgh7gp0d26ipiqvyn84a2d4hqqci261s08b2y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/string-utils";
+          sha256 = "1vsvxc06fd3wardldb83i5hjfibvmiqnxvcgdns7i5i8qlsrsx4v";
+          name = "recipe";
+        };
+        packageRequires = [ list-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/string-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stripe-buffer = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "stripe-buffer";
+        ename = "stripe-buffer";
+        version = "20141208.708";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "stripe-buffer";
+          rev = "c252080f55cb78c951b19ebab9687f6d00237baf";
+          sha256 = "0dxajh72wdcwdb9ydbcm19fmp0p1drmh1niq4r69jnbn8sah0zax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stripe-buffer";
+          sha256 = "1kjib1kf9xqdirryr16wlvc95701hq8s4h8hz4dqzg3wzyb8287b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/stripe-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stumpwm-mode = callPackage ({ fetchgit
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "stumpwm-mode";
+        ename = "stumpwm-mode";
+        version = "20140130.1816";
+        src = fetchgit {
+          url = "https://git.savannah.nongnu.org/git/stumpwm.git";
+          rev = "a920d31bac148e7f6afa98c05f98920135de8b89";
+          sha256 = "0hg2dhgph1fz8z6c79ia2j36wnbqgi6a7fjiz3wngslhbwy28xq7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stumpwm-mode";
+          sha256 = "11yk7xmmccgv7hin5qd1ibcsm1za01xfwsxa25q7vqwk6svnb0sf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stumpwm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stupid-indent-mode = callPackage ({ fetchgit
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "stupid-indent-mode";
+        ename = "stupid-indent-mode";
+        version = "20170525.417";
+        src = fetchgit {
+          url = "https://gist.github.com/5487564.git";
+          rev = "3295e7de5e2cfddc3bf0e462e852bf58972f5d70";
+          sha256 = "00js2jkzvmvh1gbraijknv48y86pqyk9zv264a5n3l4sw5q6kcvk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stupid-indent-mode";
+          sha256 = "12y8qxxs04qzy09m734qg0857g4612qdswx2bh9jk7dp886fpd7p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stupid-indent-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stylefmt = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "stylefmt";
+        ename = "stylefmt";
+        version = "20161025.124";
+        src = fetchFromGitHub {
+          owner = "KeenS";
+          repo = "stylefmt.el";
+          rev = "7a38f26bf8ff947215f34f0a064c7ca80575ccbc";
+          sha256 = "0cx9llbmfjhaxb60mj483ihl78xb30ldvhd1hdldmc9d473xbvmz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stylefmt";
+          sha256 = "14ap3xklmxyqz61p7z3fwgxbwjqrcbijcmvsmhfbm102x1spgbhz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stylefmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stylus-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , sws-mode }:
+      melpaBuild {
+        pname = "stylus-mode";
+        ename = "stylus-mode";
+        version = "20150313.812";
+        src = fetchFromGitHub {
+          owner = "brianc";
+          repo = "jade-mode";
+          rev = "73893e8d8f1bcaf9f0252c6f020cdb3741d7125c";
+          sha256 = "0fiihkwq4s8lkqx5fp3csmnaf0blnm6kpl4hfkwsb8rywgvzh7lk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stylus-mode";
+          sha256 = "152k74q6qn2xa38v2zyd5y7ya5n26nvai5v7z5fmq7jrcndp27r5";
+          name = "recipe";
+        };
+        packageRequires = [ sws-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/stylus-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    subatomic-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "subatomic-theme";
+        ename = "subatomic-theme";
+        version = "20160126.738";
+        src = fetchFromGitHub {
+          owner = "cryon";
+          repo = "subatomic";
+          rev = "6a4086af748b1ecb27f6ba2aa2614988db16d594";
+          sha256 = "1j63rzxnrzzqizh7fpd99dcgsy5hd7w4d2lpwl5armmixlycl5m8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/subatomic-theme";
+          sha256 = "0mqas67qms492n3hn74c5nrkjpsgf9b42lp02s2dh366c075dpqc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/subatomic-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    subatomic256-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "subatomic256-theme";
+        ename = "subatomic256-theme";
+        version = "20130620.1910";
+        src = fetchFromGitHub {
+          owner = "d11wtq";
+          repo = "subatomic256";
+          rev = "326177d6f99cd2b1d30df695e67ee3bc441cd96f";
+          sha256 = "1w7mimyqc25phlww20l49wlafnxp6c7dwibvphg3vwl61g0llpq8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/subatomic256-theme";
+          sha256 = "1whjlkpkkirpnvvjryhlpzwphr1syz5zfyg4pb66i0db03hxwwcy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/subatomic256-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    subemacs = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "subemacs";
+        ename = "subemacs";
+        version = "20170401.234";
+        src = fetchFromGitHub {
+          owner = "kbauer";
+          repo = "subemacs";
+          rev = "18d53939fec8968c08dfc5aff7240ca07efb1aac";
+          sha256 = "1k2lg7cxr98rq77sk0ypzlr3cyl20ld20jz8y21fdaa6ci8kdvdb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/subemacs";
+          sha256 = "0sqh80jhh3v37l5af7w6k9lqvj39bd91pn6a9rwdlfk389hp90zm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/subemacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sublime-themes = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "sublime-themes";
+        ename = "sublime-themes";
+        version = "20170606.1144";
+        src = fetchFromGitHub {
+          owner = "owainlewis";
+          repo = "emacs-color-themes";
+          rev = "60ee40af82eb55b79d5ed4026f1911326311603f";
+          sha256 = "17fcqvavgyl9cmv1hwcid2bw513vhawlsmac1w2adiz567594i6h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sublime-themes";
+          sha256 = "1nahcfcy831c7w3c69i2na0r8jsdgprffgfdvh4c41cnk4rkgdqj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sublime-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sublimity = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sublimity";
+        ename = "sublimity";
+        version = "20170820.827";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "sublimity";
+          rev = "62b0c526c599a0178a16a75f16513fc1f93a0d53";
+          sha256 = "0kncjm6133a84z9rvygn5dqnwdj036sw6cf1pi595rk3f9r2ccg5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sublimity";
+          sha256 = "1xwggaalad65cxcfvmy30f141bxhpzc3fgvwziwbzi8fygbdv4nw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/sublimity";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sudden-death = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "sudden-death";
+        ename = "sudden-death";
+        version = "20180216.1623";
+        src = fetchFromGitHub {
+          owner = "yewton";
+          repo = "sudden-death.el";
+          rev = "791a63d3f4df192e71f4232a9a4c5588f4b43dfb";
+          sha256 = "0z3adwd6ymapkdniny3ax2i3wzxp11g6in4bghbcr9bfdxcsf7ps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sudden-death";
+          sha256 = "1wrhb3d27j07i64hvjggyajm752w4mhrhq09lfvyhz6ykp1ly3fh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sudden-death";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sudo-edit = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sudo-edit";
+        ename = "sudo-edit";
+        version = "20180731.1208";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "sudo-edit";
+          rev = "cc3d478937b1accd38742bfceba92af02ee9357d";
+          sha256 = "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sudo-edit";
+          sha256 = "10vz7q8m0l2dyhiy9r9nj17qlwyv032glshzljzhm1n20w8y1fq4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sudo-edit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sudo-ext = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "sudo-ext";
+        ename = "sudo-ext";
+        version = "20170126.414";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "sudo-ext";
+          rev = "9d4580f304121ce7b8104bd4bd3b64e4dfa3c9b3";
+          sha256 = "1m9srlxavqg6yxmz6rz61saz1lj5hh029314dic8kh6g3bqdnh2w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sudo-ext";
+          sha256 = "1zlnz68kzdrc7p90qmzs7fsr9ry4rl259xpyv55jh5icry290z4x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sudo-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sudoku = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "sudoku";
+        ename = "sudoku";
+        version = "20161110.2306";
+        src = fetchFromGitHub {
+          owner = "zevlg";
+          repo = "sudoku.el";
+          rev = "77c11b5041b58fc943cf1668b44b40bae039cb5b";
+          sha256 = "18nbs980y6cj6my208i80cb928rnkk5rn3zwc63prk5whjw4y77v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sudoku";
+          sha256 = "14nbidjnsm9lwknmqgfr721b484z5156j723kr1wbfv70j8h9kys";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sudoku";
+          license = lib.licenses.free;
+        };
+      }) {};
+    suggest = callPackage ({ dash
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , loop
+                           , melpaBuild
+                           , s
+                           , spinner }:
+      melpaBuild {
+        pname = "suggest";
+        ename = "suggest";
+        version = "20180916.1159";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "suggest.el";
+          rev = "58ea3b20544410b90ca3286cbda3d71c823c3bf9";
+          sha256 = "00xbr3fbdjbmvy9nswzqxliavarqkgfa5ms6irfnbpng1ypmcvgf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/suggest";
+          sha256 = "12vvakqqzmmqq5yynpd4wf4lnb0yvcnz065kni996sy7rv7rh83q";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f loop s spinner ];
+        meta = {
+          homepage = "https://melpa.org/#/suggest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    suggestion-box = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , popup }:
+      melpaBuild {
+        pname = "suggestion-box";
+        ename = "suggestion-box";
+        version = "20170830.107";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "suggestion-box-el";
+          rev = "50af0776c8caf3c79c4d37fd51cbf304ea34b68e";
+          sha256 = "01lx20kzay5504xcq6m6yhvayyd7wpzaa1r6i67xqjnr25lqyajw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/suggestion-box";
+          sha256 = "17yai0fh7rfjbp3wz5x5r4src8lxn6qrhf7brp2gjr6cgdv40iac";
+          name = "recipe";
+        };
+        packageRequires = [ emacs popup ];
+        meta = {
+          homepage = "https://melpa.org/#/suggestion-box";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sunburn-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "sunburn-theme";
+        ename = "sunburn-theme";
+        version = "20180602.1229";
+        src = fetchFromGitHub {
+          owner = "mvarela";
+          repo = "Sunburn-Theme";
+          rev = "ddb01b6f1f4f823398f7f8e08900c2b4a7811d3b";
+          sha256 = "18qfcrr4xlwwhhaq7dwh31bbl84a53akgrw2c6lynnyyi4vk2wpq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sunburn-theme";
+          sha256 = "07nz7vr0yzf5746d8khlzl6ghaj44yfp0ar9ylbpdpfj7rdx17sa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sunburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sunny-day-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "sunny-day-theme";
+        ename = "sunny-day-theme";
+        version = "20140413.1425";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "sunny-day-theme";
+          rev = "420e0a6eb33fcc9b75c2c9e88ab60a975d782a00";
+          sha256 = "0mhyhkjjwszwl5wzkys9pgvgx9sps9r46k1s1hpzzf4s3vi015mc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sunny-day-theme";
+          sha256 = "1wsfnmmbzzyggzip66vr38yyzy27blxp91wx97bafj7jpg5cyhzw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sunny-day-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sunshine = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "sunshine";
+        ename = "sunshine";
+        version = "20181029.954";
+        src = fetchFromGitHub {
+          owner = "aaronbieber";
+          repo = "sunshine.el";
+          rev = "8959dea03377e61aaca0124ac8d2703daaae6b9a";
+          sha256 = "1shzhl5bi5dkmvc07mc7sknm5id89iivjkcxsrdcw004g08hr8y0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sunshine";
+          sha256 = "1lxiqw7k8cpq0v6p5whgxgzqrbx3sd9174r0d4qlkrpn6rcp44vv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/sunshine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    suomalainen-kalenteri = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "suomalainen-kalenteri";
+        ename = "suomalainen-kalenteri";
+        version = "20170801.126";
+        src = fetchFromGitHub {
+          owner = "tlikonen";
+          repo = "suomalainen-kalenteri";
+          rev = "c702e33cb6e13cb28bd761844e95be112a3c04f3";
+          sha256 = "13avc3ba6vhysmhrcxfpkamggfpal479gn7k9n7509dpwp06dv8h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/suomalainen-kalenteri";
+          sha256 = "1wzijbgcr3jc47ccr7nrdkqha16s6gw0xiccnmdczi48cvnvvlkh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/suomalainen-kalenteri";
+          license = lib.licenses.free;
+        };
+      }) {};
+    super-save = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "super-save";
+        ename = "super-save";
+        version = "20180929.27";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "super-save";
+          rev = "62512f60d6685d8601e2021d95e77603b6d96885";
+          sha256 = "0cn39d1qfm119bxb9sdl43ya2vvadfp22qwdn3j843wyf92hpdn4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/super-save";
+          sha256 = "0ikfw7n2rvm3xcgnj1si92ly8w75x26071ki551ims7a8sawh52p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/super-save";
+          license = lib.licenses.free;
+        };
+      }) {};
+    supergenpass = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "supergenpass";
+        ename = "supergenpass";
+        version = "20130328.2248";
+        src = fetchFromGitHub {
+          owner = "ober";
+          repo = "sgpass";
+          rev = "549072ef7b5b82913cadd4758e8a0a9926f0a04a";
+          sha256 = "0m02snzka243adhwwgriml133n4312lhdia3wdqjcq8y2mlp3331";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/supergenpass";
+          sha256 = "0ldy6j6l6rf72w0hl195rdnrabml2a5k91200s186k0r5aja4b95";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/supergenpass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    suscolors-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "suscolors-theme";
+        ename = "suscolors-theme";
+        version = "20161109.1215";
+        src = fetchFromGitHub {
+          owner = "TheSuspiciousWombat";
+          repo = "SusColors-emacs";
+          rev = "8f5cdf8de5e58db838ef0e803b60b7d74fc2a889";
+          sha256 = "1wc4l7zvb8zmh48cgrl7bkbyfj0sflzq28sc8jssghkcl2735cbg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/suscolors-theme";
+          sha256 = "0j8yfl3yglp9kfdpbmfj3jw7npc6nlqw48cchiczh4biry204lbw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/suscolors-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    svg-mode-line-themes = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , xmlgen }:
+      melpaBuild {
+        pname = "svg-mode-line-themes";
+        ename = "svg-mode-line-themes";
+        version = "20150425.1306";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "svg-mode-line-themes";
+          rev = "80a0e01839cafbd66899202e7764c33231974259";
+          sha256 = "14h40s0arc2i898r9yysn256z6l8jkrnmqvrdg7p7658c0klz5ic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/svg-mode-line-themes";
+          sha256 = "12lnszcb9bl32n9wir7vf8xiyyv7njw4xg21aj9x4dasmidyx506";
+          name = "recipe";
+        };
+        packageRequires = [ xmlgen ];
+        meta = {
+          homepage = "https://melpa.org/#/svg-mode-line-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    svnwrapper = callPackage ({ e2ansi
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "svnwrapper";
+        ename = "svnwrapper";
+        version = "20180414.1143";
+        src = fetchFromGitHub {
+          owner = "Lindydancer";
+          repo = "svnwrapper";
+          rev = "de5069f5784e5d9e87a0af0159ba5f28a3716583";
+          sha256 = "08sg55cmjbk06622mzhv74f5b5dvbay7gb729zsckczxwrp1cayp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/svnwrapper";
+          sha256 = "06nb7dql7fbaa9khhpxdl8jj6zmypi24bak52sfsa0js77v51pf2";
+          name = "recipe";
+        };
+        packageRequires = [ e2ansi ];
+        meta = {
+          homepage = "https://melpa.org/#/svnwrapper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swagger-to-org = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , json ? null
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "swagger-to-org";
+        ename = "swagger-to-org";
+        version = "20160610.1756";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "swagger-to-org";
+          rev = "181357c71ea24bede263f5706d8781ad65e16877";
+          sha256 = "0x1mxxvlhhs34j869cy68gy5pgmvpfliyl9vlrlwm3z8apbip9gp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swagger-to-org";
+          sha256 = "1m40f5njxcxmc2snaz2q43b4scwgp51y761kq6klixjvafi0pv86";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/swagger-to-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swap-buffers = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "swap-buffers";
+        ename = "swap-buffers";
+        version = "20150506.1439";
+        src = fetchFromGitHub {
+          owner = "ekazakov";
+          repo = "swap-buffers";
+          rev = "46ab31359b70d935add6c6e9533443116dc51103";
+          sha256 = "1kn70570r6x0h1xfs1vr8as27pjfanyhml140yms60gdjb4ssf9r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swap-buffers";
+          sha256 = "0ih5dhnqy3c9nlfz9m2zwy4q4jaam09ykbdqhsxx2hnwjk7p35bw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/swap-buffers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swap-regions = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "swap-regions";
+        ename = "swap-regions";
+        version = "20180915.646";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "swap-regions.el";
+          rev = "f4fd9880cf690e003fcde88dcf2b46adbbbb03cd";
+          sha256 = "1d45yanqk4w0idqwkrwig1dl22wr820k11r3gynv7an643k4wngp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swap-regions";
+          sha256 = "0gl4vr7wjh5gjskrwbqypaqyfigpgh379bm4l2gvbsbhahsmbj67";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/swap-regions";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sweetgreen = callPackage ({ cl-lib ? null
+                              , dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild
+                              , request }:
+      melpaBuild {
+        pname = "sweetgreen";
+        ename = "sweetgreen";
+        version = "20180604.2035";
+        src = fetchFromGitHub {
+          owner = "CestDiego";
+          repo = "sweetgreen.el";
+          rev = "e933fe466b5ef0e976967e203f88bd7a012469d1";
+          sha256 = "1pd13v3xma78xa0smxql4i2iax72kxqh7iwp3k16jwzrklmsdiyr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sweetgreen";
+          sha256 = "1v75wk0gq5fkz8i1r8pl4gqnxbv1d80isyn48w2hxj2fmdn2xhpy";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash helm request ];
+        meta = {
+          homepage = "https://melpa.org/#/sweetgreen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swift-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , seq }:
+      melpaBuild {
+        pname = "swift-mode";
+        ename = "swift-mode";
+        version = "20181117.402";
+        src = fetchFromGitHub {
+          owner = "swift-emacs";
+          repo = "swift-mode";
+          rev = "55ce4e53f856626938b50f014c5f82947a628d6a";
+          sha256 = "0j1lm2bn1m401ah7zr27dyv577ychbs1p225hgmcr0ik43k1xva6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swift-mode";
+          sha256 = "103nix9k2agxgfpwyhsracixl4xvzqlgidd25r1fpj679hr42bg8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/swift-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swift3-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "swift3-mode";
+        ename = "swift3-mode";
+        version = "20160918.550";
+        src = fetchFromGitHub {
+          owner = "taku0";
+          repo = "swift3-mode";
+          rev = "ea34d46bf9a4293e75ffdac9500d34989316d9e9";
+          sha256 = "1hwc3fxv87hmw0a0mgl8khfzf1p7yp2izkc02z8f1vbkaibmmawp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swift3-mode";
+          sha256 = "14vm05p8ix09v73dkmf03i56yib8yk6h2r1zc9m4ym80fki4f520";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/swift3-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swiper = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , ivy
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "swiper";
+        ename = "swiper";
+        version = "20181118.735";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper";
+          rev = "08f8139cb835f25d8a6ce463cac6e531efef54a1";
+          sha256 = "02j2g97mbn199xqb8f9390442v2z1mcqha78pcwx7sk28i6y9hgb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swiper";
+          sha256 = "0qaia5pgsjsmrfmcdj72jmj39zq82wg4i5l2mb2z6jlf1jpbk6y9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/swiper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swiper-helm = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , swiper }:
+      melpaBuild {
+        pname = "swiper-helm";
+        ename = "swiper-helm";
+        version = "20180131.944";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper-helm";
+          rev = "93fb6db87bc6a5967898b5fd3286954cc72a0008";
+          sha256 = "05n4h20lfyg1kis5rig72ajbz680ml5fmsy6l1w4g9jx2xybpll2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swiper-helm";
+          sha256 = "011ln6vny7z5vw67cpzldxf5n6sk2hjdkllyf7v6sf4m62ws93ph";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/swiper-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    switch-buffer-functions = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "switch-buffer-functions";
+        ename = "switch-buffer-functions";
+        version = "20171011.1004";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "switch-buffer-functions-el";
+          rev = "651696ef9dec7affbe51c81d9318288376c35899";
+          sha256 = "0xv57imh6w6kbh1i1ib9k9x2h01l4vdxs2i667a76ym6dmsjbx2x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/switch-buffer-functions";
+          sha256 = "1b93p8q07zncqq3nw829gddc615rwaan1ds5vgfhdb1l7bh9f37l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/switch-buffer-functions";
+          license = lib.licenses.free;
+        };
+      }) {};
+    switch-window = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "switch-window";
+        ename = "switch-window";
+        version = "20181103.2040";
+        src = fetchFromGitHub {
+          owner = "dimitri";
+          repo = "switch-window";
+          rev = "204f9fc1a39868a2d16ab9370a142c8c9c7a0943";
+          sha256 = "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/switch-window";
+          sha256 = "02f0zjvlzms66w1ryhk1cbr4rqwklzvgcjfiicj0lcnqqx61m2k2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/switch-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swoop = callPackage ({ async
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , ht
+                         , lib
+                         , melpaBuild
+                         , pcre2el }:
+      melpaBuild {
+        pname = "swoop";
+        ename = "swoop";
+        version = "20160120.915";
+        src = fetchFromGitHub {
+          owner = "ShingoFukuyama";
+          repo = "emacs-swoop";
+          rev = "a5e475db7a9f5db02ba3d08cd3c1c3594e2e01d7";
+          sha256 = "10ka6f86n07xlf0z7w35db0mzp2zk4xhr6jd19kjdrn2j0ynlcw5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swoop";
+          sha256 = "0zcxasc0bpldvlp6032f9v1s4vm9r76pzd7sjgwa9dxbajw5h7fs";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs ht pcre2el ];
+        meta = {
+          homepage = "https://melpa.org/#/swoop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sws-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "sws-mode";
+        ename = "sws-mode";
+        version = "20150317.1245";
+        src = fetchFromGitHub {
+          owner = "brianc";
+          repo = "jade-mode";
+          rev = "03486dce6990c96e85e53c18b8fcb35fbb8509f5";
+          sha256 = "10w73i4sh6mn108lcnm6sv4xr1w0avbfw05kid28c33583h80vpm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sws-mode";
+          sha256 = "0b12dsad0piih1qygjj0n7rni0pl8cizbzwqm9h1dr8imy53ak4i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sws-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sx = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , json ? null
+                      , let-alist
+                      , lib
+                      , markdown-mode
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "sx";
+        ename = "sx";
+        version = "20180606.36";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "sx.el";
+          rev = "46d9498e8f501697920c79437909cdddc93d5ec6";
+          sha256 = "0z21f2v8464bj0jj6y9w7b5hpz1m2r761hanc4b802k8bxb8mxh0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sx";
+          sha256 = "1ml1rkhhk3hkd16ij2zwng591rxs2yppsfq9gwd4ppk02if4v517";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json let-alist markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/sx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    symbol-overlay = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "symbol-overlay";
+        ename = "symbol-overlay";
+        version = "20181112.18";
+        src = fetchFromGitHub {
+          owner = "wolray";
+          repo = "symbol-overlay";
+          rev = "831506ee124f357d5bd4d213b9dea2d0e7ac1287";
+          sha256 = "18awhscyxx6vi4aq07x5jg19pzaj0avcgj96ral6snbvadr67ylc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/symbol-overlay";
+          sha256 = "1al60x2mnjsv99jd10v5sd56zz185wsddiq7128phf1l35bkibis";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/symbol-overlay";
+          license = lib.licenses.free;
+        };
+      }) {};
+    symbolword-mode = callPackage ({ emacs
+                                   , f
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "symbolword-mode";
+        ename = "symbolword-mode";
+        version = "20180401.727";
+        src = fetchFromGitHub {
+          owner = "ncaq";
+          repo = "symbolword-mode";
+          rev = "3857c42696e20f49f274ff8bc45a6f3ee26884d4";
+          sha256 = "0pk20glbf73lpfky0jz6dqvxzaqvig3m11xca0786ni0g1yc4g0g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/symbolword-mode";
+          sha256 = "1fs1irnmlbrn76b4gdsy0v65nz8av85iqm0b7g9nm2rm8azcr050";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/symbolword-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    symon = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "symon";
+        ename = "symon";
+        version = "20170224.33";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "symon";
+          rev = "76461679dfe13a5dccd3c8735fb6f58b26b46733";
+          sha256 = "06s7q0zhqmvnhdkqikhfzl1rgm6xzqaxp461ndf8gp44rp1alkl4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/symon";
+          sha256 = "11llnvngyc3xz8nd6nj86ism0hhs8p54wkscvs4yycbakbyn61lz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/symon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    symon-lingr = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , symon }:
+      melpaBuild {
+        pname = "symon-lingr";
+        ename = "symon-lingr";
+        version = "20150719.642";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "symon-lingr";
+          rev = "056d1a473e36992ff5881e5ce6fdc331cead975f";
+          sha256 = "030bglxnvrkf1f9grbhd8n11j4c6sxpabpjdr1ryx522v01fvx8j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/symon-lingr";
+          sha256 = "0kyhmw25cn10b4jv2yx7bvp8zkwcswiidpk4amyaisw25820gkv1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib symon ];
+        meta = {
+          homepage = "https://melpa.org/#/symon-lingr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sync-recentf = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "sync-recentf";
+        ename = "sync-recentf";
+        version = "20160326.1301";
+        src = fetchFromGitHub {
+          owner = "ffevotte";
+          repo = "sync-recentf";
+          rev = "0052561d5c5b5c2684faedc3eead776aec06c3ed";
+          sha256 = "006siydqxqds0qqds0zxn821dk4pw14wyymyp03n594wgqzw7m8q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sync-recentf";
+          sha256 = "17aji2vcw6zfd823anzwj8pcgyxamxr87bnni085jvlz0vx6gh9c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sync-recentf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    syndicate = callPackage ({ evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "syndicate";
+        ename = "syndicate";
+        version = "20160603.823";
+        src = fetchFromGitHub {
+          owner = "KNX32542";
+          repo = "syndicate";
+          rev = "90cee202a06f5bab48268ebf9f62c43334b69f50";
+          sha256 = "1w0na1p9drdmbci7adj20amrabcpny9fb2v4bd967ils4f2wly75";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/syndicate";
+          sha256 = "06nmldcw5dy2shhpk6nyix7gs57gsr5s9ksj57xgg8y2j3j0da95";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/syndicate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    synonymous = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , request }:
+      melpaBuild {
+        pname = "synonymous";
+        ename = "synonymous";
+        version = "20180325.1117";
+        src = fetchFromGitHub {
+          owner = "toroidal-code";
+          repo = "synonymous.el";
+          rev = "2cb9a674d84fddf3f1b00c9d6b13a853576acb87";
+          sha256 = "1l0skavpj96x5gdrx9l8dqj4mrb7zcilv3jj335ak11p2i4ckcq2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/synonymous";
+          sha256 = "0vawa9qwvv6z1i7vzhkjdl1l9r1yham48yn5y8w8g1xyhxxp6rs5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/synonymous";
+          license = lib.licenses.free;
+        };
+      }) {};
+    synosaurus = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "synosaurus";
+        ename = "synosaurus";
+        version = "20180125.1034";
+        src = fetchFromGitHub {
+          owner = "hpdeifel";
+          repo = "synosaurus";
+          rev = "ceeb06e24d3af3643862ecfdb263590eec1f492f";
+          sha256 = "1qdppyx24zmz9dzm9kjvcx30g6znik602mg2h2s835cww9n97idm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/synosaurus";
+          sha256 = "06a48ajpickf4qr1bc14skfr8khnjjph7c35b7ajfy8jw2zwavpn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/synosaurus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    synquid = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , flycheck
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "synquid";
+        ename = "synquid";
+        version = "20160930.850";
+        src = fetchFromGitHub {
+          owner = "cpitclaudel";
+          repo = "synquid-emacs";
+          rev = "28701ce1a15437202f53ab93a14bcba1de83fd2c";
+          sha256 = "0c0pi5w8xvir9gnbjp80g1c4i3rhid65zwh4i4vkyivkh2s29f6i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/synquid";
+          sha256 = "10kmd9g3qbfnyfl2bdf2s70f5sd3pyzalq18dpgq5ijkwqi019k7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/synquid";
+          license = lib.licenses.free;
+        };
+      }) {};
+    syntactic-close = callPackage ({ cl-lib ? null
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "syntactic-close";
+        ename = "syntactic-close";
+        version = "20181026.931";
+        src = fetchFromGitHub {
+          owner = "emacs-berlin";
+          repo = "syntactic-close";
+          rev = "426975d73c474eb4e6a0af20f34455aac6e89610";
+          sha256 = "1gyhz4mzd5gcfy9mx65aym8abz4wfdgy229aj1ng1c0j32fjk9rm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/syntactic-close";
+          sha256 = "19lrzxxyzdj1nrzdgzandjz3b8b4pw7akbv86yf0mdf023d9as1f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/syntactic-close";
+          license = lib.licenses.free;
+        };
+      }) {};
+    syntactic-sugar = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "syntactic-sugar";
+        ename = "syntactic-sugar";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "syntactic-sugar";
+          rev = "b6a49df4b6056e2619eea9ca554c105ae67e115f";
+          sha256 = "0zymxv4lz3phb2lmza0469ssw3fybribzd1w2fmp8ij1r18xy0xk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/syntactic-sugar";
+          sha256 = "12b2vpvz5h4wzxrk8jrbgc8v0w6bzzvxcyfs083fi1791qq1rw7r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/syntactic-sugar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    syntax-subword = callPackage ({ fetchhg
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "syntax-subword";
+        ename = "syntax-subword";
+        version = "20160519.1205";
+        src = fetchhg {
+          url = "https://bitbucket.com/jpkotta/syntax-subword";
+          rev = "ad0db0fcb464";
+          sha256 = "1wcgr6scvwwfmhhjbpq3riq0gmp4g08ffbl91fpgp72j8zrc1c6x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/syntax-subword";
+          sha256 = "1as89ffqz2h69fdwybgs5wibnrvskm7hd58vagfjkla9pjlpffpm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/syntax-subword";
+          license = lib.licenses.free;
+        };
+      }) {};
+    system-packages = callPackage ({ emacs
+                                   , fetchFromGitLab
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "system-packages";
+        ename = "system-packages";
+        version = "20180921.1206";
+        src = fetchFromGitLab {
+          owner = "jabranham";
+          repo = "system-packages";
+          rev = "41933fbfdfdc6323d8d240f623a4cb167f6b6f6f";
+          sha256 = "05pqp0k66l24mfclgkbii8i09xx4cm7qyf6l1y1l72b2zj25qp7y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/system-packages";
+          sha256 = "13nk3m8gw9kqjllk7hgkmpxsx9y5h03f0l7zydg388wc7cxsiy3l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/system-packages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    system-specific-settings = callPackage ({ fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "system-specific-settings";
+        ename = "system-specific-settings";
+        version = "20140818.757";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "emacs-system-specific-settings";
+          rev = "0050d85b2175095aa5ecf580a2fe43c069b0eef3";
+          sha256 = "1hixilnnybv2v3p1wpn7a0ybwah17grawszs3jycsjgzahpgckv7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/system-specific-settings";
+          sha256 = "1ydmxi8aw2lf78wv4m39yswbqkmcadqg0wmzg9s8b5h9bxxwvppp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/system-specific-settings";
+          license = lib.licenses.free;
+        };
+      }) {};
+    systemd = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "systemd";
+        ename = "systemd";
+        version = "20180629.1406";
+        src = fetchFromGitHub {
+          owner = "holomorph";
+          repo = "systemd-mode";
+          rev = "401d71c2dd24e424216ae5e4275c830f2a9c6b0c";
+          sha256 = "06b8j64fk711fay0p4ifypvpdv2l2kz80rx1hhm6g9991h0x33bj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/systemd";
+          sha256 = "1ykvm8mfi3fjvrkfcy9qn0sr9mhwm9x1svrmrd0gyqk418clk5i3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/systemd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    systemtap-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "systemtap-mode";
+        ename = "systemtap-mode";
+        version = "20151122.1140";
+        src = fetchFromGitHub {
+          owner = "ruediger";
+          repo = "systemtap-mode";
+          rev = "8b5086d6b0050a12bb37e33c24c24d1f420afd3b";
+          sha256 = "14hrqz26h89sdgfpfyhwwxvqkv3j0zn67yy8wz0nbla9k2jjf6h8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/systemtap-mode";
+          sha256 = "1l2jx6mvph0q2pdlhq7p4vwfw72rfl8k1rwi504bbkr5n5xwhhhz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/systemtap-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ta = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ta";
+        ename = "ta";
+        version = "20160619.945";
+        src = fetchFromGitHub {
+          owner = "kuanyui";
+          repo = "ta.el";
+          rev = "668ad41e71f374f8c32c8d0532f3d8485b355d35";
+          sha256 = "1lk7hpdp6c74sdwkg2azfvj4qmbl1ghmhms3r0j4296dj8bl5k63";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ta";
+          sha256 = "0kn2k4n0xfwsrniaqb36v3rxj2pf2sai3bmjksbn1g2kf5g156ll";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ta";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tab-group = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "tab-group";
+        ename = "tab-group";
+        version = "20140306.650";
+        src = fetchFromGitHub {
+          owner = "tarao";
+          repo = "tab-group-el";
+          rev = "5a290ec2608e4100fb188fd60ecb77affcc3465b";
+          sha256 = "0lfvgbgvsm61kv5mcjnhnfjcnr7fy1015y0hndkf9xvdlw4hahr4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tab-group";
+          sha256 = "1i5lxpf3wmqnqj9mzgcn4gp1gjxp737awrzl1dml5wnarbbj4fs9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tab-group";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tab-jump-out = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "tab-jump-out";
+        ename = "tab-jump-out";
+        version = "20151005.1830";
+        src = fetchFromGitHub {
+          owner = "zhangkaiyulw";
+          repo = "tab-jump-out";
+          rev = "1c3fec1826d2891177ea78e4e7cce1dc67e83e51";
+          sha256 = "0h7sfbca1nzcjylwl7zp25yj6wxnlx8g8a50zc6sg6jg4rggi2fm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tab-jump-out";
+          sha256 = "1p2hkj0d9hbiwbf746l3rad8a5x6hk97b0ajl6q6cwbmy2qm3cca";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tab-jump-out";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tabbar = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "tabbar";
+        ename = "tabbar";
+        version = "20180726.1035";
+        src = fetchFromGitHub {
+          owner = "dholm";
+          repo = "tabbar";
+          rev = "82bbda31cbe8ef367dd6501c3aa14b7f2c835910";
+          sha256 = "01sw76wp8bvh21h30pkc3kjr98c8m6qid6misk1y7hkyld0bzxay";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tabbar";
+          sha256 = "1y376nz1xmchwns4fz8dixbb7hbqh4mln78zvsh7y32il98wzvx9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tabbar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tabbar-ruler = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , mode-icons
+                                , powerline
+                                , tabbar }:
+      melpaBuild {
+        pname = "tabbar-ruler";
+        ename = "tabbar-ruler";
+        version = "20160801.2007";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "tabbar-ruler.el";
+          rev = "535568189aa12a3eff7f977d2783e57b6a65ab6a";
+          sha256 = "1csj6qhwihdf4kfahcqhm163isiwac08w4nqid1hnca184bfk6xm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tabbar-ruler";
+          sha256 = "10dwjj6r74g9rzdd650wa1wxhqc0q6dmff4j0qbbhmjsxvsr3y0d";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib mode-icons powerline tabbar ];
+        meta = {
+          homepage = "https://melpa.org/#/tabbar-ruler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tablist = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "tablist";
+        ename = "tablist";
+        version = "20170219.1935";
+        src = fetchFromGitHub {
+          owner = "politza";
+          repo = "tablist";
+          rev = "c834a84efb6efa32497efe1e73160fade741b836";
+          sha256 = "0nkrndgg0zrqxb7hilqbrywi8n1lcf3jxjjp1hfn5f0arxy64pcv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tablist";
+          sha256 = "0c10g86xjhzpmc2sqjmzcmi393qskyw6d9bydqzjk3ffjzklm45p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tablist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tabula-rasa = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "tabula-rasa";
+        ename = "tabula-rasa";
+        version = "20141215.2147";
+        src = fetchFromGitHub {
+          owner = "idomagal";
+          repo = "Tabula-Rasa";
+          rev = "e85fff9de18dc31bc6a7aca726e34a95cc5459f5";
+          sha256 = "1dbjfq9a7a5s9c18nrp4kcda64jkg5cp8na31kxw0hjcn98dgqa8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tabula-rasa";
+          sha256 = "14j92inssmm61bn475gyn0dn0rv8kvfnqyl1zq3xliy7a0jn58zz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tabula-rasa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tagedit = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "tagedit";
+        ename = "tagedit";
+        version = "20161121.55";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "tagedit";
+          rev = "b3a70101a0dcf85498c92b7fcfa7fdbac869746c";
+          sha256 = "0xq9i3axlq9wgsr27nbhi5k9hxr1wahygkb73xkvxlgmvkmikcrw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tagedit";
+          sha256 = "0vfkbrxmrw4fwdz324s734zxdxm2nj3df6i8m6lgb9pizqyp2g6z";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/tagedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    take-off = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , web-server }:
+      melpaBuild {
+        pname = "take-off";
+        ename = "take-off";
+        version = "20140531.217";
+        src = fetchFromGitHub {
+          owner = "tburette";
+          repo = "take-off";
+          rev = "aa9ea45566fc74febbb6ee9c409ecc4b59246215";
+          sha256 = "13zwlb5805cpv0pbr7fj5b4crlg7lb0ibslvcpszm0cz6rlifcvf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/take-off";
+          sha256 = "05vlajmirbp62rpbdwa2bimpzyl9xc331gg0lhn2rkivc0hma2ar";
+          name = "recipe";
+        };
+        packageRequires = [ emacs web-server ];
+        meta = {
+          homepage = "https://melpa.org/#/take-off";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tango-2-theme = callPackage ({ fetchgit
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "tango-2-theme";
+        ename = "tango-2-theme";
+        version = "20120312.1325";
+        src = fetchgit {
+          url = "https://gist.github.com/2024464.git";
+          rev = "64e44c98e41ebbe3b827d54280e3b9615787daaa";
+          sha256 = "1lqkazis9pfcfdsb2lar4l1n4pd085v60xmnlkdrdllwamqachkk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tango-2-theme";
+          sha256 = "1a9qmz99h99gpd0sxqb71c08wr8pm3bzsg3p4cvf3vcirvav9lq6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tango-2-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tango-plus-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "tango-plus-theme";
+        ename = "tango-plus-theme";
+        version = "20170214.908";
+        src = fetchFromGitHub {
+          owner = "tmalsburg";
+          repo = "tango-plus-theme";
+          rev = "8ba8901397e3e9f1d53110487bfa0effc65015e7";
+          sha256 = "025dca4yqpai45s74nk41y075v8pv59fdna11c0qqz3ihyrdhbrq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tango-plus-theme";
+          sha256 = "1p1b48fvmk7a8m3bnddkx2pp7kz5agac0v1ii2r6iqapdqsl22ng";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tango-plus-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tangotango-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "tangotango-theme";
+        ename = "tangotango-theme";
+        version = "20170924.809";
+        src = fetchFromGitHub {
+          owner = "juba";
+          repo = "color-theme-tangotango";
+          rev = "e2f2ea9c35f06dfc43a29c91c14cf0cdb19f2144";
+          sha256 = "01gvsvha8z7pyr8c33gh3xmz47lh6b8g0nwf1gzdiw1gd0sfhs4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tangotango-theme";
+          sha256 = "05cnvyqmh5h5mqys7qs7d9knzxzmi2x0j1avp77x5l5njzzv59s2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tangotango-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tao-theme = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "tao-theme";
+        ename = "tao-theme";
+        version = "20181020.1026";
+        src = fetchFromGitHub {
+          owner = "11111000000";
+          repo = "tao-theme-emacs";
+          rev = "c10ba53dad8aa3625191184a56c34ed456561771";
+          sha256 = "1c3hcmg65q66vyj21y4pgld68h1i67viy0q0ps66knflzx38g7b1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tao-theme";
+          sha256 = "0gl6zzk5ha6vl2xxf5fcnv1k42cw4axdjdcirr1c4r8jwdq3nl3a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tao-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    taskpaper-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "taskpaper-mode";
+        ename = "taskpaper-mode";
+        version = "20181113.131";
+        src = fetchFromGitHub {
+          owner = "saf-dmitry";
+          repo = "taskpaper-mode";
+          rev = "db15fa52d5f96085665b04265918c3c78a0ec059";
+          sha256 = "1c771plbh2421lvdhfjbr5wfdp9pnnfgir52hiymq30ij804nqr3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/taskpaper-mode";
+          sha256 = "0gayhzakiwlrkysmh24499pyzdfy3rmf8d68vamih7igxpl57gim";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/taskpaper-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tawny-mode = callPackage ({ cider
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "tawny-mode";
+        ename = "tawny-mode";
+        version = "20170422.1502";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "tawny-owl";
+          rev = "9f11bb428a255a605c725dfbd23cc082c5d258af";
+          sha256 = "0l419pvvnj850c6byr7njnjki171mcsvlqj8g2d4qk16j504n34m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tawny-mode";
+          sha256 = "1xaw1six1n6rw1283fdyl15xcf6m7ngvq6gqlz0xzpf232c4b0kr";
+          name = "recipe";
+        };
+        packageRequires = [ cider emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tawny-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tblui = callPackage ({ cl-lib ? null
+                         , dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , magit-popup
+                         , melpaBuild
+                         , tablist }:
+      melpaBuild {
+        pname = "tblui";
+        ename = "tblui";
+        version = "20161007.1212";
+        src = fetchFromGitHub {
+          owner = "Yuki-Inoue";
+          repo = "tblui.el";
+          rev = "e280e11b35a2fdbcadf9ce901a2b62684ac7a7a3";
+          sha256 = "0alb0gpdny1y90b2c5s25as56qbi3dy8rfnm9ba0k7ifwy0lmfq5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tblui";
+          sha256 = "1m0zhk5zyialklnil5az974yz6g1zksw02453cxc0xpn5pf0a3xa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash magit-popup tablist ];
+        meta = {
+          homepage = "https://melpa.org/#/tblui";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tbx2org = callPackage ({ cl-lib ? null
+                           , dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "tbx2org";
+        ename = "tbx2org";
+        version = "20140224.759";
+        src = fetchFromGitHub {
+          owner = "istib";
+          repo = "tbx2org";
+          rev = "08e9816ba6066f56936050b58d07ceb2187ae6f7";
+          sha256 = "1jp80qywcphql1ngd4fr24lqdfwrw0bw6q9hgq5vmzgjwfxwxwd4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tbx2org";
+          sha256 = "1yvkw65la4w12c4w6l9ai73lzng170wv4b8gry99m2bakw3wr8m8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/tbx2org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tc = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "tc";
+        ename = "tc";
+        version = "20181108.2028";
+        src = fetchFromGitHub {
+          owner = "kanchoku";
+          repo = "tc";
+          rev = "5496f8dee27c4d925977da3cca6fcacf9b45bc58";
+          sha256 = "1clf56sxvrky05qzk5kri01r0jz4zfwysxzs3iix0aljrz8mdi8w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tc";
+          sha256 = "05lnsaizlh4wqjkp0wqcm1756r9ia46as8zf01k8qsi0mm452g6q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tco = callPackage ({ dash
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "tco";
+        ename = "tco";
+        version = "20160810.1712";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "tco.el";
+          rev = "5d3498c5f44d3a44c9aabbba71b590f6a2f85145";
+          sha256 = "0vzixcp6anxdxchafj7lzs4pxfnzkqhqlyz05dxasby71zx7g49v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tco";
+          sha256 = "0hfrzwjlgynk3mydrpmic9mckak37r22fdglrfas6zdihgrg152f";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tco";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tdd-status-mode-line = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "tdd-status-mode-line";
+        ename = "tdd-status-mode-line";
+        version = "20131123.916";
+        src = fetchFromGitHub {
+          owner = "algernon";
+          repo = "tdd-status-mode-line";
+          rev = "9b3c35b0a972772640e9fee653eab6a76e06416a";
+          sha256 = "0bvxc926kaxvqnppaw4y6gp814qc0krvidn5qg761z4qwz023rax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tdd-status-mode-line";
+          sha256 = "1i0s7f4y4v8681mymcmjlcbq0jfghgmdzrs167c453mb5ssz8yxg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tdd-status-mode-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tea-time = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "tea-time";
+        ename = "tea-time";
+        version = "20120331.120";
+        src = fetchFromGitHub {
+          owner = "konzeptual";
+          repo = "tea-time";
+          rev = "1f6cf0bdd27c5eb3508989c5095427781f858eca";
+          sha256 = "0b4cwkwkc4i8lc4j30xc9d6xskm3gqrc2dij60ya75h92aj0lj40";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tea-time";
+          sha256 = "0qypwf0pgsixq6c5avbwp81i3ayy9dd2fngzdvq14pax913q8pg1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tea-time";
+          license = lib.licenses.free;
+        };
+      }) {};
+    telepathy = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "telepathy";
+        ename = "telepathy";
+        version = "20131209.458";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "telepathy.el";
+          rev = "211d785b02a29ddc254422fdcc3db45262582f8c";
+          sha256 = "16kr1p4lzi1ysd5r2dh0mxk60zsm5fvwa9345nfyrgdic340yscc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/telepathy";
+          sha256 = "0c3d6vk7d6vqzjndlym2kk7d2zm0b15ac4142ir03p6f19rqq9pr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/telepathy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    telephone-line = callPackage ({ cl-generic
+                                  , cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , seq }:
+      melpaBuild {
+        pname = "telephone-line";
+        ename = "telephone-line";
+        version = "20181115.1820";
+        src = fetchFromGitHub {
+          owner = "dbordak";
+          repo = "telephone-line";
+          rev = "212b3df07a58cfbeb1f767f6b7759c41e3ad44ff";
+          sha256 = "0n641f81rxq8g01sh7djpc2affdbwr51hkhh3r1bawfmnwndc12f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/telephone-line";
+          sha256 = "0dyh9h1yk9y0217b6rxsm7m372n910vpfgw5w23lkkrwa8x8qpx3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-generic cl-lib emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/telephone-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    template-overlays = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , ov }:
+      melpaBuild {
+        pname = "template-overlays";
+        ename = "template-overlays";
+        version = "20180706.432";
+        src = fetchFromGitHub {
+          owner = "mmontone";
+          repo = "template-overlays";
+          rev = "3cbc9a4882dcbbddf9b168883d119a6af0848784";
+          sha256 = "1lnrs6zphpk1qi8pg8km9srbv5n9i70f2jvyj5zvxhlpp0jb52l2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/template-overlays";
+          sha256 = "0vmadkgzp4i0mh64la67k1anvmlmd4i7iibdlr9ly8z7i3cdsxqn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ov ];
+        meta = {
+          homepage = "https://melpa.org/#/template-overlays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    temporary-persistent = callPackage ({ dash
+                                        , emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , names
+                                        , s }:
+      melpaBuild {
+        pname = "temporary-persistent";
+        ename = "temporary-persistent";
+        version = "20161210.333";
+        src = fetchFromGitHub {
+          owner = "kostafey";
+          repo = "temporary-persistent";
+          rev = "1132e940dc1fd27f205758495640cc4a42270cff";
+          sha256 = "155yyinh342k8fz8g4xzz0glqkxkjl6p6y2wym6p12phk7v2x3ic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/temporary-persistent";
+          sha256 = "0afjcad97pzbrjs1v80l6c98vi5asgaxcn2rq95gz1ld7nn0a9zh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs names s ];
+        meta = {
+          homepage = "https://melpa.org/#/temporary-persistent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ten-hundred-mode = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ten-hundred-mode";
+        ename = "ten-hundred-mode";
+        version = "20161028.1536";
+        src = fetchFromGitHub {
+          owner = "aaron-em";
+          repo = "ten-hundred-mode.el";
+          rev = "bdcfda49b1819e82d61fe90947e50bb948cf7933";
+          sha256 = "11nsh6dkd3i489lrqpd9xhr4c0ai51364rlrd6slm54720by9jql";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ten-hundred-mode";
+          sha256 = "17v38h33ka70ynq72mvma2chvlnm1k2amyvk62c65iv67rwilky3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ten-hundred-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-alert = callPackage ({ alert
+                              , emacs
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , term-cmd }:
+      melpaBuild {
+        pname = "term-alert";
+        ename = "term-alert";
+        version = "20161119.145";
+        src = fetchFromGitHub {
+          owner = "CallumCameron";
+          repo = "term-alert";
+          rev = "47af9e6fe483ef0d393098c145f499362a33292a";
+          sha256 = "1nv8ma8x9xkgsl95z7yysy8q1lb3xr0pd8a5sb01nlx8ks3clad4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-alert";
+          sha256 = "02qvfhklysfk1fd4ibdngf4crp9k5ab11zgg90hi1sp429a53f3m";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs f term-cmd ];
+        meta = {
+          homepage = "https://melpa.org/#/term-alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-cmd = callPackage ({ dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "term-cmd";
+        ename = "term-cmd";
+        version = "20160517.345";
+        src = fetchFromGitHub {
+          owner = "CallumCameron";
+          repo = "term-cmd";
+          rev = "6c9cbc659b70241d2ed1601eea34aeeca0646dac";
+          sha256 = "08qiipjsqc9dfbha6r2yijjbrg2s4i2mkn6zn5616086550v3kpj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-cmd";
+          sha256 = "0pbz9fy9rjfpzspwq78ggf1wcvjslwvj8fvc05w4g56ydza0gqi4";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/term-cmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-manager = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "term-manager";
+        ename = "term-manager";
+        version = "20171020.141";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "term-manager";
+          rev = "13a0f1637a1f075d70211ccb8162e63a18a474da";
+          sha256 = "0hvn60wk3w27fjb023drnaw0gmys6ancha8blpl0r4vc5k203kcf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-manager";
+          sha256 = "0ab388ki7vr1wpz81bvbl2fskq9zz5bicdf5gqfg01qzv5l75iza";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/term-manager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-plus = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "term-plus";
+        ename = "term+";
+        version = "20170508.1717";
+        src = fetchFromGitHub {
+          owner = "tarao";
+          repo = "term-plus-el";
+          rev = "c3c9239b339c127231860de43abfa08c44c0201a";
+          sha256 = "1mpv9vvvl1sh35vsa5415rvdv57mmbfix8s435q676zvhz3nl8yx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term+";
+          sha256 = "12lvfspqmyrapmbz3x997vf160927d325y50kxdx3s6p81r7n2n8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/term+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-plus-key-intercept = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , key-intercept
+                                           , lib
+                                           , melpaBuild
+                                           , term-plus }:
+      melpaBuild {
+        pname = "term-plus-key-intercept";
+        ename = "term+key-intercept";
+        version = "20140210.2350";
+        src = fetchFromGitHub {
+          owner = "tarao";
+          repo = "term-plus-ki-el";
+          rev = "fd0771fd66b8c7a909aaac972194485c79ba48c4";
+          sha256 = "1dql2w8xkdw52zlrc2p9x391zn8wv4dj8a6293p4s08if7gg260w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term+key-intercept";
+          sha256 = "1564a86950xdwsrwinrs118bjsfmbv8gicq0c2dfr827v5b6zrlb";
+          name = "recipe";
+        };
+        packageRequires = [ key-intercept term-plus ];
+        meta = {
+          homepage = "https://melpa.org/#/term+key-intercept";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-plus-mux = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , tab-group
+                                 , term-plus }:
+      melpaBuild {
+        pname = "term-plus-mux";
+        ename = "term+mux";
+        version = "20140210.2349";
+        src = fetchFromGitHub {
+          owner = "tarao";
+          repo = "term-plus-mux-el";
+          rev = "81b60e80cf008472bfd7fad9233af2ef722c208a";
+          sha256 = "12gfvcf7hl29xhg231cx76q04ll7cvfpvhkb0qs3qn1sqb50fs2q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term+mux";
+          sha256 = "129kzjpi5nzagqkjfikx9i7k6489dy7d3pd7ggn59p4cnh3r2rhh";
+          name = "recipe";
+        };
+        packageRequires = [ tab-group term-plus ];
+        meta = {
+          homepage = "https://melpa.org/#/term+mux";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-projectile = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , projectile
+                                   , term-manager }:
+      melpaBuild {
+        pname = "term-projectile";
+        ename = "term-projectile";
+        version = "20170421.105";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "term-manager";
+          rev = "7180f09078f89aadb83061420ca8fd58d929b629";
+          sha256 = "1d1szcdpgmkp6r9qsvk7pv0swl626d5svna2xqr3lrpgqzmsjcnk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-projectile";
+          sha256 = "1mzyzjxkdfvf1kq9m3c1f6y6xzj1qq53rixawmnzmil5cmznvwag";
+          name = "recipe";
+        };
+        packageRequires = [ emacs projectile term-manager ];
+        meta = {
+          homepage = "https://melpa.org/#/term-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-run = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "term-run";
+        ename = "term-run";
+        version = "20151228.105";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "term-run-el";
+          rev = "54650dbbabb13cb2a6c0670ff6b24b29717a6a8b";
+          sha256 = "149pl3zxg5kriydk5h6j95jyly6i23w4w4g4a99s4zi6ljiny6c6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-run";
+          sha256 = "1bx3s68rgr9slsw9k01gfg7sxd4z7sarg4pi2ivril7108mhg2cs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/term-run";
+          license = lib.licenses.free;
+        };
+      }) {};
+    termbright-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "termbright-theme";
+        ename = "termbright-theme";
+        version = "20151030.1935";
+        src = fetchFromGitHub {
+          owner = "bmastenbrook";
+          repo = "termbright-theme-el";
+          rev = "bec6ab14336c0611e85f45486276004f16d20607";
+          sha256 = "0gfsqpza8phvma5y3ck0n6p197x1i33w39m3c7jmja4ml121n73d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/termbright-theme";
+          sha256 = "14q88qdbnyzxr8sr8i5glj674sb4150b9y6nag0dqrxs629is6xj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/termbright-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    terminal-focus-reporting = callPackage ({ emacs
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "terminal-focus-reporting";
+        ename = "terminal-focus-reporting";
+        version = "20180830.19";
+        src = fetchFromGitHub {
+          owner = "veelenga";
+          repo = "terminal-focus-reporting.el";
+          rev = "8b84bf18f4c5f1b59a11692eb706f13c3598d9a5";
+          sha256 = "0bbcl0mq62f22n2aipgzx93164x81bgybfd0x7gvsfva76qs8pc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/terminal-focus-reporting";
+          sha256 = "0iwq0rabq0sdn4apa5ibfp912j76w7hzg3q5lbxp7fspfwwynvg2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/terminal-focus-reporting";
+          license = lib.licenses.free;
+        };
+      }) {};
+    terminal-here = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "terminal-here";
+        ename = "terminal-here";
+        version = "20180513.133";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "terminal-here";
+          rev = "2b57dcfc7d78c6762eb74b37930067a75beb5ca4";
+          sha256 = "01zljgwp5r8vd913y4r9s3ysrsp8qf2s7sgxl6xvh5iry06d1wpr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/terminal-here";
+          sha256 = "1w64r3y88lspxxcqcqfwhakk8p9vl7q3z610dykfbqwqx61a6adj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/terminal-here";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tern = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , json ? null
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "tern";
+        ename = "tern";
+        version = "20181107.2322";
+        src = fetchFromGitHub {
+          owner = "ternjs";
+          repo = "tern";
+          rev = "40a0c74db3888b997a9115720ff91c399bb1b146";
+          sha256 = "0dh0bfs0knikzn4gvjh9274yhbg3ndw46qmj4jy0kxh7gfl2lpkh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tern";
+          sha256 = "1am97ssslkyijpvgk4nldi67ws48g1kpj6gisqzajrrlw5q93wvd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/tern";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tern-auto-complete = callPackage ({ auto-complete
+                                      , cl-lib ? null
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , tern }:
+      melpaBuild {
+        pname = "tern-auto-complete";
+        ename = "tern-auto-complete";
+        version = "20170521.1235";
+        src = fetchFromGitHub {
+          owner = "ternjs";
+          repo = "tern";
+          rev = "d545bbdd8482c231211f9521c688fc06632e745e";
+          sha256 = "0ribzvl5gs281chp2kqaqmjj9xji7k9l71hsblfw1vj2w9l7nw2m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tern-auto-complete";
+          sha256 = "1i99b4awph50ygcqsnppm1h48hbf8cpq1ppd4swakrwgmcy2mn26";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib emacs tern ];
+        meta = {
+          homepage = "https://melpa.org/#/tern-auto-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tern-context-coloring = callPackage ({ context-coloring
+                                         , emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , tern }:
+      melpaBuild {
+        pname = "tern-context-coloring";
+        ename = "tern-context-coloring";
+        version = "20161217.2347";
+        src = fetchFromGitHub {
+          owner = "jacksonrayhamilton";
+          repo = "tern-context-coloring";
+          rev = "db0466c650ed4f7e6621a48dfdc53eaf5e127be9";
+          sha256 = "093mdq97gc0ljw6islhm7y1yl3yf7w4gf205s96bnsnb1v952n63";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tern-context-coloring";
+          sha256 = "0wkb7gn2ma6mz495bgphcjs5p0c6a869zk4a8mnm0spq41xbw4gi";
+          name = "recipe";
+        };
+        packageRequires = [ context-coloring emacs tern ];
+        meta = {
+          homepage = "https://melpa.org/#/tern-context-coloring";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tern-django = callPackage ({ emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , tern }:
+      melpaBuild {
+        pname = "tern-django";
+        ename = "tern-django";
+        version = "20160221.1123";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "tern-django";
+          rev = "856fc98dc5e7cb4c8bc200f99150cc6187c82861";
+          sha256 = "15jzqwfr1958s21qzimvv87kckqyq01bimqgawb51b6xi9ib3biv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tern-django";
+          sha256 = "1pjaaffadaw8h2n7yv01ks19gw59dmh8bp8vw51hx1082r3yfvv0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f tern ];
+        meta = {
+          homepage = "https://melpa.org/#/tern-django";
+          license = lib.licenses.free;
+        };
+      }) {};
+    terraform-mode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , hcl-mode
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "terraform-mode";
+        ename = "terraform-mode";
+        version = "20170111.2117";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-terraform-mode";
+          rev = "6973d1acaba2835dfdf174f5a5e27de6366002e1";
+          sha256 = "12ww36g7mz4p4nslajcsdcm8xk6blwjwqjwhyp0n10ym6ssbh820";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/terraform-mode";
+          sha256 = "1m3s390mn4pba7zk17xfk045dqr4rrpv5gw63jm18fyqipsi6scn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hcl-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/terraform-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    test-c = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "test-c";
+        ename = "test-c";
+        version = "20180423.1020";
+        src = fetchFromGitHub {
+          owner = "aaptel";
+          repo = "test-c";
+          rev = "761a576f62c7021ba941f178f153c51289df1553";
+          sha256 = "04dxgg4jz8cnw19wxybjwd36z8i9j6an15k9pz3zh3v7m72qzw7c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/test-c";
+          sha256 = "1gy5dxkd4fpzzm2sq9g7bmi1ylwvsgh6hlvjmc1c064wjkha9j9z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/test-c";
+          license = lib.licenses.free;
+        };
+      }) {};
+    test-case-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , fringe-helper
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "test-case-mode";
+        ename = "test-case-mode";
+        version = "20130525.734";
+        src = fetchFromGitHub {
+          owner = "ieure";
+          repo = "test-case-mode";
+          rev = "26e397c0f930b7eb0be413ef7dd257b1da052bec";
+          sha256 = "108csr1d7w0105rb6brzgbksb9wmq1p573vxbq0miv5k894j447f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/test-case-mode";
+          sha256 = "1iba97yvbi5vr7gvc58gq2ah6jg2s7apc9ssq7mdzki823n8z2qi";
+          name = "recipe";
+        };
+        packageRequires = [ fringe-helper ];
+        meta = {
+          homepage = "https://melpa.org/#/test-case-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    test-kitchen = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "test-kitchen";
+        ename = "test-kitchen";
+        version = "20171129.1235";
+        src = fetchFromGitHub {
+          owner = "jjasghar";
+          repo = "test-kitchen-el";
+          rev = "0fc0ca4808425f03fbeb8125246043723e2a179a";
+          sha256 = "1pip15ysya8nsk1xgz6k6gcjm6g60922r0im2anq4j2gjzdja79k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/test-kitchen";
+          sha256 = "1bl3yvj56dq147yplrcwphcxiwvmx5n97y4qpkm9imiv8cnjm1g0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/test-kitchen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    test-simple = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "test-simple";
+        ename = "test-simple";
+        version = "20170527.832";
+        src = fetchFromGitHub {
+          owner = "rocky";
+          repo = "emacs-test-simple";
+          rev = "b3b69f52207d3a8111421ad7ab9ed82abbe85316";
+          sha256 = "0n400nmz3iyp50sdd4gz0bmfn1sfq5p6a69yv4zd09ypa9gkndws";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/test-simple";
+          sha256 = "1l6y77fqd0l0mh2my23psi66v5ya6pbr2hgvcbsaqjnpmfm90w3g";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/test-simple";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tex-smart-umlauts = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "tex-smart-umlauts";
+        ename = "tex-smart-umlauts";
+        version = "20160427.58";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "tex-smart-umlauts";
+          rev = "5261b931443558f4252489a1e6616034848aff02";
+          sha256 = "1rq1l52mgbasgwvjwpivjrfjf8l8r85wdkfpbw8213449qh9c9zh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tex-smart-umlauts";
+          sha256 = "05q5mzl0pya682hdmjyp09hh121dc5y4d5vgqjffx3yfd5kgsy5w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tex-smart-umlauts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    texfrag = callPackage ({ auctex
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "texfrag";
+        ename = "texfrag";
+        version = "20181001.53";
+        src = fetchFromGitHub {
+          owner = "TobiasZawada";
+          repo = "texfrag";
+          rev = "87ebd2653c39abe0b02a91ab2182e6fff562f6c7";
+          sha256 = "0fi9cih597g6iigrvdyfxa9cc3irsvfcbzf74fkp62ggpmqlal90";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/texfrag";
+          sha256 = "195vdpwqzypz35v8hc7ai9xpv1flrik60lgrk5m7xypnlp7mpr2x";
+          name = "recipe";
+        };
+        packageRequires = [ auctex emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/texfrag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    textile-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "textile-mode";
+        ename = "textile-mode";
+        version = "20170304.916";
+        src = fetchFromGitHub {
+          owner = "juba";
+          repo = "textile-mode";
+          rev = "c37aaab809503df008209390e31e19abf4e23630";
+          sha256 = "16543im5iymc5hfcix1lglbvpq4v0441vb7sk58nbnffqba83yzy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/textile-mode";
+          sha256 = "0c1l7ml9b1zipk5fhmhirrh070h0qwwiagdk84i04yvdmmcjw2nf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/textile-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    textmate = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "textmate";
+        ename = "textmate";
+        version = "20110816.1446";
+        src = fetchFromGitHub {
+          owner = "defunkt";
+          repo = "textmate.el";
+          rev = "350918b070148f0ace6d9d3cd4ebcaf15c1a8781";
+          sha256 = "1b7xxz1i84azmbz8rqpxdn18avmnqlj87hfrpbngbf6pj5h9jqjh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/textmate";
+          sha256 = "119w944pwarpqzcr9vys17svy1rkfs9hiln8903q9ff4lnjkpf1v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/textmate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    textmate-to-yas = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "textmate-to-yas";
+        ename = "textmate-to-yas";
+        version = "20160409.1008";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "textmate-to-yas.el";
+          rev = "be3a768b7ac4c2e24b9d4aa6e9ac1d916cdc5a73";
+          sha256 = "1bz5ys36wd00clq9w3ahqpras368aj2b9d4bl32qc6dyp8jfknmz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/textmate-to-yas";
+          sha256 = "04agz4a41h0givfdw88qjd3c7pd418qyigsij4la5f37j5rh338l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/textmate-to-yas";
+          license = lib.licenses.free;
+        };
+      }) {};
+    textx-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "textx-mode";
+        ename = "textx-mode";
+        version = "20170516.211";
+        src = fetchFromGitHub {
+          owner = "novakboskov";
+          repo = "textx-mode";
+          rev = "72f9f0c5855b382024f0da8f56833c22a70a5cb3";
+          sha256 = "1lr9v7dk0pnmpvdvs4m5d9yvxlii0xzr8b3akknm25gvbw1y1q8k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/textx-mode";
+          sha256 = "10y95m6fskvdb2gh078ifa70nc48shkvw0223iyqbyjys35h53bn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/textx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tf2-conf-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "tf2-conf-mode";
+        ename = "tf2-conf-mode";
+        version = "20161209.820";
+        src = fetchFromGitHub {
+          owner = "wynro";
+          repo = "emacs-tf2-conf-mode";
+          rev = "94c971da4a78d55da2848d1e76d513e5e0a8f7eb";
+          sha256 = "0rg3ja6lc2bwq0nw50s0whsb690m7cs6p6an52hlb0qlfwd23mpv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tf2-conf-mode";
+          sha256 = "09kvb3ya1dx5pc146a6r9386fg9n9nfpcxm5mmhmyf75h9c6a25g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tf2-conf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tfsmacs = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , tablist }:
+      melpaBuild {
+        pname = "tfsmacs";
+        ename = "tfsmacs";
+        version = "20180911.1414";
+        src = fetchFromGitHub {
+          owner = "sebasmonia";
+          repo = "tfsmacs";
+          rev = "13ee3f528ff616880611f563a68d921250692ef8";
+          sha256 = "035avqp9m1mbffvc1xd5qvyg93vsxjsphmf394mq15gawqs33ik4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tfsmacs";
+          sha256 = "0j9rkcjxvgkcdnw2lxgk6bwid3q460n0hjxsj4nklv13s5b1hlyk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs tablist ];
+        meta = {
+          homepage = "https://melpa.org/#/tfsmacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    theme-changer = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "theme-changer";
+        ename = "theme-changer";
+        version = "20171221.1127";
+        src = fetchFromGitHub {
+          owner = "hadronzoo";
+          repo = "theme-changer";
+          rev = "61945695a30d678e6a5d47cbe7c8aff59a8c30ea";
+          sha256 = "14xc36jfgj8896pklrkpg394fgikir051rh9vm70v132n6i9j0cn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/theme-changer";
+          sha256 = "1qbmsghkl5gs728q0gaalc7p8q7nzv3l045jc0jdxxnb7na3gc5w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/theme-changer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    theme-looper = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "theme-looper";
+        ename = "theme-looper";
+        version = "20170425.606";
+        src = fetchFromGitHub {
+          owner = "myTerminal";
+          repo = "theme-looper";
+          rev = "5e3a3ea7ad31d4b38efa2cc08f0063b230736da9";
+          sha256 = "06khrrjlhnzckr2zisdbx4pj6r8kmv7dbdzvzh74qz79x337lvzn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/theme-looper";
+          sha256 = "018bixcbzri3zsasy1pp2qfvgd679ylpi9gq26qv9iwlfhlrpwgf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/theme-looper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    therapy = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "therapy";
+        ename = "therapy";
+        version = "20151113.1153";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "therapy";
+          rev = "775a92bb7b6b0fcc5b38c0b5198a9d0a1bef788a";
+          sha256 = "12kz4alyf3y2i7lkvi26hcxy55v0blsrxv5srx9fv5jhxkdz1vq1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/therapy";
+          sha256 = "0y040ghb0y6aq0nchqr09vapz6h6112rkwxkqsx0v7xmqrqfjvhh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/therapy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    thingopt = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "thingopt";
+        ename = "thingopt";
+        version = "20160520.1618";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "thingopt-el";
+          rev = "5679815852652479f3b3c9f3a98affc927384b2c";
+          sha256 = "12zpn0sy2yg37jjjx12h3kln56241b3z09bn5zavmjfdwnr9jd0a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/thingopt";
+          sha256 = "0yvzq1z2nrldr8vhcvxqgzvh4gbrjjwfmprg59p4v5hlxvhxsb1y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/thingopt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    thinks = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "thinks";
+        ename = "thinks";
+        version = "20170802.428";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "thinks.el";
+          rev = "15e0437f5b635bdcf738ca092e26aa6d8ecdba36";
+          sha256 = "1i2i8c53z8n48407jaz641adszv13yjg8cvq4k3hijddp651k555";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/thinks";
+          sha256 = "11vj9mjfzmqwdmkq97aqns3fh8hkgx9scnki6c2iag5lj0av2vcq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/thinks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    thread-dump = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "thread-dump";
+        ename = "thread-dump";
+        version = "20170816.1150";
+        src = fetchFromGitHub {
+          owner = "nd";
+          repo = "thread-dump.el";
+          rev = "204c9600242756d4b514bb5ff6293e052bf4b49d";
+          sha256 = "11qx194gwizqg7p2mqy7mdfii85bdayabxfd388dmrm916i4w47n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/thread-dump";
+          sha256 = "0dzr86jyf2j49gq40q6qd6lppa57n65n94xzpdjjbs182hxzavp2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/thread-dump";
+          license = lib.licenses.free;
+        };
+      }) {};
+    threes = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , seq }:
+      melpaBuild {
+        pname = "threes";
+        ename = "threes";
+        version = "20160820.542";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "threes.el";
+          rev = "6981acb30b856c77cba6aba63fefbf102cbdfbb2";
+          sha256 = "1a7zqq6kmqxgzbsg8yczlvipzv65n10c8j26mc507p4m47nlikgv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/threes";
+          sha256 = "03zwcaibdj88a6whccc5ysqsnfwi76yhsgjsfp3lxjcmlkwqzjbs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/threes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    thrift = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "thrift";
+        ename = "thrift";
+        version = "20180905.350";
+        src = fetchFromGitHub {
+          owner = "facebook";
+          repo = "fbthrift";
+          rev = "a1960cc1a78ada27872913a145395f6bd45c8fd9";
+          sha256 = "1az66smmfdkm4rzb8pripsb8ymyvvpncpapg69byf0hqhklln55z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/thrift";
+          sha256 = "13isxx16h7rg8q5a68qmgrf3rknhfrx1qh6fb5njlznfwhrqry3y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/thrift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    thumb-through = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "thumb-through";
+        ename = "thumb-through";
+        version = "20120118.2134";
+        src = fetchFromGitHub {
+          owner = "apg";
+          repo = "thumb-through";
+          rev = "08d8fb720f93c6172653e035191a8fa9c3305e63";
+          sha256 = "0nypcryqwwsdawqxi7hgsv6fp28zqslj9phw7zscqqxzc3svaywn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/thumb-through";
+          sha256 = "1544xw9lar199idk135z4d6i3n9w0v7g2bq7fnz0rjjw10kxvpcx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/thumb-through";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tickscript-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "tickscript-mode";
+        ename = "tickscript-mode";
+        version = "20171218.1803";
+        src = fetchFromGitHub {
+          owner = "msherry";
+          repo = "tickscript-mode";
+          rev = "f0579f38ff14954df5002ce30ae6d4a2c978d461";
+          sha256 = "0b3rbsd978ch0hiv45sqg9g4zsxhjn557j5f72vjql8cx1h5d8s4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tickscript-mode";
+          sha256 = "0wnck6j377idx7h7csmfdhp6napv3zs4sd24lknfclafhslllp54";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tickscript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tidal = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , haskell-mode
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "tidal";
+        ename = "tidal";
+        version = "20181102.931";
+        src = fetchFromGitHub {
+          owner = "tidalcycles";
+          repo = "Tidal";
+          rev = "de988c6797ca982e03ef0eca6629cc948e2a9487";
+          sha256 = "1a2rlcjzyra5xfa28ciqg5qysm0g8n84w9xrl23khk7ixxdz6gnw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tidal";
+          sha256 = "0im0qbavpykacrwww3y0mlbhf5yfx8afcyvsq5pmjjp0aw245w6a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/tidal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tide = callPackage ({ cl-lib ? null
+                        , dash
+                        , fetchFromGitHub
+                        , fetchurl
+                        , flycheck
+                        , lib
+                        , melpaBuild
+                        , s
+                        , typescript-mode }:
+      melpaBuild {
+        pname = "tide";
+        ename = "tide";
+        version = "20181025.501";
+        src = fetchFromGitHub {
+          owner = "ananthakumaran";
+          repo = "tide";
+          rev = "b2af64e5926b9c1493f7e39d5e928d61975816fb";
+          sha256 = "0m66gvvyqfsizknn1hpia2b0273kvmiwba98hypn3iywwrf2ak3l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tide";
+          sha256 = "1z2xr25s23sz6nrzzw2xg1l2j8jvjhxi53qh7nvxmmq6n6jjpwg1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash flycheck s typescript-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/tide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tile = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , s
+                        , stream }:
+      melpaBuild {
+        pname = "tile";
+        ename = "tile";
+        version = "20161224.1957";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "tile";
+          rev = "22660f21f6e95de5aba55cd5d293d4841e9a4661";
+          sha256 = "1qxhrm852j93sqi1lznlrjn7s0vscsixm48g46ja70gl320chyzm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tile";
+          sha256 = "1795048ilpg6y9pn0jj0js5446hwxhwm6qmk50hds0hpcb396vbv";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s stream ];
+        meta = {
+          homepage = "https://melpa.org/#/tile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    time-ext = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "time-ext";
+        ename = "time-ext";
+        version = "20170126.415";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "time-ext";
+          rev = "d128becf660fe3f30178eb1b05cd266741f4784a";
+          sha256 = "0ynxmik33hh0znmznrf7lkmsh5xggbrvbdhiqa61r0b7gs3jk5fd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/time-ext";
+          sha256 = "133vd63p8258wam4fvblhfg37w2zqy4a5c5c5nafwx0cy90sngwz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/time-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    timecop = callPackage ({ cl-lib ? null
+                           , datetime-format
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "timecop";
+        ename = "timecop";
+        version = "20160520.352";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "emacs-datetime";
+          rev = "3a1871613facc928ff250ed8f12fbc7073e46b75";
+          sha256 = "0pabb260d3vcr57jqqxqk90vp2qnm63sky37rgvhv508zix2hbva";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/timecop";
+          sha256 = "1hnmxcc2hjx9a4jyavx2v9hxmqacmmg1xj86rxqx3ms32hgigji5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib datetime-format ];
+        meta = {
+          homepage = "https://melpa.org/#/timecop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    timer-revert = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "timer-revert";
+        ename = "timer-revert";
+        version = "20150122.1232";
+        src = fetchFromGitHub {
+          owner = "yyr";
+          repo = "timer-revert";
+          rev = "615c91dec8b440d2b9b7c725dd733d7432564e45";
+          sha256 = "1hidvbd1xzz9m0fc55wac1mpv4dpcf8qnw1myh3646bfvivj9c2q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/timer-revert";
+          sha256 = "0lvm2irfx9rb5psm1lf53fv2jjx745n1c172xmyqip5xwgmf6msy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/timer-revert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    timesheet = callPackage ({ auctex
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org
+                             , s }:
+      melpaBuild {
+        pname = "timesheet";
+        ename = "timesheet";
+        version = "20180801.1902";
+        src = fetchFromGitHub {
+          owner = "tmarble";
+          repo = "timesheet.el";
+          rev = "67ca6a9f6733052066b438301fb2dd81b8b3f6eb";
+          sha256 = "0rmh8lik27pmq95858jbjzgvf6rsfdnpynwcagj1fgkval5kzdbs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/timesheet";
+          sha256 = "1gy6bf4wqvp8cw2wjnrr9ijnzwav3p7j46m7qrn6l0517shwl506";
+          name = "recipe";
+        };
+        packageRequires = [ auctex org s ];
+        meta = {
+          homepage = "https://melpa.org/#/timesheet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    timonier = callPackage ({ all-the-icons
+                            , dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , hydra
+                            , lib
+                            , melpaBuild
+                            , pkg-info
+                            , request
+                            , s }:
+      melpaBuild {
+        pname = "timonier";
+        ename = "timonier";
+        version = "20170411.100";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "timonier";
+          rev = "3460a878269424c8d19b7d5d8e04749d0a8bf203";
+          sha256 = "0hhjrmkz9xf5wazh52j2q6qqybjizk2jszvqjz9ywwg9milvqf50";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/timonier";
+          sha256 = "0vb83kv2dkca2bq876icxs8iivv9qgkzmzrsxfpnvbv752b220b0";
+          name = "recipe";
+        };
+        packageRequires = [
+          all-the-icons
+          dash
+          emacs
+          f
+          hydra
+          pkg-info
+          request
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/timonier";
+          license = lib.licenses.free;
+        };
+      }) {};
+    timp = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , fifo-class
+                        , lib
+                        , melpaBuild
+                        , signal }:
+      melpaBuild {
+        pname = "timp";
+        ename = "timp";
+        version = "20160618.103";
+        src = fetchFromGitHub {
+          owner = "mola-T";
+          repo = "timp";
+          rev = "59657bf603904635d88c3fe4ff1ce45ee6572428";
+          sha256 = "13adchpry39fv3rz3mnc21hr66d176d52hbgmgh5p8p9ylay7xha";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/timp";
+          sha256 = "1vh2wsgd8bclkbzn59zqbzzfzs0xx6x82004l7vnma8z97swvhgs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs fifo-class signal ];
+        meta = {
+          homepage = "https://melpa.org/#/timp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tinkerer = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "tinkerer";
+        ename = "tinkerer";
+        version = "20170906.524";
+        src = fetchFromGitHub {
+          owner = "yyr";
+          repo = "tinkerer.el";
+          rev = "e34135555f3748b578c7f8706dfd0c888fb87581";
+          sha256 = "0lzrarqh965ysd7w0z5rbisl45j11fbibyxmgivgy9parvhg59hk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tinkerer";
+          sha256 = "0qh6pzjn98jlpxcm9zf25ga0y3d3v53275a9zgswyhz33mafd7pd";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/tinkerer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tiny = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "tiny";
+        ename = "tiny";
+        version = "20170903.249";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "tiny";
+          rev = "481d36e47e51f27e64c826633c01518459f17d1c";
+          sha256 = "1wdv017pc7ggxd3vwmhjckybxwkfkbk9inkkz6pnc58k0fflsp7l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tiny";
+          sha256 = "183qczyb6c8zmdgmsjsj4hddmvnzzq4c7syslm861xcyxia94icy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tiny";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tiny-menu = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "tiny-menu";
+        ename = "tiny-menu";
+        version = "20161213.435";
+        src = fetchFromGitHub {
+          owner = "aaronbieber";
+          repo = "tiny-menu.el";
+          rev = "f1fc844f514f57fd93602ff5e00c6125b0e93254";
+          sha256 = "125ckmfsvzacd5icsnldcbfl4rkxpfal6qfindy80i84vk0qw47g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tiny-menu";
+          sha256 = "1nngf6vsqfr9fx82mj8dl8zw0fpwf4kr74sflxxk7qxj4aw1jirk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tiny-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tinysegmenter = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "tinysegmenter";
+        ename = "tinysegmenter";
+        version = "20141124.213";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "tinysegmenter.el";
+          rev = "872134704bd25c13a4c59552433da4c6881b5230";
+          sha256 = "1n8cn6mr26hgmsm2mkbj5gs6dv61d0pap8ija4g0n1vsibfhzd8j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tinysegmenter";
+          sha256 = "005yy2f8vghvwdcwakz5sr9n1gzk6cfyglm6d8b74y90d8fng0r6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/tinysegmenter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tj3-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "tj3-mode";
+        ename = "tj3-mode";
+        version = "20180519.528";
+        src = fetchFromGitHub {
+          owner = "csrhodes";
+          repo = "tj3-mode";
+          rev = "1d98eb23f1606392f34ef1b80517cfc940fb9950";
+          sha256 = "1gzi8pvdgj4s9c54m2a8hicvg8dzac6253kyd2h71bljm4ilwl0f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tj3-mode";
+          sha256 = "06mhg0jc80cymplbri6axyzv18ayxppqz3vggywq9g2ba1vqj41h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tj3-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tldr = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "tldr";
+        ename = "tldr";
+        version = "20180122.312";
+        src = fetchFromGitHub {
+          owner = "kuanyui";
+          repo = "tldr.el";
+          rev = "398b197c8d2238628b07e1b32d0f373876279f4c";
+          sha256 = "0iq7qlis6c6r2qkdpncrhh5vsihkhvy5x4y1y8cjb7zxkh62w33f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tldr";
+          sha256 = "1f1xsmkbf4j1c876qqr9h8fgx3zxjgdfzvzf6capxlx2svhxzvc9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tldr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tmmofl = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "tmmofl";
+        ename = "tmmofl";
+        version = "20121025.401";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "tmmofl";
+          rev = "532aa6978e994e2b069ffe37aaf9a0011a07dadc";
+          sha256 = "1ypbv9jbdnwv3xjsfzq8i3nmqdvziynv2rqsd6fm2r1xw0q06xd6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tmmofl";
+          sha256 = "1idflc5ky8hwdkps1rihdqy3i6cmhrh83sxz3kgf2kqjh365yr8b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tmmofl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toc-org = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "toc-org";
+        ename = "toc-org";
+        version = "20181108.821";
+        src = fetchFromGitHub {
+          owner = "snosov1";
+          repo = "toc-org";
+          rev = "ebff38bfa4cc95476a20a349014e2d1862ff4647";
+          sha256 = "0ml075741iw9n4apiy9iv30wx4bgzpn6iisrzx3mxjl85kgmlmf2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/toc-org";
+          sha256 = "06mx2b0zjck82vp3i4bwbqlrzn05i2rkf8080cn34nkizi59wlbs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/toc-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    todotxt = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "todotxt";
+        ename = "todotxt";
+        version = "20180626.1530";
+        src = fetchFromGitHub {
+          owner = "rpdillon";
+          repo = "todotxt.el";
+          rev = "f13e404304c9d26c105de872f96b4601441b3875";
+          sha256 = "1yvy2pl2ncgkz1xz598qjvp2v3g66m57wz7nra2vira7m4kq4671";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/todotxt";
+          sha256 = "1ravnkj6y2p027yhba2lan10079xzd2q7l8gyb8n6bwq14jif127";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/todotxt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    todotxt-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "todotxt-mode";
+        ename = "todotxt-mode";
+        version = "20150424.704";
+        src = fetchFromGitHub {
+          owner = "avillafiorita";
+          repo = "todotxt-mode";
+          rev = "dc6ae151edee88f329ba7abc5d39b7440002232f";
+          sha256 = "1k9ywi7cdgb6i600wr04r2l00423l6vr7k93qa7i7svv856nbbc7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/todotxt-mode";
+          sha256 = "1bs4air13ifx3xkhcfi80z29alsd63r436gnyvjyxlph2ip37v7k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/todotxt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    togetherly = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "togetherly";
+        ename = "togetherly";
+        version = "20170425.2316";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "togetherly";
+          rev = "65072b1d5e04c7098c318ebf1af279f596039ef9";
+          sha256 = "1gjqwxpl1ysrjcmbs9w39hvim1avac7nm4rhmqhmrgwn84bxm2fl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/togetherly";
+          sha256 = "01ks160dfmgh05lx0lmyg020hba8nw49mj51dp1afcsmx4dkis2f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/togetherly";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toggle = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "toggle";
+        ename = "toggle";
+        version = "20180315.1703";
+        src = fetchFromGitHub {
+          owner = "zenspider";
+          repo = "elisp";
+          rev = "ee8a9c3052446876057ff853369d136aea7831f5";
+          sha256 = "15sla4n88003fclni5nhsrw3ib7bql11ks8pb7rgjyjddqrq274r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/toggle";
+          sha256 = "08lk8h2dk5s8k93j5vmxdlgg453pif8wbcx2w3xkjlh43dw1vdfq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/toggle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toggle-quotes = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "toggle-quotes";
+        ename = "toggle-quotes";
+        version = "20140710.226";
+        src = fetchFromGitHub {
+          owner = "toctan";
+          repo = "toggle-quotes.el";
+          rev = "33abc221d6887f0518337851318065cd86c34b03";
+          sha256 = "1w1lmqgzn9bp59h9y9plv80y53k6qhjgfmnnlqyyqfl45z3si7kg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/toggle-quotes";
+          sha256 = "16w453v4g7ww93bydim62p785x7w4vssp9l5liy0h3ppfmgvmxhp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/toggle-quotes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toggle-test = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "toggle-test";
+        ename = "toggle-test";
+        version = "20140722.2237";
+        src = fetchFromGitHub {
+          owner = "rags";
+          repo = "toggle-test";
+          rev = "a0b64834101c2b8b24da365baea1d36e57b069b5";
+          sha256 = "1xx314cqi71iy7drd7nfia6hylyhwjd9jja1022l1p3imfmy2gyp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/toggle-test";
+          sha256 = "0n8m325jcjhz8g75ysb9whsd12gpxw8598y5065j7c7gxjzv45l1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/toggle-test";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toggle-window = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "toggle-window";
+        ename = "toggle-window";
+        version = "20141207.748";
+        src = fetchFromGitHub {
+          owner = "deadghost";
+          repo = "toggle-window";
+          rev = "e82c60e543933880402ede11e9423e48a17dde53";
+          sha256 = "0f86aij1glmvgpbhmfpi441zy0r37zblb0q3ycgq0dp92x8yny5r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/toggle-window";
+          sha256 = "1z080jywqj99xiwbvfclr6gjkc6spr3dqjb9kq1g4971vx4w8n9g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/toggle-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tomatinho = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "tomatinho";
+        ename = "tomatinho";
+        version = "20180621.1048";
+        src = fetchFromGitHub {
+          owner = "konr";
+          repo = "tomatinho";
+          rev = "b53354b9b9f496c0388d6a573b06b7d6fc53d0bd";
+          sha256 = "0vf2b1c9raa723iy2gfdmxjv4q0ivixy1vbs1x5q09cibca8kp4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tomatinho";
+          sha256 = "1ad3kr73v75vjrc09mdvb7a3ws834k5y5xha3v0ldah38cl1pmjz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tomatinho";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toml = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "toml";
+        ename = "toml";
+        version = "20130903.555";
+        src = fetchFromGitHub {
+          owner = "gongo";
+          repo = "emacs-toml";
+          rev = "9633a6872928e737a2335aae1065768b23d8c3b3";
+          sha256 = "1b3bkla6i5nvanifxchph6ab6ldrskdf240hy4d27dkmmnr3pban";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/toml";
+          sha256 = "0kqv6zkywa7kqh8kg1dzcgkbi91lwx335przdakndm1lfai38i9b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/toml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toml-mode = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "toml-mode";
+        ename = "toml-mode";
+        version = "20161107.1000";
+        src = fetchFromGitHub {
+          owner = "dryman";
+          repo = "toml-mode.el";
+          rev = "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06";
+          sha256 = "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/toml-mode";
+          sha256 = "0yghf2ixl3dkcaxnkr4qzxfa9k1rrac7w5qpw1jx2bvic0cfs40l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/toml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tommyh-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "tommyh-theme";
+        ename = "tommyh-theme";
+        version = "20131004.1630";
+        src = fetchFromGitHub {
+          owner = "wglass";
+          repo = "tommyh-theme";
+          rev = "46d1c69ee0a1ca7c67b569b891a2f28fed89e7d5";
+          sha256 = "0pwbd5gzmpr6js20438870w605671930291070nhmhswvxfcdvay";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tommyh-theme";
+          sha256 = "0nb9r407h08yxxdihxqx0c645bcz6qywbh2l654s3zfzdsqi1aj4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tommyh-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tornado-template-mode = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "tornado-template-mode";
+        ename = "tornado-template-mode";
+        version = "20141128.208";
+        src = fetchFromGitHub {
+          owner = "paradoxxxzero";
+          repo = "tornado-template-mode";
+          rev = "667c0663dbbd279b6c345446b9f2bc50eb52b747";
+          sha256 = "0wv49gn1daylnjmnallpqsqy7630ynrp45agpiwi6kwyyqk1kdvv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tornado-template-mode";
+          sha256 = "1sdv9rlhnabydws2sppsjcgqr0lg6bjapv753ksq5aaq21qsps0h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tornado-template-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    total-lines = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "total-lines";
+        ename = "total-lines";
+        version = "20171227.439";
+        src = fetchFromGitHub {
+          owner = "hinrik";
+          repo = "total-lines";
+          rev = "c762f08d039c8103f71c747e00304f209c2254f4";
+          sha256 = "0ajbqrkg3v0yn8mj7dsv12w9zzcwjkabd776fabxamhcj6zbvza3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/total-lines";
+          sha256 = "0zpli7gsb56fc3pzb3b2bs7dzr9glkixbzgl4p2kc249vz3jqajh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/total-lines";
+          license = lib.licenses.free;
+        };
+      }) {};
+    totd = callPackage ({ cl-lib ? null
+                        , fetchFromGitLab
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "totd";
+        ename = "totd";
+        version = "20150519.740";
+        src = fetchFromGitLab {
+          owner = "egh";
+          repo = "emacs-totd";
+          rev = "a715f7f2df416b8a6c827a9493ce7004180a3a4f";
+          sha256 = "08awv1vbqg0x0h7f036sh07vypm8lq6b5g36gq9dmyfaqci9ccw6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/totd";
+          sha256 = "1bp07xl9yh9x6bi6cn8wz11x90jhv1rhxaig540iydjn5b0ny9m0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib s ];
+        meta = {
+          homepage = "https://melpa.org/#/totd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tox = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "tox";
+        ename = "tox";
+        version = "20160810.855";
+        src = fetchFromGitHub {
+          owner = "chmouel";
+          repo = "tox.el";
+          rev = "27a074b21238855ce3c33d22e42d69e2c2921205";
+          sha256 = "1m3f0i6vrkrncd7xsgz65m6595iv6yr4gbbzlis8p01kd98wbxfk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tox";
+          sha256 = "1z81x8fs5q6r19hpqphsilk8wdwwnfr8w78x5x298x74s9mcsywl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toxi-theme = callPackage ({ emacs
+                              , fetchhg
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "toxi-theme";
+        ename = "toxi-theme";
+        version = "20160424.1426";
+        src = fetchhg {
+          url = "https://bitbucket.com/postspectacular/toxi-theme";
+          rev = "b322fc7497a5";
+          sha256 = "1pnsky541m8kzcv81w98jkv0hgajh04hxqlmgddc1y0wbvi849j0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/toxi-theme";
+          sha256 = "032m3qbxfd0qp81qwayd5g9k7vz55g4yhw0d35qkxzf4qf58x9sd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/toxi-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tql-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "tql-mode";
+        ename = "tql-mode";
+        version = "20170723.1954";
+        src = fetchFromGitHub {
+          owner = "tiros-dev";
+          repo = "tql-mode";
+          rev = "488add79eb3fc8ec02aedaa997fe1ed9e5c3e638";
+          sha256 = "09vkqr5n66w1q5f7m1vgiv0555v23wg6j46ri52lnnslsxpxhlyv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tql-mode";
+          sha256 = "0nrycix119vail6vk1kgqsli4l4cw8x49grc368n53w0xwngh0ns";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tql-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    traad = callPackage ({ bind-map
+                         , dash
+                         , deferred
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , popup
+                         , request
+                         , request-deferred
+                         , virtualenvwrapper }:
+      melpaBuild {
+        pname = "traad";
+        ename = "traad";
+        version = "20180729.1748";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-traad";
+          rev = "98e23363b7e8a590a2f55976123a8c3da75c87a5";
+          sha256 = "121p80vsa3xff1anwy876gvlpm0jdbfm5vaxszds73wrv6gih8m3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/traad";
+          sha256 = "08gxh5c01xfbbj9g4992jah494rw3d3bbs8j79r3mpqxllkp2znf";
+          name = "recipe";
+        };
+        packageRequires = [
+          bind-map
+          dash
+          deferred
+          f
+          popup
+          request
+          request-deferred
+          virtualenvwrapper
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/traad";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tracking = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "tracking";
+        ename = "tracking";
+        version = "20171210.1302";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "circe";
+          rev = "571853c1f5ece6777fe745489b34d3ad7c3cb0ba";
+          sha256 = "1l2zhszwg7cg96vlyi33bykk4mmig38xmasgpp02xypa4j4p11sw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tracking";
+          sha256 = "096h5bl7jcwz5hpbm2139bf8a784hijfy40vzf42y1c9794al46z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tracking";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tracwiki-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , xml-rpc }:
+      melpaBuild {
+        pname = "tracwiki-mode";
+        ename = "tracwiki-mode";
+        version = "20150119.821";
+        src = fetchFromGitHub {
+          owner = "merickson";
+          repo = "tracwiki-mode";
+          rev = "6a620444d59b438f42383b48cd4c19c03105dba6";
+          sha256 = "1m25l1lyff4h0h4vjrcsziwbf8svqg2llvvgl8i2b4jbh7k7pk5f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tracwiki-mode";
+          sha256 = "1k983f0lj42rxr5szpq9l9harykfn8jr13y3y6fav86zzd1fb8j0";
+          name = "recipe";
+        };
+        packageRequires = [ xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/tracwiki-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tramp-hdfs = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "tramp-hdfs";
+        ename = "tramp-hdfs";
+        version = "20170821.620";
+        src = fetchFromGitHub {
+          owner = "raghavgautam";
+          repo = "tramp-hdfs";
+          rev = "b64f24d0419a80dffaa2c4ecec317aa2bba56e35";
+          sha256 = "1bfqzwn19w6fs5npslw0sjqrwdswsv5m3wcdnk438pz1lp199wfy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tramp-hdfs";
+          sha256 = "1l7s2z8yk3cbnffig9fds75jkjlkng76qglx5ankzva61dz1kf2b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tramp-hdfs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tramp-term = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "tramp-term";
+        ename = "tramp-term";
+        version = "20180223.727";
+        src = fetchFromGitHub {
+          owner = "randymorris";
+          repo = "tramp-term.el";
+          rev = "7c29f888de0385a676dbf9a4e17bac0111f5c10a";
+          sha256 = "1ch9y632kggl3q6yx3g685j3dfbhy7yiwqh8cbxs3wja3rvml8xa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tramp-term";
+          sha256 = "1vbdwj8q66j6h5ijqzxhyaqf8wf9rbs03x8ppfijxl5qd2bhc1dy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tramp-term";
+          license = lib.licenses.free;
+        };
+      }) {};
+    transfer-sh = callPackage ({ async
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "transfer-sh";
+        ename = "transfer-sh";
+        version = "20180603.731";
+        src = fetchFromGitHub {
+          owner = "SRoskamp";
+          repo = "transfer-sh.el";
+          rev = "55da85f963d347255a2b46568954923679331798";
+          sha256 = "0yv4i4ps379kz1q9qmjh4q3pk5ik77xw86faxmwpjx4yzp1wsz9v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/transfer-sh";
+          sha256 = "0xc6dkmayk935grmy8883l4cyv4zrq3fb77fj16knfj4yw8w6c9j";
+          name = "recipe";
+        };
+        packageRequires = [ async ];
+        meta = {
+          homepage = "https://melpa.org/#/transfer-sh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    transmission = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , let-alist
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "transmission";
+        ename = "transmission";
+        version = "20180728.1017";
+        src = fetchFromGitHub {
+          owner = "holomorph";
+          repo = "transmission";
+          rev = "ba567b12a1e953880c6e7083963c52556cdc567f";
+          sha256 = "0wr9npzz34cwhsmn7ry0bfvvm4dl5cpadw4mnpdjl1f85x8zasip";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/transmission";
+          sha256 = "0w0hlr4y4xpcrpvclqqqasggkgrwnzrdib51mhkh3f3mqyiw8gs9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/transmission";
+          license = lib.licenses.free;
+        };
+      }) {};
+    transpose-frame = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "transpose-frame";
+        ename = "transpose-frame";
+        version = "20151126.626";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "transpose-frame";
+          rev = "011f420c3496b69fc22d789f64cb8091834feba7";
+          sha256 = "1nhbinwv1ld13c0b0lxlvfm9s6bvxcz2vgfccqg45ncg9rx70rsw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/transpose-frame";
+          sha256 = "1ksdc4d9k05452hcq4xx0j5nfl9n01z8abbca6j7j66bdf3m4l1b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/transpose-frame";
+          license = lib.licenses.free;
+        };
+      }) {};
+    transpose-mark = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "transpose-mark";
+        ename = "transpose-mark";
+        version = "20150405.16";
+        src = fetchFromGitHub {
+          owner = "kwrooijen";
+          repo = "transpose-mark";
+          rev = "667327602004794de97214cf336ac61650ef75b7";
+          sha256 = "03wc50vn1kmrgnzzhs06pwpap2p2rx84wwzxw0hawsg1f1l35m2x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/transpose-mark";
+          sha256 = "1q1icp1szm1bxz9ywwyrfbsm1wmx0h4cvzywrh9q0fj1fq387qvv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/transpose-mark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    travis = callPackage ({ dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , pkg-info
+                          , request
+                          , s }:
+      melpaBuild {
+        pname = "travis";
+        ename = "travis";
+        version = "20150825.438";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "emacs-travis";
+          rev = "c8769d3db10ed4604969049e3bd276afa0a0138e";
+          sha256 = "1jd7xsvs4m55fscp62a9lk59ip4sgifv4kazl55b7543nz1i31bz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/travis";
+          sha256 = "1km496cq1vni9gy2d3z4c9524q62750ywz745rjz4r7178ip9mix";
+          name = "recipe";
+        };
+        packageRequires = [ dash pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/travis";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tree-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "tree-mode";
+        ename = "tree-mode";
+        version = "20151104.531";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "tree-mode";
+          rev = "b06078826d5875d74b0e7b7ac47b0d0917610534";
+          sha256 = "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tree-mode";
+          sha256 = "1b15xgh96j4qas1kh4ghczcn7hb1ri86wnjgn9wz2d6bw3c6077b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tree-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    treemacs = callPackage ({ ace-window
+                            , cl-lib ? null
+                            , dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ht
+                            , hydra
+                            , lib
+                            , melpaBuild
+                            , pfuture
+                            , s }:
+      melpaBuild {
+        pname = "treemacs";
+        ename = "treemacs";
+        version = "20181117.804";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "treemacs";
+          rev = "cb8b01dcd6fd19ea59e9277ea24c9786c83a5cd0";
+          sha256 = "1gb1hfxcf2q2jpwql3y3a2d4r0hq78mar1x783zv0z63665dpb6f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/treemacs";
+          sha256 = "1wcsn0kzrbawyyhxmsmrsxr1vp0llkxw6r7zx53pwyc82ia64nlv";
+          name = "recipe";
+        };
+        packageRequires = [ ace-window cl-lib dash emacs f ht hydra pfuture s ];
+        meta = {
+          homepage = "https://melpa.org/#/treemacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    treemacs-evil = callPackage ({ evil
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , treemacs }:
+      melpaBuild {
+        pname = "treemacs-evil";
+        ename = "treemacs-evil";
+        version = "20180803.317";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "treemacs";
+          rev = "82061efe99e34ac69367726d65fa0f517947b40b";
+          sha256 = "0f2ybaf149ji54rgf7q9xbdx55jr2jgz9qbahsh2q7gl800nkg17";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/treemacs-evil";
+          sha256 = "1i2mxqwnqb2jz775qg3z4lf7pk4mgi646fyyi2la5gdcnq6a46mg";
+          name = "recipe";
+        };
+        packageRequires = [ evil treemacs ];
+        meta = {
+          homepage = "https://melpa.org/#/treemacs-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    treemacs-projectile = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , projectile
+                                       , treemacs }:
+      melpaBuild {
+        pname = "treemacs-projectile";
+        ename = "treemacs-projectile";
+        version = "20181028.2324";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "treemacs";
+          rev = "bf4acf7a1405fb73a044fc67350d7f7a8d0778ae";
+          sha256 = "1zzcsasiw91xw790xak938snkp1ssb5z5dmh18w0f5b57h9hpa75";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/treemacs-projectile";
+          sha256 = "1vyifik30673bwlfvbmw8pzz7f3wd4q6zzssvbj8d23zhk8kh8vc";
+          name = "recipe";
+        };
+        packageRequires = [ projectile treemacs ];
+        meta = {
+          homepage = "https://melpa.org/#/treemacs-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    treepy = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "treepy";
+        ename = "treepy";
+        version = "20180723.2356";
+        src = fetchFromGitHub {
+          owner = "volrath";
+          repo = "treepy.el";
+          rev = "b40e6b09eb9be45da67b8c9e4990a5a0d7a2a09d";
+          sha256 = "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/treepy";
+          sha256 = "0jfah4vywi1b6c86h7vh8fspmklhs790qzkl51i9p7yckfggwp72";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/treepy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    trident-mode = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , skewer-mode
+                                , slime }:
+      melpaBuild {
+        pname = "trident-mode";
+        ename = "trident-mode";
+        version = "20130726.1207";
+        src = fetchFromGitHub {
+          owner = "johnmastro";
+          repo = "trident-mode.el";
+          rev = "ad3201f47e114de35df189c3d80f0fdea9507ea9";
+          sha256 = "08484fhc69rk16g52f9bzc1kzpif61ddfchxjbj1qqqammbx11ym";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/trident-mode";
+          sha256 = "0l81hs7bp46jlk41b9fk1lkvlp17fqc5hcz8k8kkal7rh7ari1fd";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs skewer-mode slime ];
+        meta = {
+          homepage = "https://melpa.org/#/trident-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    trinary = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "trinary";
+        ename = "trinary";
+        version = "20180904.1613";
+        src = fetchFromGitHub {
+          owner = "emacs-elsa";
+          repo = "trinary-logic";
+          rev = "886232c6d7e92a8e9fe573eef46754ebe321f90d";
+          sha256 = "10h6p2dwl2k2p35pi3n8y85qh5y0zrr9nhfr4sviwzj1nbqdrvdr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/trinary";
+          sha256 = "1k2jpay1wx2m54fpja9mrhqyk15ikml8xf15irh8yrxb3hah8f8k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/trinary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    trr = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "trr";
+        ename = "trr";
+        version = "20170221.42";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "emacs-trr";
+          rev = "83660d8343ef3367837354dc684dfdde2f95826a";
+          sha256 = "0h12szq1cww3bpsk09m7d2bk9bfjxrmzlw9ccviwhnric40nh67k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/trr";
+          sha256 = "068vqsyx8riqzfrmjk8wr81f68r2y2b6ymc2vvl6vka9rprvsfwr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/trr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    truthy = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , list-utils
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "truthy";
+        ename = "truthy";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "truthy";
+          rev = "782cee08fbb13f9be71ce8e88d980ec14db24a0f";
+          sha256 = "0xbkq7hr14gd2nmsfkzvz4rgfi42h51m29cn2vaswr2s3prflhrh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/truthy";
+          sha256 = "1a56zmqars9fd03bkqzwpvgblq5fvq19n4jw04c4hpga92sq8wqg";
+          name = "recipe";
+        };
+        packageRequires = [ list-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/truthy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    try = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "try";
+        ename = "try";
+        version = "20170226.805";
+        src = fetchFromGitHub {
+          owner = "larstvei";
+          repo = "Try";
+          rev = "271b0a362cadf44d0694628b9e213f54516ef913";
+          sha256 = "1fvpi02c6awyrwg2yqjapvcv4132qvmvd9bkbwpjmndxpicsann3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/try";
+          sha256 = "0dv0i77agva215bf1gj1x1k7f7g3pvccyyd7vslapf9z8brccn7n";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/try";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ts-comint = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ts-comint";
+        ename = "ts-comint";
+        version = "20171105.2247";
+        src = fetchFromGitHub {
+          owner = "josteink";
+          repo = "ts-comint";
+          rev = "8817dc7b3a6eb78c3cad42e5677c2113274a1963";
+          sha256 = "17cw9710ib80d626vv6bx6vdjdin78h6pja1lsr4r6mz8c5ihwxj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ts-comint";
+          sha256 = "18swvzkzcwn0wks58flsjpn9dddzcznij67xifyz6009l4fgdrzd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ts-comint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tss = callPackage ({ auto-complete
+                       , fetchFromGitHub
+                       , fetchurl
+                       , json-mode
+                       , lib
+                       , log4e
+                       , melpaBuild
+                       , yaxception }:
+      melpaBuild {
+        pname = "tss";
+        ename = "tss";
+        version = "20150913.708";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-tss";
+          rev = "81ac6351a2ae258fd0ebf916dae9bd5a179fefd0";
+          sha256 = "1bk5v9dffs65qsay0dp336s2ly065nd0cg572zz058ikwxd44zd3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tss";
+          sha256 = "0d16x5r2xfy6mrwy0mqzpr9b3inqmyyxgawrxlfh83j1xb903dhm";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete json-mode log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/tss";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tt-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "tt-mode";
+        ename = "tt-mode";
+        version = "20130804.410";
+        src = fetchFromGitHub {
+          owner = "davorg";
+          repo = "tt-mode";
+          rev = "85ed3832e7eef391f7879d9990d59c7a3493c15e";
+          sha256 = "1gvqxk67cf779szyg907815i4m9jzrpmn5cnsmnwd62k3r3z4nxm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tt-mode";
+          sha256 = "02dzyycn5znbibbz50b243bh1kcccp8xwknjqwljk00gpf196vzf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ttl-mode = callPackage ({ fetchhg
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ttl-mode";
+        ename = "ttl-mode";
+        version = "20160505.132";
+        src = fetchhg {
+          url = "https://bitbucket.com/nxg/ttl-mode";
+          rev = "d790eb85ef4d";
+          sha256 = "14kfnpp7fcd84ly9ng7hm5hzx2sdpn2x6d8frwbkdxfb0x81kmmf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ttl-mode";
+          sha256 = "1nnn2y0n9rj3a8r85y2vp6qja5rm4drcbnj9q793zzqfjl9akqd4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ttl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tuareg = callPackage ({ caml
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "tuareg";
+        ename = "tuareg";
+        version = "20180918.1213";
+        src = fetchFromGitHub {
+          owner = "ocaml";
+          repo = "tuareg";
+          rev = "37f770073ad385918d3dcadef790178490d9f40e";
+          sha256 = "00drf4znb2kmhnwbfr004vfdfj53cc9caajic4zdh638z27kl5dl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tuareg";
+          sha256 = "0wx723dmjlpm86xdabl9n8p22zbbxpapyfn6ifz0b0pvhh49ip7q";
+          name = "recipe";
+        };
+        packageRequires = [ caml ];
+        meta = {
+          homepage = "https://melpa.org/#/tuareg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tumble = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , http-post-simple
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "tumble";
+        ename = "tumble";
+        version = "20160111.2329";
+        src = fetchFromGitHub {
+          owner = "febuiles";
+          repo = "tumble";
+          rev = "e8fd7643cccf2b6ea4170f0c5f1f87d007e7fa00";
+          sha256 = "1xdkgvr1pnlg3nrjmma4ra80ysr8xbslvczg7cq1x1mqw6gn9xq5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tumble";
+          sha256 = "1c9ybq0mb2a0pw15fmm13vfwcnr2h9fb1xsm5nrff1cg7913pgv9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib http-post-simple ];
+        meta = {
+          homepage = "https://melpa.org/#/tumble";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tumblesocks = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , htmlize
+                               , lib
+                               , markdown-mode
+                               , melpaBuild
+                               , oauth }:
+      melpaBuild {
+        pname = "tumblesocks";
+        ename = "tumblesocks";
+        version = "20140215.1247";
+        src = fetchFromGitHub {
+          owner = "gcr";
+          repo = "tumblesocks";
+          rev = "9fd3dc5359d4e39a0f673546427935aa934cf339";
+          sha256 = "17kcprr4bhnh7h799wcxb79d54vvs226fl2rqj89gf10gr6bc3fr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tumblesocks";
+          sha256 = "005w7vfzi4qpm59pxhq9nhp8hlwh4m1i7zj6l4knizcwm5xrm4ab";
+          name = "recipe";
+        };
+        packageRequires = [ htmlize markdown-mode oauth ];
+        meta = {
+          homepage = "https://melpa.org/#/tumblesocks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tup-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "tup-mode";
+        ename = "tup-mode";
+        version = "20140410.914";
+        src = fetchFromGitHub {
+          owner = "ejmr";
+          repo = "tup-mode";
+          rev = "945af9c8e6c402e10cd3bf8e28a9591174023d6d";
+          sha256 = "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tup-mode";
+          sha256 = "0pzpn1ljfcc2dl9fg7jc8lmjwz2baays4axjqk1qsbj0kqbc8j0l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tup-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    turing-machine = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "turing-machine";
+        ename = "turing-machine";
+        version = "20180221.2038";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "turing-machine";
+          rev = "ad1dccc9c445f9e4465e1c67cbbfea9583153047";
+          sha256 = "0qaz4r5ahg2fxsfyxilb8c9956i5ra9vg80l82slm8vrnsinzll6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/turing-machine";
+          sha256 = "0q9a31m5wnz9j9l4i8czdl7z12nrcdjw72w8sqvf94ri2g5dbpkq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/turing-machine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    turkish = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "turkish";
+        ename = "turkish";
+        version = "20170910.811";
+        src = fetchFromGitHub {
+          owner = "emres";
+          repo = "turkish-mode";
+          rev = "9831a316c176bb21a1b91226323ea4133163e00c";
+          sha256 = "0nrxi845gd24d5vymbmxz696jwld4rn6nw2dz1gzmdaks7bbv87m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/turkish";
+          sha256 = "0pdapxjbpj3lg3hxvwjn9v51jqaiz7a8053z2bmk4485vzs34532";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/turkish";
+          license = lib.licenses.free;
+        };
+      }) {};
+    turnip = callPackage ({ dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "turnip";
+        ename = "turnip";
+        version = "20150308.2329";
+        src = fetchFromGitHub {
+          owner = "kljohann";
+          repo = "turnip.el";
+          rev = "2fd32562fc6fc1cda6d91aa939cfb29f9b16e9de";
+          sha256 = "0khl4q22x6vdn87xdqqg5f535d4dqpnfbhk6qhlh187p1w7qaiq4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/turnip";
+          sha256 = "1vfqv71j47fn53klz3jl8r8hscywd01kkl4w96a308sac3lhbrps";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/turnip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    twig-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "twig-mode";
+        ename = "twig-mode";
+        version = "20130220.1050";
+        src = fetchFromGitHub {
+          owner = "moljac024";
+          repo = "twig-mode";
+          rev = "51bcd41666a234119a855b9fd348d3dae7832de1";
+          sha256 = "068m06d0gf6608zd270c5nxkjczzfw55df58r2zfbpzgdi4cxm7j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/twig-mode";
+          sha256 = "1m3xjgmkqg8aj536wcg2f2hf4y6whscbsh7z7448hl4b5qjwii4n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/twig-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    twilight-anti-bright-theme = callPackage ({ fetchFromGitHub
+                                              , fetchurl
+                                              , lib
+                                              , melpaBuild }:
+      melpaBuild {
+        pname = "twilight-anti-bright-theme";
+        ename = "twilight-anti-bright-theme";
+        version = "20160622.148";
+        src = fetchFromGitHub {
+          owner = "jimeh";
+          repo = "twilight-anti-bright-theme";
+          rev = "523b95fcdbf4a6a6483af314ad05354a3d80f23f";
+          sha256 = "0g6qqfgbg507r8lgq99zj2b5n3r9m23hpx19m36c3i55mh94dl2h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/twilight-anti-bright-theme";
+          sha256 = "1wfj570l5k0ygqi9dwjskc78rpnxw6080bkw1zd1a8kl3fa28n2k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/twilight-anti-bright-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    twilight-bright-theme = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "twilight-bright-theme";
+        ename = "twilight-bright-theme";
+        version = "20130605.143";
+        src = fetchFromGitHub {
+          owner = "jimeh";
+          repo = "twilight-bright-theme.el";
+          rev = "9859474333fee9f907474dbd8763f617e8bfd89c";
+          sha256 = "02hiyk5v41ki0rlchj6didg3b5a9fxaw50d9shrv1v861z4hrq24";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/twilight-bright-theme";
+          sha256 = "039mg147cvb0pk59q3c1bpx7562bajgrs74xymylr89hvrxivxqh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/twilight-bright-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    twilight-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "twilight-theme";
+        ename = "twilight-theme";
+        version = "20120412.603";
+        src = fetchFromGitHub {
+          owner = "developernotes";
+          repo = "twilight-theme";
+          rev = "77c4741cb3dcf16e53d06d6c2ffdc660c40afb5b";
+          sha256 = "0d7vd1h0rwwgrh7f9kmdgy2ni0p20da9c8ylwlg33nsb26345wfs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/twilight-theme";
+          sha256 = "0g9bbb6m7q8x4zcw5gfmg7ljsfdmjh0335sq53b0lva0h3ra6kzx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/twilight-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    twittering-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "twittering-mode";
+        ename = "twittering-mode";
+        version = "20180916.2028";
+        src = fetchFromGitHub {
+          owner = "hayamiz";
+          repo = "twittering-mode";
+          rev = "ad7de82cf4b72fc166970d85849e2a9a9ae5a979";
+          sha256 = "180gh47z2wli9s7sqz5rw029nv54lacch9sg3vg44kylyfjfw803";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/twittering-mode";
+          sha256 = "0v9ijxw5jazh2hc0qab48y71za2l9ryff0mpkxhr3f79irlqy0a1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/twittering-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    typescript-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "typescript-mode";
+        ename = "typescript-mode";
+        version = "20181017.2253";
+        src = fetchFromGitHub {
+          owner = "ananthakumaran";
+          repo = "typescript.el";
+          rev = "fbaad515c90df0f5c3634c471034e3041a4a8cfc";
+          sha256 = "1rpjpc27vl0c3k2sdkj2igfd03ifsgaq2ab87brqnfxx330f67ng";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/typescript-mode";
+          sha256 = "01jyqy44ir59n9c2f6gh4xzwfmzdpnys1lw4lnsy6kirqgbsq9ha";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/typescript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    typing = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "typing";
+        ename = "typing";
+        version = "20180830.1503";
+        src = fetchFromGitHub {
+          owner = "kensanata";
+          repo = "typing";
+          rev = "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa";
+          sha256 = "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/typing";
+          sha256 = "0k2lplqzq3323nn7rybcs377sr87kbww8ci99rrka3yyb5bh1fa1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/typing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    typing-game = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "typing-game";
+        ename = "typing-game";
+        version = "20160426.520";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "el-typing-game";
+          rev = "616435a5270274f4c7b698697674dbb2039049a4";
+          sha256 = "0dkrnn9fzqv793wvd3nc7dbslayj37q5na1w1g63g32z2s8aq09j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/typing-game";
+          sha256 = "0k85j9bcqp0gbzdh44q5a9wlkv5mc0g0m42ziq1bzmp6993wkmy2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/typing-game";
+          license = lib.licenses.free;
+        };
+      }) {};
+    typit = callPackage ({ emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , mmt }:
+      melpaBuild {
+        pname = "typit";
+        ename = "typit";
+        version = "20180317.107";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "typit";
+          rev = "4fe50d616fc60e77eb9b5a824c0a1ca4010b0746";
+          sha256 = "0j5s86s9wb33fqw415mmkysdasyj3vdx9l8l6ca6f89ps6znr636";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/typit";
+          sha256 = "05m7ymcq6fgbhh93ninrf3qi7csdnf2ahhf01mkm8gxxyaqq6m4n";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f mmt ];
+        meta = {
+          homepage = "https://melpa.org/#/typit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    typo = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "typo";
+        ename = "typo";
+        version = "20171209.223";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "typoel";
+          rev = "9dad93b6f367f02f52c8d9bf15d446d922cec294";
+          sha256 = "1xaikwl265v67b7hilrhjgwzr6bcha9idnp82f27msqzdfdzxf0f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/typo";
+          sha256 = "1p8is1n525lmzq588hj6vazmhl9wi6rairnfx1g1p6g6ijdycd4h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/typo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    typoscript-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , use-package }:
+      melpaBuild {
+        pname = "typoscript-mode";
+        ename = "typoscript-mode";
+        version = "20170126.112";
+        src = fetchFromGitHub {
+          owner = "ksjogo";
+          repo = "typoscript-mode";
+          rev = "44e7567e921573c4f33c537b827f71fb1f565c32";
+          sha256 = "0i7l9s3lhxnld32mqyrvasiv1hilhwnp2fwvpdv2cx9r902q6kc8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/typoscript-mode";
+          sha256 = "18i2wwbn8vj5dbgxp2ds29n12v8ldvxjd1zb6h1g9lfh8iyrnjmx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs use-package ];
+        meta = {
+          homepage = "https://melpa.org/#/typoscript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ubuntu-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ubuntu-theme";
+        ename = "ubuntu-theme";
+        version = "20150805.806";
+        src = fetchFromGitHub {
+          owner = "rocher";
+          repo = "ubuntu-theme";
+          rev = "88b0eefc75d4cbcde103057e1c5968d4c3052f69";
+          sha256 = "1v8d1pc0vjc7wz0prr5w5vp2qb19f3gcyl6jx5130plajbvv23rc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ubuntu-theme";
+          sha256 = "160z59aaxb2v6c24nki6bn7pjm9r4jl1mgxs4h4sivzxkaw811s2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ubuntu-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ucs-utils = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , list-utils
+                             , melpaBuild
+                             , pcache
+                             , persistent-soft }:
+      melpaBuild {
+        pname = "ucs-utils";
+        ename = "ucs-utils";
+        version = "20150826.714";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "ucs-utils";
+          rev = "cbfd42f822bf5717934fa2d92060e6e24a813433";
+          sha256 = "0qw9vwl1p0pjw1xmshxar1a8kn6gmin5rdvvnnly8b5z9hpkjf3m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ucs-utils";
+          sha256 = "111fwg2cqqzpa79rcqxidppb12c8g12zszppph2ydfvkgkryb6z2";
+          name = "recipe";
+        };
+        packageRequires = [ list-utils pcache persistent-soft ];
+        meta = {
+          homepage = "https://melpa.org/#/ucs-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    uimage = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "uimage";
+        ename = "uimage";
+        version = "20160901.521";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "uimage";
+          rev = "9893d09160ef7e8c0ecdcd74fca99ffeb5f9d70d";
+          sha256 = "1ri50nab778kpq49m54ra75z8dphagp9sz92is0636j4qy3sbih1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/uimage";
+          sha256 = "0i6qpk6v4pmpk3zswygdy0dd7rxy8kl7qn8a1xanpi4aqg7wlbmd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/uimage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ujelly-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ujelly-theme";
+        ename = "ujelly-theme";
+        version = "20180214.824";
+        src = fetchFromGitHub {
+          owner = "marktran";
+          repo = "color-theme-ujelly";
+          rev = "bf724ce7806a738d2043544061e5f9bbfc56e674";
+          sha256 = "0pz26q5qfq4wiqcpfkq26f19q5gyiv8q71sq4k77hkss5a5b5fqg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ujelly-theme";
+          sha256 = "0b7zgmpsdn5p3jx4kif7phxz8pb85snmmfr3yz98xf6p7h6w60gw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ujelly-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ukrainian-holidays = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "ukrainian-holidays";
+        ename = "ukrainian-holidays";
+        version = "20130720.649";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "ukrainian-holidays";
+          rev = "e52b0c92843e9f4d0415a7ba3b8559785497d23d";
+          sha256 = "033v4ck979lhkpwblci5clacfc1xnkq03p5d1m566wff8dp5flwz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ukrainian-holidays";
+          sha256 = "0kbfj2l1rcv74c88nabkwkcl7k9pkim835l24q61zv3i6wf9sykf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ukrainian-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    uncrustify-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "uncrustify-mode";
+        ename = "uncrustify-mode";
+        version = "20130707.659";
+        src = fetchFromGitHub {
+          owner = "koko1000ban";
+          repo = "emacs-uncrustify-mode";
+          rev = "2c00d5cf2d1868a5955347438746f4dd82b3b9fc";
+          sha256 = "1pzg49l982a0kajnix0jl3gk7g37d7pgqg9lx838i2sk3jfwayf9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/uncrustify-mode";
+          sha256 = "0amdxdfc8i99zjrw4iqmxzb47h0airs60fwmc32bc8b0ds66c3kd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/uncrustify-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    undercover = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , shut-up }:
+      melpaBuild {
+        pname = "undercover";
+        ename = "undercover";
+        version = "20180403.752";
+        src = fetchFromGitHub {
+          owner = "sviridov";
+          repo = "undercover.el";
+          rev = "3fc54ef92f0b4b7d26d962d6ed29a81d526a3a66";
+          sha256 = "0iqj1a6nj1ka5ahcy4rrn7k427bs1ifv0v0i7gj79m7isjj15qc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/undercover";
+          sha256 = "1s30c3i6y4r3mgrrs3lda3rrwmy9ff11ihdmshyziv9v5879sdjf";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/undercover";
+          license = lib.licenses.free;
+        };
+      }) {};
+    underline-with-char = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "underline-with-char";
+        ename = "underline-with-char";
+        version = "20170814.223";
+        src = fetchFromGitHub {
+          owner = "marcowahl";
+          repo = "underline-with-char";
+          rev = "f7de7a968a16c12bef5a3ed9aebcde2dcadc08be";
+          sha256 = "188g8vzalkhdqjxkbypzq64vl9qmry8pq8vrbxhy28pzsljhrqxv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/underline-with-char";
+          sha256 = "0la24nvyqinla40c2f3f4a63mjjsg58096hyw3pvp0mwiff7rxyd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/underline-with-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+    underwater-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "underwater-theme";
+        ename = "underwater-theme";
+        version = "20131117.1602";
+        src = fetchFromGitHub {
+          owner = "jmdeldin";
+          repo = "underwater-theme.el";
+          rev = "1fbd4ecd4538256c6c46f9638f883072c73ac927";
+          sha256 = "1g1ldyz42q3i2xlgvhd4s93cvkh0fm8m3l344zjcw8rvqaisyphj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/underwater-theme";
+          sha256 = "0ab2bcqfdi9ml3z9d511pbfwcbp8hkkd36xxp61k36gkyi3acvlr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/underwater-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    undohist = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "undohist";
+        ename = "undohist";
+        version = "20150315.542";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "undohist-el";
+          rev = "d2239a5f736724ceb9e3b6bcaa86f4064805cda0";
+          sha256 = "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/undohist";
+          sha256 = "0zzfzh8sf2dkz8h3kidv7zmwz2c2qq9n9qz2mab2lk0y44njzwhn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/undohist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unfill = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "unfill";
+        ename = "unfill";
+        version = "20170722.1846";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "unfill";
+          rev = "d1056ec5ce7bb18abe8933c1e4d5932fb98fb78e";
+          sha256 = "0qbcm7qf33xlbj7wx3164q8m6b8qzgv6w13pk8568nrmb1f8qna8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unfill";
+          sha256 = "0b21dk45vbz4vqdbdx0n6wx30rm38w1jjqbsxfj7b96p3i5shwqv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unfill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-emoticons = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "unicode-emoticons";
+        ename = "unicode-emoticons";
+        version = "20150204.308";
+        src = fetchFromGitHub {
+          owner = "hagleitn";
+          repo = "unicode-emoticons";
+          rev = "52a09955c2afc1807c0f37f1467ccfc1e1da690a";
+          sha256 = "0z7aaw5ib1q8whnrhvybzxa4cm18qsw5sg8gv31j3yxi638yvi89";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-emoticons";
+          sha256 = "0sp4sb2yw9msyqxgp4q5z9pzfvqwhizd1sx8w63g1vis6n2h254r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-emoticons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-enbox = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , list-utils
+                                 , melpaBuild
+                                 , pcache
+                                 , persistent-soft
+                                 , string-utils
+                                 , ucs-utils }:
+      melpaBuild {
+        pname = "unicode-enbox";
+        ename = "unicode-enbox";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "unicode-enbox";
+          rev = "4e8ac89b0460eaba6d6eaa8c463eb069660218fa";
+          sha256 = "1p63dk1fya0g08lr7cr1rydx9bqakg1nq30i0yma6zs0h7f5qvsi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-enbox";
+          sha256 = "1phb2qq3pg6z6bl96kl9yfq4jxhgardjpaa4lhgqbxymmqdm7gzv";
+          name = "recipe";
+        };
+        packageRequires = [
+          list-utils
+          pcache
+          persistent-soft
+          string-utils
+          ucs-utils
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-enbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-escape = callPackage ({ dash
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , names }:
+      melpaBuild {
+        pname = "unicode-escape";
+        ename = "unicode-escape";
+        version = "20160614.534";
+        src = fetchFromGitHub {
+          owner = "kosh04";
+          repo = "unicode-escape.el";
+          rev = "04c7f22f90c96e93f998f084089ab08dc7f4fdd6";
+          sha256 = "01i5cq7yan9z1kr6pvp4bwzsnxs0bpqsaglfbvy7v6jfp923bvdm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-escape";
+          sha256 = "0gcwkv7qbdnvak10jfzj9irb7nkfqsfxv2n5fi8vvrk90j1a2i2k";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs names ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-escape";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-fonts = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , font-utils
+                                 , lib
+                                 , list-utils
+                                 , melpaBuild
+                                 , pcache
+                                 , persistent-soft
+                                 , ucs-utils }:
+      melpaBuild {
+        pname = "unicode-fonts";
+        ename = "unicode-fonts";
+        version = "20181001.809";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "unicode-fonts";
+          rev = "7b88ae84e589f6c8b9386b2fb5a02ff4ccb91169";
+          sha256 = "07wzcfj92jiadgd6nj5rmxky2aiaxs89j7zywp877xdp4vv0v512";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-fonts";
+          sha256 = "0plipwb30qqay8691qzqdyg6smpbs9dsxxi49psb8sq0xnxl84q3";
+          name = "recipe";
+        };
+        packageRequires = [
+          font-utils
+          list-utils
+          pcache
+          persistent-soft
+          ucs-utils
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-fonts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-input = callPackage ({ fetchhg
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "unicode-input";
+        ename = "unicode-input";
+        version = "20141218.2320";
+        src = fetchhg {
+          url = "https://bitbucket.com/m00nlight/unicode-input";
+          rev = "e76ccb549e6a";
+          sha256 = "0kzcg1wxi1z424jdn7pibk9zyfyi85kligav08sl1c2hdldzya4l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-input";
+          sha256 = "17sf3xnl8yyx4ln4mrjlrvfinb8dvabh81l3qyr9pkn5skpgqgj8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-input";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-progress-reporter = callPackage ({ emacs
+                                             , fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , list-utils
+                                             , melpaBuild
+                                             , pcache
+                                             , persistent-soft
+                                             , ucs-utils }:
+      melpaBuild {
+        pname = "unicode-progress-reporter";
+        ename = "unicode-progress-reporter";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "unicode-progress-reporter";
+          rev = "17415a96144506e5ffa49377d4c814023e06f425";
+          sha256 = "1fdyngchr8s7gjqi50fdr1cx8zx5jd3l7ag9i15r9vmqanvr0zzf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-progress-reporter";
+          sha256 = "03z7p27470fqy3gd356l9cpp44a35sfrxz94dxmx388rzlygk7y7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs list-utils pcache persistent-soft ucs-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-progress-reporter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-troll-stopper = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "unicode-troll-stopper";
+        ename = "unicode-troll-stopper";
+        version = "20151023.1831";
+        src = fetchFromGitHub {
+          owner = "camsaul";
+          repo = "emacs-unicode-troll-stopper";
+          rev = "7d1331b17b29db56fbdaecec39e5fcac5b92e46f";
+          sha256 = "1zpqm309x73af2i6qch7qqwr1ibnkz0r0jyvw6py4imnank9hg83";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-troll-stopper";
+          sha256 = "0a10lq0xsfyp052iw4xjbhsdkbyg25x2gk68gys4k7p6l92la0k5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-troll-stopper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-whitespace = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , list-utils
+                                      , melpaBuild
+                                      , pcache
+                                      , persistent-soft
+                                      , ucs-utils }:
+      melpaBuild {
+        pname = "unicode-whitespace";
+        ename = "unicode-whitespace";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "unicode-whitespace";
+          rev = "b0cbfe4f9998a2c1eb4cba031efcb785ef518916";
+          sha256 = "1khpmmpbvi73cis7qx33v2npbmwg1cc9x4bafg9kfz7yfqkrdjws";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-whitespace";
+          sha256 = "1b3jgha8va42b89pdp41sab2w9wllp7dicqg4lxl67bg6wn147wy";
+          name = "recipe";
+        };
+        packageRequires = [ list-utils pcache persistent-soft ucs-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-whitespace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unidecode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "unidecode";
+        ename = "unidecode";
+        version = "20180312.1226";
+        src = fetchFromGitHub {
+          owner = "sindikat";
+          repo = "unidecode";
+          rev = "5502ada9287b4012eabb879f12f5b0a9df52c5b7";
+          sha256 = "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unidecode";
+          sha256 = "0vhghnyj8a5mcqq5rzajrm1izzfry77pd1wxhmra5yp9ribw2sv5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unidecode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unify-opening = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "unify-opening";
+        ename = "unify-opening";
+        version = "20171122.1212";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "unify-opening";
+          rev = "502469ddba6d8d52159f53976265f7d956b6b17c";
+          sha256 = "0mni9vnbs50wvgnwfjwgzlwfff38h3wbrpr20nv84dmfh8ac0v61";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unify-opening";
+          sha256 = "1gpmklbdbmv8va8d3yr94r1ydkcyvdzcgxv56rp0bxwbcgmk0as8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/unify-opening";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unipoint = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "unipoint";
+        ename = "unipoint";
+        version = "20140113.1424";
+        src = fetchFromGitHub {
+          owner = "apg";
+          repo = "unipoint";
+          rev = "5da04aebac35a5c9e1d8704f2231808d42f4b36a";
+          sha256 = "1wl9rzys1zr2c41h5i57y6hxsavix1b26f453l2izmb6r0b1dvh0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unipoint";
+          sha256 = "0fm7anwcmga9adyfwlri7x014rpvfl1r6nccyi6lrpx126wy008s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unipoint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unison = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "unison";
+        ename = "unison";
+        version = "20160704.40";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "unison.el";
+          rev = "a78a04c0d1398d00f75a1bd4799622a65bcb0f28";
+          sha256 = "1jn23wlhpka5pv0caipxi8bg3cc6wj1fg09abibhydy4p3mb3bi5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unison";
+          sha256 = "03v10r6d4r6z66s9q7mg1iyxh53f3l6q7dij7pfbf32migqjgpir";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/unison";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unison-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "unison-mode";
+        ename = "unison-mode";
+        version = "20160513.801";
+        src = fetchFromGitHub {
+          owner = "impaktor";
+          repo = "unison-mode";
+          rev = "0bd6a65c0d12f87fcf7bdff15fe54444959b93bf";
+          sha256 = "1snbvhvx2csw1f314dbdwny8yvfq834plpkzx0vl4k3wddmr3a66";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unison-mode";
+          sha256 = "03kyr1h5pm51vn4bykj13rm4ybln266rpnxh65y2ygw8f8md88gl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unison-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    universal-emotions-emoticons = callPackage ({ emacs
+                                                , fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild }:
+      melpaBuild {
+        pname = "universal-emotions-emoticons";
+        ename = "universal-emotions-emoticons";
+        version = "20180729.1241";
+        src = fetchFromGitHub {
+          owner = "grettke";
+          repo = "universal-emotions-emoticons";
+          rev = "9cedd09ee65cb9fa71f27b0ab46a8353bdc00902";
+          sha256 = "17blqfnf384l2hd2igrw5p0zblw6bxz69vvzli22nr84kpkh5jx4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/universal-emotions-emoticons";
+          sha256 = "1aj3k3yrvasn3zmfwz5si046hlyhnjdmxh7i8li6rc0v0qwl7p86";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/universal-emotions-emoticons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unkillable-scratch = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "unkillable-scratch";
+        ename = "unkillable-scratch";
+        version = "20160504.1903";
+        src = fetchFromGitHub {
+          owner = "EricCrosson";
+          repo = "unkillable-scratch";
+          rev = "0e1d9e1574e497171a7ccfbcb8c994cb9c5880da";
+          sha256 = "0bhdqpxq6cly4b6v4ya1ksw0yfdb9g2f2ifbjn4gfcq6j4zszbdm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unkillable-scratch";
+          sha256 = "0ghbpa9pf7k6vd2mjxkpqg2qfl4sd40ir6mrk1rxr1rv8s0afkf7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unkillable-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    untitled-new-buffer = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , magic-filetype
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "untitled-new-buffer";
+        ename = "untitled-new-buffer";
+        version = "20161212.708";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "untitled-new-buffer.el";
+          rev = "e359ae63bc6310e315b7c25157858f9b9796ed3d";
+          sha256 = "0wgyc798pn9224ck3c4xndrrmsd4j12qdxhy6i7y7i27y1gw6ckj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/untitled-new-buffer";
+          sha256 = "1hpv7k7jhpif9csdrd2gpz71s3fp4svsvrd1nh8hbx7avjl66pjf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magic-filetype ];
+        meta = {
+          homepage = "https://melpa.org/#/untitled-new-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    upbo = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "upbo";
+        ename = "upbo";
+        version = "20180422.122";
+        src = fetchFromGitHub {
+          owner = "shiren";
+          repo = "upbo";
+          rev = "63514c484e70cd6eeae828f7e58216e1a3429184";
+          sha256 = "0dwff302v38hxxspfap49w1afx8g3scl4gm30ksybnfph1pa29l4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/upbo";
+          sha256 = "15rqz9z49363anrhli08vk155wp21hq3j7xsvd98lkq9ip6aglns";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/upbo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    uptimes = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "uptimes";
+        ename = "uptimes";
+        version = "20180416.623";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "uptimes.el";
+          rev = "5e81f8bb419836602819045e7d5a74b76ad3e69c";
+          sha256 = "04l452k249s3ilfj0da0k7rrfyjnxxdsipa2al46xqjds8l3h2rn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/uptimes";
+          sha256 = "0r8s5c2hdcb1ly7rnhzar4qzf1c9d49gd914ndnc3mg9yb9gyy5h";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/uptimes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    url-shortener = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "url-shortener";
+        ename = "url-shortener";
+        version = "20170804.1942";
+        src = fetchFromGitHub {
+          owner = "yuyang0";
+          repo = "url-shortener";
+          rev = "06db8270213b9e352d6c335b0663059a1353d05e";
+          sha256 = "1ndcajgvfl46zw2iwgghvcldsy9p778pifkhlanivc6azajhpjhh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/url-shortener";
+          sha256 = "08zsirsndhr8xny2vkzznkvjs0b6490lzd915ws6crdwxp6mx5si";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/url-shortener";
+          license = lib.licenses.free;
+        };
+      }) {};
+    urlenc = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "urlenc";
+        ename = "urlenc";
+        version = "20140116.656";
+        src = fetchFromGitHub {
+          owner = "buzztaiki";
+          repo = "urlenc-el";
+          rev = "835a6dcb783bbe84714bae87a3464aa0b128bfac";
+          sha256 = "0xwr0v4f64d7hi5ldig4r5yjn8h3f8by49g5820187lsp7ng2nw4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/urlenc";
+          sha256 = "0n6shh95m11162zsnf62zy1ljswdjznjilxx2dbqyqdrn7qr2dgh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/urlenc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    usage-memo = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "usage-memo";
+        ename = "usage-memo";
+        version = "20170925.1737";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "usage-memo";
+          rev = "88e15a9942a3e0a6e36e9c3e51e3edb746067b1a";
+          sha256 = "1aalrgyk8pwsc07qmczqhgccjli6mcckkbgpass3kvrkcfxdl2zk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/usage-memo";
+          sha256 = "0fv96xd6gk12nv98zccwncr00qms0pmrp0cv7iipbz54s20g0745";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/usage-memo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    use-package = callPackage ({ bind-key
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "use-package";
+        ename = "use-package";
+        version = "20181110.958";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "use-package";
+          rev = "d9f229453da31fdf9a55207db09e360c5071d706";
+          sha256 = "0ksz58zpnx4is4zxwjm9c16bxhlwwq514r8f8vgivfjy4iy446ya";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/use-package";
+          sha256 = "0d0zpgxhj6crsdi9sfy30fn3is036apm1kz8fhjg1yzdapf1jdyp";
+          name = "recipe";
+        };
+        packageRequires = [ bind-key emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/use-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    use-package-chords = callPackage ({ bind-chord
+                                      , bind-key
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , key-chord
+                                      , lib
+                                      , melpaBuild
+                                      , use-package }:
+      melpaBuild {
+        pname = "use-package-chords";
+        ename = "use-package-chords";
+        version = "20181024.1622";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "use-package";
+          rev = "763bf5337dab14b318a3ddce29140de1ed8fb35b";
+          sha256 = "08v4rsl3x5dj7ihpnzbyxjbg2ls2kybcsb0rcxjh5anj4hmcsyly";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/use-package-chords";
+          sha256 = "1217l0gpxcp8532p0d3g1xd2015qpx2g5xm0kwsbxdmffqqdaar3";
+          name = "recipe";
+        };
+        packageRequires = [ bind-chord bind-key key-chord use-package ];
+        meta = {
+          homepage = "https://melpa.org/#/use-package-chords";
+          license = lib.licenses.free;
+        };
+      }) {};
+    use-package-el-get = callPackage ({ fetchFromGitLab
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , use-package }:
+      melpaBuild {
+        pname = "use-package-el-get";
+        ename = "use-package-el-get";
+        version = "20180130.2105";
+        src = fetchFromGitLab {
+          owner = "edvorg";
+          repo = "use-package-el-get";
+          rev = "f33c448ed43ecb003b60ff601ee7ef9b08cff947";
+          sha256 = "1wzn3h8k7aydj3hxxws64b0v4cr3b77cf7z128xh3v6xz2w62m4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/use-package-el-get";
+          sha256 = "143vydssjxmkcgs661hz6nhg310r8qypn2a4vyxy5sb31wqcclzg";
+          name = "recipe";
+        };
+        packageRequires = [ use-package ];
+        meta = {
+          homepage = "https://melpa.org/#/use-package-el-get";
+          license = lib.licenses.free;
+        };
+      }) {};
+    use-package-ensure-system-package = callPackage ({ fetchFromGitHub
+                                                     , fetchurl
+                                                     , lib
+                                                     , melpaBuild
+                                                     , system-packages
+                                                     , use-package }:
+      melpaBuild {
+        pname = "use-package-ensure-system-package";
+        ename = "use-package-ensure-system-package";
+        version = "20180913.801";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "use-package";
+          rev = "2b89ca4b9102baaf3f84f3fc8177c8a17288e291";
+          sha256 = "18xpjqvnrk72jybbd5xipnsbngkj38hqd9vfq0kb42fhiv1v5b92";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/use-package-ensure-system-package";
+          sha256 = "1cl61nwgsz5dh3v9rdiww8mq2k1sbx27gr6izb4ij4pnzjp7aaj6";
+          name = "recipe";
+        };
+        packageRequires = [ system-packages use-package ];
+        meta = {
+          homepage = "https://melpa.org/#/use-package-ensure-system-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    use-ttf = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "use-ttf";
+        ename = "use-ttf";
+        version = "20180608.2252";
+        src = fetchFromGitHub {
+          owner = "jcs090218";
+          repo = "use-ttf";
+          rev = "be1599e10ae5c095cd263a1d9be3e8270f770f55";
+          sha256 = "141gpnpj4gia7wyn60v24r0ysr0m2cx0p3sdh956hsk6bh29l78h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/use-ttf";
+          sha256 = "08bylry03q1vy1dx8vcdc4drrn4c97hr45nsz5xc0369jmfvqavs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/use-ttf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    usql = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "usql";
+        ename = "usql";
+        version = "20180305.1523";
+        src = fetchFromGitHub {
+          owner = "nickbarnwell";
+          repo = "usql.el";
+          rev = "bfaf428b366a9a185eef84f0d645a98dc918fe3d";
+          sha256 = "00b1g30l86abg65wc9f4vcn4ccqa2zmn2mi33vdjrq3phw17d2ks";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/usql";
+          sha256 = "10ks164kcly5gkb2qmn700a51kph2sry4a64jwn60p5xl7w7af84";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/usql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    utop = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "utop";
+        ename = "utop";
+        version = "20181010.1455";
+        src = fetchFromGitHub {
+          owner = "diml";
+          repo = "utop";
+          rev = "ea38850e606dd18c94e2ccabc28485fec1c8f91f";
+          sha256 = "0g7mj1qag9d7mn58l3lh7as0w4bj7rq3r6d3mykafgyjaajsxnx0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/utop";
+          sha256 = "0lv16kl29gc9hdcpn04l85pf7x93vkl41s4mgqp678cllzyr0cq7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/utop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    uuid = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "uuid";
+        ename = "uuid";
+        version = "20120910.151";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-uuid";
+          rev = "1519bfeb0e31602b840bc8dd35d7c7e732c159fe";
+          sha256 = "0r74gw8gcbrr62rvj4anz0c3n6kwi1xpb42d3pkzlh4igblhi5zj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/uuid";
+          sha256 = "0d69z9686gnd1bb17wa44v1rbbgccacn4kicwf9niwwp05nccfw6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/uuid";
+          license = lib.licenses.free;
+        };
+      }) {};
+    uuidgen = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "uuidgen";
+        ename = "uuidgen";
+        version = "20140918.1601";
+        src = fetchFromGitHub {
+          owner = "kanru";
+          repo = "uuidgen-el";
+          rev = "7eb96415484c3854a3f383d1a3e10b87ae674e22";
+          sha256 = "19bf6vpc2b9hfjkjanji96fflvk1lbillasnpwcb6zzyq0cs47bw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/uuidgen";
+          sha256 = "1qaz7hg0wsdkl0jb7v7vrkjs554i2zgpxl8xq2f8q7m4bs2m5k48";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/uuidgen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    v2ex-mode = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , let-alist
+                             , lib
+                             , melpaBuild
+                             , request }:
+      melpaBuild {
+        pname = "v2ex-mode";
+        ename = "v2ex-mode";
+        version = "20160719.2045";
+        src = fetchFromGitHub {
+          owner = "aborn";
+          repo = "v2ex-mode";
+          rev = "b7d19bb594b43ea3824a6f215dd1e5d1d4c0e8ad";
+          sha256 = "0hhj5xfm7mp3ajrbj9ai5p2d9akaqkj89rmqmg1vpyfp3x2f4h2k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/v2ex-mode";
+          sha256 = "04frd6jbnf9g7ak2fdbik9iji7b0903cpbg1hx7rai1853af7gh1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib let-alist request ];
+        meta = {
+          homepage = "https://melpa.org/#/v2ex-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vagrant = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "vagrant";
+        ename = "vagrant";
+        version = "20170301.1406";
+        src = fetchFromGitHub {
+          owner = "ottbot";
+          repo = "vagrant.el";
+          rev = "636ce2f9af32ea199170335a9cf1201b64873440";
+          sha256 = "06zws69z327p00jw3zaf67niji2d4j339xmhbsrwbcr4w65dmz94";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vagrant";
+          sha256 = "0g6sqzsx3lixcn09fkxhhcfp45qnqgf1ms0l7nkzyljavb7151cf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vagrant";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vagrant-tramp = callPackage ({ dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "vagrant-tramp";
+        ename = "vagrant-tramp";
+        version = "20160427.1632";
+        src = fetchFromGitHub {
+          owner = "dougm";
+          repo = "vagrant-tramp";
+          rev = "453ba605b28d2964bb4e10074f1e6891ebb4d2d6";
+          sha256 = "138gw90wa2qyzyicig3cwhpb1xc5bh9g0vb87y91afjlykhzr6a5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vagrant-tramp";
+          sha256 = "0ij7k27zj22sl7inx141l4dg0ymywnvyabjvaqzc0xjdj0cky5c5";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/vagrant-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vala-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "vala-mode";
+        ename = "vala-mode";
+        version = "20150324.1525";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "vala-mode";
+          rev = "fb2871a4492d75d03d72e60474919ab89adb267b";
+          sha256 = "10vs4d8csww781j1ps3f6dczy5zzza36z7a8zqk40fg4x57ikw44";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vala-mode";
+          sha256 = "164dhlsiflhpdymk3q5x0bv8gpbwfp34lnkhm2x90kdakfzqf91p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vala-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vala-snippets = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , yasnippet }:
+      melpaBuild {
+        pname = "vala-snippets";
+        ename = "vala-snippets";
+        version = "20150428.2052";
+        src = fetchFromGitHub {
+          owner = "gopar";
+          repo = "vala-snippets";
+          rev = "671439501060449bd100b9fffd524a86064fbfbb";
+          sha256 = "0iscaz8lm4fk6w13f68ysqk8ppng2wj9fkkkq1rfqz77ws66f8nq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vala-snippets";
+          sha256 = "14hmmic0px3z38dm2dg0kis6cz1p3p1hj7xaqnqjmv02dkx2mmcy";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/vala-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vbasense = callPackage ({ auto-complete
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , log4e
+                            , melpaBuild
+                            , yaxception }:
+      melpaBuild {
+        pname = "vbasense";
+        ename = "vbasense";
+        version = "20140221.1553";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-vbasense";
+          rev = "8c61a492d7c15218ae1a96e2aebfe6f78bfff6db";
+          sha256 = "19j5q2f6pybvjq3ryjcyihzlw348hqyjhfcy3qflry6w786dqcgn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vbasense";
+          sha256 = "1440q2bi4arpl5lbqh7zscg7v3884clqx54p2fdfcfkz47ky4z9n";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/vbasense";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vc-auto-commit = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "vc-auto-commit";
+        ename = "vc-auto-commit";
+        version = "20170107.533";
+        src = fetchFromGitHub {
+          owner = "thisirs";
+          repo = "vc-auto-commit";
+          rev = "446f664f4ec835532f4f18ba18b5fb731f6030aa";
+          sha256 = "18jjl656ps75p7n3hf16mcjrgiagnjvb8m8dl4i261cbnq98qmav";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vc-auto-commit";
+          sha256 = "1xpp7vbld3jgcr249m5h7il919kfg7d5ap3zs64i27axzdhv26zk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vc-auto-commit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vc-check-status = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "vc-check-status";
+        ename = "vc-check-status";
+        version = "20170107.534";
+        src = fetchFromGitHub {
+          owner = "thisirs";
+          repo = "vc-check-status";
+          rev = "37734beb16bfd8633ea328059bf9a47eed826d5c";
+          sha256 = "0mspksr2i6hkb7bhs38ydmn0d2mn7g1hjva60paq86kl7k76f7ra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vc-check-status";
+          sha256 = "1kwnxa0ndfj8b211xy5d47sxkwmsay0kk8q7azfm5ag5dkg56zgi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vc-check-status";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vc-darcs = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "vc-darcs";
+        ename = "vc-darcs";
+        version = "20170904.2020";
+        src = fetchFromGitHub {
+          owner = "velkyel";
+          repo = "vc-darcs";
+          rev = "390fb1ebdda1ffac45b9be02626dde3b6d95ac11";
+          sha256 = "1fcqkavc7hlbhswx5nnaqhash42cjsbr72ijznx5cplr582g3mfq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vc-darcs";
+          sha256 = "1xskl9wjxkbdpi0fm769ymbvya70vssi944x5252w2d3layibm6m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vc-darcs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vc-fossil = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "vc-fossil";
+        ename = "vc-fossil";
+        version = "20180215.835";
+        src = fetchFromGitHub {
+          owner = "venks1";
+          repo = "emacs-fossil";
+          rev = "7c5af95181213db38f81f5f9586f3334301a3ea0";
+          sha256 = "1c18ywvs0l5w7ip2igksjy48awzas8mph7plpvp1v8c67a3a3m2m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vc-fossil";
+          sha256 = "11ps2wrkjrjm1d984mf80wwj1hzskw5qrn0nv7md21lp75kxsvxb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vc-fossil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vc-hgcmd = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "vc-hgcmd";
+        ename = "vc-hgcmd";
+        version = "20181112.2358";
+        src = fetchFromGitHub {
+          owner = "muffinmad";
+          repo = "emacs-vc-hgcmd";
+          rev = "c95696fb2da0b0ebc9173bc0335e11083d5e87b8";
+          sha256 = "07n9dpp686xqrcsr3sajn2vd2wm6dphpqwqp9lw6wkzl5z0qbm0y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vc-hgcmd";
+          sha256 = "11p8r94s72x47nkxlarxwy33im167jpjas8b9i8dkrz2iggwn5xk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vc-hgcmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vc-msg = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , popup }:
+      melpaBuild {
+        pname = "vc-msg";
+        ename = "vc-msg";
+        version = "20180604.1758";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "vc-msg";
+          rev = "ffd8db482cbd9fb63dace0e5ddcc7207a9c99f5e";
+          sha256 = "1zq01k50d958prl8aaz8n2sv541lrq3s1dn8vnfal4drn3iffgv9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vc-msg";
+          sha256 = "16pgx8pg3djhkmhf1fihgjk7c6nb2nsqj58888bwg7385mlwc7g9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs popup ];
+        meta = {
+          homepage = "https://melpa.org/#/vc-msg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vc-osc = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "vc-osc";
+        ename = "vc-osc";
+        version = "20161119.1155";
+        src = fetchFromGitHub {
+          owner = "aspiers";
+          repo = "vc-osc";
+          rev = "8c09a0d5f69237285101554261b77d76b546a24b";
+          sha256 = "153zwhljkjl0dajd1l6p5icva0bnpa2rj8byjblb3xv8rq7p1fzc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vc-osc";
+          sha256 = "0rp33945xk5d986brganqnn55psmlkj6glbimxakhgv9a1r85sxz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vc-osc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vcl-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "vcl-mode";
+        ename = "vcl-mode";
+        version = "20170119.1251";
+        src = fetchFromGitHub {
+          owner = "ssm";
+          repo = "vcl-mode";
+          rev = "3d86c1352a7370d558d25f4c8f7be744e7d27332";
+          sha256 = "1zp59p8pw65qy7s9y17a52y1pm35hajdfn3p1kfm1y3vmfxf9x3a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vcl-mode";
+          sha256 = "1h0a1briinp9ka7ga3ipdhyf7yfinwvf7babv36myi720900wcq5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vcl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vcomp = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "vcomp";
+        ename = "vcomp";
+        version = "20140906.1508";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "vcomp";
+          rev = "092ef48a78e950c0576269d889be6caf9f6e61c5";
+          sha256 = "0fzz26c1pdaz3i58ndhzd2520mhny487daqs21yajxi9x2m00zrl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vcomp";
+          sha256 = "02cj2nlyxvgvl2rjfgacljvcsnfm9crmmkhcm2pznj9xw10y8pq0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vcomp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdiff = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , hydra
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "vdiff";
+        ename = "vdiff";
+        version = "20180920.1020";
+        src = fetchFromGitHub {
+          owner = "justbur";
+          repo = "emacs-vdiff";
+          rev = "3bfb5decd7fcef73759b247b29aeae669fb79499";
+          sha256 = "0l8si73dz9ch6gbl76ibhginzi8l92y3xa7w7jnr6hsyskrrlpid";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdiff";
+          sha256 = "11gw0l63fssbiyhngqb7ykrp7m1vy55wlf27ybhh2dkwh1cpkr4l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hydra ];
+        meta = {
+          homepage = "https://melpa.org/#/vdiff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdiff-magit = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , magit
+                               , melpaBuild
+                               , vdiff }:
+      melpaBuild {
+        pname = "vdiff-magit";
+        ename = "vdiff-magit";
+        version = "20180819.1102";
+        src = fetchFromGitHub {
+          owner = "justbur";
+          repo = "emacs-vdiff-magit";
+          rev = "2589b93a0a789b1d86e607cb84979c6a837eb008";
+          sha256 = "0cgmxm8rgla3iadwfla21xnxq7a10cwk9r2akk6hp2fpq2i38il9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdiff-magit";
+          sha256 = "1vjc1r5xfdg9bmscgppx1fps1w5bd0zpp6ab5z5dxlg2zx2vdldw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit vdiff ];
+        meta = {
+          homepage = "https://melpa.org/#/vdiff-magit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdirel = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , helm
+                          , lib
+                          , melpaBuild
+                          , org-vcard
+                          , seq }:
+      melpaBuild {
+        pname = "vdirel";
+        ename = "vdirel";
+        version = "20181001.435";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "vdirel";
+          rev = "dfe5f9478405b8292f85fc911db92e81b627626a";
+          sha256 = "1m1k5sfmvi3hw8l4qd4sfhi9h8wk9jd4psb62m4bjf5gbk5ld1pw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdirel";
+          sha256 = "11cc7bw7x5h3bwnlsjyhw6k5fh2fk7wffarrcny562v4cmr013cj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm org-vcard seq ];
+        meta = {
+          homepage = "https://melpa.org/#/vdirel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdm-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "vdm-mode";
+        ename = "vdm-mode";
+        version = "20181112.1211";
+        src = fetchFromGitHub {
+          owner = "peterwvj";
+          repo = "vdm-mode";
+          rev = "5440ca997b997df11d3d3bf67e4b547df6df118d";
+          sha256 = "1fpyk0yk17vdrcvzqm3gm56bqxrq07sjmnjjaq5ljg44dp7q6xg1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdm-mode";
+          sha256 = "1h72731vcsjqsbii1wbzpa114x09aqbkbnz5fg9fnjq9rybz6rn7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vdm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdm-snippets = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , yasnippet }:
+      melpaBuild {
+        pname = "vdm-snippets";
+        ename = "vdm-snippets";
+        version = "20181118.1243";
+        src = fetchFromGitHub {
+          owner = "peterwvj";
+          repo = "vdm-mode";
+          rev = "a8f9eb9addc51bc2022a1fce5ad3210961befcce";
+          sha256 = "1k6ihxja3gmk38ddzg8hmq1f7w5l3qhjz05fv463rqy2fz5wl0ki";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdm-snippets";
+          sha256 = "1js1hjs2r9bbqm50bl389y87xn68f30xrh2z6nd5kz2hdgkm6lhj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/vdm-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vector-utils = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "vector-utils";
+        ename = "vector-utils";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "vector-utils";
+          rev = "5f9ced3960a318d611c3d20ffdc9ca74054fa8b7";
+          sha256 = "11mqjymcgssahlpc83qflcavjs2lrk0rq4pq2nq9sxm2dgnvrz86";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vector-utils";
+          sha256 = "07armr23pq5pd47lqhir6a59r86c84zikbc51d8vfcaw8y71yr5n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vector-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    veri-kompass = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitLab
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , org }:
+      melpaBuild {
+        pname = "veri-kompass";
+        ename = "veri-kompass";
+        version = "20181110.133";
+        src = fetchFromGitLab {
+          owner = "koral";
+          repo = "veri-kompass";
+          rev = "72aa690da9a349601c9befe454d456d46b17fee6";
+          sha256 = "0da47w45a1q04srsc0kgjp4lacgaa6abf2b11qjgckm3drahifgg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/veri-kompass";
+          sha256 = "103x4003qj0z9ki6xz4hymamyhipzfxz94x4gszk3k2qnvkjkxnj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/veri-kompass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    verify-url = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "verify-url";
+        ename = "verify-url";
+        version = "20160426.528";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "verify-url";
+          rev = "d6f3623cda8cd526a2d198619b137059cb1ba1ab";
+          sha256 = "1y6vjw5qzaxr37spg5d4nxffmhiipzsrd7mvh8bs3jcfrsg3080n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/verify-url";
+          sha256 = "1gd83rb1q0kywchd0345p5axqj1sv4f5kadympx5pbp4n5p1dqb2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/verify-url";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vertica = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , sql ? null }:
+      melpaBuild {
+        pname = "vertica";
+        ename = "vertica";
+        version = "20131217.711";
+        src = fetchFromGitHub {
+          owner = "r0man";
+          repo = "vertica-el";
+          rev = "3c9647b425c5c13c30bf0cba483646af18196588";
+          sha256 = "1mp71axs3vdrdwlhgywfldvnr6a1g2qbxiywmpfmcv59n5n58p1j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vertica";
+          sha256 = "1ljjk6zrbr2k0s0iaqd9iq3j45cavijcx0rqdidliswnfllav4ng";
+          name = "recipe";
+        };
+        packageRequires = [ sql ];
+        meta = {
+          homepage = "https://melpa.org/#/vertica";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vertica-snippets = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "vertica-snippets";
+        ename = "vertica-snippets";
+        version = "20181016.48";
+        src = fetchFromGitHub {
+          owner = "baron42bba";
+          repo = "vertica-snippets";
+          rev = "1f80a737ed53f11d985a64c97bb99cfba8fd0b67";
+          sha256 = "1wdbrpa95pl90ayq17pm8x76kh5i8m02qdj3drc71psb74jm9rji";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vertica-snippets";
+          sha256 = "0044qcf6dyxp2h14ij6w19zs7ikx9xalfrz6jqbl8sy35wcihmhn";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/vertica-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vertigo = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "vertigo";
+        ename = "vertigo";
+        version = "20180829.1530";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "vertigo.el";
+          rev = "6303d17270ea92290a6960890bca515274f1682b";
+          sha256 = "0570x63l1j75issnq23hrhhpisv2jm18fn5mspsvbs4xy2hy4h8i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vertigo";
+          sha256 = "0x0wy1z601sk1x96bl2xx18qm4avd77iybq1a3ss8x8ykwqlgf83";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/vertigo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vhdl-capf = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "vhdl-capf";
+        ename = "vhdl-capf";
+        version = "20160221.934";
+        src = fetchFromGitHub {
+          owner = "sh-ow";
+          repo = "vhdl-capf";
+          rev = "290abe217050f33532bc9ccb04f894123402f414";
+          sha256 = "185a7962h94122q783ih7s8r28xifm0bcrqvkd0g4p64mijlbh3d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vhdl-capf";
+          sha256 = "06dkw5ra9wnscpgrnx851vyfgr5797xd60qdimsr2v1bqd8si9km";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vhdl-capf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vhdl-tools = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , ggtags
+                              , helm
+                              , lib
+                              , melpaBuild
+                              , outshine }:
+      melpaBuild {
+        pname = "vhdl-tools";
+        ename = "vhdl-tools";
+        version = "20181115.936";
+        src = fetchFromGitHub {
+          owner = "csantosb";
+          repo = "vhdl-tools";
+          rev = "536a265d74c6fb750f35d50950bdccf12f929512";
+          sha256 = "0x2xmk1ix16qdnjz1qi0vvycmqz7z95zkiqh4wymjmanvnqbwlrn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vhdl-tools";
+          sha256 = "006d9xv60a90xalagczkziiimwsr1np9nn25zvnc4nlbf8j3fbbw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ggtags helm outshine ];
+        meta = {
+          homepage = "https://melpa.org/#/vhdl-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vi-tilde-fringe = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "vi-tilde-fringe";
+        ename = "vi-tilde-fringe";
+        version = "20141027.1942";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "vi-tilde-fringe";
+          rev = "e6e15638e8c45a5e68d0874d5d8c9a46c4f38a54";
+          sha256 = "08bsman85x2l94ighzcj3xkis1snjc96bmgc8yfk63vqlybv5pw9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vi-tilde-fringe";
+          sha256 = "0jhwv46gjwjbs1ai65nm6k15y0q4yl9m5mawgp3n4f45dh02cawp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vi-tilde-fringe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    viewer = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "viewer";
+        ename = "viewer";
+        version = "20170106.1802";
+        src = fetchFromGitHub {
+          owner = "rubikitch";
+          repo = "viewer";
+          rev = "6c8db025bf4021428f7f2c3ef9d74fb13f5d267a";
+          sha256 = "1sj4a9zwfv94m0ac503gan6hf9sl2658khab1fnj8szcq7hrdvq1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/viewer";
+          sha256 = "10rw3b8akd2fl8gsqf1m24zi6q4n0z68lvvv1vx9c9b7ghqcqxw1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/viewer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    viking-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "viking-mode";
+        ename = "viking-mode";
+        version = "20160705.1327";
+        src = fetchFromGitHub {
+          owner = "TLINDEN";
+          repo = "viking-mode";
+          rev = "c76aa265d13ad91d6890d242e142d05e31f0340b";
+          sha256 = "1944p3kbskzj4d9w9prbi7z59lrn087v3gphbhwjplz6mvwbl8g6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/viking-mode";
+          sha256 = "12z9807ya0gsgx7h3zdvpx7jksjjrglz3qqyz65wj71sibjfry4m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/viking-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vim-empty-lines-mode = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "vim-empty-lines-mode";
+        ename = "vim-empty-lines-mode";
+        version = "20150110.2026";
+        src = fetchFromGitHub {
+          owner = "jmickelin";
+          repo = "vim-empty-lines-mode";
+          rev = "442a29b0ba1635a3b352c9dd1faf9ce99656d048";
+          sha256 = "09x857vbx35rpyc5x1322ajby613gva090x4vawaczk22idq65h4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vim-empty-lines-mode";
+          sha256 = "17bl1g4ais73ws596mha0l8dgckfqhx9k2v9m9k0gw7kg7dcjhnb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vim-empty-lines-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vim-region = callPackage ({ expand-region
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "vim-region";
+        ename = "vim-region";
+        version = "20140329.924";
+        src = fetchFromGitHub {
+          owner = "ongaeshi";
+          repo = "emacs-vim-region";
+          rev = "7c4a99ce3678fee40c83ab88e8ad075d2a935fdf";
+          sha256 = "13g2hin100c8h5bd7hzhyqzj02ab9c35giyv963l7y044v7sbwig";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vim-region";
+          sha256 = "1dcnx799lpjsdnnjxqzgskkfj2nx7f4kwf0xjhbg35ny4nyn81dx";
+          name = "recipe";
+        };
+        packageRequires = [ expand-region ];
+        meta = {
+          homepage = "https://melpa.org/#/vim-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vimish-fold = callPackage ({ cl-lib ? null
+                               , emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "vimish-fold";
+        ename = "vimish-fold";
+        version = "20181101.950";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "vimish-fold";
+          rev = "ee647688a53fe91174d5450b61b882d389196f8e";
+          sha256 = "1dq9ss05f4p3n52zzynpjgsc59sk06n63ir98w03nknr9bpljl8w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vimish-fold";
+          sha256 = "017by9w53d8pqlsazfycmhdv16yylks308p5vxp1rcw2qacpc5m3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/vimish-fold";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vimrc-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "vimrc-mode";
+        ename = "vimrc-mode";
+        version = "20181116.1119";
+        src = fetchFromGitHub {
+          owner = "mcandre";
+          repo = "vimrc-mode";
+          rev = "13bc150a870d5d4a95f1111e4740e2b22813c30e";
+          sha256 = "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vimrc-mode";
+          sha256 = "05zmr624qwsj9wqsmjlhjvjl1fc1qxz4vvbb3ljr5fbpxdjrbnpn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vimrc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    virtualenv = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "virtualenv";
+        ename = "virtualenv";
+        version = "20140220.1501";
+        src = fetchFromGitHub {
+          owner = "aculich";
+          repo = "virtualenv.el";
+          rev = "cc82856b6316d5e78073de717f0d5d1a4ee35fa6";
+          sha256 = "1appaxy44njjyp5jp8l0nyqrvbi8hkdvbdfvvf5n08ad43g281p1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/virtualenv";
+          sha256 = "1djqzzlbwsp9xyjqjbjwdck73wzikbpq19irzamybk90nc98wirl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/virtualenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    virtualenvwrapper = callPackage ({ dash
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , s }:
+      melpaBuild {
+        pname = "virtualenvwrapper";
+        ename = "virtualenvwrapper";
+        version = "20180211.1744";
+        src = fetchFromGitHub {
+          owner = "porterjamesj";
+          repo = "virtualenvwrapper.el";
+          rev = "bf13158dde071bdf4901709ed101aba6b8a25f7f";
+          sha256 = "003nj9i6kfjyw1bdz1y3dssp3ff7irhsfq21r430xvdfnzrby4ky";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/virtualenvwrapper";
+          sha256 = "0rn5vwncx8z69xp8hspr06nzkf28l9flchpb2936c2nalmhx6m8i";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/virtualenvwrapper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    visible-mark = callPackage ({ fetchFromGitLab
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "visible-mark";
+        ename = "visible-mark";
+        version = "20150623.2150";
+        src = fetchFromGitLab {
+          owner = "iankelling";
+          repo = "visible-mark";
+          rev = "c1852e13b6b61982738b56977a452ec9026faf1b";
+          sha256 = "15zdbvv6c114mv6hdq375l7ax70sss06p9d7m86hgssc3kiv9vsv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/visible-mark";
+          sha256 = "1rp0gnz28m1drwb1hhsf0mwxzdppdi88hscf788qw8cw65gckv80";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/visible-mark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    visual-ascii-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "visual-ascii-mode";
+        ename = "visual-ascii-mode";
+        version = "20150129.246";
+        src = fetchFromGitHub {
+          owner = "Dewdrops";
+          repo = "visual-ascii-mode";
+          rev = "99285a099a17472ddd9f1b4f74e9d092dd8c5947";
+          sha256 = "1cv8mf3l92a9p8qmkfiphk3r81f2ihg2gyw2r4jbbd5ppwbxkl0n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/visual-ascii-mode";
+          sha256 = "1h0143h39dq61afswlzlgpknk0gv574x91ar6klqmnaf1snab59g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/visual-ascii-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    visual-fill-column = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "visual-fill-column";
+        ename = "visual-fill-column";
+        version = "20180919.57";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "visual-fill-column";
+          rev = "33f68b9d94b5877f21209b68438a3cd95f801dc1";
+          sha256 = "1cd3d29blpxappd32m61m9y64ss252byl15xb2jkxjc731bk3z55";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/visual-fill-column";
+          sha256 = "19y0pwaybjal2rc7migdbnafpi4dfbxvrzgfqr8dlvd9q68v08y5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/visual-fill-column";
+          license = lib.licenses.free;
+        };
+      }) {};
+    visual-regexp = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "visual-regexp";
+        ename = "visual-regexp";
+        version = "20170228.1716";
+        src = fetchFromGitHub {
+          owner = "benma";
+          repo = "visual-regexp.el";
+          rev = "b3096c2d391ff4e28a2a4e8cd82efbf11071ea85";
+          sha256 = "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/visual-regexp";
+          sha256 = "16bdqq2j7pnjq3j6qa4rhxzidqdhyg80c7nazd93smis8rcv5d0z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/visual-regexp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    visual-regexp-steroids = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild
+                                          , visual-regexp }:
+      melpaBuild {
+        pname = "visual-regexp-steroids";
+        ename = "visual-regexp-steroids";
+        version = "20170221.1853";
+        src = fetchFromGitHub {
+          owner = "benma";
+          repo = "visual-regexp-steroids.el";
+          rev = "a6420b25ec0fbba43bf57875827092e1196d8a9e";
+          sha256 = "1isqa4ck6pm4ykcrkr0g1qj8664jkpcsrq0f8dlb0sksns2dqkwj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/visual-regexp-steroids";
+          sha256 = "1xkrzyyll8wmb67m75lfm9k8qcm068km8r1k8hcsadpkd01bx1lr";
+          name = "recipe";
+        };
+        packageRequires = [ visual-regexp ];
+        meta = {
+          homepage = "https://melpa.org/#/visual-regexp-steroids";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vlf = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "vlf";
+        ename = "vlf";
+        version = "20180201.1454";
+        src = fetchFromGitHub {
+          owner = "m00natic";
+          repo = "vlfi";
+          rev = "31b292dc85a374fb343789e217015683bfbdf5f1";
+          sha256 = "18ll47if9ajv0jj2aps8592bj7xqhxy74sbsqn07x9ywinxxi9mn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vlf";
+          sha256 = "1ipkv5kmda0l39xwbf7ns9p0mx3kb781mxsm9vmbkhr5x577s2j8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vlf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vmd-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "vmd-mode";
+        ename = "vmd-mode";
+        version = "20180223.556";
+        src = fetchFromGitHub {
+          owner = "blak3mill3r";
+          repo = "vmd-mode";
+          rev = "24e38a20951dfad6e3e985c7cc6286c1e271da5f";
+          sha256 = "00anpbnf0h6iikhpqz4mss507j41xwvv27svw41kpgcwsnrmrqwm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vmd-mode";
+          sha256 = "1xjyl2xh3vig2rzjqm1a4h2ridygbanmal78s4yc32hacy0lfyrx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vmd-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    voca-builder = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , popup }:
+      melpaBuild {
+        pname = "voca-builder";
+        ename = "voca-builder";
+        version = "20161101.945";
+        src = fetchFromGitHub {
+          owner = "yitang";
+          repo = "voca-builder";
+          rev = "51573beec8cd8308477b0faf453aad93e17f57c5";
+          sha256 = "1gd7zqmyn389dfyx1yll1bw5f8kjib87k33s9hxsbx0db8vas9q6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/voca-builder";
+          sha256 = "0mbw87mpbb8rw7xzhmg6yjla2c80x9820kw4q00x00ny5rbhm76y";
+          name = "recipe";
+        };
+        packageRequires = [ popup ];
+        meta = {
+          homepage = "https://melpa.org/#/voca-builder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    volatile-highlights = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "volatile-highlights";
+        ename = "volatile-highlights";
+        version = "20160611.1855";
+        src = fetchFromGitHub {
+          owner = "k-talo";
+          repo = "volatile-highlights.el";
+          rev = "9a20091f0ce7fc0a6b3e641a6a46d5f3ac4d8392";
+          sha256 = "1dsa6769lphyyv7yg92vkkpk395w52q4m7hdn8xy7s6lh5c6a955";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/volatile-highlights";
+          sha256 = "1r6in919aqdziv6bgzp4k7jqa87bd287pacq615sd5m1nzva1a4d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/volatile-highlights";
+          license = lib.licenses.free;
+        };
+      }) {};
+    volume = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "volume";
+        ename = "volume";
+        version = "20150718.1309";
+        src = fetchFromGitHub {
+          owner = "dbrock";
+          repo = "volume.el";
+          rev = "ecc1550b3c8b501d37e0f0116b54b535d15f90f6";
+          sha256 = "0ymibjq6iwab5ia1fglhz4gm5cnbi792018fmrabcqkisj2zsjb7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/volume";
+          sha256 = "1gm2zaf6qwbdhayaj153882qm21cl4qdyjkdnqrlssb2mcgf017w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/volume";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vscode-icon = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "vscode-icon";
+        ename = "vscode-icon";
+        version = "20180922.1450";
+        src = fetchFromGitHub {
+          owner = "jojojames";
+          repo = "vscode-icon-emacs";
+          rev = "3ad83ee122d312775a101c975424a2c87c3a80b1";
+          sha256 = "0pd9j1bp8lqda8r6kgmxinf6x8aqfg1aikgk2svlcf1g8z31m66i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vscode-icon";
+          sha256 = "0rhsqzgxl7hs52kniyi8yn4f953g7dgx49j4lzf2yr33ydxiw9d3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vscode-icon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vue-html-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "vue-html-mode";
+        ename = "vue-html-mode";
+        version = "20180428.1335";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "vue-html-mode";
+          rev = "361a9fa117f044c3072dc5a7344ff7be31725849";
+          sha256 = "1z1pphxli8fcahw9fhmxls1v9nyd34pz51jwwa6g468zvdmcjb77";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vue-html-mode";
+          sha256 = "1f4pjfp4298jkvhacxygddg557hhyivgnm5x3yhjipfv6fjkgl2s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vue-html-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vue-mode = callPackage ({ edit-indirect
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , mmm-mode
+                            , ssass-mode
+                            , vue-html-mode }:
+      melpaBuild {
+        pname = "vue-mode";
+        ename = "vue-mode";
+        version = "20180826.1715";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "vue-mode";
+          rev = "e5faa5767308dcd87139813957eabba62b7caf19";
+          sha256 = "1lw647sjrmwll5hxb027xpd8ax4pjp00ksr3ndjrpfj0zqpnad04";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vue-mode";
+          sha256 = "0npzn7pycqfdakv4plkigq8aw1bqhz3y03y3ypx21q5a186ds0g5";
+          name = "recipe";
+        };
+        packageRequires = [ edit-indirect mmm-mode ssass-mode vue-html-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/vue-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vyper-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "vyper-mode";
+        ename = "vyper-mode";
+        version = "20180707.1235";
+        src = fetchFromGitHub {
+          owner = "ralexstokes";
+          repo = "vyper-mode";
+          rev = "323dfddfc38f0b11697e9ebaf04d1b53297e54e5";
+          sha256 = "1vxqgc9c1lj61ipaw05xfby3nl7wn3kp5ga6kpr17v0jlm0667s5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vyper-mode";
+          sha256 = "0mf1w4mw0ijmd9zxip1df85cp15fbvv9j5dqjmb8lfm4m43wpd96";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vyper-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    w32-browser = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "w32-browser";
+        ename = "w32-browser";
+        version = "20170101.1154";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "w32-browser";
+          rev = "e5c60eafd8f8d3546a0fa295ad5af2414d36b4e6";
+          sha256 = "18hcr9l5id2xdin20wrg9sdmwfad7qk78iryyg24ci9lvl53m02x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/w32-browser";
+          sha256 = "16sp0gn4yv7iaa55i2kvfsqw3610gr3x31l9lqa14r9xmfhda1rn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/w32-browser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    w3m = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "w3m";
+        ename = "w3m";
+        version = "20181022.155";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "w3m";
+          rev = "f392ad9864d3ec30e8b8151bdbd714f51be21bf3";
+          sha256 = "03pjc431ql4kxdspa991d4aagb110qmqm604mq0fhvvhflc36fz8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/w3m";
+          sha256 = "0a4jql7ky62ickccbr2xnyggix5wf726d4pfz7mi3yxlw6i8m79s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/w3m";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wacspace = callPackage ({ cl-lib ? null
+                            , dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "wacspace";
+        ename = "wacspace";
+        version = "20180311.1650";
+        src = fetchFromGitHub {
+          owner = "shosti";
+          repo = "wacspace.el";
+          rev = "54d19aab6fd2bc5945b7ffc58104e695064927e2";
+          sha256 = "1nfx1qsl2gxjqbbc5xsr8f3xz2qyb4wnz3634k3hglb1jpa78j3n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wacspace";
+          sha256 = "1xy0mprvyi37zmgj1yrlh5ni08j47lpag1jm3a76cgghgmlfjxrl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/wacspace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    waf-mode = callPackage ({ fetchgit
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "waf-mode";
+        ename = "waf-mode";
+        version = "20170403.1240";
+        src = fetchgit {
+          url = "https://bitbucket.org/dvalchuk/waf-mode";
+          rev = "91c761336aa137b85b88b53b3f0cc60786d70800";
+          sha256 = "1j2bqhmxjfai343m6iv3a8z37hv154h9kbidbi39d1pz2fl5lv43";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/waf-mode";
+          sha256 = "16rplrs599a67dcxcdc33zb9bqivv4a2mvrshvyip1lp75f36r5h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/waf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    waher-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "waher-theme";
+        ename = "waher-theme";
+        version = "20141115.430";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-waher-theme";
+          rev = "60d31519fcfd8e797723d47961b255ae2f2e2c0a";
+          sha256 = "0w59ix8cbbcyhh882c8vkrbh84i8d03h9w7dchr3qy233b8wcxlc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/waher-theme";
+          sha256 = "091kipkb6z6x9ic4chprim9rvnmx4yj4419ijmvpn70w69aspnb5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/waher-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wakatime-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "wakatime-mode";
+        ename = "wakatime-mode";
+        version = "20180920.2";
+        src = fetchFromGitHub {
+          owner = "wakatime";
+          repo = "wakatime-mode";
+          rev = "2531cb58287770883ba534d20b3288955c4d6ef3";
+          sha256 = "12wa845lwvwg38801mk880izfhjs50ssy5alj1743c2bz7ig5grk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wakatime-mode";
+          sha256 = "1rhy2bwkqlha4bj3zmb0iassiglch7yb2kbas0bbpl3d0hdki2i8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wakatime-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wakib-keys = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "wakib-keys";
+        ename = "wakib-keys";
+        version = "20180818.1129";
+        src = fetchFromGitHub {
+          owner = "darkstego";
+          repo = "wakib-keys";
+          rev = "a858979620bd22801e5ce214dd46d69b19ccd357";
+          sha256 = "1zvjwm4qr82zhp4nb9mjzklqxa2iasw3i623fwp9a2fzn3c2cyx5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wakib-keys";
+          sha256 = "1cgd15zwl15k2bxy3by17pphh6x1z8lanwkfjy4qyp5sxkjvw1cl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wakib-keys";
+          license = lib.licenses.free;
+        };
+      }) {};
+    walkclj = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , parseclj
+                           , treepy }:
+      melpaBuild {
+        pname = "walkclj";
+        ename = "walkclj";
+        version = "20180718.200";
+        src = fetchFromGitHub {
+          owner = "plexus";
+          repo = "walkclj";
+          rev = "2e54fa813b11d1a87c890cdf117f30165a193024";
+          sha256 = "0bgvniw3ibcjsmzwrndg6pxwbpnpnxsb8ijs2gxg5kbm1hqqly32";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/walkclj";
+          sha256 = "0m971dlazildhgj8jqg4x679i6s6p80mbpri7l24ynxk45wix22m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs parseclj treepy ];
+        meta = {
+          homepage = "https://melpa.org/#/walkclj";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wand = callPackage ({ dash
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "wand";
+        ename = "wand";
+        version = "20180815.331";
+        src = fetchFromGitHub {
+          owner = "cmpitg";
+          repo = "wand";
+          rev = "5c0d4833a3afc57e4b2398250139729cc9131d16";
+          sha256 = "1d7zv5mk9mqlp40hzbf62y080a2aqvjw4x7y9frh33217r8h5b6i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wand";
+          sha256 = "052zq5dp800hynd9fb6c645kjb9rp3bpkz41ifazjnx4h4864r0l";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/wand";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wandbox = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , request
+                           , s }:
+      melpaBuild {
+        pname = "wandbox";
+        ename = "wandbox";
+        version = "20170603.531";
+        src = fetchFromGitHub {
+          owner = "kosh04";
+          repo = "emacs-wandbox";
+          rev = "e002fe41f2cd9b4ce2b1dc80b83301176e9117f1";
+          sha256 = "0fnbj3k21lisgs94pf8z13cdymmclgpn994xq3xly4gq6l8k0an5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wandbox";
+          sha256 = "0myyln82nx462bj79acvqxwvmblxild4vbygcrzw5chcwy6crvlz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request s ];
+        meta = {
+          homepage = "https://melpa.org/#/wandbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wanderlust = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , semi }:
+      melpaBuild {
+        pname = "wanderlust";
+        ename = "wanderlust";
+        version = "20181116.2317";
+        src = fetchFromGitHub {
+          owner = "wanderlust";
+          repo = "wanderlust";
+          rev = "05318ec3c724d5a0dad449a16b128a601bbce5ff";
+          sha256 = "1y49wrbkkg933wbxp2jzx0x5hcv06p570vr6q21xln8vi2cxd38z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wanderlust";
+          sha256 = "0lq7fvqc0isv49lcm7ql6prc3hpcj5cx4kf8f4gcnfv5k8159cq9";
+          name = "recipe";
+        };
+        packageRequires = [ semi ];
+        meta = {
+          homepage = "https://melpa.org/#/wanderlust";
+          license = lib.licenses.free;
+        };
+      }) {};
+    warm-night-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "warm-night-theme";
+        ename = "warm-night-theme";
+        version = "20161101.728";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "warm-night-theme";
+          rev = "020f084d23409b5035150508ba6e57c2509edd64";
+          sha256 = "1jmjyx06p0cvqi1vlg5px2g965q9pgi3j61msxjf5skzw53vlc88";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/warm-night-theme";
+          sha256 = "1nrjkrr64rry6fjya22b0lcs0f8a2ijvr87192z311y9mw5rvb29";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/warm-night-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    watch-buffer = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "watch-buffer";
+        ename = "watch-buffer";
+        version = "20120331.1344";
+        src = fetchFromGitHub {
+          owner = "mjsteger";
+          repo = "watch-buffer";
+          rev = "a01cf15608c5bf91df253104053041ca1afdf411";
+          sha256 = "1gbhcvysrgg3xxyvkl3lkyafqmzxhfg5nb7k3zwlvmxmndnzssg8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/watch-buffer";
+          sha256 = "05f58kg05kfl4srwwjaf7w9jml50yx6bn4x8m1npswp882dsjyh9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/watch-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wavefront-obj-mode = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "wavefront-obj-mode";
+        ename = "wavefront-obj-mode";
+        version = "20170808.1016";
+        src = fetchFromGitHub {
+          owner = "abend";
+          repo = "wavefront-obj-mode";
+          rev = "34027915de6496460d8e68b5991dd24d47d54859";
+          sha256 = "0yj4wb5sdsbh3gp0sh2ajrrn6s8vg492809g4gxkxp30jhr6xc9q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wavefront-obj-mode";
+          sha256 = "0qqismh6g2fvi45q2q52lq0n9nrh95wgamlsy5j4rx4syfgzxbrk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wavefront-obj-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wc-goal-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "wc-goal-mode";
+        ename = "wc-goal-mode";
+        version = "20140829.659";
+        src = fetchFromGitHub {
+          owner = "bnbeckwith";
+          repo = "wc-goal-mode";
+          rev = "bf21ab9c5a449bcc20dd207a4915dcec218d2699";
+          sha256 = "0p7j4hvcxfyjf0na9s3xv29dvmwq82s56lincfasd0ydcpz4fbwc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wc-goal-mode";
+          sha256 = "0l3gh96njjldp7n13jn1zjrp17h7ivjak102j6wwspgg6v2h5419";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wc-goal-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wc-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "wc-mode";
+        ename = "wc-mode";
+        version = "20170126.2029";
+        src = fetchFromGitHub {
+          owner = "bnbeckwith";
+          repo = "wc-mode";
+          rev = "f218f42709a651b34d6c1ddd98856f44648ef707";
+          sha256 = "0h79kf37pns92w4zsgazwhg087vkjvnhk9p1npll5ka87zbknndm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wc-mode";
+          sha256 = "191dmxfpqnj7d43cr0fhdmj5ldfs7w9zg5pb2lv9wvlfl7asdid6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wcheck-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "wcheck-mode";
+        ename = "wcheck-mode";
+        version = "20180126.416";
+        src = fetchFromGitHub {
+          owner = "tlikonen";
+          repo = "wcheck-mode";
+          rev = "6aa26626ccc6f7f670de092c7d40e44ab8b410f9";
+          sha256 = "0dgjg136s2qwsnvfs5y6n81ra7zmi8rwxrs6dn08z7mj7pac5kq9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wcheck-mode";
+          sha256 = "0cmdvhgax6r5svn3wkwll4j271qj70g8182c58riwnkhiajxmn3k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wcheck-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wdl-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "wdl-mode";
+        ename = "wdl-mode";
+        version = "20180831.1246";
+        src = fetchFromGitHub {
+          owner = "zhanxw";
+          repo = "wdl-mode";
+          rev = "cef86e5afc136ae5ad9324cd6e6d6f860b889bcf";
+          sha256 = "0j7sv3dcpq2fvcip9834v6k8q1d8bpnbxnvz1g691lmc58z1a86a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wdl-mode";
+          sha256 = "1zhrs0cdsr8mxh9zn8cy6inzxcygk0lgsyw1d190253v1kk6072i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wdl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    weather-metno = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "weather-metno";
+        ename = "weather-metno";
+        version = "20150831.1807";
+        src = fetchFromGitHub {
+          owner = "ruediger";
+          repo = "weather-metno-el";
+          rev = "bfc7137095e0ee71aad70ac46f2af677f3c051b6";
+          sha256 = "05gfc67724b0mwg8kvk3dsazx3dld50b9xjq8h1nc6jvdz3zxb9z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/weather-metno";
+          sha256 = "0h7p4l8y75h27pgk45f0mk3gjd43jk8q97gjf85a9b0afd63d3f6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/weather-metno";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web = callPackage ({ dash
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , s }:
+      melpaBuild {
+        pname = "web";
+        ename = "web";
+        version = "20141231.1201";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-web";
+          rev = "483188dac4bc6b409b985c9dae45f3324a425efd";
+          sha256 = "03xcadplw1hg5hxw6bfrhw5xkkxk3i4105f114c6m3d2525jq4y5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web";
+          sha256 = "141idn49b7x7llz249zbg2yq8snjxpmlpchsd3n1axlrbmx6pfpz";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/web";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-beautify = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "web-beautify";
+        ename = "web-beautify";
+        version = "20161115.1447";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "web-beautify";
+          rev = "e1b45321d8c11b404b12c8e55afe55eaa7c84ee9";
+          sha256 = "03b5pj58m00lkazyvvasa4qndrkh2kjzv2y7qhxljfg5mngyg3zg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-beautify";
+          sha256 = "06ky2svhca8hjgmvxrg3h6ya7prl72q1r88x967yc6b0qq3r7g0f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/web-beautify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-completion-data = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "web-completion-data";
+        ename = "web-completion-data";
+        version = "20160318.148";
+        src = fetchFromGitHub {
+          owner = "osv";
+          repo = "web-completion-data";
+          rev = "c272c94e8a71b779c29653a532f619acad433a4f";
+          sha256 = "19nzjgvd2i5745283ck3k2vylrr6lnk9h3ggzwrwdhyd3m9433vm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-completion-data";
+          sha256 = "1zzdmhyn6bjaidk808s4pdk25a5rn4287949ps5vbpyniaf6gny9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/web-completion-data";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "web-mode";
+        ename = "web-mode";
+        version = "20181104.1204";
+        src = fetchFromGitHub {
+          owner = "fxbois";
+          repo = "web-mode";
+          rev = "29ced993bb1a435bd82d3e7395bed13b99e87de4";
+          sha256 = "0kq3i0kng8cqr1cf4mdvi7x6k31sqphh08kliygh320gzlrc6x8r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-mode";
+          sha256 = "1vyhyc5nf4yj2m63inpwmcqvlsihaqw8nn8xvfdg44nhl6vjz97i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/web-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-mode-edit-element = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , web-mode }:
+      melpaBuild {
+        pname = "web-mode-edit-element";
+        ename = "web-mode-edit-element";
+        version = "20161114.954";
+        src = fetchFromGitHub {
+          owner = "jtkDvlp";
+          repo = "web-mode-edit-element";
+          rev = "8b8ac07aa8c920dafd94c96a51effb0d6c0ed1ce";
+          sha256 = "0aj1ibmnrbaxrkwjf1fac2qzazrj39pql3prcibnchc2bmp191aa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-mode-edit-element";
+          sha256 = "1kcycsjjv1bzfn93aq3cdh5d913izrr8cdxmknbyriyipsqryh3l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs web-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/web-mode-edit-element";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-narrow-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , web-mode }:
+      melpaBuild {
+        pname = "web-narrow-mode";
+        ename = "web-narrow-mode";
+        version = "20170406.1910";
+        src = fetchFromGitHub {
+          owner = "Qquanwei";
+          repo = "web-narrow-mode";
+          rev = "b25fae07844875d5b62d14b98442c88817b7e139";
+          sha256 = "1yk390g41yxh84lsxnbf72x67yik6hqv20magxlazrfrwngvk0cx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-narrow-mode";
+          sha256 = "09k3xp4l235wrffl7a4026wpikxhp10fh3182dlp4pa4wr2vzipi";
+          name = "recipe";
+        };
+        packageRequires = [ web-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/web-narrow-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-search = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "web-search";
+        ename = "web-search";
+        version = "20181027.2225";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "web-search.el";
+          rev = "24f5b49774f4fb60c903c2b65598590d1c6456d9";
+          sha256 = "1f7ysgc9gnfrlhb7y19ynfl5h1ckbqrm8hqly3kr2n2cvlzj9g2i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-search";
+          sha256 = "08iflbp6rmsxsy2lahsdjj9ki70ixqhsas0vxzawz5pi5vk2x9gj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/web-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-server = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "web-server";
+        ename = "web-server";
+        version = "20140905.1706";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "emacs-web-server";
+          rev = "469cd3bc117bfb8da0c03a2a2fb185e80c81d068";
+          sha256 = "0mbhyk7sgisx0l0xiz2xgy4jfbgwazlnxjvajsh4nysyig5rys05";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-server";
+          sha256 = "1f0iyvwq1kq3zfxx2v596cmah7jfk2a04g2rjllbgxxnzwms29z3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/web-server";
+          license = lib.licenses.free;
+        };
+      }) {};
+    webkit-color-picker = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , posframe }:
+      melpaBuild {
+        pname = "webkit-color-picker";
+        ename = "webkit-color-picker";
+        version = "20180325.36";
+        src = fetchFromGitHub {
+          owner = "osener";
+          repo = "emacs-webkit-color-picker";
+          rev = "765cac80144cad4bc0bf59025ea0199f0486f737";
+          sha256 = "0a6nirdn1l7cymjycbns38ja9an1z4l5lwjk5h428aly3pmkvdqj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/webkit-color-picker";
+          sha256 = "1i9244zghabyavxhz86d22fn40qspzdn2sjql8pl3mm8ks7a49a3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs posframe ];
+        meta = {
+          homepage = "https://melpa.org/#/webkit-color-picker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    weblogger = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , xml-rpc }:
+      melpaBuild {
+        pname = "weblogger";
+        ename = "weblogger";
+        version = "20110926.918";
+        src = fetchFromGitHub {
+          owner = "hexmode";
+          repo = "weblogger-el";
+          rev = "40cfbfc69be6a619173804441db2f407e3fa1731";
+          sha256 = "1z7ld9d0crwdh778fyaapx75vpnlnslsh9nf07ywkylhz4w68yyv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/weblogger";
+          sha256 = "0k0l715lnqb0a4hlkfjkyhr8i1jaml8z2xzhal7ryhjgvf8xinvs";
+          name = "recipe";
+        };
+        packageRequires = [ xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/weblogger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    webpaste = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , request }:
+      melpaBuild {
+        pname = "webpaste";
+        ename = "webpaste";
+        version = "20180815.1155";
+        src = fetchFromGitHub {
+          owner = "etu";
+          repo = "webpaste.el";
+          rev = "e7fed98c30e960911426be054bad183fd1ab6a37";
+          sha256 = "1k82apiylq9bqgwq2lg1ih16ghhh9r2h6izd4ljw1nm1p9gqqzh4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/webpaste";
+          sha256 = "1pqqapslb5wxfrf1ykrj5jxcl43pix17lawgdqrqkv5fyxbhmfpm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/webpaste";
+          license = lib.licenses.free;
+        };
+      }) {};
+    websocket = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "websocket";
+        ename = "websocket";
+        version = "20180422.1716";
+        src = fetchFromGitHub {
+          owner = "ahyatt";
+          repo = "emacs-websocket";
+          rev = "0d96ba2ff5a25c6cd6c66f417cc9b5f38a4308ba";
+          sha256 = "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/websocket";
+          sha256 = "1v8jlpahp30lihz7mdznwl6pyrbsdbqznli2wb5gfblnlxil04lg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/websocket";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wedge-ws = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "wedge-ws";
+        ename = "wedge-ws";
+        version = "20140714.1449";
+        src = fetchFromGitHub {
+          owner = "aes";
+          repo = "wedge-ws";
+          rev = "4669115f02d9c6fee067cc5369bb38c0f9db88b2";
+          sha256 = "19hgb5knqqc4rb8yl8s604xql8ar6m9r4d379cfakn15jvwqnl98";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wedge-ws";
+          sha256 = "07i2dr807np4fwq3ryxlw11vbc1sik1iv7x5740q258jyc9zfgll";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wedge-ws";
+          license = lib.licenses.free;
+        };
+      }) {};
+    weechat = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , tracking }:
+      melpaBuild {
+        pname = "weechat";
+        ename = "weechat";
+        version = "20180513.310";
+        src = fetchFromGitHub {
+          owner = "the-kenny";
+          repo = "weechat.el";
+          rev = "bcf714e32b012c6a89d5c0a82ab3a74d454908ff";
+          sha256 = "1gm2yhz3qy55qqwf0ccrqw4nifxaig4jpdqmcl0ydx1n3myxx64l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/weechat";
+          sha256 = "0sxrms5024bi4irv8x8s8j1zcyd62cpqm0zv4dgpm65wnpc7xc46";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs s tracking ];
+        meta = {
+          homepage = "https://melpa.org/#/weechat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    weechat-alert = callPackage ({ alert
+                                 , cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , weechat }:
+      melpaBuild {
+        pname = "weechat-alert";
+        ename = "weechat-alert";
+        version = "20160416.548";
+        src = fetchFromGitHub {
+          owner = "Kungi";
+          repo = "weechat-alert";
+          rev = "a8fd557c8f335322f132c1c6c08b6741d6394e2e";
+          sha256 = "1hkhim2jfdywx6ks4qfcizycp5qsx4ms6929kbgmzzb8i7j380x6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/weechat-alert";
+          sha256 = "026hkddvd4a6wy7s8s0lklw8b99fpjawdgi7amvpcrn79ylwbf22";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib weechat ];
+        meta = {
+          homepage = "https://melpa.org/#/weechat-alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    weibo = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "weibo";
+        ename = "weibo";
+        version = "20150307.1442";
+        src = fetchFromGitHub {
+          owner = "austin-----";
+          repo = "weibo.emacs";
+          rev = "a8abb50b7602fe15fe2bc6400ac29780e956b390";
+          sha256 = "0hc5iyjpcik996ns84akrl28scndmn0gd1zfdf1nnqq6n2m5zvgh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/weibo";
+          sha256 = "1ndgfqqb0gvy8p2fisi57s9bsa2nrnv80smg78m89i4cwagbz6yd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/weibo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "wgrep";
+        ename = "wgrep";
+        version = "20180710.2326";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "414be70bd313e482cd9f0b70fd2daad4ee23497c";
+          sha256 = "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep";
+          sha256 = "09xs420lvbsmz5z28rf6f1iwa0ixkk0w24qbj6zhl9hidh4mv9y4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep-ack = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , wgrep }:
+      melpaBuild {
+        pname = "wgrep-ack";
+        ename = "wgrep-ack";
+        version = "20141012.311";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "9448a9d597bd089ae61e58add2c5dbecb0aa2b8f";
+          sha256 = "0x27h0ccq93avsmb8gim43zklbsb4ghfw30a7hjvz0ilfx02gdca";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep-ack";
+          sha256 = "03l1a681cwnn06m77xg0a547892gy8mh415v9rg3h6lkxwcld8wh";
+          name = "recipe";
+        };
+        packageRequires = [ wgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep-ack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep-ag = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , wgrep }:
+      melpaBuild {
+        pname = "wgrep-ag";
+        ename = "wgrep-ag";
+        version = "20160923.403";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "4e9f3d9822acab2d353c858d33ddaebb629fbfe8";
+          sha256 = "14xja70gh9v3565fkl4b46swfrkmh6j6zg9pxwj5h1gicqrgaiwz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep-ag";
+          sha256 = "1b2mj06kws29ha7g16l5d1s3p3nwyw8rprbpaiijdk9nxqcm0a8a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib wgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep-ag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep-helm = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , wgrep }:
+      melpaBuild {
+        pname = "wgrep-helm";
+        ename = "wgrep-helm";
+        version = "20170510.1539";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "1cdd7c136f1e7565bb13d2df69be3dc77b83698d";
+          sha256 = "057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep-helm";
+          sha256 = "1hh7isc9xifkrdfw88jw0z0xmfazrbcis6d355bcaxlnjy6fzm8b";
+          name = "recipe";
+        };
+        packageRequires = [ wgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep-pt = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , wgrep }:
+      melpaBuild {
+        pname = "wgrep-pt";
+        ename = "wgrep-pt";
+        version = "20140510.1531";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "cd8df1be69257da2e48dc3eae4badc674468b61c";
+          sha256 = "1df7lal4c0zsinrfjp4qv2k3xi1kbl66d36in47pmiam1kkqs9fs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep-pt";
+          sha256 = "1gphdf85spsywj3s3ypb7dwrqh0zd70n2vrbgjqkbnfbwqjp9qbg";
+          name = "recipe";
+        };
+        packageRequires = [ wgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep-pt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    what-the-commit = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "what-the-commit";
+        ename = "what-the-commit";
+        version = "20150901.616";
+        src = fetchFromGitHub {
+          owner = "danielbarbarito";
+          repo = "what-the-commit.el";
+          rev = "42604410cfd5be715c8aa730aef4673773454e8b";
+          sha256 = "00fnjjlmc64bqjzmyprscfqr8fa1jbzfj6xjvm19an2qhnzh126q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/what-the-commit";
+          sha256 = "0nnyb6hq6r21wf1x3q41ab48b3dmcz5lyli771a59dk1gs8qpgak";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/what-the-commit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    which-key = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "which-key";
+        ename = "which-key";
+        version = "20181114.632";
+        src = fetchFromGitHub {
+          owner = "justbur";
+          repo = "emacs-which-key";
+          rev = "43e3e3d7641a8e1c298b37e6a277612bf0898708";
+          sha256 = "1vwbgz0x8k6xy37kn6zkzf5p7z2wjsk3p3qv24d5ysd2257bf32c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/which-key";
+          sha256 = "0vqbhfzcv9m58w41zdhpiymhgl38n15c6d7ffd99narxlkckcj59";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/which-key";
+          license = lib.licenses.free;
+        };
+      }) {};
+    whitaker = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "whitaker";
+        ename = "whitaker";
+        version = "20150814.422";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "whitaker";
+          rev = "eaf26ea647b729ca705b73ea70312d5ffdf89448";
+          sha256 = "1y75cylvqgn54h8yqahz4wi1qj5yhbs66i7x23jmbmah3q0rycab";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/whitaker";
+          sha256 = "17fnvb3jh6fi4wddn5qnp6i6ndidg8jf9ac69q9j032c2msr07nj";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/whitaker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    white-sand-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "white-sand-theme";
+        ename = "white-sand-theme";
+        version = "20151117.848";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "white-sand-theme";
+          rev = "97621edd69267dd143760d94393db2c2558c9ea4";
+          sha256 = "0sh92g5vd518f80klvljqkjpw4ji909439dpc3sfaccf5jiwn9xn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/white-sand-theme";
+          sha256 = "19qsiic6yf7g60ygjmw7kg1i28nqpm3zja8cmdh33ny2bbkwxsz5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/white-sand-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    white-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "white-theme";
+        ename = "white-theme";
+        version = "20160917.1043";
+        src = fetchFromGitHub {
+          owner = "anler";
+          repo = "white-theme.el";
+          rev = "e9e6d5b9d43da6eb15e86f5fbc8b1ba83abe8c78";
+          sha256 = "1yqfq1gzkrw79myvj16nfi30ynfyz8yrpbzjcj8nhsc5rfrrmym2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/white-theme";
+          sha256 = "04l5hjhd465w9clrqc4dr8bx8hj4i9dx4nfr9hympgv101bpgy4x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/white-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    whitespace-cleanup-mode = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "whitespace-cleanup-mode";
+        ename = "whitespace-cleanup-mode";
+        version = "20170505.1923";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "whitespace-cleanup-mode";
+          rev = "d375bfb61cb70947a93004cba8ea17a0bc76f5a9";
+          sha256 = "0w6jwg1lyz0hwkhbx3kx6yddakff6azj2ipyxw26rv886gx8a226";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/whitespace-cleanup-mode";
+          sha256 = "1fhdjrxxyfx4xsgfjqq9p7vhj98wmqf2r00mv8k27vdaxwsnm5p3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/whitespace-cleanup-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    whizzml-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "whizzml-mode";
+        ename = "whizzml-mode";
+        version = "20180711.910";
+        src = fetchFromGitHub {
+          owner = "whizzml";
+          repo = "whizzml-mode";
+          rev = "f457052dc5426d542ca69185a5a87905f08f1310";
+          sha256 = "15nlnch97rgpcsxv5prw4ikzl5gbnzycqmq4h1x8n16ianbgh249";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/whizzml-mode";
+          sha256 = "0gas9xfpz5v9fbhjxhd4msihwz9w4a05l5icsaclxvh06f92wcyk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/whizzml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    whole-line-or-region = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "whole-line-or-region";
+        ename = "whole-line-or-region";
+        version = "20181116.1449";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "whole-line-or-region";
+          rev = "6fcbd6e403a8a66813fdf64ddd3f03b904c82a88";
+          sha256 = "0v8avq6znk3nnlkvrb2qv0chcr9nrqyjlfmqvb0pcnyzh9ddjk7q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/whole-line-or-region";
+          sha256 = "0zz9i1jxayw2p6ggfxjvhb1mc3ly9iy4jvk23ycndz9lnnzkch0y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/whole-line-or-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wide-column = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "wide-column";
+        ename = "wide-column";
+        version = "20170925.913";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "wide-column";
+          rev = "ce9ef4675485a7bea381077866368ef875226b10";
+          sha256 = "0qh8hy4jl59bfg4323a8h4q4a78gn4hsglfk2h23hqssbv4mhsp2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wide-column";
+          sha256 = "1kyyvq9fgaypvhiy9vbvr99xsac5vhylkbjsxn5fhylyc5n867sb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wide-column";
+          license = lib.licenses.free;
+        };
+      }) {};
+    widget-mvc = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "widget-mvc";
+        ename = "widget-mvc";
+        version = "20150101.2006";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-widget-mvc";
+          rev = "2576e6f0c35d8dedfa9c2cd6ea4fb4c14cb72b63";
+          sha256 = "0fqv63m8z5m5ghh4j8ccdnmgcdkvi4jqpg9z7lp17g4p9pq3xfjf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/widget-mvc";
+          sha256 = "0njzvdlxb7z480r6dvmksgivhz7rvnil517aj86qx0jbc5mr3l2f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/widget-mvc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    widgetjs = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , js2-mode
+                            , js2-refactor
+                            , lib
+                            , makey
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "widgetjs";
+        ename = "widgetjs";
+        version = "20160719.804";
+        src = fetchFromGitHub {
+          owner = "foretagsplatsen";
+          repo = "emacs-js";
+          rev = "a1e91bdcecdea50c80f5ff87f7a4f7a2c249713e";
+          sha256 = "1gr430rf8k282ra587qnbgwvccg47ar1n09m6czig5splhnf0086";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/widgetjs";
+          sha256 = "0y5h1ag2m7w47l4nx4d18yz3fvd411rm1h5w7zz4xh67bnx4zyy1";
+          name = "recipe";
+        };
+        packageRequires = [ js2-mode js2-refactor makey s ];
+        meta = {
+          homepage = "https://melpa.org/#/widgetjs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wiki-nav = callPackage ({ button-lock
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , nav-flash }:
+      melpaBuild {
+        pname = "wiki-nav";
+        ename = "wiki-nav";
+        version = "20150223.554";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "button-lock";
+          rev = "f9082feb329432fcf2ac49a95e64bed9fda24d58";
+          sha256 = "06qjvybf65ffrcnhhbqs333lg51fawaxnva3jvdg7zbrsv4m9acl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wiki-nav";
+          sha256 = "19mabz0y3fcqsm68ijwwbbqylxgp71anc0a31zgc1blha9jivvwy";
+          name = "recipe";
+        };
+        packageRequires = [ button-lock nav-flash ];
+        meta = {
+          homepage = "https://melpa.org/#/wiki-nav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wiki-summary = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "wiki-summary";
+        ename = "wiki-summary";
+        version = "20181010.1124";
+        src = fetchFromGitHub {
+          owner = "jozefg";
+          repo = "wiki-summary.el";
+          rev = "fa41ab6e50b3b80e54148af9d4bac18fd0405000";
+          sha256 = "0qcnqwiylkkb7132bzra49k7jg8kq13jif8096vpg4xzpcq5lpj2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wiki-summary";
+          sha256 = "1hiyi3w6rvins8hfxd96bgpihxarmv192q96sadqcwshcqi14zmw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wiki-summary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wilt = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "wilt";
+        ename = "wilt";
+        version = "20180220.54";
+        src = fetchFromGitHub {
+          owner = "sixty-north";
+          repo = "emacs-wilt";
+          rev = "04dbe37fa35d0b24c791421785d2c97a8cbfe2cc";
+          sha256 = "197kqp22pyy1in2rq063mahvrf00vrfvgnfkqp0zy7hpkhiiqvim";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wilt";
+          sha256 = "0nw6zr06zq60j72qfjmbqrxyz022fnisb0bsh6xmlnd1k1kqlrz6";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/wilt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    win-switch = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "win-switch";
+        ename = "win-switch";
+        version = "20161009.927";
+        src = fetchFromGitHub {
+          owner = "genovese";
+          repo = "win-switch";
+          rev = "954eb5e4c5737f0c06368c42a7f1c3dd374d782f";
+          sha256 = "1xpx4sc1g1w8w0yc39k2dys83m8skrpvi745bfrzdl47jngrf54h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/win-switch";
+          sha256 = "1s6inp5kf763rngn58r02fd7n7z3dd55j6hb7s9dgvc856d5z3my";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/win-switch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    windata = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "windata";
+        ename = "windata";
+        version = "20090830.340";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "windata";
+          rev = "a723fc446ceaec23d5f29ecc8245d94c99d91625";
+          sha256 = "0y8yw5hazsir5kjskrh4mr63mmz87dc7yy5ddmlwpmn03wanqpha";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/windata";
+          sha256 = "1mah2vy46pxwjd6c6ac14d2qfcixs2yrgwmzmisnfgsvprdlxryb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/windata";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-end-visible = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "window-end-visible";
+        ename = "window-end-visible";
+        version = "20140508.1341";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "window-end-visible";
+          rev = "f0ed55aa5f7875634fb4c8b6fbaa93633bc57d85";
+          sha256 = "0xx2hmfwpdd1nxjds45d4jlfa6p4lcjwy2ryjs4qiwvrc2d03xbq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-end-visible";
+          sha256 = "1p78n7yysj18404cdc6vahfrzwn5pixyfnja8ch48rj4fm4jbxwq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/window-end-visible";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-jump = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "window-jump";
+        ename = "window-jump";
+        version = "20170809.1508";
+        src = fetchFromGitHub {
+          owner = "chumpage";
+          repo = "chumpy-windows";
+          rev = "6bdb51e9a346907d60a9625f6180bddd06be6674";
+          sha256 = "1wkyvfqmf24c8kb162pwi6wcm88bzf0x9mxljzkx0s8bq9aliny6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-jump";
+          sha256 = "1gmqb7j5fb3q3krgx7arrln5nvyg9vcpph6wlxj6py679wfa3lwr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/window-jump";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-layout = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "window-layout";
+        ename = "window-layout";
+        version = "20170214.1633";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-window-layout";
+          rev = "cd2e4f967b610c2bbef53182829e47250d027056";
+          sha256 = "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-layout";
+          sha256 = "061mvxcj4mg2pmkln7nn6gyscs08aid4cfc6xck0x5gzr1snr639";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/window-layout";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-number = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "window-number";
+        ename = "window-number";
+        version = "20170731.1851";
+        src = fetchFromGitHub {
+          owner = "nikolas";
+          repo = "window-number";
+          rev = "d41722de646ffeb3f70d26e4a86a5a1ba5c6be87";
+          sha256 = "1ifs7zp8c5m9da5dz0y4cq7pgqgdkz63v00ib07xdycnfjp4w17i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-number";
+          sha256 = "1ivd701h6q48i263fxxi44haacaz8cjg562ry8dxd10rbhhsjsq0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/window-number";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-numbering = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "window-numbering";
+        ename = "window-numbering";
+        version = "20160809.1110";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "window-numbering.el";
+          rev = "10809b3993a97c7b544240bf5d7ce9b1110a1b89";
+          sha256 = "1nlgzrjg5k7wyaka8ziqyv683vsc0f2lw5kr5xajcqlamwbzs7vi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-numbering";
+          sha256 = "0x3n0ni16q69lfpyjz61spqghmhvc3cwa4aj80ihii3pk80f769x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/window-numbering";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-purpose = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , imenu-list
+                                  , let-alist
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "window-purpose";
+        ename = "window-purpose";
+        version = "20180926.347";
+        src = fetchFromGitHub {
+          owner = "bmag";
+          repo = "emacs-purpose";
+          rev = "2b640955235d0a50dd1e3128612f41d595bc6dc8";
+          sha256 = "10zvkp5vg1pg06p5mjghnnfkwpjx50527kx4ygdm84b1pxrnwlr6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-purpose";
+          sha256 = "1y70jrba3gf9fyf2qdihfshbsblzb88yv9fkcswdzrpq5kmgwp84";
+          name = "recipe";
+        };
+        packageRequires = [ emacs imenu-list let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/window-purpose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    windsize = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "windsize";
+        ename = "windsize";
+        version = "20181029.1557";
+        src = fetchFromGitHub {
+          owner = "grammati";
+          repo = "windsize";
+          rev = "62c2846bbe95b0a73e996c75e4a644d05f57aaaa";
+          sha256 = "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/windsize";
+          sha256 = "1fzqf86d7pimnc87xdgvpv4hnv7j6ngmk1sjvazj6726xygswkyv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/windsize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    windwow = callPackage ({ cl-lib ? null
+                           , dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "windwow";
+        ename = "windwow";
+        version = "20170815.1848";
+        src = fetchFromGitHub {
+          owner = "vijumathew";
+          repo = "windwow";
+          rev = "77bad26f651744b68d31b389389147014d250f23";
+          sha256 = "0vbmmf8wm76k389g5ncs0grwlpwp3glpwvhdi5dfxaqcp2phaaad";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/windwow";
+          sha256 = "0cbkp98pwzj484akdbidvdz4kqxv6ix6paimpxnag6fffciq245h";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/windwow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    winnow = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "winnow";
+        ename = "winnow";
+        version = "20170903.506";
+        src = fetchFromGitHub {
+          owner = "dgtized";
+          repo = "winnow.el";
+          rev = "9ea0ac309d6a7a4aedb2647a13e9106a3b59c46d";
+          sha256 = "0zsnd03mydzhskpcvffmlwbsi28dq0akz1nph7idn4zqca8sx2ia";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/winnow";
+          sha256 = "07kwjdmvzgvg7gc53dv10jfi212m0pimzrhiga38lrqrnrw631m0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/winnow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    winpoint = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "winpoint";
+        ename = "winpoint";
+        version = "20131023.1013";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "winpoint";
+          rev = "b32ab55f7b8797b9b042a8a89d89d6f79bc356a9";
+          sha256 = "0qbsmqg4mh20k2lf7j92mc8p8qkvjc1a58klhqivpdl60z906z2a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/winpoint";
+          sha256 = "10ji7xd9ipmy6c2qxljqdxgqf5sb8h7lwz43mr6ixbn7v1b7pp6w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/winpoint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    winring = callPackage ({ fetchFromGitLab
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "winring";
+        ename = "winring";
+        version = "20180529.1718";
+        src = fetchFromGitLab {
+          owner = "warsaw";
+          repo = "winring";
+          rev = "f2d072bd446b73e93b127523f19ea82b99b9267f";
+          sha256 = "1j0g52panhx91hqw5glnlv5vnnpnjyx49xc8xif8mjf0m27723fv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/winring";
+          sha256 = "1mgr5z4h7mf677xx8md3pqd31k17qs62z9iamfih206fcwgh24k4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/winring";
+          license = lib.licenses.free;
+        };
+      }) {};
+    winum = callPackage ({ cl-lib ? null
+                         , dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "winum";
+        ename = "winum";
+        version = "20181119.905";
+        src = fetchFromGitHub {
+          owner = "deb0ch";
+          repo = "emacs-winum";
+          rev = "efcb14fd306afbc738666e6b2e5a8a1bb5904392";
+          sha256 = "0v1qmw3svydk7dlqbcymy1g1bygkfpb2h4b97zdp12xvd8mww9ny";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/winum";
+          sha256 = "0yyvjmvqif6glh9ri6049nxcmgib9mxdhy6816kjhsaqr570f9pw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/winum";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wisp-mode = callPackage ({ fetchhg
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "wisp-mode";
+        ename = "wisp-mode";
+        version = "20180520.58";
+        src = fetchhg {
+          url = "https://bitbucket.com/ArneBab/wisp";
+          rev = "cca15c7abc86";
+          sha256 = "0nq8d2411fizphcq8157cfazghvsz1gy534fsan9ik30k9fnb5vn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wisp-mode";
+          sha256 = "10zkp1qbvl8dmxij7zz4p1fixs3891xr1nr57vyb3llar9fgzglc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wisp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wispjs-mode = callPackage ({ clojure-mode
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "wispjs-mode";
+        ename = "wispjs-mode";
+        version = "20170720.1219";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "wispjs-mode";
+          rev = "60f9f5fd9d1556e2d008939f67eb1b1d0f325fa8";
+          sha256 = "1hhd8ixb2wr06vrd1kw0cd5jh08zm86h2clbvzv9wmqpawwxfm5f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wispjs-mode";
+          sha256 = "0qzm0dcvjndasnbqpkdc56f1qv66gxv8dfgfcwq5l1bp5wyx813p";
+          name = "recipe";
+        };
+        packageRequires = [ clojure-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/wispjs-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    with-editor = callPackage ({ async
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "with-editor";
+        ename = "with-editor";
+        version = "20181113.1045";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "with-editor";
+          rev = "9dd9f176d96abc60365369de6d08c26c414ef1f3";
+          sha256 = "16a71mld7knf5ppv4szlkfdq44cqi36jqmscn0fssffhg33xh8cs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/with-editor";
+          sha256 = "1wsl1vwvywlc32r5pcc9jqd0pbzq1sn4fppxk3vwl0s5h40v8rnb";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/with-editor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    with-namespace = callPackage ({ dash
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , loop
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "with-namespace";
+        ename = "with-namespace";
+        version = "20130407.1122";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "with-namespace.el";
+          rev = "36828a40428c8e53c117f2df830b2f7a59ddd306";
+          sha256 = "0qq8ckk5w3hlm4wihhnlpn75gij62aa2nafmvin7q8i454pxbg7a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/with-namespace";
+          sha256 = "1199k1xvvv7ald6ywrh2sfpw2v42ckpcsw6mcj617bg3b5m7770i";
+          name = "recipe";
+        };
+        packageRequires = [ dash loop ];
+        meta = {
+          homepage = "https://melpa.org/#/with-namespace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    with-simulated-input = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , s
+                                        , seq }:
+      melpaBuild {
+        pname = "with-simulated-input";
+        ename = "with-simulated-input";
+        version = "20170820.2317";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "with-simulated-input";
+          rev = "1012ccbec77d7d162790706c07bb23c039ccc61f";
+          sha256 = "1489njq2xbsd89kh3z560vwm892zzjbs12lzk1pr0fajqvnm62r5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/with-simulated-input";
+          sha256 = "0113la76nbp18vaffsd7w7wcw5k2sqwgnjq1gslf4khdfqghrkwk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s seq ];
+        meta = {
+          homepage = "https://melpa.org/#/with-simulated-input";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wn-mode = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "wn-mode";
+        ename = "wn-mode";
+        version = "20151109.2152";
+        src = fetchFromGitHub {
+          owner = "luismbo";
+          repo = "wn-mode";
+          rev = "f05c3151523e529af5a0a3fa8c948b61fb369f6e";
+          sha256 = "12rfpkyjkhikjh0mihhp5h5pzbm4br68nwf8k1ja9djl77vfzv36";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wn-mode";
+          sha256 = "1qy1pkfdnm4pska4cnff9cx2c812ilymajhpmsfc9jdbvhzwrwg3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wn-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wolfram = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "wolfram";
+        ename = "wolfram";
+        version = "20170122.2356";
+        src = fetchFromGitHub {
+          owner = "hsjunnesson";
+          repo = "wolfram.el";
+          rev = "6b5dceae3fd6cdb4d7562510deeafa02c93c010b";
+          sha256 = "1ijyjw2793i7n00i30ma8lw4fzi9w63m6k0xgjx6j78r5y7pfj2g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wolfram";
+          sha256 = "02xp1916v9rydh0586jkx71v256qdg63f87s3m0agc2znnrni9h4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wolfram";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wolfram-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "wolfram-mode";
+        ename = "wolfram-mode";
+        version = "20180306.1613";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "wolfram-mode";
+          rev = "be680190cac6ccf579dbce107deaae495928d1b3";
+          sha256 = "1cvdw28gvhbr9l65xkv8ld12rb0pcf53jd55gns2b0abz1lg1jc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wolfram-mode";
+          sha256 = "0rc39vvpyhpn0m52i4hs23j6avqfddmrkhjqg339apfq7z35fpli";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wolfram-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wonderland = callPackage ({ dash
+                              , dash-functional
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , multi }:
+      melpaBuild {
+        pname = "wonderland";
+        ename = "wonderland";
+        version = "20130912.1819";
+        src = fetchFromGitHub {
+          owner = "kurisuwhyte";
+          repo = "emacs-wonderland";
+          rev = "28cf6b37000c395ece9519db53147fb826a42bc4";
+          sha256 = "018r35dz8z03wcrx9s28pjisayy21549i232mp6wy9mxkrkxbzpc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wonderland";
+          sha256 = "1b4p49mbzqffm2b2y8sbbi56vnkxap2jscsmla9l6l8brybqjppi";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs multi ];
+        meta = {
+          homepage = "https://melpa.org/#/wonderland";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wordgen = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "wordgen";
+        ename = "wordgen";
+        version = "20170803.1120";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "wordgen.el";
+          rev = "aacad928ae99a953e034a831dfd0ebdf7d52ac1d";
+          sha256 = "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wordgen";
+          sha256 = "0vlrplm3pmpwwa8p8j6lck97b875gzzm7vxxc8l9l18vs237cz1m";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wordgen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wordnut = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "wordnut";
+        ename = "wordnut";
+        version = "20180312.2143";
+        src = fetchFromGitHub {
+          owner = "gromnitsky";
+          repo = "wordnut";
+          rev = "feac531404041855312c1a046bde7ea18c674915";
+          sha256 = "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wordnut";
+          sha256 = "1gqmjb2f9izra0x9ds1jyk7h204qsll6viwkvdnmxczyyc0wx44n";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wordnut";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wordsmith-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "wordsmith-mode";
+        ename = "wordsmith-mode";
+        version = "20171025.730";
+        src = fetchFromGitHub {
+          owner = "istib";
+          repo = "wordsmith-mode";
+          rev = "589a97412138145bea70e0450eeddeb7f138d538";
+          sha256 = "1zm4grysjpynibldvic75awhcmmnjmlkkvslw8bvirmi58qwvwzj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wordsmith-mode";
+          sha256 = "0s6b6dfqn31jdcgs2mlmvwgpr5a4zs4xi8m002ly11c6sn035xb1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wordsmith-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    worf = callPackage ({ ace-link
+                        , fetchFromGitHub
+                        , fetchurl
+                        , hydra
+                        , lib
+                        , melpaBuild
+                        , swiper
+                        , zoutline }:
+      melpaBuild {
+        pname = "worf";
+        ename = "worf";
+        version = "20180620.1011";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "worf";
+          rev = "b48e0c9bbd617ed8a8962174d804ce7a6da1c10a";
+          sha256 = "14xik793sgjcg8nby8v77x1x8zspgkhz95kzzlzqalbblak3mgbs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/worf";
+          sha256 = "1fkb2ddl684dijsb0cqgmfbg1nz4xv43rb7g5rah05rchy5sgkpi";
+          name = "recipe";
+        };
+        packageRequires = [ ace-link hydra swiper zoutline ];
+        meta = {
+          homepage = "https://melpa.org/#/worf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    workgroups = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "workgroups";
+        ename = "workgroups";
+        version = "20110726.941";
+        src = fetchFromGitHub {
+          owner = "tlh";
+          repo = "workgroups.el";
+          rev = "9572b3492ee09054dc329f64ed846c962b395e39";
+          sha256 = "0q32z54qafj8ap3ybx82i3fm1msmzwvpxgmkaglzhi8nccgzbn2n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/workgroups";
+          sha256 = "1v01yr3lk6l0qn80i3r8fq3di0a8bmqjyhwx19hcgiap57xl80h8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/workgroups";
+          license = lib.licenses.free;
+        };
+      }) {};
+    workgroups2 = callPackage ({ anaphora
+                               , cl-lib ? null
+                               , dash
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "workgroups2";
+        ename = "workgroups2";
+        version = "20141102.1122";
+        src = fetchFromGitHub {
+          owner = "pashinin";
+          repo = "workgroups2";
+          rev = "928d509157ec8a4a2e343b6115dff034c3243a7a";
+          sha256 = "0prj2b33h6rya7y9ff91r72bva1y6hg0sv9l11bn1gikmc6lc18n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/workgroups2";
+          sha256 = "0vhj6mb3iflli0l3rjlvlbxz5yk6z3ii5r71gx0m4vp4lhxncy3v";
+          name = "recipe";
+        };
+        packageRequires = [ anaphora cl-lib dash f ];
+        meta = {
+          homepage = "https://melpa.org/#/workgroups2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    world-time-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "world-time-mode";
+        ename = "world-time-mode";
+        version = "20140627.107";
+        src = fetchFromGitHub {
+          owner = "nicferrier";
+          repo = "emacs-world-time-mode";
+          rev = "ce7a3b45c87eb24cfe61eee453175d64f741d7cc";
+          sha256 = "0i00xm4rynbp2v3gm6h46ajgj8h8nxnsjh6db1659b0hbpnah0ji";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/world-time-mode";
+          sha256 = "10gdlz4l9iqw1zdlk5i3knysn36iqxdh3xabjq8kq04jkl7i36dl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/world-time-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wotd = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , org }:
+      melpaBuild {
+        pname = "wotd";
+        ename = "wotd";
+        version = "20170328.1248";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "emacs-word-of-the-day";
+          rev = "d2937a3d91e014f8028a1f33d21c18cc0b065a64";
+          sha256 = "0nwq5ymj9kx1fx3kfc789nkd80gwzljwmk7xxzzsrdrv47gm047m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wotd";
+          sha256 = "145knl4n35kpqqzqkz1vd18d619nw011d93f8qp5h82xm92p3sb5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/wotd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wrap-region = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "wrap-region";
+        ename = "wrap-region";
+        version = "20140116.2320";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "wrap-region.el";
+          rev = "5a910ad23ebb0649e644bf62ad042587341da5da";
+          sha256 = "03hjwm51sngkh7jjiwnqhflllqq6i99ib47rm2ja9ii0qyhj1qa0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wrap-region";
+          sha256 = "058518smxj3j3mr6ljzh7c9x5g23d24104p58sl9nhpw0cq9k28i";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/wrap-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    writegood-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "writegood-mode";
+        ename = "writegood-mode";
+        version = "20180525.643";
+        src = fetchFromGitHub {
+          owner = "bnbeckwith";
+          repo = "writegood-mode";
+          rev = "b71757ec337e226909fb0422f0224e31acc71733";
+          sha256 = "038gliy6l931r02bf2dbhmp188sgk1rq46ngg9nhf5q5rkf3pi8p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/writegood-mode";
+          sha256 = "1lxammisaj04g5vr5lwms64ywf39w8knrq72x4i94wwzwx5ywi1d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/writegood-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    writeroom-mode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , visual-fill-column }:
+      melpaBuild {
+        pname = "writeroom-mode";
+        ename = "writeroom-mode";
+        version = "20170623.327";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "writeroom-mode";
+          rev = "9e924dd7dd83f10b026c89cddef7e1646f1a3869";
+          sha256 = "1v7hbmi9dqdqyr3png1xwhg3k05jr2q6jdjmj48bxiixl9zhcq9p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/writeroom-mode";
+          sha256 = "1kpsrp3agw8bg3qbf5rf5k1a7ww30q5xsa8z5ywxajsaywjzx1bk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs visual-fill-column ];
+        meta = {
+          homepage = "https://melpa.org/#/writeroom-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ws-butler = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ws-butler";
+        ename = "ws-butler";
+        version = "20170111.1534";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "ws-butler";
+          rev = "323b651dd70ee40a25accc940b8f80c3a3185205";
+          sha256 = "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ws-butler";
+          sha256 = "1k5nhj37r51i0czrlafra53wir73p0nbq83jjccqmw4p4xk6axl3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ws-butler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wsd-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "wsd-mode";
+        ename = "wsd-mode";
+        version = "20180807.430";
+        src = fetchFromGitHub {
+          owner = "josteink";
+          repo = "wsd-mode";
+          rev = "0583df8efb742c90dc56df00f9714e13512cf6d9";
+          sha256 = "0f90qm5zx7lkyvaz519fln4hijfyammc675105f19492h1bc1bva";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wsd-mode";
+          sha256 = "07vclmnj18wx9wlrcnsl99f9jlk3sb9g6pcdv8x1smk84gccpakc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wsd-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wttrin = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , xterm-color }:
+      melpaBuild {
+        pname = "wttrin";
+        ename = "wttrin";
+        version = "20170614.506";
+        src = fetchFromGitHub {
+          owner = "bcbcarl";
+          repo = "emacs-wttrin";
+          rev = "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc";
+          sha256 = "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wttrin";
+          sha256 = "0msp8lja9nz6khz3dkasv8hnhkaayqxd7m58kma03hpkcjxnaxil";
+          name = "recipe";
+        };
+        packageRequires = [ emacs xterm-color ];
+        meta = {
+          homepage = "https://melpa.org/#/wttrin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wucuo = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "wucuo";
+        ename = "wucuo";
+        version = "20181106.1457";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "wucuo";
+          rev = "4e988c101fe82f2e8c7b3710d15982fe28b8d32d";
+          sha256 = "0g558miz9f4g8jlq532fs9yxj3il62zajgcjfndall2853hn54af";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wucuo";
+          sha256 = "084fcv4dkflpka9vmxmxqdl0cgmjjh9wc6axr65j1ffmqd933y4a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wucuo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wwtime = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "wwtime";
+        ename = "wwtime";
+        version = "20151122.810";
+        src = fetchFromGitHub {
+          owner = "ndw";
+          repo = "wwtime";
+          rev = "d04d8fa814b5d3644efaeb28f25520ada69acbbd";
+          sha256 = "0ba193ilqmp7l35hhzfym4kvbnj9h57m8mwsxdj6rdj2cwrifx8r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wwtime";
+          sha256 = "0n37k23lkjgaj9wxnr41yk3mwvy62mc9im5l86czqmw5gy4l63ic";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wwtime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    www-synonyms = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , request }:
+      melpaBuild {
+        pname = "www-synonyms";
+        ename = "www-synonyms";
+        version = "20170128.1451";
+        src = fetchFromGitHub {
+          owner = "spebern";
+          repo = "www-synonyms";
+          rev = "7e37ea35064ff31c9945f0198a653647d408c936";
+          sha256 = "0l4fvq5zdzqvlwxqgqbfx9x0aimvk4x3la9yz9gw3vvj1rwf340i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/www-synonyms";
+          sha256 = "0rp5p26hd67k4dsb40hj7jv24i9wncaay88dmiqla48843j4ymgh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib request ];
+        meta = {
+          homepage = "https://melpa.org/#/www-synonyms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    x-path-walker = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , helm-core
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "x-path-walker";
+        ename = "x-path-walker";
+        version = "20160922.1135";
+        src = fetchFromGitHub {
+          owner = "Lompik";
+          repo = "x-path-walker";
+          rev = "3b01dbd7a039c6c84fdf8c8ee53ba72090ee950a";
+          sha256 = "1gb3lnl3gvckbakc4fy22fcvif3xdfkdaw334xmp33phjb8gjqvj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/x-path-walker";
+          sha256 = "1k72c0i17k31p404nkzqkw25cpcfk66bmd0vjzwg34cnwcgfhnjg";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/x-path-walker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    x509-mode = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "x509-mode";
+        ename = "x509-mode";
+        version = "20180921.103";
+        src = fetchFromGitHub {
+          owner = "jobbflykt";
+          repo = "x509-mode";
+          rev = "9eb24c8721dcad9888b70213d06d770bc2386db7";
+          sha256 = "1gr099bn4qn2b5jasbs4r04pf6wqsnpf2632vzvshzm9nkz4qnhg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/x509-mode";
+          sha256 = "15k3pxj3a2vaf64cl2xrzzlvzbqzqc29qyfd8brhq6yc69snr0vj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/x509-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    x86-lookup = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "x86-lookup";
+        ename = "x86-lookup";
+        version = "20180528.935";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "x86-lookup";
+          rev = "609b2ba70dc5a246ac9b4b5f89eb5ef4331519bf";
+          sha256 = "19zgq7mcc3wx847xc911fibvphbsws99m2l3k54xdjp8mb5qfdzm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/x86-lookup";
+          sha256 = "1clv1npvdkzsy0a08xrb880yflwzl4d5cc2c5xrs7b837mqpj8hd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/x86-lookup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xah-css-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "xah-css-mode";
+        ename = "xah-css-mode";
+        version = "20180629.107";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "xah-css-mode";
+          rev = "9293a1a21cb7c2a6fb4ae9af0e581f30d2e45016";
+          sha256 = "0wlci3z71qk3l19pkxddd4f3w9mg2si9ab4l3da381hnpi6d3iyp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xah-css-mode";
+          sha256 = "1kkwfyf94v3ni3d4szy28v49p6f3hy8ww9mlris2vvgc726wy6hr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xah-css-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xah-elisp-mode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "xah-elisp-mode";
+        ename = "xah-elisp-mode";
+        version = "20181028.744";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "xah-elisp-mode";
+          rev = "675560e9ac09122e425b9544ad25793c9844dc21";
+          sha256 = "0j3ylficd46aki60nqw83y7np46wsf2wqkqb8lqzs8cd2scqzqws";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xah-elisp-mode";
+          sha256 = "0cl07hw1hd3hj7wrzkh20m8vcs7mqsajxjmnlbnk2yg927yyijij";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xah-elisp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xah-find = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "xah-find";
+        ename = "xah-find";
+        version = "20181101.835";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "xah-find";
+          rev = "6c336c82a4887a4f5aaaa12695902aee5bb1fa30";
+          sha256 = "0f79wm8dnv19amc7d0k0iphy75rrs0ppw3kvlrqyw2k8i9xh0c84";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xah-find";
+          sha256 = "1d3x9yhm7my3yhvgqnjxr2v28g5w1h4ri40sy6dqcx09bjf3jhyq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xah-find";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xah-fly-keys = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "xah-fly-keys";
+        ename = "xah-fly-keys";
+        version = "20181031.1117";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "xah-fly-keys";
+          rev = "9f122c3d680f66416c12a87db7db7a0844505120";
+          sha256 = "1qk5qy9mrd11ix2956r23dmlkh1vi1bdpxhg8hpnifm97jsj851c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xah-fly-keys";
+          sha256 = "0bzfz8q7yd1jai0pgngxwjp82nsfx5ivn24cb20vc5r8hhzj17cs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xah-fly-keys";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xah-get-thing = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "xah-get-thing";
+        ename = "xah-get-thing";
+        version = "20170821.353";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "xah-get-thing-or-selection";
+          rev = "e3ef069ea9fea3a092689d45c94c6211b51d0ea4";
+          sha256 = "0z9pflz99p2i7czccpzvw7bkbshfycpb6js9n8a12yhc1ndbz6z0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xah-get-thing";
+          sha256 = "0m61bmfgqy19h4ivw655mqj547ga8hrpaswcp48hx00hx8mqzcvg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xah-get-thing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xah-lookup = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "xah-lookup";
+        ename = "xah-lookup";
+        version = "20180815.550";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "lookup-word-on-internet";
+          rev = "e3132ff21c3d0160e5bd5b7222c50dc9840727d4";
+          sha256 = "0p7y6dj4a9ifcpsvg50jb3hqr0i6spscc5iw02fpyih6j65p3zbn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xah-lookup";
+          sha256 = "0z0h1myw6wmybyd0z2lw4l59vgm6q6kh492q77kf3s0fssc0facc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xah-lookup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xah-math-input = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "xah-math-input";
+        ename = "xah-math-input";
+        version = "20180906.1012";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "xah-math-input";
+          rev = "d0120a451daea474abeab7f87cc64d8ddc903ab4";
+          sha256 = "0rsdvlfqdm69rj1gq4pkn9gw1n2sw5dr9xrk1aqin5rpgcgappaj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xah-math-input";
+          sha256 = "1afikjk46sjf97fb5fc8h63h7b9af010wxhsbpnmabsb4j72rx5a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xah-math-input";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xah-reformat-code = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "xah-reformat-code";
+        ename = "xah-reformat-code";
+        version = "20170821.411";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "xah-reformat-code";
+          rev = "7fec8b28e46b8cc2813fac5149e3bbb56c0aa6b1";
+          sha256 = "0mz47laig0p7fwwiv66x60f5jg0kh8zvjd1vg3nnn3xvk37lv2cw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xah-reformat-code";
+          sha256 = "1sj407nbh4x586hvsq4ycr0ahhxin0wgfwdj0551cz8793wvjpzp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xah-reformat-code";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xah-replace-pairs = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "xah-replace-pairs";
+        ename = "xah-replace-pairs";
+        version = "20180507.1949";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "xah-replace-pairs";
+          rev = "4d845cfbce32d45befd7c454e3476c3ce40d2b43";
+          sha256 = "1mkglrc8mbsjag3pc9zrmqa9x3n009hza1p1jvn3n97wjpc1qxlk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xah-replace-pairs";
+          sha256 = "0r4aq9davh3ypzcjixr3aw9g659dhiblwbmcyhm8iqhkavcpqr1x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xah-replace-pairs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xahk-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "xahk-mode";
+        ename = "xahk-mode";
+        version = "20170821.407";
+        src = fetchFromGitHub {
+          owner = "xahlee";
+          repo = "xahk-mode.el";
+          rev = "02012b20603c00e3b2ef32159a690ed1e05d12c3";
+          sha256 = "09nakcfczb95vd48f8z77igmi1kbcblmgpzfzm9i7df4jcfkkh3c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xahk-mode";
+          sha256 = "1bs12z7lnqlhm44hq0l98d0ka1bjgvm2yv97yivaj9akd53znca9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xahk-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xbm-life = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "xbm-life";
+        ename = "xbm-life";
+        version = "20160103.217";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "xbm-life";
+          rev = "dd6a98ac9ea81b681e68f6318fed47158e5d469e";
+          sha256 = "08hzsqf4gawcr9q2h3rxrf1igvdja84aaa821657k04kdq4dpcbj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xbm-life";
+          sha256 = "1pglxjd4cs630sayx17ai1xflpbyj3hry3156682bgwhqs1vw68q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xbm-life";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xcode-mode = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , multiple-cursors
+                              , s }:
+      melpaBuild {
+        pname = "xcode-mode";
+        ename = "xcode-mode";
+        version = "20160907.508";
+        src = fetchFromGitHub {
+          owner = "nicklanasa";
+          repo = "xcode-mode";
+          rev = "5b5f0a4f505d44840a4924b24e3ef73b8528d98b";
+          sha256 = "0g2vc13rc9vk20m9l1a1rxkdsc099k33pya3z10sg9pa09a4a2a2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xcode-mode";
+          sha256 = "1d8r2bc7fiwma1lcrzd9gxhdpvyf2pc6kplx7nyr40ghsb9jlpiw";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs multiple-cursors s ];
+        meta = {
+          homepage = "https://melpa.org/#/xcode-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xcode-project = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "xcode-project";
+        ename = "xcode-project";
+        version = "20181025.544";
+        src = fetchFromGitHub {
+          owner = "nhojb";
+          repo = "xcode-project";
+          rev = "0bf9a4230fab7830350c750c39beda99ef74d72f";
+          sha256 = "0746f2niclmlx90skvdb1xdac0nqj8a9pd9ap8n89ckb5r6f9hbg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xcode-project";
+          sha256 = "0igp30f6ypmp4l8zmdfpa5bza4avm7mq2gj8v7b3ii655v91n6vi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xcode-project";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xcscope = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "xcscope";
+        ename = "xcscope";
+        version = "20180426.12";
+        src = fetchFromGitHub {
+          owner = "dkogan";
+          repo = "xcscope.el";
+          rev = "57bff67460c587acf60f513de622b4c7ab312081";
+          sha256 = "1l1k85wlmjb2mgzx1la9f0p7j3q0mzj4hlrs98pf4bbfkdbqg7a7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xcscope";
+          sha256 = "06xh29cm5v3b5xwj32y0i0h0kvvy995840db4hvab2wn9jw68m8w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xcscope";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xkcd = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , json ? null
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "xkcd";
+        ename = "xkcd";
+        version = "20160419.430";
+        src = fetchFromGitHub {
+          owner = "vibhavp";
+          repo = "emacs-xkcd";
+          rev = "2c538d41a9728939cc5e8292faa78ed50997877d";
+          sha256 = "0p9p3w8i5w1pzh3y3yxz0rg5gywfq4m5anbiyrdn84vdd42jij4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xkcd";
+          sha256 = "0gy2952zg1rq5gl10x7iwbchz5jibfcvikd3chifqbmil80wh6b5";
+          name = "recipe";
+        };
+        packageRequires = [ json ];
+        meta = {
+          homepage = "https://melpa.org/#/xkcd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xml-plus = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "xml-plus";
+        ename = "xml+";
+        version = "20170727.1651";
+        src = fetchFromGitHub {
+          owner = "bddean";
+          repo = "xml-plus";
+          rev = "232fa863c08fc159b21dd58c39ea45dce3334895";
+          sha256 = "0b7v59dya346ds1wad0avrqhjimx5n9r3pcgqafagzf34hdcv3jy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xml+";
+          sha256 = "0xgqyfdn6kkp89zj4h54r009a44sbff0nrhh582zw5rlklypwdz1";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xml+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xml-quotes = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "xml-quotes";
+        ename = "xml-quotes";
+        version = "20151230.1449";
+        src = fetchFromGitHub {
+          owner = "ndw";
+          repo = "xml-quotes";
+          rev = "26db170e80b9295861227cdf970721b12539ed44";
+          sha256 = "0z3yd3dzcsd7584jchv9q55fx04ig4yjzp8ay2pa112lykv4jxxd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xml-quotes";
+          sha256 = "1lmafa695xkhd90k6yiv8a57ch1jx33l1zpm39z0kj546mn6y8aq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xml-quotes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xml-rpc = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "xml-rpc";
+        ename = "xml-rpc";
+        version = "20181002.653";
+        src = fetchFromGitHub {
+          owner = "hexmode";
+          repo = "xml-rpc-el";
+          rev = "8f624f8b964e9145acb504e4457c9510e87dd93c";
+          sha256 = "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xml-rpc";
+          sha256 = "14r6xgnpqsb2jlv52vgrhqf3qw8a6gmdyap3ylhilyxw71lxf1js";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xml-rpc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xmlgen = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "xmlgen";
+        ename = "xmlgen";
+        version = "20170411.617";
+        src = fetchFromGitHub {
+          owner = "philjackson";
+          repo = "xmlgen";
+          rev = "dba66681f0c5e621a9e70e8afb34903c9ffe93c4";
+          sha256 = "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xmlgen";
+          sha256 = "0c77la6kl02qkapfzbjmhac60f8p837kwg8bp0686ylxh5s31zsh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xmlgen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xmlunicode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "xmlunicode";
+        ename = "xmlunicode";
+        version = "20160319.912";
+        src = fetchFromGitHub {
+          owner = "ndw";
+          repo = "xmlunicode";
+          rev = "f5d185da46414c0509ebd0aa0fab416becf94612";
+          sha256 = "178bdfwiinhf98qm88ivmgy6rd0qjx5gnckkclanybva0r8l6832";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xmlunicode";
+          sha256 = "1ylpvx2p5l863r9qv9jdsm9rbv989c8xn0zpjl8zkcfxqxix4h4p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xmlunicode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xo = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "xo";
+        ename = "xo";
+        version = "20160402.2346";
+        src = fetchFromGitHub {
+          owner = "j-em";
+          repo = "xo-emacs";
+          rev = "72fcd867cfa332fdb82f732925cf8977e690af78";
+          sha256 = "0761amc73mbgaydp3iyfzgyjxp77yk440s24h69hvk87c5vn1cz3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xo";
+          sha256 = "0kpbnxh8sa2dk8anrvgc7d39qap13pyjxh154gpm8xdb9zhfwl25";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xquery-mode = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "xquery-mode";
+        ename = "xquery-mode";
+        version = "20170214.319";
+        src = fetchFromGitHub {
+          owner = "xquery-mode";
+          repo = "xquery-mode";
+          rev = "19e6f9553ce05380843582b879712de00679e4ab";
+          sha256 = "0q04p75qkcbij7cqvhwnfx2729f1v4si05xjv433v7f6dfxxkhhl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xquery-mode";
+          sha256 = "13xrvygk7wdby6599q6yxw8cm45qqki8szrm49fc3b6pr6vzpidg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/xquery-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xquery-tool = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "xquery-tool";
+        ename = "xquery-tool";
+        version = "20170605.126";
+        src = fetchFromGitHub {
+          owner = "paddymcall";
+          repo = "xquery-tool.el";
+          rev = "171abb0c4560c1a50e1a7def07eb61052ed30609";
+          sha256 = "1h3zqq4izzwlg22lj0813bid4j4r5m0blcx33rfak1ngw34zrcza";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xquery-tool";
+          sha256 = "069injmvv9zzcbqbms94qx5wjj740jnik6sf3b4xjhln7z1yskp0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xquery-tool";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xref-js2 = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , js2-mode
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "xref-js2";
+        ename = "xref-js2";
+        version = "20170530.126";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "xref-js2";
+          rev = "d5f93605405989529c2f66b542def6c32429b927";
+          sha256 = "1vzsw257xkqwlgfj8d5hnrirjhxzzs9d8ms40ihb2zwsxn70im53";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xref-js2";
+          sha256 = "1mfyszdi1wx2lqd9fyqm0ra227dcsjs8asc1dw2li0alwh7n4xs3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/xref-js2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xresources-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "xresources-theme";
+        ename = "xresources-theme";
+        version = "20160331.702";
+        src = fetchFromGitHub {
+          owner = "cqql";
+          repo = "xresources-theme";
+          rev = "09a0bfc1684161dd1cdc899c027808a99646a652";
+          sha256 = "171vffga2yzxqmgh77vila6x96bz1i6818f1pfaxblw1hz2ga341";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xresources-theme";
+          sha256 = "1vsbvg9w5g6y2qlb8ssn12ax31r7fbslfi9vcgvmjydcr8r1z0zs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xresources-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xterm-color = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "xterm-color";
+        ename = "xterm-color";
+        version = "20180202.1518";
+        src = fetchFromGitHub {
+          owner = "atomontage";
+          repo = "xterm-color";
+          rev = "42374a98f1039e105cad9f16ce585dffc96a3f1c";
+          sha256 = "09mzzql76z3gn39qnfjspm8waps8msbkilmlk3n2zrizpbps6crj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xterm-color";
+          sha256 = "0bvzi1mkxgm4vbq2va1sr0k9h3fdmppq79hkvbizc2xgk72sazpj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/xterm-color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xterm-keybinder = callPackage ({ cl-lib ? null
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , let-alist
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "xterm-keybinder";
+        ename = "xterm-keybinder";
+        version = "20160522.1756";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "xterm-keybinder-el";
+          rev = "b29c4f700b0fa0c9f627f6725b36462b8fab06d6";
+          sha256 = "0ya7c73acwp29glwjd1hf19h8jij2afwmwq7a3h91qx5zdn09wvh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xterm-keybinder";
+          sha256 = "1n0zp1mc7x7z0671lf7p9r4qxic90bkf5q3zwz4vinpiw2qh88lz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/xterm-keybinder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xtest = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "xtest";
+        ename = "xtest";
+        version = "20141214.906";
+        src = fetchFromGitHub {
+          owner = "promethial";
+          repo = "xtest";
+          rev = "8099be9c2d856f98489834ddb20a01c6fd8922f1";
+          sha256 = "1i4hxpvdxhcdxkfg39jmjqn3zdknccj6apgk80hs4k80am0l881z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xtest";
+          sha256 = "1vbs4sb4frzg8d3l96ip9cc6lc86nbj50vpdfqazvxmdfd1sg4i7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/xtest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xwidgete = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "xwidgete";
+        ename = "xwidgete";
+        version = "20171118.1316";
+        src = fetchFromGitHub {
+          owner = "tuhdo";
+          repo = "xwidgete";
+          rev = "e4e8410fe32176df85b46234717824519443fb04";
+          sha256 = "04j4xwcdxlnrwxs89605zmwxszbi2j0z67v80651pshgnhj5p19i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xwidgete";
+          sha256 = "1v1dfykkb6nwjwz2623i6x1rl53z4457l6fpa4nv4krdqq79gl5d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xwidgete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yabin = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "yabin";
+        ename = "yabin";
+        version = "20140205.1951";
+        src = fetchFromGitHub {
+          owner = "d5884";
+          repo = "yabin";
+          rev = "db8c404507560ef9147fcce2b94cd706fbfa03b5";
+          sha256 = "0f6pvwzhncycw8gnjy24h6q1qglfgvdjfs5dzqx9s43j3yg63lzm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yabin";
+          sha256 = "1kmpm2rbb43c9cgp44qwd24d90mj48k3gyiir3vb6zf6k3syrc17";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yabin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yafolding = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yafolding";
+        ename = "yafolding";
+        version = "20170304.1917";
+        src = fetchFromGitHub {
+          owner = "zenozeng";
+          repo = "yafolding.el";
+          rev = "57c015ddd7c3454571c80825bc5391d7a10fa1d7";
+          sha256 = "144v8nn4l8ngfdrsgj5nrxp09391gnfrqf950y956cbmqvnlw7z8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yafolding";
+          sha256 = "1yb1rlxa5f1y1xjqs7ndr5jnf9j5cv0ccqdpbrx4l9xkm3npw9zl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yafolding";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yagist = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "yagist";
+        ename = "yagist";
+        version = "20160417.2208";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "yagist.el";
+          rev = "10da4baa272ff0f7052f17debecc340764c7003f";
+          sha256 = "0cxrq5azj2wb8swkzaygizkvdph61v6yr68gjanzgslhvkn66rz1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yagist";
+          sha256 = "1mz86fq0pb4w54c66vd19m2492mkrzq2qi6ssnn2xwmn8vv02wdd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/yagist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yahoo-weather = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "yahoo-weather";
+        ename = "yahoo-weather";
+        version = "20181025.2020";
+        src = fetchFromGitHub {
+          owner = "lujun9972";
+          repo = "yahoo-weather-mode";
+          rev = "1d2db14daa1706e03dfe4379397eb89234a56400";
+          sha256 = "01hydsjj427j4xyy8cwiz5kn67vwwi1qnih5qfyw04w29r9njh1n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yahoo-weather";
+          sha256 = "1kzi6yp186wfcqh5q1v9vw6b1h8x89sba6wlnacfpjbarwapfif0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/yahoo-weather";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yahtzee = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "yahtzee";
+        ename = "yahtzee";
+        version = "20171022.712";
+        src = fetchFromGitHub {
+          owner = "drdv";
+          repo = "yahtzee";
+          rev = "5263fb8883d37d79a4ed34dd3216a8947d2ae4a0";
+          sha256 = "1qv8p3zpxkkp0ncq3cs8sq2bj4jrxs4s5jfc5hbs905a9z8bsnq9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yahtzee";
+          sha256 = "1fnywiami9mszagmms27dmak6chcichdi7q70x5c6aimc4jb98jk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/yahtzee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yalinum = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "yalinum";
+        ename = "yalinum";
+        version = "20130217.243";
+        src = fetchFromGitHub {
+          owner = "tm8st";
+          repo = "emacs-yalinum";
+          rev = "d3e0cbe3f4f5ca311e3298e684901d6fea3ad973";
+          sha256 = "12dd4ahg9f1493982d49g7sxx0n6ss4xcfhxwzyaqxckwzfranp0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yalinum";
+          sha256 = "0jzsvkcvy2mkfmri4bzgrlgw2y0z3hxz44md83s5zmw09mshkahf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yalinum";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yaml-imenu = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , yaml-mode }:
+      melpaBuild {
+        pname = "yaml-imenu";
+        ename = "yaml-imenu";
+        version = "20180930.2327";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "yaml-imenu.el";
+          rev = "78a383098807014d9e7f2941196d8271677158cd";
+          sha256 = "1f85m0h19wjb0xrwkxrh7vrpphm8l5nkrv82zsl097dqw3ijj3f1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yaml-imenu";
+          sha256 = "03r7020gyr96m1z7p947nb7z8szzlkqv21g1hm10sqa8qp7k0qli";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/yaml-imenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yaml-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yaml-mode";
+        ename = "yaml-mode";
+        version = "20180408.2307";
+        src = fetchFromGitHub {
+          owner = "yoshiki";
+          repo = "yaml-mode";
+          rev = "40067a10ac1360f0b9533f0bbbb2eea128e2574d";
+          sha256 = "0v7646vdsbbhxh9ywsypq2ycdsrf6m7wv788qaircbjgn1pk4v7i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yaml-mode";
+          sha256 = "0afp83xcr8h153cayyaszwkgpap0iyk351dlykmv6bv9d2m774mc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/yaml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yaml-tomato = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "yaml-tomato";
+        ename = "yaml-tomato";
+        version = "20151122.2353";
+        src = fetchFromGitHub {
+          owner = "RadekMolenda";
+          repo = "yaml-tomato";
+          rev = "1272c502fac6ce6b0f8b7f8a9beb353f0b35e13c";
+          sha256 = "0caz0ls8qlh92hr75xv593d2sk27yscb8nzhgzhiarpdxx447jzz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yaml-tomato";
+          sha256 = "1asy4nf759lcgksah2g7jvzwwlq9lxfkiji460csk5ycsv8aa99s";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/yaml-tomato";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yandex-weather = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "yandex-weather";
+        ename = "yandex-weather";
+        version = "20160311.1237";
+        src = fetchFromGitHub {
+          owner = "abstractionlayer";
+          repo = "yandex-weather.el";
+          rev = "6f823fd9e04ff9efb2aa65f333079e9f7e6e5b28";
+          sha256 = "0pw44klm8ldsdjphybzkknv8yh23xhzwg76w3d9cqs79jkd0rw8w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yandex-weather";
+          sha256 = "11hspadm520cjlv1wk2bdpzg7hg2g0chbh26qijj9jgvca26x0md";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yandex-weather";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yang-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yang-mode";
+        ename = "yang-mode";
+        version = "20180306.407";
+        src = fetchFromGitHub {
+          owner = "mbj4668";
+          repo = "yang-mode";
+          rev = "340aec635e359609b22f7e94df15af1af2b070f6";
+          sha256 = "0795z6s71vlb709n5lpx2f9adfjndafg1h5860zvy1qc4m1054rz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yang-mode";
+          sha256 = "0rl90xbcf3383ls95g1dixh2dr02kc4g60d324cqbb4h59wffp40";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yang-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yankpad = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "yankpad";
+        ename = "yankpad";
+        version = "20181115.1409";
+        src = fetchFromGitHub {
+          owner = "Kungsgeten";
+          repo = "yankpad";
+          rev = "61c2f74b2858f383e95f89f9002f510146f53c4e";
+          sha256 = "1k5giq6fwmai4iijiqc5nx17mqahy61i2158xf0n8r7w80nfacmg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yankpad";
+          sha256 = "1w5r9zk33cjgsmk45znfg32ym06nyqj5q3knr59jmn1fafx7a3z4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/yankpad";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yapfify = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "yapfify";
+        ename = "yapfify";
+        version = "20180830.33";
+        src = fetchFromGitHub {
+          owner = "JorisE";
+          repo = "yapfify";
+          rev = "b858225e1debe6734ee718e5c3c209152652a8b3";
+          sha256 = "16bpshqk47slcifx9v70ka202lnbspkcjdl5npxpf12abc1syh06";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yapfify";
+          sha256 = "0scl8lk1c5i7jp1qj5gg8zf3zyi8lkb57ijkmvcs4czzlyv3y9bm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yapfify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yara-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yara-mode";
+        ename = "yara-mode";
+        version = "20170719.2351";
+        src = fetchFromGitHub {
+          owner = "binjo";
+          repo = "yara-mode";
+          rev = "af5c05b34a29fc1bd73a6d21c82cc76320b33e5c";
+          sha256 = "1v8z3cwwla42d3r317091g5i7bj1hlbr9sd1p9s9b7y134gpd1xp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yara-mode";
+          sha256 = "12j25nbfg65bkil4wv6f27sszlj3jm6h0zczr0v26xr5syppis17";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/yara-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yard-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yard-mode";
+        ename = "yard-mode";
+        version = "20170817.537";
+        src = fetchFromGitHub {
+          owner = "pd";
+          repo = "yard-mode.el";
+          rev = "ba74a47463b0320ae152bd42a7dd7aeecd7b5748";
+          sha256 = "0zry3p66bvrk32icnd6kkk8y5rrr8crnqjp6wlp889c8c7wm00n1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yard-mode";
+          sha256 = "0jmlcba8qapjwaaliz9gzs99if3wglkhmlpjzcdy3icx18sw8kzx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yard-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yari = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "yari";
+        ename = "yari";
+        version = "20151127.2339";
+        src = fetchFromGitHub {
+          owner = "hron";
+          repo = "yari.el";
+          rev = "a2cb9656ee5dfe1fc2ee3854f3079a1c8e85dbe9";
+          sha256 = "0w9a6j0ndpfwaz1g974vv5jqgbzxw26l19kq51j3ah73063cavpf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yari";
+          sha256 = "0sch9x899mzwdacg55w5j583k2r4vn71ish7gqpghd7cj13ii66h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yari";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yarn-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yarn-mode";
+        ename = "yarn-mode";
+        version = "20170709.1237";
+        src = fetchFromGitHub {
+          owner = "anachronic";
+          repo = "yarn-mode";
+          rev = "99891000efe31214b065fa9446cd5e68c5c42ed8";
+          sha256 = "0cg06ba9yfgjzprq78cvhvvl06av0p2vhnmynddzbpgjgjnwskfy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yarn-mode";
+          sha256 = "08a3lrz670jsf531mn1hwhh7fg5dby6i749cscd6d4dyvkzpz5dg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/yarn-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yascroll = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "yascroll";
+        ename = "yascroll";
+        version = "20170315.1206";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "yascroll-el";
+          rev = "fe4494e5f4faf2832e665c7de0fed99cdbb39478";
+          sha256 = "09y8phmvqdwp1k9w84rf6p609jrg0mhgx6akwda8rsvxrrbsh6j4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yascroll";
+          sha256 = "11g7wn4hgdwnx3n7ra0sh8gk6rykwvrg9g2cihvcv7mjbqgcv53f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/yascroll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yasnippet = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yasnippet";
+        ename = "yasnippet";
+        version = "20181015.512";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "yasnippet";
+          rev = "1d96da2e08664c31ff7f6f7441da1f4fa5680b1f";
+          sha256 = "01sjmc62rvyjysp031pwiqizk6b8i1jdxnq4v24ikx7d2f3bmpjy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yasnippet";
+          sha256 = "1r37vz5b8nj6hr6c2ki9fdbrs3kkb4zwimh8r4ixm10kdkk5jqds";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/yasnippet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yasnippet-snippets = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , yasnippet }:
+      melpaBuild {
+        pname = "yasnippet-snippets";
+        ename = "yasnippet-snippets";
+        version = "20181107.1403";
+        src = fetchFromGitHub {
+          owner = "AndreaCrotti";
+          repo = "yasnippet-snippets";
+          rev = "7d4e06dbd6e517d27e4f1407b6f5180f29048588";
+          sha256 = "0g65pf3daalz90av2x8p3b84yylw8p9i3n6gpfh2lpcsdpd99n2l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yasnippet-snippets";
+          sha256 = "0daawvlw78ya38bbi95swjq8qk5jf5shsyv164m81y2gd8i5c183";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/yasnippet-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yatemplate = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , yasnippet }:
+      melpaBuild {
+        pname = "yatemplate";
+        ename = "yatemplate";
+        version = "20180617.252";
+        src = fetchFromGitHub {
+          owner = "mineo";
+          repo = "yatemplate";
+          rev = "4f4fca9f04f7088c98aa195cf33635a35a6055cb";
+          sha256 = "04nd9fcp0ff2sjhwrq4nqjicc50m7498vq1qzw2cn5c5gaqmzff8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yatemplate";
+          sha256 = "05gd9sxdiqpw2p1kdagwgxd94wiw1fmmcsp9v4p74i9sqmf6qn6q";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/yatemplate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yatex = callPackage ({ fetchhg
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "yatex";
+        ename = "yatex";
+        version = "20181106.1603";
+        src = fetchhg {
+          url = "https://www.yatex.org/hgrepos/yatex";
+          rev = "a6c72ad6445a";
+          sha256 = "05y4ki97iwm8b1zbjbjs6ywcrhivfsdzi9zwgwhvkcdfgd1qpvgv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yatex";
+          sha256 = "1qbqdsqf5s61hyyzx84csnby242n5sdcmcw55pa8r16j8kyzgrc0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yatex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yaxception = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "yaxception";
+        ename = "yaxception";
+        version = "20150105.652";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "yaxception";
+          rev = "21a36020c6a5319ea6461f4524aa3a0589df3bbd";
+          sha256 = "06fnm2c17hmlfp40mq8lxk1blmcy10z0xxdpy8ykyv1r1r6syjf8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yaxception";
+          sha256 = "18n2kjbgfhkhcwigxmv8dk72jp57vsqqd20lc26v5amx6mrhgh58";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yaxception";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ycm = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ycm";
+        ename = "ycm";
+        version = "20150822.1136";
+        src = fetchFromGitHub {
+          owner = "neuromage";
+          repo = "ycm.el";
+          rev = "4da8a14abcd0f4fa3235042ade2e12b5068c0601";
+          sha256 = "0znchya89zzk30mwl4qfm0q9sfa5m3jspapb892ydj0mck5n4nyj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ycm";
+          sha256 = "16ahgvi85ddjlrjxld14zm2vvam0m89mwskizjd5clcz0snk51sc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ycm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ycmd = callPackage ({ cl-lib ? null
+                        , dash
+                        , deferred
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , let-alist
+                        , lib
+                        , melpaBuild
+                        , pkg-info
+                        , request
+                        , request-deferred
+                        , s }:
+      melpaBuild {
+        pname = "ycmd";
+        ename = "ycmd";
+        version = "20180724.556";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-ycmd";
+          rev = "fe35b7f2e3d9370941b9e537c9bc578d814acce2";
+          sha256 = "10h3whhz4bli4r6d945qdwv0627842l84vp6binqzw7lddd72y6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ycmd";
+          sha256 = "10jqr6xz2fnrd1ihips9jmbcd28zha432h4pxjpswz3ivwjqhxna";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          dash
+          deferred
+          emacs
+          let-alist
+          pkg-info
+          request
+          request-deferred
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/ycmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ydk-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ydk-mode";
+        ename = "ydk-mode";
+        version = "20170113.121";
+        src = fetchFromGitHub {
+          owner = "jacksonrayhamilton";
+          repo = "ydk-mode";
+          rev = "3de9ef27dbdf5887f05092895e4ba93e7659e0ec";
+          sha256 = "1kc1qsblfxfxrbgv3ksqf87gzic463136k2v7ryaj3x2r9mc0j3l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ydk-mode";
+          sha256 = "1z9digf39d7dd736svp0cy6773l3nklzc263q23gwfcg0jswbdyg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ydk-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yesql-ghosts = callPackage ({ cider
+                                , dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "yesql-ghosts";
+        ename = "yesql-ghosts";
+        version = "20150220.437";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "yesql-ghosts";
+          rev = "416198cdc4f316b0912af5e413410937b9b8432b";
+          sha256 = "0liys4arxias4a0ilssaixml4pvjwk80w93njdxb9f5i8mwwznpj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yesql-ghosts";
+          sha256 = "1hxzbnfd15f0ifdqjbw9nhxd0z46x705v2bc0xl71nav78fgpswf";
+          name = "recipe";
+        };
+        packageRequires = [ cider dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/yesql-ghosts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yoficator = callPackage ({ fetchFromGitLab
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yoficator";
+        ename = "yoficator";
+        version = "20180814.1704";
+        src = fetchFromGitLab {
+          owner = "link2xt";
+          repo = "yoficator";
+          rev = "a0c5bdf9db6e495549176755cd047fcf05c71255";
+          sha256 = "1fqyd2srya78w1d3fbhzkl1ym5j8zm9ygg93yjaddzf0afc0aprm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yoficator";
+          sha256 = "0b6lv6wk5ammhb9rws9kig02wkm84i5avm7a1vd4sb7wkgm9nj9r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yoficator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yoshi-theme = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "yoshi-theme";
+        ename = "yoshi-theme";
+        version = "20170330.0";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "yoshi-theme";
+          rev = "eab4fb67e8fec47c25c4c1393ac1211f043dbd44";
+          sha256 = "01al6pzl9mz04b43a3lwnhdvr5i71qhafz6frl5m9q2k6x1x2n2f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yoshi-theme";
+          sha256 = "1kzdjs3rzg9rxrjgsk0wk75rwvbip6ixg1apcxv2c1a6biqqf2hv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yoshi-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    youdao-dictionary = callPackage ({ chinese-word-at-point
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , names
+                                     , popup
+                                     , pos-tip }:
+      melpaBuild {
+        pname = "youdao-dictionary";
+        ename = "youdao-dictionary";
+        version = "20180713.2114";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "youdao-dictionary.el";
+          rev = "9496ea3ba8aa999db3dbde88d6aa37f3579d8dea";
+          sha256 = "0kn07ksjdrwl0m1wiac83ljg5drrmyf65gxm4m6r3iz1awd1akbb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/youdao-dictionary";
+          sha256 = "1qfk7s18br9jask1bpida0cjxks098qpz0ssmw8misi3bjax0fym";
+          name = "recipe";
+        };
+        packageRequires = [ chinese-word-at-point emacs names popup pos-tip ];
+        meta = {
+          homepage = "https://melpa.org/#/youdao-dictionary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    z3-mode = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , flycheck
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "z3-mode";
+        ename = "z3-mode";
+        version = "20151120.1455";
+        src = fetchFromGitHub {
+          owner = "zv";
+          repo = "z3-mode";
+          rev = "163dc01d59e9880b4dc188d4e1ad84d6c0c852e1";
+          sha256 = "1k7m3xk5ksbr2s3ypz5yqafz9sfav1m0qk2jz1xyi3fdaw2j0w2z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/z3-mode";
+          sha256 = "183lzhgjj480ca2939za3rlnsbfn24mgi501n66h5wim950v7vgd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/z3-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zeal-at-point = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "zeal-at-point";
+        ename = "zeal-at-point";
+        version = "20180131.1554";
+        src = fetchFromGitHub {
+          owner = "jinzhu";
+          repo = "zeal-at-point";
+          rev = "0fc3263f44e95acd3e9d91057677621ce4d297ee";
+          sha256 = "0aq9w9pjyzdgf63hwffhph6k43vv3cxmffklrjkjj3hqv796k8yd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zeal-at-point";
+          sha256 = "1cz53plk5bax5azm13y7xz530qcfh0scm0cgrkrgwja2wwlxirnw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zeal-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zel = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , frecency
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "zel";
+        ename = "zel";
+        version = "20171014.132";
+        src = fetchFromGitHub {
+          owner = "rudolfochrist";
+          repo = "zel";
+          rev = "23b12d107f123667ddd443b9f3e2047209e0055a";
+          sha256 = "1m8bw588r2a1034ynigrzgab857261nrjwnzag5i3rgwn27brfcz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zel";
+          sha256 = "0fwc1fghsw2rg4fv10kgc9d6rhbq20xa9diqcvp1f1cqs12rfhpd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs frecency ];
+        meta = {
+          homepage = "https://melpa.org/#/zel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zen-and-art-theme = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "zen-and-art-theme";
+        ename = "zen-and-art-theme";
+        version = "20120622.737";
+        src = fetchFromGitHub {
+          owner = "developernotes";
+          repo = "zen-and-art-theme";
+          rev = "a7226cbce0bca2501d69a620cb2aeabfc396c232";
+          sha256 = "0dnaxhsw549k54j0mgydm7qbl4pizgipfyzc15f9afsxa107rpnl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zen-and-art-theme";
+          sha256 = "0b2lflji955z90xl9iz2y1vm04yljghbw4948gh5vv5p7mwibgf2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zen-and-art-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zenburn-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "zenburn-theme";
+        ename = "zenburn-theme";
+        version = "20181014.855";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "zenburn-emacs";
+          rev = "d71a0f0556c1db785738ab9b0c989df342705a81";
+          sha256 = "1pf9l138kdxqxgsjzarj4s3adqay4qfn3gqj6g84vw34wrncj4s1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zenburn-theme";
+          sha256 = "1kb371j9aissj0vy07jw4ydfn554blc8b2rbi0x1dvfksr2rhsn9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zenburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zencoding-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "zencoding-mode";
+        ename = "zencoding-mode";
+        version = "20140213.22";
+        src = fetchFromGitHub {
+          owner = "rooney";
+          repo = "zencoding";
+          rev = "58e42af182c98cb9941d27cd042d227fbf4e146c";
+          sha256 = "1y3wj15kfbgskl29glmba6lzq43rcm141p4i5s180aqcw7ydp5vr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zencoding-mode";
+          sha256 = "1fclad1dyngyg9ncfkcqfxybvy8482i2bd409cgxi9y4h1wc7ws7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zencoding-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zenity-color-picker = callPackage ({ emacs
+                                       , fetchgit
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "zenity-color-picker";
+        ename = "zenity-color-picker";
+        version = "20160302.354";
+        src = fetchgit {
+          url = "https://bitbucket.org/Soft/zenity-color-picker.el";
+          rev = "bdece51052ef7037e0a3481fc1f487939f57777e";
+          sha256 = "12s2zw99q1zn3a1rn5i27mp506nhqh23v3df5inzfsq1b3dji2bl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zenity-color-picker";
+          sha256 = "0rim1mbhlb2lj302c58rs5l7bd168nxg1jpir6cbpf8rp0k35ldb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zenity-color-picker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zeno-theme = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "zeno-theme";
+        ename = "zeno-theme";
+        version = "20181026.1818";
+        src = fetchFromGitHub {
+          owner = "jbharat";
+          repo = "zeno-theme";
+          rev = "0914c4a5b1b9499e7f1ca5699b1c3ea2f4be3f1a";
+          sha256 = "1zl1ks7n35i9mn5w7ac3j15820fbgpbcmmysv25crvi4g9z94mqj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zeno-theme";
+          sha256 = "0bqv1gdqlh7i48ckpgss6h9mmc9hpkqlb94aam0kkq2ga125gmwc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zeno-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zephir-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , pkg-info }:
+      melpaBuild {
+        pname = "zephir-mode";
+        ename = "zephir-mode";
+        version = "20170917.2125";
+        src = fetchFromGitHub {
+          owner = "sergeyklay";
+          repo = "zephir-mode";
+          rev = "1e0c287a0928ce2d5bce7399ee12be051a4c78a3";
+          sha256 = "05p237h79x6li9vckavxd38zv4rm5zhl3d47gj1sjg454q7qba33";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zephir-mode";
+          sha256 = "0nxm6w7z89q2vvf3bp1p6hb6f2axv9ha85jyiv4k02l46sjprf4j";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/zephir-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zerodark-theme = callPackage ({ all-the-icons
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "zerodark-theme";
+        ename = "zerodark-theme";
+        version = "20180911.751";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "zerodark-theme";
+          rev = "09a6bc6d8bcc7c2bb89e497dc8f6d3a29f6fe4c2";
+          sha256 = "1i690ilvhskxqljjsnlpp124i8jl2njxmynppricxwvxrhh69pgz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zerodark-theme";
+          sha256 = "1nqzswmnq6h0av4rivqm237h7ghp7asa2nvls7nz4ma467p9qhp9";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons ];
+        meta = {
+          homepage = "https://melpa.org/#/zerodark-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zig-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "zig-mode";
+        ename = "zig-mode";
+        version = "20181114.546";
+        src = fetchFromGitHub {
+          owner = "ziglang";
+          repo = "zig-mode";
+          rev = "cb485ff8d5d9fab0ac88c7685072fb75df921398";
+          sha256 = "1qbnnjyxr4ilh5116n2lk39mkvzfnc5krfhxrdch25w65x27aw4l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zig-mode";
+          sha256 = "1kg1x0l65nqqpzn5np41ya9khr1yqcg5ki7z3jw0g4wxdbz7lrbx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zig-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zlc = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "zlc";
+        ename = "zlc";
+        version = "20151010.1857";
+        src = fetchFromGitHub {
+          owner = "mooz";
+          repo = "emacs-zlc";
+          rev = "4dd2ba267ecdeac845a7cbb3147294ee7daa25f4";
+          sha256 = "1gb51bqdf87yibs1zngk6q090p05293cpwlwbwzhnih9sl6wkq8x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zlc";
+          sha256 = "0qw0qf14l09mcnw7h0ccbw17psfpra76qfawkc10zpdb5a2167d0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zlc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zmq = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "zmq";
+        ename = "zmq";
+        version = "20181115.1500";
+        src = fetchFromGitHub {
+          owner = "dzop";
+          repo = "emacs-zmq";
+          rev = "f6960700f9458f9fe6cbc530da97bd1037d4d882";
+          sha256 = "0pnlhgmwn002fwgqnccm16b08mrvpfpjm6y95kvwh30mq8q38fag";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zmq";
+          sha256 = "14bbh00a58xgxyxl8zjxl57rf6351fnwsnk4cvvy341fvf86dklc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zmq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    znc = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "znc";
+        ename = "znc";
+        version = "20160627.1332";
+        src = fetchFromGitHub {
+          owner = "sshirokov";
+          repo = "ZNC.el";
+          rev = "ce468d185e4a949c45fdd7586313144bc69d4fe5";
+          sha256 = "0jh11lbzsndsz9i143av7510417nzwy4j3mmpq7cjixfbmnxdq06";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/znc";
+          sha256 = "1017dlzbpb3ww0zb370bgsdrzr4kcc72ddby9j63d95chz2jg0hb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/znc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zombie = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "zombie";
+        ename = "zombie";
+        version = "20141222.816";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "zombie";
+          rev = "ff8cd1b4cdbb4b0b9b8fd1ec8f6fb93eba249345";
+          sha256 = "1gm3ly6czbw4vrxcslm50jy6nxf2qsl656cjwbyhw251wppn75cg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zombie";
+          sha256 = "0ji3nsxwbxmmygd6plpbc1lkw6i5zw4y6x3r5n2ah3ds4vjr7cnv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zombie";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zombie-trellys-mode = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , haskell-mode
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "zombie-trellys-mode";
+        ename = "zombie-trellys-mode";
+        version = "20150304.648";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "zombie-trellys-mode";
+          rev = "03b8d3635f65dbf38f9a19b5d1a8dfdcb38ba423";
+          sha256 = "0rp615k41v5v9m9g3ydyzgwr6a7wqrmsdkz3pc2frl1zij8jpjm4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zombie-trellys-mode";
+          sha256 = "19xzvppw7f35s82hm0y7sga8dyjjyy0dxy6vji4hxdpjziz7lggv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/zombie-trellys-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zone-nyan = callPackage ({ esxml
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "zone-nyan";
+        ename = "zone-nyan";
+        version = "20170818.944";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "zone-nyan";
+          rev = "4b1f8d95f130946718d52806489ffe2762aebfdc";
+          sha256 = "1axq4ch7garlfrybq9kgv6x7d8y4dw5y9pqbqlqvlwf4xmdrvzmm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zone-nyan";
+          sha256 = "1g7i5p26gb9gny64b84x6zqml7fly5q9aykmc6l6c1kfl6pqxs94";
+          name = "recipe";
+        };
+        packageRequires = [ esxml ];
+        meta = {
+          homepage = "https://melpa.org/#/zone-nyan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zone-rainbow = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "zone-rainbow";
+        ename = "zone-rainbow";
+        version = "20160120.534";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "zone-rainbow";
+          rev = "2ba4f1a87c69c4712124ebf12c1f3ea171e1af36";
+          sha256 = "0w550l9im3mhxhja1b7cr9phdcbvx5lprw551lj0d1lv7qvjasz0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zone-rainbow";
+          sha256 = "0l51fmhvx9vsxbs62cbjgqphb691397f651nqin7cj3dfvchzh4j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zone-rainbow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zone-select = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "zone-select";
+        ename = "zone-select";
+        version = "20160118.619";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "zone-select";
+          rev = "bf30da12f1625fe6563448fccf3c506acad10af7";
+          sha256 = "17mrzf85ym0x5ih4l6sjdjlcmviabf8c8rpvpkd90gp9qxd8pyx1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zone-select";
+          sha256 = "05kc211invmy4ajwf71vgr2b7bdgn99c4a26m95gcjqgy3sh5xzz";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zone-select";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zone-sl = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "zone-sl";
+        ename = "zone-sl";
+        version = "20160201.410";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "zone-sl";
+          rev = "737b21b4b35c28a487ad8a31598e745bc183b209";
+          sha256 = "0m1q45pza61j0fp8cxkgmds5fyjrk0nqpwhg8m91610m3pvyc3ap";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zone-sl";
+          sha256 = "04rwd6vj3abk3bzhq3swxwcq5da2n9cldrcmvnqgjr975np4cgs3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zone-sl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zoom = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "zoom";
+        ename = "zoom";
+        version = "20180310.421";
+        src = fetchFromGitHub {
+          owner = "cyrus-and";
+          repo = "zoom";
+          rev = "c97ffaf6d0032007f13974b4d542558f9d686e39";
+          sha256 = "0jfz9z6g1zf2jmw5sinnnwnd6z0q8qrgj337f8d2g7mchy85l6fv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zoom";
+          sha256 = "09bk0nnfj72an2b3rravd6qp21gdgcm1m55qnf2r8rzbgqymq5ls";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zoom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zoom-window = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "zoom-window";
+        ename = "zoom-window";
+        version = "20170302.27";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-zoom-window";
+          rev = "cd6ecc103fc30b171bda7daf1f44a550854d0dbf";
+          sha256 = "1rfhdzwyag32s15ysmf75976nvkx995581afaa4ychj45vwnaqfm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zoom-window";
+          sha256 = "0l9683nk2bdm49likk9c55c23qfy6f1pn04drqwd1vhpanz4l4b3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zoom-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zop-to-char = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "zop-to-char";
+        ename = "zop-to-char";
+        version = "20160212.754";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "zop-to-char";
+          rev = "816ea90337db0545a2f0a5079f4d7b3a2822af7d";
+          sha256 = "14waf3g7b92k3qd5088w4pn0wcspxjfkbswlzf7nnkjliw1yh0kf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zop-to-char";
+          sha256 = "0jnspvqqvnaplld083j7cqqxw122qazh88ab7hymci36m3ka9hga";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/zop-to-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zossima = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , inf-ruby
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "zossima";
+        ename = "zossima";
+        version = "20121123.1635";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "zossima";
+          rev = "0b3f17c77bc1791687cdb4e15c889f774f9e2c0f";
+          sha256 = "11ygifz67zyrqqqmjs5xrrch796n2na4c9g1mrpdspf7ndiqjbw2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zossima";
+          sha256 = "11kmnbqv4s8arindg7cxcdhbvfxsckks332wn7aiyb3bjhcgzwjb";
+          name = "recipe";
+        };
+        packageRequires = [ inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/zossima";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zotelo = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "zotelo";
+        ename = "zotelo";
+        version = "20160602.249";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "zotelo";
+          rev = "d9dc089b9adfcc70a63f2a84269a12eb7cb4c748";
+          sha256 = "1gff44nwiqhqhppwmsn38njkph4g9bw669p95m8p2avb7x7kiybl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zotelo";
+          sha256 = "0y6s5ma7633h5pf9zj7vkazidlf211va7nk47ppb1q0iyfkyln36";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/zotelo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zotxt = callPackage ({ fetchFromGitLab
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , request-deferred }:
+      melpaBuild {
+        pname = "zotxt";
+        ename = "zotxt";
+        version = "20180517.1847";
+        src = fetchFromGitLab {
+          owner = "egh";
+          repo = "zotxt-emacs";
+          rev = "23a4a9f74a658222027d53a9a83cd4bcc583ca8b";
+          sha256 = "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zotxt";
+          sha256 = "18jla05g2k8zfrmp7q9kpr1mpw6smxzdyn8nfghm306wvv9ff8y5";
+          name = "recipe";
+        };
+        packageRequires = [ request-deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/zotxt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zoutline = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "zoutline";
+        ename = "zoutline";
+        version = "20180314.1059";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "zoutline";
+          rev = "b3ee0f0e0b916838c2d2c249beba74ffdb8d5699";
+          sha256 = "0sd0017piw0dis6dhpq5dkqd3acisxqgipl7dj8gmc1vnswhdwr8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zoutline";
+          sha256 = "1yyww84b58ymbx0w1gkgd0csr0cwlghdmnxk0jbzwc45g9g42k1m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zoutline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zpl-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "zpl-mode";
+        ename = "zpl-mode";
+        version = "20180906.359";
+        src = fetchFromGitHub {
+          owner = "ax487";
+          repo = "zpl-mode";
+          rev = "35e7e23c6baf31b5e65dd7405c8ab9b13c70637e";
+          sha256 = "147d7ylpk77zcsjim0my6cbyms28yd7mfaigmzm009jc1bn4r7f5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zpl-mode";
+          sha256 = "0wqhwzanvc1gpnykfqzi02p9zx0c1n6gnavg5dv1mlmc8x0hr67s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zpl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zpresent = callPackage ({ dash
+                            , emacs
+                            , fetchhg
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org-parser
+                            , request }:
+      melpaBuild {
+        pname = "zpresent";
+        ename = "zpresent";
+        version = "20180604.2138";
+        src = fetchhg {
+          url = "https://bitbucket.com/zck/zpresent.el";
+          rev = "55fc14b66e2e";
+          sha256 = "17wkhl1a7jmg4ks011lf5h4f2vbhf8dl6vgzdzlmljk15f9hmw35";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zpresent";
+          sha256 = "0316qyspmdbg94aw620133ilh8kfpr3db1p2cifgccgcacjv3v5j";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org-parser request ];
+        meta = {
+          homepage = "https://melpa.org/#/zpresent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zprint-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "zprint-mode";
+        ename = "zprint-mode";
+        version = "20181111.1145";
+        src = fetchFromGitHub {
+          owner = "pesterhazy";
+          repo = "zprint-mode.el";
+          rev = "6b979f6cb50d1f3da0ec44f39fd0dd893785ca44";
+          sha256 = "0fbm0klda8rbybp6rb1296czn8gc1c7bvcyd40qlg5jy1wxwjbd3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zprint-mode";
+          sha256 = "07ziwnk1c620s7rp42fylpw5vgin0p7aapp3g8aif60vcb8g3m7y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zprint-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ztree = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "ztree";
+        ename = "ztree";
+        version = "20180512.1150";
+        src = fetchFromGitHub {
+          owner = "fourier";
+          repo = "ztree";
+          rev = "50412fa553fb68fcd7218cc44cf66b5342ab6889";
+          sha256 = "00s3sa90yi6q0260ziqqmx00xl0nnf46mwcl8fbr5mdw14hvk9dl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ztree";
+          sha256 = "1fk5xz8qq3azc66f954x5qvym94xnv4fg6wy83ihdfwycsas7j20";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ztree";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zweilight-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "zweilight-theme";
+        ename = "zweilight-theme";
+        version = "20170112.2205";
+        src = fetchFromGitHub {
+          owner = "philiparvidsson";
+          repo = "Zweilight-Theme-for-Emacs";
+          rev = "890f27c939d8a358c9ef0f402fc3314f475ec874";
+          sha256 = "0pl254c61405n6sgr01qj4z42vqdvbmf59nz55cl23l2q7kdbfdv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zweilight-theme";
+          sha256 = "1j8skn9hz1zkpdg7q0njv5b50cbvrixjjmkp43p58gx98q02p0kq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zweilight-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zygospore = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "zygospore";
+        ename = "zygospore";
+        version = "20140703.152";
+        src = fetchFromGitHub {
+          owner = "LouisKottmann";
+          repo = "zygospore.el";
+          rev = "1af5ee663f5a7aa08d96a77cacff834dcdf55ea8";
+          sha256 = "0v73fgb0gf81vlihiicy32v6x86rr2hv0bxlpw7d3pk4ng1a0l3z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zygospore";
+          sha256 = "0n9qs6fymdjly0i4rmx87y8gapfn5sqivsivcffi42vcb5f17kxj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zygospore";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zzz-to-char = callPackage ({ avy
+                               , cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "zzz-to-char";
+        ename = "zzz-to-char";
+        version = "20171231.2219";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "zzz-to-char";
+          rev = "8ddda49de3356d8fa0308d79b5d68272baf2c57b";
+          sha256 = "17d8mmmgj2w4nm2nfg12g35i7zbp4bp47ix5ifqqm1zvwmbmzrqx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zzz-to-char";
+          sha256 = "16vwp0krshmn5x3ry1j512g4kydx39znjqzri4j7wgg49bz1n7vh";
+          name = "recipe";
+        };
+        packageRequires = [ avy cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zzz-to-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+  }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
new file mode 100644
index 000000000000..b95a944e612b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-packages.nix
@@ -0,0 +1,262 @@
+/*
+
+# Updating
+
+To update the list of packages from MELPA,
+
+1. Clone https://github.com/ttuegel/emacs2nix.
+2. Clone https://github.com/milkypostman/melpa.
+3. Run `./melpa-packages.sh --melpa PATH_TO_MELPA_CLONE` from emacs2nix.
+4. Copy the new `melpa-generated.nix` file into Nixpkgs.
+5. Check for evaluation errors: `nix-instantiate ./. -A emacsPackagesNg.melpaPackages`.
+6. `git add pkgs/applications/editors/emacs-modes/melpa-generated.nix && git commit -m "melpa-packages $(date -Idate)"`
+
+*/
+
+{ lib, external }:
+
+self:
+
+  let
+    imported = import ./melpa-generated.nix { inherit (self) callPackage; };
+    super = builtins.removeAttrs imported [
+      "swbuff-x" # required dependency swbuff is missing
+    ];
+
+    dontConfigure = pkg: pkg.override (args: {
+      melpaBuild = drv: args.melpaBuild (drv // {
+        configureScript = "true";
+      });
+    });
+
+    markBroken = pkg: pkg.override (args: {
+      melpaBuild = drv: args.melpaBuild (drv // {
+        meta = (drv.meta or {}) // { broken = true; };
+      });
+    });
+
+    overrides = {
+      # Expects bash to be at /bin/bash
+      ac-rtags = markBroken super.ac-rtags;
+
+      # upstream issue: mismatched filename
+      ack-menu = markBroken super.ack-menu;
+
+      airline-themes = super.airline-themes.override {
+        inherit (self.melpaPackages) powerline;
+      };
+
+      # upstream issue: missing file header
+      bufshow = markBroken super.bufshow;
+
+      # part of a larger package
+      caml = dontConfigure super.caml;
+
+      # Expects bash to be at /bin/bash
+      company-rtags = markBroken super.company-rtags;
+
+      easy-kill-extras = super.easy-kill-extras.override {
+        inherit (self.melpaPackages) easy-kill;
+      };
+
+      egg = super.egg.overrideAttrs (attrs: {
+        # searches for Git at build time
+        nativeBuildInputs =
+          (attrs.nativeBuildInputs or []) ++ [ external.git ];
+      });
+
+      # upstream issue: missing file header
+      elmine = markBroken super.elmine;
+
+      ess-R-data-view = super.ess-R-data-view.override {
+        inherit (self.melpaPackages) ess ctable popup;
+      };
+
+      evil-magit = super.evil-magit.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 ];
+      });
+
+      # missing OCaml
+      flycheck-ocaml = markBroken super.flycheck-ocaml;
+
+      # Expects bash to be at /bin/bash
+      flycheck-rtags = markBroken super.flycheck-rtags;
+
+      # build timeout
+      graphene = markBroken super.graphene;
+
+      # upstream issue: mismatched filename
+      helm-lobsters = markBroken super.helm-lobsters;
+
+      # Expects bash to be at /bin/bash
+      helm-rtags = markBroken super.helm-rtags;
+
+      # Build same version as Haskell package
+      hindent = super.hindent.overrideAttrs (attrs: {
+        version = external.hindent.version;
+        src = external.hindent.src;
+        packageRequires = [ self.haskell-mode ];
+        propagatedUserEnvPkgs = [ external.hindent ];
+      });
+
+      # upstream issue: missing file header
+      ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
+
+      # upstream issue: missing file header
+      initsplit = super.initsplit;
+
+      # tries to write a log file to $HOME
+      insert-shebang = super.insert-shebang.overrideAttrs (attrs: {
+        HOME = "/tmp";
+      });
+
+      # Expects bash to be at /bin/bash
+      ivy-rtags = markBroken super.ivy-rtags;
+
+      # upstream issue: missing file header
+      jsfmt = markBroken super.jsfmt;
+
+      # upstream issue: missing file header
+      maxframe = markBroken super.maxframe;
+
+      magit =
+        (super.magit.override {
+          # version of magit-popup needs to match magit
+          # https://github.com/magit/magit/issues/3286
+          inherit (self.melpaPackages) magit-popup;
+        }).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-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 ];
+      });
+
+      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 ];
+      });
+
+      # missing OCaml
+      merlin = markBroken super.merlin;
+
+      mhc = super.mhc.override {
+        inherit (self.melpaPackages) calfw;
+      };
+
+      # missing .NET
+      nemerle = markBroken super.nemerle;
+
+      # part of a larger package
+      notmuch = dontConfigure super.notmuch;
+
+      # missing OCaml
+      ocp-indent = markBroken super.ocp-indent;
+
+      orgit =
+        (super.orgit.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";
+      });
+
+      # upstream issue: mismatched filename
+      processing-snippets = markBroken super.processing-snippets;
+
+      # upstream issue: missing file header
+      qiita = markBroken super.qiita;
+
+      # upstream issue: missing file footer
+      seoul256-theme = markBroken super.seoul256-theme;
+
+      spaceline = super.spaceline.override {
+        inherit (self.melpaPackages) powerline;
+      };
+
+      # upstream issue: missing file header
+      speech-tagger = markBroken super.speech-tagger;
+
+      # upstream issue: missing file header
+      stgit = markBroken super.stgit;
+
+      # upstream issue: missing file header
+      tawny-mode = markBroken super.tawny-mode;
+
+      # upstream issue: missing file header
+      textmate = markBroken super.textmate;
+
+      # missing OCaml
+      utop = markBroken super.utop;
+
+      vdiff-magit =
+        (super.vdiff-magit.overrideAttrs (attrs: {
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        }));
+
+      # upstream issue: missing file header
+      voca-builder = markBroken super.voca-builder;
+
+      # upstream issue: missing file header
+      window-numbering = markBroken super.window-numbering;
+
+      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}"'
+            '';
+        });
+      });
+    };
+
+    melpaPackages =
+      removeAttrs (super // overrides)
+      [
+        "show-marks"  # missing dependency: fm
+      ];
+  in
+    melpaPackages // { inherit melpaPackages; }
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix
new file mode 100644
index 000000000000..5b16c92713b7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix
@@ -0,0 +1,54156 @@
+{ callPackage }:
+  {
+    _0blayout = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "_0blayout";
+        ename = "0blayout";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "etu";
+          repo = "0blayout-mode";
+          rev = "b8bb44b5336965b5519b9a826a0f46f8ee31c471";
+          sha256 = "1apv5zd3zzni2llj9is7h2bzq1xxbx67kr7c07dfjd26n7l0zvfi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/0blayout";
+          sha256 = "027k85h34998i8vmbg2hi4q1m4f7jfva5jm38k0g9m1db700gk92";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/0blayout";
+          license = lib.licenses.free;
+        };
+      }) {};
+    a = callPackage ({ emacs
+                     , fetchFromGitHub
+                     , fetchurl
+                     , lib
+                     , melpaBuild }:
+      melpaBuild {
+        pname = "a";
+        ename = "a";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "plexus";
+          repo = "a.el";
+          rev = "8583685c32069a73ccae0100e990e7b39c901737";
+          sha256 = "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/a";
+          sha256 = "1xqja47iw1c78kiv4854z47iblvvzrc1l35zjdhmhkh9hh10z886";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/a";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aa-edit-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , navi2ch }:
+      melpaBuild {
+        pname = "aa-edit-mode";
+        ename = "aa-edit-mode";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "aa-edit-mode";
+          rev = "2e56f3b627f0f19fbfce4968180b4d736f7afb5d";
+          sha256 = "1rh9n97z1vi7w60qzam5vc025wwm346fgzym2zs1cm7ykyfh3mgd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aa-edit-mode";
+          sha256 = "00b99ik04xx4b2a1cm1z8dl42hjnb5r32qypjyyx8924n1dhxzgn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs navi2ch ];
+        meta = {
+          homepage = "https://melpa.org/#/aa-edit-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    abc-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "abc-mode";
+        ename = "abc-mode";
+        version = "20140225.944";
+        src = fetchFromGitHub {
+          owner = "mkjunker";
+          repo = "abc-mode";
+          rev = "6b5ab7402287dab5a091e94fec9982dc45d9d287";
+          sha256 = "13f4l9xzx4xm5m80kkb49zh31w0bn0kw9m5ca28rrx4aysqmwryv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/abc-mode";
+          sha256 = "0qf5lbszyscmagiqhc0d05vzkhdky7ini4w33z1h3j5417sscrcx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/abc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    abyss-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "abyss-theme";
+        ename = "abyss-theme";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "mgrbyte";
+          repo = "emacs-abyss-theme";
+          rev = "18791c6e8d9cc2b4815c9f08627a2e94fc0eeb14";
+          sha256 = "07z0djv7h3yrv4iw9n633j6dxzxb4nnzijsqkmz22ik6fbwxg5mh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/abyss-theme";
+          sha256 = "0ckrgfd7fjls6g510v8fqpkd0fd18lr0spg3lf5s88gky8ihdg6c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/abyss-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-alchemist = callPackage ({ alchemist
+                                , auto-complete
+                                , cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ac-alchemist";
+        ename = "ac-alchemist";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-alchemist";
+          rev = "b1496f6c7f968725076341d3797fe33fb2d36e39";
+          sha256 = "06d6yhknrq1wqdg3ykkswsb515bvhkz23gbclws9lmqslns7g1jf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-alchemist";
+          sha256 = "02ll3hcixgdb8zyszn78714gy1h2q0vkhpbnwap9302mr2racwl0";
+          name = "recipe";
+        };
+        packageRequires = [ alchemist auto-complete cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-alchemist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-capf = callPackage ({ auto-complete
+                           , cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ac-capf";
+        ename = "ac-capf";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-capf";
+          rev = "17571dba0a8f98111f2ab758e9bea285b263781b";
+          sha256 = "0nyq34yq4jcp3p30ygma3iz1h0q551p33792byj76pa5ps09g1da";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-capf";
+          sha256 = "1drgk5iz2wp3rxzd39pj0n4cfmm5z8zqlp50jw5z7ffbbg35qxbm";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-capf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-cider = callPackage ({ auto-complete
+                            , cider
+                            , cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ac-cider";
+        ename = "ac-cider";
+        version = "0.2.3";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "ac-cider";
+          rev = "4be034e5f82421b0a836ec7ff45815c67caffcee";
+          sha256 = "12s7wy7fyk5z9q287j871gcsrvj90f4c81h39p66d99jw0cl93qj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-cider";
+          sha256 = "1dszpb706h34miq2bxqyq1ycbran5ax36vcniwp8vvhgcjsw5sz6";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cider cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-cider";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-clang = callPackage ({ auto-complete
+                            , cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , pos-tip
+                            , yasnippet }:
+      melpaBuild {
+        pname = "ac-clang";
+        ename = "ac-clang";
+        version = "2.1.3";
+        src = fetchFromGitHub {
+          owner = "yaruopooner";
+          repo = "ac-clang";
+          rev = "3294b968eb1a8317049190940193f9da47c085ef";
+          sha256 = "160hda911vsc2zcs56560cpv7kj0966vjzwmc0md6fkz3wrj7w0n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-clang";
+          sha256 = "070s06xhkzaqfc3j8c4i44rks6gn8z66lwd54j17p8d91x3qjpr4";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib emacs pos-tip yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-clang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-dcd = callPackage ({ auto-complete
+                          , fetchFromGitHub
+                          , fetchurl
+                          , flycheck-dmd-dub
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ac-dcd";
+        ename = "ac-dcd";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "atilaneves";
+          repo = "ac-dcd";
+          rev = "4cb14b1e9fcfc4bf4a084765bc1eb10abfbbbd49";
+          sha256 = "0a3s880nswc2s6yh2v5zsmws550q917i7av8nrxc5sp1d03xqwmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-dcd";
+          sha256 = "086jp9c6bilc361n1hscza3pbhgvqlq944z7cil2jm1kicsf8s7r";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete flycheck-dmd-dub ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-dcd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-emacs-eclim = callPackage ({ auto-complete
+                                  , eclim
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ac-emacs-eclim";
+        ename = "ac-emacs-eclim";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "emacs-eclim";
+          repo = "emacs-eclim";
+          rev = "94508ebd071ff1052d68a20f7f1bf1038439fe43";
+          sha256 = "0l72zw93wv8ncn98d6ybnykhi3a60bc0kyx6z699wfhnnhhxhl0p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-emacs-eclim";
+          sha256 = "0bkh7x6zj5drdvm9ji4vwqdxv7limd9a1idy8lsg0lcca3rjq3s5";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete eclim ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-emacs-eclim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-emoji = callPackage ({ auto-complete
+                            , cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ac-emoji";
+        ename = "ac-emoji";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-emoji";
+          rev = "53677f754929ead403ccde64b714ebb6b8fc808e";
+          sha256 = "0cc3jpc4pihbyznyzvf6i3xwc2x78gb5m36ba9gkvxhabsljnlfg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-emoji";
+          sha256 = "0msh3dh89jzk6hxva34gp9d5pazchgdknxjbi72z26rss9bkp1mw";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-emoji";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-etags = callPackage ({ auto-complete
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ac-etags";
+        ename = "ac-etags";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-etags";
+          rev = "8cd188b2e4908285ba8178bbd18a555edd7282e8";
+          sha256 = "0ijni3qgd68jhznhirhgcl59cr7hwfvbwgf6z120x56jmp8h01d2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-etags";
+          sha256 = "0ag49k9izrs4ikzac9lifvvwhcn5n89lr2vb20pngsvg1czdyhzb";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-etags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-geiser = callPackage ({ auto-complete
+                             , fetchFromGitHub
+                             , fetchurl
+                             , geiser
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ac-geiser";
+        ename = "ac-geiser";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "xiaohanyu";
+          repo = "ac-geiser";
+          rev = "0e2e36532336f27e3dc3b01fff55ad1a4329817d";
+          sha256 = "02ifz25rq64z0ifxs52aqdz0iz4mi6xvj88hcn3aakkmsj749vvn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-geiser";
+          sha256 = "0v558qz1mp8b1bgk8kgdk5sx5mpd353mw77n5b0pw4b2ikzpz2mx";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete geiser ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-geiser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-haskell-process = callPackage ({ auto-complete
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , haskell-mode
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "ac-haskell-process";
+        ename = "ac-haskell-process";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ac-haskell-process";
+          rev = "0362d4323511107ec70e7165cb612f3ab01b712f";
+          sha256 = "0m33v9iy3y37sicfmpx7kvmn8v1a8k6cs7d0v9v5k93p4d5ila41";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-haskell-process";
+          sha256 = "0kv4z850kv03wiax1flnrp6sgqja25j23l719w7rkr7ck110q8rw";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-haskell-process";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-helm = callPackage ({ auto-complete
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild
+                           , popup }:
+      melpaBuild {
+        pname = "ac-helm";
+        ename = "ac-helm";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "ac-helm";
+          rev = "f2110576b0eb35850a7f638c1a991a9fa0c8da3a";
+          sha256 = "1gw38phyaslpql7szvlpwgyfngdgd21f6lq406vq0gjwwmxgig34";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-helm";
+          sha256 = "16ajxlhcah5zbvywpc6l4l1arr308gjpgvdx6l1nrv2zvpckhlwq";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete helm popup ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-html = callPackage ({ auto-complete
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , web-completion-data }:
+      melpaBuild {
+        pname = "ac-html";
+        ename = "ac-html";
+        version = "0.31";
+        src = fetchFromGitHub {
+          owner = "zhangkaiyulw";
+          repo = "ac-html";
+          rev = "415a78c3b84855b0c0411832d21a0fb63239b184";
+          sha256 = "19v9515ixg22m7h7riix8w3vyhzax1m2pbwdirp59v532xn9b0cz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-html";
+          sha256 = "1vidmvylwwvraf8k63dvxv47ism49n6pp0f38l5rl4iaznhkdr84";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete web-completion-data ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-html-bootstrap = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , web-completion-data }:
+      melpaBuild {
+        pname = "ac-html-bootstrap";
+        ename = "ac-html-bootstrap";
+        version = "0.9.3";
+        src = fetchFromGitHub {
+          owner = "osv";
+          repo = "ac-html-bootstrap";
+          rev = "591e1e996c820da218ea1eee0a500c556769f128";
+          sha256 = "1zmjqnlbfchnb7n2v7ms7q06xma1lmf9ry3v6f4pfnwlmz5lsf3a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-html-bootstrap";
+          sha256 = "0z71m6xws0k9smhsswaivpikr64mv0wh6klnmi5cwhwcqas6kdi1";
+          name = "recipe";
+        };
+        packageRequires = [ web-completion-data ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-html-bootstrap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-html-csswatcher = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , web-completion-data }:
+      melpaBuild {
+        pname = "ac-html-csswatcher";
+        ename = "ac-html-csswatcher";
+        version = "0.1.7";
+        src = fetchFromGitHub {
+          owner = "osv";
+          repo = "ac-html-csswatcher";
+          rev = "dadc3c595cf1708291096c03987f1981f3cabc6b";
+          sha256 = "0p18wxyyc1jmcwx9y5i77s25v4jszv7cmm4bkwm4dzhkxd33kh1f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-html-csswatcher";
+          sha256 = "0jb9dnm2lxadrxssf0rjqw8yvvskcq4hys8c21shjyj3gkvwbfqn";
+          name = "recipe";
+        };
+        packageRequires = [ web-completion-data ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-html-csswatcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-inf-ruby = callPackage ({ auto-complete
+                               , fetchFromGitHub
+                               , fetchurl
+                               , inf-ruby
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ac-inf-ruby";
+        ename = "ac-inf-ruby";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ac-inf-ruby";
+          rev = "3e22b66d3d3e2712a0fe783b5cdd0583a0d4c318";
+          sha256 = "1acm13n59sdgvvzicscxzrr5j1x5sa5x4rc4cnkbwb28nw5a5ysm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-inf-ruby";
+          sha256 = "04jclf0yxz78x1fsaf5sh1p466947nqrcx337kyhqn0nkj3hplqr";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-inf-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-ispell = callPackage ({ auto-complete
+                             , cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ac-ispell";
+        ename = "ac-ispell";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-ispell";
+          rev = "a8c84f7f0b96dc091abc51b1698f24e9c994e6aa";
+          sha256 = "16qsj3wni4xhcrjx2rnxdzq6jb7jrl4bngi4an37vgdlrx3w8m6l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-ispell";
+          sha256 = "1vsy2qjh60n5lavivpqhhcpg5pk8zz2r0wy1sb65capn841zdi67";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-ispell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-mozc = callPackage ({ auto-complete
+                           , cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , mozc }:
+      melpaBuild {
+        pname = "ac-mozc";
+        ename = "ac-mozc";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "igjit";
+          repo = "ac-mozc";
+          rev = "4c6c8be4701010d9362184437c0f783e0335c631";
+          sha256 = "19cb8kq8gmrplkxil22ahvbyq5cng1l2vh2lrfiyqpjsap7zfjz5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-mozc";
+          sha256 = "1v3iiid8cq50i076q98ycks9m827xzncgxqwqs2rqhab0ncy3h0f";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib mozc ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-mozc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-octave = callPackage ({ auto-complete
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ac-octave";
+        ename = "ac-octave";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "ac-octave";
+          rev = "ffc12874320bbbde940e5d446898435e7da495f8";
+          sha256 = "1h6g44rl5xia1l7shvihrnxlg0b8xsgvas212d1nvybc572yvbbc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-octave";
+          sha256 = "1g5s4dk1rcgkjn17jfw6g201pw0vfhqcx1nhigmnizpnzy0man9z";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-octave";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-php = callPackage ({ ac-php-core
+                          , auto-complete
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , yasnippet }:
+      melpaBuild {
+        pname = "ac-php";
+        ename = "ac-php";
+        version = "2.0.6";
+        src = fetchFromGitHub {
+          owner = "xcwen";
+          repo = "ac-php";
+          rev = "f489da3ceb04ff6efd9da5c5f56d71f49966e1d4";
+          sha256 = "081v4srqzzwd8v07z013m756qrxll5fpzwf8km0686nc5gcg6q9l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-php";
+          sha256 = "1wqwwgdln98snlq5msdx94b7985krvqfn264hxs1h94r85kgn1ba";
+          name = "recipe";
+        };
+        packageRequires = [ ac-php-core auto-complete yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-php";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-php-core = callPackage ({ dash
+                               , emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , php-mode
+                               , popup
+                               , s
+                               , xcscope }:
+      melpaBuild {
+        pname = "ac-php-core";
+        ename = "ac-php-core";
+        version = "2.0.6";
+        src = fetchFromGitHub {
+          owner = "xcwen";
+          repo = "ac-php";
+          rev = "40250a537830981104022f9afdb6202eb2692b82";
+          sha256 = "12smcyc1gzgd3kxvas55n87biwc74ilnjfsg5rcjp0s10iiggkww";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-php-core";
+          sha256 = "0vk3jsxb7dgk5a6pap3bdqkqwpszil0rck1c3y0wyxrlj2y1jcvn";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f php-mode popup s xcscope ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-php-core";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-racer = callPackage ({ auto-complete
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , racer }:
+      melpaBuild {
+        pname = "ac-racer";
+        ename = "ac-racer";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-ac-racer";
+          rev = "4408c2d652dec0432e20c05e001db8222d778c6b";
+          sha256 = "01154kqzh3pjy57vxhv27nm69p85a1fwl7r95c7pzmzxgxigfz1p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-racer";
+          sha256 = "1vkvh8y3ckvzvqxj4i2k6jqri94121wbfjziybli74qba8dca4yp";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete emacs racer ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-racer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-rtags = callPackage ({ auto-complete
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , rtags }:
+      melpaBuild {
+        pname = "ac-rtags";
+        ename = "ac-rtags";
+        version = "2.20";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "7e6b6f21935eedbe4678ba91c5531ac162b51a5a";
+          sha256 = "12629d1s8rplhjh17n3bmgnkpscq4gljgyl84j8qyhh40dwq1qk0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-rtags";
+          sha256 = "1w9v32di9135mm598c4506gxf0xr5jyz8dyd9dhga5d60q7g9641";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ac-slime = callPackage ({ auto-complete
+                            , cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , slime }:
+      melpaBuild {
+        pname = "ac-slime";
+        ename = "ac-slime";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ac-slime";
+          rev = "df6c4e88b5ba2d15d47a651ecf7edc0986624112";
+          sha256 = "13yghv7p6c91fn8mrxbwrb6ldk5n3b6nj6a7pwsvks1q73i1pl88";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ac-slime";
+          sha256 = "0mk3k1lcbqa16xvsbgk28x09vzqyaidqaqpq934xdbrwhdgwgckg";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib slime ];
+        meta = {
+          homepage = "https://melpa.org/#/ac-slime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-flyspell = callPackage ({ avy
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ace-flyspell";
+        ename = "ace-flyspell";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "ace-flyspell";
+          rev = "044d38fb8eb390ef1f51cf92cfe5c4ffd103044c";
+          sha256 = "0yy7g2903v78a8pavhxi8c7vqbmifn2sjk84zhw5aygihp3d6vf0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-flyspell";
+          sha256 = "1zgywb90cg64nllbbk0x9ipm6znyc5yh7vkajrrnw06r5vabyp9y";
+          name = "recipe";
+        };
+        packageRequires = [ avy ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-flyspell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-isearch = callPackage ({ ace-jump-mode
+                               , avy
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm-swoop
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ace-isearch";
+        ename = "ace-isearch";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "tam17aki";
+          repo = "ace-isearch";
+          rev = "7e041d058492c5c35ec70de0e7c5586043e7e5ec";
+          sha256 = "0233ai62zhsy5yhv72016clygwp2pcg80y6kr4cjm2k1k2wwy7m9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-isearch";
+          sha256 = "0n8qf08z9n8c2sp5ks29nxcfks5mil1jj6wq348apda8safk36hm";
+          name = "recipe";
+        };
+        packageRequires = [ ace-jump-mode avy emacs helm-swoop ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-isearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-jump-buffer = callPackage ({ avy
+                                   , dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ace-jump-buffer";
+        ename = "ace-jump-buffer";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "ace-jump-buffer";
+          rev = "02797c22c10a817dbbdfbd8fddceeba6c4f0499a";
+          sha256 = "13wq92ia18q9vyhmvnz1grl1l18hxnaisb7hv13dhfc06alcsrw2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-jump-buffer";
+          sha256 = "0hkxa0ps0v1hwmjafqbnyr6rc4s0w95igk8y3w53asl7f5sj5mpi";
+          name = "recipe";
+        };
+        packageRequires = [ avy dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-jump-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-jump-helm-line = callPackage ({ avy
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "ace-jump-helm-line";
+        ename = "ace-jump-helm-line";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "ace-jump-helm-line";
+          rev = "8779050e4794279946892b6a156d0086554a9c9e";
+          sha256 = "1d4bxxcnjbdr6cjr3jmz2zrnzjv5pwrypbp4xqgqyv9rz02n7ac1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-jump-helm-line";
+          sha256 = "04q8wh6jskvbiq6y2xsp2ir23vgz5zw09rm127sgiqrmn0jc61b9";
+          name = "recipe";
+        };
+        packageRequires = [ avy helm ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-jump-helm-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-jump-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ace-jump-mode";
+        ename = "ace-jump-mode";
+        version = "2.0";
+        src = fetchFromGitHub {
+          owner = "winterTTr";
+          repo = "ace-jump-mode";
+          rev = "a62a6867811cd739dd98a5e00a2d2e17edfb5b71";
+          sha256 = "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-jump-mode";
+          sha256 = "0yk0kppjyblr5wamncrjm3ym3n8jcl0r0g0cbnwni89smvpngij6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ace-jump-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-jump-zap = callPackage ({ ace-jump-mode
+                                , dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ace-jump-zap";
+        ename = "ace-jump-zap";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "ace-jump-zap";
+          rev = "1a9bf779d8f9225ede9ec482b840942bb58111df";
+          sha256 = "0r875w4aq3p091hcrpkpqsivn1q9hmq2ppa1rvxzdaq0rhl9kfz4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-jump-zap";
+          sha256 = "07bkmly3lvlbby2m13nj3m1q0gcnwy5sas7d6ws6vr9jh0d36byb";
+          name = "recipe";
+        };
+        packageRequires = [ ace-jump-mode dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-jump-zap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-link = callPackage ({ avy
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ace-link";
+        ename = "ace-link";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "ace-link";
+          rev = "7b9bc8d916b60a501c32b63ce81f315486ad44e9";
+          sha256 = "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-link";
+          sha256 = "1jl805r2s3wa0xyhss1q28rcy6y2fngf0yfcrcd9wf8kamhpajk5";
+          name = "recipe";
+        };
+        packageRequires = [ avy ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-pinyin = callPackage ({ ace-jump-mode
+                              , avy
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pinyinlib }:
+      melpaBuild {
+        pname = "ace-pinyin";
+        ename = "ace-pinyin";
+        version = "0.2.5";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "ace-pinyin";
+          rev = "c444d8d6861dafd06dd41e694dc9db32652e3b7c";
+          sha256 = "1d2g873zwq78ggs47954lccmaky20746wg0gafyj93d1qyc3m8rn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-pinyin";
+          sha256 = "1b3asvzm3k66lsdkmlsgmnf8xlyic8zv294j1iahzkwm6bzqj8wd";
+          name = "recipe";
+        };
+        packageRequires = [ ace-jump-mode avy pinyinlib ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-pinyin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-popup-menu = callPackage ({ avy-menu
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ace-popup-menu";
+        ename = "ace-popup-menu";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "ace-popup-menu";
+          rev = "e7cc8bace9dda5c9fbe545c6fbd41c12679c3d7d";
+          sha256 = "1khqh5b9c7ass3q2gc04ayc8idanabkyfpaqvfnag063x16fv40c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-popup-menu";
+          sha256 = "1cq1mpv7v98bqrpsm598krq1741b6rwih71cx3yjifpbagrv4m5s";
+          name = "recipe";
+        };
+        packageRequires = [ avy-menu emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-popup-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ace-window = callPackage ({ avy
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ace-window";
+        ename = "ace-window";
+        version = "0.9.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "ace-window";
+          rev = "56ef753268de8dffebaa96607fb9f0246ebe9d0f";
+          sha256 = "0zx0d695nrh2xiw9ylzr10fd7chkcb6dvhw8fkcyavlyb34dj49y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ace-window";
+          sha256 = "1k0x8m1phmvgdxb5aj841iai9q96a5lfq8i4b5vnlbc3w888n3xa";
+          name = "recipe";
+        };
+        packageRequires = [ avy ];
+        meta = {
+          homepage = "https://melpa.org/#/ace-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ack-menu = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ack-menu";
+        version = "0.2.3";
+        src = fetchFromGitHub {
+          owner = "chumpage";
+          repo = "ack-menu";
+          rev = "37e9979eb65e3803fc00829377397b4e6f2bd059";
+          sha256 = "0hib4a8385q2czi1yqs0hwnva2xi7kw0bdfnrgha1hrl30rilp2f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/8ff331ed45e5b7697e4862e723408602ecc98bc7/recipes/ack-menu";
+          sha256 = "1d2kw04ndxji2qjcm1b65qnxpp08zx8gbia8bl6x6mnjb2isc2d9";
+          name = "ack-menu";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ack-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    actionscript-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "actionscript-mode";
+        ename = "actionscript-mode";
+        version = "7.2.2";
+        src = fetchFromGitHub {
+          owner = "austinhaas";
+          repo = "actionscript-mode";
+          rev = "fddd7220342d29e7eca734f6b798b7a2849717a5";
+          sha256 = "0zybch8hz3mj63i0pxynb4d76ywqcy7b4fsa4hh71c2kb0bnczb3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/actionscript-mode";
+          sha256 = "1dkiay9jmizvslji5kzab4dxm1dq0jm8ps7sjq6710g7a5aqdvwq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/actionscript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    activity-watch-mode = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , projectile
+                                       , request }:
+      melpaBuild {
+        pname = "activity-watch-mode";
+        ename = "activity-watch-mode";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "pauldub";
+          repo = "activity-watch-mode";
+          rev = "abbe2cd735177b94cbbc1cfa3918c2e433dac99e";
+          sha256 = "0a8m64qh5br4ksp5xsgbx4v4f6851ka3vs0bssrd36mqcwiqc7pp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/activity-watch-mode";
+          sha256 = "0k0ai6658gb43c4ylrq66zqzrfh6ksvkf0kxj2qx8a5a1aw9bd4d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs projectile request ];
+        meta = {
+          homepage = "https://melpa.org/#/activity-watch-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    adafruit-wisdom = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "adafruit-wisdom";
+        ename = "adafruit-wisdom";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "gonewest818";
+          repo = "adafruit-wisdom.el";
+          rev = "77a2e92d55a419055dd67fc85dc62fb3166d3b8d";
+          sha256 = "00bdhrzkyzkcayqhakk93fqyr6ciwswrizljcyx242am6x5fc77s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/adafruit-wisdom";
+          sha256 = "0ckh420cirspwg2yd5q9y1az03j2l1jzd67g8dpvqjkgdp485gad";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/adafruit-wisdom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    add-hooks = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "add-hooks";
+        ename = "add-hooks";
+        version = "3.1.1";
+        src = fetchFromGitHub {
+          owner = "nickmccurdy";
+          repo = "add-hooks";
+          rev = "a1043b7cdb1ea98055a2c99f8d37584a553ca362";
+          sha256 = "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/add-hooks";
+          sha256 = "09a5b3prznibkb5igfn8x3vsjrlkh3534zycs8g25g4li87mcb6p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/add-hooks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    add-node-modules-path = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "add-node-modules-path";
+        ename = "add-node-modules-path";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "codesuki";
+          repo = "add-node-modules-path";
+          rev = "6f7801b2c41e3711406b7e1654257ad5557f5bb3";
+          sha256 = "1pfgy1k7vp34k4zb9835y3x4jmf81na60vsf80wlgvfafwk170z6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/add-node-modules-path";
+          sha256 = "0gbl875fgqr5np6r4cs8njs6fil1qmy8a5wir88x78ybdwwxsmbl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/add-node-modules-path";
+          license = lib.licenses.free;
+        };
+      }) {};
+    addressbook-bookmark = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "addressbook-bookmark";
+        ename = "addressbook-bookmark";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "addressbook-bookmark";
+          rev = "ad3c73369b804a48803fdfdf2ab613e6220260de";
+          sha256 = "012kfqkmpagn8jrp09acpx631qmjim7b33j0pahv1fcqhin89pn6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/addressbook-bookmark";
+          sha256 = "15p00v4ndrsbadal0ss176mks4ynj39786bmrnil29b6sqibd43r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/addressbook-bookmark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    adoc-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , markup-faces
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "adoc-mode";
+        ename = "adoc-mode";
+        version = "0.6.6";
+        src = fetchFromGitHub {
+          owner = "sensorflo";
+          repo = "adoc-mode";
+          rev = "995785538489e573ad208f73c4e833ba60c5cfdb";
+          sha256 = "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/adoc-mode";
+          sha256 = "0jd3zr4zpb4qqn504azl0y02cryv7n9wphv64b0fbpipr7w5hm2c";
+          name = "recipe";
+        };
+        packageRequires = [ markup-faces ];
+        meta = {
+          homepage = "https://melpa.org/#/adoc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aes = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "aes";
+        ename = "aes";
+        version = "0.9";
+        src = fetchFromGitHub {
+          owner = "Sauermann";
+          repo = "emacs-aes";
+          rev = "b7d5da89c3443292e4f0b1c9d254d459933cf5af";
+          sha256 = "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aes";
+          sha256 = "11vl9x3ldrv7q7rd29xk4xmlvfxs0m6iys84f6mlgf00190l5r5v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/aes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ag = callPackage ({ cl-lib ? null
+                      , dash
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild
+                      , s }:
+      melpaBuild {
+        pname = "ag";
+        ename = "ag";
+        version = "0.47";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "ag.el";
+          rev = "b4b0e39b7fb706fc3208e238c2a7e517ebdb999c";
+          sha256 = "1ra5nrc4nvp41rcdc4nkjs9lk7131zd54v63c6lyi3zkg3dyl7im";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ag";
+          sha256 = "1r4ai09vdckkg4h4i7dp781qqmm4kky53p4q8azp3n2c78i1vz6g";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/ag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aggressive-indent = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "aggressive-indent";
+        ename = "aggressive-indent";
+        version = "1.9.0";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "aggressive-indent-mode";
+          rev = "d6778ae89cd2d40949aa076a43e327f7acff59c3";
+          sha256 = "0xya19w1bwpqrrqvmms0lfhqb168iv7j6kvnn49zbynnf9dhgr9w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aggressive-indent";
+          sha256 = "1qi8jbr28gax35siim3hnnkiy8pa2vcrzqzc6axr98wzny46x0i2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/aggressive-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ahk-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ahk-mode";
+        ename = "ahk-mode";
+        version = "1.5.6";
+        src = fetchFromGitHub {
+          owner = "ralesi";
+          repo = "ahk-mode";
+          rev = "bf3205efe7b7a40f3c8978f68f14ea3a939cffa8";
+          sha256 = "02nkcin0piv7s93c9plhy361dbqr78m0gd19myc7qb7gnm36kzpn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ahk-mode";
+          sha256 = "0jx5vhlfw5r6l4125bjjbf7dl1589ac6j419swx26k3p8p58d93r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ahk-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ahungry-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ahungry-theme";
+        ename = "ahungry-theme";
+        version = "1.10.0";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "color-theme-ahungry";
+          rev = "45bf75f17752c8e8dd4c8a4531c0aa419cdccb84";
+          sha256 = "03xypgq6vy7819r42g23kgn7p775bc0v9blzhi0zp5c61p4cw8v3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ahungry-theme";
+          sha256 = "0fhim0qscpqx9siprp3ax1azxzmqkzvrjx517d9bnd68z7xxbpqy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ahungry-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    airline-themes = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , powerline }:
+      melpaBuild {
+        pname = "airline-themes";
+        ename = "airline-themes";
+        version = "1.7";
+        src = fetchFromGitHub {
+          owner = "AnthonyDiGirolamo";
+          repo = "airline-themes";
+          rev = "bd9624a94618f4144762032a93549f53ffc1e7b3";
+          sha256 = "1rlszg7z5k8c6fmjk4sjgrc9xgcjc1jah6c7kdl9kypha7y8s4bq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/airline-themes";
+          sha256 = "0jkhb6nigyjmwqny7g59h4ssfy64vl3qnwcw46wnx5k9i73cjyih";
+          name = "recipe";
+        };
+        packageRequires = [ powerline ];
+        meta = {
+          homepage = "https://melpa.org/#/airline-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alan-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , flycheck
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "alan-mode";
+        ename = "alan-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "M-industries";
+          repo = "AlanForEmacs";
+          rev = "0089e7c874c6d35e55be6ecd479ada2b97688a1f";
+          sha256 = "0mw9ja0f2jsj0vqk1zqwpzxm9j2yfahiibd8xkhx0wan0dggx592";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alan-mode";
+          sha256 = "1528rh26kr9zj43djbrfb7vmq78spfay3k3ps5apc580ipx1a4hg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/alan-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alchemist = callPackage ({ company
+                             , dash
+                             , elixir-mode
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , pkg-info }:
+      melpaBuild {
+        pname = "alchemist";
+        ename = "alchemist";
+        version = "1.8.2";
+        src = fetchFromGitHub {
+          owner = "tonini";
+          repo = "alchemist.el";
+          rev = "34caeed1bd231c7dfa8d2b9aa5c5de2b2a059601";
+          sha256 = "1cci0sq568ghx6x7my96m0iiwvqz2f4dh6k3gn3mmfyvi7bmrpww";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alchemist";
+          sha256 = "18jxw0zb7y34qbm4bcpfpb2656f0h9grmrbfskgp4ra4q5q3n369";
+          name = "recipe";
+        };
+        packageRequires = [ company dash elixir-mode emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/alchemist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alda-mode = callPackage ({ emacs
+                             , fetchFromGitLab
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "alda-mode";
+        ename = "alda-mode";
+        version = "0.2.0";
+        src = fetchFromGitLab {
+          owner = "jgkamat";
+          repo = "alda-mode";
+          rev = "97c20b1fd9ad3f138e1100e3a837d05108c4c564";
+          sha256 = "1wsvs756cbwbxlaxij352kman7196m39684m6sqnfb685cfrwzdj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alda-mode";
+          sha256 = "0qvaxh4392rpxikylcnn31z13wabaydj5aa4jyn499ggqdz7liw9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/alda-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alect-themes = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "alect-themes";
+        ename = "alect-themes";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "alect-themes";
+          rev = "1812abbe0079d1075525d9fb2da6fcfec7db3766";
+          sha256 = "0sl2njnhm37cya06y39ls8p3zwpjwyv1pd7w3yfk5frz24vaxlcq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alect-themes";
+          sha256 = "04fq65qnxlvl5nc2q037c6yb4nf422dfw2913gv6zfh9rdmxsks8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/alect-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    alert = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , gntp
+                         , lib
+                         , log4e
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "alert";
+        ename = "alert";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "alert";
+          rev = "b301478e34a5c8bd27c17fc7605e6dd576e97935";
+          sha256 = "1vpc3q40m6dcrslki4bg725j4kv6c6xfxwjjl1ilg7la49fwwf26";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/alert";
+          sha256 = "0x3cvczq09jvshz435jw2fjm69457x2wxdvvbbjq46nfnybhi118";
+          name = "recipe";
+        };
+        packageRequires = [ gntp log4e ];
+        meta = {
+          homepage = "https://melpa.org/#/alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    all-the-icons = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , memoize }:
+      melpaBuild {
+        pname = "all-the-icons";
+        ename = "all-the-icons";
+        version = "3.2.0";
+        src = fetchFromGitHub {
+          owner = "domtronn";
+          repo = "all-the-icons.el";
+          rev = "52d1f2d36468146c93aaf11399f581401a233306";
+          sha256 = "1sdl33117lccznj38021lwcdnpi9nxmym295q6y460y4dm4lx0jn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/all-the-icons";
+          sha256 = "00ba4gkfvg38l4s0gsb4asvv1hfw9yjl2786imybzy7bkg9f9x3q";
+          name = "recipe";
+        };
+        packageRequires = [ emacs memoize ];
+        meta = {
+          homepage = "https://melpa.org/#/all-the-icons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    all-the-icons-ivy = callPackage ({ all-the-icons
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , ivy
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "all-the-icons-ivy";
+        ename = "all-the-icons-ivy";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "asok";
+          repo = "all-the-icons-ivy";
+          rev = "aa791d6b0055bce3ac68970a8ef6abf0726edf0f";
+          sha256 = "0mmimibzn5ncy4rpyq6vkk2m2qlki54nf8yirphabh4m2zf9marg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/all-the-icons-ivy";
+          sha256 = "1xv67gxd2sqj6zld4i3qcid0x5qsbd7baz55m93y1ivdqi7x7gr2";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/all-the-icons-ivy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    amd-mode = callPackage ({ emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , js2-mode
+                            , js2-refactor
+                            , lib
+                            , makey
+                            , melpaBuild
+                            , projectile
+                            , s
+                            , seq }:
+      melpaBuild {
+        pname = "amd-mode";
+        ename = "amd-mode";
+        version = "2.8";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "amd-mode.el";
+          rev = "977b53e28b3141408fff4814be8b67ee23650cac";
+          sha256 = "0m80bwar80qsga735cqrn6rbvfz4w9a036zh8inhsigylv3vwqjv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/amd-mode";
+          sha256 = "17ry6vm5xlmdfs0mykdyn05cik38yswq5axdgn8hxrvvb6f58d06";
+          name = "recipe";
+        };
+        packageRequires = [
+          emacs
+          f
+          js2-mode
+          js2-refactor
+          makey
+          projectile
+          s
+          seq
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/amd-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    amx = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , s }:
+      melpaBuild {
+        pname = "amx";
+        ename = "amx";
+        version = "3.2";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "amx";
+          rev = "09e919512692dc31df079ad2cd1a3ca3ac4f1949";
+          sha256 = "180841qv24z6kn3qry5216ija1h50ymm4kcmcxg4pc47bhzcjn1h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/amx";
+          sha256 = "1ikhjvkca0lsb9j719yf6spg6nwc0qaydkd8aax162sis7kp9fap";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/amx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anaconda-mode = callPackage ({ dash
+                                 , emacs
+                                 , f
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , pythonic
+                                 , s }:
+      melpaBuild {
+        pname = "anaconda-mode";
+        ename = "anaconda-mode";
+        version = "0.1.12";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "anaconda-mode";
+          rev = "1879842b0b3772e48e558340a5667fad42526a57";
+          sha256 = "00plc9jsvzh151xmva6xdpfqyxcvy3z3vnsn4g8wpw94n647lrxx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anaconda-mode";
+          sha256 = "0gz16aam4zrm3s9ms13h4qcdflf55506kgkpyncq3bi54cvv8n1r";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f pythonic s ];
+        meta = {
+          homepage = "https://melpa.org/#/anaconda-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anaphora = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "anaphora";
+        ename = "anaphora";
+        version = "1.0.4";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "anaphora";
+          rev = "3b2da3f759b244975852e79721c4a2dbad3905cf";
+          sha256 = "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anaphora";
+          sha256 = "1wb7fb3pc4gxvpjlm6gjbyx0rbhjiwd93qwc4vfw6p865ikl19y2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/anaphora";
+          license = lib.licenses.free;
+        };
+      }) {};
+    android-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "android-mode";
+        ename = "android-mode";
+        version = "0.5.1";
+        src = fetchFromGitHub {
+          owner = "remvee";
+          repo = "android-mode";
+          rev = "f8cabafaa266b56fcf4b3c6942b3ae062735251a";
+          sha256 = "0npx54w565mkxkgkpv02dgmfc44i1256p0w331pf3nfxq145xh27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/android-mode";
+          sha256 = "1nqrvq411yg4b9xb5cvc7ai7lfalwc2rfhclzprvymc4vxh6k4cc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/android-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    angular-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "angular-mode";
+        ename = "angular-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "rudolfolah";
+          repo = "angularjs-mode";
+          rev = "026558260eb2890c72df6a59ae8762669772282b";
+          sha256 = "0ljwaccb0jrp7zrnkp0383185vg3r9pf324al72d445syff5pa6y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/angular-mode";
+          sha256 = "0pq4lyhppzi806n1k07n0gdhr8z8z71ri12my0pl81rl5j2z69l2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/angular-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    angular-snippets = callPackage ({ dash
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "angular-snippets";
+        ename = "angular-snippets";
+        version = "0.2.3";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "angular-snippets.el";
+          rev = "8f737c2cf5fce758a7a3833ebad2952b5398568d";
+          sha256 = "0h9i0iimanbvhbqy0cj9na335rs961pvhxjj4k8y53qc73xm102a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/angular-snippets";
+          sha256 = "057phgizn1c6njvdfigb23ljs31knq247gr0rcpqfrdaxsnnzm5c";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/angular-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anki-mode = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , markdown-mode
+                             , melpaBuild
+                             , request
+                             , s }:
+      melpaBuild {
+        pname = "anki-mode";
+        ename = "anki-mode";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "anki-mode";
+          rev = "06dd1bd49b7a2b43cf9b744dd5caf67809f39d74";
+          sha256 = "0ryyyihvvrcipj2bkx24cx1ibgcymnsbn79ibvmhb3wbad3hr072";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anki-mode";
+          sha256 = "1d429ws6kmswcyk0dnb303z01kq475n60a520hj258x23vp8802q";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs markdown-mode request s ];
+        meta = {
+          homepage = "https://melpa.org/#/anki-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    annotate = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "annotate";
+        ename = "annotate";
+        version = "0.4.7";
+        src = fetchFromGitHub {
+          owner = "bastibe";
+          repo = "annotate.el";
+          rev = "e6af7f8ef7d241fdc9f866d57dce24beb4bb6b87";
+          sha256 = "19a419rnqqsmvrcl2vwy3gl7mvbfg669vyin2h2xpm56rxsinvy1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/annotate";
+          sha256 = "1ajykgara2m713blj2kfmdz12fzm8jw7klyakkyi6i3c3a9m44jy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/annotate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    annoying-arrows-mode = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "annoying-arrows-mode";
+        ename = "annoying-arrows-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "annoying-arrows-mode.el";
+          rev = "fe59f3fd464e7a87cc43fb8a1f135b3bdf8a2fb3";
+          sha256 = "1ppq3kszzj2fgr7mwj565bjs8bs285ymy384cnnw7paddgcr9z02";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/annoying-arrows-mode";
+          sha256 = "1vswlfypn6ijn0wwa3dsqkz5n3pillpmli2ha4q9snhd3a667vyh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/annoying-arrows-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ansi = callPackage ({ dash
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "ansi";
+        ename = "ansi";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ansi.el";
+          rev = "a042c5954453bab9a74177e2b78ad17a824caebc";
+          sha256 = "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ansi";
+          sha256 = "0b5xnv6z471jm53g37njxin6l8yflsgm80y4wxahfgy8apipcq89";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/ansi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ansible = callPackage ({ f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "ansible";
+        ename = "ansible";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "emacs-ansible";
+          rev = "e9b9431738de4808d8ef70871069f68885cc0d98";
+          sha256 = "03d240jngxw51ybrsjw8kdxygrr0ymdckzwga2jr1bqf26v559j2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ansible";
+          sha256 = "1xdc05fdglqfbizra6s1zl6knnvaq526dkxqnw9g7w269j8f4z8g";
+          name = "recipe";
+        };
+        packageRequires = [ f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ansible";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ansible-doc = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ansible-doc";
+        ename = "ansible-doc";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "ansible-doc.el";
+          rev = "bc8128a85a79b14f4a121105d87a5eddc33975ad";
+          sha256 = "0z3y69sfzka764wjbx31dywdq4d6bfsafv2gmmbpmxqmwfmy8sz4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ansible-doc";
+          sha256 = "03idvnn79fr9id81aivkm7g7cmlsg0c520wcq4da8g013xvi342w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ansible-doc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ansible-vault = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ansible-vault";
+        ename = "ansible-vault";
+        version = "0.3.4";
+        src = fetchFromGitHub {
+          owner = "zellio";
+          repo = "ansible-vault-mode";
+          rev = "57cf7e6da30250587c28ebf592d7bca9a3bae1df";
+          sha256 = "1m9r3vicmljypq6mhgr86lzgi26dnnlp7g0jbl9bjdk48xfg79wb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ansible-vault";
+          sha256 = "0pmsvpc866rgcajb2ihhb62g3rwhda7vvq2kxkvr566y609vv021";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ansible-vault";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anti-zenburn-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "anti-zenburn-theme";
+        ename = "anti-zenburn-theme";
+        version = "2.5.1";
+        src = fetchFromGitHub {
+          owner = "m00natic";
+          repo = "anti-zenburn-theme";
+          rev = "c80cc51bb1aaf11dd53b9d08e01d61bc9b32622f";
+          sha256 = "1c97d2jkh7iawgsbcg19gha9ffnxypbcfz0sgcsgf9vy4bvnc350";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anti-zenburn-theme";
+          sha256 = "1sp9p6m2jy4m9fdn1hz25cmasy0mwwgn46qmvm92i56f5x6jlzzk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/anti-zenburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anyins = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "anyins";
+        ename = "anyins";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "antham";
+          repo = "anyins";
+          rev = "1fa85deff82f1dfbd7a5ae89ad427c2cd417f9af";
+          sha256 = "1v5s43myf8vhgyq64frlbcn87728za7hc9q2v7b2x7h2r6zz6fxr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anyins";
+          sha256 = "0ncf3kn8rackcidkgda2zs60km3hx87rwr9daj7ksmbb6am09s7c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/anyins";
+          license = lib.licenses.free;
+        };
+      }) {};
+    anzu = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "anzu";
+        ename = "anzu";
+        version = "0.62";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-anzu";
+          rev = "3328619fec138862302bbe1b9acf2eea624a4c5e";
+          sha256 = "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/anzu";
+          sha256 = "181hzwy9bc0zfhax26p20q9cjibrmi9ngps5fa3ja5g6scxfs9g1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/anzu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apache-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "apache-mode";
+        ename = "apache-mode";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "apache-mode";
+          rev = "0906559e0cb2997405d98ea6b2195954e3935d3b";
+          sha256 = "0vfyi34qcwkz9975cq5hin1p2zyy3h05fni4f93xyrcs31zvmk22";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apache-mode";
+          sha256 = "0wzfx3kaiwvya30ihq3vpdhy6znkzf25w5x43x457ifdn2vrh9zi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/apache-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apib-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , markdown-mode
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "apib-mode";
+        ename = "apib-mode";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "w-vi";
+          repo = "apib-mode";
+          rev = "6cc7c6f21b8e415b1718bb6a07ab2182e9e9dde6";
+          sha256 = "1717f78kaqkmbhfwb9kzsv5wi2zabcbwb4wh1jklhcaalvmk3z7d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apib-mode";
+          sha256 = "0y3n0xmyc4gkypq07v4sp0i6291qaj2m13zkg6mxp61zm669v2fb";
+          name = "recipe";
+        };
+        packageRequires = [ markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/apib-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apiwrap = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "apiwrap";
+        ename = "apiwrap";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "apiwrap.el";
+          rev = "e4c9c57d6620a788ec8a715ff1bb50542edea3a6";
+          sha256 = "0xpb8mmssajy42r2h1m9inhv1chx19wkp5p0p63nwpk7mhjj8bis";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apiwrap";
+          sha256 = "0n50n1n5pvcgcp1gmna3ci36pnbanjdbjpgv7zyarlb80hywbiyw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/apiwrap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apples-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "apples-mode";
+        ename = "apples-mode";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "tequilasunset";
+          repo = "apples-mode";
+          rev = "fac47b6255e79a373c5d5e1abe66ea5d74588e9f";
+          sha256 = "13j2r4nx2x6j3qx50d5rdnqd8nl5idxdkhizsk7ccz3v2607fbyy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apples-mode";
+          sha256 = "05ssnxs9ybc26jhr69xl9jpb41bz1688minmlc9msq2nvyfnj97s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/apples-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aproject = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "aproject";
+        ename = "aproject";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "vietor";
+          repo = "aproject";
+          rev = "3c7d23c341862dfd77fd0a64775df12ddb44ab54";
+          sha256 = "1wyz8jvdy4m0cn75mm3zvxagm2gl10q51479f91gnqv14b4rndfc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aproject";
+          sha256 = "0v3gx2mff2s7knm69y253pm1yr4svy8w00pqbn1chrvymb62jhp2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/aproject";
+          license = lib.licenses.free;
+        };
+      }) {};
+    apropospriate-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "apropospriate-theme";
+        ename = "apropospriate-theme";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "apropospriate-theme";
+          rev = "0d918da74a7a225fe5a586e26f5d834e579c5323";
+          sha256 = "0hqsq7y89crcmqcfbgn885dlvj7f7b0zd9q6adbhyscphk7kasjw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/apropospriate-theme";
+          sha256 = "10bj2bsi7b104m686z8mgvbh493liidsvivxfvfxzbndc8wyjsw9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/apropospriate-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    archive-rpm = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "archive-rpm";
+        ename = "archive-rpm";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "legoscia";
+          repo = "archive-rpm";
+          rev = "59f83caebbd2f92fd634f6968e6d17b50ffa3dc7";
+          sha256 = "11ssqaax4jl7r3z5agzmc74sjsfvl0m3xvp015ncqzpzysla47g3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/archive-rpm";
+          sha256 = "0s53zbn71lb008gw3f0b5w4q0pw0vgiqbffgnyib24sh03ijl7z7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/archive-rpm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    artbollocks-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "artbollocks-mode";
+        ename = "artbollocks-mode";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "sachac";
+          repo = "artbollocks-mode";
+          rev = "583c7048a1b09cd79554423d5115f5ddd129d190";
+          sha256 = "133c1n4ra7z3vb6y47400y71a6ac19pyji0bgd4kr9fcbx0flx91";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/artbollocks-mode";
+          sha256 = "0dlnxicn6nzyiz44y92pbl4nzr9jxfb9a99wacjrwq2ahdrwhhjp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/artbollocks-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    arview = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "arview";
+        ename = "arview";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "afainer";
+          repo = "arview";
+          rev = "5437b4221b64b238c273a651d4792c577dba6d45";
+          sha256 = "1yvirfmvf6v5khl7zhx2ddv9bbxnx1qhwfzi0gy2nmbxlykb6s2j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/arview";
+          sha256 = "0d935lj0x3rbar94l7288xrgbcp1wmz6r2l0b7i89r5piczyiy1y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/arview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    asilea = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "asilea";
+        ename = "asilea";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "asilea";
+          rev = "2aab1cc63b64ef08d12e84fd7ba5c94065f6039f";
+          sha256 = "1s973vzivibaqjb8acn4ylrdasxh17jcfmmvqp4wm05nwhg75597";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/asilea";
+          sha256 = "1lb8nr6r6yy06m4pxg8w9ja4zv8k5xwhl95v2wv95y1qwhgnwg3j";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/asilea";
+          license = lib.licenses.free;
+        };
+      }) {};
+    assess = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , m-buffer
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "assess";
+        ename = "assess";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "assess";
+          rev = "87118057b3ae0e6542fa5e22050eb44d6efe8baa";
+          sha256 = "0cilb32zr38x9kfzfyr1ciag5pzbgp1dk62r7lhn8dxc2ip6f11j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/assess";
+          sha256 = "0xj3f48plwxmibax00qn15ya7s0h560xzwr8nkwl5r151v1mc9rr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs m-buffer ];
+        meta = {
+          homepage = "https://melpa.org/#/assess";
+          license = lib.licenses.free;
+        };
+      }) {};
+    async = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "async";
+        ename = "async";
+        version = "1.9.3";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "emacs-async";
+          rev = "caad15ce64c1aac5e17d480c59ee6c85ebcb6bb2";
+          sha256 = "1zsnb6dy8p6y68xgidv3dfxaga4biramfw8fq7wac0sc50vc98vq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/async";
+          sha256 = "0s2qrmkqqfgi1ilzbj0rfk27f89p4dycdl1lqkbsm23j0zya53w4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/async";
+          license = lib.licenses.free;
+        };
+      }) {};
+    atom-one-dark-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "atom-one-dark-theme";
+        ename = "atom-one-dark-theme";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "jonathanchu";
+          repo = "atom-one-dark-theme";
+          rev = "c2ae343971f8cda7f5b5392552ce9281f52e53de";
+          sha256 = "1xyn8qiikng6vf5rbpfqz9ac10c69aip0w6v9l46w0qxsy8svyaj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/atom-one-dark-theme";
+          sha256 = "0wwnkhq7vyysqiqcxc1jsn98155ri4mf4w03k7inl1f8ffpwahvw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/atom-one-dark-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    atomic-chrome = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , let-alist
+                                 , lib
+                                 , melpaBuild
+                                 , websocket }:
+      melpaBuild {
+        pname = "atomic-chrome";
+        ename = "atomic-chrome";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "alpha22jp";
+          repo = "atomic-chrome";
+          rev = "5518562aed5b6897a292fc5048a8f590e6047f30";
+          sha256 = "1javrl1aa6hv286hk20yc3h4gvg21a2hagkx0z26g97h4jzb6m24";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/atomic-chrome";
+          sha256 = "0dx12mjdc4vhbvrcl61a7j247mgs71vvy0qqj6czbpfawfl46am9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist websocket ];
+        meta = {
+          homepage = "https://melpa.org/#/atomic-chrome";
+          license = lib.licenses.free;
+        };
+      }) {};
+    attrap = callPackage ({ dash
+                          , emacs
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , flycheck
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "attrap";
+        ename = "attrap";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "jyp";
+          repo = "attrap";
+          rev = "a971acb251e343d4c6b0253f69dcce0c2cee0fac";
+          sha256 = "0p93y151730ga7v9xa5gkp306s32qw53086i829fcbxf83c2wslv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/attrap";
+          sha256 = "1gxnrlsn9xcnnx0nhjxnhrz9bdpk2kpzjhj8jhjmwws9y361fimh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f flycheck s ];
+        meta = {
+          homepage = "https://melpa.org/#/attrap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auctex-latexmk = callPackage ({ auctex
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "auctex-latexmk";
+        ename = "auctex-latexmk";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "auctex-latexmk";
+          rev = "64967712b1bbfac8069aa5940fddef938a692a1a";
+          sha256 = "0syd65b6x6lz6as5ih5pldmwgbmq0v3d9pay2n04vqrvsij6m3qy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auctex-latexmk";
+          sha256 = "1rdlgkiwlgm06i1gjxcfciz6wgdskfhln8qhixyfxk7pnz0ax327";
+          name = "recipe";
+        };
+        packageRequires = [ auctex ];
+        meta = {
+          homepage = "https://melpa.org/#/auctex-latexmk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aurel = callPackage ({ bui
+                         , dash
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "aurel";
+        ename = "aurel";
+        version = "0.9";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "aurel";
+          rev = "fc7ad208f43f8525f84a18941c9b55f956df8961";
+          sha256 = "0mcbw8p4wrnnr39wzkfz9kc899w0k1jb00q1926mchf202cmnz94";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aurel";
+          sha256 = "13zyi55ksv426pcksbm3l9s6bmp102w7j1xbry46bc48al6i2nnl";
+          name = "recipe";
+        };
+        packageRequires = [ bui dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/aurel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    aurora-config-mode = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "aurora-config-mode";
+        ename = "aurora-config-mode";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "bdd";
+          repo = "aurora-config-mode.el";
+          rev = "0a7ca7987c3a0824e25470389c7d25c337a81593";
+          sha256 = "0ns1xhpk1awbj3kv946dv11a99p84dhm54vjk72kslxwx42nia28";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/aurora-config-mode";
+          sha256 = "1hpjwidqmjxanijsc1imc7ww9abbylmkin1p0846fbz1hz3a603c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/aurora-config-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auth-source-pass = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "auth-source-pass";
+        ename = "auth-source-pass";
+        version = "4.0.2";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "auth-password-store";
+          rev = "5822a35fa8cb74b8fc34600e82dbba1d341ce745";
+          sha256 = "0qkyqnfx596s0ycavm4ri0nbzmy2c6g7ifgql798p0pwwjgbsjyy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auth-source-pass";
+          sha256 = "0icwdwz2zy3f9ynksr81pgq482iapsbx8lpyssiklyw0xgd1k8ak";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/auth-source-pass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-compile = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , packed }:
+      melpaBuild {
+        pname = "auto-compile";
+        ename = "auto-compile";
+        version = "1.4.3";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "auto-compile";
+          rev = "6ce4255ab9a0b010ef8414c5bd9a6d6d9eea012f";
+          sha256 = "013vw4sgw6hpz7kskilndv7i7ik40asrkgicghjbygwk0lj5ran3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-compile";
+          sha256 = "08k9wqk4yysps8n5n50v7lpadwsnm553pv9p7m242fwbgbsgz6nf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs packed ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-compile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , popup }:
+      melpaBuild {
+        pname = "auto-complete";
+        ename = "auto-complete";
+        version = "1.5.1";
+        src = fetchFromGitHub {
+          owner = "auto-complete";
+          repo = "auto-complete";
+          rev = "0655b7f1e6c0f8475adc55f2b86404a877f26a77";
+          sha256 = "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete";
+          sha256 = "1c4ij5bnclg94jdzhkqvq2vxwv6wvs051mbki1ibjm5f2hlacvh3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib popup ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-clang-async = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-clang-async";
+        ename = "auto-complete-clang-async";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "Golevka";
+          repo = "emacs-clang-complete-async";
+          rev = "5eb63c8a1e4ca3af124baf0f8f801b949888f9b8";
+          sha256 = "09f8hqs9n13lkb7b352ig07b9xm1w0mbbnqfy2s5cw4cppmakf2n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-clang-async";
+          sha256 = "1jj0jn1v3070g7g0j5gvpybv145kki8nsjxqb8fjf9qag8ilfkjh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-clang-async";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-exuberant-ctags = callPackage ({ auto-complete
+                                                 , fetchFromGitHub
+                                                 , fetchurl
+                                                 , lib
+                                                 , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-exuberant-ctags";
+        ename = "auto-complete-exuberant-ctags";
+        version = "0.0.7";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "auto-complete-exuberant-ctags";
+          rev = "ff6121ff8b71beb5aa606d28fd389c484ed49765";
+          sha256 = "1fqgyg986fg1dzac5wa97bx82mfddqb6qrfnpr3zksmw3vgykxr0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-exuberant-ctags";
+          sha256 = "1i2s3ycc8jafkzdsz3kbvx1hh95ydi5s6rq6n0wzw1kyy3km35gd";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-exuberant-ctags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-nxml = callPackage ({ auto-complete
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "auto-complete-nxml";
+        ename = "auto-complete-nxml";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "auto-complete-nxml";
+          rev = "ac7b09a23e45f9bd02affb31847263de4180163a";
+          sha256 = "18bf1kw85mab0zp7rn85cm1nxjxg5c1dmiv0j0mjwzsv8an4px5y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-nxml";
+          sha256 = "0viscr5k1carn9vhflry16kgihr6fvh6h36b049pgnk6ww085k6a";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-nxml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-pcmp = callPackage ({ auto-complete
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , log4e
+                                      , melpaBuild
+                                      , yaxception }:
+      melpaBuild {
+        pname = "auto-complete-pcmp";
+        ename = "auto-complete-pcmp";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "auto-complete-pcmp";
+          rev = "dc5c0af834d327dd686d74a4171e5d9170007a6c";
+          sha256 = "0ygak7hypc27d0wvciksnmg8c5njw2skf1ml60vs63a1krkax63i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-pcmp";
+          sha256 = "1mpgkwj8jwpvxphlm6iaprwjrldmihbgg97jav0fbm1kjnm4azna";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-pcmp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-complete-sage = callPackage ({ auto-complete
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , sage-shell-mode }:
+      melpaBuild {
+        pname = "auto-complete-sage";
+        ename = "auto-complete-sage";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "stakemori";
+          repo = "auto-complete-sage";
+          rev = "84f808aea247af41f90c872bcfde5edc61ba0974";
+          sha256 = "1rhcgpqdw5v2ghsjsaw0xi9r5vyvdr3mwm8mr0kimqcv4nd4ifn0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-complete-sage";
+          sha256 = "02sxbir3arvmnkvxgndlkln9y05jnlv6i8czd6a0wcxk4nj43lq1";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete sage-shell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-complete-sage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-dictionary = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "auto-dictionary";
+        ename = "auto-dictionary";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "auto-dictionary-mode";
+          rev = "0e3567a81f7bb0ad53ed9f20c7d3d1ac40c26ad1";
+          sha256 = "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-dictionary";
+          sha256 = "1va485a8lxvb3507kr83cr6wpssxnf8y4l42mamn9daa8sjx3q16";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-dictionary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-indent-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "auto-indent-mode";
+        ename = "auto-indent-mode";
+        version = "0.126";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "auto-indent-mode.el";
+          rev = "ad7032ee058a74405d04d775b0b384351536bc53";
+          sha256 = "1hlsgsdxpx42kmqkjgy9b9ldz5i4dbi879v87pjd2qbkj8iywb6y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-indent-mode";
+          sha256 = "1nk78p8lqs8cx90asfs8iaqnwwyy8fi5bafaprm9c0nrxz299ibz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/auto-indent-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-minor-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "auto-minor-mode";
+        ename = "auto-minor-mode";
+        version = "20180527.1";
+        src = fetchFromGitHub {
+          owner = "joewreschnig";
+          repo = "auto-minor-mode";
+          rev = "c62f4e04c7b73835c399f0348bea0ade2720bcbb";
+          sha256 = "0vqqy6nbb884h8qhzqvjycvfqbm9pbhqxr3dlxrhfx8m6c3iasq1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-minor-mode";
+          sha256 = "1dpdylrpw1pvlmhh229b3lqs07drx9kdhw4vcv5a48qah14dz6qa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-package-update = callPackage ({ dash
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "auto-package-update";
+        ename = "auto-package-update";
+        version = "1.6.1";
+        src = fetchFromGitHub {
+          owner = "rranelli";
+          repo = "auto-package-update.el";
+          rev = "cdef79f9fc6f8347fdd05664978fb9a948ea0410";
+          sha256 = "05llpa6g4nb4qswmcn7j3bs7hnmkrkax7hsk7wvklr0wrljyg9a2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-package-update";
+          sha256 = "0fdcniq5mrwbc7yvma4088r0frdfvc2ydfil0s003faz0nrjcp8k";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-package-update";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-shell-command = callPackage ({ deferred
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , popwin }:
+      melpaBuild {
+        pname = "auto-shell-command";
+        ename = "auto-shell-command";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "ongaeshi";
+          repo = "auto-shell-command";
+          rev = "59d4abce779a3ce3e920592bf5696b54b2e192c7";
+          sha256 = "1h8zsgw30axprs7a5kkygbhvilillzazxgqz01ng36il65fi28s6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-shell-command";
+          sha256 = "1i78fh72i8yv91rnabf0vs78r43qrjkr36hndmn5ya2xs3b1g41j";
+          name = "recipe";
+        };
+        packageRequires = [ deferred popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-shell-command";
+          license = lib.licenses.free;
+        };
+      }) {};
+    auto-yasnippet = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yasnippet }:
+      melpaBuild {
+        pname = "auto-yasnippet";
+        ename = "auto-yasnippet";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "auto-yasnippet";
+          rev = "5cc54edbe03c0061bf69883a3e39d3bb16019e0f";
+          sha256 = "0n3r7j83csby2s7284hy5pycynazyrkljxkn6xqn08gvxbbbdpdq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/auto-yasnippet";
+          sha256 = "02281gyy07cy72a29fjsixg9byqq3izb9m1jxv98ni8pcy3bpsqa";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/auto-yasnippet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autodisass-java-bytecode = callPackage ({ fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "autodisass-java-bytecode";
+        ename = "autodisass-java-bytecode";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "gbalats";
+          repo = "autodisass-java-bytecode";
+          rev = "3d61dbe266133c950b39e880f78d142751c7dc4c";
+          sha256 = "1pf2mwnicj5x2kksxwmrzz2vfxj9y9r6rzgc1fl8028mfrmrmg8s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autodisass-java-bytecode";
+          sha256 = "1k19nkbxnysm3qkpdhz4gv2x9nnrp94xl40x84q8n84s6xaan4dc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/autodisass-java-bytecode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autodisass-llvm-bitcode = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "autodisass-llvm-bitcode";
+        ename = "autodisass-llvm-bitcode";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "gbalats";
+          repo = "autodisass-llvm-bitcode";
+          rev = "14bb1bfe2be3b04d6e0c87a7a9d1e88ce15506d0";
+          sha256 = "1hyp49bidwc53cr25wwwyzcd0cbbqzxkfcpnccimphv24qfsai85";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autodisass-llvm-bitcode";
+          sha256 = "0bh73nzll9jp7kiqfnb5dwkipw85p3c3cyq58s0nghig02z63j01";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/autodisass-llvm-bitcode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autopair = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "autopair";
+        ename = "autopair";
+        version = "0.6.1";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "autopair";
+          rev = "2d1eb81d12f71248ad305e70cceddf08d4fe2b39";
+          sha256 = "0g6kd1r0wizamw26bhp5jkvpsd98rcybkfchc622b9v5b89a07nq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autopair";
+          sha256 = "0l2ypsj3dkasm0lj9jmnaqjs3rv97ldfw8cmayv77mzfd6lhjmh3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/autopair";
+          license = lib.licenses.free;
+        };
+      }) {};
+    autothemer = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "autothemer";
+        ename = "autothemer";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "jasonm23";
+          repo = "autothemer";
+          rev = "8c467f57571c154129d660dfccebd151c998f2d9";
+          sha256 = "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/autothemer";
+          sha256 = "0wahmbihyr3dx4lgiwi7041gvmmqlzlv7ss25fw90srs9n2h05gj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/autothemer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avy = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "avy";
+        ename = "avy";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "avy";
+          rev = "369af594e5ea28be1d91b22753aace16baadc046";
+          sha256 = "0rq9ab264565z83cly743nbhrd9m967apmnlhqr1gy8dm4hcy7nm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avy";
+          sha256 = "0gjq79f8jagbngp0shkcqmwhisc3hpgwfk34kq30nb929nbnlmag";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/avy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avy-menu = callPackage ({ avy
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "avy-menu";
+        ename = "avy-menu";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "avy-menu";
+          rev = "71b71e64900d0637e17013781042e086e9bf56e7";
+          sha256 = "1mxrq2fpx3qa9vy121wnv02r43sb7djc2j8z7c2vh8x56h8bpial";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avy-menu";
+          sha256 = "1g2bsm0jpig51jwn9f9mx6z5glb0bn4s21194xam768qin0rf4iw";
+          name = "recipe";
+        };
+        packageRequires = [ avy emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/avy-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avy-migemo = callPackage ({ avy
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , migemo }:
+      melpaBuild {
+        pname = "avy-migemo";
+        ename = "avy-migemo";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "momomo5717";
+          repo = "avy-migemo";
+          rev = "ce87777bea76c45be5f185e9fe356a8efe5c2d16";
+          sha256 = "0s6m44b49jm5cnrx1pvk7rfw3zhwiw5xasdlgmlvv7wws7m5snd9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avy-migemo";
+          sha256 = "1zvgkhma445gj1zjl8j25prw95bdpjbvfy8yr0r5liay6g2hf296";
+          name = "recipe";
+        };
+        packageRequires = [ avy emacs migemo ];
+        meta = {
+          homepage = "https://melpa.org/#/avy-migemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    avy-zap = callPackage ({ avy
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "avy-zap";
+        ename = "avy-zap";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "avy-zap";
+          rev = "67fed60d0dfe9087ca4fe3332f4a78e775b8d239";
+          sha256 = "0lmv34pi9qdh76fi3w4lrfyfhzr824nsiif4nyjvpnmrabxgk309";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/avy-zap";
+          sha256 = "1zbkf21ggrmg1w0xaw40i3swgc1g4fz0j8p0r9djm9j120d94zkx";
+          name = "recipe";
+        };
+        packageRequires = [ avy ];
+        meta = {
+          homepage = "https://melpa.org/#/avy-zap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    babel = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "babel";
+        ename = "babel";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "juergenhoetzel";
+          repo = "babel";
+          rev = "65b55ad89017c9b3a1c8c241ac4b4541eabdaf5f";
+          sha256 = "0px1xggk6qyrwkma1p3d7b4z2id2gbrsxkliw3nwc1q4zndg1zr7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/babel";
+          sha256 = "0sdpp4iym61ni32zv75n48ylj4jib8ca6n9hyqwj1b7nqg76mm1c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/babel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    back-button = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , nav-flash
+                               , pcache
+                               , persistent-soft
+                               , smartrep
+                               , ucs-utils }:
+      melpaBuild {
+        pname = "back-button";
+        ename = "back-button";
+        version = "0.6.6";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "back-button";
+          rev = "c7b50a3e087a8dc5588d7292379cd387a1afff87";
+          sha256 = "0hmn3jlsqgpc602lbcs9wzw0hgr5qpjdcxi2hjlc1cp27ilyscnf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/back-button";
+          sha256 = "0vyhvm445d0rs14j5xi419akk5nd88d4hvm4251z62fmnvs50j85";
+          name = "recipe";
+        };
+        packageRequires = [
+          nav-flash
+          pcache
+          persistent-soft
+          smartrep
+          ucs-utils
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/back-button";
+          license = lib.licenses.free;
+        };
+      }) {};
+    backline = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , outline-minor-faces }:
+      melpaBuild {
+        pname = "backline";
+        ename = "backline";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "backline";
+          rev = "035de23bbf2ca00e69095596b5b9b3ddfa364984";
+          sha256 = "1b57iipkd78ryx71ygwampjm5mbwdb9mxnxpfs2wsm1zz8024xak";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/backline";
+          sha256 = "0y5y048s6r3mcgjfxpmwarnhn6lh00j9cla6qjsd83f79hw5cq4y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs outline-minor-faces ];
+        meta = {
+          homepage = "https://melpa.org/#/backline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    badwolf-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "badwolf-theme";
+        ename = "badwolf-theme";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "bkruczyk";
+          repo = "badwolf-emacs";
+          rev = "24a557f92a702f632901a5b7bee59945a0a8cde9";
+          sha256 = "1plh7i4zhs5p7qkv7p7lnfrmkszn8b3znwvbxgp7wpxay5safc5j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/badwolf-theme";
+          sha256 = "15n33l0iaq2pk70rpw7qdm8dlwcinfclpnlr3bs7vcb1dknp4g9v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/badwolf-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    banner-comment = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "banner-comment";
+        ename = "banner-comment";
+        version = "2.7";
+        src = fetchFromGitHub {
+          owner = "WJCFerguson";
+          repo = "banner-comment";
+          rev = "ac52f6b24e590787a385c08cc3751d6f2ddca815";
+          sha256 = "1630py97ldh3w71s26jbcxk58529g03sl0padnzqj0rbqy82yw8w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/banner-comment";
+          sha256 = "0i5nkfdwfr9mcir2ijdhw563azmr5p7hyl6rfy1r04fzs8j7w2pc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/banner-comment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    base16-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "base16-theme";
+        ename = "base16-theme";
+        version = "2.2";
+        src = fetchFromGitHub {
+          owner = "belak";
+          repo = "base16-emacs";
+          rev = "10180e88d6d9434cec367b6c91222dd2fc3bd8ae";
+          sha256 = "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/base16-theme";
+          sha256 = "115dhr3gfvdz5wv76fwpv3b4dywiwbk69qrhkfhij8vpcfybrpzx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/base16-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bash-completion = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "bash-completion";
+        ename = "bash-completion";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "szermatt";
+          repo = "emacs-bash-completion";
+          rev = "6aedd690006e07199b2fcd319b9b840a527650e5";
+          sha256 = "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bash-completion";
+          sha256 = "0l41yj0sb87i27hw6dh35l32hg4qkka6r3bpkckjnfm0xifrd9hj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bash-completion";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bazel-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "bazel-mode";
+        ename = "bazel-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "codesuki";
+          repo = "bazel-mode";
+          rev = "6103da2dd9c9461e35a45fc0544ddf33410baa25";
+          sha256 = "0lbiih6lj7qf2h1l2nxcwfkhdzccrs01lcdqsyhp5hysp0zdcr66";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bazel-mode";
+          sha256 = "10590pbpg6mwkcwlm01nxf0ypw694h1b57frvn5rnc53al87i586";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bazel-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbcode-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "bbcode-mode";
+        ename = "bbcode-mode";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "lassik";
+          repo = "bbcode-mode";
+          rev = "73c56a40301c8b017d3e64c08dccc80d1dc47e59";
+          sha256 = "0g0dxk33pz18awv7ncv64c2a4lmdx9sigppkvq2mb9za47azk8dh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbcode-mode";
+          sha256 = "1kfxzp0916gdphp4dkk4xbramsbqmg6mazvfqni86mra41rdq6sb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bbcode-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb = callPackage ({ fetchgit
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "bbdb";
+        ename = "bbdb";
+        version = "3.2";
+        src = fetchgit {
+          url = "https://git.savannah.nongnu.org/git/bbdb.git";
+          rev = "307bad59bc3debf250a8617ab699b50a9402c0ae";
+          sha256 = "1i01yyr6cya2dmdpydam72mnvxj4p3mj7pbnw19lrjlfzahmajir";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb";
+          sha256 = "0mm8n3dbi8lap3pjr97n2f675iy7sg476sm1vxygbc3j67rq1zb2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb- = callPackage ({ bbdb
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , log4e
+                         , melpaBuild
+                         , yaxception }:
+      melpaBuild {
+        pname = "bbdb-";
+        ename = "bbdb-";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "bbdb-";
+          rev = "2839e84c894de2513af41053e80a277a1b483d22";
+          sha256 = "17nbnkg0zn6p89r27mk9hl6qhv6xscwdsq8iyikdw03svpr16lnp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb-";
+          sha256 = "1vzbalcchay4pxl9f1sxg0zclgc095f59dlj15pj0bqq61sbl9jf";
+          name = "recipe";
+        };
+        packageRequires = [ bbdb log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb-";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb-vcard = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "bbdb-vcard";
+        ename = "bbdb-vcard";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "tohojo";
+          repo = "bbdb-vcard";
+          rev = "9e11fafef1a94bc6395bd1eeacd00f94848ac560";
+          sha256 = "0fg72qnb40djyciy4gzj359lqlcbbrq0indbkzd0dj09zipkx0df";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb-vcard";
+          sha256 = "1kn98b7mh9a28933r4yl8qfl9p92rpix4vkp71sar9cka0m71ilj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb-vcard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bbdb2erc = callPackage ({ bbdb
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "bbdb2erc";
+        ename = "bbdb2erc";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "bbdb2erc";
+          rev = "f39a36351e1e6f1105c9e32970e7502b77b0dbcd";
+          sha256 = "1zkh7dcas80wwjvigl27wj8sp4b5z6lh3qj7zkziinwamwnxbdbs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bbdb2erc";
+          sha256 = "0k1f6mq9xd3568vg01dqqvcdbdshbdsi4ivkjyxis6dqfnqhlfdd";
+          name = "recipe";
+        };
+        packageRequires = [ bbdb ];
+        meta = {
+          homepage = "https://melpa.org/#/bbdb2erc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    beacon = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , seq }:
+      melpaBuild {
+        pname = "beacon";
+        ename = "beacon";
+        version = "1.3.4";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "beacon";
+          rev = "729338b02a0e331a4faf475da9f54771a3470106";
+          sha256 = "0mypzfasclq7bmw0i8hfyp8c1ycd3kdgd5h1faygzh9r0phh7ciy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/beacon";
+          sha256 = "1pwxvdfzs9qjd44wvgimipi2hg4qw5sh5wlsl8h8mq2kyx09s7hq";
+          name = "recipe";
+        };
+        packageRequires = [ seq ];
+        meta = {
+          homepage = "https://melpa.org/#/beacon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    beeminder = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "beeminder";
+        ename = "beeminder";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "Sodaware";
+          repo = "beeminder.el";
+          rev = "3e95a669474e27cd51a16caea030456377f83062";
+          sha256 = "1bj9yzjvglnb0f4glh8fg478xlm5nqmd9jqm1casdj5m30i4kafn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/beeminder";
+          sha256 = "1cb8xmgsv23b464hpchm9f9i64p3fyf7aillrwk1aa2l1008kyww";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/beeminder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    beginend = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "beginend";
+        ename = "beginend";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "beginend";
+          rev = "a06a479c2279da9e852cf42628b6dfa466fff0bd";
+          sha256 = "1jbhg73g1rrkbwql5vi2b0ys9avfazmwzwgd90gkzwavw0ch9cvl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/beginend";
+          sha256 = "1y81kr9q0zrsr3c3s14rm6l86y5wf1a0kia6d98112fy4fwdm7kq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/beginend";
+          license = lib.licenses.free;
+        };
+      }) {};
+    benchmark-init = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "benchmark-init";
+        ename = "benchmark-init";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "dholm";
+          repo = "benchmark-init-el";
+          rev = "8e4c32f32ec869fe521fb4d3c0a69406830b4178";
+          sha256 = "058mic9jkwiqvmp3k9sfd6gb70ysdphnb1iynlszhixbrz5w7zs2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/benchmark-init";
+          sha256 = "0dknch4b1j7ff1079z2fhqng7kp4903b3v7mhj15b5vzspbp3wal";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/benchmark-init";
+          license = lib.licenses.free;
+        };
+      }) {};
+    benchstat = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "benchstat";
+        ename = "benchstat";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "Quasilyte";
+          repo = "benchstat.el";
+          rev = "b39a97f3072c2d3c1d3f86790b9e134d05b8d7e6";
+          sha256 = "0j508n860dp4in1psnkcriqck6by1jvnscalyff5na8hx6xgyysm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/benchstat";
+          sha256 = "0h2zi4gh23bas1zfj7j2x994lwgd3xyys96ipg1vq7z2b06572k9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/benchstat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    better-defaults = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "better-defaults";
+        ename = "better-defaults";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "better-defaults";
+          rev = "90df5752a0a0602feb47aadfd3542aa7fc841bd8";
+          sha256 = "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/better-defaults";
+          sha256 = "13bqcmx2gagm2ykg921ik3awp8zvw5d4lb69rr6gkpjlqp7nq2cm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/better-defaults";
+          license = lib.licenses.free;
+        };
+      }) {};
+    better-shell = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "better-shell";
+        ename = "better-shell";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "killdash9";
+          repo = "better-shell";
+          rev = "f231404b6f8efce33b48e31e5b1566108d0ba000";
+          sha256 = "1g5bljvigga856ksyvgix9hk0pp9nzic088kp0bqx0zqvcl82v0b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/better-shell";
+          sha256 = "0si8nj18i3jlhdb8m6f21rmi0lxians34vhw4xhvxw2yr9l85lj6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/better-shell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    biblio = callPackage ({ biblio-core
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "biblio";
+        ename = "biblio";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "cpitclaudel";
+          repo = "biblio.el";
+          rev = "a5a68fcf677f286f205f32dc7486f6c9f66aa6af";
+          sha256 = "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/biblio";
+          sha256 = "0ym7xvcfd7hh3qdpfb8zpa7w8s4lpg0vngh9d0ns3s3lnhz4mi0g";
+          name = "recipe";
+        };
+        packageRequires = [ biblio-core emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/biblio";
+          license = lib.licenses.free;
+        };
+      }) {};
+    biblio-core = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , let-alist
+                               , lib
+                               , melpaBuild
+                               , seq }:
+      melpaBuild {
+        pname = "biblio-core";
+        ename = "biblio-core";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "cpitclaudel";
+          repo = "biblio.el";
+          rev = "0036495a2e0d4b02b9e957e498f9437e394d6ed9";
+          sha256 = "1f0p5fgvabdpafil7s8sy82hgcfzg1skxfgj72ylv3crq36bn4vp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/biblio-core";
+          sha256 = "0zpfamrb2gka41h834a05hxdbw4h55777kh6rhjikjfmy765nl97";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs let-alist seq ];
+        meta = {
+          homepage = "https://melpa.org/#/biblio-core";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bicycle = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bicycle";
+        ename = "bicycle";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "bicycle";
+          rev = "42a5db3514019d539500a67f913411f5533a1eb3";
+          sha256 = "1nanf0dp7kqzs2mc8gzr9qzn9v6q86sdr35pzysdl41xqydxpsrd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bicycle";
+          sha256 = "16ikqbmsjyknj3580wdnp8ffs85bq9idf9hvxm0ihgw5gy469xqj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bicycle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bifocal = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bifocal";
+        ename = "bifocal";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "riscy";
+          repo = "bifocal-mode";
+          rev = "add30c678488cec04976a85ba8cda20805938a01";
+          sha256 = "01j8s6c3qm4scxy1dk07l41y0n55gz83zzfi254kc2vyx02vqg7f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bifocal";
+          sha256 = "07qrxsby611l3cwsmw3d53h1n7cd1vg53j4vlc2isg56l2m4qks5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bifocal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    binclock = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "binclock";
+        ename = "binclock";
+        version = "1.11";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "binclock.el";
+          rev = "b964e437311e5406a31c0ec7038b3bf1fd02b876";
+          sha256 = "0ljxb70vx7x0yn8y1ilf4phk0hamprl43dh23fm3njqqgw60hzbk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/binclock";
+          sha256 = "1s0072kcd1xp8355j8aph94gb3a1wqmzx1hhfp9d6bzqf6cij8gk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/binclock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bind-key = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "bind-key";
+        ename = "bind-key";
+        version = "2.3";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "use-package";
+          rev = "d867b0370e4e311c71665ccaa418374a15097461";
+          sha256 = "193a9x1d6c8hprinrls2mpplrab2syn64zjyfgxwzisjqgik02dy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bind-key";
+          sha256 = "1qw2c27016d3yfg0w10is1v72y2jvzhq07ca4h6v17yi94ahj5xm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bind-key";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bind-map = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "bind-map";
+        ename = "bind-map";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "justbur";
+          repo = "emacs-bind-map";
+          rev = "bf4181e3a41463684adfffc6c5c305b30480e30f";
+          sha256 = "0vrk17yg3jbww92p433p64ijmjf7cjg2wmzi9w418235w1xdfzz8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bind-map";
+          sha256 = "1jzkp010b4vs1bdhccf5igmymfxab4vxs1pccpk9n5n5a4xaa358";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bind-map";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bing-dict = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "bing-dict";
+        ename = "bing-dict";
+        version = "0.2.3";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "bing-dict.el";
+          rev = "da071309f6ffbb9e66e6720dd05e31964ff402a9";
+          sha256 = "1wl810k3zl0v4i4280mzjdgd9mdc7q9s13s5svj197mlsx7gkifw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bing-dict";
+          sha256 = "1cqjndq8xm2bwjvdj95dn377bp9r6rrkp1z4a45faj408mipahli";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bing-dict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    birds-of-paradise-plus-theme = callPackage ({ fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild }:
+      melpaBuild {
+        pname = "birds-of-paradise-plus-theme";
+        ename = "birds-of-paradise-plus-theme";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "jimeh";
+          repo = "birds-of-paradise-plus-theme.el";
+          rev = "ba2c4443388a73f2c5e2de0c24d3106676aeb6fa";
+          sha256 = "1r3f5d67x257g8kvdbdsl4w3y1dvc1d6s9x8bygbkvyahfi5m5hn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/birds-of-paradise-plus-theme";
+          sha256 = "0vdv2siy30kf1qhzrc39sygjk17lwm3ix58pcs3shwkg1y5amj3m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/birds-of-paradise-plus-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bm = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "bm";
+        ename = "bm";
+        version = "201808";
+        src = fetchFromGitHub {
+          owner = "joodland";
+          repo = "bm";
+          rev = "d224b6cd8341db4c2e11263c346dd44fb37fcd88";
+          sha256 = "18xwm1xj436bwa2l3dkfx6hlj19y6f0xqd3jbd06j4g3idpryqma";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bm";
+          sha256 = "07459r7m12j2nsb7qrb26bx32alylhaaq3z448n42lz02a8dc63g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bnfc = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "bnfc";
+        ename = "bnfc";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "jmitchell";
+          repo = "bnfc-mode";
+          rev = "1b58df1dd0cb9b81900632fb2843a03b94f56fdb";
+          sha256 = "0lmqrcy80nw6vmf81kh6q39x8pwhzrj6lbk31xpl8mvwnpqaykmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bnfc";
+          sha256 = "0h6qhyi7vcikg7zhv8lywdz033kp27a8z1ymq5wgs4aqs184igm6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bnfc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bog = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "bog";
+        ename = "bog";
+        version = "1.3.1";
+        src = fetchFromGitHub {
+          owner = "kyleam";
+          repo = "bog";
+          rev = "6ed4d3edbe771e586d873b826330f3ef23aa1611";
+          sha256 = "0s4jwlaq3mqyzkyg3x4nh4nx7vw825jhz7ggakay7a2cfvpa4i2j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bog";
+          sha256 = "1ci8xxca7dclmi5v37y5k45qlmzs6a9hi6m7czgiwxii902w5pkl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/bog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bongo = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "bongo";
+        ename = "bongo";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "dbrock";
+          repo = "bongo";
+          rev = "c5280a11fe8ff39fba4b09ec4a39b0f799d2b59c";
+          sha256 = "1q3ws2vn062dh7ci6jn2k2bcn7szh3ap64sgwkzdd6f1pas37fnr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bongo";
+          sha256 = "07i9gw067r2igp6s2g2iakm1ybvw04q6zznna2cfdf08nax64ghv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bongo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bool-flip = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "bool-flip";
+        ename = "bool-flip";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "michaeljb";
+          repo = "bool-flip";
+          rev = "0f7cc9b387429239fb929896511727d4e49a795b";
+          sha256 = "1051gy7izy25jwh079231d4lh9azchbqc6nvfrkv8s9ck407a65a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bool-flip";
+          sha256 = "1xfspqxshx7m8gh6g1snkaahka9f71fnq7hx81nik4s9s8pmxj9c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bool-flip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    boon = callPackage ({ dash
+                        , emacs
+                        , expand-region
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , multiple-cursors }:
+      melpaBuild {
+        pname = "boon";
+        ename = "boon";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "jyp";
+          repo = "boon";
+          rev = "d9f0545708bbbbe3df23b2b91cdd2824beb0df56";
+          sha256 = "0crqwyhzkwpi7c0rqcgmgqx6g4f8fw9gd9nh0ii6p5agiw140yj8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/boon";
+          sha256 = "0gryw7x97jd46jgrm93cjagj4p7w93cjc36i2ps9ajf0d8m4gajb";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs expand-region multiple-cursors ];
+        meta = {
+          homepage = "https://melpa.org/#/boon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    borg = callPackage ({ dash
+                        , emacs
+                        , epkg
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , magit
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "borg";
+        ename = "borg";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "borg";
+          rev = "a3573f6d8073b21f261fc96bdf80915d3e719381";
+          sha256 = "0pc0p2kdaklfg9jszf0rmwfgdd9l277g4lw4svz7i634j3v44zpq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/borg";
+          sha256 = "0gn4hf7hn190gl0kg59nr6jzjnb39c0hy9b3brrsfld9hyxga9jr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs epkg magit ];
+        meta = {
+          homepage = "https://melpa.org/#/borg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    boxquote = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "boxquote";
+        ename = "boxquote";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "boxquote.el";
+          rev = "b6a4ad3ee5b327bd3b1bf65f8733bd301fe59883";
+          sha256 = "1f61k3sw9zvn6jq60ygi6p66blr52497fadimzcaspa79k9y1cfm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/boxquote";
+          sha256 = "0s6cxb8y1y8w9vxxhj1izs8d0gzk4z2zm0cm9gkw1h7k2kyggx6s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/boxquote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    browse-at-remote = callPackage ({ cl-lib ? null
+                                    , f
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "browse-at-remote";
+        ename = "browse-at-remote";
+        version = "0.10.0";
+        src = fetchFromGitHub {
+          owner = "rmuslimov";
+          repo = "browse-at-remote";
+          rev = "47bab994640f086939c30cc6416e770ad067e950";
+          sha256 = "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/browse-at-remote";
+          sha256 = "0s088ba047azba60rlfn3jbqr321vnm953i7dqw2gj9xml90kbm4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib f s ];
+        meta = {
+          homepage = "https://melpa.org/#/browse-at-remote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    browse-kill-ring = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "browse-kill-ring";
+        ename = "browse-kill-ring";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "browse-kill-ring";
+          repo = "browse-kill-ring";
+          rev = "2a7acf98c348c4f405a6b2ab216224ca14915be8";
+          sha256 = "0y9m6cv70pzcm0v2v8nwmyh1xx40831chx72m85h5ic5db03gy7b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/browse-kill-ring";
+          sha256 = "1d97ap0vrg5ymp96z7y6si98fspxzy02jh1i4clvw5lggjfibhq4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/browse-kill-ring";
+          license = lib.licenses.free;
+        };
+      }) {};
+    browse-url-dwim = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , string-utils }:
+      melpaBuild {
+        pname = "browse-url-dwim";
+        ename = "browse-url-dwim";
+        version = "0.6.8";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "browse-url-dwim";
+          rev = "11f1c53126619c7ef1bb5f5d6914ce0b3cce0e30";
+          sha256 = "08qz9l0gb7fvknzkp67srhldzkk8cylnbn0qwkflxgcs6ndfk95y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/browse-url-dwim";
+          sha256 = "13bv2ka5pp9k4kwrxfqfawwxzsqlakvpi9a32gxgx7qfi0dcb1rf";
+          name = "recipe";
+        };
+        packageRequires = [ string-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/browse-url-dwim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bshell = callPackage ({ buffer-manage
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "bshell";
+        ename = "bshell";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "bshell";
+          rev = "884a8b906617d305e9d5d2c3750618d2f86f9aed";
+          sha256 = "16qh71yhpxs5cxjmkiqiia8xrxa0ym2n32znp4yc7xiv2xfw2ss4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bshell";
+          sha256 = "1ds8xvh74i6wqswjp8i30knr74l4gbalkb2jil8qjb9wp9l1gw9z";
+          name = "recipe";
+        };
+        packageRequires = [ buffer-manage emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bshell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-flip = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-flip";
+        ename = "buffer-flip";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "killdash9";
+          repo = "buffer-flip.el";
+          rev = "e093360e05164c78255866c1ac8f966aa38ba514";
+          sha256 = "1s35llycdhhclf9kl1q9l7zzzfqrnnvbiqv5csfw0mngfj0lz77f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-flip";
+          sha256 = "0ka9ynj528yp1p31hbhm89627v6dpwspybly806n92vxavxrn098";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-flip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-manage = callPackage ({ choice-program
+                                 , dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-manage";
+        ename = "buffer-manage";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "buffer-manage";
+          rev = "8bbe342a4dafcfdaf305baea98bd4208036ab89a";
+          sha256 = "027d71ppkcq60lkzgal8wv4xpjs4hzgih5ry9q2d4g0dr7wkjp3j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-manage";
+          sha256 = "0fwri332faybv2apjh8zajqpryi0g4kk3and8djibpvci40l42jb";
+          name = "recipe";
+        };
+        packageRequires = [ choice-program dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-manage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-move = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-move";
+        ename = "buffer-move";
+        version = "0.6.2";
+        src = fetchFromGitHub {
+          owner = "lukhas";
+          repo = "buffer-move";
+          rev = "9bf3ff940011c7af3fdd172fa3ea2511c7a8a190";
+          sha256 = "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-move";
+          sha256 = "0wysywff2bggrha7lpl83c8x6ln7zgdj9gsqmjva6gramqb260fg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-move";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-utils = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-utils";
+        ename = "buffer-utils";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "buffer-utils";
+          rev = "b4d325543e25518d725a2122b49cd72a0d6a079a";
+          sha256 = "0rp9hiysy13c4in7b420r7yjza2knlmvphj7l01xbxphbilplqk5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-utils";
+          sha256 = "0cfipdn4fc4fvz513mwiaihvbdi05mza3z5z1379wlljw6r539z2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buffer-watcher = callPackage ({ f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "buffer-watcher";
+        ename = "buffer-watcher";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "buffer-watcher";
+          rev = "056ad29ce1c33c575b371b856b80d580a4b9a7d2";
+          sha256 = "0c4w7mpkc82886gng14h2srlbr138vf7kcs8ajwj6is47zc75nkb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buffer-watcher";
+          sha256 = "0v096021xk7k821bxb5zddw6sljqa6fs8f7s8j0w3pv6lmhra1ln";
+          name = "recipe";
+        };
+        packageRequires = [ f ];
+        meta = {
+          homepage = "https://melpa.org/#/buffer-watcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bufshow = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bufshow";
+        ename = "bufshow";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "pjones";
+          repo = "bufshow";
+          rev = "984dc947992cada3dcdb7ea066a9794e45daa66f";
+          sha256 = "1mjykz21kx2aj0r9x7j2rh6mr64wd0m7wzn9ppxrw6296l2y253m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bufshow";
+          sha256 = "027cd0jzb8yxm66q1bhyi75f2m9f2pq3aswgav1d18na3ybwg65h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bufshow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bug-reference-github = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "bug-reference-github";
+        ename = "bug-reference-github";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "arnested";
+          repo = "bug-reference-github";
+          rev = "f570a0532bfb44f095b42cf68ab1f69799101137";
+          sha256 = "09rbxgrk7jp9xajya6nccj0ak7fc48wyxq4sfmjmy3q1qfszdsc3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bug-reference-github";
+          sha256 = "18yzxwanbrxsab6ba75z1196x0m6dapdhbvy6df5b5x5viz99cf6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bug-reference-github";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bui = callPackage ({ dash
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "bui";
+        ename = "bui";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "bui.el";
+          rev = "bd3c5ee32d28d80c6eb54b0340626103c32e3093";
+          sha256 = "0ixia5s41f2nbal3wsixacbhbc0mk9yb75ir1amqakip30sq4apv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bui";
+          sha256 = "0a4g55k02hi3cwvk4d35lk2x5kc4fabskl2025i83hx0rqw4w3f1";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/bui";
+          license = lib.licenses.free;
+        };
+      }) {};
+    build-farm = callPackage ({ bui
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , magit-popup
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "build-farm";
+        ename = "build-farm";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "build-farm.el";
+          rev = "e244dea35566a10253d61be430d3caf81b779af8";
+          sha256 = "1a4ky0hca26p7f3i2c2s5517ygkyaaz52vs0vxy6f5q95rhlgdhd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/build-farm";
+          sha256 = "0dbq3sc1x0cj06hv3mlk0zw0cijdwjszicylv14m1wahal33xjrw";
+          name = "recipe";
+        };
+        packageRequires = [ bui emacs magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/build-farm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    build-status = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "build-status";
+        ename = "build-status";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "sshaw";
+          repo = "build-status";
+          rev = "c29a0146c5d0be274f5e17921e01698f572c23a1";
+          sha256 = "03f0h7sp0sr9kjyhvcx7i34lvc26f5x8nikfidihgzhrqpprv2b6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/build-status";
+          sha256 = "0ckyf0asll50gifx1v0qqzpimjms8i1rgw9bnqiyj861qn5hch92";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/build-status";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bundler = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , inf-ruby
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "bundler";
+        ename = "bundler";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "endofunky";
+          repo = "bundler.el";
+          rev = "4cb4fafe092d587cc9e58ff61cf900fb7f409adf";
+          sha256 = "18d74nwcpk1i8adxzfwz1lgqqcxsc4wkrb490v64pph79dxsi80h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bundler";
+          sha256 = "1jvcrxwsf9yd5vhirfdmjl52n6hffr1vikd386qbn32vgqcsba7a";
+          name = "recipe";
+        };
+        packageRequires = [ inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/bundler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    bury-successful-compilation = callPackage ({ fetchFromGitHub
+                                               , fetchurl
+                                               , lib
+                                               , melpaBuild }:
+      melpaBuild {
+        pname = "bury-successful-compilation";
+        ename = "bury-successful-compilation";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "EricCrosson";
+          repo = "bury-successful-compilation";
+          rev = "064817b44a431476305099301311def0a2d9d543";
+          sha256 = "13ilv4zbzwb5rz0gf69z8pvxazvwlmb5shkb055l42ksxslp49hh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/bury-successful-compilation";
+          sha256 = "1gkq4r1573m6m57fp7x69k7kcpqchpcqfcz3792v0wxr22zhkwr3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/bury-successful-compilation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    butler = callPackage ({ deferred
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , json ? null
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "butler";
+        ename = "butler";
+        version = "0.2.4";
+        src = fetchFromGitHub {
+          owner = "AshtonKem";
+          repo = "Butler";
+          rev = "0e91e0f01ac9c09422f076a096ee567ee138e7a4";
+          sha256 = "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/butler";
+          sha256 = "1jv74l9jy55qpwf5np9nlj6a1wqsm3xirm7wm89d1h2mbsfcr0mq";
+          name = "recipe";
+        };
+        packageRequires = [ deferred emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/butler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    buttercup = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "buttercup";
+        ename = "buttercup";
+        version = "1.15";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "emacs-buttercup";
+          rev = "4089d5f66dcf1dd25d8e56fe6508f1fa48ac097c";
+          sha256 = "1h1p03ds7vbzr75g2ayg86igx2ibgz4cgcxsq2q5wcr6j164lhnz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/buttercup";
+          sha256 = "1grrrdk5pl9l1jvnwzl8g0102gipvxb5qn6k2nmv28jpl57v8dkb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/buttercup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    button-lock = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "button-lock";
+        ename = "button-lock";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "button-lock";
+          rev = "9a8f950e06ff222b667c38facf4fb9d6ef6f1d8e";
+          sha256 = "1rga1m50bhps4kv841g798w7vn80kcwyinb4ra33ldri7jyx34qj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/button-lock";
+          sha256 = "1arrdmb3nm570hgs18y9sz3z9v0wlkr3vwa2zgfnc15lmf0y34mp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/button-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cacoo = callPackage ({ concurrent
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "cacoo";
+        ename = "cacoo";
+        version = "2.1.2";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-cacoo";
+          rev = "c2e6a8830144810cd4e51de3646cb8200bcebbc6";
+          sha256 = "1k2hmc87ifww95k3m8ksiswkk2z0y8grssba7381g8dnlp6jgprx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cacoo";
+          sha256 = "0kri4vi6dpsf0zk24psm16f3aa27cq5b54ga7zygmr02csq24a6z";
+          name = "recipe";
+        };
+        packageRequires = [ concurrent ];
+        meta = {
+          homepage = "https://melpa.org/#/cacoo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cake-inflector = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "cake-inflector";
+        ename = "cake-inflector";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "emacs-cake-inflector";
+          rev = "40bf11890842ba305954528694e1c39a8b73737b";
+          sha256 = "1w7yq35gzzwyf480d8gc5r6jbnawg09l6663q068ir6zr9pp4far";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cake-inflector";
+          sha256 = "04mrqcm1igb638skaq2b3nr5yzxnck2vwhln61rnh7lkfxq7wbwf";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/cake-inflector";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calendar-norway = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "calendar-norway";
+        ename = "calendar-norway";
+        version = "0.9.4";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "calendar-norway.el";
+          rev = "8d1fda8268caa74ba5e712c7675ed3c34e46e2d4";
+          sha256 = "011c8pz1g805a7c3djai39yasd2idfp4c2dcrvf7kbls27ayrl6d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calendar-norway";
+          sha256 = "1i23ks0bnq62bvn3szvqf0ikcam4s92yvr998mkjxhdhc94zd19c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calendar-norway";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "calfw";
+        ename = "calfw";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "c538d3746449b4f0e16b16aad3073d4f7379d805";
+          sha256 = "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw";
+          sha256 = "0am1nafc16zax8082gjlz0pi85lryjhrx0v80nzgr23iybj5mfx4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw-cal = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "calfw-cal";
+        ename = "calfw-cal";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "136dce009a26e7d8a8064af422c2cf8170e852c5";
+          sha256 = "1hiip8hfl7myimgba7ggs1ki1pk3ag7nyfa8j2zzm87n93g5xia4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw-cal";
+          sha256 = "1wylkd7jl1ifq56jj04l5b9wfrjkhwncxzrjgnbgg1cl2klf6v4m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw-cal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw-howm = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "calfw-howm";
+        ename = "calfw-howm";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "4f6e5d4d917b9d346a8867941b90133e50e820d8";
+          sha256 = "0dkilf8kvxcy6rr2bynzyk5kf8dqcxhm9b9h36g8h11j181p6bl7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw-howm";
+          sha256 = "08cv16cq211sy2v1i0gk7d81f0gyywv0i9szmamnrbjif3rrv2m0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw-howm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw-ical = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "calfw-ical";
+        ename = "calfw-ical";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "a67fa1023b3fddc1d1f38114c1d207376c8e6289";
+          sha256 = "0g8s3pgivqk1vqdgkndznkl48c4m5yiahkjxyqyv2781hdb4f6xa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw-ical";
+          sha256 = "1bh9ahwp9b5knjxph79kl19fgs48x3w7dga299l0xvbxq2jhs95q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw-ical";
+          license = lib.licenses.free;
+        };
+      }) {};
+    calfw-org = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "calfw-org";
+        ename = "calfw-org";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-calfw";
+          rev = "e03ae470788778e7714b73520014eadc03a88abd";
+          sha256 = "0rhasr818qijd2pcgifi0j3q4fkbiw2ck1nivajk7m810p53bxbj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/calfw-org";
+          sha256 = "1cfpjh08djz3k067w3580yb15p1csks3gzch9c4cbrbcjvg8inh5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/calfw-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    call-graph = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , hierarchy
+                              , ivy
+                              , lib
+                              , melpaBuild
+                              , tree-mode }:
+      melpaBuild {
+        pname = "call-graph";
+        ename = "call-graph";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "beacoder";
+          repo = "call-graph";
+          rev = "0bbe292b1b9c7ba1d8a65ed5e475f6a53f5f9f27";
+          sha256 = "0kckjs7yg8d04nir5z3f00k05272kgma98794g0ycgfn1vrck0h0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/call-graph";
+          sha256 = "0cklr79gqqrb94jq8aq65wqriamay78vv9sd3jrvp86ixl3ig5xc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs hierarchy ivy tree-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/call-graph";
+          license = lib.licenses.free;
+        };
+      }) {};
+    camcorder = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , names }:
+      melpaBuild {
+        pname = "camcorder";
+        ename = "camcorder";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "camcorder.el";
+          rev = "a2b5e0629ee3c01ead684e148965ac68e533efbd";
+          sha256 = "0v927m3l5cf0j0rs0nfk5whwqmmxs941d8qalxi19j1ihspjz8d6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/camcorder";
+          sha256 = "1kbnpz3kn8ycpy8nlp8bsnnd1k1h7m02h7w5f7raw97sk4cnpvbi";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs names ];
+        meta = {
+          homepage = "https://melpa.org/#/camcorder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    caml = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "caml";
+        ename = "caml";
+        version = "4.7.1";
+        src = fetchFromGitHub {
+          owner = "ocaml";
+          repo = "ocaml";
+          rev = "ca71bda2ac7e5143f58fa9a1693f97e709a91332";
+          sha256 = "1ksx2ym5s68m87rnjjkdwhp5ci6cfw0yhmjjmq1r4a0d0r77x4lr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/caml";
+          sha256 = "1ixs0626nsg1ilqdwj5rd8kicjy7mprswwy0kprppmpmc8y7xf7c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/caml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cargo = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , rust-mode }:
+      melpaBuild {
+        pname = "cargo";
+        ename = "cargo";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "kwrooijen";
+          repo = "cargo.el";
+          rev = "b0487f95a7de7a1d6f03cdd05220f633977d65a2";
+          sha256 = "0r9v7q7hkdw2q3iifyrb6n9jrssz2rcv2xcc7n1nmg1v40av3ijd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cargo";
+          sha256 = "06zq657cxfk5l4867qqsvhskcqc9wswyl030wj27a43idj8n41jx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs rust-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/cargo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    caseformat = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "caseformat";
+        ename = "caseformat";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "caseformat";
+          rev = "72707c9f0f0819b4e2aa45876432a293aa07f814";
+          sha256 = "0mg49rpz362ipn5qzqhyfs3d6fpb51rfa73kna3gxdw0wxq2sa7g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/caseformat";
+          sha256 = "1qwyr74jbx4jpfcw8sccg47q1vdg094rr06m111gsz2yaj9m0gfk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/caseformat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cask = callPackage ({ cl-lib ? null
+                        , dash
+                        , epl
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , package-build
+                        , s
+                        , shut-up }:
+      melpaBuild {
+        pname = "cask";
+        ename = "cask";
+        version = "0.8.4";
+        src = fetchFromGitHub {
+          owner = "cask";
+          repo = "cask";
+          rev = "ba5f6eb78178deb954ab9ac02e0e370315097ebe";
+          sha256 = "1p37lq8xpyq0rc7phxgsw3b73h8vf9rkpa5959rb5k46w6ps9686";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cask";
+          sha256 = "11nr6my3vlb1xiyai7qwii3nszda2mnkhkjlbh3d0699h0yw7dk5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash epl f package-build s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/cask";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cask-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cask-mode";
+        ename = "cask-mode";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "cask-mode";
+          rev = "90a257549aa201a12c2b07157f650e3cdd7af06e";
+          sha256 = "07qisn5sqdw6y0avfhhj57rwbdjxc0dfxmpf0ax5l8fgq6m0h5qc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cask-mode";
+          sha256 = "0fs9zyihipr3klnh3w22h43qz0wnxplm62x4kx7pm1chq9bc9kz6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cask-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cask-package-toolset = callPackage ({ ansi
+                                        , cl-lib ? null
+                                        , commander
+                                        , dash
+                                        , emacs
+                                        , f
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , s
+                                        , shut-up }:
+      melpaBuild {
+        pname = "cask-package-toolset";
+        ename = "cask-package-toolset";
+        version = "0.9.2";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "cask-package-toolset.el";
+          rev = "2c74cd827e88c7f8360581a841e45f0b794510e7";
+          sha256 = "1hk5q6p1j7cqg5srr3v21xfyy7aas4hfj1a66h21c2xvfjra3hxw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cask-package-toolset";
+          sha256 = "13ix093c0a58rjqj7zfp3914xj3hvj276gb2d8zhvrx9vvs1345g";
+          name = "recipe";
+        };
+        packageRequires = [ ansi cl-lib commander dash emacs f s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/cask-package-toolset";
+          license = lib.licenses.free;
+        };
+      }) {};
+    caskxy = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , log4e
+                          , melpaBuild
+                          , yaxception }:
+      melpaBuild {
+        pname = "caskxy";
+        ename = "caskxy";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "caskxy";
+          rev = "279f3ab79bd77fe69cb3148a79896b9bf118a9b3";
+          sha256 = "1j1lw5zifp7q1ykm6si0nzxfp7n3z2lzla2njkkxmc2s6m7w4x1a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/caskxy";
+          sha256 = "0x4s3c8m75zxsvqpgfc5xwll0489zzdnngmnq048z9gkgcd7pd2s";
+          name = "recipe";
+        };
+        packageRequires = [ log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/caskxy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    catmacs = callPackage ({ fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "catmacs";
+        ename = "catmacs";
+        version = "0.1.1";
+        src = fetchgit {
+          url = "https://bitbucket.org/pymaximus/catmacs";
+          rev = "c6e8277bd2aab3f5fbf10d419111110f3b33564f";
+          sha256 = "0kdlmmqgpgmhbbvafywllqdwkkd5a41rf8zhfmxhs3ydza86hmlg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/catmacs";
+          sha256 = "0ym1szmq9ib75yiyy5jw647fcs7gg0d5dkskqc293pg81qf3im50";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/catmacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cbm = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "cbm";
+        ename = "cbm";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "akermu";
+          repo = "cbm.el";
+          rev = "5b41c936ba9f6d170309a85ffebc9939c1050b31";
+          sha256 = "091ln3d0jhdgahbwfdm1042b19886n3kwipw5gk8d0jnq5vwrkws";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cbm";
+          sha256 = "02ch0gdw610c8dfxxjxs7ijsc9lzbhklj7hqgwfwksnyc36zcjmn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/cbm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cdlatex = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "cdlatex";
+        ename = "cdlatex";
+        version = "4.7";
+        src = fetchFromGitHub {
+          owner = "cdominik";
+          repo = "cdlatex";
+          rev = "1d491c2dddb05cdace1ae0e1f56a36009b065d85";
+          sha256 = "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cdlatex";
+          sha256 = "021gj0jw93r8gk0cacw1ldfibpwr6fpkcrnign7b4nqqnb3135k9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cdlatex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cdnjs = callPackage ({ dash
+                         , deferred
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pkg-info }:
+      melpaBuild {
+        pname = "cdnjs";
+        ename = "cdnjs";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "cdnjs.el";
+          rev = "ce19880d3ec3d81e6c665d0b1dfea99cc7a3f908";
+          sha256 = "02j45ngddx7n5gvy42r8y3s22bmxlnvg2pqjfh0li8m599fnd11h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cdnjs";
+          sha256 = "1clm86n643z1prxrlxlg59jg43l9wwm34x5d88bj6yvix8g6wkb7";
+          name = "recipe";
+        };
+        packageRequires = [ dash deferred f pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/cdnjs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    celery = callPackage ({ dash-functional
+                          , deferred
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "celery";
+        ename = "celery";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "ardumont";
+          repo = "emacs-celery";
+          rev = "163ebede3f6a7f59202ff319675b0873dd1de365";
+          sha256 = "07h5g905i1jglsryl0dnqxz8yya5kkyjjggzbk4nl3rcj41lyas7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/celery";
+          sha256 = "0m3hmvp6xz2m7z1kbb0ii0j3c95zi19652gfixq5a5x23kz8y59h";
+          name = "recipe";
+        };
+        packageRequires = [ dash-functional deferred emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/celery";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cerbere = callPackage ({ f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , go-mode
+                           , lib
+                           , melpaBuild
+                           , pkg-info
+                           , s }:
+      melpaBuild {
+        pname = "cerbere";
+        ename = "cerbere";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "cerbere";
+          rev = "f9fb567b01bde8870ce36293ed8206a056169bbd";
+          sha256 = "1nkqah0igjwv5yhx5yrp42pyi87vzlp1q10sn4l3a0spixn1mnlf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cerbere";
+          sha256 = "1g3svmh5dlh5mvyag3hmiy90dfkk6f7ppd9qpwckxqyll9vl7r06";
+          name = "recipe";
+        };
+        packageRequires = [ f go-mode pkg-info s ];
+        meta = {
+          homepage = "https://melpa.org/#/cerbere";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ceylon-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ceylon-mode";
+        ename = "ceylon-mode";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "lucaswerkmeister";
+          repo = "ceylon-mode";
+          rev = "00f790b3ed5ec48e2461e20a4d466ba45c634e13";
+          sha256 = "08zk6aspy59gv3989zxz0ibxxwkbjasa83ilpzvpcwszrzq8x640";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ceylon-mode";
+          sha256 = "0dgqmmb8qmvzn557h0fw1mx4y0p96870l8f8glizkk3fifg7wgq4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ceylon-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cfengine-code-style = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "cfengine-code-style";
+        ename = "cfengine-code-style";
+        version = "3.12.0";
+        src = fetchFromGitHub {
+          owner = "cfengine";
+          repo = "core";
+          rev = "10e43677e99a29d8072bb120e7cd7b9d03b1218f";
+          sha256 = "0mncl7wb2vi620snk4z01k0wdbvvd5b2nw9nlnfr9a4hkn3fg44r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cfengine-code-style";
+          sha256 = "1ny8xvdnz740qmw9m81xnwd0gh0a516arpvl3nfimglaai5bfc9a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cfengine-code-style";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cframe = callPackage ({ buffer-manage
+                          , dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "cframe";
+        ename = "cframe";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "cframe";
+          rev = "61844d948e4464625f7023de62aeb27ca742b36f";
+          sha256 = "1v413kvygfkdiqi9zg6ypihf2vcks0vs80qshg0ynm5zy27f984y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cframe";
+          sha256 = "0pngdaflk1pk2xmwbij4b520b3mlacnjab4r3jby0phah44ziv4l";
+          name = "recipe";
+        };
+        packageRequires = [ buffer-manage dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chapel-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "chapel-mode";
+        ename = "chapel-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "russel";
+          repo = "Emacs-Chapel-Mode";
+          rev = "816a1a54ff5ffdd20b6a4d249ace774740a3924c";
+          sha256 = "0kp18xlc1005hbkfhng03y4xgaicqf6b5vwgnwbbw9s5qzirmhix";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chapel-mode";
+          sha256 = "0hmnsv8xf85fc4jqkaqz5j3sf56hgib4jp530vvyc2dl2sps6vzz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chapel-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    char-menu = callPackage ({ avy-menu
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "char-menu";
+        ename = "char-menu";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "char-menu";
+          rev = "f4d8bf8fa6787e2aaca2ccda5223646541d7a4b2";
+          sha256 = "0zyi1ha17jk3zz7nirasrrx43j3jkrsfz7ypbc4mk44w7hsvx2hj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/char-menu";
+          sha256 = "11jkwghrmmvpv7piznkpa0wilwjdsps9rix3950pfabhlllw268l";
+          name = "recipe";
+        };
+        packageRequires = [ avy-menu emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/char-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    charmap = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "charmap";
+        ename = "charmap";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "lateau";
+          repo = "charmap";
+          rev = "165193d91ef96f563ae8366ed4c1a2df5a4eaed2";
+          sha256 = "0crnd64cnsnaj5mcy55q0sc1rnamxa1xbpwpmirhyhxz780klww6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/charmap";
+          sha256 = "1j7762d2i17ysn9ys8j7wfv989avmax8iylml2hc26mwbpyfpm84";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/charmap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chatwork = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "chatwork";
+        ename = "chatwork";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "ataka";
+          repo = "chatwork";
+          rev = "fea231d479f06bf40dbfcf45de143eecc9ed744c";
+          sha256 = "163xr18lm4awfgh4lcp7pr04jirpvlk8w1g4445zbxbpjfvv268z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chatwork";
+          sha256 = "0p71swcpfqbx2zmp5nh57f0m30cn68g3019005wa5x4fg7dx746p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/chatwork";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cheat-sh = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cheat-sh";
+        ename = "cheat-sh";
+        version = "1.7";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "cheat-sh.el";
+          rev = "6409bb66241255cc9a0362f2acdcb0b34344f9f2";
+          sha256 = "1nmsja1s45fs93v2vbalfralixvzp88rgv47vf9p80i7x6w2149m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cheat-sh";
+          sha256 = "0f6wqyh3c3ap0l6khikqlw8sqqi6fsl468gn157faza4x63j9z80";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cheat-sh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    checkbox = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "checkbox";
+        ename = "checkbox";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "camdez";
+          repo = "checkbox.el";
+          rev = "2afc2011fa35ccfa0ce9ef46cb1896911fa340d1";
+          sha256 = "09ypxhfad3v1pz0xhw4xgxvfj7ad2kb3ff9zy1mnw7fzsa7gw6nj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/checkbox";
+          sha256 = "17gw6w1m6bs3sfx8nqa8nzdq26m8w85a0fca5qw3bmd18bcmknqa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/checkbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chee = callPackage ({ dash
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "chee";
+        ename = "chee";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "eikek";
+          repo = "chee";
+          rev = "beeaa5bb2ce92f1a745440c7ff7468e5f6524701";
+          sha256 = "1n0n6rnhms2mgh9yjc5whhf3n37y5lp9jk3ban6f6hn55f8p1gmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chee";
+          sha256 = "1sw84qaca2cwgrw332wfqjp3kg3axgi9n6wx5a6h2n3liq5yr1wj";
+          name = "recipe";
+        };
+        packageRequires = [ dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/chee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    chinese-word-at-point = callPackage ({ cl-lib ? null
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "chinese-word-at-point";
+        ename = "chinese-word-at-point";
+        version = "0.2.3";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "chinese-word-at-point.el";
+          rev = "36a03cce32fe059d2b581cb2e029715c0be81074";
+          sha256 = "1jsy43avingxxccs0zw2qm5ysx8g76xhhh1mnyypxskl9m60qb4j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/chinese-word-at-point";
+          sha256 = "0pjs4ckncv84qrdj0pyibrbiy86f1gmjla9n2cgh10xbc7j9y0c4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/chinese-word-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    choice-program = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "choice-program";
+        ename = "choice-program";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "choice-program";
+          rev = "27607ec1fe241c58fbc1f861454a8e2ec1fd7b15";
+          sha256 = "0q8krgsydrc2xc29y60qljifdvxfmxnvbncxsh64xhrzsnrgwmq5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/choice-program";
+          sha256 = "0a21yd3b8sb15vms9mclaa7xnnk0as08p6q38mwdwjp9sgcfyh1b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/choice-program";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cider = callPackage ({ clojure-mode
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pkg-info
+                         , queue
+                         , seq
+                         , sesman
+                         , spinner }:
+      melpaBuild {
+        pname = "cider";
+        ename = "cider";
+        version = "0.18.0";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "cider";
+          rev = "97b95f5b5bb4f9c8f439375b4238d41fd5be9926";
+          sha256 = "1m9kc88vga3q5d731qnpngnsa0n57pf21k3hll20rw8rggrx4vdn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cider";
+          sha256 = "1a6hb728a3ir18c2dn9zfd3jn79fi5xjn5gqr7ljy6qb063xd4qx";
+          name = "recipe";
+        };
+        packageRequires = [
+          clojure-mode
+          emacs
+          pkg-info
+          queue
+          seq
+          sesman
+          spinner
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/cider";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cider-eval-sexp-fu = callPackage ({ emacs
+                                      , eval-sexp-fu
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , highlight
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "cider-eval-sexp-fu";
+        ename = "cider-eval-sexp-fu";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "cider-eval-sexp-fu";
+          rev = "6b437bf073b21543e72d76fd0392a28fba7cbfbe";
+          sha256 = "1frpr5dwg7aa0pjr2sarck498lj11li8xi36s5qa8qhflgl29jpn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cider-eval-sexp-fu";
+          sha256 = "1n4sgv042qd9560pllabysx0c5snly6i22bk126y8f8rn0zj58iq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs eval-sexp-fu highlight ];
+        meta = {
+          homepage = "https://melpa.org/#/cider-eval-sexp-fu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cider-hydra = callPackage ({ cider
+                               , fetchFromGitHub
+                               , fetchurl
+                               , hydra
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "cider-hydra";
+        ename = "cider-hydra";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "cider-hydra";
+          rev = "5956c3909cd9beae11f64973e4f0d830cea7860d";
+          sha256 = "1hnari85c4y5sc8cdv2idkg2qv058crz54xdidnphr1wgw5zhvpk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cider-hydra";
+          sha256 = "1qjgfrj3ck70vkyc9c00mif0jq5hc2yan2hql31qzbpqzg3pi2r7";
+          name = "recipe";
+        };
+        packageRequires = [ cider hydra ];
+        meta = {
+          homepage = "https://melpa.org/#/cider-hydra";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cil-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cil-mode";
+        ename = "cil-mode";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "ForNeVeR";
+          repo = "cil-mode";
+          rev = "8023b45ec60961bf4c3a3d8a564727c463ed09d1";
+          sha256 = "06p6hz6jrnvnlbxdr1pjgf5wh4n34kf6al4589qg1s88r2lf86bl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cil-mode";
+          sha256 = "1h18r086bqspyn5n252yzw8x2zgyaqzdd8pbcf5gqlh1w8kapq4y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cil-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    circadian = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "circadian";
+        ename = "circadian";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "guidoschmidt";
+          repo = "circadian.el";
+          rev = "9894361dcd6ffb6d4629b4cbbabda2153699eb8e";
+          sha256 = "0wpsykmai3idz0bgfl07hwl9nr4x9sgprvqgw8jln4dz2wf5gdic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/circadian";
+          sha256 = "1xxrhifw371yc4i2cddzcdmqh5dfc905wyl88765098685q8k4bp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/circadian";
+          license = lib.licenses.free;
+        };
+      }) {};
+    circe = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "circe";
+        ename = "circe";
+        version = "2.10";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "circe";
+          rev = "fedfa7eb8516a53fa70b6a1f4fce4b5ab66ea91f";
+          sha256 = "10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/circe";
+          sha256 = "1f54d8490gfx0r0cdvgmcjdxqpni43msy0k2mgqd1qz88a4b5l07";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/circe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    circe-notifications = callPackage ({ alert
+                                       , circe
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "circe-notifications";
+        ename = "circe-notifications";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "eqyiel";
+          repo = "circe-notifications";
+          rev = "80c44441ecd3ae04ae63760aa20afa837c1ed05b";
+          sha256 = "0s0iw5vclciziga78f1lvj6sdg84a132in39k4vz0pj598ypin1w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/circe-notifications";
+          sha256 = "06y525x5yc0xgbw0cf16mc72ca9bv8j8z4gpgznbad2qp7psf53c";
+          name = "recipe";
+        };
+        packageRequires = [ alert circe emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/circe-notifications";
+          license = lib.licenses.free;
+        };
+      }) {};
+    citeproc = callPackage ({ dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , queue
+                            , s
+                            , string-inflection }:
+      melpaBuild {
+        pname = "citeproc";
+        ename = "citeproc";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "andras-simonyi";
+          repo = "citeproc-el";
+          rev = "6d68f52ebd150e035b33dcaa59d9e2aceab69b84";
+          sha256 = "04xz3y3j8k1pv5v6v9wqscqlpmgqi85fs3igrv8c9y0xagild29k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/citeproc";
+          sha256 = "1qphg2bg7vvjzgvnsscbyf40llxxh4aa2s2ffk8vsbfd4p8208cq";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f queue s string-inflection ];
+        meta = {
+          homepage = "https://melpa.org/#/citeproc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cl-format = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cl-format";
+        ename = "cl-format";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "alvinfrancis";
+          repo = "cl-format";
+          rev = "4380cb8009c47cc6d9098b383082b93b1aefa460";
+          sha256 = "108s96viral3s62a77jfgvjam08hdk97frfmxjg3xpp2ifccjs7h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cl-format";
+          sha256 = "09jwy0fgaz2f04dvcdns6w859s6izvrkp8ib4lws3x8kx8z918fy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cl-format";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cl-lib-highlight = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "cl-lib-highlight";
+        ename = "cl-lib-highlight";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "cl-lib-highlight";
+          rev = "c117451df8455769701af6c8e92a8fb29c05e1fa";
+          sha256 = "12vgi5dicx3lxzngjcg9g3nflrhfy9wdw6ldm72zarp1h96jy5cw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cl-lib-highlight";
+          sha256 = "13qdrvpxq928p27b1xdcbsscyhqk042rwfa17037gp9h02fd42j8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/cl-lib-highlight";
+          license = lib.licenses.free;
+        };
+      }) {};
+    click-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "click-mode";
+        ename = "click-mode";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "bmalehorn";
+          repo = "click-mode";
+          rev = "c074e7b5b0a88434d0d3411f18884d1f6e288b33";
+          sha256 = "0w34ixzk8vs2nv5xr7l1b3k0crl1lqvbq6gs5r4b8rhsx9b6c1mb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/click-mode";
+          sha256 = "1p5dz4a74w5zxdlw17h5z9dglapia4p29880liw3bif2c7dzkg0r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/click-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cliphist = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ivy
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cliphist";
+        ename = "cliphist";
+        version = "0.5.5";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "cliphist";
+          rev = "e454254f8bd9dbaea28e95c786d7297a2d4e920a";
+          sha256 = "1lxsy78kmrrb82y7nlaaaq2qsly7f3wa8jw1bagjax4rwvld0vim";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cliphist";
+          sha256 = "0mg6pznijba3kvp3r57pi54v6mgih2vfwj2kg6qmcy1abrc0xq29";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/cliphist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clips-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "clips-mode";
+        ename = "clips-mode";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "clips-mode";
+          repo = "clips-mode";
+          rev = "f7869b67c2a8f061ce05f1e48abbcb41a6c455ce";
+          sha256 = "07r01g5xcr3w0kq09m4rb8ws0ss77szczycybvas4379sf3g8dv9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clips-mode";
+          sha256 = "1ckk8ajr1x8y2h8jx2q233xs69nip3kjn0wp3xgfbwx7hjcbk7kr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/clips-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clj-refactor = callPackage ({ cider
+                                , clojure-mode
+                                , edn
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , hydra
+                                , inflections
+                                , lib
+                                , melpaBuild
+                                , multiple-cursors
+                                , paredit
+                                , s
+                                , seq
+                                , yasnippet }:
+      melpaBuild {
+        pname = "clj-refactor";
+        ename = "clj-refactor";
+        version = "2.4.0";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "clj-refactor.el";
+          rev = "3d5d1fbf28bfcc00f917cd96d6784968dcbbc962";
+          sha256 = "1z9278syijnzxfwlghz7bps3jp4cdl0fxg6igwpjfl8ln56hxazk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clj-refactor";
+          sha256 = "05x0820x34pidcz03z96qs685y2700g7ha0dx4vy1xr7fg356c3z";
+          name = "recipe";
+        };
+        packageRequires = [
+          cider
+          clojure-mode
+          edn
+          emacs
+          hydra
+          inflections
+          multiple-cursors
+          paredit
+          s
+          seq
+          yasnippet
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/clj-refactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cljr-helm = callPackage ({ cl-lib ? null
+                             , clj-refactor
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm-core
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cljr-helm";
+        ename = "cljr-helm";
+        version = "0.11";
+        src = fetchFromGitHub {
+          owner = "philjackson";
+          repo = "cljr-helm";
+          rev = "f2fc7b698a56e4a44d5dfbc6a55d77a93c0fa9a4";
+          sha256 = "0jy6hkz8sr1bplymwxnjg4q408cw2dgfrv70chlw3y5ddc4cingj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cljr-helm";
+          sha256 = "108a1xgnc6qy088vs41j3npwk25a5vny0xx4r3yh76jsmpdpcgnc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib clj-refactor helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/cljr-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clocker = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , projectile }:
+      melpaBuild {
+        pname = "clocker";
+        ename = "clocker";
+        version = "0.0.11";
+        src = fetchFromGitHub {
+          owner = "roman";
+          repo = "clocker.el";
+          rev = "07338bc4b850d262eb263ac306ae3366cac6e078";
+          sha256 = "0f6qav92lyp36irdlamcxhzfd4p1i4iq18d5cmr7fgfwi894ikcg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clocker";
+          sha256 = "0cckrk40k1labiqjh7ghzpx5zi136xz70j3ipp117x52qf24k10k";
+          name = "recipe";
+        };
+        packageRequires = [ dash projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/clocker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clojure-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "clojure-mode";
+        ename = "clojure-mode";
+        version = "5.9.1";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "clojure-mode";
+          rev = "e8d6414043dc063d16598dc951c1ba8168738265";
+          sha256 = "0mz7zbm9z99k01jgni990x7jpghfnngxnrw1cz65y5lxwyxibnaz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clojure-mode";
+          sha256 = "11n0rjhs1mmlzdqy711g432an5ybdka5xj0ipsk8dx6xcyab70np";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/clojure-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clojure-mode-extra-font-locking = callPackage ({ clojure-mode
+                                                   , fetchFromGitHub
+                                                   , fetchurl
+                                                   , lib
+                                                   , melpaBuild }:
+      melpaBuild {
+        pname = "clojure-mode-extra-font-locking";
+        ename = "clojure-mode-extra-font-locking";
+        version = "5.9.1";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "clojure-mode";
+          rev = "9bbc8d59b3b4dfe3f0564f0d06832a309b4e4e4e";
+          sha256 = "0brwcxlz337bd1y1vjlix2aq6qjzqqrl0g9hag5lmpkimnbbnbv1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clojure-mode-extra-font-locking";
+          sha256 = "00nff9mkj61i76dj21x87vhz0bbkzgvkx1ypkxcv6yf3pfhq7r8n";
+          name = "recipe";
+        };
+        packageRequires = [ clojure-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/clojure-mode-extra-font-locking";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clojure-quick-repls = callPackage ({ cider
+                                       , dash
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "clojure-quick-repls";
+        ename = "clojure-quick-repls";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "symfrog";
+          repo = "clojure-quick-repls";
+          rev = "90f82e294cfdfb65231adc456177580cd69bfc00";
+          sha256 = "0sw34yjp8934xd2n76lbwyvxkbyz5pxszj6gkflas8lfjvms9z7d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clojure-quick-repls";
+          sha256 = "10glzyd4y3918pwp048pc1y7y7fa34fkqckn1nbys841dbssmay0";
+          name = "recipe";
+        };
+        packageRequires = [ cider dash ];
+        meta = {
+          homepage = "https://melpa.org/#/clojure-quick-repls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clojure-snippets = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "clojure-snippets";
+        ename = "clojure-snippets";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "mpenet";
+          repo = "clojure-snippets";
+          rev = "83785faa607884308a42b81f160854f2cecfd098";
+          sha256 = "1sdgf1avfw7w3m3i7nqb9m9nhqk8lr0bri686lrkq23ds2b44454";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clojure-snippets";
+          sha256 = "15622mdd6b3fpwp22d32p78yap08pyscs2vc83sv1xz4338i0lij";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/clojure-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    closql = callPackage ({ emacs
+                          , emacsql-sqlite
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "closql";
+        ename = "closql";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "closql";
+          rev = "012b94f8695e194455111fd54eff0b94dd0dd0db";
+          sha256 = "1xhpfjjkjqfc1k2rj77cscclz5r7gpvv3hi202x178vdcpipjwar";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/closql";
+          sha256 = "13ybna20w2d1b3n0y5p1ybhkw0j0zh5nd43p1yvf8h1haj983l87";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emacsql-sqlite ];
+        meta = {
+          homepage = "https://melpa.org/#/closql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    clues-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "clues-theme";
+        ename = "clues-theme";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-clues-theme";
+          rev = "abd61f2b7f3e98de58ca26e6d1230e70c6406cc7";
+          sha256 = "118k5bnlk9sc2n04saaxjncmc1a4m1wlf2y7xyklpffkazbd0m72";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/clues-theme";
+          sha256 = "0b0gypmxx8qjd8hgxf4kbvci1nwacsxl7rm5s1bcnk9cwc6k2jpr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/clues-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cm-mode = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "cm-mode";
+        ename = "cm-mode";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "criticmarkup-emacs";
+          rev = "276d49c859822265070ae5dfbb403fd7d8d06436";
+          sha256 = "0mqbjw9wiaq735v307hd7g0g6i3a4k7h71bi4g9rr2jbgiljmql4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cm-mode";
+          sha256 = "1rgfpxbnp8wiq9j8aywm2n07rxzkhqljigwynrkyvrnsgxlq2a9x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/cm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cmake-ide = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , levenshtein
+                             , lib
+                             , melpaBuild
+                             , seq }:
+      melpaBuild {
+        pname = "cmake-ide";
+        ename = "cmake-ide";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "atilaneves";
+          repo = "cmake-ide";
+          rev = "a2e476ad42e61075cae9beb35fb83e3c1bf8619e";
+          sha256 = "0n169i4y2c450bk5r284bakjk3hsg74pply5fqxvdm6p5p1z2vr1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cmake-ide";
+          sha256 = "0xvy7l80zw67jgvk1rkhwzjvsqjqckmd8zj6s67rgbm56z6ypmcg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs levenshtein seq ];
+        meta = {
+          homepage = "https://melpa.org/#/cmake-ide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cmake-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "cmake-mode";
+        ename = "cmake-mode";
+        version = "3.13.0.-1.3";
+        src = fetchFromGitHub {
+          owner = "Kitware";
+          repo = "CMake";
+          rev = "8d478c0003cc9bb4836038fc1a27d3bbd40348d2";
+          sha256 = "0i4rs8m7qf9milc9csy38r7m0j5xqy2q75fqmyxd4xpfmkf4a2v7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cmake-mode";
+          sha256 = "0zbn8syb5lw5xp1qcy3qcl75zfiyik30xvqyl38gdqddm9h7qmz7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cmake-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cmake-project = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "cmake-project";
+        ename = "cmake-project";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "alamaison";
+          repo = "emacs-cmake-project";
+          rev = "ec61f687772cccdb699f64ebe1e8dc8ba83f790f";
+          sha256 = "10xlny2agxjknvnjdnw41cyb3d361yy0wvpc8l1d0xwnmmfh3bxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cmake-project";
+          sha256 = "13n6j9ljvzjzkknbm9zkhxljcn12avl39gxqq95hah44dr11rns3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cmake-project";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cnfonts = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "cnfonts";
+        ename = "cnfonts";
+        version = "0.9.1";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "cnfonts";
+          rev = "5cfe656554c91b3d0dcc5417e43afa85d2a7a182";
+          sha256 = "1px5gc83g70whdiysq7mmxz7rm74mhsjs2y1vbzgg8k1z0cs9wkp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cnfonts";
+          sha256 = "1pryn08fkdrdj7w302205nj1qhfbk1jzqxx6717crrxakkdqmn9w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cnfonts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    code-stats = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , request }:
+      melpaBuild {
+        pname = "code-stats";
+        ename = "code-stats";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "code-stats-emacs";
+          rev = "20d60ded0743f01206c3c2e92ab73788def9adcb";
+          sha256 = "0g8pqqpwmc646krdpfkri8q7pwnj8sb3pma5mfkwg8lvj6ddcx27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/code-stats";
+          sha256 = "0mwjlhpmrbh3mbw3hjlsbv1fr4mxh068c9g0zcxq7wkksxx707if";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/code-stats";
+          license = lib.licenses.free;
+        };
+      }) {};
+    codic = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "codic";
+        ename = "codic";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-codic";
+          rev = "52bbb6997ef4ab9fb7fea43bbfff7f04671aa557";
+          sha256 = "14jcxrs3b02pbppvdsabr7c74i3c6d1lmd6l1p9dj8gv413pghsz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/codic";
+          sha256 = "0fq2qfqhkd6injgl66vcpd61j67shl9xj260aj6cgb2nriq0jxgn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/codic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    coffee-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "coffee-mode";
+        ename = "coffee-mode";
+        version = "0.6.3";
+        src = fetchFromGitHub {
+          owner = "defunkt";
+          repo = "coffee-mode";
+          rev = "adfb7ae73d6ee2ef790c780dd3c967e62930e94a";
+          sha256 = "0yhmg5j051mviqp5laz7y1zjs1w9ykbbxqm7vrgf2py0hpd1kcrg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/coffee-mode";
+          sha256 = "1px50hs0x30psa5ljndpcc22c0qwcaxslpjf28cfgxinawnp74g1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/coffee-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-identifiers-mode = callPackage ({ dash
+                                          , emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "color-identifiers-mode";
+        ename = "color-identifiers-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "ankurdave";
+          repo = "color-identifiers-mode";
+          rev = "536151410dbb198b328dc62b829d9692cec0b1bd";
+          sha256 = "1zwgyp65jivds9zvbp5k5q3gazffh3w0mvs739ddq93lkf165rwh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-identifiers-mode";
+          sha256 = "1hxp8lzn7kfckn5ngxic6qiz3nbynilqlxhlq9k1n1llfg216gfq";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/color-identifiers-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-modern = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-modern";
+        ename = "color-theme-modern";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "replace-colorthemes";
+          rev = "7107540d22e8ff045e0707de84c8b179fd829302";
+          sha256 = "0apvqrva3f7valjrxpslln8460kpr82z4zazj3lg3j82k102zla9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-modern";
+          sha256 = "0f662ham430fgxpqw96zcl1whcm28cv710g6wvg4fma60sblaxcm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-modern";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-sanityinc-solarized = callPackage ({ fetchFromGitHub
+                                                   , fetchurl
+                                                   , lib
+                                                   , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-sanityinc-solarized";
+        ename = "color-theme-sanityinc-solarized";
+        version = "2.29";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "color-theme-sanityinc-solarized";
+          rev = "554e941131d009c0a5d7129ed96796182b4cc590";
+          sha256 = "13jmg05skv409z8pg5m9rzkajj9knyln0ff8a3i1pbpyrnpngmmc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-sanityinc-solarized";
+          sha256 = "0xg79hgb893f1nqx6q4q6hp4w6rvgp1aah1v2r3scg2jk057qxkf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-sanityinc-solarized";
+          license = lib.licenses.free;
+        };
+      }) {};
+    color-theme-sanityinc-tomorrow = callPackage ({ fetchFromGitHub
+                                                  , fetchurl
+                                                  , lib
+                                                  , melpaBuild }:
+      melpaBuild {
+        pname = "color-theme-sanityinc-tomorrow";
+        ename = "color-theme-sanityinc-tomorrow";
+        version = "1.17";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "color-theme-sanityinc-tomorrow";
+          rev = "81d8990085960824f700520d08027e6aca58feaa";
+          sha256 = "1x3aq6hadp158vh8mf9hmj5rikq0qz7a1frv7vbl39xr3wcnjj23";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/color-theme-sanityinc-tomorrow";
+          sha256 = "1k8iwjc7iidq5sxybs47rnswa6c5dwqfdzfw7w0by2h1id2z6nqd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/color-theme-sanityinc-tomorrow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    colormaps = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "colormaps";
+        ename = "colormaps";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "lepisma";
+          repo = "colormaps.el";
+          rev = "3a88961ba66b09a49ea5aa92b2b8776b2c92d68c";
+          sha256 = "083hks2zzalizdsgabiwc1kd114r748v5i3w3kfk8pv37i2gay35";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/colormaps";
+          sha256 = "16plhgpfz1wb58p6h8wxjhplhgv0mbj3f2xj34p6vydh44l8w8q2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/colormaps";
+          license = lib.licenses.free;
+        };
+      }) {};
+    comb = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "comb";
+        ename = "comb";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "cyrus-and";
+          repo = "comb";
+          rev = "8a68d313bf429763eb8aa78ece00230a668f2a1f";
+          sha256 = "1hh1lkan1ch5xyzrpfgzibf8dxmvaa1jfwlxyyhpnfs5h69h3245";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/comb";
+          sha256 = "0n4pkigr07hwj5nb0ngs6ay80psqv7nppp82rg5w38qf0mjs3pkp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/comb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    commander = callPackage ({ cl-lib ? null
+                             , dash
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "commander";
+        ename = "commander";
+        version = "0.7.0";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "commander.el";
+          rev = "2c8a57b9c619e29ccbe2d5a85921b9c689e95bf9";
+          sha256 = "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/commander";
+          sha256 = "17y0hg6a90hflgwn24ww23qmvc1alzivpipca8zvpf0nih4fl393";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/commander";
+          license = lib.licenses.free;
+        };
+      }) {};
+    comment-dwim-2 = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "comment-dwim-2";
+        ename = "comment-dwim-2";
+        version = "1.2.2";
+        src = fetchFromGitHub {
+          owner = "remyferre";
+          repo = "comment-dwim-2";
+          rev = "8cedecde018b5872195bfead6511af822776a430";
+          sha256 = "0kzlv2my0cc7d3nki2rlm32nmb2nyjb38inmvlf13z0m2kybg2ps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/comment-dwim-2";
+          sha256 = "1w9w2a72ygsj5w47vjqcljajmmbz0mi8dhz5gjnpwxjwsr6fn6lj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/comment-dwim-2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    comment-tags = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , pkg-info }:
+      melpaBuild {
+        pname = "comment-tags";
+        ename = "comment-tags";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "vincekd";
+          repo = "comment-tags";
+          rev = "293a30026d7750f6657d6c2e6d6428abf1d7db5a";
+          sha256 = "06s0phgqpzkkv81gl0cm6x8rjs53lhs8b2j56xamflqiydq0fz7n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/comment-tags";
+          sha256 = "13slv150zch0b7zpxa2dbqjzpqh0iy559m6rc0zs0dwdagzryp3i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/comment-tags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    commentary-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "commentary-theme";
+        ename = "commentary-theme";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "pzel";
+          repo = "commentary-theme";
+          rev = "1e2a64719b9d52992c6cdb91911ab313bcd69a77";
+          sha256 = "1bs7dz10f25pi5wfszxgf6afrsbfw6fwp8sm55fa6c46l3pi9jpm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/commentary-theme";
+          sha256 = "1s3g40f0r0v8m1qqldvw64vs43i5xza7rwkvhxqcqmj6p1a7mqqw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/commentary-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    commenter = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , let-alist
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "commenter";
+        ename = "commenter";
+        version = "0.5.2";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "commenter";
+          rev = "6d1885419434ba779270c6fda0e30d390bb074bd";
+          sha256 = "1jwd3whag39qhzhbsfivzdlcr6vj37dv5ychkhmilw8v6dfdnpdb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/commenter";
+          sha256 = "01bm8jbj6xw23nls4fps6zwjkgvcsjhmn3l3ncqd764kwhxdx8q3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/commenter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    common-lisp-snippets = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , yasnippet }:
+      melpaBuild {
+        pname = "common-lisp-snippets";
+        ename = "common-lisp-snippets";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "common-lisp-snippets";
+          rev = "fc5c2683952328927a6d1c1f2694b85ddf7e9053";
+          sha256 = "1835kg05794p1wdi7fsmpzlnnqy79dgfnfrxjfjj2j1gzcwmynsw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/common-lisp-snippets";
+          sha256 = "0ig8cz00cbfx0jckqk1xhsvm18ivl2mjvcn65s941nblsywfvxjl";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/common-lisp-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "company";
+        ename = "company";
+        version = "0.9.7";
+        src = fetchFromGitHub {
+          owner = "company-mode";
+          repo = "company-mode";
+          rev = "c95a6b41d621de4253b77e512aa61fc0e75acddc";
+          sha256 = "1gpapjxs4l6fmmj22q0q1pyhj1yd9j5iqfqnjf1abskkj69lqkpj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company";
+          sha256 = "0v4x038ly970lkzb0n8fbqssfqwx1p46xldr7nss32jiqvavr4m4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-anaconda = callPackage ({ anaconda-mode
+                                    , cl-lib ? null
+                                    , company
+                                    , dash
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , s }:
+      melpaBuild {
+        pname = "company-anaconda";
+        ename = "company-anaconda";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "company-anaconda";
+          rev = "182a8fdabc01630f255beeb2708728c0cd5c6316";
+          sha256 = "1rqf9i4l32njpwx4aiwxqr994g3jzispwprs6nwjfvg70xkvm4m0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-anaconda";
+          sha256 = "1s7y47ghy7q35qpfqavh4p9wr91i6r579mdbpvv6h5by856yn4gl";
+          name = "recipe";
+        };
+        packageRequires = [ anaconda-mode cl-lib company dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-anaconda";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ansible = callPackage ({ company
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "company-ansible";
+        ename = "company-ansible";
+        version = "0.7.1";
+        src = fetchFromGitHub {
+          owner = "krzysztof-magosa";
+          repo = "company-ansible";
+          rev = "c6dc714e3a15f89671ae5e8fe668858b20ef63e8";
+          sha256 = "01nly13i2bs77lrvkm26i96vrrigbxpb9cakski9fv3xrvfxq9bv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ansible";
+          sha256 = "084l9dr2hvm00952y4m3jhchzxjhcd61sfn5ywj9b9a1d4sr110d";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ansible";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-cabal = callPackage ({ cl-lib ? null
+                                 , company
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-cabal";
+        ename = "company-cabal";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "company-cabal";
+          rev = "f458de88cad16ed48a605e8347e56433e73dcef8";
+          sha256 = "0ll9dxzsgrpy4psz3dqhzny990lfccn63swcyfvl8mnqgwbrq8k0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-cabal";
+          sha256 = "0pbjidj88c9qri6xw8023yqwnczad5ig224cbsz6vsmdla2nlxra";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-cabal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-coq = callPackage ({ cl-lib ? null
+                               , company
+                               , company-math
+                               , dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , yasnippet }:
+      melpaBuild {
+        pname = "company-coq";
+        ename = "company-coq";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "cpitclaudel";
+          repo = "company-coq";
+          rev = "bb507a11b088a8c9bb6500b384ed588bc690fcea";
+          sha256 = "0s6gzdmxlsl1l0vh52xspxys1wmsq063p6nva6qisg1r622gjzjl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-coq";
+          sha256 = "1iagm07ckf60kg4i8m4n0gfmv0brqc4dcn7lkcz229r3f4kyqksa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company company-math dash yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/company-coq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-dict = callPackage ({ company
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , parent-mode }:
+      melpaBuild {
+        pname = "company-dict";
+        ename = "company-dict";
+        version = "1.2.7";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-company-dict";
+          rev = "cc2f7aecc0a9d5b44c471a5550a49fd3ca535360";
+          sha256 = "1swd87p4vxlxqcajfh0clypqdwdkn85k3iy9gms1hm4m23wj6a4m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-dict";
+          sha256 = "1377b40f1j4rmw7lnhy1zsm6r234ds5zsn02v1ajm3bzrpkkmin0";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs parent-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-dict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-edbi = callPackage ({ cl-lib ? null
+                                , company
+                                , edbi
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "company-edbi";
+        ename = "company-edbi";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "company-edbi";
+          rev = "08dc69ccfbcf10ca83f7075e9b735c6885cd7e11";
+          sha256 = "0n2hvrfbybsp57w6m9mm7ywjq30fwwx9bzc2rllfr06d2ms7naai";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-edbi";
+          sha256 = "067ff1xdyqy4qzgk5pmqf4kksfjk1glkrslcj3rk4zmhcalwrfrm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company edbi s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-edbi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-emacs-eclim = callPackage ({ cl-lib ? null
+                                       , company
+                                       , eclim
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "company-emacs-eclim";
+        ename = "company-emacs-eclim";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "emacs-eclim";
+          repo = "emacs-eclim";
+          rev = "94508ebd071ff1052d68a20f7f1bf1038439fe43";
+          sha256 = "0l72zw93wv8ncn98d6ybnykhi3a60bc0kyx6z699wfhnnhhxhl0p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-emacs-eclim";
+          sha256 = "1l56hcy0y3cr38z1pjf0ilsdqdzvj3zwd40markm6si2xhdr8xig";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company eclim ];
+        meta = {
+          homepage = "https://melpa.org/#/company-emacs-eclim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-emoji = callPackage ({ cl-lib ? null
+                                 , company
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-emoji";
+        ename = "company-emoji";
+        version = "2.5.1";
+        src = fetchFromGitHub {
+          owner = "dunn";
+          repo = "company-emoji";
+          rev = "271909be44f86bcc294739ca45992cdc3caee39f";
+          sha256 = "1rihgld1wxwfdpqv7d9gcgd8xpnms5kpw61z30y18fmkxhhmid3c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-emoji";
+          sha256 = "1mflqqw9gnfcqjb6g8ivdfl7s4mdyjg7j0457hamgyvgvpxsh8x3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company ];
+        meta = {
+          homepage = "https://melpa.org/#/company-emoji";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-erlang = callPackage ({ company
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , ivy-erlang-complete
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "company-erlang";
+        ename = "company-erlang";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "s-kostyaev";
+          repo = "company-erlang";
+          rev = "bc0524a16f17b66c7397690e4ca0e004f09ea6c5";
+          sha256 = "04wm3i65fpzln7sdcny88hfjfm0n7wy44ffsr3697x4l95d0bnyh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-erlang";
+          sha256 = "0qlc89c05523kjzsb7j3yfi022la47kgixl74ggkafhn60scwdm7";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ivy-erlang-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/company-erlang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ghc = callPackage ({ cl-lib ? null
+                               , company
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ghc
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "company-ghc";
+        ename = "company-ghc";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "company-ghc";
+          rev = "64e4f9d0cf9377138a8dee34c69e7d578fd71090";
+          sha256 = "0y9i0q37xjbnlnlxq7xjvnpn6ykzbd55g6nbw10z1wg0m2v7f96r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ghc";
+          sha256 = "07adykza4dqs64bk8vjmgryr54khxmcy28hms5z8i1qpsk9vmvnn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs ghc ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ghc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-go = callPackage ({ company
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "company-go";
+        ename = "company-go";
+        version = "20150303";
+        src = fetchFromGitHub {
+          owner = "mdempsky";
+          repo = "gocode";
+          rev = "3109790fda3785bbad336e3dd85aaaa4604dbe8b";
+          sha256 = "1sn6fvskb8drxphxjn57nr7y0wfh3y6xiksym1fqx68znzwf7ckh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-go";
+          sha256 = "1zhdckq1c9jzi5cf90w2m77fq6l67rjri4lnf8maq82gxqzk6wa5";
+          name = "recipe";
+        };
+        packageRequires = [ company ];
+        meta = {
+          homepage = "https://melpa.org/#/company-go";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-irony = callPackage ({ cl-lib ? null
+                                 , company
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , irony
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-irony";
+        ename = "company-irony";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "Sarcasm";
+          repo = "company-irony";
+          rev = "52aca45bcd0f2cb0648fcafa2bbb4f8ad4b2fee7";
+          sha256 = "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-irony";
+          sha256 = "15adamk1b9y1i6k06i5ahf1wn70cgwlhgk0x6fk8pl5izg05z1km";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs irony ];
+        meta = {
+          homepage = "https://melpa.org/#/company-irony";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-irony-c-headers = callPackage ({ cl-lib ? null
+                                           , company
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , irony
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "company-irony-c-headers";
+        ename = "company-irony-c-headers";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "hotpxl";
+          repo = "company-irony-c-headers";
+          rev = "ba304fe7eebdff90bbc7dea063b45b82638427fa";
+          sha256 = "1x2dfjmy86icyv2g1y5bjlr87w8rixqdcndkwm1sba6ha277wp9i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-irony-c-headers";
+          sha256 = "0kiag5ggmc2f5c3gd8nn40x16i686jpdrfrflgrz2aih8p3g6af8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company irony ];
+        meta = {
+          homepage = "https://melpa.org/#/company-irony-c-headers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-jedi = callPackage ({ cl-lib ? null
+                                , company
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , jedi-core
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "company-jedi";
+        ename = "company-jedi";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-company-jedi";
+          rev = "ad49407451c7f28fe137f9c8f3a7fc89e8693a1b";
+          sha256 = "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-jedi";
+          sha256 = "1krrgrjq967c3j02y0i345yx6w4crisnj1k3bhih6j849fvy3fvj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs jedi-core ];
+        meta = {
+          homepage = "https://melpa.org/#/company-jedi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-lsp = callPackage ({ company
+                               , dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , lsp-mode
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "company-lsp";
+        ename = "company-lsp";
+        version = "2.0.2";
+        src = fetchFromGitHub {
+          owner = "tigersoldier";
+          repo = "company-lsp";
+          rev = "b93abde5bbc870170d2a2f5aa309be8a9618daf9";
+          sha256 = "1jb75km5w2y7iawknyb5nhi1k4mlll4srd6vaf4zm7frmx50jwyc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-lsp";
+          sha256 = "09nbi6vxw8l26gfgsc1k3bx4m8i1px1b0jxaywszky5bv4fdy03l";
+          name = "recipe";
+        };
+        packageRequires = [ company dash emacs lsp-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/company-lsp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-math = callPackage ({ company
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , math-symbol-lists
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "company-math";
+        ename = "company-math";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "company-math";
+          rev = "7e7f8c71f57b12f9bcbbf01f2bbcc59343ad76d4";
+          sha256 = "0akqhhjvzsg0lbqx4bbkfkzijidwgi3bb32sxl3yxz7zfm9pbhn2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-math";
+          sha256 = "0chig8k8l65bnd0a6734fiy0ikl20k9v2wlndh3ckz5a8h963g87";
+          name = "recipe";
+        };
+        packageRequires = [ company math-symbol-lists ];
+        meta = {
+          homepage = "https://melpa.org/#/company-math";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ngram = callPackage ({ cl-lib ? null
+                                 , company
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-ngram";
+        ename = "company-ngram";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "kshramt";
+          repo = "company-ngram";
+          rev = "d15182df3eac72b29772802759b77c9eafef5066";
+          sha256 = "05108s2a3c857n9j3c34hdni3fyq149pva4m3f51lis4wqrm4zv7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ngram";
+          sha256 = "1y9k9s8c248m91xld4f5l75j4swml333rpwq590bsx7mrsq131xx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ngram";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-nixos-options = callPackage ({ cl-lib ? null
+                                         , company
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , nixos-options }:
+      melpaBuild {
+        pname = "company-nixos-options";
+        ename = "company-nixos-options";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "travisbhartwell";
+          repo = "nix-emacs";
+          rev = "a3475995f9e107d339b9ea7a739ac6ebe2bf050f";
+          sha256 = "1jp6z1hrh80irvhz5lv5blbcc821w98y67ni1fmnlwdiv2mp049l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-nixos-options";
+          sha256 = "1yrqqdadmf7qfxpqp8wwb325zjnwwjmn2hhnl7i3j0ckg6hqyqf0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company nixos-options ];
+        meta = {
+          homepage = "https://melpa.org/#/company-nixos-options";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-php = callPackage ({ ac-php-core
+                               , cl-lib ? null
+                               , company
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "company-php";
+        ename = "company-php";
+        version = "2.0.6";
+        src = fetchFromGitHub {
+          owner = "xcwen";
+          repo = "ac-php";
+          rev = "440e4e63f88d2087305e738d0dae8edddfdcfb04";
+          sha256 = "0f132gpc2kkbjjcq4kr1cw0ikjggvmz0z6f8ws7xmm5f5rnn6jg8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-php";
+          sha256 = "1gnhklfkg17vxfx7fw65lr4nr07jx71y84mhs9zszwcr9p840hh5";
+          name = "recipe";
+        };
+        packageRequires = [ ac-php-core cl-lib company ];
+        meta = {
+          homepage = "https://melpa.org/#/company-php";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-phpactor = callPackage ({ cl-lib ? null
+                                    , company
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "company-phpactor";
+        ename = "company-phpactor";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phpactor.el";
+          rev = "61e4eab638168b7034eef0f11e35a89223fa7687";
+          sha256 = "0dsa1mygb96nlz5gppf0sny3lxaacvmvnkg84c0cs6x223s6zfx8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-phpactor";
+          sha256 = "1a6szs85hmxm2xpkmc3dyx2daap7bjvpnrl4gcmbq26zbz2f0z0a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-phpactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-prescient = callPackage ({ company
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , prescient }:
+      melpaBuild {
+        pname = "company-prescient";
+        ename = "company-prescient";
+        version = "2.2.1";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "prescient.el";
+          rev = "1623a0d4e5b9a752db45923fd91da48b49c85068";
+          sha256 = "0yan4m9xf4iia4ns8kqa0zsham4h2mcnwsq9xnfwm26rkn94xrw0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-prescient";
+          sha256 = "0cp918ihbjqxfgqnifknl5hphmvq5bl42dhp5ylvijsfa8kvbsb9";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs prescient ];
+        meta = {
+          homepage = "https://melpa.org/#/company-prescient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-quickhelp = callPackage ({ company
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , pos-tip }:
+      melpaBuild {
+        pname = "company-quickhelp";
+        ename = "company-quickhelp";
+        version = "2.3.0";
+        src = fetchFromGitHub {
+          owner = "expez";
+          repo = "company-quickhelp";
+          rev = "b2953c725654650677e3d66eaeec666826d5f65f";
+          sha256 = "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-quickhelp";
+          sha256 = "042bwv0wd4hksbm528zb7pbllzk83p8qjq5f8z46p84c8mmxfp9g";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs pos-tip ];
+        meta = {
+          homepage = "https://melpa.org/#/company-quickhelp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-restclient = callPackage ({ cl-lib ? null
+                                      , company
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , know-your-http-well
+                                      , lib
+                                      , melpaBuild
+                                      , restclient }:
+      melpaBuild {
+        pname = "company-restclient";
+        ename = "company-restclient";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "company-restclient";
+          rev = "c228f559cf845b4ac8e35728841e5352c1bec3b6";
+          sha256 = "0dq7vsk2pp2q6g8wp2agwfn0jjjb80kyq004biyci0p96qxr4li4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-restclient";
+          sha256 = "1md0n4k4wmbh9rmbwqh3kg2fj0c34rzqfd56jsq8lcdg14k0kdcb";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          company
+          emacs
+          know-your-http-well
+          restclient
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/company-restclient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-rtags = callPackage ({ company
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , rtags }:
+      melpaBuild {
+        pname = "company-rtags";
+        ename = "company-rtags";
+        version = "2.20";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "7c470ba8e15740f37c3a7a9c56331c1cc4c0b1bb";
+          sha256 = "05czbkgq48jv0f9vainflikil51xiwd0h24jmmx5886wi3v1wb4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-rtags";
+          sha256 = "0dicxbp3xn02pflrpfndj7hs494prvz64llsk1xpc2z23kfarp6f";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/company-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-shell = callPackage ({ cl-lib ? null
+                                 , company
+                                 , dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "company-shell";
+        ename = "company-shell";
+        version = "1.2.1";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "company-shell";
+          rev = "acdbf8cba6ad9831d81a77bab7bbfd50f19edd86";
+          sha256 = "1dk927da7g4a39sva9bda978bx6hpiz5kf341fj8sb7xhryvh5r2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-shell";
+          sha256 = "0my9jghf3s4idkgrpki8mj1lm5ichfvznb09lfwf07fjhg0q1apz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-shell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-solidity = callPackage ({ cl-lib ? null
+                                    , company
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "company-solidity";
+        ename = "company-solidity";
+        version = "0.1.9";
+        src = fetchFromGitHub {
+          owner = "ethereum";
+          repo = "emacs-solidity";
+          rev = "d0ff4dea49540f37301d869f2797fca2492f55d5";
+          sha256 = "1wcy5z4wggn3zs9h1kyvm0ji51ppjcqdmym3mmxbrhan6a0kq724";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-solidity";
+          sha256 = "118sjl9gpx9xmpb2m3sd5wmbgqvp7ak5dxrr5ja3rhd0rsnp2q5w";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company ];
+        meta = {
+          homepage = "https://melpa.org/#/company-solidity";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-sourcekit = callPackage ({ company
+                                     , dash
+                                     , dash-functional
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , sourcekit }:
+      melpaBuild {
+        pname = "company-sourcekit";
+        ename = "company-sourcekit";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "nathankot";
+          repo = "company-sourcekit";
+          rev = "8ba62ac25bf533b7f148f333bcb5c1db799f749b";
+          sha256 = "01dh0wdaydiai4v13r8g05rpiwqr5qqi34wif8vbk2mrr25wc7i9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-sourcekit";
+          sha256 = "0hr5j1ginf43h4qf3fvsh3z53z0c7w5a9lhrvdwmlzj396qhqmzs";
+          name = "recipe";
+        };
+        packageRequires = [ company dash dash-functional emacs sourcekit ];
+        meta = {
+          homepage = "https://melpa.org/#/company-sourcekit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-statistics = callPackage ({ company
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "company-statistics";
+        ename = "company-statistics";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "company-mode";
+          repo = "company-statistics";
+          rev = "906d8137224c1a5bd1dc913940e0d32ffecf5523";
+          sha256 = "0c98kfg7gimjx9cf8dmbk9mdsrybhphshrdl8dhif3zqvn6gxyd7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-statistics";
+          sha256 = "1fl4ldj17m3xhi6xbw3bp9c2jir34xv3jh9daiw8g912fv2l5dcj";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/company-statistics";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-tern = callPackage ({ cl-lib ? null
+                                , company
+                                , dash
+                                , dash-functional
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s
+                                , tern }:
+      melpaBuild {
+        pname = "company-tern";
+        ename = "company-tern";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "company-tern";
+          rev = "b20b3e490bf277c8480712210e3c92ea489859ef";
+          sha256 = "1l4b54rqwsb32r8zwwrag7s35zc3kpviafdrqkq8r1nyshg2yccm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-tern";
+          sha256 = "17pw4jx3f1hymj6sc0ri18jz9ngggj4a41kxx14fnmmm8adqn6wh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company dash dash-functional s tern ];
+        meta = {
+          homepage = "https://melpa.org/#/company-tern";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-terraform = callPackage ({ company
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , terraform-mode }:
+      melpaBuild {
+        pname = "company-terraform";
+        ename = "company-terraform";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "rafalcieslak";
+          repo = "emacs-company-terraform";
+          rev = "45a2bd090af79c119f92414c4dee8939b38903d1";
+          sha256 = "0gcg20f4nld54y48mssd3sfc7fxq07iff9gsi5av4b86kyzjfr6x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-terraform";
+          sha256 = "198ppqn6f7y9bg582z5s4cl9gg1q9ibsr7mmn68b50zvma7ankzh";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs terraform-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/company-terraform";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-web = callPackage ({ cl-lib ? null
+                               , company
+                               , dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , web-completion-data }:
+      melpaBuild {
+        pname = "company-web";
+        ename = "company-web";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "osv";
+          repo = "company-web";
+          rev = "f0cc9187c9c34f72ad71f5649a69c74f996bae9a";
+          sha256 = "1xcwwcy2866vzaqgn7hrl7j8k48mk74i4shm40v7ybacws47s9nr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-web";
+          sha256 = "1q2am684l4d038a3ymyy6gg2ds9lq5mcfc4in8dmvap5grdhia4b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib company dash web-completion-data ];
+        meta = {
+          homepage = "https://melpa.org/#/company-web";
+          license = lib.licenses.free;
+        };
+      }) {};
+    company-ycmd = callPackage ({ company
+                                , dash
+                                , deferred
+                                , f
+                                , fetchFromGitHub
+                                , fetchurl
+                                , let-alist
+                                , lib
+                                , melpaBuild
+                                , s
+                                , ycmd }:
+      melpaBuild {
+        pname = "company-ycmd";
+        ename = "company-ycmd";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-ycmd";
+          rev = "d042a673b4d717c3ca9d641f120bfe16c994c740";
+          sha256 = "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/company-ycmd";
+          sha256 = "1dycbp2q8grvv94mwp9n8s7xpz2zjs05l3lf471j3nlbk6xfsn5d";
+          name = "recipe";
+        };
+        packageRequires = [ company dash deferred f let-alist s ycmd ];
+        meta = {
+          homepage = "https://melpa.org/#/company-ycmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    composable = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "composable";
+        ename = "composable";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "paldepind";
+          repo = "composable.el";
+          rev = "a3c582994582603ef037db4464f8ea49d759a42e";
+          sha256 = "0qlrvr5z9gi6yr9angp5ijmjzqqhwbxlpz9265113x9cy9kjdkpl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/composable";
+          sha256 = "1fs4pczjn9sv12sladf6zbkz0cmzxr0jaqkiwryydal1l5nqqxcy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/composable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    composer = callPackage ({ emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , php-runtime
+                            , request
+                            , s
+                            , seq }:
+      melpaBuild {
+        pname = "composer";
+        ename = "composer";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "composer.el";
+          rev = "d88741009cf7cae0a75e3cc7a19dd9143fcc92f9";
+          sha256 = "0iqm8997pl3pni7a49igj8q6sp37bjdshjwl6d95bqrjkjf9ll08";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/composer";
+          sha256 = "01w9cywhfngkrl9az8kfpzm12nc0zwmax01pyxlbi2l2icmvp5s1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f php-runtime request s seq ];
+        meta = {
+          homepage = "https://melpa.org/#/composer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    concurrent = callPackage ({ deferred
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "concurrent";
+        ename = "concurrent";
+        version = "0.5.1";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-deferred";
+          rev = "9668749635472a63e7a9282e2124325405199b79";
+          sha256 = "1ch5br9alvwcpijl9g8w5ypjrah29alpfpk4hjw23rwzyq5p4izq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/concurrent";
+          sha256 = "09wjw69bqrr3424h0mpb2kr5ixh96syjjsqrcyd7z2lsas5ldpnf";
+          name = "recipe";
+        };
+        packageRequires = [ deferred emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/concurrent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    conda = callPackage ({ dash
+                         , emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pythonic
+                         , s }:
+      melpaBuild {
+        pname = "conda";
+        ename = "conda";
+        version = "0.0.9";
+        src = fetchFromGitHub {
+          owner = "necaris";
+          repo = "conda.el";
+          rev = "64b804c33f2667e8232689770a9f2e332c2dd0ab";
+          sha256 = "1w1p1m2d0mwi3frkah5cnphyqsix7fp1li8glhlwf923cg48cxfq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/conda";
+          sha256 = "1hi292h6ccl7vkvyxcwwcdxw8q2brv3hy0mnlikzj2qy5pbnfg4y";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f pythonic s ];
+        meta = {
+          homepage = "https://melpa.org/#/conda";
+          license = lib.licenses.free;
+        };
+      }) {};
+    conkeror-minor-mode = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "conkeror-minor-mode";
+        ename = "conkeror-minor-mode";
+        version = "1.6.2";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "conkeror-minor-mode";
+          rev = "476e81c27b056e21c192391fe674a2bf875466b0";
+          sha256 = "0sz3qx1bn0lwjhka2l6wfl4b5486ji9dklgjs7fdlkg3dgpp1ahx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/conkeror-minor-mode";
+          sha256 = "1ch108f20k7xbf79azsp31hh4wmw7iycsxddcszgxkbm7pj11933";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/conkeror-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    conllu-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , flycheck
+                               , hydra
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "conllu-mode";
+        ename = "conllu-mode";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "odanoburu";
+          repo = "conllu-mode";
+          rev = "0544bc941182521c75f7d8212d9110d663da4970";
+          sha256 = "18dr733iv91raq4ds73n6f757hjfq2gss2hbqpmqyakqfvm7z6h3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/conllu-mode";
+          sha256 = "1wffvvs8d0xcnz6mcm9rbr8imyj4npyc148yh0gzfzlgjm0fiz1v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs flycheck hydra s ];
+        meta = {
+          homepage = "https://melpa.org/#/conllu-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    connection = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "connection";
+        ename = "connection";
+        version = "1.10";
+        src = fetchFromGitHub {
+          owner = "myrkr";
+          repo = "dictionary-el";
+          rev = "a5ef20b2c32457880827ceda58f927ad9a26d2b7";
+          sha256 = "0ahn0v6qdfwvv9n0m6jcgrzmyarbsbvpgq8g4qy2g37ak4j60hp7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/connection";
+          sha256 = "1y68d2kay8p5vapailxhrc5dl7b8k8nkvp7pa54md3fsivwp1d0q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/connection";
+          license = lib.licenses.free;
+        };
+      }) {};
+    contextual = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "contextual";
+        ename = "contextual";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "e-user";
+          repo = "contextual";
+          rev = "8134a2d8034c624f4fdbbb0b3893de12f4257909";
+          sha256 = "0s4b7dkndhnh8q3plvg2whjx8zd7ffz4hnbn3xh86xd3k7sch7av";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/contextual";
+          sha256 = "1xwjjchmn3xqxbgvqishh8i75scc4kjgdzlp5j64d443pfgyr56a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/contextual";
+          license = lib.licenses.free;
+        };
+      }) {};
+    contextual-menubar = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "contextual-menubar";
+        ename = "contextual-menubar";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "contextual-menubar";
+          rev = "cc2e7c952b59401188b81d84be81dead9d0da3db";
+          sha256 = "01mk5xzsg52vfqjri1my193y6jczg2dp3pa2d0v0vw11m1k433h3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/contextual-menubar";
+          sha256 = "0r9bsnvf45h7gsdfhsz7h02nskjvflfa2yjarjv9fcl7aipz8rr6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/contextual-menubar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    copy-as-format = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "copy-as-format";
+        ename = "copy-as-format";
+        version = "0.0.7";
+        src = fetchFromGitHub {
+          owner = "sshaw";
+          repo = "copy-as-format";
+          rev = "971957166fe64d914ec4be209b4f80efeeabbb19";
+          sha256 = "0ynzy2sb75w24d2kwjpkb3vl98yyz0sbcj6nd31y2r2n2kkdna24";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/copy-as-format";
+          sha256 = "1yij5mqm0dg6326yms0a2w8gs42kdxq0ih8dhkpdar54r0bk3m8k";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/copy-as-format";
+          license = lib.licenses.free;
+        };
+      }) {};
+    copy-file-on-save = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , f
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , s }:
+      melpaBuild {
+        pname = "copy-file-on-save";
+        ename = "copy-file-on-save";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "emacs-auto-deployment";
+          rev = "5af6d5fcc35ddf9050eada96fd5f334bf0661b62";
+          sha256 = "1q9liby1dmwwmg2jz13gx2ld47bpcqb9c7vx4qgky75wb5c2q1xz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/copy-file-on-save";
+          sha256 = "1mcwgkhd241aijnmzrrqqn9f7hiq5k1w4fj83v50aixrcs049gc3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/copy-file-on-save";
+          license = lib.licenses.free;
+        };
+      }) {};
+    copyit = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "copyit";
+        ename = "copyit";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "emacs-copyit";
+          rev = "be8dca96ef434d6658e4707b042c094e909d5141";
+          sha256 = "1058qvgl6fkz5srizny0hfbjgqfsb5l9id7zrs5fb5qkilk9s01v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/copyit";
+          sha256 = "1m28irqixzl44c683dxvc5x6l3qcqlpy6jzk6629paqkdi5mx1c0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/copyit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    copyit-pandoc = callPackage ({ copyit
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , pandoc }:
+      melpaBuild {
+        pname = "copyit-pandoc";
+        ename = "copyit-pandoc";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "emacs-copyit";
+          rev = "c973d3650208a033aaf845989d023f9c6e572ddd";
+          sha256 = "1fwndjbzwhl4dzrw5jxbq66yggxkl81ga3cnnl7rm3s63pkb6l3w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/copyit-pandoc";
+          sha256 = "03v448gh6glq126r95w4y6s2p08jgjhkc6zgsplx0v9d5f2mwaqk";
+          name = "recipe";
+        };
+        packageRequires = [ copyit emacs pandoc ];
+        meta = {
+          homepage = "https://melpa.org/#/copyit-pandoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    corral = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "corral";
+        ename = "corral";
+        version = "0.3.20";
+        src = fetchFromGitHub {
+          owner = "nivekuil";
+          repo = "corral";
+          rev = "8813288de240956641b37deafaaa4811548246df";
+          sha256 = "06l2imhxm6dijkqlhk9s0vsa5a0ghybpy7qk7wpkgv0dlm3k3w7n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/corral";
+          sha256 = "1drccqk4qzkgvkgkzlrrfd1dcgj8ziqriijrjihrzjgjsbpzv6da";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/corral";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , swiper }:
+      melpaBuild {
+        pname = "counsel";
+        ename = "counsel";
+        version = "0.10.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper";
+          rev = "4a2cee03519f98cf95b29905dec2566a39ff717e";
+          sha256 = "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel";
+          sha256 = "0y8cb2q4mqvzan5n8ws5pjpm7bkjcghg5q19mzc3gqrq9vrvyzi6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-bbdb = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , ivy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-bbdb";
+        ename = "counsel-bbdb";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "counsel-bbdb";
+          rev = "c86f4b9ef99c9db0b2c4196a300d61300dc2d0c1";
+          sha256 = "1dchyg8cs7n0zbj6mr2z840yi06b2wja65k04idlcs6ngy1vc3sr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-bbdb";
+          sha256 = "14d9mk44skpmyj0zkqwz97j80r630j7s5hfrrhlsafdpl5aafjxp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-bbdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-dash = callPackage ({ counsel
+                                , dash
+                                , dash-functional
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm-dash
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-dash";
+        ename = "counsel-dash";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "nathankot";
+          repo = "counsel-dash";
+          rev = "a342340bbd8e50e4d1015e0b91d8ecd8f6cdf9f2";
+          sha256 = "1ma67lc4y9y3byrz8v6635w8q2scp6f2cqagq09k723k5nnwisfj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-dash";
+          sha256 = "0pzh8ww1p2jb859gdjr5ypya3rwhiyg3c79xhx8filxrqxgjv5fk";
+          name = "recipe";
+        };
+        packageRequires = [ counsel dash dash-functional emacs helm-dash ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-dash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-etags = callPackage ({ counsel
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-etags";
+        ename = "counsel-etags";
+        version = "1.7.3";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "counsel-etags";
+          rev = "2690602b22bbcc70e051f2f9f5fb6a3956a2bf38";
+          sha256 = "10vg1lbh58r8lad4ak8zdq8hw2sg714n4avr41yvm3g8022pnmqa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-etags";
+          sha256 = "1h3dlczm1m21d4h41vz9ngg5fi02g6f95qalfxdnsvz0d4w4yxk0";
+          name = "recipe";
+        };
+        packageRequires = [ counsel emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-etags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-gtags = callPackage ({ counsel
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-gtags";
+        ename = "counsel-gtags";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-counsel-gtags";
+          rev = "88c47af65fafaabd908e80dec4cf2aae921581c0";
+          sha256 = "0qgvic4vdmgr46c0jya80v1ky2v9viqvqgkxzmq4i81zl6f7ad4d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-gtags";
+          sha256 = "12qyb1lnzyd2rr4ankpqi30h0bj66ap5qw87y4605k0j44vhnsax";
+          name = "recipe";
+        };
+        packageRequires = [ counsel emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-gtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-projectile = callPackage ({ counsel
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , projectile }:
+      melpaBuild {
+        pname = "counsel-projectile";
+        ename = "counsel-projectile";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "ericdanan";
+          repo = "counsel-projectile";
+          rev = "536872f022f449548bdb97faa1776d1d44499d73";
+          sha256 = "0pm5sqhr24n2ffycazxgl3d3dl7gai8svwz01vc0pgx9c0x75kl8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-projectile";
+          sha256 = "1gshphxaa902kq878rnizn3k1zycakwqkciz92z3xxb3bdyy0hnl";
+          name = "recipe";
+        };
+        packageRequires = [ counsel projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    counsel-tramp = callPackage ({ counsel
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "counsel-tramp";
+        ename = "counsel-tramp";
+        version = "0.5.2";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-counsel-tramp";
+          rev = "5e3345f3d11f965e80763a3f68dca8a05f597224";
+          sha256 = "0rjkgf5idbnkjscmg4n8wvwh2s7dpj0ic848icil2xhc4i189z7k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/counsel-tramp";
+          sha256 = "1ga57v6whnpigciw54k3hs0idq4cbl35qrysarik72f46by859v5";
+          name = "recipe";
+        };
+        packageRequires = [ counsel emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/counsel-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    coverage = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , ov }:
+      melpaBuild {
+        pname = "coverage";
+        ename = "coverage";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "trezona-lecomte";
+          repo = "coverage";
+          rev = "c73d984168955ca0f47f44b0464aa45282df42b6";
+          sha256 = "1kn61j91x4r4kc498y2jas5il4pc4qzhkj8392g2qiq5m3lbv4vl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/coverage";
+          sha256 = "0ja7wsx2sj0h01sk1l3c0aidbs1ld4gj3kiwq6brs7r018sz45pm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ov ];
+        meta = {
+          homepage = "https://melpa.org/#/coverage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    coverlay = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "coverlay";
+        ename = "coverlay";
+        version = "3.0.1";
+        src = fetchFromGitHub {
+          owner = "twada";
+          repo = "coverlay.el";
+          rev = "8205a845d58755dd7640b2e2b5991bf842998935";
+          sha256 = "1mppan4ml4dblwxdgr8pli7nj864frc7n7c6h47q4vfb4flg29n0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/coverlay";
+          sha256 = "1n0fblacwps94mhbdwpi22frhqp3pxg4323ghb79rvszb7in9i8j";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/coverlay";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cpputils-cmake = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "cpputils-cmake";
+        ename = "cpputils-cmake";
+        version = "5.5";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "cpputils-cmake";
+          rev = "55e5c69554379632692a0fa20bfadeef9194fbdd";
+          sha256 = "1rk0bwdvfrp24z69flh7jg3c8vgvwk6vciixmmmldnrlwhpnbh6i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cpputils-cmake";
+          sha256 = "0fswmmmrjv897n51nidmn8gs8yp00595g35vwjafsq6rzfg58j60";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cpputils-cmake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    creamsody-theme = callPackage ({ autothemer
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "creamsody-theme";
+        ename = "creamsody-theme";
+        version = "0.3.7";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-theme-creamsody";
+          rev = "32fa3f4e461da92700523b1b20e7b28974c19a26";
+          sha256 = "01q1l8ajw6lpp1bb4yp8r70d86hcl4hy0mz7x1hzqsvb7flhppp0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/creamsody-theme";
+          sha256 = "0l3mq43bszxrz0bxmxb76drp4c8721cw8akgk3l5a800wqbfp2l7";
+          name = "recipe";
+        };
+        packageRequires = [ autothemer ];
+        meta = {
+          homepage = "https://melpa.org/#/creamsody-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    creds = callPackage ({ dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , s }:
+      melpaBuild {
+        pname = "creds";
+        ename = "creds";
+        version = "0.0.6.1";
+        src = fetchFromGitHub {
+          owner = "ardumont";
+          repo = "emacs-creds";
+          rev = "00ebefd10005c170b790a01380cb6a98f798ce5c";
+          sha256 = "169ai0xkh3988racnhaapxw0v1pbxvcaq470x1qacdzdpka4a7bs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/creds";
+          sha256 = "0n11xxaf93bbc9ih25wj09zzw4sj32wb99qig4zcy8bpkl5y3llk";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/creds";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cricbuzz = callPackage ({ dash
+                            , enlive
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "cricbuzz";
+        ename = "cricbuzz";
+        version = "0.3.6";
+        src = fetchFromGitHub {
+          owner = "lepisma";
+          repo = "cricbuzz.el";
+          rev = "0b95d45991bbcd2fa58d96ce921f6a57ba42c153";
+          sha256 = "1s77a2lfy7nnaxm3ai9dg8lbdxp0892z4gr0yxqrgzawc4qcbb3x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cricbuzz";
+          sha256 = "18nmr7rpbylqgfx5q3ps38wx9q1ndj06msgyjyc8lqpipbsz0pip";
+          name = "recipe";
+        };
+        packageRequires = [ dash enlive f s ];
+        meta = {
+          homepage = "https://melpa.org/#/cricbuzz";
+          license = lib.licenses.free;
+        };
+      }) {};
+    crm-custom = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "crm-custom";
+        ename = "crm-custom";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "crm-custom";
+          rev = "f1aaccf64306a5f99d9bf7ba815d7ea41c15518d";
+          sha256 = "1kl6blr4dlz40gfc845071nhfms4fm59284ja2177bhghy3wmw6r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/crm-custom";
+          sha256 = "14w15skxr44p9ilhpswlgdbqfw8jghxi69l37yk4m449m7g9694c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/crm-custom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    crux = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , seq }:
+      melpaBuild {
+        pname = "crux";
+        ename = "crux";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "crux";
+          rev = "5b3c8155a9e9fe6f189645d175976026a2dc7b8d";
+          sha256 = "0809pb8626i6z1dics3i1cs30p4qd8bzqcgr20lx9k3yq2abq2k7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/crux";
+          sha256 = "10lim1sngqbdqqwyq6ksqjjqpkm97aj1jk550sgwj28338lnw73c";
+          name = "recipe";
+        };
+        packageRequires = [ seq ];
+        meta = {
+          homepage = "https://melpa.org/#/crux";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cryptol-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "cryptol-mode";
+        ename = "cryptol-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "thoughtpolice";
+          repo = "cryptol-mode";
+          rev = "b893e81452b631b464e5a98d17abd3d6627cc629";
+          sha256 = "0s62xpwx1m875cqcpd1c5yxgjglwvpa1pz3f7fkl485q5ip4zydl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cryptol-mode";
+          sha256 = "08iq69gqmps8cckybhj9065b8a2a49p0rpzgx883qxnypsmjfmf2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cryptol-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    crystal-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "crystal-mode";
+        ename = "crystal-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "crystal-lang-tools";
+          repo = "emacs-crystal-mode";
+          rev = "0fe6815201bebe4c5ff6857bd541d95b05132b10";
+          sha256 = "0r75dvc0jqcqi1qjns8zj132dnm0s6mvqlqynkis16nigbawix8m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/crystal-mode";
+          sha256 = "1fgpz7zab6nc6kvjzjsbvrbg8shf4by0f20cvjvyky8kym72q0hk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/crystal-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    csharp-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "csharp-mode";
+        ename = "csharp-mode";
+        version = "0.9.2";
+        src = fetchFromGitHub {
+          owner = "josteink";
+          repo = "csharp-mode";
+          rev = "5e47b7764b3f4c97c260a902e8072d444dbd0f1b";
+          sha256 = "1dnhpxcinrwc7dmwgzbg4lnly05h38f00zrfsjincvii6d8rjiw0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/csharp-mode";
+          sha256 = "17j84qrprq492dsn103dji8mvh29mbdlqlpsszbgfdgnpvfr1rv0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/csharp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    csound-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , multi
+                               , shut-up }:
+      melpaBuild {
+        pname = "csound-mode";
+        ename = "csound-mode";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "hlolli";
+          repo = "csound-mode";
+          rev = "5a892e6ad72e7844e8e14c0da04fcb6bc125fe5e";
+          sha256 = "1gzg2r7agllz2asp7dbxykydpnw3861whs2pfhr3fwwb39xf1pva";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/csound-mode";
+          sha256 = "047a78nhkn6qycsz8w9a0r1xyz5wyf4rds3z5yx9sn5wkv54w95d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs multi shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/csound-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    csv = callPackage ({ fetchFromGitLab
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "csv";
+        ename = "csv";
+        version = "2.1";
+        src = fetchFromGitLab {
+          owner = "u11";
+          repo = "csv.el";
+          rev = "aa1dfa1263565d5fac3879c21d8ddf5f8915e411";
+          sha256 = "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/csv";
+          sha256 = "1rvi5p27lsb284zqgv4cdqkbqc9r92axmvg7sv52rm7qcj8njwqd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/csv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ctable = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ctable";
+        ename = "ctable";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-ctable";
+          rev = "08a017bde6d24ea585e39ce2637bebe28774d316";
+          sha256 = "13zq8kym1y6bzrpxbcdz32323a6azy5px4ridff6xh8bfprwlay3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ctable";
+          sha256 = "040qmlgfvjc1f908n52m5ll2fizbrhjzbd0kgrsw37bvm3029rx1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ctable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ctags-update = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ctags-update";
+        ename = "ctags-update";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "ctags-update";
+          rev = "ff4f211e42df94fdeba376e62b65dc67f0388589";
+          sha256 = "09vdfmm846zhn5nxnndi7qg7rdsf5xd4zhynbx0mnm00cfw1vf0y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ctags-update";
+          sha256 = "07548jjpx4var2817y47i6br8iicjlj66n1b33h0av6r1h514nci";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ctags-update";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ctxmenu = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , log4e
+                           , melpaBuild
+                           , popup
+                           , yaxception }:
+      melpaBuild {
+        pname = "ctxmenu";
+        ename = "ctxmenu";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-ctxmenu";
+          rev = "5c2376859562b98c07c985d2b483658e4c0e888e";
+          sha256 = "1jlr2miwqsg06hk2clvsrw9fa98m2n76qfq8qv5svrb8dpil04wb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ctxmenu";
+          sha256 = "03g9px858mg19wapqszwav3599slljdyam8bvn1ri85fpa5ydvdp";
+          name = "recipe";
+        };
+        packageRequires = [ log4e popup yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/ctxmenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cubicaltt = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cubicaltt";
+        ename = "cubicaltt";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "mortberg";
+          repo = "cubicaltt";
+          rev = "260b34e710cf18883f61f30bfcaf4e3823bebc0c";
+          sha256 = "0wdc26niyx2h49hfqshwqbvg0sbsg5dlfmwnl5y9jwf12170a9q3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cubicaltt";
+          sha256 = "1wgy6965cnw201wx4a2pn71sa40mh2712y0d0470klr156krj0n9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cubicaltt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cubicle-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "cubicle-mode";
+        ename = "cubicle-mode";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "cubicle-model-checker";
+          repo = "cubicle";
+          rev = "9d108b900e0123236b4991c2d06b5061f34feee8";
+          sha256 = "1n3x6m19swkq07zah4hh0ni6gx864bq1w0km06nq33x8189zczrr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cubicle-mode";
+          sha256 = "0xcmd0s6dfryl1ihfaqq0pfqc906yzzwk3d3nv8g6b6w78pv1lzv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cubicle-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cuda-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "cuda-mode";
+        ename = "cuda-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "chachi";
+          repo = "cuda-mode";
+          rev = "c8cf7d92b8039cdd0bd525c258ab42f49a0f91cf";
+          sha256 = "1y685qfdkjyl7dwyvivlgc2lwp102vy6hvcb9zynw84c49f726sn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cuda-mode";
+          sha256 = "0ip4vax93x72bjrh6prik6ddmrvszpsmgm0fxfz772rp24smc300";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cuda-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cwl-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , yaml-mode }:
+      melpaBuild {
+        pname = "cwl-mode";
+        ename = "cwl-mode";
+        version = "0.2.5";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "cwl-mode";
+          rev = "2fa8c8db68a8665ed555126975edd8749bcfc009";
+          sha256 = "0zgnnvf8k5zcigykcf6slgcjmwb1l0jdfaqm19r34wp3md8wf0v1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cwl-mode";
+          sha256 = "0x8akxxmphpgsc2m78h6b0fs6vvcfvmi1q2jrz8hwlmai8f7zi9j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/cwl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cyberpunk-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "cyberpunk-theme";
+        ename = "cyberpunk-theme";
+        version = "1.21";
+        src = fetchFromGitHub {
+          owner = "n3mo";
+          repo = "cyberpunk-theme.el";
+          rev = "17f68f8ac70b712d2870ecb6adb3841b992074fa";
+          sha256 = "05mfgr9aj7knn7niadv9p6z3qrfpq2lbbi2wxxx62xywim9maw2y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cyberpunk-theme";
+          sha256 = "0l2bwb5afkkhrbh99v2gns1vil9s5911hbnlq5w35nmg1wvbmbc9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cyberpunk-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cyphejor = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "cyphejor";
+        ename = "cyphejor";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "cyphejor";
+          rev = "d7842388a1872b165489624a1a68f536de97e28d";
+          sha256 = "1gi7rp0vf3iahljzjhs3rj9c0rvfcfs93hr8a3hl0ch3h9qq8ng2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cyphejor";
+          sha256 = "18l5km4xm5j3vv19k3fxs8i3rg4qnhrvx7b62vmyfcqmpiasrh6g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/cyphejor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    cython-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "cython-mode";
+        ename = "cython-mode";
+        version = "0.29";
+        src = fetchFromGitHub {
+          owner = "cython";
+          repo = "cython";
+          rev = "9f3f99fd6378ffb17976d74356fd3ba7e22f85b3";
+          sha256 = "164ksml3i5gmcwripjsn5byfvnnjf86wrkkd9saw481ym6imii3c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/cython-mode";
+          sha256 = "0asai1f1pncrfxx296fn6ky09hj1qam5j0dpxxkzhy0a34xz0k2i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/cython-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    d-mode = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "d-mode";
+        ename = "d-mode";
+        version = "2.0.9";
+        src = fetchFromGitHub {
+          owner = "Emacs-D-Mode-Maintainers";
+          repo = "Emacs-D-Mode";
+          rev = "d7f46a28aca981e719d12460bf9b71e355d79565";
+          sha256 = "0kg91rdlvq2ypc6cww9gakbyd631lakcmqmbs7v0agc7vmba61xz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/d-mode";
+          sha256 = "060k9ndjx0n5vlpzfxlv5zxnizx72d7y9vk7gz7gdvpm6w2ha0a2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/d-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dad-joke = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "dad-joke";
+        ename = "dad-joke";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "dad-joke.el";
+          rev = "bee47e7b746b403228fa7d7361cb095de19ac9ba";
+          sha256 = "14snnnjs28jg6k8x6g90m3dbcx10306ipcd256d3l6czk9p17vpd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dad-joke";
+          sha256 = "1cg8iaq79w5zx1s3dirdl7ymcp162mmsy5c4vly90v20yrijblad";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dad-joke";
+          license = lib.licenses.free;
+        };
+      }) {};
+    daemons = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "daemons";
+        ename = "daemons";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "cbowdon";
+          repo = "daemons.el";
+          rev = "dcf42cb3178d7245d6d49de346d5e2b44e5b7498";
+          sha256 = "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/daemons";
+          sha256 = "14givkrw9p0m261hawahzi0n8jarapb63kv1s62faq57mqnq23jr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/daemons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dante = callPackage ({ dash
+                         , emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , flycheck
+                         , haskell-mode
+                         , lib
+                         , melpaBuild
+                         , s }:
+      melpaBuild {
+        pname = "dante";
+        ename = "dante";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "jyp";
+          repo = "dante";
+          rev = "3500ade60c5c4e831b04c92c56dc888063335d3b";
+          sha256 = "07nc1bgb67nlsf567cky6kvd3blm0w7nwpr92xga7jm6dqnqhlkg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dante";
+          sha256 = "1j0qwjshh2227k63vd06bvrsccymqssx26yfzams1xf7bp6y0krs";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f flycheck haskell-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/dante";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dap-mode = callPackage ({ bui
+                            , dash
+                            , dash-functional
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , lsp-java
+                            , lsp-mode
+                            , melpaBuild
+                            , s
+                            , tree-mode }:
+      melpaBuild {
+        pname = "dap-mode";
+        ename = "dap-mode";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "yyoncho";
+          repo = "dap-mode";
+          rev = "d1a27fd8e27f03d1a2bf2113f2f9f26ce648178c";
+          sha256 = "0bp4giv3gjm3r9ws8qw260j29q7y5c5yj94afdhiqdj093yjv994";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dap-mode";
+          sha256 = "1vxqgi50wa151k1gc8ja8nma1v2qrinp26lwrn2w2jlihh1jpb3f";
+          name = "recipe";
+        };
+        packageRequires = [
+          bui
+          dash
+          dash-functional
+          emacs
+          f
+          lsp-java
+          lsp-mode
+          s
+          tree-mode
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/dap-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    darcula-theme = callPackage ({ fetchFromGitLab
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "darcula-theme";
+        ename = "darcula-theme";
+        version = "2.0";
+        src = fetchFromGitLab {
+          owner = "fommil";
+          repo = "emacs-darcula-theme";
+          rev = "2ecd466ffa7a3157b9ddcd7545b6fb8ad308c976";
+          sha256 = "1h5lssnc1am54hkprnp61bsj5fnm8j556q2gbhljfjgrdwnqv8ky";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/darcula-theme";
+          sha256 = "1n9mpkdyf5jpxc5azfs38ccp9p0b5ii87sz4c7z4khs94y0gxqh3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/darcula-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    darktooth-theme = callPackage ({ autothemer
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "darktooth-theme";
+        ename = "darktooth-theme";
+        version = "0.3.10";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "emacs-theme-darktooth";
+          rev = "ae14a9be19b6fbd287e0f5ad156e7942cd6a5bc6";
+          sha256 = "1jisiz0blksjl6d8q7bnvnlfrwalqfpd93fs66i8pgllhf5z7j19";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/darktooth-theme";
+          sha256 = "1vss0mg1vz4wvsal1r0ya8lid2c18ig11ip5v9nc80b5slbixzvs";
+          name = "recipe";
+        };
+        packageRequires = [ autothemer ];
+        meta = {
+          homepage = "https://melpa.org/#/darktooth-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dart-mode = callPackage ({ cl-lib ? null
+                             , dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , flycheck
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "dart-mode";
+        ename = "dart-mode";
+        version = "1.0.3";
+        src = fetchFromGitHub {
+          owner = "bradyt";
+          repo = "dart-mode";
+          rev = "f3a7c7b71fb12d02fa02700bc10426cb10010d01";
+          sha256 = "1g0c37qfqki7v1a5rxf6sy7k07i529rw3f1wmjl7g1zhd9bwsml2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dart-mode";
+          sha256 = "0zpvp86067a6l63wrpqxsm9fhv3n4ggbq8pg21vgiz54hk4x1xpp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs flycheck s ];
+        meta = {
+          homepage = "https://melpa.org/#/dart-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dash = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "dash";
+        ename = "dash";
+        version = "2.14.1";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "dash.el";
+          rev = "a74f4cfcdc8d0642a9f602ad494f0354f27dacc9";
+          sha256 = "1kzijmjxjxgr7p8clphzvmm47vczckbs8mza9an77c25bn627ywl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dash";
+          sha256 = "0azm47900bk2frpjsgy108fr3p1jk4h9kmp4b5j5pibgsm26azgz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dash-functional = callPackage ({ dash
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "dash-functional";
+        ename = "dash-functional";
+        version = "2.14.1";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "dash.el";
+          rev = "528e5a51f1af668e3075f2beccd2b39785ccb2ba";
+          sha256 = "0c65wkyzqsi0jignbhl0j9hh0711069x0l54sqbfb72viy0sppck";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dash-functional";
+          sha256 = "0hx36hs12mf4nmskaaqrqpcgwrfjdqj6qcxn6bwb0s5m2jf9hs8p";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dash-functional";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dashboard = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , page-break-lines }:
+      melpaBuild {
+        pname = "dashboard";
+        ename = "dashboard";
+        version = "1.2.4";
+        src = fetchFromGitHub {
+          owner = "rakanalh";
+          repo = "emacs-dashboard";
+          rev = "8594c4f55448148b720eda5b72d51667fb7a8a39";
+          sha256 = "1hhh1kfsz87qfmh45wjf2r93rz79rq0vbyxlfrsl02092zjbl1zr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dashboard";
+          sha256 = "08pdpjfrg8v80gljy146cwpz624dshhbz8843zl1zszwp2p00kqy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs page-break-lines ];
+        meta = {
+          homepage = "https://melpa.org/#/dashboard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    date-at-point = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "date-at-point";
+        ename = "date-at-point";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "date-at-point.el";
+          rev = "662f8350a83311503dc0aae47a28752f9f1270c9";
+          sha256 = "06aprbhhxb6bbzmf0r5yq2ry6x7708vp4d94ja3ir6zcwc96wn0k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/date-at-point";
+          sha256 = "0r26df6px6q5jlxj29nhl3qbp6kzy9hs5vd72kpiirgn4wlmagp0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/date-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    date-field = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , log4e
+                              , melpaBuild
+                              , yaxception }:
+      melpaBuild {
+        pname = "date-field";
+        ename = "date-field";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-date-field";
+          rev = "3b0af9c49293fc4346078ed2e13a6ebf41bbe54e";
+          sha256 = "1skvkbbqvwbw58ahdbf2m1z7s0kfi5v7c0lavc9ifrs91pqpqx9z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/date-field";
+          sha256 = "0fmw13sa4ajs1xkrkdpcjpbp0jl9d81cgvwh93myg8yjjn7wbmvk";
+          name = "recipe";
+        };
+        packageRequires = [ dash log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/date-field";
+          license = lib.licenses.free;
+        };
+      }) {};
+    datetime = callPackage ({ emacs
+                            , extmap
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "datetime";
+        ename = "datetime";
+        version = "0.6.1";
+        src = fetchFromGitHub {
+          owner = "doublep";
+          repo = "datetime";
+          rev = "178befd4881f407ad97c05fadb74589ade7297f2";
+          sha256 = "12f5jv6x3lm08lz674783cqppr9khi56s028zc6bndq3qc797h4d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/datetime";
+          sha256 = "0c000fnqg936dhjw5qij4lydzllw1x1jgnyy960zh6r61pk062xj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs extmap ];
+        meta = {
+          homepage = "https://melpa.org/#/datetime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    deadgrep = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , projectile
+                            , s
+                            , spinner }:
+      melpaBuild {
+        pname = "deadgrep";
+        ename = "deadgrep";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "deadgrep";
+          rev = "c29f617569a82d67b2061f74c08f431520fc3f54";
+          sha256 = "12j84yp94f2763gwpc07zqfi0ikz9n1a5ciyvcpsgfxpj8bkngzx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/deadgrep";
+          sha256 = "01m5ds7lic9g11a5iwzw86k6xcv56wbbzjm1343ckbbi255h9i09";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs projectile s spinner ];
+        meta = {
+          homepage = "https://melpa.org/#/deadgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    debian-el = callPackage ({ fetchgit
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "debian-el";
+        ename = "debian-el";
+        version = "37.4";
+        src = fetchgit {
+          url = "https://salsa.debian.org/emacsen-team/debian-el.git";
+          rev = "9690c4adb71e0fc7d00fea24b49ba944f913f4f5";
+          sha256 = "118yyhmfwpdlqvz5xjqfr4mmpjznkja3jn63n43z66q0apfhhk61";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/debian-el";
+          sha256 = "0x74a4nm2p4w82kzrdqy90969sminsrhdzppld2mg63jg0wxb8ga";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/debian-el";
+          license = lib.licenses.free;
+        };
+      }) {};
+    debpaste = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , xml-rpc }:
+      melpaBuild {
+        pname = "debpaste";
+        ename = "debpaste";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "debpaste.el";
+          rev = "038f0ff7824f4e3dd455e2232eeca70fa8abcec5";
+          sha256 = "1darxggvyv100cfb7imyzvgif8a09pnky62pf3bl2612hhvaijfb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/debpaste";
+          sha256 = "0h3hx3vgdhchmndabmzprddq3bxd80jnv4xvma9v6k1v07bl721v";
+          name = "recipe";
+        };
+        packageRequires = [ xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/debpaste";
+          license = lib.licenses.free;
+        };
+      }) {};
+    decide = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "decide";
+        ename = "decide";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "lifelike";
+          repo = "decide-mode";
+          rev = "90133687118c236142b8110571c463304b3192f9";
+          sha256 = "04yakjnh9c165ssmcwkkm03lnlhgfx5bnk0v3cm73kmwdmfd2q7s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/decide";
+          sha256 = "1gjkays48lhrifi9jwja5n2dpxjbl7f9rmka1nsqg9vf7s59vhhc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/decide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dedicated = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "dedicated";
+        ename = "dedicated";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "dedicated";
+          rev = "8275fb672f9cc4ba6682ebda0ef91db827e32992";
+          sha256 = "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dedicated";
+          sha256 = "1ka8n02r3nd2ksbid23g2qd6707c7xsjx7lbbdi6pcmwam5mglw9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dedicated";
+          license = lib.licenses.free;
+        };
+      }) {};
+    default-text-scale = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "default-text-scale";
+        ename = "default-text-scale";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "default-text-scale";
+          rev = "c90c08b9fe5f25474067a00c4a4babdb413b25b1";
+          sha256 = "031f8ls1q80j717cg6b4pjd37wk7vrl5hcycsn8ca7yssmqa8q81";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/default-text-scale";
+          sha256 = "18r90ic38fnlsbg4gi3r962vban398x2bf3rqhrc6z4jk4aiv3mi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/default-text-scale";
+          license = lib.licenses.free;
+        };
+      }) {};
+    deferred = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "deferred";
+        ename = "deferred";
+        version = "0.5.1";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-deferred";
+          rev = "d012a1ab50edcc2c44e3e49006f054dbff47cb6c";
+          sha256 = "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/deferred";
+          sha256 = "1i8jfapzmw86iqwhnnlqmcj6zh4hyhizdcwjxcnxdj6kvxmwyysm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/deferred";
+          license = lib.licenses.free;
+        };
+      }) {};
+    define-word = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "define-word";
+        ename = "define-word";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "define-word";
+          rev = "38e2f94779652fc6280a51b68dc910431513a8e1";
+          sha256 = "1lyqd9cgj7cb2lasf6ycw5j8wnsx2nrfm8ra4sg3dgcspm01a89g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/define-word";
+          sha256 = "035fdfwnxw0mir1dyvrimygx2gafcgnvlcsmwmry1rsfh39n5b9a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/define-word";
+          license = lib.licenses.free;
+        };
+      }) {};
+    deft = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "deft";
+        ename = "deft";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "jrblevin";
+          repo = "deft";
+          rev = "c4b30d780bfa732ff52d85f0311e4a045f44a7b4";
+          sha256 = "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/deft";
+          sha256 = "0f6z9hsigbwdsmg0abk1ddl9j19d0rpj4gzkl0d5arcpqbla26hp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/deft";
+          license = lib.licenses.free;
+        };
+      }) {};
+    demangle-mode = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "demangle-mode";
+        ename = "demangle-mode";
+        version = "1.2.2";
+        src = fetchFromGitHub {
+          owner = "liblit";
+          repo = "demangle-mode";
+          rev = "374c84a0b190f0f0ea76b956035003228077d1e0";
+          sha256 = "02z2mjillglyv65ijdlc62hbjddp3xv185xg7s93xz7ymg04c394";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/demangle-mode";
+          sha256 = "0ky0bb6rc99vrdli4lhs656qjndnla9b7inc2ji9l4n1zki5qxzk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/demangle-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    describe-number = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , yabin }:
+      melpaBuild {
+        pname = "describe-number";
+        ename = "describe-number";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "netromdk";
+          repo = "describe-number";
+          rev = "40618345a37831804b29589849a785ef5aa5ac24";
+          sha256 = "13fasbhdjwc4jh3cy25gm5sbbg56hq8la271098qpx6dhqm2wycq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/describe-number";
+          sha256 = "0gvriailni2ppz69g0bwnb1ik1ghjkj341k45vllz30j0frp9iji";
+          name = "recipe";
+        };
+        packageRequires = [ yabin ];
+        meta = {
+          homepage = "https://melpa.org/#/describe-number";
+          license = lib.licenses.free;
+        };
+      }) {};
+    desktop-environment = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "desktop-environment";
+        ename = "desktop-environment";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "desktop-environment";
+          rev = "10df99c6c6805a01acbbdfb7d02dc8cf2780d88d";
+          sha256 = "1fal3yfmqg10cb53qsf5gsq2gvyz9w16wmlpnpjwjzwnjfn6l73r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/desktop-environment";
+          sha256 = "0iai1awpkv4n8k263854mx95c8yh2vvif6z91mgn6hck8774v9zp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/desktop-environment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    desktop-plus = callPackage ({ dash
+                                , emacs
+                                , f
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "desktop-plus";
+        ename = "desktop+";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "ffevotte";
+          repo = "desktop-plus";
+          rev = "a9cb8dd0af5071d9f148211b408c54306239381c";
+          sha256 = "10f5dkrwfd6a1ab98j2kywkh1h01pnanvj2i7fv9a9vxnmiywrcf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/desktop+";
+          sha256 = "0w7i6k4814hwb19l7ly9yq59674xiw57ylrwxq7yprwx52sgs2r8";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/desktop+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    desktop-registry = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "desktop-registry";
+        ename = "desktop-registry";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "desktop-registry";
+          rev = "244c2e7f9f0a1050aa8a47ad0b38f4e4584682dd";
+          sha256 = "11qvhbz7149vqh61fgqqn4inw0ic6ib9lz2xgr9m54pdw9a901mp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/desktop-registry";
+          sha256 = "1sfj0w6hlrx37js63fn1v5xc9ngmahv07g42z68717md6w3c8g0v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/desktop-registry";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diary-manager = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "diary-manager";
+        ename = "diary-manager";
+        version = "2.0.1";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "diary-manager";
+          rev = "01851f42aee0526995ea88c3d42b7fe12e1cb7fd";
+          sha256 = "1q1zrqawrr844lzjc5l480im6rjdyagir0dr805vgyv31fhp1vmw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diary-manager";
+          sha256 = "1sk0pvadx4jmv93dj796ysn3jh2wvywayd7dd20v22kdvnlii73d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/diary-manager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dictionary = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dictionary";
+        ename = "dictionary";
+        version = "1.10";
+        src = fetchFromGitHub {
+          owner = "myrkr";
+          repo = "dictionary-el";
+          rev = "3a461aec5aa5b78a1ad8919eab11abfb0d5d65b3";
+          sha256 = "10hnxy2n1njskh3nrjagp2lphhliw66cp8pjyh4m2zbj60ciz0ci";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dictionary";
+          sha256 = "0zr9sm5rmr0frxdr0za72wiffip9391fn9dm5y5x0aj1z4c1n28w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dictionary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diff-hl = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "diff-hl";
+        ename = "diff-hl";
+        version = "1.8.4";
+        src = fetchFromGitHub {
+          owner = "dgutov";
+          repo = "diff-hl";
+          rev = "e93367512080e540dc5dd126dfcb38b4a5e9415b";
+          sha256 = "03pvh213w0sgyvv0xrkj43bs53p2xfr7162yhzdh24qwa8dd23qv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diff-hl";
+          sha256 = "135jgjfaiq6kj72ji5k22v4pqc8gjjmcv80r5rkjbjigzlvcvvj2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/diff-hl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    difflib = callPackage ({ cl-generic
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , ht
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "difflib";
+        ename = "difflib";
+        version = "0.3.8";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "difflib.el";
+          rev = "b08850251812d71e62fd6956081299590acdf37b";
+          sha256 = "03k5iy610f1m2nmkdk69p49fcfqfyxmy3h6fqvqsr2v1hix8i54a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/difflib";
+          sha256 = "07bm5hib3ihrrx0lhfsl6km9gfckl73qd4cb37h93zw0hc9xwhy6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-generic emacs ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/difflib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diffview = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "diffview";
+        ename = "diffview";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "mgalgs";
+          repo = "diffview-mode";
+          rev = "471dc36af93e68849bf2da0db991e186283b3546";
+          sha256 = "1ci2gmyl0i736b2sxh77fyg4hs2pkn6rn9z7v2hzv6xlgqd6j3z6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diffview";
+          sha256 = "0vlzmykvxjwjww313brl1nr13kz41jypsk0s3l8q3rbsnkpfic5k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/diffview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    digistar-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "digistar-mode";
+        ename = "digistar-mode";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "retroj";
+          repo = "digistar-mode";
+          rev = "0dcde58ec6e473042e55d4f283b223554546de5b";
+          sha256 = "0jzwaivsqh66py9hd3dg1ys5rc3p6pn8ndpwpvgyivk4pg6zhhj6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/digistar-mode";
+          sha256 = "0khzxlrm09h31i1nqz6rnzhrdssb3kppc4klpxza612l306fih0s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/digistar-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dim = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "dim";
+        ename = "dim";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "dim.el";
+          rev = "aee695f4c227e11aa22376667712815aafbb3616";
+          sha256 = "1nixb8xw7rdrq9da1767jl8xximfdcwav2fs0kwmxjc6vahh7ya1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dim";
+          sha256 = "0gsyily47g3g55qmhp1wzfz319l1pkgjz4lbigafjzlzqxyclz52";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dim-autoload = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dim-autoload";
+        ename = "dim-autoload";
+        version = "2.0.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "dim-autoload";
+          rev = "2ff7ded0c9f8bb582fb9018bea47ead44d048cf8";
+          sha256 = "0lbfgfx3015b1kspqrsnlpvzl7i06yxafj1i2lpcy7ay4fv5rp54";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dim-autoload";
+          sha256 = "0lhzzjrgfvbqnzwhjywrk3skdb7x10xdq7d21q6kdk3h5r0np9f9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dim-autoload";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diminish = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "diminish";
+        ename = "diminish";
+        version = "0.45";
+        src = fetchFromGitHub {
+          owner = "myrjola";
+          repo = "diminish.el";
+          rev = "0211de96b7cfba9c9dc8d2d392dbd4ccdb22bc65";
+          sha256 = "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diminish";
+          sha256 = "1h6a31jllypk47akjflz89xk6h47na96pim17d6g4rpqcafc2k43";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/diminish";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dimmer = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "dimmer";
+        ename = "dimmer";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "gonewest818";
+          repo = "dimmer.el";
+          rev = "12fc52a6570ec25020281735f5a0ca780a9105af";
+          sha256 = "1jv9rrv15nb5hpwcaqlpjj932gyisrkwbv11czkg3v0bn7qn6yif";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dimmer";
+          sha256 = "0w8n5svckk1jp8856pg2gkws9798prqjjkdqf8ili2hjcqnd1a3r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dimmer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dionysos = callPackage ({ alert
+                            , cl-lib ? null
+                            , dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , libmpdee
+                            , melpaBuild
+                            , pkg-info
+                            , s }:
+      melpaBuild {
+        pname = "dionysos";
+        ename = "dionysos";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "dionysos";
+          rev = "98bc789d20e41020d6e62d63d3c78f8032fa4bf2";
+          sha256 = "1hma72dyn3w6cwd3vrgg4hdlrxgwqs55cjyxb05vs9csz7r42208";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dionysos";
+          sha256 = "1wjgj74dnlwd79gc3l7ymbx75jka8rw9smzbb10dsfppw3rrzfmz";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib dash libmpdee pkg-info s ];
+        meta = {
+          homepage = "https://melpa.org/#/dionysos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-atool = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dired-atool";
+        ename = "dired-atool";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "dired-atool";
+          rev = "a2470f805c8cfbeee459b000edaaa5474bac35f9";
+          sha256 = "1d813b4wiamif48v0za5invnss52mn7yw3hzrlxd4918gy5y2r74";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-atool";
+          sha256 = "0qljx6fmz1hal9r2smjyc957wcvcpg16vp5mv65ip6d26k5qsj0w";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-atool";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-efap = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dired-efap";
+        ename = "dired-efap";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "juan-leon";
+          repo = "dired-efap";
+          rev = "2b849bc5c09d0b752a177495ea1b851ee821f5bf";
+          sha256 = "1m0nx8wd6q56qbp5mbp9n466kyglrz34nflwvgd1qnmi08jwswgv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-efap";
+          sha256 = "01j5v6584qi8ia7zmk03kx3i3kmm6hn6ycfgqlh5va6lp2h9sr00";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-efap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-explorer = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "dired-explorer";
+        ename = "dired-explorer";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "jidaikobo-shibata";
+          repo = "dired-explorer";
+          rev = "3ade0a31b5340271d05e9bf443f2504960f6c6dd";
+          sha256 = "0lbm326na005k3pa11rqq5nbhvm55dydi2a7fzs3bzlqwbx7d6fq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-explorer";
+          sha256 = "12mymmcl663ci543vqzg8jai8kgfbb3gw5wsbcm4ln3j8d5fgzd9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-explorer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-fdclone = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dired-fdclone";
+        ename = "dired-fdclone";
+        version = "1.5.4";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "dired-fdclone.el";
+          rev = "903d7a736d240ef7352989a4e5d0ff9129c2ee3c";
+          sha256 = "0vkdsm29g1cvvv1j8xgjwr94x20zx8k2wvmncrpakcwq6d47cfxw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-fdclone";
+          sha256 = "11aikq2q3m9h4zpgl24f8npvpwd98jgh8ygjwy2x5q8as8i89vf9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-fdclone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-hide-dotfiles = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "dired-hide-dotfiles";
+        ename = "dired-hide-dotfiles";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "mattiasb";
+          repo = "dired-hide-dotfiles";
+          rev = "32cf3b6f90dc56f6ff271c28d827aab303bc6221";
+          sha256 = "1fpzgmvbgfgl6wdrynlpvvdlbm8npgrmnzfz2133zvf5x3zfzq6r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-hide-dotfiles";
+          sha256 = "0yy131cvj9a9sz02ari7pzwf22r5y7acyg757h3jvih317v6jyp0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-hide-dotfiles";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-icon = callPackage ({ emacs
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "dired-icon";
+        ename = "dired-icon";
+        version = "0.5";
+        src = fetchFromGitLab {
+          owner = "xuhdev";
+          repo = "dired-icon";
+          rev = "dbace8d2250f84487d31b39050fcdc260fcde804";
+          sha256 = "1d9105ibaw858gqp19rx2m6xm3hl57vzsmdqir883cy46qpvwhki";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-icon";
+          sha256 = "0nyiqcywc1p8kw3psisl4zxwmf2g0x82kanka85zxxdz15s509j1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-icon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-imenu = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dired-imenu";
+        ename = "dired-imenu";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "dired-imenu";
+          rev = "610e21fe0988c85931d34894d3eee2442c79ab0a";
+          sha256 = "088h9yn6wndq4pq6f7q4iz17f9f4ci29z9nh595idljp3vwr7qid";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-imenu";
+          sha256 = "09yix4fkr03jq6j2rmvyg6gkmcnraw49a8m9649r3m525qdnhxs1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-imenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-k = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "dired-k";
+        ename = "dired-k";
+        version = "0.19";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-dired-k";
+          rev = "3f0b9315f87b0f930d51089e311d41282d5f8b15";
+          sha256 = "09xh097v3fd0mjxqlmbfwjlr1v4a99mj4rvwdb6kqgajmlhgi9hx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-k";
+          sha256 = "0lghdmy9qcjykscfxvfrz8cpp87qc0vfd03vw8nfpvwcs2sd28i8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-k";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-quick-sort = callPackage ({ fetchFromGitLab
+                                    , fetchurl
+                                    , hydra
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "dired-quick-sort";
+        ename = "dired-quick-sort";
+        version = "0.1";
+        src = fetchFromGitLab {
+          owner = "xuhdev";
+          repo = "dired-quick-sort";
+          rev = "fe39cfb2d4a7ba6b30f98134548b4e4bac67c469";
+          sha256 = "1a9r1kz5irpvb2byabbf27sy7rjzaygfpqimpag41sj955wlgy9a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-quick-sort";
+          sha256 = "01vrk3wqq2zmcblyp9abi2lvrzr2a5ca8r8gjjnr5223037ppl3l";
+          name = "recipe";
+        };
+        packageRequires = [ hydra ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-quick-sort";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-rsync = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "dired-rsync";
+        ename = "dired-rsync";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "stsquad";
+          repo = "dired-rsync";
+          rev = "3ee95c35d1b7d62ffbc38f16f8c79904ad22a84d";
+          sha256 = "1zrpmymd0fj74apkx413mpxvz3iwvfdxq5zx3sw5akpqc9nphn8n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-rsync";
+          sha256 = "0lykj7nfpaspwn90macvr7iir4jlrx88i0s9spii7iic2fnm51ql";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/dired-rsync";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-single = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "dired-single";
+        ename = "dired-single";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "crocket";
+          repo = "dired-single";
+          rev = "5b002927fd8c7f954eec187227ac59dcaa8edfa3";
+          sha256 = "0mfvyjbx7l7a1sfq47m6rb507xxw92nykkkpzmi2mpwv30f1c22j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-single";
+          sha256 = "13h8dsn7bkz8ji2rrb7vyrqb2znxarpiynqi65mfli7dn5k086vf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-single";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dired-toggle-sudo = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "dired-toggle-sudo";
+        ename = "dired-toggle-sudo";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "renard";
+          repo = "dired-toggle-sudo";
+          rev = "02449dbda4e168f99fe5352c9628df5d39e11483";
+          sha256 = "0ajj8d6k5in2hclcrqckinfh80ylddplva0ryfbkzsjkfq167cv2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dired-toggle-sudo";
+          sha256 = "0fy05af9aq9791ij4j9pscdk5j44pbg0kmhpqli41qiazjw7v2va";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dired-toggle-sudo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diredfl = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "diredfl";
+        ename = "diredfl";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "diredfl";
+          rev = "45e9c46f58c655694758d4986b9195c8bb40ddf3";
+          sha256 = "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diredfl";
+          sha256 = "0cybq15yq07x2mnrnwapy020d598yymcy8y9wwf1m7f59p3h9hvn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/diredfl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    diredful = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "diredful";
+        ename = "diredful";
+        version = "1.10";
+        src = fetchFromGitHub {
+          owner = "thamer";
+          repo = "diredful";
+          rev = "b17b3087e0084a5571a9ac4d47ccfc36d96b109e";
+          sha256 = "1d8n8wj5k82a1sfg93kn3ajci804mpp9j206x5f185zd48wb25z8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/diredful";
+          sha256 = "0y8x6q1yfsk0srxsh4g5nbsms1g9pk9d103jx7cfdac79mcigw7x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/diredful";
+          license = lib.licenses.free;
+        };
+      }) {};
+    direnv = callPackage ({ dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , with-editor }:
+      melpaBuild {
+        pname = "direnv";
+        ename = "direnv";
+        version = "1.4.0";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "emacs-direnv";
+          rev = "03c4edffba45722a9511d6d10992578f140d095f";
+          sha256 = "1b8xp0yprpy1sc8hmim6jcdmgpc8yj6wjzgj4rdy77k7l96016v8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/direnv";
+          sha256 = "0zzmi5m6fh42kyf8dyjrjyrl03pkbipnh4mnssrhp83ljczxkyhd";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs with-editor ];
+        meta = {
+          homepage = "https://melpa.org/#/direnv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    direx = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "direx";
+        ename = "direx";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "direx-el";
+          rev = "423caeed13249e37afc937dc8134cb3c53e0f111";
+          sha256 = "0p8c2hjgr81idm1psv3i3v5hr5rv0875ig8app2yqjwzvl0nn73f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/direx";
+          sha256 = "1x3rnrhhyrrvgry9n7kc0734la1zp4gc4bpy50f2qpfd452jwqdm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/direx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    direx-grep = callPackage ({ direx
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "direx-grep";
+        ename = "direx-grep";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "direx-grep";
+          rev = "1109a512a80b2673a70b18b8568514049017faad";
+          sha256 = "0swdh0qynpijsv6a2d308i42hfa0jwqsnmf4sm8vrhaf3vv25f5h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/direx-grep";
+          sha256 = "0y2wrzq06prm55akwgaqjg56znknyvbayav13asirqzg258skvm2";
+          name = "recipe";
+        };
+        packageRequires = [ direx ];
+        meta = {
+          homepage = "https://melpa.org/#/direx-grep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    disable-mouse = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "disable-mouse";
+        ename = "disable-mouse";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "disable-mouse";
+          rev = "81639930bcaeedadbcc19728e91719afcac84613";
+          sha256 = "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/disable-mouse";
+          sha256 = "0c0ps39s6wg3grspvgck0cwxnas73nfaahfa87l0mmgsrsvas5m7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/disable-mouse";
+          license = lib.licenses.free;
+        };
+      }) {};
+    discover = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , makey
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "discover";
+        ename = "discover";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "mickeynp";
+          repo = "discover.el";
+          rev = "bbfda2b4e429985a8fa7971d264c942767cfa816";
+          sha256 = "0qxw30zrlcxhxb0alrgyiclrk44dysal8xsbz2mvgrb6jli8wg18";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/discover";
+          sha256 = "1hf57p90jn1zzhjl63zv9ascbgkcbr0p0zmd3fvzpjsw84235dga";
+          name = "recipe";
+        };
+        packageRequires = [ makey ];
+        meta = {
+          homepage = "https://melpa.org/#/discover";
+          license = lib.licenses.free;
+        };
+      }) {};
+    discover-my-major = callPackage ({ fetchgit
+                                     , fetchurl
+                                     , lib
+                                     , makey
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "discover-my-major";
+        ename = "discover-my-major";
+        version = "1.0";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/discover-my-major.git";
+          rev = "aca4ee2b45e96c7fd6167d006531472944c389ad";
+          sha256 = "1c2p31a1mlaqi4h83ij0y3vhrw2hja5cz3kf52qpnhqva7si5fx9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/discover-my-major";
+          sha256 = "1b10bwhls5bx83hzhqq1ylc2civ3bsivd6db46f3s5hpgvr4q17n";
+          name = "recipe";
+        };
+        packageRequires = [ makey ];
+        meta = {
+          homepage = "https://melpa.org/#/discover-my-major";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dispass = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "dispass";
+        ename = "dispass";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "dispass.el";
+          rev = "38b880e72cfe5e65179b16791903b0900c73eff4";
+          sha256 = "1b1a1bwc6nv6wkd8jg1cqmjb9m9pxi5i2wbrz97fgii23dwfmlnl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dispass";
+          sha256 = "09c9v41rh63hjpdh377rbfvpial33r41dn5bss3632fi34az5l9n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dispass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ditz-mode = callPackage ({ fetchhg
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ditz-mode";
+        version = "0.3";
+        src = fetchhg {
+          url = "https://bitbucket.com/zondo/ditz-mode";
+          rev = "beac4c1f3b7e";
+          sha256 = "1cbsy4lchl41zmyxfq828cjpl3h2dwvn8xf1qgf2lbscdb6cwbwb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/02e2a2a25f42929626d7237511136ba6826dad33/recipes/ditz-mode";
+          sha256 = "0shzm9l31n4ffjs1d26ykxsycd478lhlpl8xcwzbjryywg4gf5nd";
+          name = "ditz-mode";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ditz-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dix = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "dix";
+        ename = "dix";
+        version = "0.3.5";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "dix";
+          rev = "86880826a0cc878e2e5d50bc835eed5c8e2f001a";
+          sha256 = "00qyzpqdw4im7c4bqqpiayv4kr9iqlm6mhsziazjvrjsvvi0p9ij";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dix";
+          sha256 = "0c5fmknpy6kwlz7nx0csbbia1maz0szj7yha1p7wq28s3a5426xq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/dix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dix-evil = callPackage ({ dix
+                            , evil
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "dix-evil";
+        ename = "dix-evil";
+        version = "0.3.5";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "dix";
+          rev = "1cfef0d3376a18c78dd1dfc1ac9ac3ad0e8c4475";
+          sha256 = "0p2cvr7mjpag86wacxm6s39y7p118gh2ccqw02jzabwxlfasfbw3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dix-evil";
+          sha256 = "1jscaksnl5qmpqgkjkv6sx56llz0w4p5h7j73c4a1hld94gwklh3";
+          name = "recipe";
+        };
+        packageRequires = [ dix evil ];
+        meta = {
+          homepage = "https://melpa.org/#/dix-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    django-commands = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "django-commands";
+        ename = "django-commands";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "muffinmad";
+          repo = "emacs-django-commands";
+          rev = "81d7c94d81692730268502da7c77ce7cb3938029";
+          sha256 = "1q11v5ggg66anrsgngl6y2f7iw0rmdi2b6vrm5dq4k2hlmfnrbla";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/django-commands";
+          sha256 = "17k9bnig2cfnxbbz6k9vdk5k5gzhvn1h5j9wvww7n137c9vv0qmk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/django-commands";
+          license = lib.licenses.free;
+        };
+      }) {};
+    docker = callPackage ({ dash
+                          , docker-tramp
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , json-mode
+                          , lib
+                          , magit-popup
+                          , melpaBuild
+                          , s
+                          , tablist }:
+      melpaBuild {
+        pname = "docker";
+        ename = "docker";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "Silex";
+          repo = "docker.el";
+          rev = "39ba86d65417adb0a0a3f0a5ef8c76759544a6d1";
+          sha256 = "1nwla26bza293cidkg6i1x88qaxdw0ydih8skpdlf7lpibzsl5cx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/docker";
+          sha256 = "10x05vli7lg1w3fdbkrl34y4mwbhp2c7nqdwnbdy53i81jisw2lk";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          docker-tramp
+          emacs
+          json-mode
+          magit-popup
+          s
+          tablist
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/docker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    docker-compose-mode = callPackage ({ dash
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , yaml-mode }:
+      melpaBuild {
+        pname = "docker-compose-mode";
+        ename = "docker-compose-mode";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "meqif";
+          repo = "docker-compose-mode";
+          rev = "7f4cd0b1718df2ab93d51bd395b2f37df9482265";
+          sha256 = "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/docker-compose-mode";
+          sha256 = "1hldddl86h0i1ysxklkr1kyz44lzic1zr68x3vb0mha4n5d6bl5g";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/docker-compose-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    docker-tramp = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "docker-tramp";
+        ename = "docker-tramp";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "emacs-pe";
+          repo = "docker-tramp.el";
+          rev = "d8b510365d8e65551f4f792f251e7212411708c3";
+          sha256 = "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/docker-tramp";
+          sha256 = "19kky80qm68n2izpjfyiy4gjywav7ljcmp101kmziklpqdldgh1w";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/docker-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dockerfile-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "dockerfile-mode";
+        ename = "dockerfile-mode";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "spotify";
+          repo = "dockerfile-mode";
+          rev = "9a75fcd119c5b2a1d723d440bbe4b1db56df90cc";
+          sha256 = "1cmh8pwwa6dhl4w66wy8s5yqxs326mnaalg1ig2yhl4bjk8gi4m2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dockerfile-mode";
+          sha256 = "1dxvzn35a9qd3x8pjvrvb2g71yf84404g6vz81y0p353rf2zknpa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dockerfile-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dokuwiki-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dokuwiki-mode";
+        ename = "dokuwiki-mode";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "kai2nenobu";
+          repo = "emacs-dokuwiki-mode";
+          rev = "e4e116f6fcc373e3f5937c1a7daa5c2c9c6d3fa1";
+          sha256 = "0bmcm7lvzm8sg2l1j7bg02jasxb8g81q9ilycblmsl1ckbfwq0yp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dokuwiki-mode";
+          sha256 = "1jc3sn61mipkhgr91wp74s673jk2w5991p54jlw05qqpf5gmxd7v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dokuwiki-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    doom = callPackage ({ cl-lib ? null
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "doom";
+        ename = "doom";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "kensanata";
+          repo = "doom";
+          rev = "5e2d3f54e5b84eaa533cbdb6cf17b1b6009f0730";
+          sha256 = "04h1hlsc83w4dppw9m44jq7mkcpy0bblvnzrhvsh06pibjywdd73";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/doom";
+          sha256 = "1ji2fdiw5b13n76nv2wvkz6v155b0qgh1rxwmv3m5nnrbmklfjh5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/doom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    doom-modeline = callPackage ({ all-the-icons
+                                 , dash
+                                 , eldoc-eval
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , shrink-path }:
+      melpaBuild {
+        pname = "doom-modeline";
+        ename = "doom-modeline";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "seagle0128";
+          repo = "doom-modeline";
+          rev = "700a0107f28a5f321485fa1e2f03a067be122594";
+          sha256 = "1g363lv54b64rx4sfwlwq6gk7qpb920cjslgbgwdpd82chxw79vd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/doom-modeline";
+          sha256 = "0pscrhhgk4wpz1f2r94ficgan4f9blbhqzvav1wjahwp7fn5m29j";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons dash eldoc-eval emacs shrink-path ];
+        meta = {
+          homepage = "https://melpa.org/#/doom-modeline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    doom-themes = callPackage ({ all-the-icons
+                               , cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "doom-themes";
+        ename = "doom-themes";
+        version = "2.1.6";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-doom-themes";
+          rev = "39e6971e81181b86a57f65cd0ea31376203a9756";
+          sha256 = "042pzcdhxi2z07jcscgjbaki9nrrm0cbgbbrnymd1r4q8ckkn8l9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/doom-themes";
+          sha256 = "0plqhis9ki3ck1pbv4hiqk4x428fps8qsfx72mamdayyx2nncdrs";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/doom-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dotenv-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dotenv-mode";
+        ename = "dotenv-mode";
+        version = "0.2.4";
+        src = fetchFromGitHub {
+          owner = "preetpalS";
+          repo = "emacs-dotenv-mode";
+          rev = "f4c52bcd5313379b9f2460db7f7a33119dfa96ea";
+          sha256 = "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dotenv-mode";
+          sha256 = "1lwfzfri6vywcjkc9wassrz0rdrg0kvljxsm6b4smlnphp6pdbbs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dotenv-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    downplay-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "downplay-mode";
+        ename = "downplay-mode";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "tobias";
+          repo = "downplay-mode";
+          rev = "bd03a160e5e191eed1c20dfb8e69f2e314ef4e64";
+          sha256 = "1i22pbnpi4zdh3c4drhhi8x6b9k3k4vz758vyajzb9mc2i67llxm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/downplay-mode";
+          sha256 = "1v6nga101ljzza8qj3lkmkzzl0vvzj4lsh1m69698s8prnczxr9b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/downplay-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dpkg-dev-el = callPackage ({ debian-el
+                               , fetchgit
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dpkg-dev-el";
+        ename = "dpkg-dev-el";
+        version = "37.1";
+        src = fetchgit {
+          url = "https://salsa.debian.org/emacsen-team/dpkg-dev-el.git";
+          rev = "04fb5c930269e64ed73a13fa909588002f4e4e4f";
+          sha256 = "0i0m4hdpdr4wz3r8cgxslwhm23z7002648dm7cw7cf3fwd4gi47q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dpkg-dev-el";
+          sha256 = "1cgfzxlw4m3wsl5fhck08pc2w7fw91mxk58yaprk9lkw4jxd1yjy";
+          name = "recipe";
+        };
+        packageRequires = [ debian-el ];
+        meta = {
+          homepage = "https://melpa.org/#/dpkg-dev-el";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dr-racket-like-unicode = callPackage ({ emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "dr-racket-like-unicode";
+        ename = "dr-racket-like-unicode";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "dr-racket-like-unicode";
+          rev = "4953f1c8a68472e157a0dcd0a7e35a4ec2577133";
+          sha256 = "1i7k7d2gnzd2izplhdmjbkcxvkwnc3y3y0hrcp2rq60bjpkcl1gv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dr-racket-like-unicode";
+          sha256 = "0cqcbn4hmv99d8z03xc0rqw4yh5by6g09y33h75dhl9nh95rybgf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dr-racket-like-unicode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dracula-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dracula-theme";
+        ename = "dracula-theme";
+        version = "1.4.0";
+        src = fetchFromGitHub {
+          owner = "dracula";
+          repo = "emacs";
+          rev = "1f649824d996b1ecdcc5980210b774f0cb950e9a";
+          sha256 = "1gsj8na6nnz0vv9j215wdf39q834chc6pmk9mv8hcvcbdbc4f8wa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dracula-theme";
+          sha256 = "1px162v7h7136rasafq875yzw0h8n6wvzbyh73c3w093kd30bmh8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dracula-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    draft-mode = callPackage ({ fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "draft-mode";
+        ename = "draft-mode";
+        version = "0.1.1";
+        src = fetchFromGitLab {
+          owner = "gaudecker";
+          repo = "draft-mode";
+          rev = "f059c04b044f62aec764c7698adddad301bfe89c";
+          sha256 = "01dspkv7g4xmmqgz6f1p190h5p4f4vrw8r9dikrjch02bb76wqir";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/draft-mode";
+          sha256 = "19lq1a3rj6fck3xq2vcz8fk30hpx25kyfz6c7hmq36kx4lv0mjpa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/draft-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    drag-stuff = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "drag-stuff";
+        ename = "drag-stuff";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "drag-stuff.el";
+          rev = "d49fe376d24f0f8ac5ade67b6d7fccc2487c81db";
+          sha256 = "1jrr59iazih3imkl9ja1lbni9v3xv6b8gmqs015g2mxhlql35jka";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/drag-stuff";
+          sha256 = "1q67q20gfhixzkmddhzp6fd8z2qfpsmyyvymmaffjcscnjaz21w4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/drag-stuff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    drupal-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , php-mode }:
+      melpaBuild {
+        pname = "drupal-mode";
+        ename = "drupal-mode";
+        version = "0.7.3";
+        src = fetchFromGitHub {
+          owner = "arnested";
+          repo = "drupal-mode";
+          rev = "49ce63c659aa0af7a2daf0c9e74e58fbce6deb71";
+          sha256 = "1l2xc24y037b3z62yxmq2bx1x3qqv56d15bf3qmb3mpgm4gh85j6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/drupal-mode";
+          sha256 = "14jvk4phq3wcff3yvhygix0c9cpbphh0dvm961i93jpsx7g9awgn";
+          name = "recipe";
+        };
+        packageRequires = [ php-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/drupal-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    drupal-spell = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "drupal-spell";
+        ename = "drupal-spell";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "arnested";
+          repo = "drupal-spell";
+          rev = "a69f5e3b62c4c0da74ce26c1d00d5b8f7395e4ae";
+          sha256 = "156cscpavrp695lp8pgjg5jnq3b8n9c2h8qg8w89dd4vfkc3iikd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/drupal-spell";
+          sha256 = "117rr2bfnc99g3qsr127grxwaqp54cxjaj3nl2nr6z78nja0fij3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/drupal-spell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dtrt-indent = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dtrt-indent";
+        ename = "dtrt-indent";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "jscheid";
+          repo = "dtrt-indent";
+          rev = "0ac070c9576e4ebab12cd6800ac2ac3abcecc2c1";
+          sha256 = "0dambn5l0wvbhccvhh5hbz9hw66y4mp1la3wj85dl9kgr7hq1ry7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dtrt-indent";
+          sha256 = "1npn2jngy1wq0jpwmg1hkn8lx6ncbqsi587jl38lyp2xwchshfk5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dtrt-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ducpel = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ducpel";
+        ename = "ducpel";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "ducpel";
+          rev = "ece785baaa102bd2e9d54257af3a92bacc5757bc";
+          sha256 = "17yldk76mxakhb90bma7r4z9jgx02wankgk17r2di196mc04bj7b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ducpel";
+          sha256 = "1cqrkgg7n9bhjswnpl7yc6w6yjs4gfbliaqsimmf9z43wk2ml4pc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ducpel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dumb-jump = callPackage ({ dash
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , popup
+                             , s }:
+      melpaBuild {
+        pname = "dumb-jump";
+        ename = "dumb-jump";
+        version = "0.5.2";
+        src = fetchFromGitHub {
+          owner = "jacktasia";
+          repo = "dumb-jump";
+          rev = "260054500d4731c36574b6cbc519de29fdd22f43";
+          sha256 = "00ph85vp8sa3k99qrdxfz4l8zx121q9xf47vvspzg26bk9l4nwin";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dumb-jump";
+          sha256 = "1j90n8gydsp2v07rysz1k5vf6hspybcl27214sib1iz3hbimid1w";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f popup s ];
+        meta = {
+          homepage = "https://melpa.org/#/dumb-jump";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dyalog-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchhg
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "dyalog-mode";
+        version = "0.7";
+        src = fetchhg {
+          url = "https://bitbucket.com/harsman/dyalog-mode";
+          rev = "87db00b912be";
+          sha256 = "0jg289fj4q83dwj7i0w5zq8bwqxzwzzmyhvdrk6cfw3q6rlwk5fp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/dyalog-mode";
+          sha256 = "1y17nd2xd8b3mhaybws8dr7yanzwqij9gzfywisy65ckflm9kfyq";
+          name = "dyalog-mode";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/dyalog-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dynamic-fonts = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , font-utils
+                                 , lib
+                                 , melpaBuild
+                                 , pcache
+                                 , persistent-soft }:
+      melpaBuild {
+        pname = "dynamic-fonts";
+        ename = "dynamic-fonts";
+        version = "0.6.4";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "dynamic-fonts";
+          rev = "d318498b377d8941c7420f51616c78e3440d00f5";
+          sha256 = "1ppwlill1z4vqd566h9zi6zx5jb7hggmnmqrga84j5n7fwqvgz7f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dynamic-fonts";
+          sha256 = "0a210ca41maa755lv1n7hhpxp0f7lfxrxbi0x34icbkfkmijhl6q";
+          name = "recipe";
+        };
+        packageRequires = [ font-utils pcache persistent-soft ];
+        meta = {
+          homepage = "https://melpa.org/#/dynamic-fonts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    dynamic-ruler = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "dynamic-ruler";
+        ename = "dynamic-ruler";
+        version = "0.1.6";
+        src = fetchFromGitHub {
+          owner = "rocher";
+          repo = "dynamic-ruler";
+          rev = "c9c0de6fe5721f06b50e01d9b4684b519c71b367";
+          sha256 = "09skp2d5likqjlrsfis3biqw59sjkgid5249fld9ahqm5f1wq296";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/dynamic-ruler";
+          sha256 = "13jc3xbsyc3apkdfy0iafmsfvgqs0zfa5w8jxp7zj4dhb7pxpnmc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/dynamic-ruler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , window-layout }:
+      melpaBuild {
+        pname = "e2wm";
+        ename = "e2wm";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-window-manager";
+          rev = "4353d3394c77a49f8f0291c239858c8c5e877549";
+          sha256 = "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm";
+          sha256 = "0dp360jr3fgxqywkp7g88cp02g37kw2hdsc0f70hjak9n3sy03la";
+          name = "recipe";
+        };
+        packageRequires = [ window-layout ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-R = callPackage ({ e2wm
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "e2wm-R";
+        ename = "e2wm-R";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "e2wm-R.el";
+          rev = "fe17906bf48324032a1beaec9af32b9b49ea9125";
+          sha256 = "1yf081rac0chvkjha9z9xi1p983gmhjph0hai6ppsz5hzf2vikpp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-R";
+          sha256 = "09v4fz178lch4d6m801ipclfxm2qrap5601aysnzyvc2apvyr3sh";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-R";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-direx = callPackage ({ direx
+                              , e2wm
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "e2wm-direx";
+        ename = "e2wm-direx";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "e2wm-direx";
+          rev = "f319625b56c44e601af7c17fc6dbb88e5d70ebae";
+          sha256 = "09i7d2rc9zd4s3nqrhd3ggs1ykdpxf0pyhxixxw2xy0q6nbswjia";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-direx";
+          sha256 = "0nv8aciq0swxi9ahwc2pvk9c7i3rmlp7vrzqcan58ml0i3nm17wg";
+          name = "recipe";
+        };
+        packageRequires = [ direx e2wm ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-direx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-pkgex4pl = callPackage ({ e2wm
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , plsense-direx }:
+      melpaBuild {
+        pname = "e2wm-pkgex4pl";
+        ename = "e2wm-pkgex4pl";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "e2wm-pkgex4pl";
+          rev = "b72561b75e98961f05544a2159d83592c964ba1e";
+          sha256 = "1cx6kdxhq9ybwwvc1vpwcfy08yf1h4xacgimm36kp9xayvxsmq2j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-pkgex4pl";
+          sha256 = "0hgdbqfw3015fr929m36kfiqqzsid6afs3222iqq0apg7gfj7jil";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm plsense-direx ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-pkgex4pl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-sww = callPackage ({ e2wm
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "e2wm-sww";
+        ename = "e2wm-sww";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "e2wm-sww";
+          rev = "db454ac3eddd53a62f2725f6e2d5ac455caf200c";
+          sha256 = "1a8z94z0wp9r4kh44bn2m74k866jwq7zvjihxmmzr0rfb85q2d99";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-sww";
+          sha256 = "0x45j62cjivf9v7jp1b41yya3f9akp92md6cbv0v7bwz98g2vsk8";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-sww";
+          license = lib.licenses.free;
+        };
+      }) {};
+    e2wm-term = callPackage ({ e2wm
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , log4e
+                             , melpaBuild
+                             , yaxception }:
+      melpaBuild {
+        pname = "e2wm-term";
+        ename = "e2wm-term";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "e2wm-term";
+          rev = "65b5ac88043d5c4048920a048f3599904ca55981";
+          sha256 = "0qv3kh6q3q7vgfsd8x25x8agi3fp96dkpjnxdidkwk6k8h9n0jzw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/e2wm-term";
+          sha256 = "0wrq06yap80a96l9l0hs7x7rng7sx6vi1hz778kknb6il4f2f45g";
+          name = "recipe";
+        };
+        packageRequires = [ e2wm log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/e2wm-term";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eacl = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , ivy
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "eacl";
+        ename = "eacl";
+        version = "1.1.3";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "eacl";
+          rev = "ccf1401b1acff67fe445c95e8be7b09e8c3ae5d8";
+          sha256 = "0v02asdmhj5la9nqck2230s04gf518cjs7wa4lykf8j46bc13vac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eacl";
+          sha256 = "16afsf3diz498jb63q85lm5ifvm487clfl838qzagl1l4aywhlwr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/eacl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-hugo = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , popup }:
+      melpaBuild {
+        pname = "easy-hugo";
+        ename = "easy-hugo";
+        version = "3.5.33";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-easy-hugo";
+          rev = "1f9e3c7baf570df4b23ed5297970a4d467b53467";
+          sha256 = "0yz6ph0n4if3h8s7ij31kjfqdl9g35vks2ad3y65s1lg2vkca57r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-hugo";
+          sha256 = "1m7iw6njxxsk82agyqay277iql578b3wz6z9wjs8ls30ps8s2b8g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs popup ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-hugo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-jekyll = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "easy-jekyll";
+        ename = "easy-jekyll";
+        version = "1.7.17";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-easy-jekyll";
+          rev = "2c1b42b6ffbb143d574653a9392d333a3be1651c";
+          sha256 = "0p2v8gj7b060jfi4zalmj2xkc11w1j4iha13zrpzar6swnnfmx5s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-jekyll";
+          sha256 = "16jj70fr23z5qsaijv4d4xfiiypny2cama8rsaci9fk9haq19lxv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-jekyll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-kill = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "easy-kill";
+        ename = "easy-kill";
+        version = "0.9.3";
+        src = fetchFromGitHub {
+          owner = "leoliu";
+          repo = "easy-kill";
+          rev = "20ed0d595e5893e2c57a634a3137ef87b1714f17";
+          sha256 = "0ppxx5798zxwm9dzqjmf1maz2a6asv3fwiw8ypdmzx77y0vbckv0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-kill";
+          sha256 = "10jcv7a4vcnaj3wkabip2xwzcwlmvdlqkl409a9lnzfasxcpf32i";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-kill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-kill-extras = callPackage ({ easy-kill
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "easy-kill-extras";
+        ename = "easy-kill-extras";
+        version = "0.9.6";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "easy-kill-extras.el";
+          rev = "b8ce8350cc86e0229f195082557970cd51def960";
+          sha256 = "1f8db92zzk8g8yyj0g334mdbgqmzrs8xamm1d24jai1289hm29xa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-kill-extras";
+          sha256 = "0xzlzv57nvrc142saydwfib51fyqcdzjccc1hj6xvgcdbwadlnjy";
+          name = "recipe";
+        };
+        packageRequires = [ easy-kill ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-kill-extras";
+          license = lib.licenses.free;
+        };
+      }) {};
+    easy-repeat = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "easy-repeat";
+        ename = "easy-repeat";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "easy-repeat.el";
+          rev = "060f0e6801c82c40c06961dc0528a00e18947a8c";
+          sha256 = "18bm5ns1qrxq0rrz9sylshr62wkymh1m6b7ch2y74f8rcwdwjgnq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/easy-repeat";
+          sha256 = "1vx57gpw0nbxh976s18va4ali1nqxqffhaxv1c5rhf4pwlk2fa06";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/easy-repeat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ebal = callPackage ({ emacs
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "ebal";
+        ename = "ebal";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "ebal";
+          rev = "4d19565516785348894c4911e757e33a270b3efd";
+          sha256 = "1wj9h8ypi70az387c7pcrpc59lpf89dkp2q4df2ighxw3l648mb7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ebal";
+          sha256 = "1kqnlp5n1aig1qbqdq9q50wgqkzd1l6h9wi1gv43cif8qa1kxhwg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/ebal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ebf = callPackage ({ cl-lib ? null
+                       , dash
+                       , dash-functional
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ebf";
+        ename = "ebf";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "rexim";
+          repo = "ebf";
+          rev = "d0bd4fe1abbe327e7d9228eff09927fec57e8378";
+          sha256 = "16hiwz8a1hyyiflzn53v97704v783pg18yxapn7pqk90fbcf7czw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ebf";
+          sha256 = "072w1hczzb4z0dadvqy8px9zfnfd2z0w8nwa7q2qm5njg30rrqpb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash dash-functional ];
+        meta = {
+          homepage = "https://melpa.org/#/ebf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ebib = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , parsebib
+                        , seq }:
+      melpaBuild {
+        pname = "ebib";
+        ename = "ebib";
+        version = "2.12.1";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "ebib";
+          rev = "1b675d32ebeb8b52cd20934b6e4a4914361329fa";
+          sha256 = "0g12bg4wnzki6v780zhn8gxr80lrszldq8wpcni20l78kn799rdv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ebib";
+          sha256 = "1kdqf5nk9l6mr3698nqngrkw5dicgf7d24krir5wrcfbrsqrfmid";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs parsebib seq ];
+        meta = {
+          homepage = "https://melpa.org/#/ebib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eclim = callPackage ({ cl-lib ? null
+                         , dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , json ? null
+                         , lib
+                         , melpaBuild
+                         , popup
+                         , s
+                         , yasnippet }:
+      melpaBuild {
+        pname = "eclim";
+        ename = "eclim";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "emacs-eclim";
+          repo = "emacs-eclim";
+          rev = "6da0025d387119bb88c8bc870156fb1a8411ac4e";
+          sha256 = "1jpscpjlfgjcfivz86sg6d41m6c8brwali8annhxwk3qykxdh9ik";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eclim";
+          sha256 = "1n60ci6kjmzy2khr3gs7s8gf21j1f9zjaj5a1yy2dyygsarbxw7b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash json popup s yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/eclim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ecukes = callPackage ({ ansi
+                          , commander
+                          , dash
+                          , espuds
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "ecukes";
+        ename = "ecukes";
+        version = "0.6.17";
+        src = fetchFromGitHub {
+          owner = "ecukes";
+          repo = "ecukes";
+          rev = "3a77ba9f1064c2bca47b401974c009e65727c46e";
+          sha256 = "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ecukes";
+          sha256 = "0ava8hrc7r1mzv6xgbrb84qak5xrf6fj8g9qr4i4g0cr7843nrw0";
+          name = "recipe";
+        };
+        packageRequires = [ ansi commander dash espuds f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ecukes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edbi = callPackage ({ concurrent
+                        , ctable
+                        , epc
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "edbi";
+        ename = "edbi";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-edbi";
+          rev = "ad3cebf1fa90a92d112ce6ecf404dc0192ea9367";
+          sha256 = "0j9pkb4r5rmx0h0rsvgnkp75ars63v6llhv9vc41fbjir14fs81x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edbi";
+          sha256 = "0qq0j16n8lyvkqqlcsrq1m7r7f0in6b92d74mpx5c6siv6z2vxlr";
+          name = "recipe";
+        };
+        packageRequires = [ concurrent ctable epc ];
+        meta = {
+          homepage = "https://melpa.org/#/edbi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edbi-minor-mode = callPackage ({ edbi
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "edbi-minor-mode";
+        ename = "edbi-minor-mode";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "edbi-minor-mode";
+          rev = "566a2141a6eb9d9d5d7e1bd7c251d1c5e8f0d2ec";
+          sha256 = "1g6mlmrwl8p5ffj9q298vymd9xi2kpp7mhbmz4by4f6a3g831c88";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edbi-minor-mode";
+          sha256 = "0p7vdf9cp6i7mhjxj82670pfflf1kacalmakb7ssgigs1nsf3spi";
+          name = "recipe";
+        };
+        packageRequires = [ edbi ];
+        meta = {
+          homepage = "https://melpa.org/#/edbi-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ede-php-autoload = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ede-php-autoload";
+        ename = "ede-php-autoload";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "ede-php-autoload";
+          rev = "3f13302b9e8dbb6a24205c4bc21acadff487d30b";
+          sha256 = "03mjw824d0l2g8n07ys3j89x8chbx64znhhz14y6ni4b9650njdf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ede-php-autoload";
+          sha256 = "1255a1drpb50650i0yijahbp97chpw89mi9fvdrk3vf64xlysamq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ede-php-autoload";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ede-php-autoload-composer-installers = callPackage ({ ede-php-autoload
+                                                        , f
+                                                        , fetchFromGitHub
+                                                        , fetchurl
+                                                        , lib
+                                                        , melpaBuild
+                                                        , s }:
+      melpaBuild {
+        pname = "ede-php-autoload-composer-installers";
+        ename = "ede-php-autoload-composer-installers";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "xendk";
+          repo = "ede-php-autoload-composer-installers";
+          rev = "f9942e07d0773444040084ac84652e69f0fd46d5";
+          sha256 = "04gw8ma5c898ai7haxvdagmxx8zw9ncc9v0cv8a5ddg6arvzkl1z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ede-php-autoload-composer-installers";
+          sha256 = "0s7dv81niz4h8kj0648x2nbmz47hqxchfs2rjmjpy2lcbifvj268";
+          name = "recipe";
+        };
+        packageRequires = [ ede-php-autoload f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ede-php-autoload-composer-installers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ede-php-autoload-drupal = callPackage ({ ede-php-autoload
+                                           , f
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild
+                                           , s }:
+      melpaBuild {
+        pname = "ede-php-autoload-drupal";
+        ename = "ede-php-autoload-drupal";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "xendk";
+          repo = "ede-php-autoload-drupal";
+          rev = "9fbda34704a15136f934d628b2a24b5e30f8510b";
+          sha256 = "095w19b9lhqfsf7fg58k5v2w1wxkfc44dd828ah62083a2ph5d56";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ede-php-autoload-drupal";
+          sha256 = "139sr7jy5hb8h5zmw5mw01r0dy7yvbbyaxzj62m1a589n8w6a964";
+          name = "recipe";
+        };
+        packageRequires = [ ede-php-autoload f s ];
+        meta = {
+          homepage = "https://melpa.org/#/ede-php-autoload-drupal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-indirect = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "edit-indirect";
+        ename = "edit-indirect";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "edit-indirect";
+          rev = "032ac0ec690d4999d564fd882588c7a197efe8dd";
+          sha256 = "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-indirect";
+          sha256 = "0q5jjmrvx5kaajllmhaxihsab2kr1vmcsfqrhxdhw3x3nf41s439";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/edit-indirect";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-list = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "edit-list";
+        ename = "edit-list";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "emacsmirror";
+          repo = "edit-list";
+          rev = "f460d3f9e208a4e606fe6ded307f1b011916ca71";
+          sha256 = "0981hy1n50yizc3k06vbxqrpfml817a67kab1hkgkw5v6ymm1hc9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-list";
+          sha256 = "0mi12jfgx06i0yr8k5nk80xryqszjv0xykdnri505862rb90xakv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/edit-list";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edit-server = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "edit-server";
+        ename = "edit-server";
+        version = "1.15";
+        src = fetchFromGitHub {
+          owner = "stsquad";
+          repo = "emacs_chrome";
+          rev = "7e083580f8cc00ee88d9db00b8b47ae4349502a5";
+          sha256 = "0kvvs9pkwydarpzmar4mbqvp05jrkvq06yz99l3llklaw09g7bfv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edit-server";
+          sha256 = "0ffxcgmnz0f2c1i3vfwm8vlm6jyd7ibf4kq5z8c6n50zkwfdmns0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/edit-server";
+          license = lib.licenses.free;
+        };
+      }) {};
+    editorconfig = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "editorconfig";
+        ename = "editorconfig";
+        version = "0.7.13";
+        src = fetchFromGitHub {
+          owner = "editorconfig";
+          repo = "editorconfig-emacs";
+          rev = "e2a5cfe9709e75f4abf0b4856831a1699d2d7479";
+          sha256 = "1jx1zxk2nib3vfzvwbkd22503h7n9faa409gl55gw5kysw9lk3pn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/editorconfig";
+          sha256 = "0zv96m07ml8i3k7zm7sdci4hn611n3ypna7zppfkwbdyr7d5k2gc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/editorconfig";
+          license = lib.licenses.free;
+        };
+      }) {};
+    editorconfig-custom-majormode = callPackage ({ editorconfig
+                                                 , fetchFromGitHub
+                                                 , fetchurl
+                                                 , lib
+                                                 , melpaBuild }:
+      melpaBuild {
+        pname = "editorconfig-custom-majormode";
+        ename = "editorconfig-custom-majormode";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "editorconfig-custom-majormode-el";
+          rev = "ae613f0a56364afbbab19d4377c108406d5cfc7c";
+          sha256 = "0sm3xdysnqzc6nc2n7rcnr478l7qdy7bv8rhq500240aprzv63y4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/editorconfig-custom-majormode";
+          sha256 = "0ykvjg3gwxky6w5cm0y5s63q9820b7d25fy9plw8sarxwy2a5lxy";
+          name = "recipe";
+        };
+        packageRequires = [ editorconfig ];
+        meta = {
+          homepage = "https://melpa.org/#/editorconfig-custom-majormode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edn = callPackage ({ cl-lib ? null
+                       , dash
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , peg
+                       , s }:
+      melpaBuild {
+        pname = "edn";
+        ename = "edn";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "expez";
+          repo = "edn.el";
+          rev = "bb035dcbeccccdb2c899d2cce8e81486764d0ad7";
+          sha256 = "06v34l9dkykrrdfpnm3zi5wjm0fdvy76pbkfnk92wqkjp8fqimhd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edn";
+          sha256 = "00cy8axhy2p3zalzl8k2083l5a7s3aswb9qfk9wsmf678m8pqwqg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs peg s ];
+        meta = {
+          homepage = "https://melpa.org/#/edn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    edts = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "edts";
+        ename = "edts";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "tjarvstrand";
+          repo = "edts";
+          rev = "f25b8450efaee916900d8cb7b3fb0f3c5d1990f5";
+          sha256 = "00i7nd3lkak360klfmq3zngfm251l4d319lrwln0ajlk0x2gljag";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/edts";
+          sha256 = "0f0rbd0mqqwn743qmr1g5mmi1sbmlcglclww8jxvbvb61jq8vspr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/edts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eg = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "eg";
+        ename = "eg";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "eg.el";
+          rev = "0791452498719afb7409d1f723dbea2ec26d56f1";
+          sha256 = "1y16pah8f4jp117vihvlcwvsw2i85gdk45h9y9r1w9mslb24faac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eg";
+          sha256 = "1ic6qzk0zmay3vvbb8jg35irqkc0k68dmgbq4j9isiawy449zvp7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    egg = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "egg";
+        ename = "egg";
+        version = "1.0.9";
+        src = fetchFromGitHub {
+          owner = "byplayer";
+          repo = "egg";
+          rev = "59e87b5f150ba5add385b29f8e07cb41e6588bca";
+          sha256 = "16cs1ba2v2pm8wsm6z71s7ad619f45vi4v6hwqswi6fljjhmc175";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/egg";
+          sha256 = "144g1fvs2cmn3px0a98nvxl5cz70kx30v936k5ppyi8gvbj0md5i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/egg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    egison-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "egison-mode";
+        ename = "egison-mode";
+        version = "3.7.14";
+        src = fetchFromGitHub {
+          owner = "egison";
+          repo = "egison";
+          rev = "ddc6d910be421d891efc8c7c033b99b10364c4c3";
+          sha256 = "1rw5xjs4hnikj2swskczxn3x31811znsgzj72b975zbmd5vp98kd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/egison-mode";
+          sha256 = "0bch4863l9wxrss63fj46gy3nx3hp635709xr4c2arw0j7n82lzd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/egison-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eglot = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , jsonrpc
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "eglot";
+        ename = "eglot";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "eglot";
+          rev = "9211f162dc3eb956c51faeb3e7195603fa84c60c";
+          sha256 = "0p3fry60xvh7za0p8pyz4h21nzj6df1cbl9lxdzd19rwfd35fzpp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eglot";
+          sha256 = "17w39hcgv4p49g841qaicjdx7xac72yxvsc83jf1rrakg713pj7y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs jsonrpc ];
+        meta = {
+          homepage = "https://melpa.org/#/eglot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eide = callPackage ({ fetchgit
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "eide";
+        ename = "eide";
+        version = "2.1.3";
+        src = fetchgit {
+          url = "https://framagit.org/eide/eide.git";
+          rev = "7e4f101923d1aaa4ad4626ff60375ece8dd13e1d";
+          sha256 = "0j343hdarrlgznc4f59gbix20zlpr4wv5b8db6m0262ajc5q5zfb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eide";
+          sha256 = "1962shxcfn3v1ljann7182ca6ciy5xfbcd6l9l8rc8gikp55qv8m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ein = callPackage ({ auto-complete
+                       , cl-generic
+                       , dash
+                       , deferred
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , request
+                       , request-deferred
+                       , s
+                       , skewer-mode
+                       , websocket }:
+      melpaBuild {
+        pname = "ein";
+        ename = "ein";
+        version = "0.14.1";
+        src = fetchFromGitHub {
+          owner = "millejoh";
+          repo = "emacs-ipython-notebook";
+          rev = "fcf9bff0af071f5e2020ac77d9a9473325e4c5bb";
+          sha256 = "1xk7k4av9hy0i7zqwpzis0rjp5myvxs52k45ah00zg8wi5hybq1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ein";
+          sha256 = "14blq1cbrp00rq0ilk7z9qppqfj0r4n3jidw3abcpchvh5ln086r";
+          name = "recipe";
+        };
+        packageRequires = [
+          auto-complete
+          cl-generic
+          dash
+          deferred
+          request
+          request-deferred
+          s
+          skewer-mode
+          websocket
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/ein";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eink-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "eink-theme";
+        ename = "eink-theme";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "maio";
+          repo = "eink-emacs";
+          rev = "93d25c097b105594472c4f99d693f439b4b709f0";
+          sha256 = "0m7qsk378c30fva2n2ag99rsdklx5nsqc395msg1ab11sbpxvis0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eink-theme";
+          sha256 = "0z437cpf1b8bqyi7bv0w0dnc52q4f5g17530lwdcxjkr38s9b1zn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eink-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ejc-sql = callPackage ({ auto-complete
+                           , clomacs
+                           , dash
+                           , direx
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , spinner }:
+      melpaBuild {
+        pname = "ejc-sql";
+        ename = "ejc-sql";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "kostafey";
+          repo = "ejc-sql";
+          rev = "a4db6db8a3f9d218bbba728c5ac2f2847df10343";
+          sha256 = "1i0l3nzhqjarv9pi0jv1vwd2478v5ql7aajcxsigvakj0xg27dr9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ejc-sql";
+          sha256 = "0v9mmwc2gm58nky81q7fibj93zi7zbxq1jzjw55dg6cb6qb87vnx";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete clomacs dash direx emacs spinner ];
+        meta = {
+          homepage = "https://melpa.org/#/ejc-sql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-autoyas = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "el-autoyas";
+        ename = "el-autoyas";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "el-autoyas.el";
+          rev = "bde0251ecb504f585dfa27c205c8e312655310cc";
+          sha256 = "0dbp2zz993cm7mrd58c4iflbzqwg50wzgn2cpwfivk14w1mznh4n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-autoyas";
+          sha256 = "0hh5j79f3z82nmb3kqry8k8lgc1qswk6ni3g9jg60pasc3wkbh6c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-autoyas";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-get = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "el-get";
+        ename = "el-get";
+        version = "5.1";
+        src = fetchFromGitHub {
+          owner = "dimitri";
+          repo = "el-get";
+          rev = "bfffd553f4c72b818e9ee94f05458eae7a16056b";
+          sha256 = "1awyh9ffd6a4cia239s89asb88ddqlnrv757d76vcb701pq412bz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-get";
+          sha256 = "1438v2sw5n67q404c93y2py226v469nagqwp4w9l6yyy40h4myhz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-get";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-init = callPackage ({ anaphora
+                           , cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "el-init";
+        ename = "el-init";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "el-init";
+          rev = "25fd21d820bca1cf576b8f70c8d5a3bc76792597";
+          sha256 = "1mzla7ijmq1mgzr6bf16mjdycbf8ylsf4zdk4j6fh5kw5n4k6c5n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-init";
+          sha256 = "121n6z8p9kzi7axp4i2kyi621gw20635w4j81i1bryblaqrv5kl5";
+          name = "recipe";
+        };
+        packageRequires = [ anaphora cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/el-init";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-init-viewer = callPackage ({ anaphora
+                                  , cl-lib ? null
+                                  , ctable
+                                  , dash
+                                  , el-init
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "el-init-viewer";
+        ename = "el-init-viewer";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "el-init-viewer";
+          rev = "5e42667c53aa096f671c011474e0d75cf1947a18";
+          sha256 = "057hbf78p8ihpnschmzng4yn1jqpw12drvgxk4l8csr3fpqw4spf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-init-viewer";
+          sha256 = "0kkmsml9xf2n8nlrcicfg2l78s3dlhd6ssx0s62v77v4wdpl297m";
+          name = "recipe";
+        };
+        packageRequires = [ anaphora cl-lib ctable dash el-init emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/el-init-viewer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-mock = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "el-mock";
+        ename = "el-mock";
+        version = "1.25.1";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "el-mock.el";
+          rev = "3069931de75bb6704ecf565af5390009dc4dae00";
+          sha256 = "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-mock";
+          sha256 = "07m7w7n202nijnxidy0j0r4nbcvlnbkm9b0n8qb2bwi3d4cfp77l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-mock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-patch = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "el-patch";
+        ename = "el-patch";
+        version = "2.2.1";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "el-patch";
+          rev = "15b3e84ab7001d42acd621cd6572ffdca839ea33";
+          sha256 = "0fg4zzvk7vddiqgk9hcq8h09j8xr6c3hxhh7fa9rah4ni6clxmaw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-patch";
+          sha256 = "1imijmsni8c8fxjrzprnanf94c1pma3h5w9p75c4y99l8l3xmj7g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/el-patch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-spice = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "el-spice";
+        ename = "el-spice";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "vedang";
+          repo = "el-spice";
+          rev = "972dace20ec61cd27b9322432d0c7a688c6f061a";
+          sha256 = "1wrb46y4s4v0lwwyriz2qn1j1l804jyb4dmadf462jxln85rml70";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-spice";
+          sha256 = "0i0l3y9w1q9pf5zhvmsq4h427imix67jgcfwq21b6j82dzg5l4hg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-spice";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el-x = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "el-x";
+        ename = "el-x";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "el-x";
+          rev = "b0b69b182f7a81a550ccf9b3a14d8d91560b4f70";
+          sha256 = "1dky0vydwh7l786w7gci4x17kkf6dg8gijmqzl4y0ij9zm9kfxzz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el-x";
+          sha256 = "1721d9mljlcbdwb5b9934q7a48y30x6706pp4bjvgys0r64dml5g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/el-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    el2org = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "el2org";
+        ename = "el2org";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "el2org";
+          rev = "4a33469cd305e581603d7ef63bc2a1f2156f2e2e";
+          sha256 = "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/el2org";
+          sha256 = "02kyvzpjws2mrp414i4zm4fmrnzgkaax6bnrlyhp17a8aqaggbnh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/el2org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elbank = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , seq }:
+      melpaBuild {
+        pname = "elbank";
+        ename = "elbank";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "elbank";
+          rev = "f494716105b1a9f4f52f43bc3dd37c9cd0309bf5";
+          sha256 = "0bvx6nq0gjjbjs0mzd1x1ajyjpa181z0n4kv4aknh3is210gbpbb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elbank";
+          sha256 = "1i1cdywcbdj9ykfczbagrqdpgf3c88f1kc0mdlj8mzyvjixx7mhk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/elbank";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elcouch = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , json-mode
+                           , lib
+                           , libelcouch
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "elcouch";
+        ename = "elcouch";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "elcouch";
+          rev = "d22e8cab9328966b2e2d5bc4fc17a4abbb222736";
+          sha256 = "0l9ah3ijlidjshwkazfcdasm3hmigw8dcyqgi9pmpv0kw9096y64";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elcouch";
+          sha256 = "1dp7chvnz6gadqgyqbvdxpva3hm3sx60izsa690mp2rifjyxgqf1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs json-mode libelcouch ];
+        meta = {
+          homepage = "https://melpa.org/#/elcouch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eldoc-eval = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "eldoc-eval";
+        ename = "eldoc-eval";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "eldoc-eval";
+          rev = "deca5e39f31282a06531002d289258cd099433c0";
+          sha256 = "1fh9dx669czkwy4msylcg64azz3az27akx55ipnazb5ghmsi7ivk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eldoc-eval";
+          sha256 = "0z4scgi2xgrgd47aqqmyv1ww8alh43s0qny5qmh3f1nnppz3nd7c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eldoc-eval";
+          license = lib.licenses.free;
+        };
+      }) {};
+    electric-operator = callPackage ({ dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , names }:
+      melpaBuild {
+        pname = "electric-operator";
+        ename = "electric-operator";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "electric-operator";
+          rev = "21e6b84754118912768263a393442a7aefb4742b";
+          sha256 = "1bgz5vn4piax8jm0ixqlds0qj5my26zczaxs21fah11pwbdc0xyk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/electric-operator";
+          sha256 = "043bkpvvk42lmkll5jnz4q8i0m44y4wdxvkz6hiqhqcp1rv03nw2";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs names ];
+        meta = {
+          homepage = "https://melpa.org/#/electric-operator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elf-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "elf-mode";
+        ename = "elf-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "elf-mode";
+          rev = "cd280d683cd3341d8bb31af6db7e3b74a133e6ab";
+          sha256 = "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elf-mode";
+          sha256 = "0xwpaqg4mc0a0d8a4dxbd1sqzvi01gfhwr75f7i3sjzx0fj8vcwd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elfeed = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "elfeed";
+        ename = "elfeed";
+        version = "3.1.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "elfeed";
+          rev = "3d1c6ecbe585f9fe6ca5a97a3fc352d68f303f9e";
+          sha256 = "1bzpl6lc7kq9bph4bfz1fn19207blrnhjr2g7yinhn0nnnjmxi8i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elfeed";
+          sha256 = "1psga7fcjk2b8xjg10fndp9l0ib72l5ggf43gxp62i4lxixzv8f9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elfeed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elfeed-protocol = callPackage ({ auth-source
+                                   , cl-lib ? null
+                                   , elfeed
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "elfeed-protocol";
+        ename = "elfeed-protocol";
+        version = "0.5.6";
+        src = fetchFromGitHub {
+          owner = "fasheng";
+          repo = "elfeed-protocol";
+          rev = "936e362bc13714dffdf2b9b1a17a4d708092ab2c";
+          sha256 = "0qqh8kla4x9mbfkv2i2dwqnfswjvvg4s3118jznjbz32lv2bpzcp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elfeed-protocol";
+          sha256 = "1gd2ny764qsnnqf3j7rbdqhh7hqd5c0fzwxx6wacd0dpbq4w56qi";
+          name = "recipe";
+        };
+        packageRequires = [ auth-source cl-lib elfeed emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elfeed-protocol";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elfeed-web = callPackage ({ elfeed
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , simple-httpd }:
+      melpaBuild {
+        pname = "elfeed-web";
+        ename = "elfeed-web";
+        version = "3.1.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "elfeed";
+          rev = "3d1c6ecbe585f9fe6ca5a97a3fc352d68f303f9e";
+          sha256 = "1bzpl6lc7kq9bph4bfz1fn19207blrnhjr2g7yinhn0nnnjmxi8i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elfeed-web";
+          sha256 = "14ydwvjjc6wbhkj4g4xdh0c3nh4asqsz8ln7my5vjib881vmaq1n";
+          name = "recipe";
+        };
+        packageRequires = [ elfeed emacs simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/elfeed-web";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-def = callPackage ({ dash
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "elisp-def";
+        ename = "elisp-def";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "elisp-def";
+          rev = "5e0d766a5db537f4e7145c2053c22829d736ceba";
+          sha256 = "0l9az09yw40rr2xrvf01c3idfqplddr1kk880qscnzj8v9p06l4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-def";
+          sha256 = "1y29nsgjv9nb03g0jc5hb1a8k23r54ivdlv9h0a384cig8i91hsz";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-def";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-lint = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "elisp-lint";
+        ename = "elisp-lint";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "gonewest818";
+          repo = "elisp-lint";
+          rev = "9d894e99377859171ee54cb7d2b2e7f2cc7c267c";
+          sha256 = "11pvqskjhxxsyxmy8wllqwa0qg0j9280h0m5rzjghgsdcnlisyvq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-lint";
+          sha256 = "13cxcn0qp63f2nkv37c3w47dby9cqm4l1f8xilgpczdaxd86kd63";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-lint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-refs = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , loop
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "elisp-refs";
+        ename = "elisp-refs";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "elisp-refs";
+          rev = "788f6f65d5171b1887b3ff9e4cad900e8046b2b1";
+          sha256 = "0c7hcbjqynw6k5idpmfxn6xbr192ahhk8a2g72npap97flpw6cdq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-refs";
+          sha256 = "1pj3dm2z6m24179ibl7zhr8lhan2v2rjnm3abfciwp228piz1sfz";
+          name = "recipe";
+        };
+        packageRequires = [ dash loop s ];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-refs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elisp-slime-nav = callPackage ({ cl-lib ? null
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "elisp-slime-nav";
+        ename = "elisp-slime-nav";
+        version = "0.9";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "elisp-slime-nav";
+          rev = "0e96d9f1f0d334f09414b509d44d5c000b51f432";
+          sha256 = "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elisp-slime-nav";
+          sha256 = "009zgp68i4naprpjr8lcp06lh3i5ickn0nh0lgvrqs0niprnzh8c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/elisp-slime-nav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elixir-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , pkg-info }:
+      melpaBuild {
+        pname = "elixir-mode";
+        ename = "elixir-mode";
+        version = "2.3.1";
+        src = fetchFromGitHub {
+          owner = "elixir-editors";
+          repo = "emacs-elixir";
+          rev = "a1f4d60ec555574c945201359d2e32b183c69f4b";
+          sha256 = "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elixir-mode";
+          sha256 = "0d25p6sal1qg1xsq5yk343afnrxa0lzpx5gsh72khnx2i8pi40vz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/elixir-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elixir-yasnippets = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , yasnippet }:
+      melpaBuild {
+        pname = "elixir-yasnippets";
+        ename = "elixir-yasnippets";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "hisea";
+          repo = "elixir-yasnippets";
+          rev = "6b55c88ce483932f226b6bca0212b589d1d393ea";
+          sha256 = "0dx5h3sfccc2bp1jxnqqki95x5hp1skw8n5n4lnh703yjga5gkrz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elixir-yasnippets";
+          sha256 = "0vmkcd88wfafv31lyw0983p4qjj387qf258q7py1ij47fcmfp579";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/elixir-yasnippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elm-mode = callPackage ({ emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , let-alist
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "elm-mode";
+        ename = "elm-mode";
+        version = "0.20.3";
+        src = fetchFromGitHub {
+          owner = "jcollard";
+          repo = "elm-mode";
+          rev = "29f50a940113d793a21998f3bb414fdd9b0c5daa";
+          sha256 = "02c7xl9w81140l7p9kywr5qwsdyv92nxdhzqcxjk0r09x7s0cvsk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elm-mode";
+          sha256 = "1gw9szkyr1spcx7qijddhxlm36h0hmfd53b4yzp1336yx44mlnd1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f let-alist s ];
+        meta = {
+          homepage = "https://melpa.org/#/elm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elmacro = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "elmacro";
+        ename = "elmacro";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "Silex";
+          repo = "elmacro";
+          rev = "9ed19a362b63d9c7436a78feb91bc694194cfefe";
+          sha256 = "00qqa9p9z50gxna4qrsvph4nj41gldl1qj210ywk3lgwn0jjm0k9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elmacro";
+          sha256 = "0644rgwawivrq1shsjx1x2p53z7jgr6bxqgn2smzql8pp6azy7xz";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/elmacro";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elmine = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "elmine";
+        ename = "elmine";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "leoc";
+          repo = "elmine";
+          rev = "091f61c70c9e7630a74b7b127488051d143a35e7";
+          sha256 = "080nnw6ddsczbm7gk50x4dkahi77fsybfiki5iyp39fjpa7lfzq3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elmine";
+          sha256 = "1xkx1wwrzd2dl13z8n4qh3gl202j0i9crab5b3788z8mq0g4v4bn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/elmine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elpa-audit = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "elpa-audit";
+        ename = "elpa-audit";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "elpa-audit";
+          rev = "a7a1806278c73ea6cb6d235714e7bc8088971df5";
+          sha256 = "1q4krfrc2dy0vr7q148msfpkcwj55mlsrn4n5xjnya4xj0134ib7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elpa-audit";
+          sha256 = "18a8n22g53d8fxzr3snb2px28gvxbkx44grrx8lywaprz1f1lwdi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/elpa-audit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elpa-clone = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "elpa-clone";
+        ename = "elpa-clone";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "dochang";
+          repo = "elpa-clone";
+          rev = "92f4c9d3570ad002575a90d0cc4a522c203a1110";
+          sha256 = "0m5w5wgyslvakcqpr3d198sy3561w2h002gflw0jp47v17hba1r7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elpa-clone";
+          sha256 = "172gpmpwf75y41n3v05l47w34x83vy63bqk97fd8a6b4dkj91lqa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elpa-clone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elpa-mirror = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "elpa-mirror";
+        ename = "elpa-mirror";
+        version = "2.1.1";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "elpa-mirror";
+          rev = "83a38b5721c459d311833522903de96f874e1a4e";
+          sha256 = "0j2nk1nhbihfqajkmzp3501mhv5617qhb7qbj46qz8azs8a1dvri";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elpa-mirror";
+          sha256 = "1jnviav2ybr13cgllg26kfjrwrl25adggnqiiwyjwgbbzxfycah8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elpa-mirror";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elpy = callPackage ({ company
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , find-file-in-project
+                        , highlight-indentation
+                        , lib
+                        , melpaBuild
+                        , pyvenv
+                        , s
+                        , yasnippet }:
+      melpaBuild {
+        pname = "elpy";
+        ename = "elpy";
+        version = "1.26.0";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "elpy";
+          rev = "c60189ec9bba29b75f32dfab814a9c7af96520eb";
+          sha256 = "0wynzp5xmrgiggmam82n6lfaiqmfl4n3ccpsgnh86r6pbsmssxjk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elpy";
+          sha256 = "1ri3dwnkw005plj1g5grmmq9np41sqk4s2v18pwsvr18ysnq6nnr";
+          name = "recipe";
+        };
+        packageRequires = [
+          company
+          emacs
+          find-file-in-project
+          highlight-indentation
+          pyvenv
+          s
+          yasnippet
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/elpy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elscreen = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "elscreen";
+        ename = "elscreen";
+        version = "2018.-4.3.-4.21";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "elscreen";
+          rev = "02164afab2c5fbff6e4aa7c59e0daedc6c504772";
+          sha256 = "1jzp7w2c9xl8x8kdxcchgp8s3ygvj70pi2vwwg1qilkya7yv61p0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elscreen";
+          sha256 = "1mlqbw14ilk6d3ba38kfw50pnlhb9f6sm5hy9dw58gp59siark5s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elscreen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elscreen-fr = callPackage ({ elscreen
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , seq }:
+      melpaBuild {
+        pname = "elscreen-fr";
+        ename = "elscreen-fr";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "rocher";
+          repo = "elscreen-fr";
+          rev = "b9c11f80d277086d5d5bf88623e15fc7adbbbe3c";
+          sha256 = "1dz8jqd2agh06hya59vbybrmgyhyz2rk6c9panrm49w37v0bwksb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elscreen-fr";
+          sha256 = "1kmga1zz9mb3hxd2sxja2vz45pix5a52yl0g9z4vmak32x9rgqrm";
+          name = "recipe";
+        };
+        packageRequires = [ elscreen seq ];
+        meta = {
+          homepage = "https://melpa.org/#/elscreen-fr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elscreen-mew = callPackage ({ elscreen
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "elscreen-mew";
+        ename = "elscreen-mew";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "elscreen-mew";
+          rev = "89871fad690ae161dc076e16ef481b1965612077";
+          sha256 = "14hwl5jzmm43qa4jbpsyswbz4hk1l2iwqh3ank6502bz58877k6c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elscreen-mew";
+          sha256 = "06g4wcfjs036nn64ac0zsvr08cfmak2hyj83y7a0r35yxr1853w4";
+          name = "recipe";
+        };
+        packageRequires = [ elscreen ];
+        meta = {
+          homepage = "https://melpa.org/#/elscreen-mew";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elwm = callPackage ({ dash
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "elwm";
+        ename = "elwm";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "elwm";
+          rev = "c33b183f006ad476c3a44dab316f580f8b369930";
+          sha256 = "1k7npf93xbmrsq607x8zlgrpzqvplgia3ixz5w1lr1jlv1m2m8x2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elwm";
+          sha256 = "0rf663ih3lfg4n4pj4dpp133967zha5m1wr46riaxpha7xr59al9";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/elwm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    elx = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "elx";
+        ename = "elx";
+        version = "1.2.5";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "elx";
+          rev = "2b976e613c571d494ce34628995c9e61095b4a49";
+          sha256 = "0nnk1s8baikqr4lpq88sdlnfacpd6qnlsw9780jdm6pwqcig5m3w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/elx";
+          sha256 = "008nwa2gn3d2ayr8023pxyvph52gh9m56f77h41hp8hcw6hbdwrz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/elx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacs-setup = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "emacs-setup";
+        ename = "emacs-setup";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "echosa";
+          repo = "emacs-setup";
+          rev = "cc36ad5318c6c0e65d1b9ff8dff5ea2437675de2";
+          sha256 = "15l3ab11vcmzqibkd6h5zqw5a83k8dmgcp4n26px29c0gv6bkpy8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacs-setup";
+          sha256 = "1x4rh8vx6fsb2d6dz2g9j6jamin1vmpppwy3yzbl1dnf7w4hx4kh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emacs-setup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsagist = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "emacsagist";
+        ename = "emacsagist";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "echosa";
+          repo = "emacsagist";
+          rev = "539b9c4c0652d793391135ba1fc2e503dbb7deba";
+          sha256 = "0n5cpmbyf8mhq03ikhzbycjwkxv3fmjwq1a9zvv3z9ik8yxnbw99";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsagist";
+          sha256 = "1cyz7nf0zxa21979jf5kdmkgwiyd17vsmpcmrw1af37ly27l8l64";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsagist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsc = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "emacsc";
+        ename = "emacsc";
+        version = "1.2.20131027";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "emacsc";
+          rev = "69607bdc3a0c070e924a3bcac93180f917992368";
+          sha256 = "1r6cpb7fck5znb7q7zrxcsjn7d3xiqhq8dp1ar1rsd6k4h05by4j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsc";
+          sha256 = "1fbf9al3yds0il18jz6hbpj1fsjlpb1kgp450gb6r09lc46x77mk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emacsc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsql = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "emacsql";
+        ename = "emacsql";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacsql";
+          rev = "8c5f095458aa37e4146b80d9319ee63571734127";
+          sha256 = "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsql";
+          sha256 = "0c2d0kymzr53wh87fq1wy2x5ahfsymz0cw8qbrqx0k613l3mpr38";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsql-mysql = callPackage ({ emacs
+                                 , emacsql
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "emacsql-mysql";
+        ename = "emacsql-mysql";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacsql";
+          rev = "ea613c5191dcaa2583d3f7d5737b31bb88a07ed5";
+          sha256 = "1i733wjvpd6lhdnwr8w2k0c8s7v7r9ivsmxxgdndlhdnkm17ca5j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsql-mysql";
+          sha256 = "1c20zhpdzfqjds6kcjhiq1m5ch53fsx6n1xk30i35kkg1wxaaqzy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emacsql ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsql-mysql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsql-psql = callPackage ({ emacs
+                                , emacsql
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "emacsql-psql";
+        ename = "emacsql-psql";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacsql";
+          rev = "ea613c5191dcaa2583d3f7d5737b31bb88a07ed5";
+          sha256 = "1i733wjvpd6lhdnwr8w2k0c8s7v7r9ivsmxxgdndlhdnkm17ca5j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsql-psql";
+          sha256 = "1aa1g9jyjmz6w0lmi2cf67926ad3xvs0qsg7lrccnllr9k0flly3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emacsql ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsql-psql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsql-sqlite = callPackage ({ emacs
+                                  , emacsql
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "emacsql-sqlite";
+        ename = "emacsql-sqlite";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacsql";
+          rev = "62d39157370219a1680265fa593f90ccd51457da";
+          sha256 = "0ghl3g8n8wlw8rnmgbivlrm99wcwn93bv8flyalzs0z9j7p7fdq9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsql-sqlite";
+          sha256 = "1y81nabzzb9f7b8azb9giy23ckywcbrrg4b88gw5qyjizbb3h70x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emacsql ];
+        meta = {
+          homepage = "https://melpa.org/#/emacsql-sqlite";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emacsshot = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "emacsshot";
+        ename = "emacsshot";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "marcowahl";
+          repo = "emacsshot";
+          rev = "eeb4bf9cc9d15250fc3c080492dd147ecd378bce";
+          sha256 = "1wqxhdhblf0v32sk1q92hnsgzjl13vvwsh9l35mkfn8563ih6il5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emacsshot";
+          sha256 = "08xqx017yfizdj8wz7nbh9i7qpar6398sri78abzf78inv828s9j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emacsshot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emamux = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "emamux";
+        ename = "emamux";
+        version = "0.14";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-emamux";
+          rev = "573dd1cf18584a1fd240efb16c7726b6fd790b73";
+          sha256 = "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emamux";
+          sha256 = "1pg0gzi8rn0yafssrsiqdyj5dbfy984srq1r4dpp8p3bi3n0fkfz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/emamux";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emaps = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "emaps";
+        ename = "emaps";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "GuiltyDolphin";
+          repo = "emaps";
+          rev = "823b8f72e6459c9f1a5dd62451ee4005ef71d955";
+          sha256 = "1g9637j8f65q3l6k4aw5p847m891irh74kg3pa2p9w0ppsa6n3jm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emaps";
+          sha256 = "151rh6lyqi0ps2w022shzjj67nkg6y4m1nfj90qyc7jgl64qb9qw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emaps";
+          license = lib.licenses.free;
+        };
+      }) {};
+    embrace = callPackage ({ cl-lib ? null
+                           , expand-region
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "embrace";
+        ename = "embrace";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "embrace.el";
+          rev = "dd5da196e5bcc5e6d87e1937eca0c21da4334ef2";
+          sha256 = "1m0qyipkp5ydgcav8d0m58fbj1gilipbj7g8mg40iajr8wfqcjdc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/embrace";
+          sha256 = "1w9zp9n91703d6jd4adl2xk574wsr7fm2a9v32b1i9bi3hr0hdjc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib expand-region ];
+        meta = {
+          homepage = "https://melpa.org/#/embrace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emmet-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "emmet-mode";
+        ename = "emmet-mode";
+        version = "1.0.8";
+        src = fetchFromGitHub {
+          owner = "smihica";
+          repo = "emmet-mode";
+          rev = "bf76d717c60f33d223cdac35513105e9f9244885";
+          sha256 = "1dsa85bk33j90h1ypaz1ylqh9yp2xvlga237h3kwa5y3sb0d5ydi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emmet-mode";
+          sha256 = "0wjv4hqddjvbdrmsxzav5rpwnm2n6lr86jzkrnav8f2kyzypdsnr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emmet-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms = callPackage ({ cl-lib ? null
+                        , fetchgit
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "emms";
+        ename = "emms";
+        version = "5.1";
+        src = fetchgit {
+          url = "https://git.savannah.gnu.org/git/emms.git";
+          rev = "47b1054683f4fa0a1ecd9999cb94c5c34994e018";
+          sha256 = "1lrkj4gy592mrym0qfb05hydpr7c2sbk6ap5q19zkblizf0gnad6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms";
+          sha256 = "1xpry8h96gvjnc0v8x0vk5dnmlq1r7m3ljpampdwv9pfwl95fh94";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/emms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-mode-line-cycle = callPackage ({ emacs
+                                        , emms
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "emms-mode-line-cycle";
+        ename = "emms-mode-line-cycle";
+        version = "0.2.5";
+        src = fetchFromGitHub {
+          owner = "momomo5717";
+          repo = "emms-mode-line-cycle";
+          rev = "2c2f395e484a1d345050ddd61ff5fab71a92a6bc";
+          sha256 = "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-mode-line-cycle";
+          sha256 = "1jdmfh1i9v84iy7bj2dbc3s2wfzkrby3pabd99gnqzd9gn1cn8ca";
+          name = "recipe";
+        };
+        packageRequires = [ emacs emms ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-mode-line-cycle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-player-simple-mpv = callPackage ({ cl-lib ? null
+                                          , emacs
+                                          , emms
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "emms-player-simple-mpv";
+        ename = "emms-player-simple-mpv";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "momomo5717";
+          repo = "emms-player-simple-mpv";
+          rev = "bcc056364df5f405716006a8b7bb90102a57f62f";
+          sha256 = "0kz31qsn3nrpi8r31nlxlkkkah0qcdkq9a9i9ypv4ky7pvnzx6m5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-player-simple-mpv";
+          sha256 = "1lv1rhd5vya068mnnaysfh56raar79hf2g413ysrk3yhyajk6316";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs emms ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-player-simple-mpv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emms-state = callPackage ({ emms
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "emms-state";
+        ename = "emms-state";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "emms-state.el";
+          rev = "77930300222333b71eafd495cc1fee3a3585eb23";
+          sha256 = "1kipxa9ax8zi9qqk19mknpg7nnlzgr734kh9bnklydipwnsy00pi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emms-state";
+          sha256 = "080y02hxxqfn0a0dhq5vm0r020v2q3h1612a2zkq5fxi8ssvhp9i";
+          name = "recipe";
+        };
+        packageRequires = [ emms ];
+        meta = {
+          homepage = "https://melpa.org/#/emms-state";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emoji-cheat-sheet-plus = callPackage ({ emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , helm
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "emoji-cheat-sheet-plus";
+        ename = "emoji-cheat-sheet-plus";
+        version = "1.2.1";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "emacs-emoji-cheat-sheet-plus";
+          rev = "96a003127d646a2683d81ca906a17eace0a6413e";
+          sha256 = "1rk7am0xvpnv98yi7a62wlyh576md4n2ddj7nm201bjd4wdl2yxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emoji-cheat-sheet-plus";
+          sha256 = "1ciwlbw0ihm0p5gnnl3safcj7dxwiy53bkj8cmw3i334al0gjnnv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/emoji-cheat-sheet-plus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emoji-fontset = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "emoji-fontset";
+        ename = "emoji-fontset";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "emoji-fontset.el";
+          rev = "e460c9a08e48ec4103e38a7a04acae20880149a9";
+          sha256 = "0xdlqsrwdf0smi5z9rjj46nwrrfpl0gzanf0jmdg8zzn62l6ldck";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emoji-fontset";
+          sha256 = "19affsvlm1rzrzdh1k6xsv79icdkzx4izxivrd2ia6y2wcg9wc5d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/emoji-fontset";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emojify = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , ht
+                           , lib
+                           , melpaBuild
+                           , seq }:
+      melpaBuild {
+        pname = "emojify";
+        ename = "emojify";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "iqbalansari";
+          repo = "emacs-emojify";
+          rev = "9fac58de9b8f7539bfd4c6983bc826e27d060b30";
+          sha256 = "1z5j4nr9c6806f6ys4p3b2byxca7zc34ap1bysai8nvzxz02rzf6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emojify";
+          sha256 = "1sgd32qm43hwby75a9q2pz1yfzj988i35d8p9f18zvbxypy7b2yp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ht seq ];
+        meta = {
+          homepage = "https://melpa.org/#/emojify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    emr = callPackage ({ cl-lib ? null
+                       , clang-format
+                       , dash
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , iedit
+                       , lib
+                       , list-utils
+                       , melpaBuild
+                       , paredit
+                       , popup
+                       , projectile
+                       , s }:
+      melpaBuild {
+        pname = "emr";
+        ename = "emr";
+        version = "0.3.8";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "emacs-refactor";
+          rev = "f25e3354e5e97deef359aef5386c69dea20b07b0";
+          sha256 = "107br10jwza4pwsx8gskh9kp2g28yzxclmwd2l9z137nmf24gm3a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/emr";
+          sha256 = "02a7yzv6vxdazi26wk1ijadrjffd4iaf1abhpv642xib86pgpfd6";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          clang-format
+          dash
+          emacs
+          iedit
+          list-utils
+          paredit
+          popup
+          projectile
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/emr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    engine-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "engine-mode";
+        ename = "engine-mode";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "hrs";
+          repo = "engine-mode";
+          rev = "243d04691475b47a4453ad7106d8268ca14d9f28";
+          sha256 = "02xas46nl28mascqsyr1zcd4hn15bh0fjv2xlxv1kmrj0pis94ml";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/engine-mode";
+          sha256 = "1gg7i93163m7k7lr3pnal1svymnhzwrfpfcdc0798d7ybv26gg8c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/engine-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    enh-ruby-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "enh-ruby-mode";
+        ename = "enh-ruby-mode";
+        version = "20180330";
+        src = fetchFromGitHub {
+          owner = "zenspider";
+          repo = "enhanced-ruby-mode";
+          rev = "b9d7d986c761e7f43993da0c3012e4fe77b19281";
+          sha256 = "190x5l5jhyxhfy57hvxk06yzxji2r3f99vw6a8ngyshvyxap7wq3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/enh-ruby-mode";
+          sha256 = "0r486yajjf7vsaz92ypxpfmz2nsvw9giffpxb9szj7fcry3nfdns";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/enh-ruby-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    enlive = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "enlive";
+        ename = "enlive";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "enlive";
+          rev = "60facaf8bc48b660d209551c0ce4d17e5c907ab8";
+          sha256 = "08j6b79vy8ry4ad1abk3hvxjbb4ylrhkvrbrnq1gcikl4h1p2v63";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/enlive";
+          sha256 = "1dyayk37zik12qfh8zbjmhsch64yqsx3acrlm7hcnavx465hmhnz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/enlive";
+          license = lib.licenses.free;
+        };
+      }) {};
+    enotify = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "enotify";
+        ename = "enotify";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "laynor";
+          repo = "enotify";
+          rev = "6bbd67c5e469d5613d9a8d60b0e13612df265c35";
+          sha256 = "1yxw1x4xixxj16pm4a4vk062hr50aaqidh91aljrx0jhv0akybdw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/enotify";
+          sha256 = "0mii6m6zw9y8njgzi79rcf1n251iw7qz3yqjjij3c19rk3zpm5qi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/enotify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ensime = callPackage ({ company
+                          , dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , popup
+                          , s
+                          , sbt-mode
+                          , scala-mode
+                          , yasnippet }:
+      melpaBuild {
+        pname = "ensime";
+        ename = "ensime";
+        version = "2.0.2";
+        src = fetchFromGitHub {
+          owner = "ensime";
+          repo = "ensime-emacs";
+          rev = "3d3ab18436ad6089496b3bce1d49c64a86965431";
+          sha256 = "0p821zwpiznjh736af5avnx9abssx0zbb9xhs74yhh1mcdi1whq7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ensime";
+          sha256 = "1d8y72l7bh93x9zdj3d3qjhrrzr804rgi6kjifyrin772dffjwby";
+          name = "recipe";
+        };
+        packageRequires = [
+          company
+          dash
+          popup
+          s
+          sbt-mode
+          scala-mode
+          yasnippet
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/ensime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eopengrok = callPackage ({ cl-lib ? null
+                             , dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , magit
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "eopengrok";
+        ename = "eopengrok";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "youngker";
+          repo = "eopengrok.el";
+          rev = "7c61cb06972708665f8e2921e6b9e7234e75cc24";
+          sha256 = "1r70k8ckfwdhya0zb2w5whpqvl8jx6w7i04vws99rzdw08ashack";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eopengrok";
+          sha256 = "0756x78113286hwk1i1m5s8xq04gh7zxb4fkmw58lg2ssff8q6av";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash magit s ];
+        meta = {
+          homepage = "https://melpa.org/#/eopengrok";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epc = callPackage ({ concurrent
+                       , ctable
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "epc";
+        ename = "epc";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-epc";
+          rev = "16e975efad63093a1f1f7b59f8fda5a3cf34f2a0";
+          sha256 = "0smk23f23jdnvmrisj5d4isna36sr15bbvh53dq5261y8ddxlkvw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epc";
+          sha256 = "1l9rcx07pa4b9z5654gyw6b64c95lcigzg15amphwr56v2g3rbzx";
+          name = "recipe";
+        };
+        packageRequires = [ concurrent ctable ];
+        meta = {
+          homepage = "https://melpa.org/#/epc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epkg = callPackage ({ closql
+                        , dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "epkg";
+        ename = "epkg";
+        version = "3.1.1";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "epkg";
+          rev = "5bc1b7515cc444b6ae9f7af7a208d77531cfb406";
+          sha256 = "17f3gn4j5h89xz1va4zyz63y9izwp171r6jiwdmib011bi5lrsbj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epkg";
+          sha256 = "0vvkjjaffvwvsvld3c6hwd18icmp2lc7f9yqvclifpadi98dhpww";
+          name = "recipe";
+        };
+        packageRequires = [ closql dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/epkg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epl = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "epl";
+        ename = "epl";
+        version = "0.9";
+        src = fetchFromGitHub {
+          owner = "cask";
+          repo = "epl";
+          rev = "fd906d3f92d58ecf24169055744409886ceb06ce";
+          sha256 = "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epl";
+          sha256 = "0zr3r2hn9jaxscrl83hyixznb8l5dzfr6fsac76aa8x12xgsc5hn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/epl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    epm = callPackage ({ emacs
+                       , epl
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "epm";
+        ename = "epm";
+        version = "0.1.-2.2";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "epm";
+          rev = "ee004d00c8c8fbe32c4e5baf6279c5e68dc5f201";
+          sha256 = "0llkgjqr9hl66nya1ppvrlcvmy3rh4pwc25ywq4zi0fbl25qsf5d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/epm";
+          sha256 = "0k94qhzxjzw5d0c53jnyx1xfciwr9qib845awyjaybzzs34s8r08";
+          name = "recipe";
+        };
+        packageRequires = [ emacs epl ];
+        meta = {
+          homepage = "https://melpa.org/#/epm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-crypt = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "erc-crypt";
+        ename = "erc-crypt";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "atomontage";
+          repo = "erc-crypt";
+          rev = "731f9264a5bf08a8fc0b5ce69e72058c86f873a5";
+          sha256 = "13jpq5ws5dm8fyjrskk4icxwz8k5wgh396cc8f8wxrjna4wb843w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-crypt";
+          sha256 = "1mzzqcxjnll4d9r9n5z80zfb3ywkd8jx6b49g02vwf1iak9h7hv3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-crypt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-hipchatify = callPackage ({ alert
+                                  , emacs
+                                  , fetchhg
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , request
+                                  , s }:
+      melpaBuild {
+        pname = "erc-hipchatify";
+        version = "0.1";
+        src = fetchhg {
+          url = "https://bitbucket.com/seanfarley/erc-hipchatify";
+          rev = "a53227513692";
+          sha256 = "0av0y65hz7fbiiqzmk5mmw6jv7fivhcd1w3s2xn5y5jpgps56mrc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/b60e01e7064ce486fdac3d1b39fd4a1296b0dac5/recipes/erc-hipchatify";
+          sha256 = "1a4gl05i757vvap0rzrfwms7mhw80sa84gvbwafrvj3x11rja24x";
+          name = "erc-hipchatify";
+        };
+        packageRequires = [ alert emacs request s ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-hipchatify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-hl-nicks = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "erc-hl-nicks";
+        ename = "erc-hl-nicks";
+        version = "1.3.3";
+        src = fetchFromGitHub {
+          owner = "leathekd";
+          repo = "erc-hl-nicks";
+          rev = "756c4438a8245ccd3e389bf6c9850ee8453783ec";
+          sha256 = "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-hl-nicks";
+          sha256 = "03hxsknf31vrja2amfa317ig4c34i5jpdq35zczrp00ap0s31nbq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-hl-nicks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-scrolltoplace = callPackage ({ emacs
+                                     , fetchFromGitLab
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , switch-buffer-functions }:
+      melpaBuild {
+        pname = "erc-scrolltoplace";
+        ename = "erc-scrolltoplace";
+        version = "0.1.0";
+        src = fetchFromGitLab {
+          owner = "jgkamat";
+          repo = "erc-scrolltoplace";
+          rev = "7539654e4a72edcc5bba07a101961e5bf0a9d449";
+          sha256 = "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-scrolltoplace";
+          sha256 = "0632i1p26z3f633iinkqka0x2dd55x02xidk9qr66jh0dzfs6q3i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs switch-buffer-functions ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-scrolltoplace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-twitch = callPackage ({ erc ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , json ? null
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "erc-twitch";
+        ename = "erc-twitch";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "vibhavp";
+          repo = "erc-twitch";
+          rev = "6938191c787d66fef4c13674e0a98a9d64eff364";
+          sha256 = "1xsxykmhz34gmyj4jb26qfai7j95kzlc7vfydrajc6is7xlrwhfk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-twitch";
+          sha256 = "08vlwcxrzc2ndm52112z1r0qnz6jlmjhiwq2j3j59fbw82ys61ia";
+          name = "recipe";
+        };
+        packageRequires = [ erc json ];
+        meta = {
+          homepage = "https://melpa.org/#/erc-twitch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erc-youtube = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "erc-youtube";
+        ename = "erc-youtube";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "kidd";
+          repo = "erc-youtube.el";
+          rev = "97054ba8475b442e2aa81e5a291f668b7f28697f";
+          sha256 = "0kh4amx3l3a14qaiyvjyak1jbybs6n49mdvzjrd1i2vd1y74zj5w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erc-youtube";
+          sha256 = "12ylxkskkgfv5x7vlkib963ichb3rlmdzkf4zh8a39cgl8wsmacx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erc-youtube";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ercn = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "ercn";
+        ename = "ercn";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "leathekd";
+          repo = "ercn";
+          rev = "73b00dadf83b97dd9edd8381a4b27f583c08b7f6";
+          sha256 = "19jninbf0dhdw3kn4d38bxmklg0v7sh3m9dwj6z69w99r5pcw480";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ercn";
+          sha256 = "0yvis02bypw6v1zv7i326y8s6j0id558n0bdri52hr5pw85imnlp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ercn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eredis = callPackage ({ dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "eredis";
+        ename = "eredis";
+        version = "0.9.6";
+        src = fetchFromGitHub {
+          owner = "justinhj";
+          repo = "eredis";
+          rev = "cfbfc25832f6fbc507bdd56b02e3a0b851a3c368";
+          sha256 = "1f2f57c0bz3c6p11hr69aar6z5gg33zvfvsm76ma11vx21qilz6i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eredis";
+          sha256 = "087lln2izn5bv7bprmbaciivf17vv4pz2cjl91hy2f0sww6nsiw8";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/eredis";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erefactor = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "erefactor";
+        ename = "erefactor";
+        version = "0.7.0";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-erefactor";
+          rev = "fde3fd42c815c76e8015f69518a92f6bfcfde990";
+          sha256 = "17i567nfm0rykimh6bpcc5f2l7wsf8zcdy2jzd7sgrl54dvb0g9i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erefactor";
+          sha256 = "0ma9sbrq4n8y5w7vvbhhgmw25aiykbq5yhxzm0knj32bgpviprw7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/erefactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ergoemacs-mode = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , undo-tree }:
+      melpaBuild {
+        pname = "ergoemacs-mode";
+        ename = "ergoemacs-mode";
+        version = "5.16.10.12";
+        src = fetchFromGitHub {
+          owner = "ergoemacs";
+          repo = "ergoemacs-mode";
+          rev = "ac70b2563fb6e3d69ea382fddc87b5721c20c292";
+          sha256 = "0ydxyylijdd6da4n9by441352shphrpfyk2631ld5aq3gz27z9gi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ergoemacs-mode";
+          sha256 = "0h99m0n3q41lw5fm33pc1405lrxyc8rzghnc6c7j4a6gr1d82s62";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs undo-tree ];
+        meta = {
+          homepage = "https://melpa.org/#/ergoemacs-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erlang = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "erlang";
+        ename = "erlang";
+        version = "21.1.2";
+        src = fetchFromGitHub {
+          owner = "erlang";
+          repo = "otp";
+          rev = "fd591b6f7bb681dd5335a67e66b1d0b8ecf2a76f";
+          sha256 = "1cxlv5gy86jx75k94c84bd4k2rclz40z0w50drnwasppcrriv2gj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erlang";
+          sha256 = "1cs768xxbyrr78ln50k4yknmpbcc1iplws3k07r0gx5f3ca73iaq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/erlang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    erlstack-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "erlstack-mode";
+        ename = "erlstack-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "k32";
+          repo = "erlstack-mode";
+          rev = "07398e929978b0eaf2bf119e97cba7b9f9e90d2a";
+          sha256 = "1gf9k3z9v1s7d01s551ys87j05xh3lpnvv86dq86rz8xinc09kac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/erlstack-mode";
+          sha256 = "0b7mj0rs8k3hdv4v3v5vmdqs0y26mss7dzc0sjjxj4d095yddqqf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/erlstack-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ert-async = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ert-async";
+        ename = "ert-async";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ert-async.el";
+          rev = "f64a7ed5b0d2900c9a3d8cc33294bf8a79bc8526";
+          sha256 = "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ert-async";
+          sha256 = "004798ckri5j72j0xvzkyciss1iz4lw9gya2749hkjxlamg14cn5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ert-async";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ert-junit = callPackage ({ emacs
+                             , ert ? null
+                             , fetchgit
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ert-junit";
+        ename = "ert-junit";
+        version = "0.4.0";
+        src = fetchgit {
+          url = "https://bitbucket.org/olanilsson/ert-junit";
+          rev = "b0649e94460aff5176dee5b33f28946bffb602d5";
+          sha256 = "0hj85hz4s1q4dalinhgahn8jn97s2pdpv41d9qqbvbdzwhhw2mrk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ert-junit";
+          sha256 = "0bv22mhh1ahbjwi6s1csxkh11dmy0srabkddjd33l4havykxlg6g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ert ];
+        meta = {
+          homepage = "https://melpa.org/#/ert-junit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ert-runner = callPackage ({ ansi
+                              , commander
+                              , dash
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s
+                              , shut-up }:
+      melpaBuild {
+        pname = "ert-runner";
+        ename = "ert-runner";
+        version = "0.7.0";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ert-runner.el";
+          rev = "00056c37817f15b1870ccedd13cedf102e3194dd";
+          sha256 = "0rdgdslspzb4s0n4a68hnwfm8vm8baasa8nzrdinf0nryn7rrhbf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ert-runner";
+          sha256 = "0fnb8rmjr5lvc3dq0fnyxhws8ync1lj5xp8ycs63z4ax6gmdqr48";
+          name = "recipe";
+        };
+        packageRequires = [ ansi commander dash f s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/ert-runner";
+          license = lib.licenses.free;
+        };
+      }) {};
+    es-lib = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "es-lib";
+        ename = "es-lib";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "es-lib";
+          rev = "753b27363e39c10edc9e4e452bdbbbe4d190df4a";
+          sha256 = "0jq4yp80wiphlpsc0429rg8n50g8l4lf78q0l3nywz2p93smjy9b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/es-lib";
+          sha256 = "0mwvgf5385qsp91zsdw75ipif1h90xy277xdmrpwixsxd7abbn0n";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/es-lib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    es-mode = callPackage ({ cl-lib ? null
+                           , dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , spark }:
+      melpaBuild {
+        pname = "es-mode";
+        ename = "es-mode";
+        version = "4.3.0";
+        src = fetchFromGitHub {
+          owner = "dakrone";
+          repo = "es-mode";
+          rev = "996730ebce57d810d2c275c7fadb11c2b1134dea";
+          sha256 = "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/es-mode";
+          sha256 = "0zp84k5idqkrvc9qci49ains0b86kpk97lk1jcwyj75s4xsfyp1y";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash spark ];
+        meta = {
+          homepage = "https://melpa.org/#/es-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    es-windows = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "es-windows";
+        ename = "es-windows";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "es-windows";
+          rev = "7ebe6c6e0831373847d7adbedeaa2e506b54b2af";
+          sha256 = "0cjchwrhk7bw87bg10zgcwkga50rvs0jn5v2jf6bbsxbcqx2nfc9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/es-windows";
+          sha256 = "112ngkan0hv3y7m71479f46x5gwdmf0vhbqrzs5kcjwlacqlrahx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/es-windows";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esa = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "esa";
+        ename = "esa";
+        version = "0.8.13";
+        src = fetchFromGitHub {
+          owner = "nabinno";
+          repo = "esa.el";
+          rev = "0f69f9f45ac15018c48853509ac38e68286f9c0e";
+          sha256 = "0cairmqsaghl2ddb2v8zhcwy5ik756m7gkair8xrbigz4jklpcv9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esa";
+          sha256 = "0y4mbq0z6vp0faxq6dq5hhxnsbi685amxqbvpxkxahl1nckp76lb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/esa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esh-autosuggest = callPackage ({ company
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "esh-autosuggest";
+        ename = "esh-autosuggest";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "esh-autosuggest";
+          rev = "95078aa17a104bc724283df48af36abfe4125853";
+          sha256 = "0fwxk26wlk2wkqs82zs5m3rd6670mjf6bar928cqam1f63fvx09q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esh-autosuggest";
+          sha256 = "1rcng1dhy4yw95qg909ck33svpdxhv9v5k7226d29gp4y54dwyrx";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/esh-autosuggest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esh-help = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "esh-help";
+        ename = "esh-help";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "tom-tan";
+          repo = "esh-help";
+          rev = "8a8a9d4d9852f8bd96da3b94e95ff57097ac8ec6";
+          sha256 = "02fybhmqm2qmy5qdig7xvwxazqi499pw32kh5mrsbdr14srg9fhs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esh-help";
+          sha256 = "1k925wmn8jy9rxxsxxawasxq6r4yzwl116digdx314gd3i04sh3w";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/esh-help";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-autojump = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-autojump";
+        ename = "eshell-autojump";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "eshell-autojump";
+          rev = "c0866d7f2789831665ebb01b812bae89d085bff0";
+          sha256 = "0nkmwwx224r50y2xnrz3v26l3ngqshvy5hs861gy4zagwllqfmvc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-autojump";
+          sha256 = "09l2680hknmdbwr4cncv1v4b0adik0c3sm5i9m3qbwyyxm8m41i5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-autojump";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-bookmark = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-bookmark";
+        ename = "eshell-bookmark";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "eshell-bookmark";
+          rev = "deda4b848b2fb979dbe73ead2cb866610e3596ed";
+          sha256 = "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-bookmark";
+          sha256 = "1bybxlq1h5chrjxqjb23kq8dmgw2xrjwkrnvpbphblqzpdy5ck0s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-bookmark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-did-you-mean = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-did-you-mean";
+        ename = "eshell-did-you-mean";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "eshell-did-you-mean";
+          rev = "7cb6ef8e2274d0a50a9e114d412307a6543533d5";
+          sha256 = "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-did-you-mean";
+          sha256 = "1z1wpn3sj1gi5nn0a71wg0i3av0dijnk79dc32zh3qlh500kz8mz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-did-you-mean";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-git-prompt = callPackage ({ cl-lib ? null
+                                     , dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-git-prompt";
+        ename = "eshell-git-prompt";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "eshell-git-prompt";
+          rev = "b6bb2d7bd4e393b4170b29891cfefb72ae020aab";
+          sha256 = "02i00an9wa8ns66xq900la68m7pd4hwv95g83cvf22bypivx7p2y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-git-prompt";
+          sha256 = "0a8pyppqvnavvb8rwsjxagb76hra9zhs5gwa0ylyznmql83f8w8s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-git-prompt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-prompt-extras = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-prompt-extras";
+        ename = "eshell-prompt-extras";
+        version = "0.96";
+        src = fetchFromGitHub {
+          owner = "kaihaosw";
+          repo = "eshell-prompt-extras";
+          rev = "7581c109673c40aceff278cd524273f50ffe170d";
+          sha256 = "1m1jisjz974cfz89i6l2zq666yzhsqipc6dmqlrm8mw81fxsfm1h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-prompt-extras";
+          sha256 = "0zkdb9a8dibk832b5hzb6wjich3l0lah5p64805rgd4qskzj10gx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-prompt-extras";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-up = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-up";
+        ename = "eshell-up";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "peterwvj";
+          repo = "eshell-up";
+          rev = "653121392acd607d5dfbca0832927e06806a2d39";
+          sha256 = "05mfwp8zira7p2ip1rmqa08arlbkv7w1mbx7s5saj655scg7jaq3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-up";
+          sha256 = "1jyaaw950isissjjgqflfn2bllgdfcyphpbi7il06mv9p0dzpwvy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-up";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eshell-z = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "eshell-z";
+        ename = "eshell-z";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "eshell-z";
+          rev = "96ec3f5f8a801c893d2c6a6b140e333ef2bfd8b5";
+          sha256 = "1aac4m814jgxwpz7lbyx5r4z5dmawp4sk7pwbx0zqpnbcsaq5wwc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eshell-z";
+          sha256 = "14ixazj0nscyqsdv7brqnfr0q8llir1pwb91yhl9jdqypmadpm6d";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/eshell-z";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eslint-fix = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "eslint-fix";
+        ename = "eslint-fix";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "codesuki";
+          repo = "eslint-fix";
+          rev = "be90d1e78b1dfd43b6b3b1c06868539e2ac27d3a";
+          sha256 = "1l7pm0ywjby0giilyn6qsz1zh54sgmvmii7y9jhrva13c5kgg9an";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eslint-fix";
+          sha256 = "0ry271jlv95nhdqx6qxmvkpa10lpwkg1q6asnliviwplq2mxw2da";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eslint-fix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eslintd-fix = callPackage ({ dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "eslintd-fix";
+        ename = "eslintd-fix";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "eslintd-fix";
+          rev = "97e8aa9b106e3e4b3a44c775ca972bdd2feda9ec";
+          sha256 = "1g6bv58m1052x2f5ffs17ryyqv0ay8vii5bwqs7dyfhlpppsn6c8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eslintd-fix";
+          sha256 = "0lv4xpp9bm1yyn9mj7hpgw1v46yyxr0nlwggbav78jbg4v7ai04v";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eslintd-fix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    espuds = callPackage ({ dash
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "espuds";
+        ename = "espuds";
+        version = "0.3.3";
+        src = fetchFromGitHub {
+          owner = "ecukes";
+          repo = "espuds";
+          rev = "1405972873339e056517217136de4ad3202d744a";
+          sha256 = "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/espuds";
+          sha256 = "16yzw9l64ahf5v92jzb7vyb4zqxxplq6qh0y9rkfmvm59s4nhk6c";
+          name = "recipe";
+        };
+        packageRequires = [ dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/espuds";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ess = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , julia-mode
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ess";
+        ename = "ess";
+        version = "18.10.2";
+        src = fetchFromGitHub {
+          owner = "emacs-ess";
+          repo = "ESS";
+          rev = "d4cd65da6dbfabf37fc6c7a4c49fb49cf289a11c";
+          sha256 = "1avhb5mr8yyaa8gqccf8ghbl36iff61ha6444myvgqszd2a6pd8q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ess";
+          sha256 = "1psqrw9k7d2ha8zid2mkc6bgcyalrm3n53c00g3cgckkbahl7r6n";
+          name = "recipe";
+        };
+        packageRequires = [ julia-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ess";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ess-R-data-view = callPackage ({ ctable
+                                   , ess
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , popup }:
+      melpaBuild {
+        pname = "ess-R-data-view";
+        ename = "ess-R-data-view";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "ess-R-data-view.el";
+          rev = "d6e98d3ae1e2a2ea39a56eebcdb73e99d29562e9";
+          sha256 = "1ya2ay52gkrd31pmw45ban8kkxgnzhhwkzkypwdhjfccq3ys835x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ess-R-data-view";
+          sha256 = "0r2fzwayf3yb7fqk6f31x4xfqiiczwik8qw4rrvkqx2h3s1kz7i0";
+          name = "recipe";
+        };
+        packageRequires = [ ctable ess popup ];
+        meta = {
+          homepage = "https://melpa.org/#/ess-R-data-view";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ess-smart-underscore = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "ess-smart-underscore";
+        ename = "ess-smart-underscore";
+        version = "0.79";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "ess-smart-underscore.el";
+          rev = "ef18a160aeb3b1a7ae5fe93759f8e92147da8746";
+          sha256 = "1avb6dng4xgw3bp7bw0j60wl6s4y26alfys9vwwj29rlzvjrlh74";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ess-smart-underscore";
+          sha256 = "01pki1xa8zpgvldcbjwg6vmslj7ddf44hsx976xipc95vrdk15r2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ess-smart-underscore";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esup = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "esup";
+        ename = "esup";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "jschaf";
+          repo = "esup";
+          rev = "53355b13dc9f1636ba681ffff830162ebbd3b223";
+          sha256 = "1a4b8390azimlrr5ayxvaks1w7009vfbm56q11ybx00xxrd26v43";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esup";
+          sha256 = "0cv3zc2zzm38ki3kxq58g9sp4gsk3dffa398wky6z83a3zc02zs0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/esup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    esxml = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "esxml";
+        ename = "esxml";
+        version = "0.3.4";
+        src = fetchFromGitHub {
+          owner = "tali713";
+          repo = "esxml";
+          rev = "5548ceba17deae0c3c6d0092672edc4de3c75ce3";
+          sha256 = "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/esxml";
+          sha256 = "1375gryii984l33gc8f8yhl3vncjmw1w9k6xpvjgmnpx2fwr1vbq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/esxml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eterm-256color = callPackage ({ emacs
+                                  , f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , xterm-color }:
+      melpaBuild {
+        pname = "eterm-256color";
+        ename = "eterm-256color";
+        version = "0.3.13";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "eterm-256color";
+          rev = "dab96af559deb443c4c9c00e23389926e1607192";
+          sha256 = "0ysxblc90kjcz84siprnyxwh94scflivqbxylzkvjm7hbx93rsh1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eterm-256color";
+          sha256 = "1mxc2hqjcj67jq5k4621a7f089qahcqw7f0dzqpaxn7if11w333b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f xterm-color ];
+        meta = {
+          homepage = "https://melpa.org/#/eterm-256color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ethan-wspace = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ethan-wspace";
+        ename = "ethan-wspace";
+        version = "0.7.1";
+        src = fetchFromGitHub {
+          owner = "glasserc";
+          repo = "ethan-wspace";
+          rev = "14ae43130e019034367cd2b6e2bf9a067955dd33";
+          sha256 = "19i8y8ys58mvzmz0ijcdv9nnrs3b85zbgl087d68734vhp73iy78";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ethan-wspace";
+          sha256 = "0k4kqkf5c6ysyhh1vpi9v4220yxm5ir3ippq2gmvvhnk77pg6hws";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ethan-wspace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eval-in-repl = callPackage ({ ace-window
+                                , dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , paredit }:
+      melpaBuild {
+        pname = "eval-in-repl";
+        ename = "eval-in-repl";
+        version = "0.9.6";
+        src = fetchFromGitHub {
+          owner = "kaz-yos";
+          repo = "eval-in-repl";
+          rev = "7e2b42570b449b2a3c2922f3036a027d1e393a60";
+          sha256 = "0x97flv356kd7j6wbhacz0lmsrdd9as87b0n6nliq5n0y30my8dy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eval-in-repl";
+          sha256 = "10h5vy9wdiqf9dgk1d1bsvp93y8sfcxghzg8zbhhn7m5cqg2wh63";
+          name = "recipe";
+        };
+        packageRequires = [ ace-window dash paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/eval-in-repl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eval-sexp-fu = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , highlight
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "eval-sexp-fu";
+        ename = "eval-sexp-fu";
+        version = "0.4.2";
+        src = fetchFromGitHub {
+          owner = "hchbaw";
+          repo = "eval-sexp-fu.el";
+          rev = "1cfd0f3e167d63080692fad97ffe0091b024ad73";
+          sha256 = "0l20ja8s0881jlrlmba496iyizfa0j5bvc2x39rshn8qqyka2dq2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eval-sexp-fu";
+          sha256 = "17cazf81z4cszflnfp66zyq2cclw5sp9539pxskdf267cf7r0ycs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib highlight ];
+        meta = {
+          homepage = "https://melpa.org/#/eval-sexp-fu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evalator = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , helm-core
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "evalator";
+        ename = "evalator";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "seanirby";
+          repo = "evalator";
+          rev = "edf3840f5aa025cf38d0c2677b2f88f59079409e";
+          sha256 = "1a3y69s7lb24zdivxcpsjh9l6adxyjqxbpgradnj0q1n6kdyq679";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evalator";
+          sha256 = "0k6alxwg89gc4v5m2bxmzmj7l6kywhbh4036xgz19q28xnlbr9xk";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/evalator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , goto-chg
+                        , lib
+                        , melpaBuild
+                        , undo-tree }:
+      melpaBuild {
+        pname = "evil";
+        ename = "evil";
+        version = "1.2.13";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil";
+          rev = "427cf5faa57e8794ac93f594dc3d1972e687a25a";
+          sha256 = "02xc9zgrabnlwk3wlsxbzbhdzi3fm5fk8kimvgdcp8vsnpdcrhql";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil";
+          sha256 = "1d36r6mi5nvrwnk4a9338wmhr72fcbrwj0r8gmvivpjdngjy4k39";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs goto-chg undo-tree ];
+        meta = {
+          homepage = "https://melpa.org/#/evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-anzu = callPackage ({ anzu
+                             , evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "evil-anzu";
+        ename = "evil-anzu";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-evil-anzu";
+          rev = "995141132bbf063fe568a6562bcf8bb8a827c784";
+          sha256 = "04a66f5yq3zmdw5ids6dm0kzzk1ivqagbw17a5656gg0ahzpsppv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-anzu";
+          sha256 = "19cmc61l370mm4h2m6jw5pdcsvj4wcv9zpa8z7k1fjg57mwmmn70";
+          name = "recipe";
+        };
+        packageRequires = [ anzu evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-anzu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-args = callPackage ({ evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "evil-args";
+        ename = "evil-args";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "wcsmith";
+          repo = "evil-args";
+          rev = "b554f83a31dd47cac9799725f379675f54ed0a6a";
+          sha256 = "08743swy936v8fhbaplrr0wpwlp7vplvy2iwkh56p7gb5gqmlfli";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-args";
+          sha256 = "1bwdvf1i3jc77bw2as1wr1djm8z3a7wms60694xkyqh0m909hs2w";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-args";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-colemak-basics = callPackage ({ emacs
+                                       , evil
+                                       , evil-snipe
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "evil-colemak-basics";
+        ename = "evil-colemak-basics";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "evil-colemak-basics";
+          rev = "7844079b47f47bb1dc24c885b0ac2e67524fa960";
+          sha256 = "0phspmd31pcxana2lp6mqywmghhdpj6ydsrl1bjn4b1gcp1fqsy2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-colemak-basics";
+          sha256 = "1sbbli0hdmpc23f3g5n95svqfdg3rlvf71plyvpv1a6va9jhi83k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil evil-snipe ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-colemak-basics";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-collection = callPackage ({ cl-lib ? null
+                                   , emacs
+                                   , evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "evil-collection";
+        ename = "evil-collection";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil-collection";
+          rev = "733f8d0d289fcbb58705acd1049b618826a3c011";
+          sha256 = "01hr5wf693s2djs6l83nfpq6wyyws99c5nwil6hpqhvrwp4f5h95";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-collection";
+          sha256 = "1l6x782ix873n90k9g00i9065h31dnhv07bgzrp28l7y7bivqwl7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-collection";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-commentary = callPackage ({ evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "evil-commentary";
+        ename = "evil-commentary";
+        version = "2.1.1";
+        src = fetchFromGitHub {
+          owner = "linktohack";
+          repo = "evil-commentary";
+          rev = "395f91014b69844b81660c155f42eb9b1b3d199d";
+          sha256 = "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-commentary";
+          sha256 = "151iiimmkpn58pl9zn40qssfahbrqy83axyl9dcd6kx2ywv5gcxz";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-commentary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-embrace = callPackage ({ emacs
+                                , embrace
+                                , evil-surround
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "evil-embrace";
+        ename = "evil-embrace";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "evil-embrace.el";
+          rev = "8b2083c514af143f6d2f5d1cb4272c5bfb7437a3";
+          sha256 = "1cplq9s3fw8nadcipjrix46jfcjbgg3xhz6d226wcqgmg90aclfn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-embrace";
+          sha256 = "10cfkksh3llyfk26x36b7ri0x6a6hrcv275pxk7ckhs1pyhb14y7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs embrace evil-surround ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-embrace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-escape = callPackage ({ cl-lib ? null
+                               , emacs
+                               , evil
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "evil-escape";
+        ename = "evil-escape";
+        version = "3.14";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "evil-escape";
+          rev = "b4d44fc5015341e484495fc86b73d09b2ac062ec";
+          sha256 = "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-escape";
+          sha256 = "0jiwsgcqw8m6z4z82gx0m0r0vbvkcxc0czhn4mqjwkhhglwzgi8l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-escape";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-iedit-state = callPackage ({ evil
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , iedit
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "evil-iedit-state";
+        ename = "evil-iedit-state";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "evil-iedit-state";
+          rev = "eab7d5e3e7d25c4a852fedb6c0c7f50dd9e9bd7c";
+          sha256 = "0r9gif2sgf84z8qniz6chr32av9g2i38rlyms81m8ssghf0j86ss";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-iedit-state";
+          sha256 = "1dihyh7vqcp7kvfic613k7v33czr93hz04d635awrsyzgy8savhl";
+          name = "recipe";
+        };
+        packageRequires = [ evil iedit ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-iedit-state";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-leader = callPackage ({ evil
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "evil-leader";
+        ename = "evil-leader";
+        version = "0.4.3";
+        src = fetchFromGitHub {
+          owner = "cofi";
+          repo = "evil-leader";
+          rev = "753b01eb4958370ae2226b3780ff31fe157c2852";
+          sha256 = "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-leader";
+          sha256 = "154s2nb170hzksmc87wnzlwg3ic3w3ravgsfvwkyfi2q285vmra6";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-leader";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-lisp-state = callPackage ({ bind-map
+                                   , evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , smartparens }:
+      melpaBuild {
+        pname = "evil-lisp-state";
+        ename = "evil-lisp-state";
+        version = "8.2";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "evil-lisp-state";
+          rev = "3c65fecd9917a41eaf6460f22187e2323821f3ce";
+          sha256 = "1n6r8xs670r5qp4b5f72nr9g8nlqcrx1v7yqqlbkgv8gns8n5xgh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-lisp-state";
+          sha256 = "16h6zi0kkq2zlrwqiz6avnw2ady3h9gmxyinvk5gbkskxf12d1pz";
+          name = "recipe";
+        };
+        packageRequires = [ bind-map evil smartparens ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-lisp-state";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-magit = callPackage ({ evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , magit
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-magit";
+        ename = "evil-magit";
+        version = "0.4.2";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil-magit";
+          rev = "a24186be7cc2cdab24b56f6dcc4665eeb8349c1a";
+          sha256 = "12hr2w5r2hgagb3hqbi59v73rxpjml5prc3m7dw3wzsm0rf1rwh3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-magit";
+          sha256 = "02ncki7qrl22804576h76xl4d5lvvk32lzn9gvxn63hb19r0s980";
+          name = "recipe";
+        };
+        packageRequires = [ evil magit ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-magit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-mark-replace = callPackage ({ evil
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "evil-mark-replace";
+        ename = "evil-mark-replace";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "evil-mark-replace";
+          rev = "56cf191724a3e82239ca47a17b071c20aedb0617";
+          sha256 = "01hccc49xxb6lnzr0lwkkwndbk4sv0jyyz3khbcxsgkpzjiydihv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-mark-replace";
+          sha256 = "14j2d46288shlixb57nh5vlqdi3aiv20djvcbhiw1cm9ar2c3y4v";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-mark-replace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-matchit = callPackage ({ emacs
+                                , evil
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "evil-matchit";
+        ename = "evil-matchit";
+        version = "2.2.9";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "evil-matchit";
+          rev = "7d65b4167b1f0086c2b42b3aec805e47a0d355c4";
+          sha256 = "12if45pxfndy3d7r4gd3zx4d3jk4d64fdmwkhc3y5zhqq9h9iy4c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-matchit";
+          sha256 = "01z69n20qs4gngd28ry4kn825cax5km9hn96i87yrvq7nfa64swq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-matchit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-mc = callPackage ({ cl-lib ? null
+                           , emacs
+                           , evil
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "evil-mc";
+        ename = "evil-mc";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "gabesoft";
+          repo = "evil-mc";
+          rev = "be2259b8cedd62011b25ddbcc1774bbbe9a66c61";
+          sha256 = "0p435ykkq41nksd40qczlhz6kvs2zpkxch661wy0w93wffwnq3b9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-mc";
+          sha256 = "0cq4xg6svb5gz4ra607wy768as2igla4h1xcrfnxldknk476fqqs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-mc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-multiedit = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , evil
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , iedit
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "evil-multiedit";
+        ename = "evil-multiedit";
+        version = "1.3.8";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "evil-multiedit";
+          rev = "c0cb6858399863e51935dae62c7c61ebc68f92eb";
+          sha256 = "010y4vxj7rr5kr4csbh72s60ndqzqxdrvgkyb65vxb5vskr1n1wm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-multiedit";
+          sha256 = "0p02q9skqw2zhx7sfadqgs7vn518s72856962dam0xw4sqasplfp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil iedit ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-multiedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-nerd-commenter = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "evil-nerd-commenter";
+        ename = "evil-nerd-commenter";
+        version = "3.2.3";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "evil-nerd-commenter";
+          rev = "34d411715ead5829d6d8969511047feb703b067e";
+          sha256 = "0ax846dy2hbrbvkj7nzfkcl5i1x9rga8bvg0ln55ivhq0iiy1lkv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-nerd-commenter";
+          sha256 = "1pa5gh065hqn5mhs47qvjllwdwwafl0clk555mb6w7svq58r6i8d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-nerd-commenter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-numbers = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "evil-numbers";
+        ename = "evil-numbers";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "cofi";
+          repo = "evil-numbers";
+          rev = "8834eb2e8bd93561a706363946701d0d90546a9f";
+          sha256 = "13jg2xbh4p02x1nj77b6csb93hh56c1nv8kslcq2hjj3caipk4m8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-numbers";
+          sha256 = "1lpmkklwjdf7ayhv99g9zh3l9hzrwm0hr0ijvbc7yz3n398zn1b2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/evil-numbers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-opener = callPackage ({ evil
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , opener }:
+      melpaBuild {
+        pname = "evil-opener";
+        ename = "evil-opener";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "0robustus1";
+          repo = "opener.el";
+          rev = "c384f67278046fdcd220275fdd212ab85672cbeb";
+          sha256 = "0gci909a2rbx5i8dyzyrcddwdic7nvpk6y6djvn521yaag4sq87h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-opener";
+          sha256 = "0cld853pyzlaa306rpypw2wm4953i6y06irlk96bql9aa1zx977g";
+          name = "recipe";
+        };
+        packageRequires = [ evil opener ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-opener";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-org = callPackage ({ evil
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "evil-org";
+        ename = "evil-org";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "Somelauw";
+          repo = "evil-org-mode";
+          rev = "2d7c58dbeca0d4ac7b4eab5f47b77946951f27e9";
+          sha256 = "09l0ph9rc941kr718zq0dw27fq6l7rb0h2003ihw7q0a5yr8fpk7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-org";
+          sha256 = "18glpsnpxap4dvnvkl59h9pnwlp20libsfbbkmvrbzsvbdyspg6z";
+          name = "recipe";
+        };
+        packageRequires = [ evil org ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-quickscope = callPackage ({ evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "evil-quickscope";
+        ename = "evil-quickscope";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "blorbx";
+          repo = "evil-quickscope";
+          rev = "37a20e4c56c6058abf186ad4013c155e695e876f";
+          sha256 = "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-quickscope";
+          sha256 = "0xym1mh4p68i00l1lshywf5fdg1vw3szxp3fk9fwfcg04z6vd489";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-quickscope";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-replace-with-char = callPackage ({ emacs
+                                          , evil
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "evil-replace-with-char";
+        ename = "evil-replace-with-char";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "ninrod";
+          repo = "evil-replace-with-char";
+          rev = "dddbbafdd620cc48dd0a257baf4010e1b415ebe8";
+          sha256 = "0gcmva2q1bxqp3p8cl1nf19kh4nkgfdm64havyzhnkwq18q84pxi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-replace-with-char";
+          sha256 = "0lgazw53j44rc72czwqxs6yaz67l9i1v52wbi7l9w958fnjra84r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-replace-with-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-rsi = callPackage ({ evil
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "evil-rsi";
+        ename = "evil-rsi";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "linktohack";
+          repo = "evil-rsi";
+          rev = "236bf6ed1e2285698db808463e5f2f69f5f5e7c0";
+          sha256 = "1xz629qv1ss1fap397k48piawcwl8lrybraq5449bw1vvn1a4d9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-rsi";
+          sha256 = "0mc39n72420n36kwyf9zpw1pgyih0aigfnmkbywb0yxgj7myc345";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-rsi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-search-highlight-persist = callPackage ({ fetchFromGitHub
+                                                 , fetchurl
+                                                 , highlight
+                                                 , lib
+                                                 , melpaBuild }:
+      melpaBuild {
+        pname = "evil-search-highlight-persist";
+        ename = "evil-search-highlight-persist";
+        version = "1.8";
+        src = fetchFromGitHub {
+          owner = "naclander";
+          repo = "evil-search-highlight-persist";
+          rev = "0e2b3d4e3dec5f38ae95f62519eb2736f73c0b85";
+          sha256 = "1jfi2k9dm0cc9bx8klppm965ydhdw17a2n664199vhxrap6g27yk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-search-highlight-persist";
+          sha256 = "08l8ymrp9vkpwprq9gp4562yvcnd4hfc3z7n4n5lz7h6ffv3zym3";
+          name = "recipe";
+        };
+        packageRequires = [ highlight ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-search-highlight-persist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-smartparens = callPackage ({ emacs
+                                    , evil
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , smartparens }:
+      melpaBuild {
+        pname = "evil-smartparens";
+        ename = "evil-smartparens";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "expez";
+          repo = "evil-smartparens";
+          rev = "9fe4eed1c6327197afe6c13bb0771e18908aff00";
+          sha256 = "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-smartparens";
+          sha256 = "1viwrd6gfqmwhlil80pk68dikn3cjf9ddsy0z781z3qfx0j35qza";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil smartparens ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-smartparens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-snipe = callPackage ({ cl-lib ? null
+                              , emacs
+                              , evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-snipe";
+        ename = "evil-snipe";
+        version = "2.0.8";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "evil-snipe";
+          rev = "dc62ac317fd29f018e9785c1b3b7dd7ad57b3938";
+          sha256 = "18j33smlajj7ynigfgm64z3kfys5idbxin2gd93civ2564n85r33";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-snipe";
+          sha256 = "0gcmpjw3iw7rjk86b2k6clfigp48vakfjd1a9n8qramhnc85rgkn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-snipe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-space = callPackage ({ evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-space";
+        ename = "evil-space";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "linktohack";
+          repo = "evil-space";
+          rev = "f77860fa00662e2def3e1885adac777f051e1e61";
+          sha256 = "1rchanv0vq9rx6x69608dlpdybvkn8a9ymx8wzm7gqpz9qh6xqrk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-space";
+          sha256 = "1asvh873r1xgffvz3nr653yn8h5ifaphnafp6wf1b1mja6as7f23";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-space";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-string-inflection = callPackage ({ emacs
+                                          , evil
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild
+                                          , string-inflection }:
+      melpaBuild {
+        pname = "evil-string-inflection";
+        ename = "evil-string-inflection";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "ninrod";
+          repo = "evil-string-inflection";
+          rev = "f6a3eca0f0fa8e56e6938e1dd48537eef1fae05f";
+          sha256 = "1akk0yylwcw4f91hprrrsijhbdcmrx1nnpgfyzpl4k5d4b30y8d5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-string-inflection";
+          sha256 = "0w9x49c0gmv4waspa9fvbhf2adm19cixkwx7a7la9v4qy7da6akh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil string-inflection ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-string-inflection";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-surround = callPackage ({ evil
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "evil-surround";
+        ename = "evil-surround";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil-surround";
+          rev = "440d391c89a7f6d5a7a0c9486b0e8ac4fc7f43aa";
+          sha256 = "0ax6ac087a43lcdrbbxbn6byl5q8ndcy1srkc7w82d6py4yn6hab";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-surround";
+          sha256 = "0aphv5zinb0lzdx22qbzcr7fn6jbpkdczar7py3df6mzxw5wvcm1";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-surround";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-swap-keys = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "evil-swap-keys";
+        ename = "evil-swap-keys";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "evil-swap-keys";
+          rev = "56bc201e265a6bd482a7c41a7c81d2238341ef3a";
+          sha256 = "0n0hl0plaghz9rjssabxwfzm46kr6564hpfh6hn8lzla4rf1q5zs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-swap-keys";
+          sha256 = "12cx95mjm4ymggidvf41gh3a364z32h655jmhk417v0ga9jk9fv6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-swap-keys";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-test-helpers = callPackage ({ evil
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "evil-test-helpers";
+        ename = "evil-test-helpers";
+        version = "1.2.13";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "evil";
+          rev = "427cf5faa57e8794ac93f594dc3d1972e687a25a";
+          sha256 = "02xc9zgrabnlwk3wlsxbzbhdzi3fm5fk8kimvgdcp8vsnpdcrhql";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-test-helpers";
+          sha256 = "0l4skyznzgr76z518q22lf90ymlsfcs02w8vqkg8az1nfl3ch7fs";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-test-helpers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-text-object-python = callPackage ({ emacs
+                                           , evil
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "evil-text-object-python";
+        ename = "evil-text-object-python";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "evil-text-object-python";
+          rev = "7aae5558be25b4a33abdede8a91da1cc7d08f1bc";
+          sha256 = "0qfqfqbq3jijnmg0rp6agz9skcv2drnpyn481c7f455z46xi87kl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-text-object-python";
+          sha256 = "0jdzs1yn8nrxq890427yjrxdvnzj8jy7bs3jj4w4c0fik26ngqhm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-text-object-python";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-textobj-anyblock = callPackage ({ cl-lib ? null
+                                         , evil
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "evil-textobj-anyblock";
+        ename = "evil-textobj-anyblock";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "evil-textobj-anyblock";
+          rev = "068d26a625cd6202aaf70a8ff399f9130c0ffa68";
+          sha256 = "0vsf7yzlb2j7c5c7cnk81y1979psy6a9v7klg6c2j9lkcn3cqpvj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-textobj-anyblock";
+          sha256 = "03vk30s2wkcszcjxmh5ww39rihnag9cp678wdzq4bnqy0c6rnjwa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-textobj-anyblock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-tutor = callPackage ({ evil
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "evil-tutor";
+        ename = "evil-tutor";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "syl20bnr";
+          repo = "evil-tutor";
+          rev = "79b47a9f444ddaa289c66e8995ee116941429c24";
+          sha256 = "11hiaxiqc2f522y7rgfr6bjnmx4nrssq1q9g96w4rsb10627qvsf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-tutor";
+          sha256 = "1hvc2w5ykrgh62n4sxqqqcdk5sd7nmh6xzv4mir5vf9y2dgqcvsn";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-tutor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-visual-mark-mode = callPackage ({ dash
+                                         , evil
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "evil-visual-mark-mode";
+        ename = "evil-visual-mark-mode";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "roman";
+          repo = "evil-visual-mark-mode";
+          rev = "094ee37599492885ff3144918fcdd9b74dadaaa0";
+          sha256 = "07cmql8zsqz1qchq2mp3qybbay499dk1yglisig6jfddcmrbbggz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-visual-mark-mode";
+          sha256 = "1qgr2dfhfz6imnlznicl7lplajd1s8wny7mlxs1bkms3xjcjfi48";
+          name = "recipe";
+        };
+        packageRequires = [ dash evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-visual-mark-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-visual-replace = callPackage ({ evil
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "evil-visual-replace";
+        ename = "evil-visual-replace";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "troyp";
+          repo = "evil-visual-replace";
+          rev = "163fc827a1ffc106475da470c37fb26f4cc9b008";
+          sha256 = "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-visual-replace";
+          sha256 = "1dq3bd9aqpk3jq1c9yzlpjyw6mi8l428l111vrmfg156k1w22v01";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-visual-replace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evil-visualstar = callPackage ({ evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "evil-visualstar";
+        ename = "evil-visualstar";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "bling";
+          repo = "evil-visualstar";
+          rev = "bd9e1b50c03b37c57355d387f291c2ec8ce51eec";
+          sha256 = "17m4kdz1is4ipnyiv9n3vss49faswbbd6v57df9npzsbn5jyydd0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evil-visualstar";
+          sha256 = "135l9hjfbpn0a6p53picnpydi9qs5vrk2rfn64gxa5ag2apcyycy";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/evil-visualstar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    evm = callPackage ({ dash
+                       , f
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "evm";
+        ename = "evm";
+        version = "0.4.2";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "evm.el";
+          rev = "d0623b2355436a5fd9f7238b419782080c79196b";
+          sha256 = "0739v0m9vj70a55z0canslyqgafzys815i7a0r6bxj2f9iwq6rhb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/evm";
+          sha256 = "19l6cs5schbnph0pwhhj66gkxsswd4bmjpy79l9kxzpjf107wc03";
+          name = "recipe";
+        };
+        packageRequires = [ dash f ];
+        meta = {
+          homepage = "https://melpa.org/#/evm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eww-lnum = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "eww-lnum";
+        ename = "eww-lnum";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "m00natic";
+          repo = "eww-lnum";
+          rev = "daef49974446ed4c1001e0549c3f74679bca6bd3";
+          sha256 = "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eww-lnum";
+          sha256 = "1hhc6q8zlj335v27j4dq6ms7frqpivfabs9w3vkaly5kjr60fw7c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eww-lnum";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exato = callPackage ({ emacs
+                         , evil
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "exato";
+        ename = "exato";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "ninrod";
+          repo = "exato";
+          rev = "39c08f56483243c28a39886a7218039a138e5f63";
+          sha256 = "1q0jjaw5k9bql7bk5idin724vbcgx0iwn2dm4mg1c51cczqsd2rg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exato";
+          sha256 = "1h2dd3yhv1n0sznznw8ncx98g53hgi1rg1zkd0nmldih2rd5qisn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs evil ];
+        meta = {
+          homepage = "https://melpa.org/#/exato";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exec-path-from-shell = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "exec-path-from-shell";
+        ename = "exec-path-from-shell";
+        version = "1.11";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "exec-path-from-shell";
+          rev = "5e80a4159b1b78d66f99aa1c071b778f6c64e6e6";
+          sha256 = "1pqyv78cknj6zwg2xvbxp4qkdjs0bic3w9w3mj7chja4qza83ijg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exec-path-from-shell";
+          sha256 = "014bfcs7znds4if1njyq4s5zrfnr6b3wj6722b4l5r58gh9mlrr5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/exec-path-from-shell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exiftool = callPackage ({ emacs
+                            , fetchgit
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "exiftool";
+        ename = "exiftool";
+        version = "0.3";
+        src = fetchgit {
+          url = "https://git.systemreboot.net/exiftool.el/";
+          rev = "8dd70ba5214a73960361a0c6220bb4aa72b9e478";
+          sha256 = "0sb71bj8djppzac02bpl3v7fy0jlidd4aagg8bmmgyp7zx84xws8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exiftool";
+          sha256 = "1zvcps64yvz8lsjhi1j0808983fv2s7kx67yjr8ps454mcl8bpab";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/exiftool";
+          license = lib.licenses.free;
+        };
+      }) {};
+    expand-region = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "expand-region";
+        ename = "expand-region";
+        version = "0.11.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "expand-region.el";
+          rev = "0bc14fc7fbbcca5da4fdd9695cfd7cbd36eb3b96";
+          sha256 = "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/expand-region";
+          sha256 = "1c7f1nqsqdc75h22fxxnyg0m4yxj6l23sirk3c71fqj14paxqnwg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/expand-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    express = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , string-utils }:
+      melpaBuild {
+        pname = "express";
+        ename = "express";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "express";
+          rev = "e6dc9abdc395ef537408befebeb4fd3ed4ee5c60";
+          sha256 = "106yh793scbyharsk1dvrirkj3c6666w8jqilpkaz78vwyw3zs5y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/express";
+          sha256 = "0lhisy4ds96bwpc7k8w9ws1zi1qh0d36nhxsp36bqzfi09ig0nb9";
+          name = "recipe";
+        };
+        packageRequires = [ string-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/express";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exsqlaim-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , s }:
+      melpaBuild {
+        pname = "exsqlaim-mode";
+        ename = "exsqlaim-mode";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "ahmadnazir";
+          repo = "exsqlaim-mode";
+          rev = "e77d2a07addffd7df4393019d9c3dad1ab1925d9";
+          sha256 = "19v5sf3nf6dciakvs7ksbg66b5z1hybc4ivs24hm6k3fziblfzzs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exsqlaim-mode";
+          sha256 = "0ssn48wcn3x066nsl8y78y57ndasqv5x6ifxbifdxl3f5vjhyvg7";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/exsqlaim-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    extend-dnd = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "extend-dnd";
+        ename = "extend-dnd";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "extend-dnd";
+          rev = "a1923d57f8f5e862cc66c189b5e6627bc84a2119";
+          sha256 = "1k2j8szavyq2wy5c0skvs03a88cr9njy7y63b7knh2m92nw4830d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/extend-dnd";
+          sha256 = "0rknpvp8yw051pg3blvmjpp3c9a82jw7f10mq67ggbz98w227417";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/extend-dnd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    extmap = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "extmap";
+        ename = "extmap";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "doublep";
+          repo = "extmap";
+          rev = "1139b57d8f4276fe56b8416fdaf4745f2cdfe7c3";
+          sha256 = "0jgyscjfparnby0whrmbgvsab2a7qkaqhysmh3s3jh635fndm253";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/extmap";
+          sha256 = "0c12gfd3480y4fc22ik02n7h85k6s70i5jv5i872h0yi68cgd01j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/extmap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    exwm-x = callPackage ({ bind-key
+                          , cl-lib ? null
+                          , counsel
+                          , exwm
+                          , fetchFromGitHub
+                          , fetchurl
+                          , ivy
+                          , lib
+                          , melpaBuild
+                          , swiper
+                          , switch-window }:
+      melpaBuild {
+        pname = "exwm-x";
+        ename = "exwm-x";
+        version = "1.8.1";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "exwm-x";
+          rev = "4f7946db67d6599baba6b3961e8f543a68707742";
+          sha256 = "00lcn5106xig2y9gyir1f1gzyp2i05rwq1lbbbah8aipkdi3z9xl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/exwm-x";
+          sha256 = "1d9q57vz63sk3h1g5gvp9xnmqkpa73wppmiy2bv8mxk11whl6xa3";
+          name = "recipe";
+        };
+        packageRequires = [
+          bind-key
+          cl-lib
+          counsel
+          exwm
+          ivy
+          swiper
+          switch-window
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/exwm-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eyebrowse = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "eyebrowse";
+        ename = "eyebrowse";
+        version = "0.7.7";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "eyebrowse";
+          rev = "7294ed5fbf5f38407b599a10a335b8c4ec15a8d5";
+          sha256 = "1lhpf88042mg9q328w2d328ka9pild4ppdynbn3rsib9zgxp8waq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eyebrowse";
+          sha256 = "09fkzm8z8nkr4s9fbmfcjc80h50051f48v6n14l76xicglr5p861";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/eyebrowse";
+          license = lib.licenses.free;
+        };
+      }) {};
+    eziam-theme = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "eziam-theme";
+        ename = "eziam-theme";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "thblt";
+          repo = "eziam-theme-emacs";
+          rev = "a2bdda95f840c15240975c32b66d4d1e0682a1e1";
+          sha256 = "1z0m3pzhyif1rx8g4gzg1wfdqdkxdaahjjq8hx2fj4k4l16bia99";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/eziam-theme";
+          sha256 = "0iz3r4r54ai8y4qhnix291ra7qfmk8dbr06f52pgmz3gzin1cqpb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/eziam-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    f = callPackage ({ dash
+                     , fetchFromGitHub
+                     , fetchurl
+                     , lib
+                     , melpaBuild
+                     , s }:
+      melpaBuild {
+        pname = "f";
+        ename = "f";
+        version = "0.20.0";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "f.el";
+          rev = "de6d4d40ddc844eee643e92d47b9d6a63fbebb48";
+          sha256 = "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/f";
+          sha256 = "18qax8i24gpccif4xcxccclpwl00plxjf3zbq9dry37b1r4mj57s";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/f";
+          license = lib.licenses.free;
+        };
+      }) {};
+    f3 = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , helm
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "f3";
+        ename = "f3";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "cosmicexplorer";
+          repo = "f3";
+          rev = "19120dda2d760d3dd6c6aa620121d1de0a40932d";
+          sha256 = "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/f3";
+          sha256 = "099wibgp9k6sgglaqigic5ay6qg7aqijnis5crwjl7b81ddqp610";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/f3";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fabric = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "fabric";
+        ename = "fabric";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "fabric.el";
+          rev = "004934318f63d8cf955022f87b2c33eb97ada280";
+          sha256 = "0crhkdbxz1ldbrvppi95g005ni5zg99z1271rkrnk5i6cvc4hlq5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fabric";
+          sha256 = "1mkblsakdhvi10b67bv3j0jsf7hr8lf9sibmprvx8smqsih7l88m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fabric";
+          license = lib.licenses.free;
+        };
+      }) {};
+    factlog = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "factlog";
+        ename = "factlog";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "factlog";
+          rev = "6b83e4f54097a59a13bcccfd29805e432f4e9584";
+          sha256 = "1mmyl3ndv5c17mvwxrmv0czjnr5i9b7zydg8swipwgshc3kvn7l0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/factlog";
+          sha256 = "163482vfpa52b5ya5xps4qnclbaql1x0q54gqdwwmm04as8qbfz7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/factlog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    faff-theme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "faff-theme";
+        ename = "faff-theme";
+        version = "2.4";
+        src = fetchFromGitHub {
+          owner = "WJCFerguson";
+          repo = "emacs-faff-theme";
+          rev = "e4721d00852ebd3a745db7e0ed7c9889c013f945";
+          sha256 = "0gqi9lzdbn5kh6p8a4kxjfyxb4yakpkac49lyaqcipz6spzhhzf1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/faff-theme";
+          sha256 = "1dmwbkp94zsddy0brs3mkdjr09n69maw2mrdfhriqcdk56qpwp4g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/faff-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fancy-battery = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "fancy-battery";
+        ename = "fancy-battery";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "fancy-battery.el";
+          rev = "5b8115bbeb67c52d4202a12dcd5726fb66e0a1ff";
+          sha256 = "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fancy-battery";
+          sha256 = "03rkfdkrzyal9abdiv8c73w10sm974hxf3xg5015hibfi6kzg8ii";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fancy-battery";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fancy-narrow = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "fancy-narrow";
+        ename = "fancy-narrow";
+        version = "0.9.5";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "fancy-narrow";
+          rev = "4737d706d1f3e90885e6642ba782f1fa605414c6";
+          sha256 = "0825hyz8b2biil0pd2bgjxqd2zm3gw9si7br5hnh51qasbaw9hid";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fancy-narrow";
+          sha256 = "15i86jz6rdpva1az7gqp1wbm8kispcfc8h6v9fqsbag9sbzvgcyv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fancy-narrow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fastdef = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , ivy
+                           , lib
+                           , melpaBuild
+                           , w3m }:
+      melpaBuild {
+        pname = "fastdef";
+        ename = "fastdef";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "fastdef";
+          rev = "0696f41dc150d35ce31fe8d2ea74f4173818bb55";
+          sha256 = "1p5vmbx7zdzxnyjzcp2vxscd3dwf7xk82wk9dfiv99svwqv2ki3w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fastdef";
+          sha256 = "1cf4slxhcp2z7h9k3l31h06nnqsyb4smwnj55ivil2lm0fa0vlzj";
+          name = "recipe";
+        };
+        packageRequires = [ ivy w3m ];
+        meta = {
+          homepage = "https://melpa.org/#/fastdef";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fastnav = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "fastnav";
+        ename = "fastnav";
+        version = "1.0.7";
+        src = fetchFromGitHub {
+          owner = "gleber";
+          repo = "fastnav.el";
+          rev = "54626e9e7cc7be5bc2bd01732e95ed2afc2312a1";
+          sha256 = "0h32w63vv451797zi6206j529fd4j8l3fp7rqip3s8xn8d4728x1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fastnav";
+          sha256 = "08hg256w8k9f5nzgpyl1jykbf28vmvv09kkhzs0s2zhwbl2158a5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fastnav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    faust-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "faust-mode";
+        ename = "faust-mode";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "rukano";
+          repo = "emacs-faust-mode";
+          rev = "7c31b22bdbfd2f8c16ec117d2975d56dd61ac15c";
+          sha256 = "0a3p69ay88da13cz2cqx00r3qs2swnn7vkcvchcqyrdybfjs7y4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/faust-mode";
+          sha256 = "0l8cbf5i6lv6i5vyqp6ngfmrm2y6z2070b8m10w4376kbbnr266z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/faust-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    faustine = callPackage ({ emacs
+                            , faust-mode
+                            , fetchgit
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "faustine";
+        ename = "faustine";
+        version = "0.4";
+        src = fetchgit {
+          url = "https://bitbucket.org/yphil/faustine";
+          rev = "feb938af3a5363e0e0210aa98a447e1896ceca47";
+          sha256 = "1c0xc1nk9djjk39ksysszliphibnpm7c472p4lvgkmrsmg28i23k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/faustine";
+          sha256 = "1blmz993xrwkyr7snj7rm07s07imgpdlfqi6wxkm4ns6iwa2q60s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs faust-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/faustine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fcitx = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "fcitx";
+        ename = "fcitx";
+        version = "0.2.3";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "fcitx.el";
+          rev = "6d552ab44234ed78ce9a50f2412f56197266bc9f";
+          sha256 = "08l859rw1lwj6hdxrlxqlxf1cfxv8yv9h1jsgs5zfis3hp7nq39j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fcitx";
+          sha256 = "0a8wd588c26p3czfp5hn2n46f2vwyg5v301sv0y07b55b1i3ynmx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fcitx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fd-dired = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "fd-dired";
+        ename = "fd-dired";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "yqrashawn";
+          repo = "fd-dired";
+          rev = "b30ebe827a244b4f27f5387be4b50d074ca67e1b";
+          sha256 = "09856pzkybs85msz0awqjw2r3b1hc9wybwq1j30qx14zzbcr3gvf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fd-dired";
+          sha256 = "0g8zvg6b9hcxkmqn254y9khjm7jz2lz4mh7dhsxfcy64inaj0481";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fd-dired";
+          license = lib.licenses.free;
+        };
+      }) {};
+    feature-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "feature-mode";
+        ename = "feature-mode";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "michaelklishin";
+          repo = "cucumber.el";
+          rev = "4bd8f19da816115094beb4b0e085822eb298ac37";
+          sha256 = "1cxjygg05v8s96c8z6plk3hl34jaiwg7s7dl7dsk20rj5f54kgw7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/feature-mode";
+          sha256 = "0ryinmpqb3c91qcna6gbijcmqv3skxdc947dlr5s1w623z9nxgqg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/feature-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fill-column-indicator = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "fill-column-indicator";
+        ename = "fill-column-indicator";
+        version = "1.90";
+        src = fetchFromGitHub {
+          owner = "alpaker";
+          repo = "Fill-Column-Indicator";
+          rev = "f7b3f99b41ff017f50a21ad53eed16f8ef5ab7ee";
+          sha256 = "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fill-column-indicator";
+          sha256 = "0w8cmijv7ihij9yyncz6lixb6awzzl7n9qpjj2bks1d5rx46blma";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fill-column-indicator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fill-function-arguments = callPackage ({ emacs
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "fill-function-arguments";
+        ename = "fill-function-arguments";
+        version = "0.9";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "fill-function-arguments";
+          rev = "bf4b390de851b0bb81309865835fd3ec4c7bfb72";
+          sha256 = "1qq5ab39zyis11lhaarcbpd7s9fvmpymw8wi92iq16fp720l6pfa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fill-function-arguments";
+          sha256 = "1gigzzz2csl3a55jmjx391a5k3ymixnwpblsn0pfgkkk4p3674q0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fill-function-arguments";
+          license = lib.licenses.free;
+        };
+      }) {};
+    finalize = callPackage ({ cl-generic
+                            , cl-lib ? null
+                            , eieio ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "finalize";
+        ename = "finalize";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "elisp-finalize";
+          rev = "0f7d47c4d50f1c76fc3b43bfc2d4886dd3e8ca27";
+          sha256 = "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/finalize";
+          sha256 = "1n0w4kdzc4hv4pprv13lr88gh46slpxdvsc162nqm5mrqp9giqqq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-generic cl-lib eieio emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/finalize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    find-by-pinyin-dired = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , pinyinlib }:
+      melpaBuild {
+        pname = "find-by-pinyin-dired";
+        ename = "find-by-pinyin-dired";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "find-by-pinyin-dired";
+          rev = "2c48434637bd63840fca4d2c6cf9ebd5dd44658f";
+          sha256 = "0ial0lbvg0xbrwn8cm68xc5wxj3xgp110y2zgypkdpak8gkv8b5h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/find-by-pinyin-dired";
+          sha256 = "150hvih3mdd1dqffgdcv3nn4qhy86s4lhjkfq0cfzgngfwif8qqq";
+          name = "recipe";
+        };
+        packageRequires = [ pinyinlib ];
+        meta = {
+          homepage = "https://melpa.org/#/find-by-pinyin-dired";
+          license = lib.licenses.free;
+        };
+      }) {};
+    find-file-in-project = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , ivy
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "find-file-in-project";
+        ename = "find-file-in-project";
+        version = "5.7.0";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "find-file-in-project";
+          rev = "0c4840783e64e573107a6a13032253d037c358cb";
+          sha256 = "0bc7p3cymx79i6prnh4ymmyb1pampb90ir6jr515bl631pq4lmns";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/find-file-in-project";
+          sha256 = "0aznnv82xhnilc9j4cdmcgh6ksv7bhjjm3pa76hynnyrfn7kq7wy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/find-file-in-project";
+          license = lib.licenses.free;
+        };
+      }) {};
+    find-file-in-repository = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "find-file-in-repository";
+        ename = "find-file-in-repository";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "h";
+          repo = "find-file-in-repository";
+          rev = "8b888f85029a2ff9159a724b42aeacdb051c3420";
+          sha256 = "0wbmmrd7brf4498pdyilz17rzv7221cj8sd4h11gac2r72f1q2md";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/find-file-in-repository";
+          sha256 = "02rihpfpckppnf5a2zgd5s3dspdhq4mr6qchlrzg2fd4byjxra9s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/find-file-in-repository";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fiplr = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , grizzl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "fiplr";
+        ename = "fiplr";
+        version = "0.2.4";
+        src = fetchFromGitHub {
+          owner = "grizzl";
+          repo = "fiplr";
+          rev = "100dfc33f43da8c49e50e8a2222b9d95532f6e24";
+          sha256 = "0lwgbd9zwdv7qs39c3fp4hrc17d9wrwwjgba7a14zwrhb27m7j07";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fiplr";
+          sha256 = "1a4w0yqdkz477lfyin4lb9k9qkfpx4350kfxmrqx6dj3aadkikca";
+          name = "recipe";
+        };
+        packageRequires = [ grizzl ];
+        meta = {
+          homepage = "https://melpa.org/#/fiplr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    firefox-controller = callPackage ({ cl-lib ? null
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , moz
+                                      , popwin }:
+      melpaBuild {
+        pname = "firefox-controller";
+        ename = "firefox-controller";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "emacs-firefox-controller";
+          rev = "5b1bedec83206f41672b1b65bba859f235bff48b";
+          sha256 = "04afwxgydrn23bv93zqf9bd2cp02i9dcfqbi809arkmh8723qf6k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/firefox-controller";
+          sha256 = "03y96b3l75w9al8ylijnlb8pcfkwddyfnh8xwig1b6k08zxfgal6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib moz popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/firefox-controller";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fireplace = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fireplace";
+        ename = "fireplace";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "johanvts";
+          repo = "emacs-fireplace";
+          rev = "2b966ed65b714c613f79e9144d004dfa3b28f1ed";
+          sha256 = "1f5053bbvjdmm64zv6r2qkswkpwvx0s3qz4bwm9zya583a6g0nv8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fireplace";
+          sha256 = "1apcypznq23fc7xgy4xy1c5hvfvjx1xhyq3aaq1lf59v99zchciw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fireplace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    firestarter = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "firestarter";
+        ename = "firestarter";
+        version = "0.2.5";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "firestarter";
+          rev = "4d6b106f325ac1802eabce3c8a7cd0a4c7a32864";
+          sha256 = "13daz15v0sshl7lxcg1xcbpl64gklgh50pzk0qxmn5ygw7nlifn0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/firestarter";
+          sha256 = "1cpx664hyrdnpb1jps1x6lm7idwlfjblkfygj48cjz9pzd6ld5mp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/firestarter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fish-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fish-mode";
+        ename = "fish-mode";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "wwwjfy";
+          repo = "emacs-fish";
+          rev = "bac709ac1235751952d6022dddc6307d9135d096";
+          sha256 = "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fish-mode";
+          sha256 = "0l6k06bs0qdhj3h8vf5fv8c3rbhiqfwszrpb0v2cgnb6xhwzmq14";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fish-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fix-input = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fix-input";
+        ename = "fix-input";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "fix-input";
+          rev = "a70edfa7880ff9b082f358607d2a9ad6a8dcc8f3";
+          sha256 = "121m0h0nwxr27f9d2llbgl63ni1makcg66lnvg24wx07wggf0n8z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fix-input";
+          sha256 = "03xpr7rlv0xq1d9126j1fk0c2j7ssf366n0yc8yzm9vq32n9pp4p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fix-input";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fix-muscle-memory = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "fix-muscle-memory";
+        ename = "fix-muscle-memory";
+        version = "0.93";
+        src = fetchFromGitHub {
+          owner = "jonnay";
+          repo = "fix-muscle-memory";
+          rev = "df687aea23c6eac4b751f993893c2fd56e5a8a3b";
+          sha256 = "02nl4vz6fnbjc7w1lk1y9z0qw5bsxr407ww0b2wqw6h8spmcpcrc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fix-muscle-memory";
+          sha256 = "0qhasnjw0bj5hzw27r8vj6shhwc3zxcp3wmxijh1rpdw4773f7n8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fix-muscle-memory";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fix-word = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "fix-word";
+        ename = "fix-word";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "fix-word";
+          rev = "91552cbceac8e2b7c23036f044fc84f5c6f8e338";
+          sha256 = "1pilsd3hkryyl4sd6s4nvmraszkdmcn3qdqi939yjgzp4lz3q412";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fix-word";
+          sha256 = "0a8w09cx8p5pkkd4533nd199axkhdhs2a7blp7syfn40bkscx6xc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fix-word";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fixmee = callPackage ({ back-button
+                          , button-lock
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , nav-flash
+                          , smartrep
+                          , string-utils
+                          , tabulated-list ? null }:
+      melpaBuild {
+        pname = "fixmee";
+        ename = "fixmee";
+        version = "0.8.6";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "fixmee";
+          rev = "aa3be8ad9fcc9c0c7ff15f70cda4ba77de96dd74";
+          sha256 = "1hnxdmzqmnp3dr7mpr58pjmigykb3cxwphxzia013kfi37ipf5a0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fixmee";
+          sha256 = "0wnp6h8f547fsi1lkk4ajny7g21dnr76qfhxl82n0l5h1ps4w8mp";
+          name = "recipe";
+        };
+        packageRequires = [
+          back-button
+          button-lock
+          nav-flash
+          smartrep
+          string-utils
+          tabulated-list
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/fixmee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flatui-dark-theme = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flatui-dark-theme";
+        ename = "flatui-dark-theme";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "theasp";
+          repo = "flatui-dark-theme";
+          rev = "af5c84e2a2810748cc71a68ec7ba333097cc1f63";
+          sha256 = "0c0pm67d8w9jdraap0sswvx7ywly9ifimij2c5w9p4hiph8gisr9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flatui-dark-theme";
+          sha256 = "1mswmkhi43fm0cmdgf0ywpy9lmapy0syl65kqh68sa3jqbznhm6y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flatui-dark-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flex-compile = callPackage ({ buffer-manage
+                                , dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flex-compile";
+        ename = "flex-compile";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "plandes";
+          repo = "flex-compile";
+          rev = "82e217aaab34dfd1faf7d03c82eca49706190232";
+          sha256 = "1zp0gki61g487x6bypxlkbjzi972y80pzmhqdisl6qx9yrmk60vy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flex-compile";
+          sha256 = "1hlh4k7qgln87xajnjjhf1yyg6bgdwd0iczhlfw8gdwfj5xpjd38";
+          name = "recipe";
+        };
+        packageRequires = [ buffer-manage dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flex-compile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    floobits = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , highlight
+                            , json ? null
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "floobits";
+        ename = "floobits";
+        version = "1.9.3";
+        src = fetchFromGitHub {
+          owner = "Floobits";
+          repo = "floobits-emacs";
+          rev = "489b294a7f30ecd2af2edc0823dead8102f27af6";
+          sha256 = "1pw88qn6s8ln626c8mgxgpfax39h7ww4m930dp7gg4aklxjbspkn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/floobits";
+          sha256 = "1jpk0q4mkf9ag1rqyai993nz5ngzfvxq9n9avmaaq59gkk9cjraf";
+          name = "recipe";
+        };
+        packageRequires = [ highlight json ];
+        meta = {
+          homepage = "https://melpa.org/#/floobits";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flow-minor-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flow-minor-mode";
+        ename = "flow-minor-mode";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "an-sh";
+          repo = "flow-minor-mode";
+          rev = "50dded94ad201fdc9453656a8b15179981cd5acd";
+          sha256 = "1vaqml0ypbc14mnwycgm9slkds3bgg6x5qz99kck98acbcfijxk6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flow-minor-mode";
+          sha256 = "190dv225sb37jawzrasd7qkbznrmkrdnb90l44il63vrlmjv3r1s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flow-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flower = callPackage ({ clomacs
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "flower";
+        ename = "flower";
+        version = "0.4.5";
+        src = fetchFromGitHub {
+          owner = "PositiveTechnologies";
+          repo = "flower";
+          rev = "49e224ab26d85f5cd4a3ad9cdac391264b80ad5e";
+          sha256 = "1kn9sibvsnaprhjwfz1cdvb4mi4d4qsp70gxjij58dk51jpni7yf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flower";
+          sha256 = "1cb9ppgspdrg4yrrlq4sfajpa6s7xiwvdf9b3947rmmxizgqgynd";
+          name = "recipe";
+        };
+        packageRequires = [ clomacs emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/flower";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flx = callPackage ({ cl-lib ? null
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "flx";
+        ename = "flx";
+        version = "0.6.1";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "flx";
+          rev = "7fce6a4cdb65ac1b52e2b409ba548767581ce34c";
+          sha256 = "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flx";
+          sha256 = "04plfhrnw7jx2jaxhbhw4ypydfcb8v0x2m5hyacvrli1mca2iyf9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/flx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flx-ido = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , flx
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "flx-ido";
+        ename = "flx-ido";
+        version = "0.6.1";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "flx";
+          rev = "7fce6a4cdb65ac1b52e2b409ba548767581ce34c";
+          sha256 = "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flx-ido";
+          sha256 = "00wcwbvfjbcx8kyap7rl1b6nsgqdwjzlpv6al2cdpdd19rm1vgdc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib flx ];
+        meta = {
+          homepage = "https://melpa.org/#/flx-ido";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , let-alist
+                            , lib
+                            , melpaBuild
+                            , pkg-info
+                            , seq }:
+      melpaBuild {
+        pname = "flycheck";
+        ename = "flycheck";
+        version = "31";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck";
+          rev = "401b115d10e202a1b31f57340438420081af21ce";
+          sha256 = "141i6wzqlb0dslmca6930cal7q4y5wbwzmxrpjk3hgm6nxz483p8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck";
+          sha256 = "045k214dq8bmrai13da6gwdz97a2i998gggxqswqs4g52l1h6hvr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs let-alist pkg-info seq ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-apertium = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-apertium";
+        ename = "flycheck-apertium";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "flycheck-apertium";
+          rev = "71cf49d5aaee962b995583384bfa045a1d4c3db7";
+          sha256 = "14idjjz6fhmq806mmncmqnr9bvcjks6spin8z6jb0gqcg1dbhm06";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-apertium";
+          sha256 = "1cc15sljqs6gvb3wiw7n1wkd714qkvfpw6l1kg4lfx9r4jalcvw7";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-apertium";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-cask = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-cask";
+        ename = "flycheck-cask";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-cask";
+          rev = "b4667500dcf52f96ec7e0fa10dd07edf191cbf5b";
+          sha256 = "1wm5saf29gw0gp0qq5glf9qq3iras99npc2rip7bsnn0czr2mscy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-cask";
+          sha256 = "0d2m7mg91k1nazysayryxagql1vi975n7iv0snknhbw4wisqp82f";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-cask";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-checkbashisms = callPackage ({ emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , flycheck
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-checkbashisms";
+        ename = "flycheck-checkbashisms";
+        version = "1.5";
+        src = fetchFromGitHub {
+          owner = "Gnouc";
+          repo = "flycheck-checkbashisms";
+          rev = "39362240b8e38e6ddc1da2e2c2229e3fecdf6057";
+          sha256 = "1s2zq97d7ryif6rlbvriz36dh23wmwi67v4q6krl77dfzcs705b3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-checkbashisms";
+          sha256 = "1rq0ymlr1dl39v0sfyjmdv4pq3q9116cz9wvgpvfgalq8759q5sz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-checkbashisms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-checkpatch = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-checkpatch";
+        ename = "flycheck-checkpatch";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "zpp0";
+          repo = "flycheck-checkpatch";
+          rev = "aca98ea79f8b26a95f9dbdd4142b01fdd2def866";
+          sha256 = "0bs36dp1jy2z9zfq4mnrin9ik0ffl7023h6dx3qbfya1gcxs07py";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-checkpatch";
+          sha256 = "1apjn26n663rjddv5iagfs65fdf22049ykmzggybbnprvnmasf55";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-checkpatch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-clojure = callPackage ({ cider
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , let-alist
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-clojure";
+        ename = "flycheck-clojure";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "squiggly-clojure";
+          rev = "67985fba99d0b2e524d426f266e58499ab8c5514";
+          sha256 = "1bv5px1px4cbaqc3d805px6irx654b3asj5g8frk6hxr99l6x93w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-clojure";
+          sha256 = "1b20gcs6fvq9pm4nl2qwsf34sg6wxngdql921q2pyh5n1xsxhm28";
+          name = "recipe";
+        };
+        packageRequires = [ cider emacs flycheck let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-clojure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-color-mode-line = callPackage ({ dash
+                                            , emacs
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , flycheck
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-color-mode-line";
+        ename = "flycheck-color-mode-line";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-color-mode-line";
+          rev = "9b69ab84f4fa51abeec4882b3a8d1453dfddb744";
+          sha256 = "0qll32rhw8q7z41qwzcsh9k5yhdg6bp4wx6w8j65ky52qia767k4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-color-mode-line";
+          sha256 = "0hw19nsh5h2l8qbp7brqmml2fhs8a0x850vlvq3qfd7z248gvhrq";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-color-mode-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-crystal = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-crystal";
+        ename = "flycheck-crystal";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "crystal-lang-tools";
+          repo = "emacs-crystal-mode";
+          rev = "5795e05450016d1337c1a198ae7ea76deeec40e2";
+          sha256 = "0yipv79gcwp4i3y8gxjd1npgi8fx2iv8lipb14a8165y84ygkf4l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-crystal";
+          sha256 = "04avxav2rayprm09xkphs1ni10j1kk10j7m77afcac0gnma5rwyn";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-crystal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-dmd-dub = callPackage ({ f
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-dmd-dub";
+        ename = "flycheck-dmd-dub";
+        version = "0.12";
+        src = fetchFromGitHub {
+          owner = "atilaneves";
+          repo = "flycheck-dmd-dub";
+          rev = "41a839e18eb7159175c59a2f8b2f5f283191e33f";
+          sha256 = "0a78np6nb9ciz440n9ks6kybwggkq99knzv7swbmvngvhg96khbx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-dmd-dub";
+          sha256 = "0pg3sf7h6xqv65yqclhlb7fx1mp2w0m3qk4vji6m438kxy6fhzqm";
+          name = "recipe";
+        };
+        packageRequires = [ f flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-dmd-dub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-gometalinter = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , flycheck
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-gometalinter";
+        ename = "flycheck-gometalinter";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "favadi";
+          repo = "flycheck-gometalinter";
+          rev = "2e863429cc953cf4c14783e249df56d1ae669868";
+          sha256 = "07r2csy2psflvg0pl6n9scfwhnp9mv7hs02hz861v5kbkfx0ajzw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-gometalinter";
+          sha256 = "1bnvj5kwgbh0dv989rsjcvmcij1ahwcz0vpr6a8f2p6wwvksw1h2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-gometalinter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-grammalecte = callPackage ({ emacs
+                                        , fetchgit
+                                        , fetchurl
+                                        , flycheck
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-grammalecte";
+        ename = "flycheck-grammalecte";
+        version = "0.6";
+        src = fetchgit {
+          url = "https://git.deparis.io/flycheck-grammalecte/";
+          rev = "ca825419021a8da9e292812772dad35ef38ccc8e";
+          sha256 = "11sydiznyqarbgm9izf6bh6sfdz5my51apibb2j13fajlfgkddai";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-grammalecte";
+          sha256 = "0xqg995a42cl6mvmpi68ay56fgs636cbzg65q5si5yc1yzgl74nv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-grammalecte";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-haskell = callPackage ({ dash
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , haskell-mode
+                                    , let-alist
+                                    , lib
+                                    , melpaBuild
+                                    , seq }:
+      melpaBuild {
+        pname = "flycheck-haskell";
+        ename = "flycheck-haskell";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-haskell";
+          rev = "ee3401d97cc5e8edc216f2369e9dea3d363e462c";
+          sha256 = "0yryd346cp5zir3icldkhjzwjb0bkq8rlidbr62dry1cw9bic6z0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-haskell";
+          sha256 = "12lgirz3j6n5ns2ikq4n41z0d33qp1lb5lfz1q11qvpbpn9d0jn7";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck haskell-mode let-alist seq ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-haskell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-hdevtools = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , flycheck
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-hdevtools";
+        ename = "flycheck-hdevtools";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-hdevtools";
+          rev = "fbf90b9a7d2d90f69ac55b57d18f0f4a47afed61";
+          sha256 = "136mdg21a8sqxhijsjsvpli7r7sb40nmf80p6gmgb1ghwmhlm8k3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-hdevtools";
+          sha256 = "0ahvai1q4x59ryiyccvqvjisgqbaiahx4gk8ssaxhblhj0sqga93";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-hdevtools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-irony = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , irony
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-irony";
+        ename = "flycheck-irony";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "Sarcasm";
+          repo = "flycheck-irony";
+          rev = "34940ae5ab8f4c721d9c1118ebfc3496d7e67a84";
+          sha256 = "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-irony";
+          sha256 = "0qk814m5s7mjba659llml0gy1g3045w8l1g73w2pnm1pbpqdfn3z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck irony ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-irony";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-joker = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-joker";
+        ename = "flycheck-joker";
+        version = "1.3.0";
+        src = fetchFromGitHub {
+          owner = "candid82";
+          repo = "flycheck-joker";
+          rev = "51e99e697761ee8dab863930910abdba7607c1bd";
+          sha256 = "07pxfvnrgp7f3rb27j1zrq04pncvga4291krqqy3dzwazsjplz48";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-joker";
+          sha256 = "0war80zdljpjhfihqrind8471ic7l4z7j74zmrysybxvnd5nr7l3";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-joker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-julia = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-julia";
+        ename = "flycheck-julia";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "gdkrmr";
+          repo = "flycheck-julia";
+          rev = "213b60a5a9a1cb7887260e1d159b5bb27167cbb6";
+          sha256 = "0wk8mc8j67dmc3mxzrhypgxmyywwrjh5q5llj4m2mgf0j7yp2576";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-julia";
+          sha256 = "0340bv0lifs8pajk7gh7rngdjg62vaggn5biyysng642dlg5fwqs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-julia";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-kotlin = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-kotlin";
+        ename = "flycheck-kotlin";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "whirm";
+          repo = "flycheck-kotlin";
+          rev = "44dfae49a7355232492e17c150b7f80a84835c45";
+          sha256 = "1495yxk308d1j3hw8gfdrsg8xs1imzgwfnwadrz9hx36rjd2dhj5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-kotlin";
+          sha256 = "0vh4f3ap1ciddf2fvfnjz668d6spyx49xs2wfp1hrzxn5yqpnra5";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-kotlin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-ledger = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-ledger";
+        ename = "flycheck-ledger";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flycheck-ledger";
+          rev = "9401b6c83f60bfd29edfc62fee76f75e17a3a41e";
+          sha256 = "1pdssw5k88ym5fczllfjv26sp4brlyrywnlzq5baha5pq91h9cb6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-ledger";
+          sha256 = "0807pd2km4r60wgd6jakscbx63ab22d9kvf1cml0ad8wynsap7jl";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-ledger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-mix = callPackage ({ elixir-mode
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-mix";
+        ename = "flycheck-mix";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "tomekowal";
+          repo = "flycheck-mix";
+          rev = "c565ebb12a48fcd49cc65656d79295c3288fcb84";
+          sha256 = "1yncail979sfljmib7b1m9aw376xd4b76apz4d50hj83lrfy169c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-mix";
+          sha256 = "1wp8lp45lc519w3xsws2c91jlbfmc0pc8764kxsifk74akwcizfl";
+          name = "recipe";
+        };
+        packageRequires = [ elixir-mode flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-mix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-mmark = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-mmark";
+        ename = "flycheck-mmark";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "mmark-md";
+          repo = "flycheck-mmark";
+          rev = "9ac97f2ff7c669f1c5581b1a6677daa2383b0884";
+          sha256 = "0yis6dgvclm434zycc731y48ac4wviafn1k9w18qmlz9qnjqpivd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-mmark";
+          sha256 = "0lnw7pz40hijcpi9b92vjxvvyh9v50ww2f2r8z9pyhl9mjy2245x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-mmark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-nimsuggest = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild
+                                       , nim-mode }:
+      melpaBuild {
+        pname = "flycheck-nimsuggest";
+        ename = "flycheck-nimsuggest";
+        version = "0.8.1";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "flycheck-nimsuggest";
+          rev = "8b1c69e9aa924368bc4dadd4cde818ff158cd3f0";
+          sha256 = "0vnwy7b3xs2smbr6ah6yk8hq7vvsciq7d6m1qr91nfnazdgvxmvg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-nimsuggest";
+          sha256 = "099mlzramm6z66zyjb6ypn7qb0hpvwbbgk9ydsanj8sni0dd66hv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck nim-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-nimsuggest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-objc-clang = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-objc-clang";
+        ename = "flycheck-objc-clang";
+        version = "2.0.4";
+        src = fetchFromGitHub {
+          owner = "GyazSquare";
+          repo = "flycheck-objc-clang";
+          rev = "a3781e47f14068c811534a3348bf479eeb3f2041";
+          sha256 = "00a2wg6g74plbmva3bwms7brdlv9i28w51yxisiv04la126m69js";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-objc-clang";
+          sha256 = "07mzwd04a69d7xpkjmhfmf95j69h6accnf9bb9br7jb1hi9vdalp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-objc-clang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-ocaml = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , let-alist
+                                  , lib
+                                  , melpaBuild
+                                  , merlin }:
+      melpaBuild {
+        pname = "flycheck-ocaml";
+        ename = "flycheck-ocaml";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-ocaml";
+          rev = "9b4cd83ad2a87cc94b5d4e1ac26ac235475f1e6c";
+          sha256 = "1phfarws2aajkgcl96hqa4ydmb1yncg10q2ldzf8ff6yd6mvk51l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-ocaml";
+          sha256 = "1cv2bb66aql2kj1y1gsl4xji8yrzrq6rd8hxxs5vpfsk47052lf7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck let-alist merlin ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-ocaml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-package = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild
+                                    , package-lint }:
+      melpaBuild {
+        pname = "flycheck-package";
+        ename = "flycheck-package";
+        version = "0.12";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flycheck-package";
+          rev = "afe8a49343d90d08ee72ac6f993d424dcc39cc38";
+          sha256 = "19pz8h01yacfqsyh5940pam6vigvavsqg6qd84994d7mmzl534qa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-package";
+          sha256 = "0068kpia17rsgjdmzsjnw0n6x5z9jvfxggxlzkszvwsx73mvcs2d";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck package-lint ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-phpstan = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild
+                                    , phpstan }:
+      melpaBuild {
+        pname = "flycheck-phpstan";
+        ename = "flycheck-phpstan";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phpstan.el";
+          rev = "3653f2a316f4199cbd3238e984eea2325e2618d5";
+          sha256 = "1dyba8hpr16nsdv1i45pl3w97728w7p8vl9gf5gvd18xcll4848d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-phpstan";
+          sha256 = "1dr0h6cnwxdjmhlackv4gpsljwzs27gk41p8q99r0m44dada9gaf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck phpstan ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-phpstan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pony = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-pony";
+        ename = "flycheck-pony";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "SeanTAllen";
+          repo = "flycheck-pony";
+          rev = "3d3387133a44f5b3f0fb178ef4addf6e1ce1df2f";
+          sha256 = "1da10q378k5kbcj0rrpzhm7r3ym4rfwc7v1ialcndbmflsn09m5s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pony";
+          sha256 = "18w1d7y3jsmsc4wg0909p72cnvbxzsmnirmrahhwgsb963fij5qk";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pony";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-popup-tip = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , flycheck
+                                      , lib
+                                      , melpaBuild
+                                      , popup }:
+      melpaBuild {
+        pname = "flycheck-popup-tip";
+        ename = "flycheck-popup-tip";
+        version = "0.12.2";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-popup-tip";
+          rev = "ef86aad907f27ca076859d8d9416f4f7727619c6";
+          sha256 = "1bi6f9nm4bylsbjv4qnkar35s6xzdf2cc2cxi3g691p9527apdz6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-popup-tip";
+          sha256 = "1j8pgljnxcbfh08qpbr9jkw56l7d6k8lmdcsjbi6jd7jmyqbqvnx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck popup ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-popup-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pos-tip = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , flycheck
+                                    , lib
+                                    , melpaBuild
+                                    , pos-tip }:
+      melpaBuild {
+        pname = "flycheck-pos-tip";
+        ename = "flycheck-pos-tip";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "flycheck";
+          repo = "flycheck-pos-tip";
+          rev = "3f1d5297fdff44a14ee624160eefdc678e2bd0bd";
+          sha256 = "0qxx3xdgk5l793yg5ffbi5qhrxrf6akwdz93n2vibpkdjkvzyh2y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pos-tip";
+          sha256 = "09i2jmwj8b915fhyczwdb1j7c551ggbva33avis77ga1s9v3nsf9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck pos-tip ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pos-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-pycheckers = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , flycheck
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-pycheckers";
+        ename = "flycheck-pycheckers";
+        version = "0.11";
+        src = fetchFromGitHub {
+          owner = "msherry";
+          repo = "flycheck-pycheckers";
+          rev = "4f65e93931c5be4b183d2a3cf5a52a394f9a09b7";
+          sha256 = "034sfjd01w4djrhmcdywv5g771wi7ny5b3pad3pici4129jkk62s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-pycheckers";
+          sha256 = "18ski3bp8x33589pc273i5ia3hffvlb4czrd97wkfgr4k59ww6yq";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-pycheckers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-rebar3 = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-rebar3";
+        ename = "flycheck-rebar3";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "joedevivo";
+          repo = "flycheck-rebar3";
+          rev = "56a7c94857f0a0ea6a2a73c476a1a2faadc0f7c6";
+          sha256 = "1pas49arri2vs9zm3r8jl4md74p5fpips3imc3s7nafbfrhh8ix3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-rebar3";
+          sha256 = "1ml9k61n5vy4c2q6c10q9j10ky0iqkinx21bl7hip1r6b5b1kmmc";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-rebar3";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-rtags = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild
+                                  , rtags }:
+      melpaBuild {
+        pname = "flycheck-rtags";
+        ename = "flycheck-rtags";
+        version = "2.20";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "5dbb594a7202c4a2e84329cf821bd28bfbea5ae3";
+          sha256 = "0x210bqv7618g85nzjy4x9gy31qcbjgppmk8zbpmqk59f2bp7bac";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-rtags";
+          sha256 = "00v6shfs7piqapmyqyi0fk3182rcfa3p8wr2cm5vqlrana13kbw4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-status-emoji = callPackage ({ cl-lib ? null
+                                         , emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , flycheck
+                                         , let-alist
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-status-emoji";
+        ename = "flycheck-status-emoji";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "liblit";
+          repo = "flycheck-status-emoji";
+          rev = "61e93ac41847d27b8eea3a334ced2d1783687b77";
+          sha256 = "104zz9fihvd5klzdcaxsdmmfp0q5qisq5bbff48rfwdxnlp8dskr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-status-emoji";
+          sha256 = "0p42424b1fsmfcjyl252vhblppmpjwd6br2yqh10fi60wmprvn2p";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs flycheck let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-status-emoji";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-swift = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-swift";
+        ename = "flycheck-swift";
+        version = "2.0";
+        src = fetchFromGitHub {
+          owner = "swift-emacs";
+          repo = "flycheck-swift";
+          rev = "822d1415eabfd464adc52063f9c44da1c87f0ff9";
+          sha256 = "0gf7cxrsrf62kamm4xy1fi4v264szm6qk607ifg4bi5dmdc10b0k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-swift";
+          sha256 = "1s6rn4wyz9la6bw228jfxx8dxjyk5hf8r3vbmq0k808p772zki0z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-swift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-swift3 = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , flycheck
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-swift3";
+        ename = "flycheck-swift3";
+        version = "2.0.4";
+        src = fetchFromGitHub {
+          owner = "GyazSquare";
+          repo = "flycheck-swift3";
+          rev = "37994f11c93f585119647e6ba10761e9766b593d";
+          sha256 = "12611z7f53pw0yn70m40nsp6qd2jpm2hdf8s2gqz4lf0qh2z91lb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-swift3";
+          sha256 = "05yfrn42svcvdkr8mx16ii8llhzn33lxdawksjqiqg671s6fgdpa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-swift3";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-tip = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , lib
+                                , melpaBuild
+                                , popup }:
+      melpaBuild {
+        pname = "flycheck-tip";
+        ename = "flycheck-tip";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "flycheck-tip";
+          rev = "0bfddf52ae4ec48d970324f8336a5d62986bbc9e";
+          sha256 = "0azjr5mfb3hnb66m1b2319i035mn5i9qz24y7fj5crhnc9vp8w3s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-tip";
+          sha256 = "0zab1zknrnsw5xh5pwzzcpz7p40bbywkf9zx99sgsd6b5j1jz656";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck popup ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-title = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-title";
+        ename = "flycheck-title";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "flycheck-title";
+          rev = "4686fa30069f6f3d996bd63978b8fd47f534df24";
+          sha256 = "18s60kvvh9glk7b1fj5b18shif0h9cfkh0zrvljscxid01nk9l7k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-title";
+          sha256 = "1cxid9qmzy8pl8qkvr6kgvfqm05pjw8cxpz66x619hbkw2vr7sza";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-title";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-vdm = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , flycheck
+                                , lib
+                                , melpaBuild
+                                , vdm-mode }:
+      melpaBuild {
+        pname = "flycheck-vdm";
+        ename = "flycheck-vdm";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "peterwvj";
+          repo = "vdm-mode";
+          rev = "0c083ee4848ea5d78de7894a4a0722d6630839c9";
+          sha256 = "175zlxxjxl7zp80hm2hz5xw7gy3qh0hz3fdvqy8v3n0vz4zvqx1k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-vdm";
+          sha256 = "15ng1l8gfp8iz50yb5d39dy57763gd2x8j6z6rz0byiykgxhl9zg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck vdm-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-vdm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-yamllint = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , flycheck
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "flycheck-yamllint";
+        ename = "flycheck-yamllint";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "krzysztof-magosa";
+          repo = "flycheck-yamllint";
+          rev = "110d310fae409e1869b82c34e60936bd3783dc69";
+          sha256 = "0xfmnwmc26wzfw1r4q70yxzm9qqvcpxx953pvssavrxfyg3bdgf4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-yamllint";
+          sha256 = "1q2sy0hsbnwdlwq99wk8n5gi9fd8bs4jvi859np8bylbhhb3kj8m";
+          name = "recipe";
+        };
+        packageRequires = [ flycheck ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-yamllint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flycheck-ycmd = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , let-alist
+                                 , lib
+                                 , melpaBuild
+                                 , ycmd }:
+      melpaBuild {
+        pname = "flycheck-ycmd";
+        ename = "flycheck-ycmd";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-ycmd";
+          rev = "d042a673b4d717c3ca9d641f120bfe16c994c740";
+          sha256 = "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flycheck-ycmd";
+          sha256 = "114k5y3jy470g5zzhxy03036gcayc08n6g61cidlr2zlyq80glyr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs flycheck let-alist ycmd ];
+        meta = {
+          homepage = "https://melpa.org/#/flycheck-ycmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-coffee = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flymake-easy
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-coffee";
+        ename = "flymake-coffee";
+        version = "0.12";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-coffee";
+          rev = "d4ef325255ea36d1dd622f29284fe72c3fc9abc0";
+          sha256 = "1svj5n7mmzhq03azlv4n33rz0nyqb00qr8ihdbc8hh2xnp63j5rc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-coffee";
+          sha256 = "1aig1d4fgjdg31vrg8k43z5hbqiydgfvxi45p1695s3kbdm8pr2d";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-coffee";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-css = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , flymake-easy
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-css";
+        ename = "flymake-css";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-css";
+          rev = "3e56d47d3c53e39741aa4f702bb9fb827cce22ed";
+          sha256 = "054ws88fcfz3hf3cha7dvndm52v5n4jc4vzif1lif44xq0iggwqa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-css";
+          sha256 = "0kqm3wn9symqc9ivnh11gqgq8ql2bhpqvxfm86d8vwm082hd92c5";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-css";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-cursor = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , flymake ? null
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-cursor";
+        ename = "flymake-cursor";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "flymake";
+          repo = "emacs-flymake-cursor";
+          rev = "5cac5045398b1436ceb143d48961b50d38ae1396";
+          sha256 = "0xaq8zfd90kqqwg8ik081jblrdyj6p3fh2xpf6a4sdj8826ry93v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-cursor";
+          sha256 = "0v5abg3h9kmybr0cyr7hqy4rn88h84snzxbsmqcbjw24s10v9p0s";
+          name = "recipe";
+        };
+        packageRequires = [ flymake ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-cursor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-easy = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-easy";
+        ename = "flymake-easy";
+        version = "0.10";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-easy";
+          rev = "09deafbcb5f094de8465c2bbfe270ba0f517f515";
+          sha256 = "1ld0g3hrbplmw3xgg6jg032hncnlxyc3hid4vn38lkcj3y7ls61b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-easy";
+          sha256 = "0y7nm2p5x1f0nqfj73zr6xzbpf4wrzx8sn8154yx0qm0qh3id39v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-easy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-gjshint = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-gjshint";
+        ename = "flymake-gjshint";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "flymake-gjshint-el";
+          rev = "71495ee5303de18293decd57ab9f9abdbaabfa05";
+          sha256 = "002s01cymgx4z4l3j2pqirg7899pljdx2hmbz8k6cksdxlymzmkd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-gjshint";
+          sha256 = "19jcd5z4883z3fzlrdn4fzmsvn16f4hfnhgw4vbs5b0ma6a8ka44";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-gjshint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-haml = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-haml";
+        ename = "flymake-haml";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-haml";
+          rev = "343449920866238db343d61343bc845cc8bc5e1b";
+          sha256 = "1b3lf5jwan03k7rb97g4bb982dacdwsfdddnwc0inx9gs3qq1zni";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-haml";
+          sha256 = "0dmdhh12h4xrx6mc0qrwavngk2sx0l4pfqkjjyavabsgcs9wlgp1";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-haml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-haskell-multi = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , flymake-easy
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-haskell-multi";
+        ename = "flymake-haskell-multi";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-haskell-multi";
+          rev = "d2c9aeffd33440d360c1ea0c5aef6d1f171599f9";
+          sha256 = "0k1qc0r0gr7f9l5if2a67cv4k73z5yxd6vxd6l1bqw500y0aajxz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-haskell-multi";
+          sha256 = "0cyzmmghwkkv6020s6n436lwymi6dr49i7gkci5n0hw5pdywcaij";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-haskell-multi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-hlint = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flymake-easy
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-hlint";
+        ename = "flymake-hlint";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-hlint";
+          rev = "d540e250a80a09da3036c16bf86f9deb6d738c9c";
+          sha256 = "1ygg51r4ym4x7h4svizwllsvr72x9np6jvjqpk8ayv3w2fpb9l31";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-hlint";
+          sha256 = "0wq1ijhn3ypy31yk8jywl5hnz0r0vlhcxjyznzccwqbdc5vf7b2x";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-hlint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-jslint = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-jslint";
+        ename = "flymake-jslint";
+        version = "0.23";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-jslint";
+          rev = "30693f75059bab53a9d2eb676c68751f4d8b091c";
+          sha256 = "00zkm3wqlss386qd6jiq0siga7c48n5ykh0vf9q5v83rmpd79yri";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-jslint";
+          sha256 = "1cq8fni4p0qhigx0qh34ypmcsbnilra1ixgnrn9mgg8x3cvcm4cm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-jslint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-json = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-json";
+        ename = "flymake-json";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-json";
+          rev = "ad8e482db1ad29e23bdd9d089b9bc3615649ce65";
+          sha256 = "0rzlw80mi39147yqnpzcvw9wvr5svksd3kn6s3w8191f2kc6xzzv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-json";
+          sha256 = "1p5kajiycpqy2id664bs0fb1mbf73a43qqfdi4c57n6j9x7fxp4d";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-json";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-less = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , less-css-mode
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-less";
+        ename = "flymake-less";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-less";
+          rev = "8cbb5e41c8f4b988cee3ef4449cfa9aea3540893";
+          sha256 = "0ggvmsjj6p6a7cwr2bzhlcf8ab4v6a2bz5djsscd2ryy570p367z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-less";
+          sha256 = "05k5daphxy94164c73ia7f4l1gv2cmlw8xzs8xnddg7ly22gjhi0";
+          name = "recipe";
+        };
+        packageRequires = [ less-css-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-less";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-perlcritic = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , flymake ? null
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-perlcritic";
+        ename = "flymake-perlcritic";
+        version = "1.0.3";
+        src = fetchFromGitHub {
+          owner = "flymake";
+          repo = "emacs-flymake-perlcritic";
+          rev = "0692d6ad5495f6e5438bde0a10345829b8e1def8";
+          sha256 = "11r982h5fhjkmm9ld8wfdip0ghinw523nm1w4fmy830g0bbkgkrq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-perlcritic";
+          sha256 = "1i0bc81cby2nsala2mhghzv7clhbf1gpp54vdxiq2wdanqy25vmk";
+          name = "recipe";
+        };
+        packageRequires = [ flymake ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-perlcritic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-php = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , flymake-easy
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-php";
+        ename = "flymake-php";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-php";
+          rev = "91f867e209011af31a2ca2d8f6874b994403bcb2";
+          sha256 = "0dzyid0av9icp77wv0zcsygpw46z24qibq1ra0iwnkzl3kqvkyzh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-php";
+          sha256 = "12ds2l5kvs7fz38syp4amasbjkpqd36rlpajnb3xxll0hbk6vffk";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-php";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-python-pyflakes = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , flymake-easy
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-python-pyflakes";
+        ename = "flymake-python-pyflakes";
+        version = "0.9";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-python-pyflakes";
+          rev = "78806a25b0f01f03df4210a79a6eaeec59511d7a";
+          sha256 = "0l8qpcbzfi32h3vy7iwydx3hg2w60x9l3v3rabzjx412m5d00gsh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-python-pyflakes";
+          sha256 = "0asbjxv03zkbcjayanv13qzbv4z7b6fi0z1j6yv7fl6q9mgvm497";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-python-pyflakes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-ruby = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-ruby";
+        ename = "flymake-ruby";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-ruby";
+          rev = "e14e8e2abda223bd3920dbad0eefd5af5973ae6d";
+          sha256 = "0d2vmpgr5c2cbpxcqm5x1ckfysbpwcbaa9frcnp2yfp8scvkvqj0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-ruby";
+          sha256 = "1shr6d03vx85nmyxnysglzlc1pz0zy3n28nrcmxqgdm02g197bzr";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-sass = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , flymake-easy
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-sass";
+        ename = "flymake-sass";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-sass";
+          rev = "1c7664818db539de7f3dab396c013528a3f5b8b4";
+          sha256 = "0c74qdgy9c4hv3nyjnbqdzypbg9399vq3p5ngp5lasc7iz6vi0h8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-sass";
+          sha256 = "0sz6n5r9pdphgvvaljg9zdwj3dqayaxzxmb4s8x4b05c8yx3ba0d";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-sass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flymake-shell = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , flymake-easy
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flymake-shell";
+        ename = "flymake-shell";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "flymake-shell";
+          rev = "ec097bd77db5523a04ceb15a128e01689d36fb90";
+          sha256 = "0c2lz1p91yhprmlbmp0756d96yiy0w92zf0c9vlp0i9abvd0cvkc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flymake-shell";
+          sha256 = "13ff4r0k29yqgx8ybxz7hh50cjsadcjb7pd0075s9xcrzia5x63i";
+          name = "recipe";
+        };
+        packageRequires = [ flymake-easy ];
+        meta = {
+          homepage = "https://melpa.org/#/flymake-shell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-correct = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "flyspell-correct";
+        ename = "flyspell-correct";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "d12frosted";
+          repo = "flyspell-correct";
+          rev = "a9b53c52ab350aead0851e140d813cfd7b1bd680";
+          sha256 = "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-correct";
+          sha256 = "0d2205h234na9s942s83yvkq89l9w9jnl5yfrxkkdiq8pw0dvymd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-correct";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-correct-helm = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , flyspell-correct
+                                         , helm
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "flyspell-correct-helm";
+        ename = "flyspell-correct-helm";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "d12frosted";
+          repo = "flyspell-correct";
+          rev = "a9b53c52ab350aead0851e140d813cfd7b1bd680";
+          sha256 = "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-correct-helm";
+          sha256 = "18s2bzszy6x31avqg7j2lsll2cf4asb8njwhmx4mm215agack976";
+          name = "recipe";
+        };
+        packageRequires = [ flyspell-correct helm ];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-correct-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-correct-ivy = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , flyspell-correct
+                                        , ivy
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "flyspell-correct-ivy";
+        ename = "flyspell-correct-ivy";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "d12frosted";
+          repo = "flyspell-correct";
+          rev = "a9b53c52ab350aead0851e140d813cfd7b1bd680";
+          sha256 = "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-correct-ivy";
+          sha256 = "1n5iyab6bj761w6vxncyqvqzwh9k60pzq5f2n00ifrz74pqs537i";
+          name = "recipe";
+        };
+        packageRequires = [ flyspell-correct ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-correct-ivy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-correct-popup = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , flyspell-correct
+                                          , lib
+                                          , melpaBuild
+                                          , popup }:
+      melpaBuild {
+        pname = "flyspell-correct-popup";
+        ename = "flyspell-correct-popup";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "d12frosted";
+          repo = "flyspell-correct";
+          rev = "a9b53c52ab350aead0851e140d813cfd7b1bd680";
+          sha256 = "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-correct-popup";
+          sha256 = "1fr8ajwldcl58i8xm31dz1mjwbi9f4q8s58x5jrqhqha0x4p4h9l";
+          name = "recipe";
+        };
+        packageRequires = [ flyspell-correct popup ];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-correct-popup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-lazy = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "flyspell-lazy";
+        ename = "flyspell-lazy";
+        version = "0.6.10";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "flyspell-lazy";
+          rev = "31786fe04a4732d2f845e1c7e96fcb030182ef10";
+          sha256 = "1g09s57b773nm9xqslzbin5i2h18k55nx00s5nnkvx1qg0n0mzkm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-lazy";
+          sha256 = "0lzazrhsfh5m7n57dzx0v46d5mg87wpwwkjzf5j9gpv1mc1xfg1y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-lazy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    flyspell-popup = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , popup }:
+      melpaBuild {
+        pname = "flyspell-popup";
+        ename = "flyspell-popup";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "flyspell-popup";
+          rev = "29311849bfd253b9b689bf331860b4c4d3bd4dde";
+          sha256 = "0x7jilwb0fgzsr7ma59sgd0d4122cl0hwzr28vi3z5s8wdab7nc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/flyspell-popup";
+          sha256 = "0wp15ra1ry6xpwal6mb53ixh3f0s4nps0rdyfli7hhaiwbr9bhql";
+          name = "recipe";
+        };
+        packageRequires = [ popup ];
+        meta = {
+          homepage = "https://melpa.org/#/flyspell-popup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fn = callPackage ({ cl-lib ? null
+                      , dash
+                      , dash-functional
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "fn";
+        ename = "fn";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "troyp";
+          repo = "fn.el";
+          rev = "fe65dc654d319e6fa9cef4d7eca0f8dd847b6a32";
+          sha256 = "1j2rrwizafwramlzrjcsfv8xbz72qmiaa120cb1ri8wp6nyvhys0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fn";
+          sha256 = "0cb98rxdb6sd0kws6bc4pa536kiyw3yk0hlfqcm3ps81hcgqjhhn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash dash-functional emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    focus = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "focus";
+        ename = "focus";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "larstvei";
+          repo = "Focus";
+          rev = "75202c9445f52eab6fb82f00006f37cd20dae6b2";
+          sha256 = "1v9y3dp7sd4rsm31myp3l1jxpwjw3madajb6yz9rw0yhdirfwgbg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/focus";
+          sha256 = "0jw26j8npyl3dgsrs7ap2djxmkafn2hl6gfqvi7v76bccs4jkyv8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/focus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fold-dwim = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fold-dwim";
+        ename = "fold-dwim";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "emacsattic";
+          repo = "fold-dwim";
+          rev = "4764b0246a722d37eb8ec9f204ffaccaad1755d0";
+          sha256 = "1k8z30imlxvqm7lv12kgqdfgc5znxyvl9jxi8j2ymmwlgy11f726";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fold-dwim";
+          sha256 = "1k5186s69qahwbzvwq70af3bkcglls9a82c5jw5mdw3ic8k631sh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fold-dwim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fold-dwim-org = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , fold-dwim
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "fold-dwim-org";
+        ename = "fold-dwim-org";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "fold-dwim-org";
+          rev = "c09bb2b46d65afbd1d0febc6fded7495be7a3037";
+          sha256 = "14jvbkahwvv4wb0s9vp8gqmlpv1d4269j5rsjxn79q5pawjzslxw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fold-dwim-org";
+          sha256 = "0812p351rzvqcfn00k92nfhlg3y772y4z4b9f0xqnpa935y6harn";
+          name = "recipe";
+        };
+        packageRequires = [ fold-dwim ];
+        meta = {
+          homepage = "https://melpa.org/#/fold-dwim-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fold-this = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fold-this";
+        ename = "fold-this";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "fold-this.el";
+          rev = "90b41d7b588ab1c3295bf69f7dd87bf31b543a6a";
+          sha256 = "1cbabpyp66nl5j8yhyj2jih4mhaljxvjh9ij05clai71z4598ahn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fold-this";
+          sha256 = "1iri4a6ixw3q7qr803cj2ik7rvmww1b6ybj5q2pvkf1v25r8655d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fold-this";
+          license = lib.licenses.free;
+        };
+      }) {};
+    font-utils = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pcache
+                              , persistent-soft }:
+      melpaBuild {
+        pname = "font-utils";
+        ename = "font-utils";
+        version = "0.7.8";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "font-utils";
+          rev = "9192d3f8ee6a4e75f34c3fed10378674cc2b11d3";
+          sha256 = "1k90w8v5rpswqb8fn1cc8sq5w12gf4sn6say5dhvqd63512b0055";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/font-utils";
+          sha256 = "0k33jdchjkj7j211a23kfp5axg74cfsrrq4axsb1pfp124swh2n5";
+          name = "recipe";
+        };
+        packageRequires = [ pcache persistent-soft ];
+        meta = {
+          homepage = "https://melpa.org/#/font-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fontawesome = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm-core
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "fontawesome";
+        ename = "fontawesome";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-fontawesome";
+          rev = "72b4f2f83c7fdacd225aee58f93acefc53166626";
+          sha256 = "1icwjd1rbyr1g8ifyhvpi21wjff2qrddq2rmp5lmiajnwrlfli0d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fontawesome";
+          sha256 = "07hn4s929xklc74j8s6pd61rxmxw3911dq47wql77vb5pijv6dr3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/fontawesome";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fontify-face = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "fontify-face";
+        ename = "fontify-face";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "fontify-face";
+          rev = "fc3325c98427523d86f0b411e0515cec51ac3d8a";
+          sha256 = "1zfld9a17xhisfwhmfxvx1x63ksl6jg5g99kbivj4nq70sf26dpw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fontify-face";
+          sha256 = "1w7xlkladqkbh7gpnkbi53a7k9p5wzma4y9jgwbc58hng9ggm1k0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fontify-face";
+          license = lib.licenses.free;
+        };
+      }) {};
+    foreman-mode = callPackage ({ dash
+                                , dash-functional
+                                , emacs
+                                , f
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "foreman-mode";
+        ename = "foreman-mode";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "foreman-mode";
+          rev = "e90d2b56e83ab914f9ba9e78126bd7a534d5b8fb";
+          sha256 = "199kybf2bvywqfnwr5w893km82829k1j7sp079y6s2601hq8ylw9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/foreman-mode";
+          sha256 = "0p3kwbld05wf3dwcv0k6ynz727fiy0ik2srx4js9wvagy57x98kv";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/foreman-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    form-feed = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "form-feed";
+        ename = "form-feed";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "form-feed";
+          rev = "eac6724c093458745e9ae0e37221077fa2ad0ff6";
+          sha256 = "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/form-feed";
+          sha256 = "1abwjkzi3irw0jwpv3f584zc72my9n8iq8zp5s0354xk6iwrl1rh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/form-feed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    format-sql = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "format-sql";
+        ename = "format-sql";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "paetzke";
+          repo = "format-sql.el";
+          rev = "97f475c245cd6c81a72a265678e2087cee66ac7b";
+          sha256 = "0mikksamljps1czacgqavlnzzhgs8s3f8q4jza6v3csf8kgp5zd0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/format-sql";
+          sha256 = "0684xqzs933vj9d3n3lv7afk4gii41kaqykbb05cribaswapsanj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/format-sql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fortune-cookie = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "fortune-cookie";
+        ename = "fortune-cookie";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "andschwa";
+          repo = "fortune-cookie";
+          rev = "bad99a2cd090f6646c7ee1125b95dd98744939c6";
+          sha256 = "1kiflisiabc39lxi5hcazfvcwrpasl01lqsi2sri6pyrcrjyh8mf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fortune-cookie";
+          sha256 = "0xg0zk7hnyhnbhqpxnzrgqs5yz0sy6wb0n9982qc0pa6jqnl9z78";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fortune-cookie";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fountain-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "fountain-mode";
+        ename = "fountain-mode";
+        version = "2.6.1";
+        src = fetchFromGitHub {
+          owner = "rnkn";
+          repo = "fountain-mode";
+          rev = "7d84ed48df76ee05f629781741ad7c5783c3cc66";
+          sha256 = "0f6vav08583gahr863sa5v7mabwjlm1dgfybv3843cscqmxb70zw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fountain-mode";
+          sha256 = "1i55gcjy8ycr1ww2fh1a2j0bchx1bsfs0zd6v4cv5zdgy7vw6840";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fountain-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    frames-only-mode = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , seq }:
+      melpaBuild {
+        pname = "frames-only-mode";
+        ename = "frames-only-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "frames-only-mode";
+          rev = "5a2947d797a5d6f74d3a9c97f8c0ab6cff115b28";
+          sha256 = "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/frames-only-mode";
+          sha256 = "17p04l16ghz9kk096xk37yjpi4rmla86gp7c8ysjf6q6nyh0608h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/frames-only-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    frameshot = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "frameshot";
+        ename = "frameshot";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "frameshot";
+          rev = "3e1c9c2b34a3ab25cf373c411321280cc00096f6";
+          sha256 = "1kcvgal64m1wf2k2qjx2bc0ln01xn0x73h0pvs17akfc0w5n40ms";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/frameshot";
+          sha256 = "1z5f988m9s25miyxbhaxk6m4af9afvblb2p5mdidva04szjklr70";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/frameshot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    free-keys = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "free-keys";
+        ename = "free-keys";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "free-keys";
+          rev = "edfd69dc369b2647447b7c28c7c1163b1ddf45b4";
+          sha256 = "0xgifa7s9n882f9ymyyz9gc11xfbj3vfpnxiq1fqfm5hmwx9pwbc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/free-keys";
+          sha256 = "0j9cfgy2nkbska4lm5z32p804i9n8pdgn50bs5zzk1ilwd5vbalj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/free-keys";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fringe-helper = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "fringe-helper";
+        ename = "fringe-helper";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "fringe-helper.el";
+          rev = "0f10a196c6e57222b8d4c94eafc40a96e7b20f1b";
+          sha256 = "1c3yx9j3q8fkfiay4nzcabsq9i4ydqf6vxk8vv80h78gg9afrzrj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fringe-helper";
+          sha256 = "1i5wra4j0rvrsl9vbg7fzga8cadw43ka2rwdj1m11wq8m3cs8g7m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fringe-helper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fsbot-data-browser = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "fsbot-data-browser";
+        ename = "fsbot-data-browser";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "Benaiah";
+          repo = "fsbot-data-browser";
+          rev = "6bca4f7de63e31839d2542f6c678b79931dec344";
+          sha256 = "0lvpgfp89sz6f6rn576g1g88s0q3ibj5ghydjwfcg9w6h7vx5b5s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fsbot-data-browser";
+          sha256 = "14d4d8lasvgj520rmqgnzk6mi16znzcdvja9p8164fr9l41wnzgd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fsbot-data-browser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fsharp-mode = callPackage ({ company
+                               , company-quickhelp
+                               , dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , flycheck
+                               , lib
+                               , melpaBuild
+                               , popup
+                               , pos-tip
+                               , s }:
+      melpaBuild {
+        pname = "fsharp-mode";
+        ename = "fsharp-mode";
+        version = "1.9.12";
+        src = fetchFromGitHub {
+          owner = "rneatherway";
+          repo = "emacs-fsharp-mode-bin";
+          rev = "68d2121a7317d90fe3794c9295d117f4aebd1438";
+          sha256 = "0mymvik20slbgsasjpn6nkqcb4z6z4mvd1sf1xalv0qjk24vrlmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fsharp-mode";
+          sha256 = "07pkj30cawh0diqhrp3jkshgsd0i3y34rdnjb4af8mr7dsbsxb6z";
+          name = "recipe";
+        };
+        packageRequires = [
+          company
+          company-quickhelp
+          dash
+          flycheck
+          popup
+          pos-tip
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/fsharp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fstar-mode = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "fstar-mode";
+        ename = "fstar-mode";
+        version = "0.9.4.0";
+        src = fetchFromGitHub {
+          owner = "FStarLang";
+          repo = "fstar-mode.el";
+          rev = "3a9be64827bbed8e34d38803b5c44d8d4f6cd688";
+          sha256 = "0manmkd66355g1fw2q1q96ispd0vxf842i8dcr6g592abrz5lhi7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fstar-mode";
+          sha256 = "1kwa6gqh91265vpp4gcady2brkizfkfjj0gnya9lar6x7rn4gj7s";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fstar-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fuel = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "fuel";
+        ename = "fuel";
+        version = "0.98";
+        src = fetchFromGitHub {
+          owner = "factor";
+          repo = "factor";
+          rev = "780bbd49cf82c9746ca5a3f42f4a4a27266ccee9";
+          sha256 = "1fs6200rsbnk2lagz8qj17iynaf4c1fvb6sm03i53shsbarak2c3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fuel";
+          sha256 = "08hzzg5dhqkl5c5lfhwcwmx8m8z3k1nxshn2wlpqf5gch8f2nj6z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fuel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    full-ack = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "full-ack";
+        ename = "full-ack";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "full-ack";
+          rev = "0aef4be1686535f83217cafb1524818071bd8325";
+          sha256 = "0c3w3xs2jbdqgsqw0qmdbwii6p395qfznird4gg0hfr7lby2kmjq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/full-ack";
+          sha256 = "09ikhyhpvkcl6yl6pa4abnw6i7yfsx5jkmzypib94w7khikvb309";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/full-ack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fullframe = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fullframe";
+        ename = "fullframe";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "tomterl";
+          repo = "fullframe";
+          rev = "d6a5217f7f2a5a5edcb75140f3fa69b3a50f1cdd";
+          sha256 = "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fullframe";
+          sha256 = "08sh8lmb6g8asv28fcb36ilcn0ka4fc6ka0pnslid0h4c32fxp2a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/fullframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    function-args = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , ivy
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "function-args";
+        ename = "function-args";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "function-args";
+          rev = "0b07db81c0c1fa88d1ec763219ee57640858f79d";
+          sha256 = "0lg9bhwn3za4jvz38zld389gdl48qf34nqqqrzj0r119g1jqdrg1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/function-args";
+          sha256 = "13yfscr993pll5yg019v9dwy71g123a166w114n2m78h0rbnzdak";
+          name = "recipe";
+        };
+        packageRequires = [ ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/function-args";
+          license = lib.licenses.free;
+        };
+      }) {};
+    futhark-mode = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "futhark-mode";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "HIPERFIT";
+          repo = "futhark";
+          rev = "784e3147196bfe82ea9499628467335ea1d036f9";
+          sha256 = "07dqqpacvap034jzvdvnpjyryzicbvjx2imnsghsxw9m52jsb9wn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/0607f01aad7e77d53595ad8db95d32acfd29b148/recipes/futhark-mode";
+          sha256 = "1k22xkg6vd60hk58zkxhmsw2gs6ikzmidvxcdglnr46m6x7r7pnq";
+          name = "futhark-mode";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/futhark-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fuzzy = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "fuzzy";
+        ename = "fuzzy";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "auto-complete";
+          repo = "fuzzy-el";
+          rev = "939f4e9a3f08d83925b41dd3d23b2321f3f6b09c";
+          sha256 = "1g7my9ha5cnwg3pjwa86wncg5gphv18xpnpmj3xc3vg7z5m45rss";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fuzzy";
+          sha256 = "1hwdh9bx4g4vzzyc20vdwxsii611za37kc9ik40kwjjk62qmll8h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fuzzy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fvwm-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "fvwm-mode";
+        ename = "fvwm-mode";
+        version = "1.6.4";
+        src = fetchFromGitHub {
+          owner = "theBlackDragon";
+          repo = "fvwm-mode";
+          rev = "d48a309bb7db21f5404b6619c6ee861fe0457704";
+          sha256 = "0c3g0yfclczdh6nxmg9lljjf288zibqy51bhh1b1cgdmxcbpg8bv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fvwm-mode";
+          sha256 = "07y32cnp4qfhncp7s24gmlxljdrj5miicinfaf4gc7hihb4bkrkb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fvwm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fwb-cmds = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "fwb-cmds";
+        ename = "fwb-cmds";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "fwb-cmds";
+          rev = "90258a5c7dbbaa2ac227e0fb4ff6c7d5aec3628f";
+          sha256 = "1xwvv8wjgdaz96v1x1xc5w697bfvcanlcixd0n5qbx6ryakqrb72";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fwb-cmds";
+          sha256 = "0wnjvi0v0l2h1mhwlsk2d8ggwh3nk7pks48l55gp18nmj00jxycx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/fwb-cmds";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fxrd-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "fxrd-mode";
+        ename = "fxrd-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "msherry";
+          repo = "fxrd-mode";
+          rev = "795b969346982b75e24b5c8619b46197982fbb4d";
+          sha256 = "0aha13vqj6ygyr7bflrxll837g4z6wrmrhh5rhcd0vphqg70frgn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fxrd-mode";
+          sha256 = "17zimg64lqc1yh9gnp5izshkvviz996aym7q6n9p61a4kqq37z4r";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/fxrd-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    fzf = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "fzf";
+        ename = "fzf";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "bling";
+          repo = "fzf.el";
+          rev = "383a050920e9b99d37c21d041deb7f38b202485c";
+          sha256 = "14drm6b6rxbcdilcms1jlqyrqbipcqbdil6q06ni9pgafi7xp8hz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/fzf";
+          sha256 = "0jjzm1gq85fx1gmj6nqaijnjws9bm8hmk40ws3x7fmsp41qq5py0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/fzf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gams-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "gams-mode";
+        ename = "gams-mode";
+        version = "6.5";
+        src = fetchFromGitHub {
+          owner = "ShiroTakeda";
+          repo = "gams-mode";
+          rev = "0a7f3f5d44ea59c34677049882f0a34ff9935bc9";
+          sha256 = "0wl2dfcfvjy23gcwk6qfxbxjlykw438fi9h1y2855adcc9zrhwzx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gams-mode";
+          sha256 = "0hx9mv4sqskz4nn7aks64hqd4vn3m7b34abzhy9bnmyw6d5zzfci";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gams-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gather = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "gather";
+        ename = "gather";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-gather";
+          rev = "b9038e5b960039688e7a80ee770e0aee81d5c6c8";
+          sha256 = "1b73n7ydkckrq2sjq4jb2hva8lfqaiaaad2gcgjx2y15rvbb26d0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gather";
+          sha256 = "1f0cqqp1a7w8g1pfvzxxb0hjrxq4m79a4n85dncqj2xhjxrkm0xk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gather";
+          license = lib.licenses.free;
+        };
+      }) {};
+    geben = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "geben";
+        ename = "geben";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "geben";
+          rev = "003abd23a7468daa133dfbc7ef85d0d61a0410dc";
+          sha256 = "15ck23xv3dz9i4w5xd9lkg0c6rlsyxdz465xrpkr77fq9qw0c4dg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/geben";
+          sha256 = "1ai1qcx76m8xh80c8zixq9cqbhnqmj3jk3r7lj3ngbiwx4pnlnwf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/geben";
+          license = lib.licenses.free;
+        };
+      }) {};
+    geben-helm-projectile = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , geben
+                                         , helm-projectile
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "geben-helm-projectile";
+        ename = "geben-helm-projectile";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "geben-helm-projectile";
+          rev = "14db489efcb20c5aa9102288c94cec3c5a87c35d";
+          sha256 = "1nd1jhy393vkn2g65zhygxkpgna0l8gkndxr8jb6qjkkapk58k8l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/geben-helm-projectile";
+          sha256 = "11zhapys6wx2cadflvjimsmilwvjpfd4ihwzzmap8shxpyllsq9r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs geben helm-projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/geben-helm-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    geiser = callPackage ({ fetchFromGitLab
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "geiser";
+        ename = "geiser";
+        version = "0.10";
+        src = fetchFromGitLab {
+          owner = "jaor";
+          repo = "geiser";
+          rev = "775d1d734a677274fbbf4af780592bb3768d3f9b";
+          sha256 = "086qlii1w7sqxwnxwxvc4d6d71p829jabhgwvi0l0bjkxn7bx8pq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/geiser";
+          sha256 = "1g7z6c3lfa7slwrxk7q8awqs39qibcv2kc4c2fwlwvgbcfhkw085";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/geiser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    genrnc = callPackage ({ concurrent
+                          , deferred
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , log4e
+                          , melpaBuild
+                          , yaxception }:
+      melpaBuild {
+        pname = "genrnc";
+        ename = "genrnc";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-genrnc";
+          rev = "da75b1966a73ad215ec2ced4522c25f4d0bf1f9a";
+          sha256 = "08cw1fa25kbhbq2sp1cpn90bz38i9hjfdj93xf6wvki55b52s0nn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/genrnc";
+          sha256 = "1nwbdscl0yh9j1n421can93m6s8j9dkyb3xmpampr6x528g6z0lm";
+          name = "recipe";
+        };
+        packageRequires = [ concurrent deferred log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/genrnc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    german-holidays = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "german-holidays";
+        ename = "german-holidays";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "rudolfochrist";
+          repo = "german-holidays";
+          rev = "8388b3bf5b5c38f9b9fcc9216ca26ef0640c6edc";
+          sha256 = "0344w4sbd6wlgl13j163v0hzjw9nwhvpr5s7658xsdd90wp4i701";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/german-holidays";
+          sha256 = "0fgrxdgyl6va6axjc5l4sp90pyqaz5zha1g73xyhbxblshm5dwxn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/german-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gf = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , ht
+                      , lib
+                      , melpaBuild
+                      , s }:
+      melpaBuild {
+        pname = "gf";
+        ename = "gf";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "GrammaticalFramework";
+          repo = "gf-emacs-mode";
+          rev = "49fa46db67634530499be969ffd3c436a22d4404";
+          sha256 = "0q234wzzmq1r53dv7z798liwkcbpnvc8mnxvkyfxd94f6za9ylgz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gf";
+          sha256 = "0vk866gy97zk8dbx48azjlpnrnf0snc50zlhbzv1is97d9frjici";
+          name = "recipe";
+        };
+        packageRequires = [ ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/gf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ggo-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ggo-mode";
+        ename = "ggo-mode";
+        version = "20130521";
+        src = fetchFromGitHub {
+          owner = "mkjunker";
+          repo = "ggo-mode";
+          rev = "ea5097f87072309c7b77204888d459d084bf630f";
+          sha256 = "1m9ra9qp7bgf6anfqyn56n3xa9a25ran10k9wd355qknd5skq1zz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ggo-mode";
+          sha256 = "1403x530n90jlfz3lq2vfiqx84cxsrhgs6hhmniq960cjj31q35p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ggo-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ggtags = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ggtags";
+        ename = "ggtags";
+        version = "0.8.13";
+        src = fetchFromGitHub {
+          owner = "leoliu";
+          repo = "ggtags";
+          rev = "17a121af1b375a6a5c5acec52f2ffd2b9715d244";
+          sha256 = "10hryphjjyi13gvk8sy8r5y7nvs0hbw8ycjqj9snai0c1f9xrdsa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ggtags";
+          sha256 = "1cmry4knxbx9257ivhfxsd09z07z3g3wjihi99nrwmhb9h4mpqyw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ggtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gh = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , logito
+                      , melpaBuild
+                      , pcache }:
+      melpaBuild {
+        pname = "gh";
+        ename = "gh";
+        version = "0.10.0";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "gh.el";
+          rev = "d0471dd1ba279072cbf8caf6368f3008d7120f25";
+          sha256 = "099msgsxdqyjrd18jv2mfkpaylp2scq18782354lcpr3fbp8vbsl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gh";
+          sha256 = "1141l8pas3m755yzby4zsan7p81nbnlch3kj1zh69qzjpgqp30c0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs logito pcache ];
+        meta = {
+          homepage = "https://melpa.org/#/gh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghc = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , haskell-mode
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ghc";
+        ename = "ghc";
+        version = "5.8.0.0";
+        src = fetchFromGitHub {
+          owner = "DanielG";
+          repo = "ghc-mod";
+          rev = "a96d820753030fb8de0944727ddc3fed191eab00";
+          sha256 = "1xdb4482i03lily4lj41y9wsadh2qwqmh8wrzzal966gqk4m25i4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghc";
+          sha256 = "02nc7a9khqpd4ca2snam8dq72m53q8x7v5awx56bjq31z6vcmav5";
+          name = "recipe";
+        };
+        packageRequires = [ haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ghc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghc-imported-from = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "ghc-imported-from";
+        ename = "ghc-imported-from";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "ghc-imported-from-el";
+          rev = "fcff08628a19f5d26151564659218cc677779b79";
+          sha256 = "1ywwyc2kz1c1s26c412nmzh55cinh84cfiazyyi3jsy5zzwhrbhi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghc-imported-from";
+          sha256 = "063kbymk4r1yrg5ks660d2byrnia6gs6nimjzrvqfi2ib1psc7jc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ghc-imported-from";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghq = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ghq";
+        ename = "ghq";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "rcoedo";
+          repo = "emacs-ghq";
+          rev = "aae4b8cb22fd6c24d2c9e3962c7e8e9dac6d9825";
+          sha256 = "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghq";
+          sha256 = "0prvywcgwdhx5pw66rv5kkfriahal2mli2ibam5np3z6bwcq4ngh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ghq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghub = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , graphql
+                        , let-alist
+                        , lib
+                        , melpaBuild
+                        , treepy }:
+      melpaBuild {
+        pname = "ghub";
+        ename = "ghub";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "ghub";
+          rev = "8b8ae5c8df048d7e1971d09f8b47361b532d2df0";
+          sha256 = "1lrg3f3nvz6x2sk5vmv0lnphg5j4r4mk6s4bvr09380d6kri906d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghub";
+          sha256 = "15kjyi8ialpr1zjqvw68w9pa5sigcwy2szq21yvcy295z7ylzy4i";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs graphql let-alist treepy ];
+        meta = {
+          homepage = "https://melpa.org/#/ghub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ghub-plus = callPackage ({ apiwrap
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ghub
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ghub-plus";
+        ename = "ghub+";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "ghub-plus";
+          rev = "b4a9662f5a6562f8d1dfdda2f009ec78a107c9a2";
+          sha256 = "0xi7xhdla64xbcfqi8x8yzqc6v6rrqxd4q8lcrv7sw08ap5ykfas";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ghub+";
+          sha256 = "0xx7nwmjx3f7z6z164x1lb9arbb3m3d16mpn92v66w572rhbr34n";
+          name = "recipe";
+        };
+        packageRequires = [ apiwrap emacs ghub ];
+        meta = {
+          homepage = "https://melpa.org/#/ghub+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gist = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , gh
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "gist";
+        ename = "gist";
+        version = "1.4.0";
+        src = fetchFromGitHub {
+          owner = "defunkt";
+          repo = "gist.el";
+          rev = "a03f142455e8b39f77fbd57ee1c1e44478c1f9e2";
+          sha256 = "1xisjaxr54zrxzxj8cp8f90kzphd5v3j56d14534fm5r1f5343vp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gist";
+          sha256 = "053fl8aw0ram9wsabzvmlm5w2klwd2pgcn2w9r1yqfs4xqja5sd3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs gh ];
+        meta = {
+          homepage = "https://melpa.org/#/gist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git = callPackage ({ dash
+                       , f
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , s }:
+      melpaBuild {
+        pname = "git";
+        ename = "git";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "git.el";
+          rev = "8b7f1477ef367b5b7de452589dd9a8ab30150d0a";
+          sha256 = "06ws3x5qa92drmn6rcp502jk2yil6q9gkzdmb2gww9gb2g695wl5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git";
+          sha256 = "1nd2yvfgin13m368gjn7xah99glspnam4g4fh348x4makxcaw8w5";
+          name = "recipe";
+        };
+        packageRequires = [ dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/git";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-annex = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "git-annex";
+        ename = "git-annex";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "git-annex-el";
+          rev = "7d41775a1709b5754a7779e9f64f15d336ea5c8c";
+          sha256 = "0fm62lm29wp1ljgyi6pqqkzwzps53cjjbj5j3y0c2013ry7va6c5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-annex";
+          sha256 = "0194y24vq1w6m2cjgqgx9dqp99cq8y9licyry2zxa5brbrsxi94l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/git-annex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-attr = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "git-attr";
+        ename = "git-attr";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "arnested";
+          repo = "emacs-git-attr";
+          rev = "3e43a0cf616b00a4bbd3c6b49fd2397f3103796f";
+          sha256 = "1alpr4gnkikwzljz0fdbrx5hs3zy5s2fz7qyxdz0nx9hv8zb5ir5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-attr";
+          sha256 = "084l3zdcgy1ka2wq1fz9d6ryhg38gxvr52njlv43gwibzvbqniyi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-attr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-auto-commit-mode = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "git-auto-commit-mode";
+        ename = "git-auto-commit-mode";
+        version = "4.4.0";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "git-auto-commit-mode";
+          rev = "075e5f9ded66c2035581a7b216896556cc586814";
+          sha256 = "0psmr7749nzxln4b500sl3vrf24x3qijp12ir0i5z4x25k72hrlh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-auto-commit-mode";
+          sha256 = "0nf4n63xnzcsizjk1yl8qvqj9wjdqy57kvn6r736xvsxwzd44xgl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/git-auto-commit-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-command = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , git-ps1-mode
+                               , lib
+                               , melpaBuild
+                               , term-run
+                               , with-editor }:
+      melpaBuild {
+        pname = "git-command";
+        ename = "git-command";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "git-command-el";
+          rev = "6cc5c17ca3cc1967b5402bb9a0538fb90933428d";
+          sha256 = "0a3ws852ypi34ash39srkwzkfish4n3c5lma10d9xzddjrwapgj9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-command";
+          sha256 = "1hsxak63y6648n0jkzl5ajxg45w84qq8vljvjh0bmwfrbb67kwbg";
+          name = "recipe";
+        };
+        packageRequires = [ git-ps1-mode term-run with-editor ];
+        meta = {
+          homepage = "https://melpa.org/#/git-command";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-commit = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , with-editor }:
+      melpaBuild {
+        pname = "git-commit";
+        ename = "git-commit";
+        version = "2.90.1";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit";
+          rev = "791901b2f1d26fa0a383147fe77948a9abc753da";
+          sha256 = "1kw94sdczswsyzn1zlk5s5aplpdv4qd7qcqc5zfxsmsfwm3jacl4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-commit";
+          sha256 = "1i7122fydqga68cilgzir80xfq77hnrw75zrvn52mjymfli6aza2";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs with-editor ];
+        meta = {
+          homepage = "https://melpa.org/#/git-commit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-commit-insert-issue = callPackage ({ bitbucket
+                                           , fetchFromGitLab
+                                           , fetchurl
+                                           , github-issues
+                                           , gitlab
+                                           , helm
+                                           , lib
+                                           , melpaBuild
+                                           , projectile
+                                           , s }:
+      melpaBuild {
+        pname = "git-commit-insert-issue";
+        ename = "git-commit-insert-issue";
+        version = "0.3.1";
+        src = fetchFromGitLab {
+          owner = "emacs-stuff";
+          repo = "git-commit-insert-issue";
+          rev = "5f08c17bf93b17915415d435ee41923d924fe20b";
+          sha256 = "11my5apnyhdqh0pmq9wdjd1iah415a5nw87sk586cb3vxnbn5qas";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-commit-insert-issue";
+          sha256 = "0xhlchr7dbm0hp4cjba3x1fdf7lnfc97id327i2fqgkdc4yn9fax";
+          name = "recipe";
+        };
+        packageRequires = [ bitbucket github-issues gitlab helm projectile s ];
+        meta = {
+          homepage = "https://melpa.org/#/git-commit-insert-issue";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-gutter = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "git-gutter";
+        ename = "git-gutter";
+        version = "0.90";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-git-gutter";
+          rev = "a786465bd527c13e32c73c02b95086560c1be878";
+          sha256 = "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-gutter";
+          sha256 = "19s344i95piixlzq4mjgmgjw7cy8af02z6hg89jjjdbxrfl4i2fg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-gutter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-gutter-fringe = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , fringe-helper
+                                     , git-gutter
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "git-gutter-fringe";
+        ename = "git-gutter-fringe";
+        version = "0.23";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-git-gutter-fringe";
+          rev = "dfc93d1064df154a809aab350942830408051da3";
+          sha256 = "18jpa5i99x0gqizs2qbqr8c1jlza8x9vpb6wg9zqd4np1p6q4lan";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-gutter-fringe";
+          sha256 = "10k07dzmkxsxzwc70vpv05rxjyps9494y6k7yhlv8d46x7xjyp0z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs fringe-helper git-gutter ];
+        meta = {
+          homepage = "https://melpa.org/#/git-gutter-fringe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-gutter-fringe-plus = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , fringe-helper
+                                          , git-gutter-plus
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "git-gutter-fringe-plus";
+        ename = "git-gutter-fringe+";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "git-gutter-fringe-plus";
+          rev = "ce9d594c0189e78d78df26a0c26bbcf886e373cd";
+          sha256 = "1c7ijbpa7xw831k55cdm2gl8r597rxnp22jcmqnfpwqkqmk48ln9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-gutter-fringe+";
+          sha256 = "1zkjb8p08cq2nqskn79rjszlhp9mrblplgamgi66yskz8qb1bgcc";
+          name = "recipe";
+        };
+        packageRequires = [ fringe-helper git-gutter-plus ];
+        meta = {
+          homepage = "https://melpa.org/#/git-gutter-fringe+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-gutter-plus = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , git-commit
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "git-gutter-plus";
+        ename = "git-gutter+";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "git-gutter-plus";
+          rev = "f8daebb6569bb116086d8653da3505382e03d940";
+          sha256 = "101hracd77mici778x3ixwrcicd6fqkcr9z76kapkr0dq5z42yjb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-gutter+";
+          sha256 = "1w78p5cz6kyl9kmndgvwnfrs80ha707s8952hycrihgfb6lixmp0";
+          name = "recipe";
+        };
+        packageRequires = [ git-commit ];
+        meta = {
+          homepage = "https://melpa.org/#/git-gutter+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-lens = callPackage ({ emacs
+                            , fetchFromGitLab
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "git-lens";
+        ename = "git-lens";
+        version = "0.7.0";
+        src = fetchFromGitLab {
+          owner = "pidu";
+          repo = "git-lens";
+          rev = "ea49e2e005af977a08331f8caa8f64d102b3b932";
+          sha256 = "0prx0xbnhhp46c09nnzpz07jgr3s5ngrw8zjksf48abr8acwywfv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-lens";
+          sha256 = "02a393b5y4vpmf9ixgyi3a4gbzk4146zql827ljlav3j0434ssw2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-lens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-link = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "git-link";
+        ename = "git-link";
+        version = "0.7.2";
+        src = fetchFromGitHub {
+          owner = "sshaw";
+          repo = "git-link";
+          rev = "976723dfdb9ae42e093a3cb32fc41841e94201e6";
+          sha256 = "0xsyzgwbsnf4xah860182pfirkfbixsf0nkfm05n1rvid7a6495d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-link";
+          sha256 = "1vqabnmdw8pxd84c15ghh1rnglwb5i4zxicvpkg1ci8xalayn1c7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-messenger = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , popup }:
+      melpaBuild {
+        pname = "git-messenger";
+        ename = "git-messenger";
+        version = "0.18";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-git-messenger";
+          rev = "9297464c010dd8a2d584ac8e012876856655a8b5";
+          sha256 = "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-messenger";
+          sha256 = "1rnqsv389why13cy6462vyq12qc2zk58p01m3hsazp1gpfw2hfzn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs popup ];
+        meta = {
+          homepage = "https://melpa.org/#/git-messenger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-ps1-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "git-ps1-mode";
+        ename = "git-ps1-mode";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "git-ps1-mode-el";
+          rev = "288e5c4d0ff20a4e1ac9e72b6af632f67f1d7525";
+          sha256 = "1hyq3il03cm6apfawps60r4km8r6pw0vphzba30smsqfk50z3ya3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-ps1-mode";
+          sha256 = "15gswi9s0m3hrsl1qqyjnjgbglsai95klbdp51h3pcq7zj22wkn6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/git-ps1-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-timemachine = callPackage ({ emacs
+                                   , fetchFromGitLab
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "git-timemachine";
+        ename = "git-timemachine";
+        version = "4.8";
+        src = fetchFromGitLab {
+          owner = "pidu";
+          repo = "git-timemachine";
+          rev = "4eb2ee6eabcc437bc3a1addc19ba38eed165743d";
+          sha256 = "1fdbyd3jhfif7i8zhprbld7jx210xpfrgp3gqn1g8hfzic0x8vxp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-timemachine";
+          sha256 = "06xdzic7j3d3pqgwxp1q6fs8sf3mi02a9phjvhk90kyvbr8h94ck";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/git-timemachine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    git-wip-timemachine = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , s }:
+      melpaBuild {
+        pname = "git-wip-timemachine";
+        ename = "git-wip-timemachine";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "itsjeyd";
+          repo = "git-wip-timemachine";
+          rev = "ae1600263608c7b84f6f136fca929875cd385bc1";
+          sha256 = "1y5h817lymsaqpj8wv3hha36ihspv4c17mwl020x91r82ijd1aym";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/git-wip-timemachine";
+          sha256 = "02fi51k6l23cgnwjp507ylkiwb8azmnhc0fips68nwn9dghzp6dw";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/git-wip-timemachine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitattributes-mode = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "gitattributes-mode";
+        ename = "gitattributes-mode";
+        version = "1.2.8";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "git-modes";
+          rev = "95ad581ae2aeba87b418ae9554eb326cdba9837d";
+          sha256 = "15irwyc0fmp0k5dag1n07xa8ka7n84drbrg2savslvb9m71011dg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitattributes-mode";
+          sha256 = "1gjs0pjh6ap0h54savamzx94lq6vqrg58jxqaq5n5qplrbg15a6x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gitattributes-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitconfig = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "gitconfig";
+        ename = "gitconfig";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "tonini";
+          repo = "gitconfig.el";
+          rev = "6c313a39e20702ddcebc12d146f69db1ce668901";
+          sha256 = "0j0w6ywhiapmx7dk20yw3zgf8803kmccnjsr664am3g85kbb644v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitconfig";
+          sha256 = "0lqm04nfhhhsdagrjnnagkpg7vpswd8lkd3l52lmpdh0fy16kgrf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gitconfig";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitconfig-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "gitconfig-mode";
+        ename = "gitconfig-mode";
+        version = "1.2.8";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "git-modes";
+          rev = "ae6e897c06d3ff609a65a3ac2500d21ccc888822";
+          sha256 = "111pm9wwq8p3wiqgap7gyi20say3daadlaxgq2v3mwxyax8fyx34";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitconfig-mode";
+          sha256 = "0hqky40kcgxdnghnf56gpi0xp7ik45ssia1x84v0mvfwqc50dgn1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gitconfig-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-browse-file = callPackage ({ cl-lib ? null
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "github-browse-file";
+        ename = "github-browse-file";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "osener";
+          repo = "github-browse-file";
+          rev = "fa5cc00a40869430fb44596792961a4cddf9c265";
+          sha256 = "07vgnmfn0kbg3h3vhf3xk443yi1b55761x881xlmw9sr9nraa578";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-browse-file";
+          sha256 = "03xvgxlw7wmfby898din7dfcg87ihahkhlav1n7qklw6qi7skjcr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/github-browse-file";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-clone = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , gh
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "github-clone";
+        ename = "github-clone";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "dgtized";
+          repo = "github-clone.el";
+          rev = "ab048cf49d9ebda73acae803bc44e731e629d540";
+          sha256 = "18c169nxvdl7iv18pyqx690ldg6pkc8njaxdg1cww6ykqzqnfxh7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-clone";
+          sha256 = "0ffrm4lmcj3d9kx3g2d5xbiih7hn4frs0prjrvcjq8acvsbc50q9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs gh magit ];
+        meta = {
+          homepage = "https://melpa.org/#/github-clone";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-elpa = callPackage ({ commander
+                               , fetchFromGitHub
+                               , fetchurl
+                               , git
+                               , lib
+                               , melpaBuild
+                               , package-build }:
+      melpaBuild {
+        pname = "github-elpa";
+        ename = "github-elpa";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "github-elpa";
+          rev = "649e66cd84e5af6f7fe13fd502e799d19aac0cda";
+          sha256 = "09q6v0vsk344chzwp6sp5cwyr7hkvzi2r1w6xxg1zwy7rzy4klfz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-elpa";
+          sha256 = "1981dnz49l5r4qsn49i4dhy6x4ln0haff6gl2zx0p5p0zfkzbi7x";
+          name = "recipe";
+        };
+        packageRequires = [ commander git package-build ];
+        meta = {
+          homepage = "https://melpa.org/#/github-elpa";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-notifier = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "github-notifier";
+        ename = "github-notifier";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "github-notifier.el";
+          rev = "f8d011ebef9f626a94a27b5576c8ed06e6ff8987";
+          sha256 = "0glkn36fs93y2n1583k8v958qfhl212hbdk3cpkq432hj08wzjnr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-notifier";
+          sha256 = "1jqc2wx1pvkca8syj97ds32404szm0wn12b7zpa98265sg3n64nw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/github-notifier";
+          license = lib.licenses.free;
+        };
+      }) {};
+    github-search = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , gh
+                                 , lib
+                                 , magit
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "github-search";
+        ename = "github-search";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "github-search";
+          rev = "1a5c1f8291f4d41e57367a8522699cb08eea8fc4";
+          sha256 = "1382hda3hgpx3c3d1kjzz8hs4l5hi3s7c485hsgihhr6xdd5wrgm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/github-search";
+          sha256 = "1pwrzbbwnq0il5494561fyvkr0vmm5jqlvpffgkk28c54vs7ms0b";
+          name = "recipe";
+        };
+        packageRequires = [ gh magit ];
+        meta = {
+          homepage = "https://melpa.org/#/github-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitignore-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "gitignore-mode";
+        ename = "gitignore-mode";
+        version = "1.2.8";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "git-modes";
+          rev = "ae6e897c06d3ff609a65a3ac2500d21ccc888822";
+          sha256 = "111pm9wwq8p3wiqgap7gyi20say3daadlaxgq2v3mwxyax8fyx34";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitignore-mode";
+          sha256 = "1i98ribmnxr4hwphd95f9hcfm5wfwgdbcxw3g0w17ws7z0ir61mn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gitignore-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitlab = callPackage ({ dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , pkg-info
+                          , request
+                          , s }:
+      melpaBuild {
+        pname = "gitlab";
+        ename = "gitlab";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "emacs-gitlab";
+          rev = "cffba49c1260421b8e388c65365b229970098e5c";
+          sha256 = "1wh6z7ni8nwqigvgz77zgqszx60s1k1chpzgzs1k3kfby7apxww1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitlab";
+          sha256 = "0vxsqfnipgapnd2ijvdnkspk68dlnki3pkpkzg2h6hyazmzrsqnq";
+          name = "recipe";
+        };
+        packageRequires = [ dash pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/gitlab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitlab-ci-mode = callPackage ({ emacs
+                                  , fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yaml-mode }:
+      melpaBuild {
+        pname = "gitlab-ci-mode";
+        ename = "gitlab-ci-mode";
+        version = "20180306.1";
+        src = fetchFromGitLab {
+          owner = "joewreschnig";
+          repo = "gitlab-ci-mode";
+          rev = "313431fa5b8b5ce4512909dfc15675bb99395f6f";
+          sha256 = "0zdj3f0a5fg4vwhbv851jv4fs1dqfz2w4jsxqbri2zhzdjxc97vn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitlab-ci-mode";
+          sha256 = "1jg6ihrgccrcwg30ysyqw9k7rmvfmsrp70skr2057hfamvccwn4f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/gitlab-ci-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitlab-ci-mode-flycheck = callPackage ({ emacs
+                                           , fetchFromGitLab
+                                           , fetchurl
+                                           , flycheck
+                                           , gitlab-ci-mode
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "gitlab-ci-mode-flycheck";
+        ename = "gitlab-ci-mode-flycheck";
+        version = "20180304.1";
+        src = fetchFromGitLab {
+          owner = "joewreschnig";
+          repo = "gitlab-ci-mode-flycheck";
+          rev = "388fd05f3ea88ed3ebafb09868fc021f6ecc7625";
+          sha256 = "0idpg4265rfx5i0i8cgfs6w3gncc766mbg81ldxqjhzvq3n28z39";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitlab-ci-mode-flycheck";
+          sha256 = "19ixd60yynsvmaj7mkppp6k73793x794vrnhx3hh6n7dap1rsjdh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs flycheck gitlab-ci-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/gitlab-ci-mode-flycheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitpatch = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "gitpatch";
+        ename = "gitpatch";
+        version = "0.5.1";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "gitpatch";
+          rev = "94d40a2ee2b7cd7b209546ea02568079176b0034";
+          sha256 = "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitpatch";
+          sha256 = "0qaswkk06z24v40nkjkv7f6gfv0dlsjd6wchkn0ppqw95883vhv1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gitpatch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gitter = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , let-alist
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "gitter";
+        ename = "gitter";
+        version = "1";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "gitter.el";
+          rev = "bd2ba457109dd5d3e4b419e3ef5cbd3b5c9498d6";
+          sha256 = "1fzl40bwdfbcq55p3kvbzjqr5w0703imzgrmqcf4f6jhav127zk6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gitter";
+          sha256 = "1ad5abqgfh6x2fcqbbdvgbg8xin69j0h93z7bav1hs3jla7mgwnv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/gitter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gl-conf-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "gl-conf-mode";
+        ename = "gl-conf-mode";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "llloret";
+          repo = "gitolite-emacs";
+          rev = "1a53e548277eb9c669bbeda4bee9be32be7a82ec";
+          sha256 = "059m30vvp71y630pcam6qfv5bxc35ygj26wcg28p56pccxxyj3q9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gl-conf-mode";
+          sha256 = "0lf8xmq309aqyf16ymqlr8gj2qawlsqagbdndj0kgj72dnnw4cfm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gl-conf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    glab = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "glab";
+        ename = "glab";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "ghub";
+          rev = "48e91c0e1b5dea431b5edad018d2a2bdfa49eca2";
+          sha256 = "19h2ikn7xxqnk4k27i9czg2yjc3rn9xj0fx4hn43bmib9km4gbkv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/glab";
+          sha256 = "0kyr1znf82qi15r6iha6dbyhmfzghx969hd364rsvkly8ry8pk5m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/glab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gmail-message-mode = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , ham-mode
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "gmail-message-mode";
+        ename = "gmail-message-mode";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "gmail-mode";
+          rev = "ec36672a9dc93c09ebe2f77597b498d11883d008";
+          sha256 = "0xcdd3abcrqr7nabdmmh0kgfar64hhgnrhsiwg3q201cymhnv49p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gmail-message-mode";
+          sha256 = "0py0i7b893ihb8l1hmk3jfl0xil450znadcd18q7svr3zl2m0gkk";
+          name = "recipe";
+        };
+        packageRequires = [ ham-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/gmail-message-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gmail2bbdb = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "gmail2bbdb";
+        ename = "gmail2bbdb";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "gmail2bbdb";
+          rev = "181ef6039227bb30a02041d8cfdc435551a7d948";
+          sha256 = "0205ldrw1i7czq44pqdl374cl0rjp5w5zadrayw8brl7mmw92byn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gmail2bbdb";
+          sha256 = "03jhrk4vpjim3ybzjxy7s9r1cgjysj9vlc4criz5k0w7vqz3r28j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gmail2bbdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gmpl-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "gmpl-mode";
+        ename = "gmpl-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "gmpl-mode";
+          rev = "25d20f9d24594e85cb6f80d35d7c73b7e82cbc71";
+          sha256 = "0x0a94bfkk72kqyr5m6arx450qsg1axmp5r0c4r9m84z8j08r4v1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gmpl-mode";
+          sha256 = "1f60xim8h85jmqpvgfg402ff8mjd66gla8fa0cwi7l18ijnjblpz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gmpl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gntp = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "gntp";
+        ename = "gntp";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "tekai";
+          repo = "gntp.el";
+          rev = "767571135e2c0985944017dc59b0be79af222ef5";
+          sha256 = "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gntp";
+          sha256 = "1ywj3p082g54dcpy8q4jnkqfr12npikx8yz14r0njxdlr0janh4f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gntp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnuplot = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "gnuplot";
+        ename = "gnuplot";
+        version = "0.7.0";
+        src = fetchFromGitHub {
+          owner = "bruceravel";
+          repo = "gnuplot-mode";
+          rev = "aefd4f671485fbcea42511ce79a7a60e5e0110a3";
+          sha256 = "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnuplot";
+          sha256 = "06c5gqf02fkra8c52xck1lqvf4yg45zfibyf9zqmnbwk7p2jxrds";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gnuplot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnus-desktop-notify = callPackage ({ fetchFromGitLab
+                                       , fetchurl
+                                       , gnus ? null
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "gnus-desktop-notify";
+        ename = "gnus-desktop-notify";
+        version = "1.4";
+        src = fetchFromGitLab {
+          owner = "wavexx";
+          repo = "gnus-desktop-notify.el";
+          rev = "210c70f0021ee78e724f1d8e00ca96e1e99928ca";
+          sha256 = "08j8x0iaz5s9q0b68d8h3153w0z6vak5l8qgw3dd1drz5p9xnvyw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnus-desktop-notify";
+          sha256 = "1cfcmmq0ywgp41g0rf8s5fabh3yqbv9iacxi7v74kqh59bqdnz3x";
+          name = "recipe";
+        };
+        packageRequires = [ gnus ];
+        meta = {
+          homepage = "https://melpa.org/#/gnus-desktop-notify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gnus-x-gm-raw = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , log4e
+                                 , melpaBuild
+                                 , yaxception }:
+      melpaBuild {
+        pname = "gnus-x-gm-raw";
+        ename = "gnus-x-gm-raw";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "gnus-x-gm-raw";
+          rev = "c2c8c5e94ac94f4c40e023452119c088ac59eac9";
+          sha256 = "0gf418ri69yzi9cbxdyna9kxjsniyw72xix2r94m439k1axpwa3f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gnus-x-gm-raw";
+          sha256 = "1a5iccghzqmcndql2bppvr48535sf6jbvc83iypr1031z1b5k4wg";
+          name = "recipe";
+        };
+        packageRequires = [ log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/gnus-x-gm-raw";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-add-tags = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "go-add-tags";
+        ename = "go-add-tags";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-go-add-tags";
+          rev = "54879945e46a0884c5f93d7fd6c866a9cdf401ac";
+          sha256 = "1gr65skrd41pk46ilfsbxfdng4br6h9c6blf1q1wx6i9ylhs0ak5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-add-tags";
+          sha256 = "0nvas44rsvqzk2ay5bhzkbrnzql13vnxq9pk4lp4mvp86dda9qim";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/go-add-tags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-autocomplete = callPackage ({ auto-complete
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "go-autocomplete";
+        ename = "go-autocomplete";
+        version = "20150303";
+        src = fetchFromGitHub {
+          owner = "mdempsky";
+          repo = "gocode";
+          rev = "b6fffd0527b4ab22df0170d7243317ab2773622e";
+          sha256 = "1kdicb69dlm06r3skfk8bxygyjr5cvymal8fvbd8zzzfdzgnj7lg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-autocomplete";
+          sha256 = "15ns1zzw6kblcbih7dmjvk1p0f6f3p2wpgx4gnd9ax0fcj65ghwi";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete ];
+        meta = {
+          homepage = "https://melpa.org/#/go-autocomplete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-direx = callPackage ({ cl-lib ? null
+                            , direx
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "go-direx";
+        ename = "go-direx";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-go-direx";
+          rev = "aecb9fef4d56d04d230d37c75c260c8392b5ad9f";
+          sha256 = "05yc0nylg3457an5j7yp3x23157j0hbi21qhcpgsa01144mwnwln";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-direx";
+          sha256 = "0dq5d7fsld4hww8fl68c18qp6fl3781dqqwd98cg68bihw2wwni7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib direx ];
+        meta = {
+          homepage = "https://melpa.org/#/go-direx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-dlv = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , go-mode
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "go-dlv";
+        ename = "go-dlv";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "benma";
+          repo = "go-dlv.el";
+          rev = "45a9e8a047c9995eb7c802268d96b3e527569f41";
+          sha256 = "0pph99fl3bwws9vr1r8fs411frd04rfdhl87fy2a75cqcpxlhsj4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-dlv";
+          sha256 = "0lb5v9pmd6m8nvk4c9gcda5dmshrf5812gg1arq5p2g0nzg32mm8";
+          name = "recipe";
+        };
+        packageRequires = [ go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-dlv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-eldoc = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , go-mode
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "go-eldoc";
+        ename = "go-eldoc";
+        version = "0.30";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-go-eldoc";
+          rev = "f1ad302ec4073354801e613293be2f55ba770618";
+          sha256 = "0hkwhmgjyn5jxrd0k1nakrvy4d7cz7sxb1nw4hb1rqmz4yd14c8i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-eldoc";
+          sha256 = "1k115dirfqxdnb6hdzlw41xdy2dxp38g3vq5wlvslqggha7gzhkk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-eldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-errcheck = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "go-errcheck";
+        ename = "go-errcheck";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "dominikh";
+          repo = "go-errcheck.el";
+          rev = "1b0cd6af048a8b2074ace14ab51fb6c987beb430";
+          sha256 = "1fm6xd3vsi8mqh0idddjpfxlsmz1ljmjppw3qkxl1vr0qz3598k3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-errcheck";
+          sha256 = "11a75h32cd5h5xjv30x83k60s49k9fhgis31358q46y2gbvqp5bs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/go-errcheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-fill-struct = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "go-fill-struct";
+        ename = "go-fill-struct";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "s-kostyaev";
+          repo = "go-fill-struct";
+          rev = "814ccc8c5e50e6be4190259439c450afe7fb6ef4";
+          sha256 = "0zkdff390b00y0g1gfm2pgniq7allda55544cw7ccsvdaqayyhjc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-fill-struct";
+          sha256 = "19xxqb836saxigvwdqf4xv0y9zrl7csv97x0facgyjyiqmwhx3x7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/go-fill-struct";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-guru = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , go-mode
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "go-guru";
+        ename = "go-guru";
+        version = "1.5.0";
+        src = fetchFromGitHub {
+          owner = "dominikh";
+          repo = "go-mode.el";
+          rev = "d13feb239b13b910ec4db19356f34c3801299407";
+          sha256 = "1a1c1b7isa9smazfnr8w2wzxxjzz3xcr6l3dvmq41g752wfakb3i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-guru";
+          sha256 = "01f0gz65z8d0iv8k49xl2sp6q4qnsvwhd4g8fb2irp7iclb0xmvk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-guru";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-imenu = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "go-imenu";
+        ename = "go-imenu";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "go-imenu.el";
+          rev = "fc1566fbe396fc8c94f7de99d9c7191b47cd48d9";
+          sha256 = "0qygxqrzx009cd59b452ampakr9rwmj1skl8pic9an4wjz742qlg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-imenu";
+          sha256 = "0s8rc7rkqlywrhnm2h8yygn87jhjc492wmsvnr1rxl62wf5cijms";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/go-imenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-impl = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , go-mode
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "go-impl";
+        ename = "go-impl";
+        version = "0.14";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-go-impl";
+          rev = "69f0d0ef05771487e15abec500cd06befd171abf";
+          sha256 = "1rmik6g3l9q1bqavmqx1fhcadz4pwswgfnkbaxl6c5b6g2sl26iq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-impl";
+          sha256 = "09frwpwc080rfpwkb63yv47dyj741lrpyrp65sq2bn4sf03xw0cx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-impl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "go-mode";
+        ename = "go-mode";
+        version = "1.5.0";
+        src = fetchFromGitHub {
+          owner = "dominikh";
+          repo = "go-mode.el";
+          rev = "35f6826e435c3004dabf134d0f2ae2f31ea7b6a2";
+          sha256 = "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-mode";
+          sha256 = "0ghqm4lbkfla79plqiyb1lzf5kbz0380h9vf8px15zal00xrv0bl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/go-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-playground = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , go-mode
+                                 , gotest
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "go-playground";
+        ename = "go-playground";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "grafov";
+          repo = "go-playground";
+          rev = "eebb1fec2177bc85b746b948beac873a77bea4a2";
+          sha256 = "0ixpcms4f0q8327jyp2k48x03vjxwmzdsq76vg4j0kmjs9dfad1v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-playground";
+          sha256 = "1rabwc80qwkafq833m6a199zfiwwmf0hha89721gc7i0myk9pac6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode gotest ];
+        meta = {
+          homepage = "https://melpa.org/#/go-playground";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-rename = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , go-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "go-rename";
+        ename = "go-rename";
+        version = "1.5.0";
+        src = fetchFromGitHub {
+          owner = "dominikh";
+          repo = "go-mode.el";
+          rev = "d13feb239b13b910ec4db19356f34c3801299407";
+          sha256 = "1a1c1b7isa9smazfnr8w2wzxxjzz3xcr6l3dvmq41g752wfakb3i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-rename";
+          sha256 = "1cd2nfgwnqzylbry11ahahdip8w66w5hnrndrs65ip10s08w2xki";
+          name = "recipe";
+        };
+        packageRequires = [ go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-rename";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-scratch = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , go-mode
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "go-scratch";
+        ename = "go-scratch";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "shosti";
+          repo = "go-scratch.el";
+          rev = "3f68cbcce04f59eb8e83af109164731ec0454be0";
+          sha256 = "1a6vg2vwgnafb61pwrd837fwlq5gs80wawbzjsnykawnmcaag8pm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-scratch";
+          sha256 = "11ahvmxbh67wa39cymymxmcpkq0kcn5jz0rrvazjy2p1hx3x1ma5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    go-tag = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , go-mode
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "go-tag";
+        ename = "go-tag";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "emacs-go-tag";
+          rev = "8dbcb7d42dccac046c7beb31bdf79bb09a0fef40";
+          sha256 = "1l20az4lhgbrh96sk6bpvp3w4bh29653fms4bimmiaqmhn2n14y2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/go-tag";
+          sha256 = "18ff41i0gr708fl4gzzspf9cc09nv4wy21wsn609yhwlh7w0vs1f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs go-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/go-tag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    godoctor = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "godoctor";
+        ename = "godoctor";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "microamp";
+          repo = "godoctor.el";
+          rev = "4b45ff3d0572f0e84056e4c3ba91fcc178199859";
+          sha256 = "12gga1ghc54r6f2adyaq30hm2yxspvgg54zd4k82c3d6cj51qwci";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/godoctor";
+          sha256 = "0k734hry9npsr6zhsplcvmcjqw6jdf79pv4k9dw0xvd598hkpazz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/godoctor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    golden-ratio = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "golden-ratio";
+        ename = "golden-ratio";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "roman";
+          repo = "golden-ratio.el";
+          rev = "79b1743fc1a2f3462445e9ddd0a869f30065bb6d";
+          sha256 = "00igv83hiyx7x3pf2grmjpd379brn33fm85f05k104mkkrhg99nm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/golden-ratio";
+          sha256 = "15fkrv0sgpzmnw2h4fp2gb83d8s42khkfq1h76l241njjayk1f81";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/golden-ratio";
+          license = lib.licenses.free;
+        };
+      }) {};
+    google-maps = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "google-maps";
+        ename = "google-maps";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "jd";
+          repo = "google-maps.el";
+          rev = "90151ab59e693243ca8da660ce7b9ce361ea5126";
+          sha256 = "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/google-maps";
+          sha256 = "0a0wqs3cnlpar2dzdi6h14isw78vgqr2r6psmrzbdl00s4fcyxwx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/google-maps";
+          license = lib.licenses.free;
+        };
+      }) {};
+    google-this = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "google-this";
+        ename = "google-this";
+        version = "1.12";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "emacs-google-this";
+          rev = "8a2e3ca5da6a8c89bfe99a21486c6c7db125dc84";
+          sha256 = "1dbra309w8awmi0g0pp7r2dm9nwrj2j9lpl7md8wa89rnzazwahl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/google-this";
+          sha256 = "0hg9y1b03aiamyn3mam3hyxmxy21wygxrnrww91zcbwlzgp4dd2c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/google-this";
+          license = lib.licenses.free;
+        };
+      }) {};
+    google-translate = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "google-translate";
+        ename = "google-translate";
+        version = "0.11.15";
+        src = fetchFromGitHub {
+          owner = "atykhonov";
+          repo = "google-translate";
+          rev = "24ee8e91b7ada9415e2035ee54e3342994fcfe04";
+          sha256 = "0mrvfrspz610cgc7p76yprvkxaffbc3hygqgqyam77k3a61mlydp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/google-translate";
+          sha256 = "1crgzdd32mk6hrawdypg496dwh51wzwfb5wqw4a2j5l8y958xf47";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/google-translate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gorepl-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "gorepl-mode";
+        ename = "gorepl-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "manute";
+          repo = "gorepl-mode";
+          rev = "17e025951f5964a0542a4b353ddddbc734c01eed";
+          sha256 = "1abb78xxsggawl43hspl0cr0f7i1b3jd9r6xl1nl5jg97i4byg0b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gorepl-mode";
+          sha256 = "0xcjjh9hf3pv5jgv089c6bb00s215fc9qwn72fav1xbm5f49nkaq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gorepl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gotest = callPackage ({ emacs
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , go-mode
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "gotest";
+        ename = "gotest";
+        version = "0.14.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "gotest.el";
+          rev = "8a5ef7363f83edb3b77c5e23876f13dd8c23b2b9";
+          sha256 = "1ksi37kmy9mnrjr5lf9f0ga5nvi3r2kc85g6yvdfj0mbsjm1pnp7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gotest";
+          sha256 = "1kan3gykhci33jgg67jjiiz7rqlz5mpxp8sh6mb0n6kpfmgb4ly9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f go-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/gotest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gotham-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "gotham-theme";
+        ename = "gotham-theme";
+        version = "1.1.8";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "gotham-theme";
+          rev = "417d61978d139cb5d089c5365fc8d3166d76d3ac";
+          sha256 = "0rc40cfj2mby1q7bk1pp1fxdi72nh9ip80spjdm1csvjjc4dbkwr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gotham-theme";
+          sha256 = "0jars6rvf7hkyf71vq06mqki1r840i1dvv43dissqjg5i4lr79cl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gotham-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    goto-chg = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "goto-chg";
+        ename = "goto-chg";
+        version = "1.7.2";
+        src = fetchFromGitHub {
+          owner = "emacs-evil";
+          repo = "goto-chg";
+          rev = "e5b38e4e1378f6ea48fa9e8439f49c2998654aa4";
+          sha256 = "1fxdvgdafavc4sad5i8g0wvpdqzlgzmvfi07yrah1c5vwkrslbvj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/goto-chg";
+          sha256 = "1yd4jq4zql4av9nr1sdk4nsnnk54c3brgjhpczndy1ipiaxlnydy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/goto-chg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    goto-gem = callPackage ({ fetchFromGitLab
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "goto-gem";
+        ename = "goto-gem";
+        version = "1.2";
+        src = fetchFromGitLab {
+          owner = "pidu";
+          repo = "goto-gem";
+          rev = "6f5bd405c096ef879fed1298c09d0daa0bae5dac";
+          sha256 = "188q7jr1y872as3w32m8lf6vwl2by1ibgdk6zk7dhpcjwd0ik7x7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/goto-gem";
+          sha256 = "0i79z1isdbnqmz5rlqjjys68l27nl90m1gzks4f9d6dsgfryhgwx";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/goto-gem";
+          license = lib.licenses.free;
+        };
+      }) {};
+    goto-last-change = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "goto-last-change";
+        ename = "goto-last-change";
+        version = "1.2.1";
+        src = fetchFromGitHub {
+          owner = "camdez";
+          repo = "goto-last-change.el";
+          rev = "58b0928bc255b47aad318cd183a5dce8f62199cc";
+          sha256 = "1f0zlvva7d7iza1v79yjp0bm7vd011q4cy14g1saryll32z115z5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/goto-last-change";
+          sha256 = "1yl9p95ls04bkmf4d6az72pycp27bv7q7wxxzvj8sj97bgwvwajx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/goto-last-change";
+          license = lib.licenses.free;
+        };
+      }) {};
+    govc = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , json-mode
+                        , lib
+                        , magit-popup
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "govc";
+        ename = "govc";
+        version = "0.19.0";
+        src = fetchFromGitHub {
+          owner = "vmware";
+          repo = "govmomi";
+          rev = "e3a01f9611c32b2362366434bcd671516e78955d";
+          sha256 = "0cicd4m8ll7y1n0c97drmvmqwsqaspwpzc6nfp73f887m8ff1xis";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/govc";
+          sha256 = "1ivgaziv25wlzg6y4zh8x7mv97pnyhi7p8jpvgh5fg5lnqpzhl4v";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs json-mode magit-popup s ];
+        meta = {
+          homepage = "https://melpa.org/#/govc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gpastel = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "gpastel";
+        ename = "gpastel";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "gpastel";
+          rev = "21b7d79530134d6a47eeb252b684f884c769d291";
+          sha256 = "1s1gnkpz6byf6by8r1bl9vq3slmsdavjb2ybp2zgic48favz1qm2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gpastel";
+          sha256 = "0mjy4n26s89b481dby018l80glgfwfaacihmd7vhh2c75ns671a6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gpastel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grab-mac-link = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "grab-mac-link";
+        ename = "grab-mac-link";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "grab-mac-link.el";
+          rev = "8bf05a69758fd10a4303c5c458cd91a49ab8b1b2";
+          sha256 = "12x47k3mm5hvhgn7fmfi7bqfa3naz8w1sx6fl3rmnbzvldb89i1k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grab-mac-link";
+          sha256 = "1a4wyvx1mlgnd45nn99lwy3vaiwhi1nrphfln86pb6z939dxakj3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grab-mac-link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grab-x-link = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "grab-x-link";
+        ename = "grab-x-link";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "grab-x-link";
+          rev = "d19f0c0da0ddc55005a4c1cdc2b8c5de8bea1e8c";
+          sha256 = "1l9jg2w8ym169b5dhg3k5vksbmicg4n1a55x7ddjysf8n887cpid";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grab-x-link";
+          sha256 = "1kni49n1v716w4hjfm49mk25jshfc6idpby0k58qvngbfqk3kzy5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grab-x-link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gradle-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "gradle-mode";
+        ename = "gradle-mode";
+        version = "0.5.5";
+        src = fetchFromGitHub {
+          owner = "jacobono";
+          repo = "emacs-gradle-mode";
+          rev = "579de06674551919cddac9cfe42129f4fb0155c9";
+          sha256 = "0k86lrb55d701nj6pvlw3kjp1dcd3lzfya0hv6q56c529y69d782";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gradle-mode";
+          sha256 = "0lx9qi93wmiy9pxjxqp68scbcb4bx88b6jiqk3y8jg5cajizh24g";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/gradle-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grails = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "grails";
+        ename = "grails";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "lifeisfoo";
+          repo = "emacs-grails";
+          rev = "fa638abe5c37f3f8af4fcd32f212453185ce50b1";
+          sha256 = "1npsjniazaq20vz3kvwr8p30ivc6x24r9a16rfcwhr5wjx3nn91b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grails";
+          sha256 = "177y6xv35d2dhc3pdx5qhpywlmlqgfnjpzfm9yxc8l6q2rgs8irw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grails";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grails-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "grails-mode";
+        ename = "grails-mode";
+        version = "2.0";
+        src = fetchFromGitHub {
+          owner = "Groovy-Emacs-Modes";
+          repo = "groovy-emacs-modes";
+          rev = "50801257d376fd7383ddf9c19ff567183c24ad0b";
+          sha256 = "0wy8iw12b9bs7xza8jjnjvggr59rgbsgn1kk2g0pj0nppvfdrvjm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grails-mode";
+          sha256 = "1zdlmdkwyaj2zns3xwmqpil83j7857aj2070kvx8xza66dxcnlm4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grails-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grails-projectile-mode = callPackage ({ cl-lib ? null
+                                          , emacs
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild
+                                          , projectile }:
+      melpaBuild {
+        pname = "grails-projectile-mode";
+        ename = "grails-projectile-mode";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "yveszoundi";
+          repo = "grails-projectile-mode";
+          rev = "8efca50ce92b556fe9d467b157d7aec635bcc017";
+          sha256 = "0xnj0wp0na53l0y8fiaah50ij4r80j8a29hbjbcicska21p5w1s1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grails-projectile-mode";
+          sha256 = "0dy8v2mila7ccvb7j5jlfkhfjsjfk3bm3rcy84m0rgbqjai67amn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/grails-projectile-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grandshell-theme = callPackage ({ fetchgit
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "grandshell-theme";
+        ename = "grandshell-theme";
+        version = "1.3";
+        src = fetchgit {
+          url = "https://framagit.org/steckerhalter/grandshell-theme.git";
+          rev = "8e18bfcfb66db8591ce742308a40b6341e75d335";
+          sha256 = "13y3plbia4vli9c3mv01nf520zh7ilzywpqj0nsl7x6pzw9fx0np";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grandshell-theme";
+          sha256 = "1r0r0r0g116f4jp3rip8mjqqgdam4h5dr5qvdglr9xpirfcw6wq3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grandshell-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    graphene = callPackage ({ company
+                            , dash
+                            , exec-path-from-shell
+                            , fetchFromGitHub
+                            , fetchurl
+                            , flycheck
+                            , graphene-meta-theme
+                            , ido-completing-read-plus
+                            , lib
+                            , melpaBuild
+                            , ppd-sr-speedbar
+                            , smartparens
+                            , smex
+                            , sr-speedbar
+                            , web-mode }:
+      melpaBuild {
+        pname = "graphene";
+        ename = "graphene";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "graphene";
+          rev = "cc8477fcfb7771ea4e5bbaf3c01f9e679234c1c1";
+          sha256 = "0j0igcmfl61c4pakqmyxpwr4kjar9i81vkl84rw19phc7k9497nb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/graphene";
+          sha256 = "1wz3rvd8b7gx5d0k7yi4dd69ax5bybcm10vdc7xp4yn296lmyl9k";
+          name = "recipe";
+        };
+        packageRequires = [
+          company
+          dash
+          exec-path-from-shell
+          flycheck
+          graphene-meta-theme
+          ido-completing-read-plus
+          ppd-sr-speedbar
+          smartparens
+          smex
+          sr-speedbar
+          web-mode
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/graphene";
+          license = lib.licenses.free;
+        };
+      }) {};
+    graphene-meta-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "graphene-meta-theme";
+        ename = "graphene-meta-theme";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "graphene-meta-theme";
+          rev = "62cc73fee31f1bd9474027b83a249feee050271e";
+          sha256 = "1ydl6dlg5z4infq8j09izwgs6n97yza6nbq5rs1xfv00zd9gr63c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/graphene-meta-theme";
+          sha256 = "1cqdr93lccdpxkzgap3r3qc92dh8vqgdlnxvqkw7lrcbs31fvf3q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/graphene-meta-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    graphql = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "graphql";
+        ename = "graphql";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "graphql.el";
+          rev = "672dd9ebd7e67d8089388b0c484cd650e76565f3";
+          sha256 = "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/graphql";
+          sha256 = "139fng2psn535ymqa7c6hm1r7ja1gs5mdvb487jj6fh0bl9wq8la";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/graphql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    graphviz-dot-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "graphviz-dot-mode";
+        ename = "graphviz-dot-mode";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "ppareit";
+          repo = "graphviz-dot-mode";
+          rev = "7301cc276206b6995d265bcb9eb308bb83c760be";
+          sha256 = "1zk664ilyz14p11csmqgzs73gx08hy32h3pnyymzqkavmgb6h3s0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/graphviz-dot-mode";
+          sha256 = "04rkynsrsk6w4sxn1pc0b9b6pij1p7yraywbrk7qvv05fv69kri2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/graphviz-dot-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grapnel = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "grapnel";
+        ename = "grapnel";
+        version = "0.5.3";
+        src = fetchFromGitHub {
+          owner = "leathekd";
+          repo = "grapnel";
+          rev = "7387234eb3f0285a490fddb1e06a4bf029719fb7";
+          sha256 = "0xcj1kqzgxifhrhpl9j2nfpnkd6213ix5z7f97269v3inpzaiyf5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grapnel";
+          sha256 = "019cdx1wdx8sc2ibqwgp1akgckzxxvrayyp2sv806gha0kn6yf6r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grapnel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grass-mode = callPackage ({ cl-lib ? null
+                              , dash
+                              , fetchhg
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "grass-mode";
+        version = "0.1";
+        src = fetchhg {
+          url = "https://bitbucket.com/tws/grass-mode.el";
+          rev = "1ae8eae88117";
+          sha256 = "1sl3d5759fjm98pb50ykz2c05czb2298ipccwj2qz2hdzq63hfv8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/grass-mode";
+          sha256 = "1lq6bk4bwgcy4ra3d9rlca3fk87ydg7xnnqcqjg0pw4m9xnr3f7v";
+          name = "grass-mode";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/grass-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    green-is-the-new-black-theme = callPackage ({ fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild }:
+      melpaBuild {
+        pname = "green-is-the-new-black-theme";
+        ename = "green-is-the-new-black-theme";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "fredcamps";
+          repo = "green-is-the-new-black-emacs";
+          rev = "8a03687a2b8b55c5dc7f099086019278d505d8d8";
+          sha256 = "07j5sv8dskqxpbzr5f58n75cziyqm9v01c3f7wmwfs8jl7h5nc4m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/green-is-the-new-black-theme";
+          sha256 = "03q0vj409icmawffy2kd9yl04r453q80cy1p9y4i3xk368z0362g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/green-is-the-new-black-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    green-screen-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "green-screen-theme";
+        ename = "green-screen-theme";
+        version = "1.0.26";
+        src = fetchFromGitHub {
+          owner = "rbanffy";
+          repo = "green-screen-emacs";
+          rev = "774e8f6c033786406267f71ec07319d906a30b75";
+          sha256 = "0f12lqgfi1vlhq8p5ia04vlmvmyb4f40q7dm2nbh5y8r6k89hisg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/green-screen-theme";
+          sha256 = "0a45xcl74kp3v39bl169sq46mqxiwvvis6jzwcy6yrl2vqqi4mab";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/green-screen-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grep-context = callPackage ({ cl-lib ? null
+                                , dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "grep-context";
+        ename = "grep-context";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "mkcms";
+          repo = "grep-context";
+          rev = "4c63d0f2654dee1e249c2054d118d674a757bd45";
+          sha256 = "0n2bc9q6bvbfpaqivp3ajy9ad1wr7hfdd98qhnspsap67p73kfn4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grep-context";
+          sha256 = "175s9asbnk2wlgpzc5izcd3vlfvdj064n38myy9qf4awn12c2y1g";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/grep-context";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grin = callPackage ({ fetchhg
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "grin";
+        version = "1.0";
+        src = fetchhg {
+          url = "https://bitbucket.com/dariusp686/emacs-grin";
+          rev = "f541aa22da52";
+          sha256 = "0rqpgc50z86j4waijfm6kw4zjmzqfii6nnvyix4rkd4y3ryny1x2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/grin";
+          sha256 = "0rak710fp9c7wx39qn4dc9d0xfjr5w7hwklxh99v1x1ihkla9378";
+          name = "grin";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grizzl = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "grizzl";
+        ename = "grizzl";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "grizzl";
+          repo = "grizzl";
+          rev = "c775de1c34d1e5a374e2f40c1ae2396b4b003fe7";
+          sha256 = "1bq73kcx744xnlm2yvccrzlbyx91c492sg7blx2a9z643v3gg1zs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grizzl";
+          sha256 = "0354xskqzxc38l14zxqs31hadwh27v9lyx67y3hnd94d8abr0qcb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/grizzl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    groovy-imports = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , pcache
+                                  , s }:
+      melpaBuild {
+        pname = "groovy-imports";
+        ename = "groovy-imports";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "mbezjak";
+          repo = "emacs-groovy-imports";
+          rev = "e56d7dda617555ec6205644d32ffddf2e1fa43d9";
+          sha256 = "060zxl2y4p50g5fwgplgx07h5akfplp49rkv5cx09rqlcyzqhqwa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/groovy-imports";
+          sha256 = "09yjkwsm192lgala1pvxw47id4j7362sl3j1hn9ald2m8m3ddyfs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pcache s ];
+        meta = {
+          homepage = "https://melpa.org/#/groovy-imports";
+          license = lib.licenses.free;
+        };
+      }) {};
+    groovy-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "groovy-mode";
+        ename = "groovy-mode";
+        version = "2.0";
+        src = fetchFromGitHub {
+          owner = "Groovy-Emacs-Modes";
+          repo = "groovy-emacs-modes";
+          rev = "d7b362e6186d263ec3eefc141dbb5b27a8773f24";
+          sha256 = "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/groovy-mode";
+          sha256 = "1pxw7rdn56klmr6kw21lhzh7zhp338gyf54ypsml64ibzr1x9kal";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/groovy-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gruber-darker-theme = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "gruber-darker-theme";
+        ename = "gruber-darker-theme";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "rexim";
+          repo = "gruber-darker-theme";
+          rev = "0c08d77e615aceb9e6e1ca66b1fbde275200cfe4";
+          sha256 = "14h0rcd3nkw3pmx8jwip20p6rzl9qdkip5g52gfjjbqfvaffsrkd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gruber-darker-theme";
+          sha256 = "0vn4msixb77xj6p5mlfchjyyjhzah0lcmp0z82s8849zd194fxqi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gruber-darker-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    grunt = callPackage ({ ansi-color ? null
+                         , dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "grunt";
+        ename = "grunt";
+        version = "1.3.2";
+        src = fetchFromGitHub {
+          owner = "gempesaw";
+          repo = "grunt.el";
+          rev = "e27dbb6b3de9b36c7fb28f69aa06b4b2ea32d4b9";
+          sha256 = "0zpmhjwj64s72iv3dgsy07pfh20f25ngsy3pszmlrfkxk0926d8k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/grunt";
+          sha256 = "1qdzqcrff9x97kyy0d4j636d5i751qja10liw8i0lf4lk6n0lywz";
+          name = "recipe";
+        };
+        packageRequires = [ ansi-color dash ];
+        meta = {
+          homepage = "https://melpa.org/#/grunt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gruvbox-theme = callPackage ({ autothemer
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "gruvbox-theme";
+        ename = "gruvbox-theme";
+        version = "1.26.0";
+        src = fetchFromGitHub {
+          owner = "greduan";
+          repo = "emacs-theme-gruvbox";
+          rev = "796999e5db2a0e43ad64c062c1bec3c966d095bc";
+          sha256 = "0qj5k0c1592ikrb7gcibqwf8hhj6lq4cw7zrb3kmpk4zakzy7a2w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gruvbox-theme";
+          sha256 = "12z89fjfqcp9rx2f2x9wcffgxxv3kjn1dabyk0cjf286hgvmgz88";
+          name = "recipe";
+        };
+        packageRequires = [ autothemer ];
+        meta = {
+          homepage = "https://melpa.org/#/gruvbox-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gscholar-bibtex = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "gscholar-bibtex";
+        ename = "gscholar-bibtex";
+        version = "0.3.3";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "gscholar-bibtex";
+          rev = "ba4ce159e385d695d8560e8b06b3cbe48424861c";
+          sha256 = "0idnfhk17avp0r4706grjqqkz0xl98gs0bx7wrkvwym3y2gadlz2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gscholar-bibtex";
+          sha256 = "0d41gr9amf9vdn9pl9lamhp2swqllxslv9r3wsgzqvjl7zayd1az";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/gscholar-bibtex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    guide-key = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , popwin }:
+      melpaBuild {
+        pname = "guide-key";
+        ename = "guide-key";
+        version = "1.2.5";
+        src = fetchFromGitHub {
+          owner = "kai2nenobu";
+          repo = "guide-key";
+          rev = "626f3aacfe4561eddc46617570426246b88e9cab";
+          sha256 = "1bmcvn8a7g9ahpv2fww673hx9pa7nnrj9kpljq65azf61vq2an2g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/guide-key";
+          sha256 = "0zjrdvppcg8b2k6hfdj45rswc1ks9xgimcr2yvgpc8prrwk1yjsf";
+          name = "recipe";
+        };
+        packageRequires = [ popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/guide-key";
+          license = lib.licenses.free;
+        };
+      }) {};
+    guide-key-tip = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , guide-key
+                                 , lib
+                                 , melpaBuild
+                                 , pos-tip }:
+      melpaBuild {
+        pname = "guide-key-tip";
+        ename = "guide-key-tip";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "guide-key-tip";
+          rev = "e08b2585228529aeaae5e0ae0948f898e83a6200";
+          sha256 = "040mcfhj2gggp8w1pgip7rxb1bnb23rxlm02wl6x1qv5i0q7g5x3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/guide-key-tip";
+          sha256 = "0h2vkkbxq361dkn6irm1v19qj7bkhxcjljiksd5wwlq5zsq6bd06";
+          name = "recipe";
+        };
+        packageRequires = [ guide-key pos-tip ];
+        meta = {
+          homepage = "https://melpa.org/#/guide-key-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    guix = callPackage ({ bui
+                        , dash
+                        , edit-indirect
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , geiser
+                        , lib
+                        , magit-popup
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "guix";
+        ename = "guix";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "guix.el";
+          rev = "6ac7b47fa1ce4dbb8b897de7c73ff6802b15e52e";
+          sha256 = "1wha6dnl17m683sjgwgh9apxvxzgg1f4k80sv6fl78w8q441f4bn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/guix";
+          sha256 = "0h4jwc4h2jv09c6rngb614fc39qfy04rmvqrn1l54hn28s6q7sk9";
+          name = "recipe";
+        };
+        packageRequires = [ bui dash edit-indirect emacs geiser magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/guix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    guru-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "guru-mode";
+        ename = "guru-mode";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "guru-mode";
+          rev = "62a9a0025249f2f8866b94683c4114c39f48e1fa";
+          sha256 = "1y46qd9cgkfb0wp2cvksjncyp77hd2jnr4bm4zafqirc3qhbysx0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/guru-mode";
+          sha256 = "0j25nxs3ndybq1ik36qyqdprmhav4ba8ny7v2z61s23id8hz3xjs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/guru-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    gxref = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "gxref";
+        ename = "gxref";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "dedi";
+          repo = "gxref";
+          rev = "15723a9d910d7dd9ea18cab0336332cf988aeceb";
+          sha256 = "1l5d1kh2dy3w42i8c3z63c7mzarxixxiby2g7ay2i809yxj10y1n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/gxref";
+          sha256 = "06qlfjclfx00m8pr7lk6baim3vjk5i0m75i1p4aihp2vflvgjaby";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/gxref";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hacker-typer = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "hacker-typer";
+        ename = "hacker-typer";
+        version = "1.0.6";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "emacs-hacker-typer";
+          rev = "d5a23714a4ccc5071580622f278597d5973f40bd";
+          sha256 = "13wp7cg9d9ij44inxxyk1knczglxrbfaq50wyhc4x5zfhz5yw7wx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hacker-typer";
+          sha256 = "0vf18hylhszvplam6c4yynr53zc3n816p9k36gywm6awwblfpyfb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hacker-typer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hackernews = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , json ? null
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "hackernews";
+        ename = "hackernews";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "clarete";
+          repo = "hackernews.el";
+          rev = "22a15dc57dd6aab7793c0f9c2b72e161e0bee00c";
+          sha256 = "0bpbiadv4bf3lllsm0w1jcw8nc7c9zl97m972hbxb1dgv90gvs5b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hackernews";
+          sha256 = "1x1jf5gkhmpiby5rmy0sziywh6c1f1n0p4f6dlz6ifbwns7har6a";
+          name = "recipe";
+        };
+        packageRequires = [ json ];
+        meta = {
+          homepage = "https://melpa.org/#/hackernews";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ham-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , html-to-markdown
+                            , lib
+                            , markdown-mode
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ham-mode";
+        ename = "ham-mode";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "ham-mode";
+          rev = "3a141986a21c2aa6eefb428983352abb8b7907d2";
+          sha256 = "0d3xmagl18pas19zbpg27j0lmdiry23df48z4vkjsrcllqg25v5g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ham-mode";
+          sha256 = "000qrdby7d6zmp5066vs4gjlc9ik0ybrgcwzcbfgxb16w1g9xpmz";
+          name = "recipe";
+        };
+        packageRequires = [ html-to-markdown markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ham-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hamburger-menu = callPackage ({ emacs
+                                  , fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "hamburger-menu";
+        ename = "hamburger-menu";
+        version = "1.0.5";
+        src = fetchFromGitLab {
+          owner = "iain";
+          repo = "hamburger-menu-mode";
+          rev = "fd37f013c2f2619a88d3ed5311a9d1308cc82614";
+          sha256 = "196ydb57h4mjagjaiflvb20my561i6mdc6v6694ibdik2yns2inm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hamburger-menu";
+          sha256 = "0ws9729i51arjqwpiywcpb7y3c5sm3c9wrq8q0k0m9hpq8h11wdb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hamburger-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haml-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , ruby-mode ? null }:
+      melpaBuild {
+        pname = "haml-mode";
+        ename = "haml-mode";
+        version = "3.1.9";
+        src = fetchFromGitHub {
+          owner = "nex3";
+          repo = "haml-mode";
+          rev = "5e0baf7b795b9e41ac03b55f8feff6b51027c43b";
+          sha256 = "0fmr7ji8x5ki9fzybpbg3xbhzws6n7ffk7d0zf9jl1x3jd8d6988";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haml-mode";
+          sha256 = "0ih0m7zr6kgn6zd45zbp1jgs1ydc5i5gmq6l080wma83v5w1436f";
+          name = "recipe";
+        };
+        packageRequires = [ ruby-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/haml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hardcore-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "hardcore-mode";
+        ename = "hardcore-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "hardcore-mode.el";
+          rev = "5ab75594a7a0ca236e2ac87882ee439ff6155d96";
+          sha256 = "08l6p9n2ggg4filad1k663qc2gjgfbia4knnnif4sw7h92yb31jl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hardcore-mode";
+          sha256 = "1bgi1acpw4z7i03d0i8mrd2hpjn6hyvkdsk0ks9q380yp9mqmiwd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hardcore-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hardhat = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , ignoramus
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "hardhat";
+        ename = "hardhat";
+        version = "0.4.6";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "hardhat";
+          rev = "9038a49ab55cd4c502cf7f07ed0d1b9b6bc3626e";
+          sha256 = "0j9z46j777y3ljpai5czdlwl07f0irp4fsk4677n11ndyqm1amb5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hardhat";
+          sha256 = "16pdbpm647ag9cadmdm75nwwyzrqsd9y1b4zgkl3pg669mi5vl5z";
+          name = "recipe";
+        };
+        packageRequires = [ ignoramus ];
+        meta = {
+          homepage = "https://melpa.org/#/hardhat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    harvest = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , hydra
+                           , lib
+                           , melpaBuild
+                           , s
+                           , swiper }:
+      melpaBuild {
+        pname = "harvest";
+        ename = "harvest";
+        version = "0.3.8";
+        src = fetchFromGitHub {
+          owner = "kostajh";
+          repo = "harvest.el";
+          rev = "69041907bdca68d3ab6802e08ec698c3448f28a1";
+          sha256 = "0rqxi668wra1mfzq4fqscjghis5gqnwpazgidgix13brybaxydx4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/harvest";
+          sha256 = "1r6brld6iq03wsr1b3jhdkxwrcxa6g6fwa1jiy1kgjsr9dq1m51c";
+          name = "recipe";
+        };
+        packageRequires = [ hydra s swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/harvest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-emacs = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-emacs";
+        ename = "haskell-emacs";
+        version = "4.0.3";
+        src = fetchFromGitHub {
+          owner = "knupfer";
+          repo = "haskell-emacs";
+          rev = "a2c6a079175904689eed7c6c200754bfa85d1ed9";
+          sha256 = "1xpaqcj33vyzs5yv2w4dahw8a2vb6zcb3z7y2aqc5jdg3fx9ypam";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-emacs";
+          sha256 = "1wkh7qws35c32hha0p9rpjz5pls2844920nh919lvp2wmq9l6jd6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-emacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-emacs-base = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , haskell-emacs
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-emacs-base";
+        ename = "haskell-emacs-base";
+        version = "4.0.3";
+        src = fetchFromGitHub {
+          owner = "knupfer";
+          repo = "haskell-emacs";
+          rev = "7f91f65254902b8ff04fdb679bc569b2f6a51637";
+          sha256 = "17i9l6wgrvmp31ca4xrax31f7bjnn0vn2figycxhfaq9f6vxgkkn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-emacs-base";
+          sha256 = "1fwkds6qyhbxxdgxfzmgd7dlcxr08ynrrg5jdp9r7f924pd536vb";
+          name = "recipe";
+        };
+        packageRequires = [ haskell-emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-emacs-base";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-emacs-text = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , haskell-emacs
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-emacs-text";
+        ename = "haskell-emacs-text";
+        version = "4.0.3";
+        src = fetchFromGitHub {
+          owner = "knupfer";
+          repo = "haskell-emacs";
+          rev = "cc240612740fc3fd6e3c3d8cdfe486a89954f5d1";
+          sha256 = "09g6b1ad7qi9k58ymgmssgapwapxcwf30qhmfl2w8sl045ngzlkk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-emacs-text";
+          sha256 = "1j18fhhra6lv32xrq8jc6l8i56fgn68da81wymcimpmpbp0hl5fy";
+          name = "recipe";
+        };
+        packageRequires = [ haskell-emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-emacs-text";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-mode";
+        ename = "haskell-mode";
+        version = "16.1";
+        src = fetchFromGitHub {
+          owner = "haskell";
+          repo = "haskell-mode";
+          rev = "d2ea5239bf02f3917a78a5c2dcbc5b6f6dd1b359";
+          sha256 = "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-mode";
+          sha256 = "0wijvcpfdbl17iwzy47vf8brkj2djarfr8y28rw0wqvbs381zzwp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-snippets = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "haskell-snippets";
+        ename = "haskell-snippets";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "haskell";
+          repo = "haskell-snippets";
+          rev = "bcf12cf33a67ddc2f023a55072859e637fe4fa25";
+          sha256 = "0b3d7rvqvvcsp51aqfhl0zg9zg8j0p6vlfvga6jp9xc7626vh6f6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-snippets";
+          sha256 = "10bvv7q694fahcpm83v8lpqihg1gvfzrp1hdzwiffxydfvdbalh2";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haskell-tab-indent = callPackage ({ fetchgit
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "haskell-tab-indent";
+        ename = "haskell-tab-indent";
+        version = "0.1.0";
+        src = fetchgit {
+          url = "https://git.spwhitton.name/haskell-tab-indent";
+          rev = "38d50e9bb8f64ba13ffbd9bcff32db820403a0fc";
+          sha256 = "00bjmww8pc9jr4ssqcv7k0migbxl1c8qs2l1khf25fxvgd1nyy02";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haskell-tab-indent";
+          sha256 = "0vdfmy56w5yi202nbd28v1bzj97v1wxnfnb5z3dh9687p2abgnr7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/haskell-tab-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hasky-extensions = callPackage ({ avy-menu
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "hasky-extensions";
+        ename = "hasky-extensions";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "hasky-mode";
+          repo = "hasky-extensions";
+          rev = "51cff958785c1d26f76decd2e2b95bd15ab48096";
+          sha256 = "0bqcg18apfj8ibzklw7yip35s1wkjfb8z3qyxn43vyylkynvrj37";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hasky-extensions";
+          sha256 = "0ymigba1d0qkrk3ccd3cx754safzmx1v5d13976571rszgmkvr15";
+          name = "recipe";
+        };
+        packageRequires = [ avy-menu emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hasky-extensions";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hasky-stack = callPackage ({ emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , magit-popup
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "hasky-stack";
+        ename = "hasky-stack";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "hasky-mode";
+          repo = "hasky-stack";
+          rev = "3e17ce07dd6b0207474e4ff14ad7b8c467382947";
+          sha256 = "0cdsdlgapf9xxj928hlb7ch9x8rznayrvj7n8j2vzfa0kfmg7qwf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hasky-stack";
+          sha256 = "08ds0v5p829s47lbhibswnbn1aqfnwf6xx7p5bc5062wxdvqahw8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/hasky-stack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    haxor-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "haxor-mode";
+        ename = "haxor-mode";
+        version = "0.7.0";
+        src = fetchFromGitHub {
+          owner = "krzysztof-magosa";
+          repo = "haxor-mode";
+          rev = "6fa25a8e6b6a59481bc0354c2fe1e0ed53cbdc91";
+          sha256 = "0pdfvqbz4wmjl15wi3k4h7myij8v63vmyiq8g9fai18f7ad2klp1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/haxor-mode";
+          sha256 = "0ss0kkwjyc7z7vcb89qr02p70c6m2jarr34mxmdv6ipwil58jj1s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/haxor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hcl-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "hcl-mode";
+        ename = "hcl-mode";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-hcl-mode";
+          rev = "6a6daf37522188a2f2fcdebc60949fc3bdabbc06";
+          sha256 = "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hcl-mode";
+          sha256 = "1wrs9kj6ahsdnbn3fdaqhclq1ia6w4x726hjvl6pyk01sb0spnin";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hcl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    heaven-and-hell = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "heaven-and-hell";
+        ename = "heaven-and-hell";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "valignatev";
+          repo = "heaven-and-hell";
+          rev = "c2af013e0def7d3234e0eb2fb66a0a2374d5a7f2";
+          sha256 = "08n7sr0l4di1c4zgfa17i3x43451sd60z70pjka8rmznys766lsg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/heaven-and-hell";
+          sha256 = "19r0p78r9c78ly8awkgc33xa5b75zkkrb5kwvxbagirxdgkjv74r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/heaven-and-hell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm = callPackage ({ async
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , helm-core
+                        , lib
+                        , melpaBuild
+                        , popup }:
+      melpaBuild {
+        pname = "helm";
+        ename = "helm";
+        version = "3.0";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm";
+          rev = "757263f9332d2d338ac3619f50547ef2f9d2bd9e";
+          sha256 = "0qahykw30vwhkd579s3gs2hya0zw1jpmcw3n39vjg7za573xpgzb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm";
+          sha256 = "03la01d0syikjgsjq0krlp3p894djwfxqfmd2srddwks7ish6xjf";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs helm-core popup ];
+        meta = {
+          homepage = "https://melpa.org/#/helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ack = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ack";
+        ename = "helm-ack";
+        version = "0.13";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-ack";
+          rev = "5982f3cb6ec9f460ebbe06ec0ce7b3590bca3118";
+          sha256 = "0ps86zpyywibjwcm9drmamla979ad61fyqr8d6bv71fr56k9ak21";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ack";
+          sha256 = "1a8sc5gd2g57dl9g18wyydfmihy74yniwhjr27h7vxylnf2g3pni";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ag = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ag";
+        ename = "helm-ag";
+        version = "0.58";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-ag";
+          rev = "39ed137823665fca2fa5b215f7c3e8701173f7b7";
+          sha256 = "0a6yls52pkqsaj6s5nsi70kzpvssdvb87bfnp8gp26q2y3syx4ni";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ag";
+          sha256 = "050qh5xqh8lwkgmz3jxm8gql5nd7bq8sp9q6mzm2z7367qy4qqyf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-aws = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-aws";
+        ename = "helm-aws";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "istib";
+          repo = "helm-aws";
+          rev = "172a4a3427d31c999e27e9ee06aa8e3822364a8c";
+          sha256 = "015p5sszd54x81qm96gx6xwjkvbi4f3j9i2nhcvlkk75s95w1ijv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-aws";
+          sha256 = "0sjgdjpznjxsf6nlv2ah45fw17j8j5apdphd1fp43rjv1lskkgc5";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-aws";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-backup = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "helm-backup";
+        ename = "helm-backup";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "antham";
+          repo = "helm-backup";
+          rev = "45a86a41ac44f90d4db2c0e9339233ee7f0be0b8";
+          sha256 = "0pr4qd6mi9g91lndqnk4w26lq3w8pxcgxragxj3209dgwqsxps95";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-backup";
+          sha256 = "182jbm36yzayxi9y3vhpyn25ivrgay37sncqvah35vbw52lnjcn3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-backup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bbdb = callPackage ({ bbdb
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-bbdb";
+        ename = "helm-bbdb";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-bbdb";
+          rev = "20513422102fea4c08a0433d728a7783bb4968c8";
+          sha256 = "0ns537fimv774n1bq0r8k4qwdpapbw96linqyhx9mxp23zkhlg80";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bbdb";
+          sha256 = "1wlacbfs23shvyaq616r1p84h8321zz1k5nzir5qg8nr6lssi8vp";
+          name = "recipe";
+        };
+        packageRequires = [ bbdb helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bbdb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bibtex = callPackage ({ biblio
+                               , cl-lib ? null
+                               , dash
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , parsebib
+                               , s }:
+      melpaBuild {
+        pname = "helm-bibtex";
+        ename = "helm-bibtex";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "tmalsburg";
+          repo = "helm-bibtex";
+          rev = "d6a98ac6f28d2a6a05e203115211c98333d40aca";
+          sha256 = "0arhy051945lxjqg77b275ny9nsv60cqj0qfpmvd8xkc07lqfn23";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bibtex";
+          sha256 = "037pqgyyb2grg88yfxx1r8yp4lrgz2fyzz9fbbp34l8s6vk3cp4z";
+          name = "recipe";
+        };
+        packageRequires = [ biblio cl-lib dash f helm parsebib s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bibtex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bm = callPackage ({ bm
+                           , cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "helm-bm";
+        ename = "helm-bm";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-bm";
+          rev = "d66341f5646c23178d4d8bffb6cfebe3fb73f1d7";
+          sha256 = "011k37p4vnzm1x8vyairllanvjfknskl20bdfv0glf64xgbdpfil";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bm";
+          sha256 = "1dnlcvn0zv4qv4ii4j0h9r8w6vhi3l0c5aa768kblh5r2rf4bjjh";
+          name = "recipe";
+        };
+        packageRequires = [ bm cl-lib helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-books = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-books";
+        ename = "helm-books";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "grugrut";
+          repo = "helm-books";
+          rev = "b4c57d2aed596faad41a753dccbcd0a31a717b76";
+          sha256 = "1yr5prp9xvd73balxbn4yn52zah2advq1186ba5aanj436pal0fh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-books";
+          sha256 = "0xh53vji7nsnpi0b38cjh97x26ryxk61mj7bd6m63qwh8dyhs3yx";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-books";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-bundle-show = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , helm
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "helm-bundle-show";
+        ename = "helm-bundle-show";
+        version = "1.1.5";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "emacs-helm-bundle-show";
+          rev = "b34523aa8a7f82ed9a1bf3643c35b65866a7877a";
+          sha256 = "1j9xmlidipsfbz0kfxwz0c6hi9xsbk36h6i30wqdd0ls0zw5xm30";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-bundle-show";
+          sha256 = "1af5g233kjf04m2fryizk51a1s2mcmj36zip5nyb8skcsfl4riq7";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-bundle-show";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-c-yasnippet = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , helm-core
+                                    , lib
+                                    , melpaBuild
+                                    , yasnippet }:
+      melpaBuild {
+        pname = "helm-c-yasnippet";
+        ename = "helm-c-yasnippet";
+        version = "0.6.7";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "helm-c-yasnippet";
+          rev = "1fa400233ba8e990066c47cca1e2af64bd192d4d";
+          sha256 = "108584bmadgidqkdfvf333zkyb5v9f84pasz5h01fkh57ks8by9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-c-yasnippet";
+          sha256 = "0jwj4giv6lxb3h7vqqb2alkwq5kp0shy2nraik33956p4l8dfs90";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm-core yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-c-yasnippet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-cider = callPackage ({ cider
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm-core
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-cider";
+        ename = "helm-cider";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "helm-cider";
+          rev = "9a948b834dd31b3f60d4701d6dd0ecfab0adbb72";
+          sha256 = "0wssd9jv6xighjhfh3p8if1anz3rcrjr71a4j063v6gyknb7fv27";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-cider";
+          sha256 = "0ykhrvh6mix55sv4j8q6614sibksdlwaks736maamqwl3wk6826x";
+          name = "recipe";
+        };
+        packageRequires = [ cider emacs helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-cider";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-circe = callPackage ({ circe
+                              , cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-circe";
+        ename = "helm-circe";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "lesharris";
+          repo = "helm-circe";
+          rev = "9091651d9fdd8d49d8ff6f9dcf3a2ae416c9f15a";
+          sha256 = "1gwg299s8ps0q97iw6p515gwn73rjk1icgl3j7cj1s143njjg122";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-circe";
+          sha256 = "07559rg55b0glxiw787xmvxrhms14jz21bvprc5n24b4j827g9xw";
+          name = "recipe";
+        };
+        packageRequires = [ circe cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-circe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-codesearch = callPackage ({ cl-lib ? null
+                                   , dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , helm
+                                   , lib
+                                   , melpaBuild
+                                   , s }:
+      melpaBuild {
+        pname = "helm-codesearch";
+        ename = "helm-codesearch";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "youngker";
+          repo = "helm-codesearch.el";
+          rev = "e80e76e492f626659b88dbe362b11aa0a3b0a116";
+          sha256 = "16njr3xcvpzg4x6qq2pwk80pca9pxhc6vjvfy3dzy4hi9nxryrs6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-codesearch";
+          sha256 = "1v21zwcyx73bc1lcfk60v8xim31bwdk4p06g9i4qag3cijdlli9q";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-codesearch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-commandlinefu = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , json ? null
+                                      , let-alist
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "helm-commandlinefu";
+        ename = "helm-commandlinefu";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "helm-commandlinefu";
+          rev = "83839c0250ff3a35d3052eab3111450e0caa5fe1";
+          sha256 = "0fxxwxxpqvhzc3wgskaarxagf4si83kk5k5j67kzklgrlklhf1xn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-commandlinefu";
+          sha256 = "150nqib0sr4n35vdj1xrxcja8gkv3chzhdbgkjxqgkz2yq10xxnd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm json let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-commandlinefu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-company = callPackage ({ company
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-company";
+        ename = "helm-company";
+        version = "0.2.3";
+        src = fetchFromGitHub {
+          owner = "Sodel-the-Vociferous";
+          repo = "helm-company";
+          rev = "5b5c15745d92aff7280698c7619994e2481098b4";
+          sha256 = "1r5b24hamq8d5n418xpf80jn37s357hbc9rd5siw6gwkjn2jykx7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-company";
+          sha256 = "1wl1mzm1h9ig351y77yascdv4z0cka1gayi8cnnlayk763is7q34";
+          name = "recipe";
+        };
+        packageRequires = [ company helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-company";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-core = callPackage ({ async
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-core";
+        ename = "helm-core";
+        version = "3.0";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm";
+          rev = "757263f9332d2d338ac3619f50547ef2f9d2bd9e";
+          sha256 = "0qahykw30vwhkd579s3gs2hya0zw1jpmcw3n39vjg7za573xpgzb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-core";
+          sha256 = "1dyv8rv1728vwsp6vfdq954sp878jbp3srbfxl9gsgjnv1l6vjda";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-core";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-cscope = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , xcscope }:
+      melpaBuild {
+        pname = "helm-cscope";
+        ename = "helm-cscope";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "alpha22jp";
+          repo = "helm-cscope.el";
+          rev = "b82db54071bd2d1c77db2e648f8b4e61b1abe288";
+          sha256 = "0xnqkc4z22m41v5lgf87dd8xc4gmf932zbnbdhf9xic1gal1779c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-cscope";
+          sha256 = "13a76wc1ia4c0v701dxqc9ycbb43d5k09m5pfsvs8mccisfzk9y4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm xcscope ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-cscope";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-dash = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-dash";
+        ename = "helm-dash";
+        version = "1.3.0";
+        src = fetchFromGitHub {
+          owner = "areina";
+          repo = "helm-dash";
+          rev = "9a230125a7a11f5fa90aa048b61abd95eb78ddfe";
+          sha256 = "0xs3nq86qmvkiazn5w564npdgbcfjlnpw2f48g2jd43yznblz7ly";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-dash";
+          sha256 = "032hwwq4r72grzls5ww7bjyj39c82wkcgf3k7myfcrqd3lgblrwb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-dash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-descbinds = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "helm-descbinds";
+        ename = "helm-descbinds";
+        version = "1.13";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-descbinds";
+          rev = "6d5ddc11e6cef86548bd6b3e0d840112d602659c";
+          sha256 = "03b79wdcp4im0fwadzhyc8jxl2wqvg8gmpflnznrwz3l71bi4sqq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-descbinds";
+          sha256 = "1890ss4pimjxskzzllf57fg07xbs8zqcrp6r8r6x989llrfvd1h7";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-descbinds";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-directory = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "helm-directory";
+        ename = "helm-directory";
+        version = "0.6.4";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-helm-directory";
+          rev = "caa013b820b5263bf1c6446debfea0766dae8ab8";
+          sha256 = "15ljhz7cik7qzbh69l28c9mcvls5zgk42lp5bm9kl9fg6m6aasvq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-directory";
+          sha256 = "01c5a08v6rd867kdyrfwdvj05z4srzj9g6xy4scirlbwbff0q76n";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-directory";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-dired-history = callPackage ({ cl-lib ? null
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "helm-dired-history";
+        ename = "helm-dired-history";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "helm-dired-history";
+          rev = "281523f9fc46cf00fafd670ba5cd16552a607212";
+          sha256 = "1bqavj5ljr350dckyf39i9plkb0rbhyd17ka94n2g6daapgpq0x6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-dired-history";
+          sha256 = "0qciafa42rbw0dxgkp5mbbwbrcziswmwdj2lszm0px1bip4x7yb8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-dired-history";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-emms = callPackage ({ cl-lib ? null
+                             , emacs
+                             , emms
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-emms";
+        ename = "helm-emms";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-emms";
+          rev = "d7da090af0f63b92c5d735197992c732adbeef3d";
+          sha256 = "0fs0i33di3liyx1f55xpg5nmac1b750n37g3pkxw2mil7fx7dz32";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-emms";
+          sha256 = "1vq7cxnacmhyczsa4s5h1nnzc08m66harfnxsqxyrdsnggv9hbf5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs emms helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-emms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-etags-plus = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , helm
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "helm-etags-plus";
+        ename = "helm-etags-plus";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "helm-etags-plus";
+          rev = "647e267af51caff9f49d8aa00657b7e08cc3bce4";
+          sha256 = "1j8z7bgm5kjp1hrjrmnr3k0frajvwcmpv1mjvw0pxhqf3gyvzf3n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-etags-plus";
+          sha256 = "0lw21yp1q6iggzlb1dks3p6qdfppnqf50f3rijjs18lisp4izp99";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-etags-plus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ext = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ext";
+        ename = "helm-ext";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "helm-ext";
+          rev = "c8ac56918b200239b3f73a4e6a031deecc2c5646";
+          sha256 = "08c6n4zr6s3h7y0kk6g51xqs6hs29hkfmn55jfjw6hpimbk3vi1j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ext";
+          sha256 = "0la2i0b7nialib4wq26cxcak8nq1jzavsw8f0mvbavsb7hfwkpgw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-firefox = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-firefox";
+        ename = "helm-firefox";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-firefox";
+          rev = "294850c4ce16ae25f2214f863cee0118add60974";
+          sha256 = "1kaa58xlnr82qsvdzn8sxk5kkd2lxqnvfciyw7kfi2fdrl6nr4pf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-firefox";
+          sha256 = "0677nj0zsk11vvp3q3xl9nk8dhz3ki9yl3kfb57wgnmprp109wgs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-firefox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-flycheck = callPackage ({ dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , flycheck
+                                 , helm-core
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-flycheck";
+        ename = "helm-flycheck";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-flycheck";
+          rev = "a15e62a6432c165c4f2c17388686873383400d7d";
+          sha256 = "0q9yksx66ry4x3vkcyyj437il225s2ad5h6vkxpyz04p62g3ysnx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-flycheck";
+          sha256 = "038f9294qc0jnkzrrjxm97hyhwa4sca3wdsjbaya50cf0g4cmk7b";
+          name = "recipe";
+        };
+        packageRequires = [ dash flycheck helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-flycheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ghc = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ghc
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ghc";
+        ename = "helm-ghc";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "helm-ghc";
+          rev = "3947bfd6b5a05074e776f0b51f414f1a5a724888";
+          sha256 = "0j8mbn33rv4jky9zh1hgw8da8wgs2760057mx8rv5x6i1qcm3bqd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ghc";
+          sha256 = "0bv0sfpya1jyay9p80lv0w6h9kdp96r8lnp6nj15w660p1b51c0d";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ghc helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ghc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ghq = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ghq";
+        ename = "helm-ghq";
+        version = "1.7.0";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "emacs-helm-ghq";
+          rev = "21ccdb537a3be3d9351e01c6365df8e804e8bc56";
+          sha256 = "1v3h6dszj223yvlkrjj6r4jwiyaj3iswbcl5d4ffwgaf72cxm4gn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ghq";
+          sha256 = "14f3cbsj7jhlhrp561d8pasllnx1cmi7jk6v2fja7ghzj76dnvq6";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ghq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-git-grep = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , helm-core
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-git-grep";
+        ename = "helm-git-grep";
+        version = "0.10.1";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-git-grep";
+          rev = "744cea07dba6e6a5effbdba83f1b786c78fd86d3";
+          sha256 = "172m7wbgx9qnv9n1slbzpd9j24p6blddik49z6bq3zdg1vlnf3dv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-git-grep";
+          sha256 = "1ww6a4q78w5hnwikq7y93ic2b7x070c27r946lh6p8cz1k4b8vqi";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-git-grep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-github-stars = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "helm-github-stars";
+        ename = "helm-github-stars";
+        version = "1.3.5";
+        src = fetchFromGitHub {
+          owner = "Sliim";
+          repo = "helm-github-stars";
+          rev = "809cf88e2984b121348b1046e1d3890f1fd580b4";
+          sha256 = "09ywdsymh479syq9ps15bgyqf5gr94z8wn4jvlcxqz5aq5fil9vq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-github-stars";
+          sha256 = "1r4mc4v71171sq9rbbhm346s92fb7jnvvl91y2q52jqmrnzzl9zy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-github-stars";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-gitlab = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , gitlab
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "helm-gitlab";
+        ename = "helm-gitlab";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "emacs-gitlab";
+          rev = "cffba49c1260421b8e388c65365b229970098e5c";
+          sha256 = "1wh6z7ni8nwqigvgz77zgqszx60s1k1chpzgzs1k3kfby7apxww1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-gitlab";
+          sha256 = "010ihx3yddhb8j3jqcssc49qnf3i7xlz0s380mpgrdxgz6yahsmd";
+          name = "recipe";
+        };
+        packageRequires = [ dash gitlab helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-gitlab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-go-package = callPackage ({ deferred
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , go-mode
+                                   , helm-core
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "helm-go-package";
+        ename = "helm-go-package";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-go-package";
+          rev = "7db5ea9ce97502152a6bb1fe38f8fabb5a49abd2";
+          sha256 = "08llqkswilzsigh28w9qjbqi5g5z0ylfabz5sqia7c18gjshvz0h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-go-package";
+          sha256 = "102yhn1xg83l67yaq3brn35a03fkvqqhad10rq0h39n4i1slq3z6";
+          name = "recipe";
+        };
+        packageRequires = [ deferred emacs go-mode helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-go-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-gtags = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-gtags";
+        ename = "helm-gtags";
+        version = "1.5.6";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-gtags";
+          rev = "dbe0d2d9d08058d469ad2d729bd782515b5b3b62";
+          sha256 = "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-gtags";
+          sha256 = "1kbpfqhhbxmp3f70h91x2fws9mhx87zx4nzjjl29lpl93vf8xckl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-gtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-hatena-bookmark = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , helm
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "helm-hatena-bookmark";
+        ename = "helm-hatena-bookmark";
+        version = "2.3.0";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "emacs-helm-hatena-bookmark";
+          rev = "274e18182fe20c11e96009387a8e38e8cd2a1d7e";
+          sha256 = "13s36gyb37asgrc9qca9d196i5bnxqy4acmda5cas08b48wp4lxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-hatena-bookmark";
+          sha256 = "14091zrp4vj7752rb5s3pkyvrrsdl7iaj3q9ys8rjmbsjwcv30id";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-hatena-bookmark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-hayoo = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , haskell-mode
+                              , helm
+                              , json ? null
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-hayoo";
+        ename = "helm-hayoo";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "markus1189";
+          repo = "helm-hayoo";
+          rev = "f49a77e8b8704bb7eb0d1097eefb8010a6617664";
+          sha256 = "1imfzz6cfdq7fgrcgrafy2nln929mgh31vybk9frm7a9jpamqdxp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-hayoo";
+          sha256 = "06nbilb6vfa8959ss5d06zbcwqxlbyi3cb5jnbdag0jnpxvv1hqb";
+          name = "recipe";
+        };
+        packageRequires = [ haskell-mode helm json ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-hayoo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ispell = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm-core
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ispell";
+        ename = "helm-ispell";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-ispell";
+          rev = "9dd7e24cacf755879e569891700520554972b5c8";
+          sha256 = "1qh84a9qxdr13w9qbn4l1rqs0rq7pmn4is3kmwg7ya85yh3wmzyb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ispell";
+          sha256 = "0qyj6whgb2p0v231wn6pvx4awvl1wxppppqqbx5255j8r1f3l1b0";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ispell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-lobsters = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "helm-lobsters";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "julienXX";
+          repo = "helm-lobste.rs";
+          rev = "d798bebb1a65e255c8ec791753a0c78e6b19243b";
+          sha256 = "1nd562lffc41r3y5x7y46f37ra97avllk2m95w23f9g42h47f1ar";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/6247e3786131e5b2a7824804e49927ed65d266d5/recipes/helm-lobsters";
+          sha256 = "0dkb78n373kywxj8zba2s5a2g85vx19rdswv9i78xjwv1lqh8cpp";
+          name = "helm-lobsters";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/helm-lobsters";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ls-git = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ls-git";
+        ename = "helm-ls-git";
+        version = "1.9.1";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-ls-git";
+          rev = "7b7b6dc2554603ad98412927f84a803625069ab3";
+          sha256 = "1s748a5abj58hd7cwzfggfnnmyzhj04gpbqqwqmskn8xlsq5qcdi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ls-git";
+          sha256 = "08rsy9479nk03kinjfkxddrq6wi4sx2a0wrz37cl2q517qi7sibj";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ls-git";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-ls-hg = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-ls-hg";
+        ename = "helm-ls-hg";
+        version = "1.8.0";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-ls-hg";
+          rev = "61b91a22fcfb62d0fc56e361ec01ce96973c7165";
+          sha256 = "1msrsqiwk7bg5gry5cia8a6c7ifymfyn738hk8g2qwzzw4vkxxcs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-ls-hg";
+          sha256 = "0ca0xn7n8bagxb504xgkcv04rpm1vxhx2m77biqrx5886pwl25bh";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-ls-hg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-make = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , projectile }:
+      melpaBuild {
+        pname = "helm-make";
+        ename = "helm-make";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "helm-make";
+          rev = "4bedccdaa65fcd4ea5b643738ea55bf865532c1a";
+          sha256 = "0c9hgazfaf56iv7ghww9ni6db3bv6897785n0mz3b3khf2mj2388";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-make";
+          sha256 = "1r6jjy1rlsii6p6pinbz7h6gcw4vmcycd3vj338bfbnqp5rrf2mc";
+          name = "recipe";
+        };
+        packageRequires = [ helm projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-make";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-migemo = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm-core
+                               , lib
+                               , melpaBuild
+                               , migemo }:
+      melpaBuild {
+        pname = "helm-migemo";
+        ename = "helm-migemo";
+        version = "1.22";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "helm-migemo";
+          rev = "2d964309a5415cf47f5154271e6fe7b6a7fffec7";
+          sha256 = "03588hanfa20pjp9w1bqy8wsf5x6az0vfq0bmcnr4xvlf6fhkyxs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-migemo";
+          sha256 = "1cjvb1lm1fsg5ky63fvrphwl5a7r7xf6qzb4mvl06ikj8hv2h33x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm-core migemo ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-migemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-mode-manager = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "helm-mode-manager";
+        ename = "helm-mode-manager";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "istib";
+          repo = "helm-mode-manager";
+          rev = "12d762eadaf67df9e5e0f607e7a8cf1f6eea778b";
+          sha256 = "17zvv089845j0v5d4hc3d2hq8mkxq2cafx29qgvbvgpfifxx1z3h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-mode-manager";
+          sha256 = "04yhqbb9cliv1922b0abpc1wrladvhyfmwn8ifqfkzaks4067rhl";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-mode-manager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-mt = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild
+                           , multi-term }:
+      melpaBuild {
+        pname = "helm-mt";
+        ename = "helm-mt";
+        version = "0.9";
+        src = fetchFromGitHub {
+          owner = "dfdeshom";
+          repo = "helm-mt";
+          rev = "d2bff4100118483bc398c56d0ff095294209265b";
+          sha256 = "1wci63y0vjvrvrylkhhrz8p9q0ml6la5cpj4rx5cwin9rkmislm6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-mt";
+          sha256 = "04hx8cg8wmm2w8g942nc9mvm12ammmjnx4k61ljrq76smd8s3x2a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm multi-term ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-mt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-nixos-options = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , helm
+                                      , lib
+                                      , melpaBuild
+                                      , nixos-options }:
+      melpaBuild {
+        pname = "helm-nixos-options";
+        ename = "helm-nixos-options";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "travisbhartwell";
+          repo = "nix-emacs";
+          rev = "5ee8a6b22c464028d19d5cebc8f69087bb667c01";
+          sha256 = "1cn8drnkna9vr56fb6w0gmz5kyy9r8a71ph48fsblgqr9fjqw31j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-nixos-options";
+          sha256 = "1nsi4hfw53iwn29fp33dkri1c6w8kdyn4sa0yn2fi6144ilmq933";
+          name = "recipe";
+        };
+        packageRequires = [ helm nixos-options ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-nixos-options";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-notmuch = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild
+                                , notmuch }:
+      melpaBuild {
+        pname = "helm-notmuch";
+        ename = "helm-notmuch";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "helm-notmuch";
+          rev = "782c221bf293eee55990de5b54171f08d881dcee";
+          sha256 = "04mlsjqhh2nw2javxz8m1hbnsq0s70dw5pnwdbx8s9dk1p8ikxvw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-notmuch";
+          sha256 = "1ixdc1ba4ygxl0lpg6ijk06dgj2hfv5p5k6ivq60ss0axyisnnv0";
+          name = "recipe";
+        };
+        packageRequires = [ helm notmuch ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-notmuch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-open-github = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , gh
+                                    , helm-core
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "helm-open-github";
+        ename = "helm-open-github";
+        version = "0.15";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-open-github";
+          rev = "553f3ab0fe0a028015e9b6cb7c35fb139ec222fc";
+          sha256 = "1xj5b44nkdvbxhk1bnllqm2qq393w22ccy708prrhiq8fmk53aa8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-open-github";
+          sha256 = "1wqlwg21s9pjgcrwr8kdrppinmjn235nadkp4003g0md1d64zxpx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs gh helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-open-github";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-org-rifle = callPackage ({ dash
+                                  , emacs
+                                  , f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , helm
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "helm-org-rifle";
+        ename = "helm-org-rifle";
+        version = "1.6.0";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "helm-org-rifle";
+          rev = "349a3d717d4201404d88c1ee71eb2cd8dc17aeb2";
+          sha256 = "1i35cy8yk9r6k2fq07cnbqf7wlfmdqhwihffqkzdp2wm5m762mnv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-org-rifle";
+          sha256 = "0hx764vql2qgw9i8qrr3kkn23lw6jx3x604dm1y33ig6a15gy3a3";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-org-rifle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-orgcard = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , helm-core
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-orgcard";
+        ename = "helm-orgcard";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "helm-orgcard";
+          rev = "9655ac340d1ccc5f3d1c0f7c49be8dd3556d4d0d";
+          sha256 = "1zyjxrrda7nxxjqczv2p3sfimxy2pq734kf51j6v2y0biclc4bk3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-orgcard";
+          sha256 = "1a56y8fny7qxxidc357n7l3yi7h66hidhvwhkam8y5wk6k61460p";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-orgcard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-pages = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-pages";
+        ename = "helm-pages";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "helm-pages";
+          rev = "e334ca3312e51d6fdfa989df5d3ebe683d673c0e";
+          sha256 = "1r2ndmrw5ivawb940j8jnmqzxv46qrzd3cqh9fvxx5yicf020fjf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-pages";
+          sha256 = "1v3w8100invb5wsmm3dyl41pjs7s889s3b1rlr6vlcspa1ncv3wj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-pages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-perldoc = callPackage ({ cl-lib ? null
+                                , deferred
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-perldoc";
+        ename = "helm-perldoc";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-perldoc";
+          rev = "18645f2065a07acce2c6b50a2f9d7a2554e532a3";
+          sha256 = "01cj2897hqz02mfz32nxlyyp59iwm0gz1zj11s8ll7pwy9q3r90g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-perldoc";
+          sha256 = "1qx0g81qcqanjiz5fxysagjhsxaj31g6nsi2hhdgq4x4nqrlmrhb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib deferred helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-perldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-perspeen = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , helm
+                                 , lib
+                                 , melpaBuild
+                                 , perspeen }:
+      melpaBuild {
+        pname = "helm-perspeen";
+        ename = "helm-perspeen";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "jimo1001";
+          repo = "helm-perspeen";
+          rev = "aec145d5196aed1689563d138a2aa37b139e1759";
+          sha256 = "1wv13mvm9149nl9p93znl3d2yfnq4rph440ja07w804cd61qjhq9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-perspeen";
+          sha256 = "07cnsfhph807fqyai3by2c5ml9a40gxkq280f27disf8sc45rg1y";
+          name = "recipe";
+        };
+        packageRequires = [ helm perspeen ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-perspeen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-proc = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-proc";
+        ename = "helm-proc";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "markus1189";
+          repo = "helm-proc";
+          rev = "0a75a86e4f381143134e0cdcd8c84c5b5b0fb2d6";
+          sha256 = "0bgpd50ningqyzwhfinfrn6gqacard5ynwllhg9clq0f683sbck2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-proc";
+          sha256 = "11mh8ny8mhdmp16s21vy9yyql56zxcgmj2aapqs5jy4yad5q62rz";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-proc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-project-persist = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , helm
+                                        , lib
+                                        , melpaBuild
+                                        , project-persist }:
+      melpaBuild {
+        pname = "helm-project-persist";
+        ename = "helm-project-persist";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "Sliim";
+          repo = "helm-project-persist";
+          rev = "6ed96dafb7eb2e8cc5010f960262927f4a0f8cdf";
+          sha256 = "0fcn4kx8dsda8z13fwdnv94hyb2fkv61qdx1263fmsnhllya9ygg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-project-persist";
+          sha256 = "1n87kn1n3453mpdj6amyrgivslskmnzdafpspvkz7b0smf9mv2ld";
+          name = "recipe";
+        };
+        packageRequires = [ helm project-persist ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-project-persist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-projectile = callPackage ({ cl-lib ? null
+                                   , dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , helm
+                                   , lib
+                                   , melpaBuild
+                                   , projectile }:
+      melpaBuild {
+        pname = "helm-projectile";
+        ename = "helm-projectile";
+        version = "0.14.0";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "helm-projectile";
+          rev = "1a90f93732f1a1e8080098d65eadd6a1cd799e31";
+          sha256 = "0lph38p112fridighqcizpsyzjbv7qr3d8prbfj6w6q6gfl6cna4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-projectile";
+          sha256 = "18y7phrvbpdi3cnghwyhh0v1bwm95nwq1lymzf8lrcbmrwcvh36a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash helm projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-pt = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "helm-pt";
+        ename = "helm-pt";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "ralesi";
+          repo = "helm-pt";
+          rev = "03e35e2bb5b683d79897d07acb57ee67009cc6cd";
+          sha256 = "0jm6nnnjyd4kmm1knh0mq3xhnw2hvs3linwlynj8yaliqvlv6brv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-pt";
+          sha256 = "1pvipzjw9h668jkbwwkmphvp806fs9q4mb2v2bjxpb0f3kn2qk3n";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-pt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-purpose = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild
+                                , window-purpose }:
+      melpaBuild {
+        pname = "helm-purpose";
+        ename = "helm-purpose";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "bmag";
+          repo = "helm-purpose";
+          rev = "115a9d612aa07bb6f7f7b18f42b34918699660b9";
+          sha256 = "1jy9l4an2aqynj86pw2qxpzw446xm376n2ykiz17qlimqbxhwkgz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-purpose";
+          sha256 = "16c9if636v7l8z5df011vdj4a3ci5kf3rdfk4g9hdbbl639yca79";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm window-purpose ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-purpose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-pydoc = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm-core
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-pydoc";
+        ename = "helm-pydoc";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-pydoc";
+          rev = "30f1814b5b16db0413ffe74b0d0420b38e153df9";
+          sha256 = "1ik0vllakh73kc2zbgii4sm33n9pj388gaz69j4drz2mik307zvs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-pydoc";
+          sha256 = "1sh7gqqiwk85kx89l1sihlkb8ff1g9n460nwj1y1bsrpfl6if4j7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm-core ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-pydoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-qiita = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-qiita";
+        ename = "helm-qiita";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "masutaka";
+          repo = "emacs-helm-qiita";
+          rev = "1eb97a44ba6fbfe61a0735b0c62171ee5217eda1";
+          sha256 = "1swkj65fhk48704ny3x6h95qqm2g21d94vzd8s8qqyjmnajj07i3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-qiita";
+          sha256 = "1iz2w1901zz3zk9zazikmnkzng5klnvqn4ph1id7liksrcdpdmpm";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-qiita";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rdefs = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rdefs";
+        ename = "helm-rdefs";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "saidie";
+          repo = "emacs-helm-rdefs";
+          rev = "cd3a6b3af3015ee58ef30cb7c81c79ebe5fc867b";
+          sha256 = "0ji7ak9pkmw0wxzmw5a1amvn3pkj90v9jv1yi12w388njxn7qsvj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rdefs";
+          sha256 = "0z3nrqrz63j9nxkbxdsjj3z8zhsqlik28iry3j1plgsxq1mhrn0y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rdefs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-recoll = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-recoll";
+        ename = "helm-recoll";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-recoll";
+          rev = "cc4c4fa9c8f4f99383647baa8512b60523dc8b36";
+          sha256 = "1ic2k8ls084yn9h96pk8815wlvxkwwdq75zhm1ls197pkbw7gh7y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-recoll";
+          sha256 = "0pr2pllplml55k1xx9inr3dm90ichg2wb62dvgvmbq2sqdf4606b";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-recoll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rg = callPackage ({ cl-lib ? null
+                           , dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rg";
+        ename = "helm-rg";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "cosmicexplorer";
+          repo = "helm-rg";
+          rev = "96dcbeb366caa0b158668384113458ee5f7c4dfd";
+          sha256 = "1k9yv9iw694alf5w7555ygk2i1b26i90rqq7ny63a4nd3y5cbs5f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rg";
+          sha256 = "0gfq59540q9s6mr04q7dz638zqmqbqmbl1qaczddgmjn4vyjmf7v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-robe = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "helm-robe";
+        ename = "helm-robe";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-robe";
+          rev = "7348d0bc0251b51979554ea678b970fd01c0efe9";
+          sha256 = "163ljqar3vvbavzc8sk6rnf8awyc2rhh2g117fglswich3c8lnqg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-robe";
+          sha256 = "1gi4nkm9xvnxv0frmhiiw8dkmnmhfpr9n0b6jpidlvr8xr4s5kyw";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-robe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rtags = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild
+                              , rtags }:
+      melpaBuild {
+        pname = "helm-rtags";
+        ename = "helm-rtags";
+        version = "2.20";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "ccba23e842a43e8079e22c2fc93d022ac40dedaf";
+          sha256 = "091gh5mmgz357mz0jpmbzzrsy04bjczac02i94jxf49p6yw9v4ga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rtags";
+          sha256 = "1vv6wnniplyls344qzgcf1ivv25c8qilax6sbhvsf46lvrwnr48n";
+          name = "recipe";
+        };
+        packageRequires = [ helm rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-rubygems-org = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "helm-rubygems-org";
+        ename = "helm-rubygems-org";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "neomantic";
+          repo = "helm-rubygems-org";
+          rev = "6aaed984f698cbdf9f9aceb0221404563e28764d";
+          sha256 = "1sff8kagyhmwcxf9062il1077d4slvr2kq76abj496610gpb75i0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-rubygems-org";
+          sha256 = "04ni03ak53z3rggdgf68qh7ksgcf3s0f2cv6skwjqw7v8qhph6qs";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-rubygems-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-sage = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , sage-shell-mode }:
+      melpaBuild {
+        pname = "helm-sage";
+        ename = "helm-sage";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "stakemori";
+          repo = "helm-sage";
+          rev = "b42b4ba5fd1b17c4b54c30376a053281686beeb8";
+          sha256 = "1s6aw1viyzhhrfiazzi82n7bkvshp7clwi6539660m72lfwc5zdl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-sage";
+          sha256 = "1vnq15fjaap0ai7dadi64sm4415xssmahk2j7kx45sasy4qaxlbj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib helm sage-shell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-sage";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-smex = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , helm
+                             , lib
+                             , melpaBuild
+                             , smex }:
+      melpaBuild {
+        pname = "helm-smex";
+        ename = "helm-smex";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "ptrv";
+          repo = "helm-smex";
+          rev = "2269375dfa452b88b5170d1a5d5849ebb2c1e413";
+          sha256 = "0n2ki7g0hygsq4bi5zkhp3v772ld7niiajfznxmv11dgn949a52s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-smex";
+          sha256 = "02jvq2hyq4wwc9v8gaxr9vkjldc60khdbjf71p8w2iny5w3k0jbj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm smex ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-smex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-spaces = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm-core
+                               , lib
+                               , melpaBuild
+                               , spaces }:
+      melpaBuild {
+        pname = "helm-spaces";
+        ename = "helm-spaces";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "helm-spaces";
+          rev = "877e2b5178926308d6a7c2a37477bb12c33a96d4";
+          sha256 = "1cz8aw6zprzfalagma7jmbycwll2chk2l4n5hkgqyhakdfm2ryzm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-spaces";
+          sha256 = "0hdvkk173k98iycvii5xpbiblx044125pl7jyz4kb8r1vvwcv791";
+          name = "recipe";
+        };
+        packageRequires = [ helm-core spaces ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-spaces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-swoop = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-swoop";
+        ename = "helm-swoop";
+        version = "1.7.4";
+        src = fetchFromGitHub {
+          owner = "ShingoFukuyama";
+          repo = "helm-swoop";
+          rev = "c66336b8245ddc51c4206f19c119f1081920985c";
+          sha256 = "0b23j1bkpg4pm310hqdhgnl4mxsj05gpl08b6kb2ja4fzrg6adsk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-swoop";
+          sha256 = "1b3nyh4h5kcvwam539va4gzxa3rl4a0rdcriif21yq340yifjbdx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-swoop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-system-packages = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , helm
+                                        , lib
+                                        , melpaBuild
+                                        , seq }:
+      melpaBuild {
+        pname = "helm-system-packages";
+        ename = "helm-system-packages";
+        version = "1.10.1";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-system-packages";
+          rev = "2b4636dc861ffe2c4a2025b67ab40460f85b9563";
+          sha256 = "01by0c4lqi2cw8xmbxkjw7m9x78zssm31sx4hdpw5j35s2951j0f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-system-packages";
+          sha256 = "01mndx2zzh7r7gmpn6gd1vy1w3l6dnhvgn7n2p39viji1r8b39s4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm seq ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-system-packages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-themes = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "helm-themes";
+        ename = "helm-themes";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-helm-themes";
+          rev = "8c979f4efc6174eed7df5f3b62db955246202818";
+          sha256 = "0rzbdrs5d5a0icpxrqik2iaz8i5bacw6nm2caf75s9w9j0j6s9li";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-themes";
+          sha256 = "0r7kyd0i0spwi7xkjrpm2kyphrsl3hqm5pw96nd3ia0jiwp8550j";
+          name = "recipe";
+        };
+        packageRequires = [ helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-tramp = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "helm-tramp";
+        ename = "helm-tramp";
+        version = "1.1.6";
+        src = fetchFromGitHub {
+          owner = "masasam";
+          repo = "emacs-helm-tramp";
+          rev = "2148e21fd1a6c8a0b61678bd187ab5a7e387ae64";
+          sha256 = "1dinm85z5dz7ql75bh9hy4kmasfb05amnch32y6xscjdg6736w8j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-tramp";
+          sha256 = "0wqnabaywkhj1fnc3wpx7czrqbja1hsqwcpixmvv0fyrflmza517";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-unicode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , helm
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "helm-unicode";
+        ename = "helm-unicode";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "bomgar";
+          repo = "helm-unicode";
+          rev = "87a738b9ff2b3a0a136dd45f4cc354bf6dd8573f";
+          sha256 = "0kq1775b04jxlww6bvns5d4wl6rk6cvfl8f2avam8l9q1gw80y8h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-unicode";
+          sha256 = "1j95qy2zwdb46dl30ankfx7013l0akc61m14s473j93w320j5224";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-unicode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-w32-launcher = callPackage ({ cl-lib ? null
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , helm
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "helm-w32-launcher";
+        ename = "helm-w32-launcher";
+        version = "0.1.6";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "helm-w32-launcher";
+          rev = "01aa370a32900e7521330fba495474f2aa435e19";
+          sha256 = "0s8zp3kx2kxlfyd26yr3lphwcybhbm8qa9vzmxr3kaylwy6jpz5q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-w32-launcher";
+          sha256 = "0bzn2vhspn6lla815qxwsl9gwfyiwgwmnysr6rjpyacmi17d73ri";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-w32-launcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-w3m = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , helm
+                            , lib
+                            , melpaBuild
+                            , w3m }:
+      melpaBuild {
+        pname = "helm-w3m";
+        ename = "helm-w3m";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "emacs-helm";
+          repo = "helm-w3m";
+          rev = "280673470672c9fbc57fd6a91defeb9f6641fc8a";
+          sha256 = "0d47mqib4zkfadq26vpy0ih7j18d6n5v4c21wvr4hhg6hg205iiz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-w3m";
+          sha256 = "1rr83ija93iqz74k236hk3v75jk0iwcccwqpqgys7spvrld0b9pz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm w3m ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-w3m";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helm-zhihu-daily = callPackage ({ cl-lib ? null
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , helm
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "helm-zhihu-daily";
+        ename = "helm-zhihu-daily";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "helm-zhihu-daily";
+          rev = "be27dcc6be1eb97663b65581a9a5c0fc81cfaba7";
+          sha256 = "1s8q97pra27bacvm5knj0sjgj7iqljlhxqiniaw8ij8w4fhcdh93";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helm-zhihu-daily";
+          sha256 = "0hkgail60s9qhxl0pskqxjvfz93iq1qh1kcmcq0x5kq7d08b911r";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/helm-zhihu-daily";
+          license = lib.licenses.free;
+        };
+      }) {};
+    helpful = callPackage ({ dash
+                           , dash-functional
+                           , elisp-refs
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , shut-up }:
+      melpaBuild {
+        pname = "helpful";
+        ename = "helpful";
+        version = "0.15";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "helpful";
+          rev = "f8350169db7a8d77fc3e5389ad0d7bd864a0eb0a";
+          sha256 = "1rqnx7672175288yqaslw0d9vw04j6psw7mys8j9zcp2i72hlvkn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/helpful";
+          sha256 = "17w9j5v1r2c8ka1fpzbr295cgnsbiw8fxlslh4zbjqzaazamchn2";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional elisp-refs emacs f s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/helpful";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hfst-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "hfst-mode";
+        ename = "hfst-mode";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "hfst-mode";
+          rev = "ac1bb9dd92545d3e7fdc05c83996c227cc15c6b8";
+          sha256 = "0zsz8542kh51clzy8j7g29bwm8zcnfxm9sjzh3xjpqk2ziqf4ii6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hfst-mode";
+          sha256 = "1w342n5k9ak1m5znysvrplpr9dhmi7hxbkr4d1dx51dn0azbpjh7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hfst-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hi2 = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "hi2";
+        ename = "hi2";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "nilcons";
+          repo = "hi2";
+          rev = "c9d199727b5cdcb9e36a972b38131ce4611fd6c8";
+          sha256 = "1s08sgbh5v59lqskd0s1dscs6dy7z5mkqqkabs3gd35agbfvbmlf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hi2";
+          sha256 = "1wxkjg1jnw05lqzggi20jy2jl20d8brvv76vmrf6lnz62g6jv9h2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hi2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hide-lines = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "hide-lines";
+        ename = "hide-lines";
+        version = "20130623.1701";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "hide-lines";
+          rev = "4bfb4c6f4769bd6c637e4c18bbf65506832fc9f0";
+          sha256 = "01cy7v9ql70bsvjz3idq23jpyb8jb61bs9ff8vf5y3fj45pc32ps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hide-lines";
+          sha256 = "18h5ygi6idpb5wjlmjjvjmwcw7xiljkfxdvq7pm8wnw75p705x4d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hide-lines";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hide-mode-line = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "hide-mode-line";
+        ename = "hide-mode-line";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-hide-mode-line";
+          rev = "86b9057391edad75467261c2e579603567e608f9";
+          sha256 = "0qmjmwhmlm008r22n2mv7lir4v1lpfz1c3yvqlwjgv0glbyvqd88";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hide-mode-line";
+          sha256 = "0yl6aicpib5h1ckqi3gyilh2nwvp8gf1017n1w1755j01gw1p9hl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hide-mode-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hierarchy = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "hierarchy";
+        ename = "hierarchy";
+        version = "0.7.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "hierarchy";
+          rev = "4ab1372c252847c316f8978a81e2fe92ff79579e";
+          sha256 = "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hierarchy";
+          sha256 = "0fh1a590pdq21b4mwh9wrfsmm2lw2faw18r35cdzy8fgyf89yimp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hierarchy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-blocks = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-blocks";
+        ename = "highlight-blocks";
+        version = "0.1.16";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "highlight-blocks";
+          rev = "9c4240a5d16008db430d1a81c76dad474d3deb0c";
+          sha256 = "0c65jk00j88qxfki2g88hy9g6n92rzskwcn1fbmwcw3qgaz4b6w5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-blocks";
+          sha256 = "1a32iv5kgf6g6ygbs559w156dh578k45m860czazfx0d6ap3k5m1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-blocks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-defined = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-defined";
+        ename = "highlight-defined";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "highlight-defined";
+          rev = "9cc03c7136b56c04ea053fbe08a3a4a6af26b90e";
+          sha256 = "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-defined";
+          sha256 = "1vjxm35wf4c2qphpkjh57hf03a5qdssdlmfj0n0gwxsdw1q5rpms";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-defined";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-indentation = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-indentation";
+        ename = "highlight-indentation";
+        version = "0.7.0";
+        src = fetchFromGitHub {
+          owner = "antonj";
+          repo = "Highlight-Indentation-for-Emacs";
+          rev = "cd6d8168ccb04c6c0394f42e9512c58f23c01689";
+          sha256 = "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-indentation";
+          sha256 = "0iblrrbssjwfn71n8xxjcl98pjv1qw1igf3hlz6mh8740fsca3d6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-indentation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-numbers = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , parent-mode }:
+      melpaBuild {
+        pname = "highlight-numbers";
+        ename = "highlight-numbers";
+        version = "0.2.3";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "highlight-numbers";
+          rev = "b7adef0286aaa5bca8e98a12d0ffed3a880e25aa";
+          sha256 = "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-numbers";
+          sha256 = "1bywrjv9ybr65mwkrxggb52jdqn16z8acgs5vqm0faq43an8i5yv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs parent-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-numbers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-parentheses = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-parentheses";
+        ename = "highlight-parentheses";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "tsdh";
+          repo = "highlight-parentheses.el";
+          rev = "5aa800a68e3795716de1e7f2722e836781190f31";
+          sha256 = "08ld4wjrkd77cghmrf1n2hn2yzid7bdqwz6b1rzzqaiwxl138iy9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-parentheses";
+          sha256 = "1d38wxk5bwblddr74crzwjwpgyr8zgcl5h5ilywg35jpv7n66lp5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-parentheses";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-quoted = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-quoted";
+        ename = "highlight-quoted";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "highlight-quoted";
+          rev = "cdd7164f9ad3a9929387c08af641ef6f5f013f4f";
+          sha256 = "1ahg9qzss67jpw0wp2izys6lyss4nqjy9320fpa4vdx39msdmjjb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-quoted";
+          sha256 = "0x6gxi0jfxvpx7r1fm43ikxlxilnbk2xbhdy9xivhgmmdyqiqqkl";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-quoted";
+          license = lib.licenses.free;
+        };
+      }) {};
+    highlight-symbol = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "highlight-symbol";
+        ename = "highlight-symbol";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "highlight-symbol.el";
+          rev = "6136dac6d4328c19077a838dfbae2efc4caa4db2";
+          sha256 = "09z13kv2g21kjjkkm3iyaz93sdjmdy2d563r8n7r7ng94acrn7f6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/highlight-symbol";
+          sha256 = "01zw7xrkpgc89m55d60dx3s3kjajh5c164f64s2fzrgl9xj92h0r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/highlight-symbol";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hindent = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "hindent";
+        ename = "hindent";
+        version = "5.2.6";
+        src = fetchFromGitHub {
+          owner = "commercialhaskell";
+          repo = "hindent";
+          rev = "dc47d8b98ebd6ee7fdd7de5f75e65e5b5eedf72f";
+          sha256 = "0xp3mpiyrc6886bi9rih4vbmsar56h8i5sapigd3gn2pv2v688bc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hindent";
+          sha256 = "0az2zhdi73sa3h1q1c0bayqdk22a7ngrvsg9fr8b0i39sn3w8y07";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/hindent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hippie-expand-slime = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "hippie-expand-slime";
+        ename = "hippie-expand-slime";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "hippie-expand-slime";
+          rev = "de31fbc9f9d55891a006463bcee7670b47084015";
+          sha256 = "0mzk4agkcaaw7gryi0wrxv0blqndqsjf1ivdvr2nrnqi798sdhbr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hippie-expand-slime";
+          sha256 = "0kxyv1lpkg33qgfv1jfqx03640py7525bcnc9dk98w6y6y92zf4m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hippie-expand-slime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hippie-namespace = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "hippie-namespace";
+        ename = "hippie-namespace";
+        version = "0.5.8";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "hippie-namespace";
+          rev = "79a662dfe9e61341e071b879f4f9101ca027ad10";
+          sha256 = "0nfr8ad0klqwi97fjchvwx9mfc672lhv3ll166sr8vn6jlh7rkv0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hippie-namespace";
+          sha256 = "1bzjhq116ci9c9f0aw121fn3drmg2pw5ny1w6wcasa4p30syxxf0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hippie-namespace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    history = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "history";
+        ename = "history";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "boyw165";
+          repo = "history";
+          rev = "adef53ecc2f6067bb61f020a2b66c5185a51632d";
+          sha256 = "0dy98sg92xvnr4algm2v2bnjcdwzv0b0vqk0312b0ziinkzisas1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/history";
+          sha256 = "0s8pcz53bk1w4h5847204vb6j838vr8za66ni1b2y4pas76zjr5g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/history";
+          license = lib.licenses.free;
+        };
+      }) {};
+    historyf = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "historyf";
+        ename = "historyf";
+        version = "0.0.9";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "emacs-historyf";
+          rev = "64ab6c9d2cd6dec6982622bf675326e011373cd2";
+          sha256 = "1mxicha6m61qxz1mv9z76x4g9fpqk4ch9i6jf7nnpxd6x4xz3f7z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/historyf";
+          sha256 = "15pcaqfjpkfwcy46yqqw10q8kpw7aamcg0gr4frbdgzbv0yld08s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/historyf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hl-anything = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "hl-anything";
+        ename = "hl-anything";
+        version = "0.0.9";
+        src = fetchFromGitHub {
+          owner = "hl-anything";
+          repo = "hl-anything-emacs";
+          rev = "de631c87d3a6602cdbf84c1623558334fda354fa";
+          sha256 = "0889dzrwizpkyh3wms13k8zx27ipsrsxfa4j4yzk4cwk3aicckcr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hl-anything";
+          sha256 = "0czpc82j5hbzprc66aall72lqnk38dxgpzx4rs8sbx95cag12dxa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hl-anything";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hl-sentence = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "hl-sentence";
+        ename = "hl-sentence";
+        version = "3";
+        src = fetchFromGitHub {
+          owner = "milkypostman";
+          repo = "hl-sentence";
+          rev = "f88882772f1a29fabb54194cc8aacd80d7f5b085";
+          sha256 = "1hgigbgppdhmr7rc901r95kyydjk05dck8mwbryh7kpglns365fa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hl-sentence";
+          sha256 = "16sjfs0nnpwzj1cqfna9vhmxgznwwhb2qdmjci25hlgrdxwwyahs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hl-sentence";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hl-todo = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "hl-todo";
+        ename = "hl-todo";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "hl-todo";
+          rev = "24b9925b1b2c7ad6bf7b66800395f74abf035c5f";
+          sha256 = "1bqi2kchcj58j1y3k439v6jk86cg73m0qwfyjz1396h0h2rspnnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hl-todo";
+          sha256 = "1iyh68xwldj1r02blar5zi01wnb90dkbmi67vd6h78ksghl3z9j4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hl-todo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hoa-pp-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , names }:
+      melpaBuild {
+        pname = "hoa-pp-mode";
+        ename = "hoa-pp-mode";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "hoaproject";
+          repo = "Contributions-Emacs-Pp";
+          rev = "a72104a191214fba502653643a0d166a8f5341d9";
+          sha256 = "1wg6vc9swwspi6s6jpig3my83i2pq8vkq2cy1q3an87rczacmfzp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hoa-pp-mode";
+          sha256 = "01ijfn0hd645j6j88rids5dsanmzwmky37slf50yqffnv69jwvla";
+          name = "recipe";
+        };
+        packageRequires = [ emacs names ];
+        meta = {
+          homepage = "https://melpa.org/#/hoa-pp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    homebrew-mode = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , inf-ruby
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "homebrew-mode";
+        ename = "homebrew-mode";
+        version = "1.3.6";
+        src = fetchFromGitHub {
+          owner = "dunn";
+          repo = "homebrew-mode";
+          rev = "d422307aee2f897d1a92e3b959c3214bc54cbe38";
+          sha256 = "1z4d0niz8q24f2z8rnfnc2rlmkffkf7qc57qn4695jbkzb7galfz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/homebrew-mode";
+          sha256 = "088wc5fq4r5yj1nbh7mriyqf0xwqmbxvblj9d2wwrkkdm5flc8mj";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/homebrew-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hookify = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "hookify";
+        ename = "hookify";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "Silex";
+          repo = "hookify";
+          rev = "e76127230716f7fab6662410c03c3872d17a172b";
+          sha256 = "1yvz9d5h7npxhsdf6s9fgxpmqk5ixx91iwivbhzcz935gs2886hc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hookify";
+          sha256 = "0prls539ifk2fsqklcxmbrwmgbm9hya50z486d7sw426lh648qmy";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/hookify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hound = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , request }:
+      melpaBuild {
+        pname = "hound";
+        ename = "hound";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "ryoung786";
+          repo = "hound.el";
+          rev = "28cb804d99f9240d690d60098644e4300336b5fa";
+          sha256 = "1zyd6350mbah7wjz7qrwyh9pr4jpk5i1v8p7cfmdlja92fpqj9rh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hound";
+          sha256 = "0qri6bddd3c4sqvaqvmqw6xg46vwlfi1by3gc9i3izpq4xl1cr1v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib request ];
+        meta = {
+          homepage = "https://melpa.org/#/hound";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ht = callPackage ({ dash
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ht";
+        ename = "ht";
+        version = "2.2";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "ht.el";
+          rev = "a741bac82797d25ec0542764df7443e9e7241033";
+          sha256 = "1m1v31bfaw2g3jymcxsl2bi1z37pj0sfhmldljk8m9zgjll56g6c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ht";
+          sha256 = "16vmxksannn2wyn8r44jbkdp19jvz1bg57ggbs1vn0yi7nkanwbd";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ht";
+          license = lib.licenses.free;
+        };
+      }) {};
+    html-to-markdown = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "html-to-markdown";
+        ename = "html-to-markdown";
+        version = "1.5.1";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "html-to-markdown";
+          rev = "0fa0effd71acd8981a425ef11e0e63d53aea3199";
+          sha256 = "0c648dl5zwjrqx9n6zr6nyzx2zcnv05d5i4hvhjpl9q3y011ncns";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/html-to-markdown";
+          sha256 = "1gjh9ndqsb3nfb7w5h7carjckkgy6qh63b4mg141j19dsyx9rrjv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/html-to-markdown";
+          license = lib.licenses.free;
+        };
+      }) {};
+    htmlize = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "htmlize";
+        ename = "htmlize";
+        version = "1.54";
+        src = fetchFromGitHub {
+          owner = "hniksic";
+          repo = "emacs-htmlize";
+          rev = "a8b73f1393b2d73541ba4a8fd716c0d07ce50276";
+          sha256 = "1d5hj8wibp1lxs697y7i4yrpv9gqq821gxmpqqkn2jwrb70nsngl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/htmlize";
+          sha256 = "16nvvsi4nxi0zzk5a6mwmp43p0ls20zdx9r18mxz6bsaw6jangh2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/htmlize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    httpcode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "httpcode";
+        ename = "httpcode";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "rspivak";
+          repo = "httpcode.el";
+          rev = "9f860730ffa0b11f48ad8db3eb57b3e844918c4e";
+          sha256 = "1wk9dkf2g95zsdfcvbazi9hls5k3yia86npsmyk486pj0ij9xmvj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/httpcode";
+          sha256 = "05k1al1j119x6zf03p7jn2r9qql33859583nbf85k41bhicknpgh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/httpcode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    httprepl = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "httprepl";
+        ename = "httprepl";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "gregsexton";
+          repo = "httprepl.el";
+          rev = "d2de8a676544deed1a5e084631a7799e487dbe55";
+          sha256 = "0dd257988bdar9hl2711ch5qshx9jc11fqxcvbrd7rc1va5cshs9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/httprepl";
+          sha256 = "0899qb1yfnsyf04hhvnk47qnq4d1f4vd5ghj43x4743wd2b9qawh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/httprepl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hugsql-ghosts = callPackage ({ cider
+                                 , dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , s }:
+      melpaBuild {
+        pname = "hugsql-ghosts";
+        ename = "hugsql-ghosts";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "rkaercher";
+          repo = "hugsql-ghosts";
+          rev = "f3ebc60c66204ad39058cb84eb4bd5facce091df";
+          sha256 = "0pcr39x8yxl5aa0sz20gw20ixz5imw5m19bzhzbzyn7slr65hlqn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hugsql-ghosts";
+          sha256 = "1v1iypis5iyimdr9796qpqw0qmhzijap0nbr0mhhyp4001kakkwz";
+          name = "recipe";
+        };
+        packageRequires = [ cider dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/hugsql-ghosts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hungry-delete = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "hungry-delete";
+        ename = "hungry-delete";
+        version = "1.1.5";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "hungry-delete";
+          rev = "78a787a87aceb821818bbe2a322fbf2e5cbf80c3";
+          sha256 = "171s7akqcpj0jcbm8w19b4n9kdzw0acf7cv0ymwdz5mmgmfiy292";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hungry-delete";
+          sha256 = "0hcsm3yndkyfqzb77ibx7df6bjppc34x5yabi6nd389pdscp9rpz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hungry-delete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hy-mode = callPackage ({ dash
+                           , dash-functional
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "hy-mode";
+        ename = "hy-mode";
+        version = "1.0.3";
+        src = fetchFromGitHub {
+          owner = "hylang";
+          repo = "hy-mode";
+          rev = "27a9e6bee0df741f2699e00e64ea2c7a279b401d";
+          sha256 = "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hy-mode";
+          sha256 = "1vxrqla3p82x7s3kn7x4h33vcdfms21srxgxzidr02k37f0vi82m";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/hy-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hyai = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "hyai";
+        ename = "hyai";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "hyai";
+          rev = "a6d936a68ddbdfa314662c7c3e2b40538334ddeb";
+          sha256 = "108i53sbjdwx2bz5cfbi0a06vy3a44vgwag43nkbpjk116bnjkc9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hyai";
+          sha256 = "00ns7q5b11c5amwkq11fs4p5vrmdfmjljfrcxbwb39gc12yrhn7s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/hyai";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hydandata-light-theme = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "hydandata-light-theme";
+        ename = "hydandata-light-theme";
+        version = "0.9.0";
+        src = fetchFromGitHub {
+          owner = "hydandata";
+          repo = "hydandata-light-theme";
+          rev = "3b9bb5f213029a8331818b1d670194ef26d9505a";
+          sha256 = "11vgz64f8vs8vqp4scj9qvrfdshag7bs615ly9zvzzlk68jivdya";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hydandata-light-theme";
+          sha256 = "0jw43m91m10ifqg335y6d52r6ri77hcmxkird8wsyrpsnk3cfb60";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hydandata-light-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hyde = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "hyde";
+        ename = "hyde";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "nibrahim";
+          repo = "Hyde";
+          rev = "181f9d2f91c2678a22243c5485162fa7999fd893";
+          sha256 = "0nwsmc4c3v0wbfy917ik9k7yz8yclfac695p7p9sh9y354k3maw4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hyde";
+          sha256 = "18kjcxm7qmv9bfh4crw37zgax8khjqs9zkp4lrb490zlad2asbs3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/hyde";
+          license = lib.licenses.free;
+        };
+      }) {};
+    hydra = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "hydra";
+        ename = "hydra";
+        version = "0.14.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "hydra";
+          rev = "943636fe4a35298d9d234222bc4520dec9ef2305";
+          sha256 = "0ln4z2796ycy33g5jcxkqvm7638qxy4sipsab7d2864hh700cikg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/hydra";
+          sha256 = "1c59l43p39ins3dn9690gm6llwm4b9p0pk78lip0dwlx736drdbw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/hydra";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ialign = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ialign";
+        ename = "ialign";
+        version = "0.4.2";
+        src = fetchFromGitHub {
+          owner = "mkcms";
+          repo = "interactive-align";
+          rev = "7ad88c8f7922adc616b8f060b65fa1add8952ea1";
+          sha256 = "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ialign";
+          sha256 = "070a0fa2vbdfvbnpbzv4z0c7311lf8sy2zw2ifn9k548n4l8k62j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ialign";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ibuffer-projectile = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , projectile }:
+      melpaBuild {
+        pname = "ibuffer-projectile";
+        ename = "ibuffer-projectile";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ibuffer-projectile";
+          rev = "36b3fc2d42337174d4fa37c4d2a77e6153634965";
+          sha256 = "0kvf2mn6b1dkn72cs1bpamy2wc5j1n48j4x6kl3ihvh7bibqg115";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ibuffer-projectile";
+          sha256 = "1qh4krggmsc6lx5mg60n8aakmi3f6ppl1gw094vfcsni96jl34fk";
+          name = "recipe";
+        };
+        packageRequires = [ projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/ibuffer-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ibuffer-tramp = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ibuffer-tramp";
+        ename = "ibuffer-tramp";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "svend";
+          repo = "ibuffer-tramp";
+          rev = "41fab2ad174f53a4cf5ef7d2ebef518dede82ab4";
+          sha256 = "1mfrbr725p27p3s5nxh7xhm81pdr78ysz8l3kwrlp97bb6dmljmq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ibuffer-tramp";
+          sha256 = "11a9b9g1jk2r3fldi012zka4jzy68kfn4991xp046qm2fbc7la32";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ibuffer-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ibuffer-vc = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ibuffer-vc";
+        ename = "ibuffer-vc";
+        version = "0.10";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ibuffer-vc";
+          rev = "b2bac7aa69335933ebb2e6f34259fa96d2c8d46a";
+          sha256 = "0bqdi5w120256g74k0j4jj81x804x1gcg4dxa74w3mb6fl5xlvs8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ibuffer-vc";
+          sha256 = "0bn5qyiq07cgzci10xl57ss5wsk7bfhi3hjq2v6yvpy9v704dvla";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ibuffer-vc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    identica-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "identica-mode";
+        ename = "identica-mode";
+        version = "1.3.1";
+        src = fetchFromGitHub {
+          owner = "gabrielsaldana";
+          repo = "Emacs-Identica-mode";
+          rev = "cf9183ee11ac922e85c7c908f04e2d00b03111b3";
+          sha256 = "047gzycr49cs8wlmm9j4ry7b7jxmfhmbayx6rbbxs49lba8dgwlk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/identica-mode";
+          sha256 = "1r69ylykjap305g23cry4wajiqhpgw08nw3b5d9i1y3mwx0j253q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/identica-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idle-highlight-in-visible-buffers-mode = callPackage ({ fetchFromGitHub
+                                                          , fetchurl
+                                                          , lib
+                                                          , melpaBuild }:
+      melpaBuild {
+        pname = "idle-highlight-in-visible-buffers-mode";
+        ename = "idle-highlight-in-visible-buffers-mode";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "ignacy";
+          repo = "idle-highlight-in-visible-buffers-mode";
+          rev = "8d8de309d5bd4b035c01bf7f0cfc6e079c79d898";
+          sha256 = "194r7f4ngwx03n74rs26hqn9wypn9idjizvmffpsjpxfr7wr9z7l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idle-highlight-in-visible-buffers-mode";
+          sha256 = "0kv06qlv1zp5hwaya0l90z6d5lhxcg69qac6x24ky6kf97vcdq72";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/idle-highlight-in-visible-buffers-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idle-highlight-mode = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "idle-highlight-mode";
+        ename = "idle-highlight-mode";
+        version = "1.1.3";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "idle-highlight-mode";
+          rev = "c466f2a9e291f9da1167dc879577b2e1a7880482";
+          sha256 = "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idle-highlight-mode";
+          sha256 = "1i5ky61bq0dpk71yasfpjhsrv29mmp9nly9f5xxin7gz3x0f36fc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/idle-highlight-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-at-point = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ido-at-point";
+        ename = "ido-at-point";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "katspaugh";
+          repo = "ido-at-point";
+          rev = "6b267f202dc3d3d924c904fbd894e9a209f231de";
+          sha256 = "1bj8k5fq6x3s5qmr02bnkcls7sndmg4wjjjrsd3fr6yl8c4jcy3k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-at-point";
+          sha256 = "0jpgq2iiwgqifwdhwhqv0cd3lp846pdqar6rxqgw9fvvb8bijqm0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-at-point";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-complete-space-or-hyphen = callPackage ({ fetchFromGitHub
+                                                , fetchurl
+                                                , lib
+                                                , melpaBuild }:
+      melpaBuild {
+        pname = "ido-complete-space-or-hyphen";
+        ename = "ido-complete-space-or-hyphen";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "doitian";
+          repo = "ido-complete-space-or-hyphen";
+          rev = "ad9baaec10e06be3f85db97b6c8fd970cf20df77";
+          sha256 = "1ffmsmi31jc0gqnbdxrd8ipsy790bn6hgq3rmayylavmdpg3qfd5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-complete-space-or-hyphen";
+          sha256 = "1wk0cq5gjnprmpyvhh80ksz3fash42hckvmx8m95crbzjg9j0gbc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ido-complete-space-or-hyphen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-completing-read-plus = callPackage ({ cl-lib ? null
+                                            , emacs
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild
+                                            , memoize
+                                            , s }:
+      melpaBuild {
+        pname = "ido-completing-read-plus";
+        ename = "ido-completing-read+";
+        version = "4.11";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "ido-completing-read-plus";
+          rev = "03bdf989a9af88d4eeed4003ae74c98baf58ff72";
+          sha256 = "08d77ysbzd25rm8rjslckhqlsyim047c9zwq2ybbzqpjy3q52qfy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-completing-read+";
+          sha256 = "0rxdv3cd0bg0p8c1bck5vichdq941dki934k23qf5p6cfgw8gw4z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs memoize s ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-completing-read+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-describe-bindings = callPackage ({ dash
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "ido-describe-bindings";
+        ename = "ido-describe-bindings";
+        version = "0.0.11";
+        src = fetchFromGitHub {
+          owner = "danil";
+          repo = "ido-describe-bindings";
+          rev = "a142ff1c33df23ed9665497d0dcae2943b3c706a";
+          sha256 = "0967709jyp9s04i6gi90axgqzhz03cdf1j1w39yrkds6q1b6v7jw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-describe-bindings";
+          sha256 = "1lsa09h025vd908r9q571iq2ia0zdpnq04mlihb3crpp5v9n9ws2";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-describe-bindings";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-grid-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ido-grid-mode";
+        ename = "ido-grid-mode";
+        version = "1.1.5";
+        src = fetchFromGitHub {
+          owner = "larkery";
+          repo = "ido-grid-mode.el";
+          rev = "8bbd66e365d4f6f352bbb17673be5869ab26d7ab";
+          sha256 = "0f1p6cnl0arcc2y1h99nqcflp7byvyf6hj6fmv5xqggs66qc72lb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-grid-mode";
+          sha256 = "0sq1d2fwvv247rr9lqg9x87d5h910k5ifqr9cjyskc74mvhrcsr3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-grid-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-load-library = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , pcache
+                                    , persistent-soft }:
+      melpaBuild {
+        pname = "ido-load-library";
+        ename = "ido-load-library";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "ido-load-library";
+          rev = "8589cb1e4303066eb333f1cfc789835d1cbe21df";
+          sha256 = "1z7az7h90v72llxvdclcywvf1qd0nhkfa45bp99xi7cy7sqsqssf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-load-library";
+          sha256 = "13f83gqh39p3yjy7r7qc7kzgdcmqh4b5c07zl7rwzb8y9rz59lhj";
+          name = "recipe";
+        };
+        packageRequires = [ pcache persistent-soft ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-load-library";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-occur = callPackage ({ dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ido-occur";
+        ename = "ido-occur";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "danil";
+          repo = "ido-occur";
+          rev = "b0e67fe4835c162cbcf8a982bdf377955b9ac5ae";
+          sha256 = "13f21vx3q1qbnl13n3lx1rnr8dhq3zwch22pvy53h8q6sdf7r73a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-occur";
+          sha256 = "058l2pklg12wkvyyshk8va6shphpbc508fv9a8x25pw857a28pji";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-occur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-vertical-mode = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "ido-vertical-mode";
+        ename = "ido-vertical-mode";
+        version = "0.1.6";
+        src = fetchFromGitHub {
+          owner = "creichert";
+          repo = "ido-vertical-mode.el";
+          rev = "c3e0514405ba5c15b5527e7f8e2d42dff259788f";
+          sha256 = "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-vertical-mode";
+          sha256 = "1vg5s6nd6v2g8ychz1q9cdqvsdw6vag7d9w68sn7blpmlr0nqhfm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ido-vertical-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ido-yes-or-no = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , ido-completing-read-plus
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ido-yes-or-no";
+        ename = "ido-yes-or-no";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "ido-yes-or-no";
+          rev = "9ddee9e878ad62d58c9f4b3a7685f22b8e36e420";
+          sha256 = "046ns1nqisz830f6xwlly1qgmi4v2ikw6vmj0f93jprv4vkjylpq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ido-yes-or-no";
+          sha256 = "0glag4yb9xyf1lxxbdhph2nq6s1vg44i6f2z1ii8bkxpambz2ana";
+          name = "recipe";
+        };
+        packageRequires = [ ido-completing-read-plus ];
+        meta = {
+          homepage = "https://melpa.org/#/ido-yes-or-no";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idomenu = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "idomenu";
+        ename = "idomenu";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "birkenfeld";
+          repo = "idomenu";
+          rev = "5daaf7e06e4704ae43c825488109d7eb8c049321";
+          sha256 = "0bq0kx0889rdy8aasxbpmb0a4awpk2b24zv6x1dmhacmc5rj11i0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idomenu";
+          sha256 = "0mg601ak9mhp2fg5n13npcfzphgyms4vkqd18ldmv098z2z1412h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/idomenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    idris-mode = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , prop-menu }:
+      melpaBuild {
+        pname = "idris-mode";
+        ename = "idris-mode";
+        version = "0.9.19";
+        src = fetchFromGitHub {
+          owner = "idris-hackers";
+          repo = "idris-mode";
+          rev = "66a822a621e7bade71fdeb32e9fe520b322c8967";
+          sha256 = "1c3drq4f62p9arm92arp4dby1cw2fh5x3lmlb63rxbpsh5askw75";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/idris-mode";
+          sha256 = "0hiiizz976hz3z3ciwg1gs9y10qhxbs8givhz89kvyn4s4861a1s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs prop-menu ];
+        meta = {
+          homepage = "https://melpa.org/#/idris-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iedit = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "iedit";
+        ename = "iedit";
+        version = "0.9.9.9";
+        src = fetchFromGitHub {
+          owner = "victorhge";
+          repo = "iedit";
+          rev = "39919478f9472ce7a808ca601f4c19261ecc2f99";
+          sha256 = "1pwkrm98vlpzsy5iwwfksdaz3zzyi7bvdf5fglhsn4ssf47p787g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iedit";
+          sha256 = "0bh8ir6kspxjsvjww5y3b5hl3flbm2cc77jh8vnnva3z086f18mh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iflipb = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "iflipb";
+        ename = "iflipb";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "jrosdahl";
+          repo = "iflipb";
+          rev = "a5ad1fbd1173cff5228dab265515c92c0778f86a";
+          sha256 = "0gyxd5d57j0x93mqnfwwdf28plp102xh0ag2d2iws7y1d5m99wm2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iflipb";
+          sha256 = "1nfrrxgi9nlhn477z8ay7jxycpcghhhmmg9dagdhrlrr20fx697d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iflipb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ignoramus = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ignoramus";
+        ename = "ignoramus";
+        version = "0.7.4";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "ignoramus";
+          rev = "00385fcd0d42de3a470f61c1fdbe7e19fbef9c5b";
+          sha256 = "1ca2n6vv2z7c3550w0jzwmp6xp0rmrrbljr1ik2ijign62r35a3q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ignoramus";
+          sha256 = "1czqdmlrds1l5afi8ldg7nrxcwav86538z2w1npad3dz8xk67da9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ignoramus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    image-archive = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "image-archive";
+        ename = "image-archive";
+        version = "0.0.7";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-image-archive";
+          rev = "699e967fa7b1dfcce2bf2ec878e74f4238bb6e45";
+          sha256 = "0imvxzcja91cd19zm2frqfpxm8j0bc89w9s7q0pkpvyjz44kjbq8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/image-archive";
+          sha256 = "0x0lv5dr1gc9bnr3dn26bc9s1ccq2rp8c4a1licbi929f0jyxxfp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/image-archive";
+          license = lib.licenses.free;
+        };
+      }) {};
+    image-dired-plus = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "image-dired-plus";
+        ename = "image-dired+";
+        version = "0.7.2";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-image-diredx";
+          rev = "b68094625d963056ad64e0e44af0e2266b2eadc7";
+          sha256 = "1n2ya9s0ld257a8iryjd0dz0z2zs1xhzfiwsdkq4l4azwxl54m29";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/image-dired+";
+          sha256 = "0hhwqfn490n7p12n7ij4xbjh15gfvicmn21fvwbnrmfqc343pcdy";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/image-dired+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    image-plus = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "image-plus";
+        ename = "image+";
+        version = "0.6.2";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-imagex";
+          rev = "967508a6c151e6ab6e97d3ac332dc5599011830d";
+          sha256 = "0k69xbih0273xvmj035vcmm67l6hgjb99pb1jbva5x0pnszb1vdv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/image+";
+          sha256 = "1a9dxswnqn6cvx28180kclpjc0vc6fimzp7n91gpdwnmy123x6hg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/image+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imake = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "imake";
+        ename = "imake";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "imake";
+          rev = "7df5fb9684a0288313ef5f64594078d477105959";
+          sha256 = "0xc19ir5ak1bfq0ag48ql5rj58zd565csgxhpa30s9lvvkc8kvr5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imake";
+          sha256 = "0j732fi6999n9990w4l28raw140fvqfbynyh4x65yilhw95r7c34";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/imake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imapfilter = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "imapfilter";
+        ename = "imapfilter";
+        version = "1.0.3";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "imapfilter";
+          rev = "5e842a8c60ba98f344edf1b1e65f5a480ed938ed";
+          sha256 = "16k7cxzdjbblzckp5qppw1ga0rzdh3ww2ni7ry1h43p9cfna0kcx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imapfilter";
+          sha256 = "0i893kqj6yzadhza800r6ri7fihl01r57z8yrzzh3d09qaias5vz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/imapfilter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imenu-anywhere = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "imenu-anywhere";
+        ename = "imenu-anywhere";
+        version = "1.1.4";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "imenu-anywhere";
+          rev = "fc7f0fd2f19e5ebee70156a99bf87393123893e3";
+          sha256 = "0g2gb7jrys81kphmhlvhvzwl8l75j36y6pqjawh9wmzzwad876q5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imenu-anywhere";
+          sha256 = "1ylqzdnd3nzcpyyd6rh6i5q9mvf8c99rvpk51fzfm3yq2kyw4dbq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/imenu-anywhere";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imenu-list = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "imenu-list";
+        ename = "imenu-list";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "bmag";
+          repo = "imenu-list";
+          rev = "27170d27c9594989587c03c23f753a809f6a0e10";
+          sha256 = "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imenu-list";
+          sha256 = "092fsn7hnbfabcyakbqyk20pk62sr8xrs45aimkv1l91681np98s";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/imenu-list";
+          license = lib.licenses.free;
+        };
+      }) {};
+    imenus = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "imenus";
+        ename = "imenus";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "imenus.el";
+          rev = "ee1bbd2228dbb86df2865dc9004d375421b171ba";
+          sha256 = "1y57xp0w0c6hg3gn4f1l3612a18li4gwhfa4dy18fy94gr54ycpx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/imenus";
+          sha256 = "1q0j6r2n5vjlbgchkz9zdglmmbpd8agawzcg61knqrgzpc4lk82r";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/imenus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    immutant-server = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "immutant-server";
+        ename = "immutant-server";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "leathekd";
+          repo = "immutant-server.el";
+          rev = "6f3d303354a229780a33e6bae64460a95bfefe60";
+          sha256 = "1pf7pqh8yzyvh4gzvp5npfq8kcfjcbzra0kkw7zmz769xxc8v84x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/immutant-server";
+          sha256 = "15vcxag1ni41ja4b3q0444sq5ysrisis59la7li6h3617wy8r02i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/immutant-server";
+          license = lib.licenses.free;
+        };
+      }) {};
+    impatient-mode = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , htmlize
+                                  , lib
+                                  , melpaBuild
+                                  , simple-httpd }:
+      melpaBuild {
+        pname = "impatient-mode";
+        ename = "impatient-mode";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "impatient-mode";
+          rev = "96c068d5add95595dc5be42115d100cf99f908ba";
+          sha256 = "18fawpnqcm1yv7f83sz05pjihwydmafmccfmizyg0hlgayhj0izf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/impatient-mode";
+          sha256 = "07z5ds3zgzkxvxwaalp9i5x2rl5sq4jjk8ygk1rfmsl52l5y1z6j";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib htmlize simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/impatient-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    import-js = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , grizzl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "import-js";
+        ename = "import-js";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "Galooshi";
+          repo = "emacs-import-js";
+          rev = "0a1032894445062b87dbe4e2c8cdba35ac25c250";
+          sha256 = "0vx2k4k8ig1k74ifxaxvhbkmfmba683qza7f9pp08daa43mgr1r3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/import-js";
+          sha256 = "00b2qv1y8879cf8ayplmwqd36w7sppx57myi2wjhy9i2rnvdbmgn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs grizzl ];
+        meta = {
+          homepage = "https://melpa.org/#/import-js";
+          license = lib.licenses.free;
+        };
+      }) {};
+    import-popwin = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , popwin }:
+      melpaBuild {
+        pname = "import-popwin";
+        ename = "import-popwin";
+        version = "0.10";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-import-popwin";
+          rev = "6a21efc7fd44f8c2484d22eadf298e4bfd4bc003";
+          sha256 = "1h4c3cib87hvgp37c30lx7cpyxvgdsb9hp7z0nfrkbbif0acrj2i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/import-popwin";
+          sha256 = "0vkw6y09m68bvvn1wzah4gzm69z099xnqhn359xfns2ljm74bvgy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs popwin ];
+        meta = {
+          homepage = "https://melpa.org/#/import-popwin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    importmagic = callPackage ({ emacs
+                               , epc
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "importmagic";
+        ename = "importmagic";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "anachronic";
+          repo = "importmagic.el";
+          rev = "ab9e5c260a2044578597a467eff59e5598a7ef1c";
+          sha256 = "1ifv6zfrknivjsgk0p8wh0n2bqqs1zfy8551216dfvigqs20wvq4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/importmagic";
+          sha256 = "1kpmgpll0zz3zlr3q863v1fq6wmwdwx7mn676x0r7g4iy1bdslmv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs epc f ];
+        meta = {
+          homepage = "https://melpa.org/#/importmagic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    indent-guide = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "indent-guide";
+        ename = "indent-guide";
+        version = "20160630";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "indent-guide";
+          rev = "feb207cb5610f351c7cdcf266e0c99117b2f786c";
+          sha256 = "0ykddzily3b6c6k7fvq274pqdjf3934n8p3nrmnsw6c93i1ndd4f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/indent-guide";
+          sha256 = "029fj9rr9vfmkysi6lzpwra92j6ppw675qpj3sinfq7fqqlicvp7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/indent-guide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    indium = callPackage ({ company
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , js2-mode
+                          , lib
+                          , melpaBuild
+                          , seq
+                          , websocket }:
+      melpaBuild {
+        pname = "indium";
+        ename = "indium";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "Indium";
+          rev = "5ece767ea30a350dcdb1a4defaca174e85efedc5";
+          sha256 = "1djkzjxv7idqg5pmbqf60lmvibp3ccvgdkdwb48wzn2yvnqr2vw6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/indium";
+          sha256 = "024ljx7v8xahmr8jm41fiy8i5jbg48ybqp5n67k4jwg819cz8wvl";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs js2-mode seq websocket ];
+        meta = {
+          homepage = "https://melpa.org/#/indium";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inf-clojure = callPackage ({ clojure-mode
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "inf-clojure";
+        ename = "inf-clojure";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "inf-clojure";
+          rev = "247ca70f8ba5104be292aea20fbde6adb37e359f";
+          sha256 = "11hyva006bc4hbhzjwb4brilm6fb7qfm5h66nl0gmmyva40y6412";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inf-clojure";
+          sha256 = "0n8w0vx1dnbfz88j45a57z9bsmkxr2zyh6ld72ady8asanf17zhl";
+          name = "recipe";
+        };
+        packageRequires = [ clojure-mode emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/inf-clojure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inf-crystal = callPackage ({ crystal-mode
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "inf-crystal";
+        ename = "inf-crystal";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "inf-crystal.el";
+          rev = "71a330f2d29e2fb4f51d223cf6230b88620a80af";
+          sha256 = "0vija33n2j4j5inzm29qk1bjzaxjm97zn263j15258pqxwkbddv3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inf-crystal";
+          sha256 = "09ssq7i5c2fxxbrsp3nn1f1ah1yv2nb19n5s1iqyykkk316k2q26";
+          name = "recipe";
+        };
+        packageRequires = [ crystal-mode emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/inf-crystal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inf-ruby = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "inf-ruby";
+        ename = "inf-ruby";
+        version = "2.5.1";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "inf-ruby";
+          rev = "81adadf0f98122b655d0c2bee9c8074d2b6a3ee2";
+          sha256 = "1r452h6cyypqlc59q8dx5smkwhck4qjcg1pf9qdw539cpva5q77z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inf-ruby";
+          sha256 = "02f01vwzr6j9iqcdns4l579bhia99sw8hwdqfwqjs9gk3xampfpp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inf-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inflections = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "inflections";
+        ename = "inflections";
+        version = "2.5";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "jump.el";
+          rev = "40a7ffdf734ffe7d1968909663146255d7ba69c8";
+          sha256 = "1ig1wdjg914p9ng1nir2fid4mb3xz2dbpmkdnfy1klq2zp0xw2s3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inflections";
+          sha256 = "0f02bhm2a5xiaxnf2c2hlpa4p121xfyyj3c59fy0yldipdxhvw70";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/inflections";
+          license = lib.licenses.free;
+        };
+      }) {};
+    info-buffer = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "info-buffer";
+        ename = "info-buffer";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "llvilanova";
+          repo = "info-buffer";
+          rev = "d35dad6e766c6e2ddb8dc6acb4ce5b6e10fbcaa7";
+          sha256 = "0czkp7cf7qmdm1jdn67gxyxz8b4qj2kby8if50d450xqwbx0da7x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/info-buffer";
+          sha256 = "1vkgkwgwym0j5xip7mai11anlpa2h7vd5m9i1xga1b23hcs9r1w4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/info-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    info-colors = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "info-colors";
+        ename = "info-colors";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "ubolonton";
+          repo = "info-colors";
+          rev = "13dd9b6a7288e6bb692b210bcb9cd72016658dae";
+          sha256 = "1h2q19574sc1lrxm9k78668pwcg3z17bnbgykmah01zlmbs264sx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/info-colors";
+          sha256 = "1mbabrfdy9xn7lpqivqm8prp83qmdv5r0acijwvxqd3a52aadc2x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/info-colors";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inherit-local = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "inherit-local";
+        ename = "inherit-local";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "shlevy";
+          repo = "inherit-local";
+          rev = "b1f4ff9c41f9d64e4adaf5adcc280b82f084cdc7";
+          sha256 = "1fargashyqn4ga420k3ikc1akf7mw3zcarpg24gh2591p4swa0ih";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inherit-local";
+          sha256 = "1v3q3s6qq64k1f4ck6rfgsy1arnf9cxg2kw6d1ahfrwr4ixsqm87";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/inherit-local";
+          license = lib.licenses.free;
+        };
+      }) {};
+    init-loader = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "init-loader";
+        ename = "init-loader";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "init-loader";
+          rev = "128ee76adbf431f0b8c30a3a29cb20c9c5100cde";
+          sha256 = "031vb7ndz68x0119v4pyizz0ykd341ywcp5s7i4z35zx1vcqj8az";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/init-loader";
+          sha256 = "0rq7759abp0ml0l8dycvdl0j5wsxw9z5y9pyx68973a4ssbx2i0r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/init-loader";
+          license = lib.licenses.free;
+        };
+      }) {};
+    init-open-recentf = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "init-open-recentf";
+        ename = "init-open-recentf";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "init-open-recentf.el";
+          rev = "a4f5338a14302d44fa5aebb1ddc7aff3dc9abbe3";
+          sha256 = "0iph5cpz2dva1rnvp5xynmkndny87z308pziadk1qgf05mc0i61d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/init-open-recentf";
+          sha256 = "0xlmfxhxb2car8vfx7krxmxb3d56x0r3zzkj8ds7yqvr65z85x2r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/init-open-recentf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    initsplit = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "initsplit";
+        ename = "initsplit";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "dabrahams";
+          repo = "initsplit";
+          rev = "950bdc568e3fd08e6106170953caf98ac582a431";
+          sha256 = "1rfw38a63bvzglqx7mb8wlnzjvlmkhkn35hn66snqqgvnmnvi54g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/initsplit";
+          sha256 = "0n9dk3x62vgxfn39jkmdg8wxsik0xqkprifgvqzyvn8xcx1blyyq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/initsplit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inline-crypt = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "inline-crypt";
+        ename = "inline-crypt";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "Sodel-the-Vociferous";
+          repo = "inline-crypt-el";
+          rev = "497ce9dc29a8ccac0b6dd6854f5d120514350282";
+          sha256 = "0jipds844432a8m4d5gxbbkk2h1rsq9fg748g6bxy2q066kyzfz6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inline-crypt";
+          sha256 = "04mcyyqa9h6g6wrzphzqalpqxsndmzxpavlpdc24z4a2c5s3yz8n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inline-crypt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inlineR = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "inlineR";
+        ename = "inlineR";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "inlineR.el";
+          rev = "29357186beca825e3d0451b700ec09b9ed65e37b";
+          sha256 = "15nasjknmzy57ilj1gaz3w5sj8b3ijcpgwcd6w2r9xhgcl86m40q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/inlineR";
+          sha256 = "1fflq2gkpfn3jkv4a6yywzmxsq6qszfid1ri85ass1ppw6scdvzw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inlineR";
+          license = lib.licenses.free;
+        };
+      }) {};
+    insert-shebang = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "insert-shebang";
+        ename = "insert-shebang";
+        version = "0.9.6";
+        src = fetchFromGitHub {
+          owner = "psachin";
+          repo = "insert-shebang";
+          rev = "adfa473f07443b231914d277c20a3419b30399b6";
+          sha256 = "10zy3vg5fr30hhv0q3jldffhjacg1yrv5d9gfkdz55ry277l3xz1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/insert-shebang";
+          sha256 = "0z88l1q925v9lwzr6nas9qjy0f57qxilg6smgpx9wj6lll3f7p5v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/insert-shebang";
+          license = lib.licenses.free;
+        };
+      }) {};
+    instapaper = callPackage ({ fetchhg
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "instapaper";
+        version = "0.9.5";
+        src = fetchhg {
+          url = "https://bitbucket.com/jfm/emacs-instapaper";
+          rev = "8daa0058ede7";
+          sha256 = "0krscid3yz2b7kv75gd9fs92zgfl7pnl77dbp5gycv5rmw5mivp8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/instapaper";
+          sha256 = "1yibdpj3lx6vr33s75s1y415lxqljrk7pqc901f8nfa01kca7axn";
+          name = "instapaper";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/instapaper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    intel-hex-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "intel-hex-mode";
+        ename = "intel-hex-mode";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "mschuldt";
+          repo = "intel-hex-mode";
+          rev = "e83c94e1c31a8435a88b3ae395f2bc842ef83217";
+          sha256 = "0jpc6wh3agdh38wdjr1x880iiaj6698nr8dkgx114fsfj1la6f7v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/intel-hex-mode";
+          sha256 = "02ffbrkr3zajqhrxc3grmqm632ji4fmgnfabn42islpcfq12q3i4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/intel-hex-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    intellij-theme = callPackage ({ fetchFromGitLab
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "intellij-theme";
+        ename = "intellij-theme";
+        version = "1.3";
+        src = fetchFromGitLab {
+          owner = "fommil";
+          repo = "emacs-intellij-theme";
+          rev = "1bbfff8e6742d18e9b77ed796f44da3b7bd10606";
+          sha256 = "0ml1gi2cn6h3xm5c78vxwv327r0rgimia1vqqi9jb09yb6lckbgj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/intellij-theme";
+          sha256 = "1g8cninmq840sl8fmhq2hcsmz7nccbjmprzcl8w1zdavfp86b97g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/intellij-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    interleave = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "interleave";
+        ename = "interleave";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "rudolfochrist";
+          repo = "interleave";
+          rev = "6b28363eac939227c6cdc8a73a1d3ea5b002442d";
+          sha256 = "1qs6j9cz152wfy54c5d1a558l0df6wxv3djlvfl2mx58wf0sk73h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/interleave";
+          sha256 = "18b3fpxn07y5abkcnaw9is9ihdhik7xjdj6kzl1pz958lk9f4hfy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/interleave";
+          license = lib.licenses.free;
+        };
+      }) {};
+    intero = callPackage ({ company
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , flycheck
+                          , haskell-mode
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "intero";
+        ename = "intero";
+        version = "0.1.31";
+        src = fetchFromGitHub {
+          owner = "commercialhaskell";
+          repo = "intero";
+          rev = "14a31536061fa6ad643456f79abe39636c48ffd9";
+          sha256 = "0gabipr8bvxhigidkivczqyv67nl6ylf0gipb0f4lxs8mcnwzcvn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/intero";
+          sha256 = "15n7ipsq8ylmq4blsycpszkx034j9sb92vqvaz30j5v307fmvs99";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs flycheck haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/intero";
+          license = lib.licenses.free;
+        };
+      }) {};
+    inverse-acme-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "inverse-acme-theme";
+        version = "1.12.0";
+        src = fetchFromGitHub {
+          owner = "dcjohnson";
+          repo = "inverse-acme-theme";
+          rev = "e57f494fd94e49321a6396f530b8a13bae8b57df";
+          sha256 = "16f9vszl0f1dkjvqk5hxi570gf4l8p6fk27p0d7j11grsck0yzly";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/1c44dbc8d3ca29d8715af755b845af7236e95406/recipes/inverse-acme-theme";
+          sha256 = "03g6h8dpn42qnr593ryhj22lj1h2nx4rdr1knhkvxygfv3c4lgh5";
+          name = "inverse-acme-theme";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/inverse-acme-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iplayer = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "iplayer";
+        ename = "iplayer";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "csrhodes";
+          repo = "iplayer-el";
+          rev = "48b664e36e1a8e37eeb3eee80b91ff7126ed449a";
+          sha256 = "043dnij48zdyg081sa7y64lm35z7zvrv8gcymv3l3a98r1yhy3v6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iplayer";
+          sha256 = "0wnxvdlnvlmspqsaqx0ldw8j03qjckkqzvx3cbpc2yfs55pm3p7r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iplayer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ipython-shell-send = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "ipython-shell-send";
+        ename = "ipython-shell-send";
+        version = "1.0.3";
+        src = fetchFromGitHub {
+          owner = "jackkamm";
+          repo = "ipython-shell-send-el";
+          rev = "ff944b436db381e6772a26c09b0b20a097eb323e";
+          sha256 = "14s6hxnkv7r3idzj7s6vnvifpc8prykzpm6nhb6149yymal4hjkc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ipython-shell-send";
+          sha256 = "07im2f3890yxpcy4qz1bihi68aslam7qir4vqf05bhqlgaqzamv8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ipython-shell-send";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ir-black-theme = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ir-black-theme";
+        ename = "ir-black-theme";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "jmdeldin";
+          repo = "ir-black-theme.el";
+          rev = "b1ca1d0778e3e6228ff756e7fdaf5f5982000fa2";
+          sha256 = "036q933yw7pimnnq43ydaqqfccgf4iwvjhjmsavp7l6y1w16rvmy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ir-black-theme";
+          sha256 = "1qpq9zbv63ywzk5mlr8x53g3rn37k0mdv6x1l1hcd90gka7vga9v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ir-black-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    irony = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , json ? null
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "irony";
+        ename = "irony";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "Sarcasm";
+          repo = "irony-mode";
+          rev = "78b06aa2df5251adaabb6c749febc1f1bd2ad605";
+          sha256 = "0nhjrnlmss535jbshjjd30vydbr8py21vkx4p294w6d8vg2rssf8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/irony";
+          sha256 = "1xcxrdrs7imi31nxpszgpaywq4ivni75hrdl4zzrf103xslqpl8a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib json ];
+        meta = {
+          homepage = "https://melpa.org/#/irony";
+          license = lib.licenses.free;
+        };
+      }) {};
+    isgd = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "isgd";
+        ename = "isgd";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "chmouel";
+          repo = "isgd.el";
+          rev = "764306dadd5a9213799081a48aba22f7c75cca9a";
+          sha256 = "09hx28lmldm7z3x22a0qx34id09fdp3z61pdr61flgny213q1ach";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/isgd";
+          sha256 = "0yc9mkjzj3w64f48flnjvd193mk9gndrrqbxz3cvmvq3vgahhzyi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/isgd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iter2 = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "iter2";
+        ename = "iter2";
+        version = "0.9.9";
+        src = fetchFromGitHub {
+          owner = "doublep";
+          repo = "iter2";
+          rev = "3b418e05e93ea380baf905de14efda4c174f779c";
+          sha256 = "16mmqnwip3cixsmmij4dnjc8h323z280fk51w5rmwnnb0qmfzp66";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iter2";
+          sha256 = "0kl3z2wwpvk2ddsb3798g41pv0xycsf9dclhv00snpzsr61d9v65";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/iter2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "ivy";
+        ename = "ivy";
+        version = "0.10.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper";
+          rev = "4a2cee03519f98cf95b29905dec2566a39ff717e";
+          sha256 = "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy";
+          sha256 = "0xf5p91r2ljl93wbr5wbgnb4hzhs00wkaf4fmdlf31la8xwwp5ci";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-bibtex = callPackage ({ biblio
+                              , cl-lib ? null
+                              , dash
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , parsebib
+                              , s
+                              , swiper }:
+      melpaBuild {
+        pname = "ivy-bibtex";
+        ename = "ivy-bibtex";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "tmalsburg";
+          repo = "helm-bibtex";
+          rev = "8be32be58e96e3d57b0cc667d05f98c63aa2a32e";
+          sha256 = "1rsn0gxqibw2b31k3hx1fix46f3qmwp013njkpn31fzg3gckbwra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-bibtex";
+          sha256 = "0qni48s09lgzqr98r49dhrzpfqp9yfwga11h7vhqclscjvlalpc2";
+          name = "recipe";
+        };
+        packageRequires = [ biblio cl-lib dash f parsebib s swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-bibtex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-dired-history = callPackage ({ cl-lib ? null
+                                     , counsel
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , ivy
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-dired-history";
+        ename = "ivy-dired-history";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "jixiuf";
+          repo = "ivy-dired-history";
+          rev = "3604840f85e4ff2d7ecab6233e820cb2ec5c8733";
+          sha256 = "0slisbnfcdx8jv0p67ag6s4l0m0jmrwcpm5a2jm6sai9x67ayn4l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-dired-history";
+          sha256 = "1vj073k5m0l8rx9iiisikzl053ad9mlhvbk30f5zmw9sw7b9blyl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib counsel ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-dired-history";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-erlang-complete = callPackage ({ async
+                                       , counsel
+                                       , emacs
+                                       , erlang
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , ivy
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-erlang-complete";
+        ename = "ivy-erlang-complete";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "s-kostyaev";
+          repo = "ivy-erlang-complete";
+          rev = "62e2b14ff25b0c143c882cb38d029b216acc3dd6";
+          sha256 = "0sbxmj3ap0navgi7lxlgwb9ykfb8khgh7nl1hmqfh2jn9vx2s568";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-erlang-complete";
+          sha256 = "00fqjgrhvcn3ibpgiy4b0sr4x9p6ym5r1rvi4rdzsw2i3nxmgf3a";
+          name = "recipe";
+        };
+        packageRequires = [ async counsel emacs erlang ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-erlang-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-feedwrangler = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-feedwrangler";
+        ename = "ivy-feedwrangler";
+        version = "0.4.2";
+        src = fetchFromGitHub {
+          owner = "asimpson";
+          repo = "ivy-feedwrangler";
+          rev = "051eac49cae32b16fab2e06ff0115cd8fb5dc499";
+          sha256 = "1irp76kbg8d7wmgvfjbb4c3wmd29bdrl503jkq4w52fl57g94cvj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-feedwrangler";
+          sha256 = "1mxm37biix8c0s32gfv4pidffvlgdz5i9325zk71fhgfzqwkf5vx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-feedwrangler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-gitlab = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , gitlab
+                              , ivy
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "ivy-gitlab";
+        ename = "ivy-gitlab";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "emacs-gitlab";
+          rev = "5e2add142f26da9c8f114ea8b0a1a2c7cdeea09f";
+          sha256 = "0lhmxwb653l22y8micn0ay43nsmhm7vm71qdy55ln4qzzfxn508s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-gitlab";
+          sha256 = "0gbwsmb6my0327f9j96s20mybnjaw9yaiwhs3sy3vav0qww91z1y";
+          name = "recipe";
+        };
+        packageRequires = [ dash gitlab ivy s ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-gitlab";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-hydra = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , hydra
+                             , ivy
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-hydra";
+        ename = "ivy-hydra";
+        version = "0.10.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper";
+          rev = "4a2cee03519f98cf95b29905dec2566a39ff717e";
+          sha256 = "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-hydra";
+          sha256 = "1xv8nfi6dzhx868h44ydq4f5jmsa7rbqfa7jk8g0z0ifv477hrvx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hydra ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-hydra";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-mpdel = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ivy
+                             , lib
+                             , libmpdel
+                             , melpaBuild
+                             , mpdel }:
+      melpaBuild {
+        pname = "ivy-mpdel";
+        ename = "ivy-mpdel";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "mpdel";
+          repo = "ivy-mpdel";
+          rev = "f9f745792abfed85d535b4cb5b2a95f944bbad1d";
+          sha256 = "1sxd9hny0n751irf87bab0g3ygq6j4g32gdy4yk27y3r00i9g4b6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-mpdel";
+          sha256 = "1v9xiy4bs7r24li6fwi5dfqav8dfr3dy0xhj3wnzvcgwxp5ji56r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy libmpdel mpdel ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-mpdel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-pages = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ivy
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-pages";
+        ename = "ivy-pages";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "igorepst";
+          repo = "ivy-pages";
+          rev = "428a901f94c9625c8407fd2bf76f9d7714d40d87";
+          sha256 = "11lcv8dqlmfqvhn7n3wfp9idr5hf30312p213y5pvs4m70lbc9k2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-pages";
+          sha256 = "0zz8nbjma8r6r7xxbg7xfz13202d77k1ybzpib41slmljzh7xgwv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-pages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-prescient = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , ivy
+                                 , lib
+                                 , melpaBuild
+                                 , prescient }:
+      melpaBuild {
+        pname = "ivy-prescient";
+        ename = "ivy-prescient";
+        version = "2.2.1";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "prescient.el";
+          rev = "1623a0d4e5b9a752db45923fd91da48b49c85068";
+          sha256 = "0yan4m9xf4iia4ns8kqa0zsham4h2mcnwsq9xnfwm26rkn94xrw0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-prescient";
+          sha256 = "017ibpbj390q5d051k3wn50774wvcixzbwikvi5ifzqkhgixqk9c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy prescient ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-prescient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-purpose = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ivy
+                               , lib
+                               , melpaBuild
+                               , window-purpose }:
+      melpaBuild {
+        pname = "ivy-purpose";
+        ename = "ivy-purpose";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "bmag";
+          repo = "ivy-purpose";
+          rev = "0495f2f3aed64d7e0028125e76a9a68f8fc4107e";
+          sha256 = "1hiw7mnrr0cnnp0a2mh837pzdaknadwv0sk82vya6blx0a7m691g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-purpose";
+          sha256 = "0c5n7x3sa57wslwnldvc0i315xhyi1zndyhr07rzka1rhj8v1c4v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy window-purpose ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-purpose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-rich = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ivy
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ivy-rich";
+        ename = "ivy-rich";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "Yevgnen";
+          repo = "ivy-rich";
+          rev = "b40a76d5c2c29fcc035daa04a7125ffadbedc471";
+          sha256 = "0ayf3dwfhafcbqnckm65zy8nc1rv9ji939qfn53wbhxkrgqdicgz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-rich";
+          sha256 = "1il1lhxxg694j9w65qwzjm4p4l3q1h1hfndybj6z1cb72ijw27fr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-rich";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-rtags = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , ivy
+                             , lib
+                             , melpaBuild
+                             , rtags }:
+      melpaBuild {
+        pname = "ivy-rtags";
+        ename = "ivy-rtags";
+        version = "2.20";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "7e6b6f21935eedbe4678ba91c5531ac162b51a5a";
+          sha256 = "12629d1s8rplhjh17n3bmgnkpscq4gljgyl84j8qyhh40dwq1qk0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-rtags";
+          sha256 = "18f0jak643dd8lmx701wgk95miajabd8190ls35831slr28lqxsq";
+          name = "recipe";
+        };
+        packageRequires = [ ivy rtags ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ivy-youtube = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ivy
+                               , lib
+                               , melpaBuild
+                               , request }:
+      melpaBuild {
+        pname = "ivy-youtube";
+        ename = "ivy-youtube";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "squiter";
+          repo = "ivy-youtube";
+          rev = "23e1089d4c4fc32db20df14ba10078aabf117e87";
+          sha256 = "0m70vxjj49kf8bzni2qchgzgx808z1fcfh02cflkhjcb77dkq8d6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ivy-youtube";
+          sha256 = "1masw9qc33valx55klfhzx0bg1hfazmn5yd9wh12q2gjsz8nxyw4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ivy request ];
+        meta = {
+          homepage = "https://melpa.org/#/ivy-youtube";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ix = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , grapnel
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ix";
+        ename = "ix";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "theanalyst";
+          repo = "ix.el";
+          rev = "47632caf925fbb3cc8633834d2d619032d039336";
+          sha256 = "1j6axmi6fxcl2ja4660ygxchggm2dzjngi0k3g6pimawykvgxs3n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ix";
+          sha256 = "1fl76dk8vgw3mrh5iz99lrsllwya6ij9d1lj3szcrs4qnj0b5ql3";
+          name = "recipe";
+        };
+        packageRequires = [ grapnel ];
+        meta = {
+          homepage = "https://melpa.org/#/ix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    iy-go-to-char = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "iy-go-to-char";
+        ename = "iy-go-to-char";
+        version = "3.2.1";
+        src = fetchFromGitHub {
+          owner = "doitian";
+          repo = "iy-go-to-char";
+          rev = "77b40d64eef9dad11eca59f4e3fbc6e849de7434";
+          sha256 = "1mb0k4lmbkbpn6qzzg8n14pybhd5zla77ppqac6a9kw89fj2qj4i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/iy-go-to-char";
+          sha256 = "10szn9y7gl8947p3f9w6p6vzjf1a9cjif9mbj3qdqx4vbsl9mqpz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/iy-go-to-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+    j-mode = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "j-mode";
+        ename = "j-mode";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "zellio";
+          repo = "j-mode";
+          rev = "caa55dfaae01d1875380929826952c2b3ef8a653";
+          sha256 = "07kbicf760nw4qlb2lkf1ns8yzqy0r5jqqwqjbsnqxx4sm52hml9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/j-mode";
+          sha256 = "0f9lsr9hjhdvmzx565ivlncfzb4iq4rjjn6a41053cjy50bl066i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/j-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jabber = callPackage ({ fetchgit
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "jabber";
+        version = "0.8.92";
+        src = fetchgit {
+          url = "https://git.code.sf.net/p/emacs-jabber/git";
+          rev = "2999f58619dd9c20cc6cac8060c4c850a504cbbd";
+          sha256 = "03x93wkd8syj2ybf5ymwcm6khx0h5nhrl8pyync1520294pq6i1i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/caaa21f235c4864f6008fb454d0a970a2fd22a86/recipes/jabber";
+          sha256 = "0saajvfpzgcsqa7h7aa6l0bns6swr40c46md6s0d90x9lrvwp7ws";
+          name = "jabber";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jabber";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jade-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "jade-mode";
+        ename = "jade-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "brianc";
+          repo = "jade-mode";
+          rev = "4e7a20db492719062f40b225ed730ed50be5db56";
+          sha256 = "0krbd1qa2408a97pqhl7fv0x8x1n2l3qq33zzj4w4vv0c55jk43n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jade-mode";
+          sha256 = "156j0d9wx6hrhph0nsjsi1jha4h65rcbrbff1j2yr8vdsszjrs94";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jade-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jammer = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "jammer";
+        ename = "jammer";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "jammer";
+          rev = "1ba232b71507b468c60dc53c2bc8888bef36c858";
+          sha256 = "0x0vz7m9kn7b2aiqvrdqx8qh84ynbpzy2asz2b18l47bcwa7r5bh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jammer";
+          sha256 = "01c4bii7gswhp6z9dgx4bhvsywiwbbdv7mg1zj6vp1530l74zx6z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jammer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    japanlaw = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "japanlaw";
+        ename = "japanlaw";
+        version = "0.9.1";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "japanlaw.el";
+          rev = "d90b204b018893d5d75286c92948c0bddf94cce2";
+          sha256 = "08gkxxaw789g1r0dql11skz6i8bdrrz4wp87fzs9f5rgx99xxr6h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/japanlaw";
+          sha256 = "1pxss1mjk5660k80r1xqgslnbrsr6r4apgp9abjwjfxpg4f6d0sa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/japanlaw";
+          license = lib.licenses.free;
+        };
+      }) {};
+    java-imports = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , pcache
+                                , s }:
+      melpaBuild {
+        pname = "java-imports";
+        ename = "java-imports";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "dakrone";
+          repo = "emacs-java-imports";
+          rev = "275f354c245df741b45e88d085660722e81a12be";
+          sha256 = "1bngn6v6w60qb3zz7s3px7v3wk99a3hfvzrg9l06dz1q7xgyvsi1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/java-imports";
+          sha256 = "1waz6skyrm1n8wpc0pwa652l11wz8qz1m89mqxk27k3lwyd84n98";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pcache s ];
+        meta = {
+          homepage = "https://melpa.org/#/java-imports";
+          license = lib.licenses.free;
+        };
+      }) {};
+    javadoc-lookup = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "javadoc-lookup";
+        ename = "javadoc-lookup";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "javadoc-lookup";
+          rev = "507a2dd443d60b537b8f779c1847e2cd0ccd1382";
+          sha256 = "16gywcma1s8kslwznlxwlx0xj0gs5g31637kb74vfdplk48f04zj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/javadoc-lookup";
+          sha256 = "1fffs0iqkk9rg5vbxifvn09j4i2751p81bzcvy5fslr3r1r2nv79";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/javadoc-lookup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jdecomp = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "jdecomp";
+        ename = "jdecomp";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "xiongtx";
+          repo = "jdecomp";
+          rev = "1590b06f139f036c1041e1ce5c0acccaa24b31a7";
+          sha256 = "0sb9vzn6cycys31r98kxwgpn7v9aw5ck86nkskmn9hhhkrfsabii";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jdecomp";
+          sha256 = "1vgjmz7rxvgy9lprzr5b018lzqy3h0zg8913la1bzgwlm3mr68y5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jdecomp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jedi = callPackage ({ auto-complete
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , jedi-core
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "jedi";
+        ename = "jedi";
+        version = "0.2.7";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-jedi";
+          rev = "8da022c8cda511428c72a6dc4c5be3c0a0c88584";
+          sha256 = "0xbp9fcxgbf298w05hvf52z41kk7r52975ailgdn8sg60xc98fa7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jedi";
+          sha256 = "1777060q25k9n2g6h1lm5lkki900pmjqkxq72mrk3j19jr4pk9m4";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete emacs jedi-core ];
+        meta = {
+          homepage = "https://melpa.org/#/jedi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jedi-core = callPackage ({ cl-lib ? null
+                             , emacs
+                             , epc
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , python-environment }:
+      melpaBuild {
+        pname = "jedi-core";
+        ename = "jedi-core";
+        version = "0.2.7";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-jedi";
+          rev = "8da022c8cda511428c72a6dc4c5be3c0a0c88584";
+          sha256 = "0xbp9fcxgbf298w05hvf52z41kk7r52975ailgdn8sg60xc98fa7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jedi-core";
+          sha256 = "0pzi32zdb4g9n4kvpmkdflmqypa7nckmnjq60a3ngym4wlzbb32f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs epc python-environment ];
+        meta = {
+          homepage = "https://melpa.org/#/jedi-core";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jetbrains = callPackage ({ cl-lib ? null
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "jetbrains";
+        ename = "jetbrains";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "jetbrains.el";
+          rev = "38e136079f3f2ddbe0e8b7dec01cf6b515e897d8";
+          sha256 = "1ji64qip5raf0lbv7fv36rd4fwa33zn0xi7sa0zrgf0kcsr0qasb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jetbrains";
+          sha256 = "0254dkzf2x5dj3j549xjash0lsadkn0bdcyjkjlrv8hqvdr1f1m7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/jetbrains";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jinja2-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "jinja2-mode";
+        ename = "jinja2-mode";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "paradoxxxzero";
+          repo = "jinja2-mode";
+          rev = "cfaa7bbe7bb290cc500440124ce89686f3e26f86";
+          sha256 = "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jinja2-mode";
+          sha256 = "0480fh719r4v7xdwyf4jlg1k36y54i5zrv7gxlhfm66pil75zafx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jinja2-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jpop = callPackage ({ dash
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "jpop";
+        ename = "jpop";
+        version = "3.2.3";
+        src = fetchFromGitHub {
+          owner = "domtronn";
+          repo = "jpop.el";
+          rev = "f3eed65e54dc2daaa7678e6eb169d35c4a7d1e63";
+          sha256 = "17wiv1b8c56c2zi9b9mjm37kl7yc735nk3188wnmq3fqjgdpwpwg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jpop";
+          sha256 = "00chh1aqnkkkhdp44sapdjx37cbn92g42wapdq7kcl8v1v0xmnjr";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jpop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jq-mode = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "jq-mode";
+        ename = "jq-mode";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "ljos";
+          repo = "jq-mode";
+          rev = "d6bbd83baf0746f22564f7ae92db44e06da6e08c";
+          sha256 = "1sk603258gvnfrvl641xfmgapg67z44wnlx6qba73wn3f2055765";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jq-mode";
+          sha256 = "1xvh641pdkvbppb2nzwn1ljdk7sv6laq29kdv09kxaqd89vm0vin";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jq-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js-auto-format-mode = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "js-auto-format-mode";
+        ename = "js-auto-format-mode";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "ybiquitous";
+          repo = "js-auto-format-mode";
+          rev = "59caa137c4beec4dec4a7d7ebf8bcb6af44d72f0";
+          sha256 = "10xxg8lc4g9wdl4lz7kx6la23agpbq4ls1mn5d4y364j8nfcxf9g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js-auto-format-mode";
+          sha256 = "1gxf7xz1j3ga2pk5w8cgny7l8kid59zap2a97lhb50w1qczfqqzs";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/js-auto-format-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js-comint = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "js-comint";
+        ename = "js-comint";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "js-comint";
+          rev = "83e932e4a83d1a69098ee87e0ab911d299368e60";
+          sha256 = "1r2fwsdfkbqnm4n4dwlp7gc267ghj4vd0naj431w7pl529dmrb6x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js-comint";
+          sha256 = "0jvkjb0rmh87mf20v6rjapi2j6qv8klixy0y0kmh3shylkni3an1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/js-comint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js2-closure = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , js2-mode
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "js2-closure";
+        ename = "js2-closure";
+        version = "2.2.1";
+        src = fetchFromGitHub {
+          owner = "jart";
+          repo = "js2-closure";
+          rev = "74a75f001a8bc2b9c02b9e8b4557f7ee3c5f84fb";
+          sha256 = "1gapx656s4ngy8s8y1p56xxnclwf4qqg83l3jizknxky7yhayyl9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js2-closure";
+          sha256 = "19732bf98lk2ah2ssgkr1ngxx7rz3nhsiw84lsfmydb0vvm4fpk7";
+          name = "recipe";
+        };
+        packageRequires = [ js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/js2-closure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js2-highlight-vars = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , js2-mode
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "js2-highlight-vars";
+        ename = "js2-highlight-vars";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "js2-highlight-vars.el";
+          rev = "bf38d12cf65eebc8b81866fd03f6a0389bb2a9ed";
+          sha256 = "0r2szaxr3q0gvxqd9asn03q8jf3nclxv4mqdsjn96s98n45x388l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js2-highlight-vars";
+          sha256 = "07bq393g2jy8ydvaqyqn6vdyfvyminvgi239yvwzg5g9a1xjc475";
+          name = "recipe";
+        };
+        packageRequires = [ js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/js2-highlight-vars";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js2-mode = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "js2-mode";
+        ename = "js2-mode";
+        version = "20180301";
+        src = fetchFromGitHub {
+          owner = "mooz";
+          repo = "js2-mode";
+          rev = "38e425785d5ea4600c3642f6500062ecedf694a4";
+          sha256 = "1afvm8cp9h0v0pk7v3jwag6f608v1787l7m7a9541ld616cgb5x7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js2-mode";
+          sha256 = "0f9cj3n55qnlifxwk1yp8n1kfd319jf7qysnkk28xpvglzw24yjv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/js2-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js2-refactor = callPackage ({ dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , js2-mode
+                                , lib
+                                , melpaBuild
+                                , multiple-cursors
+                                , s
+                                , yasnippet }:
+      melpaBuild {
+        pname = "js2-refactor";
+        ename = "js2-refactor";
+        version = "0.9.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "js2-refactor.el";
+          rev = "089c7800e3e7b0a89ee2392037ac07851bcee298";
+          sha256 = "1iwblf5i7k1i1ax9pjv7n8zv9q157krirdn0gwcib6dwza2i30jp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js2-refactor";
+          sha256 = "09dcfwpxxyw0ffgjjjaaxbsj0x2nwfrmxy1a05h8ba3r3jl4kl1r";
+          name = "recipe";
+        };
+        packageRequires = [ dash js2-mode multiple-cursors s yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/js2-refactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    js3-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "js3-mode";
+        ename = "js3-mode";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "thomblake";
+          repo = "js3-mode";
+          rev = "a1943e3b69ccf7592ef6e3c992c06af978823da5";
+          sha256 = "1ild74qgx88gxrsmza5zjn51636zwxyc1j1c31m1xfw0najvl0dd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/js3-mode";
+          sha256 = "12s5qf6zfcv4m5kqxvh9b4zgwf433x39a210d957gjjp5mywbb1r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/js3-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jsfmt = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "jsfmt";
+        ename = "jsfmt";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "brettlangdon";
+          repo = "jsfmt.el";
+          rev = "192a3db81145c6fb9c0a9830db01ac4ec4f5d677";
+          sha256 = "07bnvacmg6xm8r8ksiv7zkaghmad3s1qwy00fsy5pa47spxm3lxn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jsfmt";
+          sha256 = "1syy32sv2d57b3gja0ly65h36mfnyq6hzf5lnnl3r58yvbdzngqd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jsfmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    json-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , json-reformat
+                             , json-snatcher
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "json-mode";
+        ename = "json-mode";
+        version = "1.7.0";
+        src = fetchFromGitHub {
+          owner = "joshwnj";
+          repo = "json-mode";
+          rev = "9ba01b868a6b138feeff82b9eb0abd331d29325f";
+          sha256 = "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/json-mode";
+          sha256 = "014j10wgxsqy6d6aksnkz2dr5cmpsi8c7v4a825si1vgb4622a70";
+          name = "recipe";
+        };
+        packageRequires = [ json-reformat json-snatcher ];
+        meta = {
+          homepage = "https://melpa.org/#/json-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    json-navigator = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , hierarchy
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "json-navigator";
+        ename = "json-navigator";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "json-navigator";
+          rev = "bc5634fc78d2e43ebd3c255350829877f3e4549c";
+          sha256 = "1j2lic9sn00j6pzq5qslv9m2z0rvsxkvz73z8swp7vcrsgz7qvqd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/json-navigator";
+          sha256 = "0yfl31cg0mkgsbpgx00m9h2cxnhsavcf7zlspb0qr4g2zq6ya1wx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hierarchy ];
+        meta = {
+          homepage = "https://melpa.org/#/json-navigator";
+          license = lib.licenses.free;
+        };
+      }) {};
+    json-reformat = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "json-reformat";
+        ename = "json-reformat";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "gongo";
+          repo = "json-reformat";
+          rev = "b9bd375ec1deb10d2ba09c409bdcf99c56d7a716";
+          sha256 = "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/json-reformat";
+          sha256 = "1m5p895w9qdgb8f67xykhzriribgmp20a1lvj64iap4aam6wp8na";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/json-reformat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    json-snatcher = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "json-snatcher";
+        ename = "json-snatcher";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "Sterlingg";
+          repo = "json-snatcher";
+          rev = "c4cecc0a5051bd364373aa499c47a1bb7a5ac51c";
+          sha256 = "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/json-snatcher";
+          sha256 = "0f6j9g3c5fz3wlqa88706cbzinrs3dnfpgsr2d3h3117gic4iwp4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/json-snatcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jsonnet-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "jsonnet-mode";
+        ename = "jsonnet-mode";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "mgyucht";
+          repo = "jsonnet-mode";
+          rev = "a729ccf20aa04041b0dfe1178ba70d750f648e2f";
+          sha256 = "1ry95sv9ydcr3da16gjjh26wrn4ssf06c5zv084s33id6cipg2n3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jsonnet-mode";
+          sha256 = "1aadys887szlc924qr645lby9f8vzvxkwhq6byhppk1b01h911ia";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jsonnet-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jsx-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "jsx-mode";
+        ename = "jsx-mode";
+        version = "0.1.10";
+        src = fetchFromGitHub {
+          owner = "jsx";
+          repo = "jsx-mode.el";
+          rev = "1ca260b76f6e6251c528ed89501597a5b456c179";
+          sha256 = "1wx28rr5dk238yz07xn95v88qmv10c1gz9pcxard2kszpnmrn6dx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jsx-mode";
+          sha256 = "1lnjnyn8qf3biqr92z443z6b58dly7glksp1g986vgqzdprq3n1b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jsx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    julia-repl = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "julia-repl";
+        ename = "julia-repl";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "tpapp";
+          repo = "julia-repl";
+          rev = "d8b94c6dbfa47fd51540b9d5b1bb0c2dfce3ebc2";
+          sha256 = "027ib0i5af23s3kxsfbxh3jgw944crry0v4c7yxz9l8r8p3wpq1k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/julia-repl";
+          sha256 = "1k8a54s7g64zasmmnywygr0ra3s3din5mkqb7b5van2l0d4hcmzn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/julia-repl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jump = callPackage ({ cl-lib ? null
+                        , fetchFromGitHub
+                        , fetchurl
+                        , findr
+                        , inflections
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "jump";
+        ename = "jump";
+        version = "2.5";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "jump.el";
+          rev = "9519c675e8a650f6afade7d870e925d0fb50f112";
+          sha256 = "1bm1mgd632gq3cl4zrq66vnqq9ynvc01iy6szp464ccnm3cmqdzr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jump";
+          sha256 = "18g0fa9g8m9jscsm6pn7jwdq94l4aj0dfhrv2hqapq1q1x537364";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib findr inflections ];
+        meta = {
+          homepage = "https://melpa.org/#/jump";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jump-to-line = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "jump-to-line";
+        ename = "jump-to-line";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "ongaeshi";
+          repo = "jump-to-line";
+          rev = "01ef8c3529d85e6c59cc20840acbc4a8e8325bc8";
+          sha256 = "1s9plmg323m1p625xqnks0yqz0zlsjacdj7pv8f783r0d9jmfq3s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jump-to-line";
+          sha256 = "09ifhsggl5mrb6l8nqnl38yph0v26v30y98ic8hl23i455hqkkdr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/jump-to-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    jvm-mode = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "jvm-mode";
+        ename = "jvm-mode";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "martintrojer";
+          repo = "jvm-mode.el";
+          rev = "16d84c8c80bb214367bae6ed30b08756521c27d6";
+          sha256 = "1785nsv61m51lpykai2wxrv6zmwbm5654v937fgw177p37054s83";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/jvm-mode";
+          sha256 = "1r283b4s0pzq4hgwcz5cnhlvdvq4gy0x51g3vp0762s8qx969a5w";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/jvm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaesar = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "kaesar";
+        ename = "kaesar";
+        version = "0.9.0";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-kaesar";
+          rev = "4fa74851cd928f30e9f2ee1aa27ee6074ad253ea";
+          sha256 = "03l9w238a5kyfin3v1fy1q2pl0gvmb87j0v89g6nk114s7m4y3r8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaesar";
+          sha256 = "0zhi1dv1ay1azh7afq4x6bdg91clwpsr13nrzy7539yrn9sglj5l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/kaesar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaesar-file = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , kaesar
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "kaesar-file";
+        ename = "kaesar-file";
+        version = "0.9.0";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-kaesar";
+          rev = "4fa74851cd928f30e9f2ee1aa27ee6074ad253ea";
+          sha256 = "03l9w238a5kyfin3v1fy1q2pl0gvmb87j0v89g6nk114s7m4y3r8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaesar-file";
+          sha256 = "0dcizg82maad98mbqqw5lamwz7n2lpai09jsrc66x3wy8k784alc";
+          name = "recipe";
+        };
+        packageRequires = [ kaesar ];
+        meta = {
+          homepage = "https://melpa.org/#/kaesar-file";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaesar-mode = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , kaesar
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "kaesar-mode";
+        ename = "kaesar-mode";
+        version = "0.9.0";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-kaesar";
+          rev = "4fa74851cd928f30e9f2ee1aa27ee6074ad253ea";
+          sha256 = "03l9w238a5kyfin3v1fy1q2pl0gvmb87j0v89g6nk114s7m4y3r8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaesar-mode";
+          sha256 = "0yqnlchbpmhsqc8j531n08vybwa32cy0v9sy4f9fgxa90rfqczry";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib kaesar ];
+        meta = {
+          homepage = "https://melpa.org/#/kaesar-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kakapo-mode = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "kakapo-mode";
+        ename = "kakapo-mode";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "listx";
+          repo = "kakapo-mode";
+          rev = "fe3d579867f7465cd3ad04f29b4b2b3b820edc01";
+          sha256 = "0b6af8hnrn0v4z1xpahjfpw5iga2bmgd3qwfn3is2rygsn5rkm40";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kakapo-mode";
+          sha256 = "0a99cqflpzasl4wcmmf99aj8xgywkym37j7mvnsajrsk5wawdlss";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/kakapo-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kaolin-themes = callPackage ({ autothemer
+                                 , cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "kaolin-themes";
+        ename = "kaolin-themes";
+        version = "1.4.1";
+        src = fetchFromGitHub {
+          owner = "ogdenwebb";
+          repo = "emacs-kaolin-themes";
+          rev = "b0d8d0eb3e7d762a53587736894be0d0901c067a";
+          sha256 = "0bh7cgr10in3vcc1l41qsxakajb0kp7gia959hryqjcf2aqipzvp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kaolin-themes";
+          sha256 = "1pd2v54d578f1wbwvqzplkdz1qvy8w8s6na511b0v5y9sksgm2xw";
+          name = "recipe";
+        };
+        packageRequires = [ autothemer cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kaolin-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    karma = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "karma";
+        ename = "karma";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "tonini";
+          repo = "karma.el";
+          rev = "940b8b8f228b04f2dbd9f9f4451ffa561a35af93";
+          sha256 = "0ha4y7p100n2qkin9f4kna0s9ysa6dgvvvmgvqgnbz8x5v2ak22y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/karma";
+          sha256 = "19wl7js7wmw7jv2q3l4r5zl718lhy2a0jhl79k57ihwhxdc58fwc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/karma";
+          license = lib.licenses.free;
+        };
+      }) {};
+    key-chord = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "key-chord";
+        ename = "key-chord";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "key-chord";
+          rev = "8468998946367157830df19a1e92785d22a34178";
+          sha256 = "10ldhwp9a21r9g72hzaig1h5yh2zblny0r36nf5nz6gzikfcq0cd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/key-chord";
+          sha256 = "1g0jqmnn575h5n4figxbc5xs76zl8b1cdqa6wbi3d1p2rn3g8scr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/key-chord";
+          license = lib.licenses.free;
+        };
+      }) {};
+    key-combo = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "key-combo";
+        ename = "key-combo";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "uk-ar";
+          repo = "key-combo";
+          rev = "0bc0cf6466a4257047a21a6d01913e92e6862165";
+          sha256 = "14ijniyvcfmj4y77yhiplsclincng2r3jbdnmmdnwzliv65f7l6q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/key-combo";
+          sha256 = "1v8saw92jphvjkyy7j9jx7cxzgisl4zpf4wjzdjfw3la5lz11waf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/key-combo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    key-seq = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , key-chord
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "key-seq";
+        ename = "key-seq";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "vlevit";
+          repo = "key-seq.el";
+          rev = "e29b083a6427d061638749194fc249ef69ad2cc0";
+          sha256 = "05vpydcgiaya35b62cdjxna9y02vnwzzg6p8jh0dkr9k44h4iy3f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/key-seq";
+          sha256 = "166k6hl9vvsnnksvhrv5cbhv9bdiclnbfv7qf67q4c1an9xzqi74";
+          name = "recipe";
+        };
+        packageRequires = [ key-chord ];
+        meta = {
+          homepage = "https://melpa.org/#/key-seq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keycast = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "keycast";
+        ename = "keycast";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "keycast";
+          rev = "0d28c26b07a062ab58c01c6cbedc3e68bd4ec8a1";
+          sha256 = "0wfy5wbr150y57mlzsxhb6bq9ycqj2jk5i6nhwl4q8b6xd3mh6p6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keycast";
+          sha256 = "19qq5y1zjp3029kfq0c59xl9xnxqmdn2pd04sblznchcr9jdy5id";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/keycast";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keychain-environment = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "keychain-environment";
+        ename = "keychain-environment";
+        version = "2.4.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "keychain-environment";
+          rev = "d3643196de6dc79ea77f9f4805028350fd76100b";
+          sha256 = "0wzs77nwal6apinc39d4arj3lralv2cb9aw9gkikk46fgk404hwj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keychain-environment";
+          sha256 = "1w77cg00bwx68h0d6k6r1fzwdwz97q12ch2hmpzjnblqs0i4sv8v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/keychain-environment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keydef = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "keydef";
+        ename = "keydef";
+        version = "1.15";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "keydef";
+          rev = "dff2be9f58d12d8c6a490ad0c1b2b10b55528dc0";
+          sha256 = "0dkc51bmix4b8czs2wg6vz8vk32qlll1b9fjmx6xshrxm85cyhvv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keydef";
+          sha256 = "0yb2vgj7abyg8j7qmv74nsanv50lf350q1m58rjv8wm31yykg992";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/keydef";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keyfreq = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "keyfreq";
+        ename = "keyfreq";
+        version = "1.8";
+        src = fetchFromGitHub {
+          owner = "dacap";
+          repo = "keyfreq";
+          rev = "f3a96693e2e4c6893198a0223e3f3c648ae09cec";
+          sha256 = "1x87mbnzkggx5llh0i0s3sj1nfw7liwnlqc9csya517w4x5mhl8i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keyfreq";
+          sha256 = "1rw6hzmw7h5ngvndy7aa41pq911y2hr9kqc9w4gdd5v2p4ln1qh7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/keyfreq";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keymap-utils = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "keymap-utils";
+        ename = "keymap-utils";
+        version = "3.0.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "keymap-utils";
+          rev = "1ad766dbc111ec78b1a292da97b9bd4856cd2ff7";
+          sha256 = "0imx8zp21bm066bzdynvasylrlhw0gr8mpk2bwkz8j1y5lsp54v8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keymap-utils";
+          sha256 = "0nbcwz4nls0pva79lbx91bpzkl38g98yavwkvg2rxbhn9vjbhzs9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/keymap-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    keyset = callPackage ({ cl-lib ? null
+                          , dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "keyset";
+        ename = "keyset";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "keyset";
+          rev = "25658ef79d26971ce41d9df207dff58d38daa091";
+          sha256 = "0z6sgz8nywsd00zaayafwy5hfi7kzxfifjkfr5cn1l7wlypyksfv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/keyset";
+          sha256 = "1kfw0pfb6qm2ji1v0kb8xgz8q2yd2k9kxmaz5vxcdixdlax3xiqg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/keyset";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kibit-helper = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "kibit-helper";
+        ename = "kibit-helper";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "brunchboy";
+          repo = "kibit-helper";
+          rev = "ec5f154db3bb0c838e86f527353f08644cede926";
+          sha256 = "0ky167xh1hrmqsldybzjhyqjizgjzs1grn5mf8sm2j9qwcvjw2zv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kibit-helper";
+          sha256 = "15viybjqksylvm5ash2kzsil0cpdka56wj1rryixa8y1bwlj8y4s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/kibit-helper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kill-or-bury-alive = callPackage ({ cl-lib ? null
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "kill-or-bury-alive";
+        ename = "kill-or-bury-alive";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "kill-or-bury-alive";
+          rev = "51daf55565034b8cb6aa3ca2aa0a827e31751041";
+          sha256 = "1qbdxjni1brhsw6m4cvd2jjaf3y8v3fkbxxf0pvsb089mkpi7mpq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kill-or-bury-alive";
+          sha256 = "0mm0m8hpy5v98cap4f0s38dcviirm7s6ra4l94mknyvnx0f73lz8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kill-or-bury-alive";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kill-ring-search = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "kill-ring-search";
+        ename = "kill-ring-search";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "kill-ring-search.el";
+          rev = "3a5bc1767f742c91aa788df79ecec836a0946edb";
+          sha256 = "0axvhikhg4fikiz4ifg0p4a5ygphbpjs0wd0gcbx29n0y54d1i93";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kill-ring-search";
+          sha256 = "1jggi6r5j2dr9y17v4cyskc0wydfdpqgp1pib5dr2kg6n6w0s5xl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kill-ring-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    killer = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "killer";
+        ename = "killer";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "killer";
+          rev = "52256640aebbb8c25f8527843c2425b848031cd8";
+          sha256 = "0imylcaiwpzvvb3g8kpsna1vk7v7bwdjfcsa98i41m1rv9yla86l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/killer";
+          sha256 = "10z4vqwrpss7mk0gq8xdsbsl0qibpp7s1g0l8wlmrsgn6kjkr2ma";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/killer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kivy-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "kivy-mode";
+        ename = "kivy-mode";
+        version = "1.10.1";
+        src = fetchFromGitHub {
+          owner = "kivy";
+          repo = "kivy";
+          rev = "0c63c698fdf3f283581dcb53f2909a0bf7ab2737";
+          sha256 = "0jn16i7qnf80irxi149cfn8z38czii8paazfs8mz1qzgmx2ycj2i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kivy-mode";
+          sha256 = "02l230rwivr7rbiqm4vg70458z35f9v9w3mdapcrqd5d07y5mvi1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/kivy-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kiwix = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "kiwix";
+        ename = "kiwix";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "stardiviner";
+          repo = "kiwix.el";
+          rev = "b84a5ff33efdf13dda22ed32ea37a09b15cd1690";
+          sha256 = "07nb141hxjabin8vr14hpn80vzrjaq1b3h6p76m0bwxvzbi8765r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kiwix";
+          sha256 = "0x5ld557kxzx5s8ziy5axgvm1fxlq81l9gvinfgs8f257vjlki07";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/kiwix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    know-your-http-well = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "know-your-http-well";
+        ename = "know-your-http-well";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "for-GET";
+          repo = "know-your-http-well";
+          rev = "ab8cf84ad8031ff85b983c528ebb7117dc784aad";
+          sha256 = "19qky551arnb7gl7w0yp54kkdls03m9wn9bxnr7hm5nv1bml2y64";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/know-your-http-well";
+          sha256 = "0k2x0ajxkivim8nfpli716y7f4ssrmvwi56r94y34x4j3ib3px3q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/know-your-http-well";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ksp-cfg-mode = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ksp-cfg-mode";
+        ename = "ksp-cfg-mode";
+        version = "0.5.1";
+        src = fetchFromGitHub {
+          owner = "lashtear";
+          repo = "ksp-cfg-mode";
+          rev = "fda64705f605fb8fccee53a5040fe4865ca17d44";
+          sha256 = "19brscxk85cky2kzwyyljz6xqrfvyyyg7dqmadlnlrf8kw9wnb2x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ksp-cfg-mode";
+          sha256 = "0azcn4qvziacbw1qy33fwdaldw7xpzr672vzjsqhr0b2vg9m2ipi";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ksp-cfg-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kubernetes = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , magit
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "kubernetes";
+        ename = "kubernetes";
+        version = "0.12.0";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "kubernetes-el";
+          rev = "d4ce5eb5da1ea0879b7d3266d97aecc8aee2807c";
+          sha256 = "1asjmxw24bvaapjaljj37pv9cbvqqw7577q1mds4lnicvnbdsxzi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kubernetes";
+          sha256 = "06357a8y3rpvid03r9vhmjgq97hmiah5g8gff32dij9424vidil9";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/kubernetes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kubernetes-evil = callPackage ({ evil
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , kubernetes
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "kubernetes-evil";
+        ename = "kubernetes-evil";
+        version = "0.12.0";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "kubernetes-el";
+          rev = "d4ce5eb5da1ea0879b7d3266d97aecc8aee2807c";
+          sha256 = "1asjmxw24bvaapjaljj37pv9cbvqqw7577q1mds4lnicvnbdsxzi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kubernetes-evil";
+          sha256 = "12ygfs6g9aivf2ws3lxwjm5xnd2kidhli889icpygd5v7gnk9pg8";
+          name = "recipe";
+        };
+        packageRequires = [ evil kubernetes ];
+        meta = {
+          homepage = "https://melpa.org/#/kubernetes-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    kurecolor = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "kurecolor";
+        ename = "kurecolor";
+        version = "1.2.6";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "kurecolor";
+          rev = "a27153f6a01f38226920772dc4917b73166da5e6";
+          sha256 = "04av67q5841jli6rp39hav3a5gr2vcf3db4qsv553i23ffplb955";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/kurecolor";
+          sha256 = "0q0q0dfv376h7j3sgwxqwfpxy1qjbvb6i5clsxz9xp4ly89w4d4f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/kurecolor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    labburn-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "labburn-theme";
+        ename = "labburn-theme";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "ksjogo";
+          repo = "labburn-theme";
+          rev = "bfa1d9f1c7e107cb45754fe57e4e72a9be70e9d1";
+          sha256 = "1r221fwfigr6fk4p3xh00wgw9wxm2gpzvj17jf5pgd7cvyspchsy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/labburn-theme";
+          sha256 = "09qqb62hfga88zka0pc27rc8i43cxi84cv1x8wj0vvzx6mvic1lm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/labburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    langtool = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "langtool";
+        ename = "langtool";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-langtool";
+          rev = "d93286722cff3fecf8641a4a6c3b0691f30362fe";
+          sha256 = "17xa055705n4jb7nafqvqgl0a6fdaxp3b3q8q0gsv5vzycsc74ga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/langtool";
+          sha256 = "1xq70jyhzg0qmvialy015crbdk9rdibhwpl36khab9hi2999wxyw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/langtool";
+          license = lib.licenses.free;
+        };
+      }) {};
+    latex-extra = callPackage ({ auctex
+                               , cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "latex-extra";
+        ename = "latex-extra";
+        version = "1.14";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "latex-extra";
+          rev = "82d99b8b0c2db20e5270749582e03bcc2443ffb5";
+          sha256 = "15m7zvdhg5z7d8alrw66p703wdp5r57lxrgq3zz7xc4hscwghlb1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/latex-extra";
+          sha256 = "1w98ngxymafigjpfalybhs12jcf4916wk4nlxflfjcx8ryd9wjcj";
+          name = "recipe";
+        };
+        packageRequires = [ auctex cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/latex-extra";
+          license = lib.licenses.free;
+        };
+      }) {};
+    latex-math-preview = callPackage ({ fetchFromGitLab
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "latex-math-preview";
+        ename = "latex-math-preview";
+        version = "0.7.2";
+        src = fetchFromGitLab {
+          owner = "latex-math-preview";
+          repo = "latex-math-preview";
+          rev = "c1c87c4c5501f98b97af19f7e3454a2369265edc";
+          sha256 = "118xrgrnwsmsysmframf6bmb0gkrdrm3jbkgivzxs41cw92fhbzw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/latex-math-preview";
+          sha256 = "14bn0q5czrrkb1vjdkwx6f2x4zwjkxgrc0bcncv23l13qls1gkmr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/latex-math-preview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    latex-unicode-math-mode = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "latex-unicode-math-mode";
+        ename = "latex-unicode-math-mode";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "Christoph-D";
+          repo = "latex-unicode-math-mode";
+          rev = "3b82347291edcb32e4062b0048c367a3079b3e8c";
+          sha256 = "1xylfg8xpyb2m0qnysf58cl05ibbg4drhgq7msiiql2qrdzvpx9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/latex-unicode-math-mode";
+          sha256 = "1p9gpp28vylibv1s95bzfgscznw146ybgk6f3qdbbnafrcrmifcr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/latex-unicode-math-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lcb-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lcb-mode";
+        ename = "lcb-mode";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "peter-b";
+          repo = "lcb-mode";
+          rev = "e5b0b6ca6c5feeb2502d66a760ddf5bb590d04c4";
+          sha256 = "0i58qz4l5rzwp9kx4r9f818ly21ys71zh1zjxppp220p3yydljfq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lcb-mode";
+          sha256 = "184vd5ll0ms2lspzv8zz2zbairsr8i9p3gs28hrnnwm6mrpx4n18";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lcb-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lcr = callPackage ({ dash
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "lcr";
+        ename = "lcr";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "jyp";
+          repo = "lcr";
+          rev = "c14f40692292d59156c7632dbdd2867c086aa75f";
+          sha256 = "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lcr";
+          sha256 = "07syirjlrw8g95zk273953mnmg9x4bv8jpyvvzghhin4saiiiw3k";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lcr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    leanote = callPackage ({ async
+                           , cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , let-alist
+                           , lib
+                           , melpaBuild
+                           , pcache
+                           , request
+                           , s }:
+      melpaBuild {
+        pname = "leanote";
+        ename = "leanote";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "aborn";
+          repo = "leanote-emacs";
+          rev = "1bd49fdf13ef707bae7edaa724a1592aa7fb002f";
+          sha256 = "1k58rhk5p819cvfa6zg7j3ysvzhq6dc433fzhh1ff0gwga2vrqbz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/leanote";
+          sha256 = "1xnfv7bpkw3ir402962zbp856d56nas098nkf7bamnsnax6kkqw7";
+          name = "recipe";
+        };
+        packageRequires = [ async cl-lib emacs let-alist pcache request s ];
+        meta = {
+          homepage = "https://melpa.org/#/leanote";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ledger-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "ledger-mode";
+        ename = "ledger-mode";
+        version = "3.1.1";
+        src = fetchFromGitHub {
+          owner = "ledger";
+          repo = "ledger-mode";
+          rev = "96c4e81eed52e0ef514dc15a6ea6d877b3409a2a";
+          sha256 = "12q6wblwnb6y5c1882jz14742fqbm6p5jpzlvz7p90ylqfl7h989";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ledger-mode";
+          sha256 = "10asbcb5syv3b75bngsab3c84dp2xmc0q7s29im6kf4mzv5zcfcf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ledger-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lentic = callPackage ({ dash
+                          , emacs
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , m-buffer
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "lentic";
+        ename = "lentic";
+        version = "0.11";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "lentic";
+          rev = "8655ecd51e189bbdd6a4d8405dc3ea2e689c709a";
+          sha256 = "04h6vk7w25yp4kzkwqnsmc59bm0182qqkyk5nxm3a1lv1v1590lf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lentic";
+          sha256 = "0y94y1qwj23kqp491b1fzqsrjak96k1dmmzmakbl7q8vc9bncl5m";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f m-buffer s ];
+        meta = {
+          homepage = "https://melpa.org/#/lentic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    less-css-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "less-css-mode";
+        ename = "less-css-mode";
+        version = "0.21";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "less-css-mode";
+          rev = "59bf174c4e9f053ec2a7ef8c8a8198490390f6fb";
+          sha256 = "1rkjamdy2a80w439vb2hhr7vqjj47wi2azlr7yq2xdz9851xsx9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/less-css-mode";
+          sha256 = "188iplnwwhawq3dby3388kimy0jh1k9r8v9nxz52hy9rhh9hykf8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/less-css-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    letcheck = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "letcheck";
+        ename = "letcheck";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "letcheck";
+          rev = "e85b185993a2eaeec6490709f4c131fde2edd672";
+          sha256 = "1l9qjmyb4a3f6i2iimpmjczbx890cd1p24n941s13sg67xfbm7hn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/letcheck";
+          sha256 = "1sjwi1ldg6b1qvj9cvfwxq3qlkfas6pm8zasf43baljmnz38mxh2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/letcheck";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lfe-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lfe-mode";
+        ename = "lfe-mode";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "rvirding";
+          repo = "lfe";
+          rev = "af14b1439097850ffa39935419ed83f5bcaa6d09";
+          sha256 = "0pgwi0h0d34353m39jin8dxw4yykgfcg90k6pc4qkjyrg40hh4l6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lfe-mode";
+          sha256 = "0smncyby53ipm8yqslz88sqjafk0x6r8d0qwk4wzk0pbgfyklhgs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lfe-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    libelcouch = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , request }:
+      melpaBuild {
+        pname = "libelcouch";
+        ename = "libelcouch";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "libelcouch";
+          rev = "1396144ebbb9790d4c744db0d4aacc0211b8e8e6";
+          sha256 = "1r0wrqiqar3jw5xbp1qv7kj7m1fdzciyy9690hwiq99dcm8nlri3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/libelcouch";
+          sha256 = "1zfjyfyjd59z0ns32v2b0r5g9ypjxrlmkx3djmxsmzd4an8ciq3p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/libelcouch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    libmpdel = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "libmpdel";
+        ename = "libmpdel";
+        version = "0.7.0";
+        src = fetchFromGitHub {
+          owner = "mpdel";
+          repo = "libmpdel";
+          rev = "fcc719c2f23df4b5838eab76a40fef11055203de";
+          sha256 = "0qw6rrb16bbhwg1gci4ymn2nshzf21lcf2nyphxbn4vcv400cw4k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/libmpdel";
+          sha256 = "0qi9g3czwzi9hhp7gjczpzjx9vgzz52xi91332l0sxcxmwbawjp1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/libmpdel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lice = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "lice";
+        ename = "lice";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "buzztaiki";
+          repo = "lice-el";
+          rev = "69f2d87984f3f3d469db35e241fbbe979384cd03";
+          sha256 = "0hi8s20vw4a5i5n5jlm5dzgsl1qpfyqbpskqszjls1xrrf3dd4zl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lice";
+          sha256 = "1hv2hz3153x0gk7f2js18dbx5pyprfdf2pfxb658fj16vxpp7y6x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lice";
+          license = lib.licenses.free;
+        };
+      }) {};
+    line-up-words = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "line-up-words";
+        ename = "line-up-words";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "janestreet";
+          repo = "line-up-words";
+          rev = "8de4f19b24caed1ca409925a93fef2625c84fe87";
+          sha256 = "1qdn24zan6iiai7cfzxn4x8jslb52yhz83mpgmv4932yk4pfcmsd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/line-up-words";
+          sha256 = "0agsrrkwwfmbiy4z3g4hkrpfr3nqgd5lwfn18qrdxynijd5rqs79";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/line-up-words";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lingr = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "lingr";
+        ename = "lingr";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "lugecy";
+          repo = "lingr-el";
+          rev = "c9c20dd9b4967aa2f8873d6890d6797e6a498d23";
+          sha256 = "11sw43z5b0vypmhi0yysf2bxjy8fqpzl61y503jb7nhcfywmfkys";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lingr";
+          sha256 = "1445bxiirsxl9kgm0j86xc9d0pbaa5f07c1i66pw2vl40bvhrjff";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lingr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    linguistic = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "linguistic";
+        ename = "linguistic";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "andcarnivorous";
+          repo = "linguistic";
+          rev = "18e28a7e54efb140c17e16836bc5dac766c9522e";
+          sha256 = "12b9i3rdh16pq9q88bsg771y11rrbj9w74v2qr2bfymbp358qk17";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/linguistic";
+          sha256 = "0yhyrr7yknvky6fb6js0lfxbl13i6a218kya7cpj2dpzdckcbhca";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/linguistic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    link = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "link";
+        ename = "link";
+        version = "1.10";
+        src = fetchFromGitHub {
+          owner = "myrkr";
+          repo = "dictionary-el";
+          rev = "a5ef20b2c32457880827ceda58f927ad9a26d2b7";
+          sha256 = "0ahn0v6qdfwvv9n0m6jcgrzmyarbsbvpgq8g4qy2g37ak4j60hp7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/link";
+          sha256 = "17jpsg3f2954b740vyj37ikygrg5gmp0bjhbid8bh8vbz7xx9zy8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/link";
+          license = lib.licenses.free;
+        };
+      }) {};
+    link-hint = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "link-hint";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "link-hint.el";
+          rev = "d26b5330e6e42b4bed4e4730054b4c5e308ceab2";
+          sha256 = "1v4fadxv7ym6lc09nd2xpz2k5vrikjv7annw99ii5cqrwhqa5838";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/d24b48fe0bc127ae6ac4084be8059aacb8445afd/recipes/link-hint";
+          sha256 = "12fb2zm9jnh92fc2nzmzmwjlhi64rhakwbh9lsydx9svsvkgcs89";
+          name = "link-hint";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/link-hint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    linum-relative = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "linum-relative";
+        ename = "linum-relative";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "linum-relative";
+          rev = "896df4b40c1e1eb59f55fcee48a1543f0ccd724e";
+          sha256 = "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/linum-relative";
+          sha256 = "0s1lc3lppazv0481dxknm6qrxhvkv0r9hw8xmdrpjc282l91whkj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/linum-relative";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lispy = callPackage ({ ace-window
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , hydra
+                         , iedit
+                         , lib
+                         , melpaBuild
+                         , multiple-cursors
+                         , swiper }:
+      melpaBuild {
+        pname = "lispy";
+        ename = "lispy";
+        version = "0.26.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "lispy";
+          rev = "7756a8fbbadbebbd5e20768569ed92ad6c402c5c";
+          sha256 = "05iqhnhj61f30yk4ih63rimmyp134gyq18frc8qgrnwym64dsm6l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lispy";
+          sha256 = "12qk2gpwzz7chfz7x3wds39r4iiipvcw2rjqncir46b6zzlb1q0g";
+          name = "recipe";
+        };
+        packageRequires = [
+          ace-window
+          emacs
+          hydra
+          iedit
+          multiple-cursors
+          swiper
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/lispy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lispyscript-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "lispyscript-mode";
+        ename = "lispyscript-mode";
+        version = "0.3.5";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "lispyscript-mode";
+          rev = "9a4200085e2a15725a58616d131a56f5edce214b";
+          sha256 = "0qyj04p63fdh3iasp5cna1z5fhibmfyl9lvwyh22ajzsfbr3nhnk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lispyscript-mode";
+          sha256 = "02biai45l5xl2m9l1drphrlj6r01msmadhyg774ijdk1x4gm5nhr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lispyscript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    list-packages-ext = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , ht
+                                     , lib
+                                     , melpaBuild
+                                     , persistent-soft
+                                     , s }:
+      melpaBuild {
+        pname = "list-packages-ext";
+        ename = "list-packages-ext";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "laynor";
+          repo = "list-packages-ext";
+          rev = "344719b313c208c644490f8f1130e21405402f05";
+          sha256 = "197cqkiwxgamhfwbc8h492cmjll3fypkwzcphj26dfnr22v63kwq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/list-packages-ext";
+          sha256 = "15m4888fm5xv697y7jspghg1ra49fyrny4y2x7h8ivcbslvpglvk";
+          name = "recipe";
+        };
+        packageRequires = [ ht persistent-soft s ];
+        meta = {
+          homepage = "https://melpa.org/#/list-packages-ext";
+          license = lib.licenses.free;
+        };
+      }) {};
+    list-unicode-display = callPackage ({ cl-lib ? null
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "list-unicode-display";
+        ename = "list-unicode-display";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "list-unicode-display";
+          rev = "59770cf3572bd36c3e9ba044846dc420c0dca09b";
+          sha256 = "05nn4db8s8h4mn3fxhwsa111ayvlq1raf6bifh7jciyw7a2c3aww";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/list-unicode-display";
+          sha256 = "01x9i5k5vhjscmkx0l6r27w1cdp9n6xk1pdjf98z3y88dnsmyfha";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/list-unicode-display";
+          license = lib.licenses.free;
+        };
+      }) {};
+    list-utils = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "list-utils";
+        ename = "list-utils";
+        version = "0.4.4";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "list-utils";
+          rev = "acf18aca1131a90f8d673974673e3c5d8fdc6a86";
+          sha256 = "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/list-utils";
+          sha256 = "0bknprr4jb1d20i9lj2aa17vpg1kqwdyzzwmy1kfydnkpf5scnr3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/list-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lit-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lit-mode";
+        ename = "lit-mode";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "HectorAE";
+          repo = "lit-mode";
+          rev = "bfecbe898223393f34340ca379977be753ee497a";
+          sha256 = "1sjyb5v3s9z128ifjqx7a1dsgds2iz185y82581qxakl7ylmn15k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lit-mode";
+          sha256 = "05rf7ki060nqnvircn0dkpdrg7xbh7phb8bqgsab89ycc7l9vv59";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lit-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    literal-string = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , markdown-mode
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "literal-string";
+        ename = "literal-string";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "joodie";
+          repo = "literal-string-mode";
+          rev = "46dd2b620df70d681261616f1a26afa4a032e2d5";
+          sha256 = "02a1jvxk2m1lb21p3281cr9xyhzix31cn8a9la53w90sz569i66r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/literal-string";
+          sha256 = "0ylv9dpw17w272f92vn5cldklyz1d8daihi1fsh5ylvxqpinyrkn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/literal-string";
+          license = lib.licenses.free;
+        };
+      }) {};
+    literate-coffee-mode = callPackage ({ coffee-mode
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "literate-coffee-mode";
+        ename = "literate-coffee-mode";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-literate-coffee-mode";
+          rev = "39fe3bfa1f68a7b8b91160875589219b214a2cd6";
+          sha256 = "1fh9wrw5irn0g3dy8gkk63csdcxgi3w2038mxx3sk6ki3r2bmhw8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/literate-coffee-mode";
+          sha256 = "18fdgay7xfgza75z3xma666f414m9dn7d50w94wzzmv7ja74sp64";
+          name = "recipe";
+        };
+        packageRequires = [ coffee-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/literate-coffee-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    live-code-talks = callPackage ({ cl-lib ? null
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , narrowed-page-navigation }:
+      melpaBuild {
+        pname = "live-code-talks";
+        ename = "live-code-talks";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "live-code-talks";
+          rev = "3a2ecdb49b2651d87999d4cad56ba8f1004c7a99";
+          sha256 = "1cwydbhhbs5v9y2s872zxc5lflqmfrdvnc8xz0qars52d7lg4br5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/live-code-talks";
+          sha256 = "1ji4lww71dqxnn5c9inix8xqcmgc76wbps0ylxhhgs44ki4hlyrm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs narrowed-page-navigation ];
+        meta = {
+          homepage = "https://melpa.org/#/live-code-talks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    live-py-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "live-py-mode";
+        ename = "live-py-mode";
+        version = "2.23.2";
+        src = fetchFromGitHub {
+          owner = "donkirkby";
+          repo = "live-py-plugin";
+          rev = "efd9bba8a40448cccfcb745a84d479cb5275122b";
+          sha256 = "0va4cirxwv0k9q74ac313pvxvnkvqpp6zqxwscpx4v6hp1gw7wvw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/live-py-mode";
+          sha256 = "0yn1a0gf9yn068xifpv8p77d917mnalc56pll800zlpsdk8ljicq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/live-py-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lively = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "lively";
+        ename = "lively";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "lively";
+          rev = "6ec648fcde85e81393db1ed1364860f960179c92";
+          sha256 = "06sdaj2akwjg1a7yvmm3gsip66iaq9bhm3gr45szwg6z622q4gvf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lively";
+          sha256 = "1q8cbl3sr3dpvzk57985giy4xmz4lvg94jcw7shbhz1v9q05dr5g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lively";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lms = callPackage ({ emacs
+                       , fetchhg
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "lms";
+        version = "0.7";
+        src = fetchhg {
+          url = "https://bitbucket.com/inigoserna/lms.el";
+          rev = "f07ac3678e27";
+          sha256 = "15l3nfrddblfzqxgvf0dmmsk4h5l80l6r2kgxcfk8s01msjka3sl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/b8be8497494b8543a8257c9ea92444baf7674951/recipes/lms";
+          sha256 = "1ckrh6qbh5y2y3yzl2iyq8nqlpy4qp6vzc72ijcgayvcflb01vr1";
+          name = "lms";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lms";
+          license = lib.licenses.free;
+        };
+      }) {};
+    load-relative = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "load-relative";
+        ename = "load-relative";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "rocky";
+          repo = "emacs-load-relative";
+          rev = "15ffaa9ebf1b7bbfcc307d1716eec135253b3b8d";
+          sha256 = "1fq4bnngbh9a18hq8mvnqkzs74k3g4c0lmwsncbhy6n21njv3kdy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/load-relative";
+          sha256 = "0j8ybbjzhzgjx47pqqdbsqi8n6pzqcf6zqc38x7cf1kkklgc87ay";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/load-relative";
+          license = lib.licenses.free;
+        };
+      }) {};
+    loc-changes = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "loc-changes";
+        ename = "loc-changes";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "rocky";
+          repo = "emacs-loc-changes";
+          rev = "2a0cf1a5890a8937089e4e10f383f4d40c3ac587";
+          sha256 = "0xjnpwj0hddpcl2jd6xk64g32djs6xnnms9bhmxs25p894aa40py";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/loc-changes";
+          sha256 = "1akgij61b2ixpkchrriabwvx68cg4v5r5w9ncjrjh91hskjprfxh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/loc-changes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    log4e = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "log4e";
+        ename = "log4e";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "log4e";
+          rev = "ec74a535796c74310c0fbbb9002595d322d03192";
+          sha256 = "0ws87an0a591pdqk4y3b9xlbgv1lk7qsyviqv0khj0m49dy68w81";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/log4e";
+          sha256 = "1klj59dv8k4r0hily489dp12ra5hq1jnsdc0wcakh6zirmakhs34";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/log4e";
+          license = lib.licenses.free;
+        };
+      }) {};
+    logalimacs = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "logalimacs";
+        ename = "logalimacs";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "logaling";
+          repo = "logalimacs";
+          rev = "cfd7aaa925934f876eee6e8c550cf6e7a239a2ac";
+          sha256 = "0g5vq9xy9lwczs77lr91c1srhhfmasnnnmjvgc55hbl6iwmbizbm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/logalimacs";
+          sha256 = "0ai7a01bdi3a0amgi63pwgdp8wgcgx10an4nhc627wgb1cqxb7p6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/logalimacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    logito = callPackage ({ eieio ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "logito";
+        ename = "logito";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "logito";
+          rev = "824acb89d2cc18cb47281a4fbddd81ad244a2052";
+          sha256 = "0jpyd2f33pk984kg0q9hxdl4615jb7sxsggnb30mpz7a2ws479xr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/logito";
+          sha256 = "0xi7zbxpialsn4pknj8aqmkbiwwsbapwynrrjb8avhli2hd4s3fl";
+          name = "recipe";
+        };
+        packageRequires = [ eieio ];
+        meta = {
+          homepage = "https://melpa.org/#/logito";
+          license = lib.licenses.free;
+        };
+      }) {};
+    logview = callPackage ({ datetime
+                           , emacs
+                           , extmap
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "logview";
+        ename = "logview";
+        version = "0.12";
+        src = fetchFromGitHub {
+          owner = "doublep";
+          repo = "logview";
+          rev = "bd662d467dbd7c93cfe1e3058e4f11c49314fd6a";
+          sha256 = "03s4q5xdz84cjn4qkfhsc3l9y3v5avrl2i5dby4bgsg2zj7n7f73";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/logview";
+          sha256 = "0gks3j5avx8k3427a36lv7gr95id3cylaamgn5qwbg14s54y0vsh";
+          name = "recipe";
+        };
+        packageRequires = [ datetime emacs extmap ];
+        meta = {
+          homepage = "https://melpa.org/#/logview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    loop = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "loop";
+        ename = "loop";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "loop.el";
+          rev = "3e175e479a49cf419cb54042449aba0bd6cd9e08";
+          sha256 = "07r6jc6dr6x0s2a6p18ad0m23p7d5dv4w8c5ilkj7vs18dwr1vmv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/loop";
+          sha256 = "0pav16kinzljmzx84vfz63fvi39af4628vk1jw79jk0pyg9rjbar";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/loop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    love-minor-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , lua-mode
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "love-minor-mode";
+        ename = "love-minor-mode";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "ejmr";
+          repo = "love-minor-mode";
+          rev = "3ca8f3405338f2d6f4fbcdd5e89342a46378543a";
+          sha256 = "1hwm7yxbwvb27pa35cgcxyjfjdjhk2a33i417q2akc7vppdbcmzh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/love-minor-mode";
+          sha256 = "1skg039h2hn8dh47ww6n9l776s2yda8ariab4v9f56kb21bncr4m";
+          name = "recipe";
+        };
+        packageRequires = [ lua-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/love-minor-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-clangd = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , lsp-mode
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-clangd";
+        ename = "lsp-clangd";
+        version = "3.1.3";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-clangd";
+          rev = "bf7641f6c512a133a038556c17e8b454b0602ea0";
+          sha256 = "00zxhzgily9rxnrrwywid4v5kqpls5490hkb4sqixl8xzms0j339";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-clangd";
+          sha256 = "05dmzyb9xw2m4kck7y3cj8dm2542p3vi48lqs21gcrvm5vbrkx3g";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-clangd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-java = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , lsp-mode
+                            , markdown-mode
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-java";
+        ename = "lsp-java";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-java";
+          rev = "17f80c9935a0004e59c2e706de4b91eba45344c8";
+          sha256 = "11ki7mb2pivvmqhn3ya67ph7vz7l3pfa0cqmv6jny12l6iq6awcb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-java";
+          sha256 = "0rrl9mh25w1avvyww840d3yh8nw0shirspxl2nxqwwdaymbkg2wr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-java";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-mode";
+        ename = "lsp-mode";
+        version = "5.0";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-mode";
+          rev = "f54f564a498ac4f1b98e1dba3e3d621f624f9c02";
+          sha256 = "115akc8qb152lcyp2x2z5k8mjdcyh92j8g9nzq5ffyc84jx450km";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-mode";
+          sha256 = "0cklwllqxzsvs4wvvvsc1pqpmp9w99m8wimpby6v6wlijfg6y1m9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-ocaml = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , lsp-mode
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-ocaml";
+        ename = "lsp-ocaml";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "emacs-lsp";
+          repo = "lsp-ocaml";
+          rev = "5a8c776b6d75b502703243b3d628fccd813481b0";
+          sha256 = "1431f8r8c4h8jbghggk1s2bwqr1qlxys3d52xsvf35bbk1gki5an";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-ocaml";
+          sha256 = "17334qcgqrz4jd5npizyq20fmxy07z2p3pq98s5np2kc4h9ara33";
+          name = "recipe";
+        };
+        packageRequires = [ emacs lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-ocaml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lsp-p4 = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , lsp-mode
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "lsp-p4";
+        ename = "lsp-p4";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "dmakarov";
+          repo = "p4ls";
+          rev = "49eb7c25b95b02da34eb02e5858eb06d34e628e1";
+          sha256 = "07z4k60b32k2mzxnl5lxnz5zd4y1p9jc6gqn57d3hwpz3mn8mjzx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lsp-p4";
+          sha256 = "0cd3n17lqwz08zfkm9g5cr1cj2asznlbhxrym2a7b7shdmn3yx5f";
+          name = "recipe";
+        };
+        packageRequires = [ lsp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/lsp-p4";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lua-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "lua-mode";
+        ename = "lua-mode";
+        version = "20151025";
+        src = fetchFromGitHub {
+          owner = "immerrr";
+          repo = "lua-mode";
+          rev = "bdf121b2c05bc74d3d7961a91d7afeb6176e0f45";
+          sha256 = "1qawjd0nbj1c142van7r01pmq74vkzcvnn27jgn79wwhplp9gm99";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lua-mode";
+          sha256 = "0gyi7w2h192h3pmrhq39lxwlwd9qyqs303lnp2655pikdzk9js94";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lua-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lusty-explorer = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "lusty-explorer";
+        ename = "lusty-explorer";
+        version = "3.0";
+        src = fetchFromGitHub {
+          owner = "sjbach";
+          repo = "lusty-emacs";
+          rev = "fc4b2f0f8a07db107234490fdfbf72f8b76a6643";
+          sha256 = "014fivh9shi7p3x31bl22x48agrgygp0pf2lgzzflrxcynmprbnp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lusty-explorer";
+          sha256 = "0xqanmmkyvzcg2g4zvascq5j004bqz7vmz1a19c25g9cs3rdh0ps";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lusty-explorer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lv = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "lv";
+        ename = "lv";
+        version = "0.14.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "hydra";
+          rev = "a07b92a8755dfb064701210b634e2dc4839552ac";
+          sha256 = "11k0ifmr90vdinibhyqqyqrmpxbn9c5pjpzhr4p66wv6249s540w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lv";
+          sha256 = "1lkm40rwpj9hmckng9bz5g4jbx9g9i3wlqgl6rq0m6i14syr69v4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/lv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    lxc-tramp = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "lxc-tramp";
+        ename = "lxc-tramp";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "montag451";
+          repo = "lxc-tramp";
+          rev = "17fc5962e7c27ac4f0bcc4ed7312dd5709063341";
+          sha256 = "03h6aw98mbwwqj08bzpg147hanx97r8fr8jv790zw7iqqjp46hsm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/lxc-tramp";
+          sha256 = "0rksh7k30kh3i23c98qinffz2zj6h1bshaw994hwy8qwgm38vx61";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/lxc-tramp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    m-buffer = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , seq }:
+      melpaBuild {
+        pname = "m-buffer";
+        ename = "m-buffer";
+        version = "0.15";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "m-buffer-el";
+          rev = "6eb1d2535a82707a83733173bc400a0d8e520c80";
+          sha256 = "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/m-buffer";
+          sha256 = "17smq7wlidsls870hla5b94xq2pwk24b88jvrbbcqw6f5z3ypf94";
+          name = "recipe";
+        };
+        packageRequires = [ seq ];
+        meta = {
+          homepage = "https://melpa.org/#/m-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mac-pseudo-daemon = callPackage ({ cl-lib ? null
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "mac-pseudo-daemon";
+        ename = "mac-pseudo-daemon";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "mac-pseudo-daemon";
+          rev = "4d10e327cd8ee5bb7f006d68744be21c7097c1fc";
+          sha256 = "0rjdjddlkaps9cfyc23kcr3cdh08c12jfgkz7ca2j141mm89pyp2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mac-pseudo-daemon";
+          sha256 = "12fwrcnwzsfms42rzv4wif5yzx3gnsz8yzdcgkpl37kkx85iy8v0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/mac-pseudo-daemon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    macro-math = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "macro-math";
+        ename = "macro-math";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "macro-math.el";
+          rev = "105e03c80290d1b88984b2d265a149a13d722920";
+          sha256 = "0dgsl1x6r8m9vvff1ia0kmz21h0dji2jl5cqlpx1m947zh45dahj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/macro-math";
+          sha256 = "072ycszl4cjc9nvv4axsgyfzz9djpgh4y1xqfr1nxi41nsdfc9kn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/macro-math";
+          license = lib.licenses.free;
+        };
+      }) {};
+    macrostep = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "macrostep";
+        ename = "macrostep";
+        version = "0.9";
+        src = fetchFromGitHub {
+          owner = "joddie";
+          repo = "macrostep";
+          rev = "9a6b04a5f7e57e4ba42309e8ce257cd7637514ec";
+          sha256 = "0aqlk9rlxfqlb3qr88xxcii5lcxxiyygg62kzxpv16prhv1n8a3i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/macrostep";
+          sha256 = "1h1gag21x05a14j0wbg0lg502fq2hbqfhjlg05kysw9f870whfq2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/macrostep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magic-filetype = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s }:
+      melpaBuild {
+        pname = "magic-filetype";
+        ename = "magic-filetype";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "magic-filetype.el";
+          rev = "019494add5ff02dd36cb3f500142fc51125522cc";
+          sha256 = "1hw77d4wgqrms8rvkv3xd50v4y9qjvm7cpz5rkgmvizs34pjqy22";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magic-filetype";
+          sha256 = "0f0j8fgh2gpkarz9308pns0d89wc2dchyim6hbixkdpqzg9gskc3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/magic-filetype";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit = callPackage ({ async
+                         , dash
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , ghub
+                         , git-commit
+                         , lib
+                         , magit-popup
+                         , melpaBuild
+                         , with-editor }:
+      melpaBuild {
+        pname = "magit";
+        ename = "magit";
+        version = "2.90.1";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit";
+          rev = "791901b2f1d26fa0a383147fe77948a9abc753da";
+          sha256 = "1kw94sdczswsyzn1zlk5s5aplpdv4qd7qcqc5zfxsmsfwm3jacl4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit";
+          sha256 = "03iv74rgng5fcy3qfr76hiy0hj6x2z0pis1yj8wm1naq5rc55hjn";
+          name = "recipe";
+        };
+        packageRequires = [
+          async
+          dash
+          emacs
+          ghub
+          git-commit
+          magit-popup
+          with-editor
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/magit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-annex = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , magit
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "magit-annex";
+        ename = "magit-annex";
+        version = "1.6.0";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-annex";
+          rev = "42ccbe9137718151accc85abc2726b4f3729b5cb";
+          sha256 = "1zrqm4nhy1d2pg6gwd6m4225smcns5pl8kpcpi3072gprblncphl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-annex";
+          sha256 = "1ri58s1ly416ksmb7mql6vnmx7hq59lmhi7qijknjarw7qs3bqys";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-annex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-filenotify = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , magit
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "magit-filenotify";
+        ename = "magit-filenotify";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "ruediger";
+          repo = "magit-filenotify";
+          rev = "575c4321f61fb8f25e4779f9ffd4514ac086ae96";
+          sha256 = "1vn6x53kpwv3zf2b5xjswyz6v853r8b9dg88qhwd2h480hrx6kal";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-filenotify";
+          sha256 = "1ihk5yi6psqkccpi2bq2h70kn7k874zl7wcinjaq21lirk4z7bvn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-filenotify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-find-file = callPackage ({ dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , magit
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "magit-find-file";
+        ename = "magit-find-file";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "bradwright";
+          repo = "magit-find-file.el";
+          rev = "035da838b1a19e7a5ee135b4ca8475f4e235b61e";
+          sha256 = "1jlww053s580d7rlvmr1dl79wxasa0hhh2jnwb1ra353d6h3a73w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-find-file";
+          sha256 = "1y66nsq1hbv1sb4n71gdxv7p1rz37vd9lkf7zl7avy0dchs499ik";
+          name = "recipe";
+        };
+        packageRequires = [ dash magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-find-file";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-gerrit = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "magit-gerrit";
+        ename = "magit-gerrit";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "terranpro";
+          repo = "magit-gerrit";
+          rev = "699c5c39c6dbdc8d730721eaf1491f982dd78142";
+          sha256 = "0ym24gjd6c04zry08abcb09zvjbgj8nc1j12q0r51fhzzadxcxbb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-gerrit";
+          sha256 = "1iwvg10ly6dlf8llz9f8d4qfdbvd3s28wf48qgn1wjlxpka6zrd4";
+          name = "recipe";
+        };
+        packageRequires = [ magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-gerrit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-gh-pulls = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , gh
+                                  , lib
+                                  , magit
+                                  , melpaBuild
+                                  , pcache
+                                  , s }:
+      melpaBuild {
+        pname = "magit-gh-pulls";
+        ename = "magit-gh-pulls";
+        version = "0.5.3";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "magit-gh-pulls";
+          rev = "d526f4c9ee1709c79f8a4630699ce1f25ae054e7";
+          sha256 = "11fd3c7wnqy08khj6za8spbsm3k1rqqih21lbax2iwvxl8jv4dv0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-gh-pulls";
+          sha256 = "0qn9vjxi33pya9s8v3g95scmhwrn2yf5pjm7d24frq766wigjv8d";
+          name = "recipe";
+        };
+        packageRequires = [ emacs gh magit pcache s ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-gh-pulls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-gitflow = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , magit
+                                 , magit-popup
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "magit-gitflow";
+        ename = "magit-gitflow";
+        version = "2.2.3";
+        src = fetchFromGitHub {
+          owner = "jtatarik";
+          repo = "magit-gitflow";
+          rev = "cc41b561ec6eea947fe9a176349fb4f771ed865b";
+          sha256 = "0jz69wrrzvqadaphmjrr146nzvmphsbl7rmc3ccnpw1gw6gnz81f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-gitflow";
+          sha256 = "0wsqq3xpqqfak4aqwsh5sxjb1m62z3z0ysgdmnrch3qsh480r8vf";
+          name = "recipe";
+        };
+        packageRequires = [ magit magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-gitflow";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-imerge = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "magit-imerge";
+        ename = "magit-imerge";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-imerge";
+          rev = "d798ceef08c01f0475c78d394544a2ae910a9cea";
+          sha256 = "0x86b9xh8j9qywqh78w6b6jj75yzzdcz17cqz8sy48y12zy2skpi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-imerge";
+          sha256 = "0rycmbsi2s7rjqfpcv794vhkybav7d8ikzdaxai36szxpg9pzhj4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-imerge";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-org-todos = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , magit
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "magit-org-todos";
+        ename = "magit-org-todos";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "danielma";
+          repo = "magit-org-todos.el";
+          rev = "0bfa36bbc50e62de0a3406031cb93e2f57dcdc55";
+          sha256 = "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-org-todos";
+          sha256 = "0yywgzm2jzvsccm9h0a0s1q8fag9dfajnznwk6iqz5pywq5mxijr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-org-todos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-popup = callPackage ({ async
+                               , dash
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "magit-popup";
+        ename = "magit-popup";
+        version = "2.12.4";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-popup";
+          rev = "6e07f745a18af514c2885eeabe9b2b2a5216e53c";
+          sha256 = "08952nzn0cb6gxscqyiljk4fq2zxjvr3ism0lvgw0gs9hl5phiwx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-popup";
+          sha256 = "1pv5slspcfmi10bnnw6acpijn7vkn2h9iqww3w641v41d3p37jmv";
+          name = "recipe";
+        };
+        packageRequires = [ async dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-popup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-stgit = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , magit
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "magit-stgit";
+        ename = "magit-stgit";
+        version = "2.1.3";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-stgit";
+          rev = "9d13effdbc213a0c8dcce78e1825011631fa0652";
+          sha256 = "163a1rddl54jgxm5dygnbp1pz1as4hhjszan1rcabvzcfnfdpakj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-stgit";
+          sha256 = "12wg1ig2jzy2np76brpwxdix9pwv75chviq3c24qyv4y80pd11sv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-stgit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-svn = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , magit
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "magit-svn";
+        ename = "magit-svn";
+        version = "2.2.1";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-svn";
+          rev = "c833903732a14478f5c4cfc561bae7c50671b36c";
+          sha256 = "01kcsc53q3mbhgjssjpby7ypnhqsr48rkl1xz3ahaypmlp929gl9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-svn";
+          sha256 = "02n732z06f0bhxqkxzlvm36bpqr40pas09zbzpfdk4pb6f9f80s0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-svn";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-tbdiff = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "magit-tbdiff";
+        ename = "magit-tbdiff";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "magit-tbdiff";
+          rev = "5692014340997ca00f04a256e81f998763d961e7";
+          sha256 = "1y9jmd18pxc7c2dv8nim9bcdznqjkkg16v63c24dyjq6p97ar41k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-tbdiff";
+          sha256 = "1wydmw4f1072k8frk8mi8aaky7dndinq8n7kn10q583bjlxgw80r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-tbdiff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-todos = callPackage ({ async
+                               , dash
+                               , emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , hl-todo
+                               , lib
+                               , magit
+                               , melpaBuild
+                               , pcre2el
+                               , s }:
+      melpaBuild {
+        pname = "magit-todos";
+        ename = "magit-todos";
+        version = "1.1.3";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "magit-todos";
+          rev = "2bfe07d8ee640a617260c4cb6b75c79cce7de35e";
+          sha256 = "1dr1i7d03gm3yr3wfpz3n98m1bhdyi2kgca2gkp4bwb2yjwkliy0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-todos";
+          sha256 = "0vqmbw0qj8a5wf4ig9hgc0v3l1agdkvgprzjv178hs00297br2s8";
+          name = "recipe";
+        };
+        packageRequires = [ async dash emacs f hl-todo magit pcre2el s ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-todos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magit-topgit = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , magit
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "magit-topgit";
+        ename = "magit-topgit";
+        version = "2.1.2";
+        src = fetchFromGitHub {
+          owner = "greenrd";
+          repo = "magit-topgit";
+          rev = "243fdfa7ce62dce4efd01b6b818a2791868db2f0";
+          sha256 = "06fbjv3zd92lvg4xjsp9l4jkxx2glhng3ys3s9jmvy5y49pymwb2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magit-topgit";
+          sha256 = "1194hdcphir4cmvzg9cxrjiyg70hr9zmml2rljih94vl7zrw7335";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit ];
+        meta = {
+          homepage = "https://melpa.org/#/magit-topgit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    magithub = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ghub-plus
+                            , git-commit
+                            , lib
+                            , magit
+                            , markdown-mode
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "magithub";
+        ename = "magithub";
+        version = "0.1.7";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "magithub";
+          rev = "81e75cbbbac820a3297e6b6a1e5dc6d9cfe091d0";
+          sha256 = "1iq8c939c0a6v8gq31vcjw6nxwnz4fpavcd6xf4h2rb6rkmxmhvl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/magithub";
+          sha256 = "11par5rncsa866gazdw98d4902rvyjnnwbiwpndlyh06ak0lryab";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ghub-plus git-commit magit markdown-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/magithub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    make-color = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "make-color";
+        ename = "make-color";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "make-color.el";
+          rev = "b19cb40c0619e267f2948ed37aff67b712a6deed";
+          sha256 = "0fp5gbin1sgsdz39spk74vadkzig3ydwhpzx9vg7f231kk5f6wzx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/make-color";
+          sha256 = "0mrv8b67lpid5m8rfbhcik76bvnjlw4xmcrd2c2iinyl02y07r5k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/make-color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    makey = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "makey";
+        ename = "makey";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "mickeynp";
+          repo = "makey";
+          rev = "a61781e69d3b451551e269446e1c5f624ab81137";
+          sha256 = "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/makey";
+          sha256 = "06xgrlkqvg288yd4lyhx4vi80jlfarhblxk5m5zzs5as7n08cvk4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/makey";
+          license = lib.licenses.free;
+        };
+      }) {};
+    malinka = callPackage ({ cl-lib ? null
+                           , dash
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , projectile
+                           , rtags
+                           , s }:
+      melpaBuild {
+        pname = "malinka";
+        ename = "malinka";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "LefterisJP";
+          repo = "malinka";
+          rev = "899e2c0020f283a00f7a24244749af5b9abfe3fe";
+          sha256 = "0m7dkycpfjch8h3983ddasxil4pf4gf0xbjlamijb00n25bxv1dg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/malinka";
+          sha256 = "1zmnlgy9k1s1s2wgkhlwfsnknmhggy0rx3l495a5x1kqsx6i0c9y";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash f projectile rtags s ];
+        meta = {
+          homepage = "https://melpa.org/#/malinka";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mallard-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "mallard-mode";
+        ename = "mallard-mode";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "jhradilek";
+          repo = "emacs-mallard-mode";
+          rev = "152cd44d53c881457fe57c1aba77e8e2fca4d1b0";
+          sha256 = "1272fsjzsza9dxm8s64b7x2jzr3ks8wjpwvgcxha2dnsjzklcdcj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mallard-mode";
+          sha256 = "0y2ikjgy107kb85pz50vv7ywslqgbrrkcfsrd8gsk1jky4qn8izd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mallard-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    map-progress = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "map-progress";
+        ename = "map-progress";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "map-progress";
+          rev = "6b8ef6b60626772082b2e80ec54d1f1275e1a1b8";
+          sha256 = "1fkijm0gikbwmxa9hf7s1rcwb0ipzjygd1mlicsm78rxvdd8k877";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/map-progress";
+          sha256 = "0zc5vii72gbfwbb35w8m30c8r9zck971hwgcn1a4wjczgn4vkln7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/map-progress";
+          license = lib.licenses.free;
+        };
+      }) {};
+    map-regexp = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "map-regexp";
+        ename = "map-regexp";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "map-regexp";
+          rev = "b8e06284ec1c593d7d2bda5f35597a63de46333f";
+          sha256 = "0kk1sk3cr4dbmgq4wzml8kdf14dn9jbyq4bwmvk0i7dic9vwn21c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/map-regexp";
+          sha256 = "0yiif0033lhaqggywzfizfia3siggwcz7yv4z7przhnr04akdmbj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/map-regexp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    marcopolo = callPackage ({ dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , pkg-info
+                             , request
+                             , s }:
+      melpaBuild {
+        pname = "marcopolo";
+        ename = "marcopolo";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "marcopolo";
+          rev = "ce6ad40d7feab0568924e3bd9659b76e3eecd55e";
+          sha256 = "0y4b69r2l6kvh7g8f1y9v1pdall3n668ci24lp04lcms6rxcrsnh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/marcopolo";
+          sha256 = "1nbck1m7lhync7n474578d2g1zc72c841hi236xjbdd2lnxz3zz0";
+          name = "recipe";
+        };
+        packageRequires = [ dash pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/marcopolo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mark-tools = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "mark-tools";
+        ename = "mark-tools";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "stsquad";
+          repo = "emacs-mark-tools";
+          rev = "0e7ac2522ac84155cab341dc49f7f0b81067133c";
+          sha256 = "0fcyspz7n97n84d9203mxgn8ar4rn52qa49s3vayfrbkn038j5qw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mark-tools";
+          sha256 = "1688y7lnzhwdva2ildjabzi10i87klfsgvs947i7gfgxl7jwhisq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mark-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdown-mode = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "markdown-mode";
+        ename = "markdown-mode";
+        version = "2.3";
+        src = fetchFromGitHub {
+          owner = "jrblevin";
+          repo = "markdown-mode";
+          rev = "cde5c5d2bcce470c494b76e23cfe1364b6291c20";
+          sha256 = "1zm1j4w0f3h01bmmpsv4j4mh6i13nnl8fcqlj2hsa1ncy1lgi8q7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdown-mode";
+          sha256 = "0gfb3hp87kpcrvxax3m5hsaclwwk1qmxc73cg26smzd1kjfwgz14";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/markdown-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdown-mode-plus = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , markdown-mode
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "markdown-mode-plus";
+        ename = "markdown-mode+";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "milkypostman";
+          repo = "markdown-mode-plus";
+          rev = "f35e63284c5caed19b29501730e134018a78e441";
+          sha256 = "1adl36fj506kgfw40gpagzsd7aypfdvy60141raggd5844i6y96r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdown-mode+";
+          sha256 = "1535kcj9nmcgmk2448jxc0jmnqy7f50cw2ngffjq5w8bfhgf7q00";
+          name = "recipe";
+        };
+        packageRequires = [ markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/markdown-mode+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdown-preview-mode = callPackage ({ cl-lib ? null
+                                         , emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , markdown-mode
+                                         , melpaBuild
+                                         , uuidgen
+                                         , web-server
+                                         , websocket }:
+      melpaBuild {
+        pname = "markdown-preview-mode";
+        ename = "markdown-preview-mode";
+        version = "0.9.1";
+        src = fetchFromGitHub {
+          owner = "ancane";
+          repo = "markdown-preview-mode";
+          rev = "cba12b77764df0fd3cf7008073df1badfa216073";
+          sha256 = "1sdwqkkhjky8gc4j7l52vi9m3g5czd1qjql5fp4ppfci9hh15fxd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdown-preview-mode";
+          sha256 = "1cam5wfxca91q3i1kl0qbdvnfy62hr5ksargi4430kgaz34bcbyn";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          emacs
+          markdown-mode
+          uuidgen
+          web-server
+          websocket
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/markdown-preview-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markdown-toc = callPackage ({ dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , markdown-mode
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "markdown-toc";
+        ename = "markdown-toc";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "ardumont";
+          repo = "markdown-toc";
+          rev = "15587c76bec43dd778a2034035f98a79ad29e96a";
+          sha256 = "00rvpbfcdy1npddxa7yynqpzwrx1h2bm69x9yh42dv6ss3vk1sjs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markdown-toc";
+          sha256 = "0slky735yzmbfi4ld264vw64b4a4nllhywp19ya0sljbsfycbihv";
+          name = "recipe";
+        };
+        packageRequires = [ dash markdown-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/markdown-toc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markup = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "markup";
+        ename = "markup";
+        version = "2.0.1";
+        src = fetchFromGitHub {
+          owner = "leoc";
+          repo = "markup.el";
+          rev = "876da2d3f23473475bb0fd0a1480ae11d2671291";
+          sha256 = "0rggadka5aqgrik3qky6s75s5yb5bfj6fcpxjz1iyrwi0fka0akd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markup";
+          sha256 = "0yw4b42nc2n7nanqvj596hwjf0p4qc7x6g2d9g5cwi7975iak8pf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/markup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    markup-faces = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "markup-faces";
+        ename = "markup-faces";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "sensorflo";
+          repo = "markup-faces";
+          rev = "c43612633c6c161857a3bab5752ae192bb03f5f3";
+          sha256 = "0nk2rm14ccwrh1aaxzm80rllsz8g38h9w52m0pf3nnwh6sa757nk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/markup-faces";
+          sha256 = "06fawlv4ih2lsmk7x6h9p5rppl8vw2w3nvlss95kb8fj5fwf7mw9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/markup-faces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    marshal = callPackage ({ eieio ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , ht
+                           , json ? null
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "marshal";
+        ename = "marshal";
+        version = "0.8.2";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "marshal.el";
+          rev = "d714219aeb388ded88582c47940f2c6febae333c";
+          sha256 = "1mr5p2yiad1k15byrlk0a784kj7rvibpn4li5phk4rnm0zg1xy9s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/marshal";
+          sha256 = "17ikd8f1k42f28d4v5dn83zb44bsx7g336db60q068w6z8d4jbgl";
+          name = "recipe";
+        };
+        packageRequires = [ eieio ht json ];
+        meta = {
+          homepage = "https://melpa.org/#/marshal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mastodon = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "mastodon";
+        ename = "mastodon";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "jdenen";
+          repo = "mastodon.el";
+          rev = "e4482232a5bb2a3036664eba598bf12506fe0b6e";
+          sha256 = "07fq3k62j9cz1567i2x11q1j9pwybb7qxwcilnnrphf4aibgq6kn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mastodon";
+          sha256 = "1bsyf4j6zs9gin0k7p22yv5gaqd6m3vdc2fiagfbs7gxsmhb6p4i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mastodon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    material-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "material-theme";
+        ename = "material-theme";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "cpaulik";
+          repo = "emacs-material-theme";
+          rev = "c59b4874914b5b28068be25292690325f19739dd";
+          sha256 = "1sp2h2n0ihp0r6q7c1861awg7rqh6bcxz4hgnny1gj5vjz9h7rch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/material-theme";
+          sha256 = "1d259avldc5fq121xrqv53h8s4f4bp6b89nz2rvjhygz7f8hargq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/material-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    math-symbol-lists = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "math-symbol-lists";
+        ename = "math-symbol-lists";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "math-symbol-lists";
+          rev = "328f792599e4e298d164e3c6331a2426d82ebf64";
+          sha256 = "1kj9r2mvmvnj6m2bwhbj8fspqiq8fdrhkaj0ir43f7qmd4imblsj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/math-symbol-lists";
+          sha256 = "01j11k29acj0b1pcapmgi2d2s3p50bkms21i2qcj0cbqgz8h6s27";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/math-symbol-lists";
+          license = lib.licenses.free;
+        };
+      }) {};
+    maven-test-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , s }:
+      melpaBuild {
+        pname = "maven-test-mode";
+        ename = "maven-test-mode";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "rranelli";
+          repo = "maven-test-mode";
+          rev = "f79409907375591283291eb96af4754b1ccc0e6f";
+          sha256 = "0x92b1qrhyrdh0z0xriyjc12h0wpk16x4yawj5i828ca6mz0qh5g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/maven-test-mode";
+          sha256 = "1k9w51rh003p67yalzq1w8am40nnr2khyyb5y4bwxgpms8z391fm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/maven-test-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    maxframe = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "maxframe";
+        ename = "maxframe";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "rmm5t";
+          repo = "maxframe.el";
+          rev = "4f1dbbe68048864037eae277b9280b90fd701ff1";
+          sha256 = "08gbkd8wln89j9yxp0zzd539hbwy1db31gca3vxxrpszixx8280y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/maxframe";
+          sha256 = "1lxj60qcvv8vakdq79k1brzv3ki74kajrx8620dzx76bnfkryxk8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/maxframe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mb-url = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "mb-url";
+        ename = "mb-url";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "dochang";
+          repo = "mb-url";
+          rev = "224b92353094aec25c9c46159d71ab2db5831498";
+          sha256 = "07mbb26wfknr9sv3rlharaswpqj6h15kzrgws9mibzsivmfrxlzj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mb-url";
+          sha256 = "1nf8ssan00qsn3d4dc6h6qzdwqzh977qb5d2m33kiwi6qb98988h";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/mb-url";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mbe = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mbe";
+        ename = "mbe";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "ijp";
+          repo = "mbe.el";
+          rev = "06d5b8e240e6c277978314ceec31ad48b3b2966e";
+          sha256 = "10zpm6b7r0h7b5hn84a92r1a747zvwgxr4gpa2wbjd74l5b0qciq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mbe";
+          sha256 = "0h18mbcjy8nh4gl12kg2v8x6ps320yk7sbgq5alqnx2shp80kri3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mbe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mc-extras = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , multiple-cursors }:
+      melpaBuild {
+        pname = "mc-extras";
+        ename = "mc-extras";
+        version = "1.2.4";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "mc-extras.el";
+          rev = "f0ba639e9b18cc56e80ae45bbb2b694dbad9171a";
+          sha256 = "0d6ncj6zd0lfsdpffbh3l25ycjw5hn0rwi5znp5hpl06b1ycyk4s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mc-extras";
+          sha256 = "0b110x6ygc95v5pb9lk1i731x5s6dagl5afzv37l1qchys36xrym";
+          name = "recipe";
+        };
+        packageRequires = [ multiple-cursors ];
+        meta = {
+          homepage = "https://melpa.org/#/mc-extras";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mediawiki = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "mediawiki";
+        ename = "mediawiki";
+        version = "2.2.9";
+        src = fetchFromGitHub {
+          owner = "hexmode";
+          repo = "mediawiki-el";
+          rev = "8473e12d1839f5287a4227586bf117dad820f867";
+          sha256 = "03rpj3yrk3i1l9yjnamnx38idn6y4zi9zg53bc83sx3g2b4m5v04";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mediawiki";
+          sha256 = "17cbrzfdp6jbbf74mn2fi1cwv7d1hvdbw9j84p43jzscnaa5ikx6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mediawiki";
+          license = lib.licenses.free;
+        };
+      }) {};
+    meghanada = callPackage ({ company
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , flycheck
+                             , lib
+                             , melpaBuild
+                             , yasnippet }:
+      melpaBuild {
+        pname = "meghanada";
+        ename = "meghanada";
+        version = "1.0.10";
+        src = fetchFromGitHub {
+          owner = "mopemope";
+          repo = "meghanada-emacs";
+          rev = "b8f18331683c32fb26b1be1a01466bd475373936";
+          sha256 = "1cmnkszl5x7f1l3h7iwyqwznk3mvwllkkbz5n10359hb6gjdc326";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/meghanada";
+          sha256 = "10f1fxma3lqcyv78i0p9mjpi79jfjd5lq5q60ylpxqp18nrql1s4";
+          name = "recipe";
+        };
+        packageRequires = [ company emacs flycheck yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/meghanada";
+          license = lib.licenses.free;
+        };
+      }) {};
+    melpa-upstream-visit = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , s }:
+      melpaBuild {
+        pname = "melpa-upstream-visit";
+        ename = "melpa-upstream-visit";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "laynor";
+          repo = "melpa-upstream-visit";
+          rev = "7310c74fdead3c0f86ad6eff76cf989e63f70f66";
+          sha256 = "12cp56ppmwpdgf5afx7hd2qb8d1qq8z27191fbbf5zqw8cq5zkpd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/melpa-upstream-visit";
+          sha256 = "0j4afy9ipzr7pwkij8ab207mabd7srganlyyif9h1hvclj9svdmf";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/melpa-upstream-visit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    memoize = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "memoize";
+        ename = "memoize";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacs-memoize";
+          rev = "636defefa9168f90bce6fc27431352ac7d01a890";
+          sha256 = "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/memoize";
+          sha256 = "0mzz3hghnbkmxf9wgjqv3sbyxyqqzvvscazq9ybb0b41qrzm73s6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/memoize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mentor = callPackage ({ async
+                          , cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , seq
+                          , xml-rpc }:
+      melpaBuild {
+        pname = "mentor";
+        ename = "mentor";
+        version = "0.3.4";
+        src = fetchFromGitHub {
+          owner = "skangas";
+          repo = "mentor";
+          rev = "9415472470ff23ee9600d94123c51c455d63018d";
+          sha256 = "05gfprcrh9p06arsni58nf60inlf1zbd18i678r9xd4q0v35k491";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mentor";
+          sha256 = "0nkf7f90m2qf11l97zwvb114yrpbqk1xxr2bh2nvbx8m1c8nad9s";
+          name = "recipe";
+        };
+        packageRequires = [ async cl-lib seq xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/mentor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    merlin = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "merlin";
+        ename = "merlin";
+        version = "3.2.2";
+        src = fetchFromGitHub {
+          owner = "ocaml";
+          repo = "merlin";
+          rev = "8bcd99c8e5de984f04966674dcbb1c40c5d89045";
+          sha256 = "1dd9mj8z6xpbvvgp489nxsscj8hcar4mx920d61cyxnxgz1phq5p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/merlin";
+          sha256 = "0r4wc5ann6239bagj364yyzw4y3lcpkl5nnn0vmx4hgkwdg509fn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/merlin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    merlin-eldoc = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , merlin }:
+      melpaBuild {
+        pname = "merlin-eldoc";
+        ename = "merlin-eldoc";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "Khady";
+          repo = "merlin-eldoc";
+          rev = "bbb1a10f2131c09a7f7f844d4da98efd77f927ae";
+          sha256 = "11gggay8srycpckclqvcmad6ym3lx2sxgj670z89br91jdwmkr2f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/merlin-eldoc";
+          sha256 = "0bx383nxd97as0d362n1jn62k2rypxvxhcjasgwf0cr8vxr244fp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs merlin ];
+        meta = {
+          homepage = "https://melpa.org/#/merlin-eldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    meson-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "meson-mode";
+        ename = "meson-mode";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "wentasah";
+          repo = "meson-mode";
+          rev = "212d9f38a08074f1cb6e914e12b60bc52dcb8bee";
+          sha256 = "1kv7413y5530frs1nrp0nl40h9j0idwp7vlg761r260200m8sl3v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/meson-mode";
+          sha256 = "16yg217ghx6pvlxha2swznkg12c2a9hhyi0hnsbqdj2ijcdzca80";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/meson-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    meta-presenter = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "meta-presenter";
+        ename = "meta-presenter";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "myTerminal";
+          repo = "meta-presenter";
+          rev = "7ba8d30e36ce6de6e563c7f3a41a24d288787c48";
+          sha256 = "0m23qsbai8j0bx0px7v3ipw92i4y8maxibna6zqrw3msv1j3s7cw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/meta-presenter";
+          sha256 = "0f70cfa91wavchlx8d9hdlgq90cmnylhbg2dbw603rzjkyvslp5d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/meta-presenter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    metaweblog = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , xml-rpc }:
+      melpaBuild {
+        pname = "metaweblog";
+        ename = "metaweblog";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "org2blog";
+          repo = "metaweblog";
+          rev = "aa14380eb7e7b879a0c16c96866b20a987cd3f2a";
+          sha256 = "146w9laysdqbikpzr2gc9vnjrdsa87d8i13f2swlh1kvq2dn3rz5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/metaweblog";
+          sha256 = "0qgmcvq1fhgljia9ncjgvgrv0mzih0l9mglwbwcszn613wmx8bkg";
+          name = "recipe";
+        };
+        packageRequires = [ xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/metaweblog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mew = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mew";
+        ename = "mew";
+        version = "6.8";
+        src = fetchFromGitHub {
+          owner = "kazu-yamamoto";
+          repo = "Mew";
+          rev = "972677a1aeb138709727634418c391316a3bf33c";
+          sha256 = "14ahl8xdm3a168qfnlbw99rlhvr6nhw94nj01m6ny4f3rkh1p2hk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mew";
+          sha256 = "0423xxn3cw6jmsd7vrw30hx9phga5chxzi6x7cvpswg1mhcyn9fk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mew";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mgmtconfig-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "mgmtconfig-mode";
+        ename = "mgmtconfig-mode";
+        version = "0.0.15";
+        src = fetchFromGitHub {
+          owner = "purpleidea";
+          repo = "mgmt";
+          rev = "f01eea33e9b396f1e7501944216271d0d9b8df6f";
+          sha256 = "19grypbx6kxgdlqnj1h7rz2clvrwk98z5sk9dar0077ncp2k1f80";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mgmtconfig-mode";
+          sha256 = "0bdjaqfk68av4lfc4cpacrl2mxvimplfkbadi9l6wb65vlqz6sil";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mgmtconfig-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mhc = callPackage ({ calfw
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mhc";
+        ename = "mhc";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "yoshinari-nomura";
+          repo = "mhc";
+          rev = "e29e69ab2f282131039a63f56f48e39d56c175d9";
+          sha256 = "0lxn4vg3qxzdxad1fv0ssnw4rjhzvrys4k3lqx87sbg28l9ykk77";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mhc";
+          sha256 = "02ikn9hx0kcfc2xrx4f38zpkfi6vgz7chcxk6q5d0vcsp93b4lql";
+          name = "recipe";
+        };
+        packageRequires = [ calfw ];
+        meta = {
+          homepage = "https://melpa.org/#/mhc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    migemo = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "migemo";
+        ename = "migemo";
+        version = "1.9.1";
+        src = fetchFromGitHub {
+          owner = "emacs-jp";
+          repo = "migemo";
+          rev = "97e07796573c4c47f286bfe8eeb6428cb474526e";
+          sha256 = "1ckb5hymwj4wmsxakalsky4mkzn9vxhxr6416b2cr6r5jxj4xgsl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/migemo";
+          sha256 = "0y49imdwygv5zd7cyh9ngda4gyb2mld2a4s7zh4yzlh7z5ha9qkr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/migemo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    milkode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "milkode";
+        ename = "milkode";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "ongaeshi";
+          repo = "emacs-milkode";
+          rev = "ba97e2aeefa1d9d0b3835bf08edd0de248b0c513";
+          sha256 = "1qg64mxsm2cswk52mlj7sx7k6gfnrsdwnf68i7cachri0i8aq4ap";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/milkode";
+          sha256 = "07v6xgalx7vcw5sghckwvz584746cba05ql8flv8n556glm7hibh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/milkode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minibuffer-complete-cycle = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "minibuffer-complete-cycle";
+        ename = "minibuffer-complete-cycle";
+        version = "1.25.20130814";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "minibuffer-complete-cycle";
+          rev = "3df80135887d0169e02294a948711f6dfeca4a6f";
+          sha256 = "1zyb6c3xwdzk7dpn7xi0mvbcjdfxvzz1a0zlbs053pfar8iim5fk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minibuffer-complete-cycle";
+          sha256 = "0y1mxs6q9a8lzprrlb22qff6x5mvkw4gp2l6p2js2r0j9jzyffq2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minibuffer-complete-cycle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minibuffer-cua = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "minibuffer-cua";
+        ename = "minibuffer-cua";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "minibuffer-cua.el";
+          rev = "e8dcddc24d4f2e8d7987336fb58259e3cc78bbcb";
+          sha256 = "07nbn2pwlp33kr136xsm6lzddhjs538xkz0fbays89psblmy4kwj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minibuffer-cua";
+          sha256 = "1ragvr73ykbvpgynnq3z0z4yzrlfhfqlwc1vbxclb8x2xmxq7pzw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minibuffer-cua";
+          license = lib.licenses.free;
+        };
+      }) {};
+    miniedit = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "miniedit";
+        ename = "miniedit";
+        version = "2.0";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "miniedit";
+          rev = "e12bf659c3eb92dd8a4cb77642dc0865c54667a3";
+          sha256 = "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/miniedit";
+          sha256 = "10s407q7igdi2hsaaahbw8vckalrl7z3s6l9cflf51q16xh2ih87";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/miniedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minimal-session-saver = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "minimal-session-saver";
+        ename = "minimal-session-saver";
+        version = "0.6.2";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "minimal-session-saver";
+          rev = "aaba48a8525e1310b221eeb96763304c22e9a4b4";
+          sha256 = "0kjhn48sf2ps3k5pv06gqmqc4hlk6di9ld3ssw6vwfh8313x1fc5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minimal-session-saver";
+          sha256 = "1ay7wvriga28bdmarpfwagqzmmk93ri9f3idhr6z6iivwggwyy2i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/minimal-session-saver";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minions = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "minions";
+        ename = "minions";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "minions";
+          rev = "d36d2445420460c81bcd4822d0bfcbafaec2c682";
+          sha256 = "0q2y37zfxlbfvgdn70ikg3abp8vljna4ir9nyqlz1awmz5i1c43s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minions";
+          sha256 = "0ximlj93yp6646bh99r2vnayk15ky26sibrmrqqysfw1pzs4a940";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/minions";
+          license = lib.licenses.free;
+        };
+      }) {};
+    minitest = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "minitest";
+        ename = "minitest";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "arthurnn";
+          repo = "minitest-emacs";
+          rev = "2bed01262b0d888473468b5c7bd7d73694d31320";
+          sha256 = "0nd0jl5r5drnh98wdpqj2i7pgs7zvcizsh4qbvh8n0iw0c3f0pwh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/minitest";
+          sha256 = "0x6nd4kkhiw8hh79r69861pf41j8p1y39kzf2rl61zlmyjz9zpmw";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/minitest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mips-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "mips-mode";
+        ename = "mips-mode";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-mips-mode";
+          rev = "e6c25201a3325b555e64388908d584f3f81d9e32";
+          sha256 = "0ai4ff6hinajvnp8r86s5pv0rrv8h68ncdz4k98kka1ws2f79zdf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mips-mode";
+          sha256 = "0gg18v80lbndi2yyr5nl37mz0zpamwv9ha4clajkf0bc0vplxkj7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mips-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mixed-pitch = callPackage ({ emacs
+                               , fetchFromGitLab
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "mixed-pitch";
+        ename = "mixed-pitch";
+        version = "1.0.0";
+        src = fetchFromGitLab {
+          owner = "jabranham";
+          repo = "mixed-pitch";
+          rev = "f9bcdd9e30f8370ef0607d714b9411eddf8dd866";
+          sha256 = "0wfwap23qdiagjp8c1p1mrzz4r3khb8j46sqy46mw20w7k5cn7lk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mixed-pitch";
+          sha256 = "1gda4jl946qlbf8rqm0mk493kwy8yqldr21cr583l6b6gl1nb4qf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mixed-pitch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mmm-jinja2 = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , mmm-mode }:
+      melpaBuild {
+        pname = "mmm-jinja2";
+        ename = "mmm-jinja2";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "glynnforrest";
+          repo = "mmm-jinja2";
+          rev = "c8cb763174fa2fb61b9a0e5e0ff8cb0210f8492f";
+          sha256 = "0big2i3bg4cm14f68ncaiz2h6dk6zqiisrz4l0bv10q9kaa9q2sj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mmm-jinja2";
+          sha256 = "0zg4psrgikb8644x3vmsns0id71ni9fcpm591zn16b4j64llvgsi";
+          name = "recipe";
+        };
+        packageRequires = [ mmm-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/mmm-jinja2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mmm-mako = callPackage ({ fetchhg
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , mmm-mode }:
+      melpaBuild {
+        pname = "mmm-mako";
+        version = "1.1";
+        src = fetchhg {
+          url = "https://bitbucket.com/pjenvey/mmm-mako";
+          rev = "5c9ff92137b5";
+          sha256 = "0rpp748ym79sxccp9pyrwri14m7624zzb80srfgjfdpysrrs0jrr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/mmm-mako";
+          sha256 = "0a4af5q9wxafrid8visp30cz6073ig0c961b78vmmgqrwvvxd3kn";
+          name = "mmm-mako";
+        };
+        packageRequires = [ mmm-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/mmm-mako";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mmt = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "mmt";
+        ename = "mmt";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "mmt";
+          rev = "f7db836a10720ee50217012e7e2597ebcf624f90";
+          sha256 = "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mmt";
+          sha256 = "0hal3qcw6x9658xpdaw6q9l2rr2z107pvg5bdzshf67p1b3lf9dq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mocha = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , js2-mode
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "mocha";
+        ename = "mocha";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "scottaj";
+          repo = "mocha.el";
+          rev = "4ca9495d4b00b753f055152bd4256c07d7b208f4";
+          sha256 = "0yj9kc59c227727kh1zjxwrhijzd7rdhix7qqm4na1z6s4ycpxbm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mocha";
+          sha256 = "0kjgrl5iy7cd3b9csgpjg3y0wp0q6c7c8cvf0mx8gdbsj7296kyx";
+          name = "recipe";
+        };
+        packageRequires = [ js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/mocha";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mocha-snippets = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yasnippet }:
+      melpaBuild {
+        pname = "mocha-snippets";
+        ename = "mocha-snippets";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "cowboyd";
+          repo = "mocha-snippets.el";
+          rev = "e054137bd78f0d236e983874da1f345d30a71816";
+          sha256 = "0lxc5zhb03jpy48ql4mn2l35qhsdwav4dkxyqim72b7c75cy1cml";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mocha-snippets";
+          sha256 = "0dbsdk4jpzxv2sxx0nia9zhd0a0wmkz1qcqmbd15m1909ccdwxds";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/mocha-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mocker = callPackage ({ eieio ? null
+                          , el-x
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "mocker";
+        ename = "mocker";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "mocker.el";
+          rev = "55b078b53ea49e48bd1821d96f0fb86f794fdc6c";
+          sha256 = "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mocker";
+          sha256 = "1g90jp1czrrzrmn7n4linby3q4fb4gcflzv2amjv0sdimw1ln1w3";
+          name = "recipe";
+        };
+        packageRequires = [ eieio el-x ];
+        meta = {
+          homepage = "https://melpa.org/#/mocker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    modalka = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "modalka";
+        ename = "modalka";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "modalka";
+          rev = "1259afa084f58d143d133aac56a6c0c10bc460f2";
+          sha256 = "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/modalka";
+          sha256 = "0bkjykvl6sw797h7j76dzn1viy598asly98gcl5wrq13n4w1md4c";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/modalka";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mode-icons = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "mode-icons";
+        ename = "mode-icons";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "mode-icons";
+          rev = "37581ed911e4469f773ddfb7b40a85592d323b76";
+          sha256 = "1ykj68d4h92i4qv90zgwrf9jhy1n22l2h9k5f1zsn8hvz9mhj1av";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mode-icons";
+          sha256 = "1dqcry27rz7afyvjg7345wysp6wmh8fpj32ysk5iw5i7v5scf6kf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mode-icons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mode-line-bell = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "mode-line-bell";
+        ename = "mode-line-bell";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "mode-line-bell";
+          rev = "4985ba42f5a19f46ddbf9b3622453a9694995ce5";
+          sha256 = "13n3di05lgqfm4f8krn3p36yika5znhymp5vr2d747x54hqmgh7y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mode-line-bell";
+          sha256 = "1ri771hb91b7hd203f8zp83h5hcndh8ccc1y8shhqmak6a6l04wk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mode-line-bell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mode-line-debug = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "mode-line-debug";
+        ename = "mode-line-debug";
+        version = "1.2.3";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "mode-line-debug";
+          rev = "a0fcc394b07d2414bd6f722da10f1c7567333f6b";
+          sha256 = "04vsb0lniy90bhnqb590dap9y4wac64xz0lc2rlfczic0nrqd1aa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mode-line-debug";
+          sha256 = "0ppj14bm3rx3xgg4mfxa5zcm2r129jgmsx817wq3h7akjngcbfkd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mode-line-debug";
+          license = lib.licenses.free;
+        };
+      }) {};
+    modern-cpp-font-lock = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "modern-cpp-font-lock";
+        ename = "modern-cpp-font-lock";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "ludwigpacifici";
+          repo = "modern-cpp-font-lock";
+          rev = "3e9c18b5a2ade485565f5191f12a724f1969dbb0";
+          sha256 = "0jg5yix4c18gvy5n4wsi7zg2sb7r0bw0xlmq0w15g3z63nhy69vc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/modern-cpp-font-lock";
+          sha256 = "0h43icb5rqbkc5699kdy2mrjs5448phl18jch45ylp2wy2r8c2qj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/modern-cpp-font-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moe-theme = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "moe-theme";
+        ename = "moe-theme";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "kuanyui";
+          repo = "moe-theme.el";
+          rev = "b8f0206614ab40ffb75e50ce6c38675fb9c7cf2e";
+          sha256 = "0pn3a1rrj7ycxh91x3q008b6rmq7rbl8ir6diqzqfp6y465pn2w2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moe-theme";
+          sha256 = "1nqvj8spvffgjvqlf25rcm3dc6w1axb6qlwwsjhq401a6xhw67f6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/moe-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monitor = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "monitor";
+        ename = "monitor";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "GuiltyDolphin";
+          repo = "monitor";
+          rev = "8c67c06f60a89b2583bae90afc91a7e7d73260fd";
+          sha256 = "1r2sns49f5fw4f122s165sa41nkrkq2qs20n98g2pfd1whflqfnb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monitor";
+          sha256 = "11n4nv6vkjw434yrwqjw20229m2sxqxxdp7sg99gzrd5gjyab643";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/monitor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monokai-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "monokai-theme";
+        ename = "monokai-theme";
+        version = "3.5.3";
+        src = fetchFromGitHub {
+          owner = "oneKelvinSmith";
+          repo = "monokai-emacs";
+          rev = "1143c072f5153ae1a69807e5e8af163069b947d2";
+          sha256 = "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monokai-theme";
+          sha256 = "13mv4vgsmdbf3v748lqi7b42hvr3yp86n97rb6792bcgd3kbdx7a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/monokai-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    monroe = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "monroe";
+        ename = "monroe";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "sanel";
+          repo = "monroe";
+          rev = "0b9b043f042145bf62969add7ec476ea51da7cbd";
+          sha256 = "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/monroe";
+          sha256 = "04rhninxppvilk7s90g0wwa0g9vfcg7mk8mrb2m2c7cb9vj6wyig";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/monroe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moody = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "moody";
+        ename = "moody";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "moody";
+          rev = "f0cfdcff5946775a22e5b789899269669ba58ecd";
+          sha256 = "19ahk775rd9rz8wv6kr5kdynblmyrgg0j6l7g9vs0rwn9ywdxqsn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moody";
+          sha256 = "095241sjw330fb5lk48aa4zx8xbzk8s4ml22n6a8bzr99nkhn5jy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/moody";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moom = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "moom";
+        ename = "moom";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "takaxp";
+          repo = "moom";
+          rev = "536eac1dd2b187f65ed85ad8efc95f7e2bcaadb2";
+          sha256 = "12v2m66dlvnggmraxgmcfq4ycv6wdc56dv63gggrcy7zhlxwi9vp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moom";
+          sha256 = "11l4yc8fhxsrsjfksqj4cxr13jln0khhd2dn09i94n71dx7lybh1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/moom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    morlock = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "morlock";
+        ename = "morlock";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "morlock";
+          rev = "5fd655ba3050981ab8059bcddf5b19c21f9ceea1";
+          sha256 = "0bgrqydh9bb059j6b6y86xn6qdq85y0radsi1zq20p5xmrsgivbn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/morlock";
+          sha256 = "0693jr1k8mzd7hwp52azkl62c1g1p5yinarjcmdksfyqblqq5jna";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/morlock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mosey = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "mosey";
+        ename = "mosey";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "mosey.el";
+          rev = "2e3ac9d334fa2937ed5267193dfd25d8e1f14dc2";
+          sha256 = "1yxy6m5igvsy37vn93ijs0b479v50vsnsyp8zi548iy2ribr0qr5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mosey";
+          sha256 = "0zprzr5aqv77kmg1ki9w6fw1nc2ap6yqjl4ak05a1i9cq8g6nf3m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mosey";
+          license = lib.licenses.free;
+        };
+      }) {};
+    move-dup = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "move-dup";
+        ename = "move-dup";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "wyuenho";
+          repo = "move-dup";
+          rev = "dae61de7aa5e2bf56a7bab1fa36fa3a39520a3c0";
+          sha256 = "1mrrxx2slxi1qgf483nnxv3y8scfsc844sfnzn4b7hjpfpali0r8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/move-dup";
+          sha256 = "0b0lmiisl9yckblwf7619if88qsmbka3bl4qiaqam7fka7psxs7f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/move-dup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    move-text = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "move-text";
+        ename = "move-text";
+        version = "2.0.8";
+        src = fetchFromGitHub {
+          owner = "emacsfodder";
+          repo = "move-text";
+          rev = "daaa5c3e01d1b88f4eea8e1421acd2453c2df350";
+          sha256 = "1hm2j28vf7zh5h552wszawxsp2c4jwpc33017ld1vc9qcccp3895";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/move-text";
+          sha256 = "04bfrkanafmbrdyw06ciw9kiyn7h3kpikxk3clx2gc04jl67hzgy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/move-text";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mowedline = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "mowedline";
+        ename = "mowedline";
+        version = "3.3.0";
+        src = fetchFromGitHub {
+          owner = "retroj";
+          repo = "mowedline";
+          rev = "bde4de0a4e1404127b0a48897d8cd1d1cb8a263d";
+          sha256 = "0wwl9f01b9sgs8n19a4i7h08xaf6zdljf2plbdpyy4gzi2iiqcc4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mowedline";
+          sha256 = "0c2hvvwa7s5iyz517jaskshdcq9zs15zr6xsvrcb3biahrh4bmfb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mowedline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moz = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "moz";
+        ename = "moz";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "bard";
+          repo = "mozrepl";
+          rev = "9a3e3e08c12379a54d51ec92a012995c9597c566";
+          sha256 = "1g7rriy8xnsx0xpdw54ywra2pzz6ynqlf6mpmr59xf6v8wpz85pk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moz";
+          sha256 = "0ar2xgsi7csjj6fgiamrjwjc58j942dm32j3f3lz21yn2c4pnyxi";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/moz";
+          license = lib.licenses.free;
+        };
+      }) {};
+    moz-controller = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , moz }:
+      melpaBuild {
+        pname = "moz-controller";
+        ename = "moz-controller";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "RenWenshan";
+          repo = "emacs-moz-controller";
+          rev = "42fd842039620de7fb122f7e4ffc1ab802ee97c5";
+          sha256 = "1w1i1clkjg9mj1g4i2y3xw3hyj8s7h9gr04qgyb9c1q8vh11z8d0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/moz-controller";
+          sha256 = "18gca1csl9dfi9995mky8cbgi3xzf1if8pzdjiz5404gzcqk0rfd";
+          name = "recipe";
+        };
+        packageRequires = [ moz ];
+        meta = {
+          homepage = "https://melpa.org/#/moz-controller";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mozc-temp = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , mozc }:
+      melpaBuild {
+        pname = "mozc-temp";
+        ename = "mozc-temp";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "HKey";
+          repo = "mozc-temp";
+          rev = "7f5dd5fc8ceeca9b1822f7e056a4be67e2e74959";
+          sha256 = "1gdi2pz8450h11aknz3hbgjlx09w6c4l8d8sz0zv3pb1z8cqkgqv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mozc-temp";
+          sha256 = "0x1bsa1py0kn73hzbsb4ijl0bqng8nib191vgn6xq8f5cx55044d";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs mozc ];
+        meta = {
+          homepage = "https://melpa.org/#/mozc-temp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mpdel = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , libmpdel
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "mpdel";
+        ename = "mpdel";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "mpdel";
+          repo = "mpdel";
+          rev = "a1e05828e3bc03679530b4cfff1306706171cb78";
+          sha256 = "1avfhkklhkkazy1b0ymcmc0walrs29ak36vbvaxs480r5s16dkjd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mpdel";
+          sha256 = "1py6zk16yl7pyql2qxzd770clzszw7c769hw70n963kns1qmpif8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs libmpdel ];
+        meta = {
+          homepage = "https://melpa.org/#/mpdel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mpmc-queue = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , queue }:
+      melpaBuild {
+        pname = "mpmc-queue";
+        ename = "mpmc-queue";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "smizoe";
+          repo = "mpmc-queue";
+          rev = "5e14451bdebaa17a1de9a78a712abf833e2652d8";
+          sha256 = "1vlpfw79s9gczdwy6a7hl4rn94ld7jrbslga0pz8am9jnq0i9dh0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mpmc-queue";
+          sha256 = "08jcmhfl87nsg6zgv582yfs152bqihbcssh085gxxqn2x99li354";
+          name = "recipe";
+        };
+        packageRequires = [ emacs queue ];
+        meta = {
+          homepage = "https://melpa.org/#/mpmc-queue";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mpv = callPackage ({ cl-lib ? null
+                       , emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , json ? null
+                       , lib
+                       , melpaBuild
+                       , names
+                       , org }:
+      melpaBuild {
+        pname = "mpv";
+        ename = "mpv";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "kljohann";
+          repo = "mpv.el";
+          rev = "059135de3979e044f14503806047476d9be9f0e8";
+          sha256 = "1pjhch8vah0kf73fl2fk6khhrx1kflggd3zlxrf7w4fxr0qn8la3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mpv";
+          sha256 = "1vq308ac6jj1h8qa2b2sypisb38hbvwjimqndhpfir06fghkw94l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json names org ];
+        meta = {
+          homepage = "https://melpa.org/#/mpv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mqtt-mode = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "mqtt-mode";
+        ename = "mqtt-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "andrmuel";
+          repo = "mqtt-mode";
+          rev = "613e70e9b9940e635e779994b5c83f86eb62c8e6";
+          sha256 = "1ci1w4yma6axiigz55b2ip0r7zy8v215532jc0rkb3wyn14nsrh7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mqtt-mode";
+          sha256 = "1zbnhd65c9wz9yr29j37c8z7vz3axpfwkzx0z8xjplp40mafpz1z";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mqtt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    msvc = callPackage ({ ac-clang
+                        , cedet ? null
+                        , cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "msvc";
+        ename = "msvc";
+        version = "1.3.7";
+        src = fetchFromGitHub {
+          owner = "yaruopooner";
+          repo = "msvc";
+          rev = "dfc529aa6da8b46b0a0c7db9a0e5e9bc33ab1fb3";
+          sha256 = "19n9an0nznwqw3ml022i6vidqbrgxf4yff0nbvvcb91ppc1saf40";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/msvc";
+          sha256 = "04gq2klana557qvsi3bv6416l0319jsqb6bdfs7y6729qd94hlq3";
+          name = "recipe";
+        };
+        packageRequires = [ ac-clang cedet cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/msvc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mtg-deck-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "mtg-deck-mode";
+        ename = "mtg-deck-mode";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "mattiasb";
+          repo = "mtg-deck-mode";
+          rev = "7774641630ef85999ab2f6d57eebddbc7c1e7244";
+          sha256 = "12ajrlgyj14jf66if7bdgj69jm72wzrmiclx7x8dpsz4zpj38m20";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mtg-deck-mode";
+          sha256 = "07hszf33nawhp218f90qr4s713yyjdd7zzkq0s8q0fb6aai5iiih";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mtg-deck-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mu4e-alert = callPackage ({ alert
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , ht
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "mu4e-alert";
+        ename = "mu4e-alert";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "iqbalansari";
+          repo = "mu4e-alert";
+          rev = "3453e25ff6c07c1b768b2a79fdb9fc5c97100e76";
+          sha256 = "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mu4e-alert";
+          sha256 = "0b74ky51nx75vcrrbabr5cj2cx4yax5kgaq479hjp5yc5mq2q46r";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/mu4e-alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mu4e-maildirs-extension = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "mu4e-maildirs-extension";
+        ename = "mu4e-maildirs-extension";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "agpchil";
+          repo = "mu4e-maildirs-extension";
+          rev = "8b384b0bbda46c473dea3ee7dc68c2b3f2548528";
+          sha256 = "1lyd8pcawn106zwlbq6gdq05i2zhry1qh9cdyjiw61nvgbbfi0yx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mu4e-maildirs-extension";
+          sha256 = "0bisxm0rph5q1p3zjr7vyyr0jqr3ihs6ihiwyfr8d3dvba1zhffc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mu4e-maildirs-extension";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "multi";
+        ename = "multi";
+        version = "2.0.1";
+        src = fetchFromGitHub {
+          owner = "kurisuwhyte";
+          repo = "emacs-multi";
+          rev = "884203b11fdac8374ec644cca975469aab263404";
+          sha256 = "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi";
+          sha256 = "1c240d1c1g8wb2ld944344zklnv86d9rycmya4z53b2ai10642ig";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/multi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-line = callPackage ({ cl-lib ? null
+                              , dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s
+                              , shut-up }:
+      melpaBuild {
+        pname = "multi-line";
+        ename = "multi-line";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "multi-line";
+          rev = "778c7510b7f066f53cf1f96a6ad1079fda5dc1f7";
+          sha256 = "0lr1i2a4fw40iz8qz2zqch63ci9pwvrri219phv22kn76jqn39mh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-line";
+          sha256 = "1aadmijnjr029s1qq4gk8xyl9m8xb5x5774b8i3jyfixyjqvhvwp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs s shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/multi-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-project = callPackage ({ emacs
+                                 , fetchhg
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "multi-project";
+        version = "0.0.26";
+        src = fetchhg {
+          url = "https://bitbucket.com/ellisvelo/multi-project";
+          rev = "a6e7c1542c0b";
+          sha256 = "1wh7xlas6chdliya847092j5rkngxxg1m9a98y2r782ywgyl7xv6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/multi-project";
+          sha256 = "19dy2wl5ad1xldiznlw2vjvr9ja8h9wiv6igcggixq56fhngp40x";
+          name = "multi-project";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/multi-project";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-run = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , window-layout }:
+      melpaBuild {
+        pname = "multi-run";
+        ename = "multi-run";
+        version = "1";
+        src = fetchFromGitHub {
+          owner = "sagarjha";
+          repo = "multi-run";
+          rev = "87d9eed414999fd94685148d39e5308c099e65ca";
+          sha256 = "0m4wk6sf01b7bq5agmyfcm9kpmwmd90wbvh7fkhs61mrs86s2zw8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-run";
+          sha256 = "1iv4a49czdjl0slp8590f1ya0vm8g2ycnkwrdpqi3b55haaqp91h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs window-layout ];
+        meta = {
+          homepage = "https://melpa.org/#/multi-run";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-term = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "multi-term";
+        ename = "multi-term";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "multi-term";
+          rev = "c9e67edb772f2d9f9da8d887dc746459cfbce244";
+          sha256 = "1bn6zx931vz2fa72ab999r33bxv8brn3cqmalvq25x7s4z3q1lyi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-term";
+          sha256 = "16idk4nd7qpyrvyspbrdl8gdfaclng6ny0xigk6fqdv352djalal";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/multi-term";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multi-web-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "multi-web-mode";
+        ename = "multi-web-mode";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "fgallina";
+          repo = "multi-web-mode";
+          rev = "0517b9e2b3052533ac0cb71eba7073ed309fce06";
+          sha256 = "1d9y3dw27pgzgv6wk575d5ign55xdqgbl3ycyq1z7sji1477lz6b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multi-web-mode";
+          sha256 = "0vi4yvahr10aqpcz4127c8pcqpr5srwc1yhgipnbnm86qnh34ql5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/multi-web-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    multiple-cursors = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "multiple-cursors";
+        ename = "multiple-cursors";
+        version = "1.4.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "multiple-cursors.el";
+          rev = "b3bd49c756cd959c0fb998d27eaf3d273570b05e";
+          sha256 = "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/multiple-cursors";
+          sha256 = "0mky5p9wpd3270wr5vfna8rkk2ff81wk7vicyxli39195m0qgg0x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/multiple-cursors";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mustache = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ht
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "mustache";
+        ename = "mustache";
+        version = "0.23";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "mustache.el";
+          rev = "9963a8ddd42ba01899b9d3c74c518745dfe1a2fb";
+          sha256 = "0514fdiq81qqcz6x9fajn9qxsg11q8dkg3n8b36xx4zpyawz59c4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mustache";
+          sha256 = "1pjr00xx77mlfw1myxaz6i3y2gbivhbiq5hyjxxbjlfrkm1vxc8g";
+          name = "recipe";
+        };
+        packageRequires = [ dash ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/mustache";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mustache-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "mustache-mode";
+        ename = "mustache-mode";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "mustache";
+          repo = "emacs";
+          rev = "bf9897eb287ca47ced65d7d4e07ea61ea0aec39f";
+          sha256 = "15gw4d0hp15rglsj8hzd290li4p0kadj2dsz0dgfcxld7hnimihk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mustache-mode";
+          sha256 = "1xmqh663r5i42a586xn0wzw6h1jkvhbnw5iwvjv96w452slhkr36";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mustache-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mwim = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "mwim";
+        ename = "mwim";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "mwim.el";
+          rev = "462207227b98a6a4356d51419f5ad5ba9356e5cf";
+          sha256 = "06lw6064i82daasgm87gm58d142pypqc1q3cnx1cm35hyj4skd32";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mwim";
+          sha256 = "0bsibwplvyv96y5i5svm2b0jwzs5a7jr2aara7v7xnpj0nqaxm8k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/mwim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mykie = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "mykie";
+        ename = "mykie";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "yuutayamada";
+          repo = "mykie-el";
+          rev = "ab8f7549f9018c26278d101af1b90997c9e5e0b3";
+          sha256 = "0550k0rfm0zai306642v689mcpsw9pbd5vs0il82cihwvrxjifc5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mykie";
+          sha256 = "12ram39fp3m9ar6q184rsnpkxb14y0ajibng7ia2ck54ck7n36cj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/mykie";
+          license = lib.licenses.free;
+        };
+      }) {};
+    mysql-to-org = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "mysql-to-org";
+        ename = "mysql-to-org";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "mallt";
+          repo = "mysql-to-org-mode";
+          rev = "0f51b174a0ee6c9820baf9d79783923b270f3ffc";
+          sha256 = "1gxp1a26sna0p3xq6by8bk4yphhh32bvll0sdm2p3wkpdaci7hyz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/mysql-to-org";
+          sha256 = "0jjdv6ywdn1618l36bw3xa3mdgg3rc8r0rdv9xdqx8mmg648a7gj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/mysql-to-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    myterminal-controls = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "myterminal-controls";
+        ename = "myterminal-controls";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "myTerminal";
+          repo = "myterminal-controls";
+          rev = "59ff3a02e34969a2ac608906937cb65cb514f9f1";
+          sha256 = "11b0m09n1qqhjbdmcilb1g1408k17700qn37m3wavjrcjvdhnd5n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/myterminal-controls";
+          sha256 = "0ipk5s2whf3l68q0dydm1j6rcb6jhk61hgjwxygdphifvih7c5y2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/myterminal-controls";
+          license = lib.licenses.free;
+        };
+      }) {};
+    name-this-color = callPackage ({ cl-lib ? null
+                                   , dash
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "name-this-color";
+        ename = "name-this-color";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "knl";
+          repo = "name-this-color.el";
+          rev = "e37cd1291d5d68d4c8d6386eab9cb9d94fd3bcfa";
+          sha256 = "0amhw630hgc0j8wr8m6aav399ixi3vbwrck79hhlr3pmyh91vv7n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/name-this-color";
+          sha256 = "15x3dp135p45gv4qn4ll3pd6zqi4glcpv6fzvjxnx0dcval9z4d8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/name-this-color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nameless = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "nameless";
+        ename = "nameless";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "Nameless";
+          rev = "ab1a5c589378334eafca105af1a17f73b9065423";
+          sha256 = "107q1rximjnag9r9vgwh0iv687i3rsscbdnjc46f8l16j6vi4n7d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nameless";
+          sha256 = "14agx54h2vqfb0656n12z761ywyxsdskd6xa1ccar70l9vwj85vq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nameless";
+          license = lib.licenses.free;
+        };
+      }) {};
+    names = callPackage ({ cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "names";
+        ename = "names";
+        version = "20151201.0";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "names";
+          rev = "00862c57ae6363ba86d1e5ce138929a1b6d5c7e6";
+          sha256 = "0m82g27gwf9mvicivmcilqghz5b24ijmnw0jf0wl2skfbbg0sydh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/names";
+          sha256 = "1q784606jlakw1z6sx2g2x8hz8c8arywrm2r626wj0v105v510vg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/names";
+          license = lib.licenses.free;
+        };
+      }) {};
+    narrow-reindent = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "narrow-reindent";
+        ename = "narrow-reindent";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "emallson";
+          repo = "narrow-reindent.el";
+          rev = "87466aac4dbeb79597124dd077bf5c704872fd3d";
+          sha256 = "10yn215xb4s6kshk108y75im1xbdp0vwc9kah5bbaflp9234i0zh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/narrow-reindent";
+          sha256 = "0fybal70kk62zlra63x4jb72694m0mzv4cx746prx9anvq1ss2i0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/narrow-reindent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    narrowed-page-navigation = callPackage ({ cl-lib ? null
+                                            , emacs
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "narrowed-page-navigation";
+        ename = "narrowed-page-navigation";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "narrowed-page-navigation";
+          rev = "b215adbac4873f56fbab65772062f0f5be8058a1";
+          sha256 = "0ydxj6dc10knambma2hpimqrhfz216nbj96w1dcwgjixs4cd4nax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/narrowed-page-navigation";
+          sha256 = "1yrmih60dd69qnin505jlmfidm2svzpdrz46286r7nm6pk7s4pb7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/narrowed-page-navigation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nasm-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nasm-mode";
+        ename = "nasm-mode";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "nasm-mode";
+          rev = "d990ed94d902b74a5c834fb567e03307607cee45";
+          sha256 = "1dyc50a1zskx9fqxl2iy2x74f3bkb2ccz908v0aj13rqfqqnns9j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nasm-mode";
+          sha256 = "1626yf9mmqlsw8w01vzqsyb5ipa56259d4kl6w871k7rvhxwff17";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nasm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nav-flash = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nav-flash";
+        ename = "nav-flash";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "nav-flash";
+          rev = "9054a0f9b51da9e5207672efc029ba265ba28f34";
+          sha256 = "119hy8rs83f17d6zizdaxn2ck3sylxbyz7adszbznjc8zrbaw0ic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nav-flash";
+          sha256 = "0936kr0s6zxxmjwaqm7ywdw2im4dxai1xb7j6xa2gp7c70qvvsx3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nav-flash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    navi-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "navi-mode";
+        ename = "navi-mode";
+        version = "2.0";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "navi";
+          rev = "c1b91438aebe2115a4e5d8ebec995dade74f19c4";
+          sha256 = "175l9s269wzqlg0axs7lr4834x7ghkgfz43xqcxnd2sdsmyrdd7s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/navi-mode";
+          sha256 = "0pc52iq8lng2g0vpnrhdfxmibc1dx9ksmrjg0303as1yv41fnc69";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/navi-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    navorski = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , multi-term
+                            , s }:
+      melpaBuild {
+        pname = "navorski";
+        ename = "navorski";
+        version = "0.2.7";
+        src = fetchFromGitHub {
+          owner = "roman";
+          repo = "navorski.el";
+          rev = "4546d4e4dfbec20ee8c423c045408a3388a9eab9";
+          sha256 = "09cb07f98aclgq8jf5419305zydkk1hz4nvzrwqz7syrlpvx8xi5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/navorski";
+          sha256 = "0dnzpsm0ya8rbcik5wp378hc9k7gjb3gwmkqqj889c38q5cdwsx7";
+          name = "recipe";
+        };
+        packageRequires = [ dash multi-term s ];
+        meta = {
+          homepage = "https://melpa.org/#/navorski";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ncl-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ncl-mode";
+        ename = "ncl-mode";
+        version = "0.99.2";
+        src = fetchFromGitHub {
+          owner = "yyr";
+          repo = "ncl-mode";
+          rev = "164e504e25cec1812fbae5c3dae164d9f6018ece";
+          sha256 = "1m3llm87qgd7sr6ci22nd835vdg0qprs5m9lqcx74k689jl89cni";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ncl-mode";
+          sha256 = "1niy0w24q6q6j7s0l9fcaqai7zz2gg1qlk2s9sxb8j79jc41y47k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ncl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nemerle = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "nemerle";
+        ename = "nemerle";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "rsdn";
+          repo = "nemerle";
+          rev = "69cec44ed3861ddfa0e23a4e44b926dda8a9716b";
+          sha256 = "0hk18jd4bz0gp7b0qn2vgh3sc7r7cygc3gg269dyv5v4n1vyxx79";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nemerle";
+          sha256 = "1rbalq3s2inwz9cf6bfmnxgqd9ylba3crflfjs6b4mnp33z4swny";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nemerle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    neon-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "neon-mode";
+        ename = "neon-mode";
+        version = "1.3.0";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "neon-mode";
+          rev = "99d15e46beaf1e7d71e39a00cce810df1f33229d";
+          sha256 = "07vsi07m5q070fvkqhz32qa2y7dgnyi1kggairimbiwbn98bh642";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/neon-mode";
+          sha256 = "0kgyc0rkxvvks5ykizfv82f2cx7ck17sk63plj7bld6khlcgv0y6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/neon-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    neotree = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "neotree";
+        ename = "neotree";
+        version = "0.5.2";
+        src = fetchFromGitHub {
+          owner = "jaypei";
+          repo = "emacs-neotree";
+          rev = "5e1271655170f4cdc6849258e383c548a4e6e3d0";
+          sha256 = "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/neotree";
+          sha256 = "05smm1xsn866lsrak0inn2qw6dvzy24lz6h7rvinlhk5w27xva06";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/neotree";
+          license = lib.licenses.free;
+        };
+      }) {};
+    netease-music = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "netease-music";
+        ename = "netease-music";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "nicehiro";
+          repo = "netease-music";
+          rev = "f3bba59664e1c4c4ed47f16fa786151272d99a70";
+          sha256 = "1a6r7cmxvg83fa285drli2nac9a56kyd2pn4y1vfcg7jiy6czhiw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/netease-music";
+          sha256 = "1vb81f1l45v6rny91rcqvnhzqh5ybdr0r39yrcaih8zhvamk685z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/netease-music";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nginx-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nginx-mode";
+        ename = "nginx-mode";
+        version = "1.1.9";
+        src = fetchFromGitHub {
+          owner = "ajc";
+          repo = "nginx-mode";
+          rev = "a2bab83c2eb233d57d76b236e7c141c2ccc97005";
+          sha256 = "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nginx-mode";
+          sha256 = "07k17m64zhv6gik8v4n73d8l1k6fsp4qp8cl94r384ny0187y65c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nginx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    niceify-info = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "niceify-info";
+        ename = "niceify-info";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "aaron-em";
+          repo = "niceify-info.el";
+          rev = "66b45916f1994e16ee023d29fa7cf8fec48078f1";
+          sha256 = "0dzcaa88l7yjc7fhyhkvbzs7bmhi6bb6rx41wsnnidlnpzbgdrk7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/niceify-info";
+          sha256 = "1s9c8yxbab9zl5jx38alwa2hpp4zj5cb9a5gfm3x09jf3iw768bl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/niceify-info";
+          license = lib.licenses.free;
+        };
+      }) {};
+    night-owl-theme = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "night-owl-theme";
+        ename = "night-owl-theme";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "aaronjensen";
+          repo = "night-owl-emacs";
+          rev = "250824cbbdb37c631c9abc71fdf21cf35d476d8b";
+          sha256 = "0rjwvc0fm0bcnz611q9vxvkzax5bryyc8g8b6sawz9m3l2sqdrch";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/night-owl-theme";
+          sha256 = "121jc59ry60h1ml1vxx4a6l4a6jcxk7fc4wz32fqv5pr03rzgs7h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/night-owl-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nim-mode = callPackage ({ commenter
+                            , emacs
+                            , epc
+                            , fetchFromGitHub
+                            , fetchurl
+                            , flycheck
+                            , let-alist
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "nim-mode";
+        ename = "nim-mode";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "nim-lang";
+          repo = "nim-mode";
+          rev = "86abed21b9b718ac65cc167f208e0bd5b92c79ed";
+          sha256 = "0h1paf9z6xvkay97ns74w2w9plwi46md5f2kik4jvjy74p57gxal";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nim-mode";
+          sha256 = "1kzn3kkkj7jzs7fqhvib196sl3vp7kbhb4icqzmvvmv366lkaib6";
+          name = "recipe";
+        };
+        packageRequires = [ commenter emacs epc flycheck let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/nim-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ninja-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ninja-mode";
+        ename = "ninja-mode";
+        version = "1.8.2";
+        src = fetchFromGitHub {
+          owner = "ninja-build";
+          repo = "ninja";
+          rev = "484c16336f19bd8970bb6e75322d61b92a229899";
+          sha256 = "1wc0cvmfhpvfzdy127d1n812q93dd9sp3mmqnc8jzy8i3frqqqq6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ninja-mode";
+          sha256 = "1v6wy9qllbxl37fp9h47000lwp557qss6fdjb3a1f20msg8f70av";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ninja-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nix-buffer = callPackage ({ emacs
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nix-buffer";
+        ename = "nix-buffer";
+        version = "3.1.1";
+        src = fetchFromGitHub {
+          owner = "shlevy";
+          repo = "nix-buffer";
+          rev = "db57cda36e7477bdc7ef5a136357b971b1d4d099";
+          sha256 = "0b01b4l9c70sad5r5py5hvg7s6k6idwwp0pv3rn8rj0fq5wlyixj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nix-buffer";
+          sha256 = "1fjkf88345v9l2v2mk8a057mw0p0rckf6rjf00y5464dyhh58vcd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/nix-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nix-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "nix-mode";
+        ename = "nix-mode";
+        version = "1.2.2";
+        src = fetchFromGitHub {
+          owner = "NixOS";
+          repo = "nix-mode";
+          rev = "cc23fd6a0e394aeeed603e2bfeb4a5ebc63db660";
+          sha256 = "1vz3s2jx14nzy53f04d821n4f2s22ys5h9s7af6cnpynkwawyhhq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nix-mode";
+          sha256 = "10f3ly4860lkxzykw4fbvhn3i0c2hgj77jfjbhlk2c1jz9x4yyy5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nix-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nixos-options = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , json ? null
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "nixos-options";
+        ename = "nixos-options";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "travisbhartwell";
+          repo = "nix-emacs";
+          rev = "5fc8fa29bea9dd8e9c822af92f9bc6ddc223635f";
+          sha256 = "1lm7rkgf7q5g4ji6v1masfbhxdpwni8d77dapsy5k9p73cr2aqld";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nixos-options";
+          sha256 = "1m3jipidk10zj68rzjbacgjlal31jf80gqjxlgj4qs8lm671gxmm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/nixos-options";
+          license = lib.licenses.free;
+        };
+      }) {};
+    no-littering = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "no-littering";
+        ename = "no-littering";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "no-littering";
+          rev = "0243e7485de736be9b7299c1e188d0cc9fdc3349";
+          sha256 = "1llibjlfgf71ssc2yrqqkszvk5mmb1cdya9k1fgjdgvjg5hjsk8q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/no-littering";
+          sha256 = "15w784ir48v8biiaar8ip19s9y3wn5831m815kcw02mgzy3bfjmh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/no-littering";
+          license = lib.licenses.free;
+        };
+      }) {};
+    noccur = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "noccur";
+        ename = "noccur";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "noccur.el";
+          rev = "ff2a76883c43b283a08680733ec3ad403a1b1827";
+          sha256 = "0y18hpwgzvm1i9yb3b6fxpbh3fmzkmyldq4as65i5s8n66i7mr6j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/noccur";
+          sha256 = "0a8l50v09bgap7rsls808k9wyjpjbcxaffsvz7hh9rw9s7m5fz5g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/noccur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nodejs-repl = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "nodejs-repl";
+        ename = "nodejs-repl";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "abicky";
+          repo = "nodejs-repl.el";
+          rev = "3f79caf542403ac80c7a1c3542f493f97a0c26ef";
+          sha256 = "05ccv87rnw7fss3lib8m9sywjrj6n92fnd7mmhmjh27g2klqc83z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nodejs-repl";
+          sha256 = "0rvhhrsw87kfrwdhm8glq6b3nr0v90ivm7fcc0da4yc2jmcyk907";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nodejs-repl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nodemcu-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "nodemcu-mode";
+        ename = "nodemcu-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "andrmuel";
+          repo = "nodemcu-mode";
+          rev = "8effd9f3df40b6b92a2f05e4d54750b624afc4a7";
+          sha256 = "1s19sshsm4cdx8kj5prmsq8ryz4843xcqmdayvlfl99jxsp9j4pm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nodemcu-mode";
+          sha256 = "0xx5dys8vifgaf3hb4q762xhhn1jybc4xwajqj98iban4nrakb3a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nodemcu-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nofrils-acme-theme = callPackage ({ emacs
+                                      , fetchFromGitLab
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "nofrils-acme-theme";
+        ename = "nofrils-acme-theme";
+        version = "0.1.0";
+        src = fetchFromGitLab {
+          owner = "esessoms";
+          repo = "nofrils-theme";
+          rev = "7825f88cb881a84eaa5cd1689772819a18eb2943";
+          sha256 = "009did3i3i8yi0virq606l02w1mw0gdyiqablqg7m368gx0gfvh5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nofrils-acme-theme";
+          sha256 = "01xqsn8whczv34lfa9vbm5rpvrvsrlpav8pzng10jvax1a9wdp3a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nofrils-acme-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nord-theme = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nord-theme";
+        ename = "nord-theme";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "arcticicestudio";
+          repo = "nord-emacs";
+          rev = "290aa9221a10e107acb0f06d0ec338fcb3e44785";
+          sha256 = "0az5l8y3jg6yk587wvgz1v5671d8p1vf9m0529x9axi1x7yzxry1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nord-theme";
+          sha256 = "0p4fqg4i2ayimd8kxsqnb1xkapzhhxf7szxi1skva4dcym3z67cc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/nord-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nose = callPackage ({ fetchhg
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "nose";
+        version = "0.1.1";
+        src = fetchhg {
+          url = "https://bitbucket.com/durin42/nosemacs";
+          rev = "194d7789bf79";
+          sha256 = "07bhzddaxdjd591xmg59yd657a1is0q515291jd83mjsmgq258bm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/855ea20024b606314f8590129259747cac0bcc97/recipes/nose";
+          sha256 = "1xdqsxq06x2m9rcfn1qh89g0mz1rvzl246d3sfmciwcyl932x682";
+          name = "nose";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    notmuch = callPackage ({ fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "notmuch";
+        ename = "notmuch";
+        version = "0.28";
+        src = fetchgit {
+          url = "https://git.notmuchmail.org/git/notmuch";
+          rev = "e8cb6b2cd63c9ea8a011cb9f672baf04b4c14f7b";
+          sha256 = "0lydra1i14l5kmhqa4n424hvsn65yf1vvvv8pkf0hl661i34dbkn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/notmuch";
+          sha256 = "0pznpl0aqybdg4b2qypq6k4jac64sssqhgz6rvk9g2nkqhkds1x7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/notmuch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    notmuch-labeler = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , notmuch }:
+      melpaBuild {
+        pname = "notmuch-labeler";
+        ename = "notmuch-labeler";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "notmuch-labeler";
+          rev = "d65d1129555d368243df4770ecc1e7ccb88efc58";
+          sha256 = "1ss87vlp7625lnn2iah3rc1xfxcbpx4kmiww9n16jx073fs2rj18";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/notmuch-labeler";
+          sha256 = "1c0cbkk5k8ps01xl63a0xa2adkqaj0znw8qs8ca4ai8v1420bpl0";
+          name = "recipe";
+        };
+        packageRequires = [ notmuch ];
+        meta = {
+          homepage = "https://melpa.org/#/notmuch-labeler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nov = callPackage ({ dash
+                       , emacs
+                       , esxml
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "nov";
+        ename = "nov";
+        version = "0.2.7";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "nov.el";
+          rev = "3bb7a4038f0c2100df671c9f1f33b785ed4ae296";
+          sha256 = "1s2av1yrzsqslgjfiislf9bljdk0rxpyq2vrbyralfnj2wvgpk9m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nov";
+          sha256 = "0hlcncpdazi4rn5yxd0zq85v7gpjhw7a6dl2i99zf4ymsan97lhq";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs esxml ];
+        meta = {
+          homepage = "https://melpa.org/#/nov";
+          license = lib.licenses.free;
+        };
+      }) {};
+    noxml-fold = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "noxml-fold";
+        ename = "noxml-fold";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "paddymcall";
+          repo = "noXML-fold";
+          rev = "69138e030f4c25e635f0af94d2272504ec88992d";
+          sha256 = "0amg0d733njmj654lf2q92j8ql76h29zjk37fj692mjykcqsbf98";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/noxml-fold";
+          sha256 = "11dninxxwhflf2qrmvwmrryspd9j6m95kdlmyx59ykqvw8j0siqc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/noxml-fold";
+          license = lib.licenses.free;
+        };
+      }) {};
+    npm-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "npm-mode";
+        ename = "npm-mode";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "mojochao";
+          repo = "npm-mode";
+          rev = "84b35211cba4f2d5f03b8dc2b60ae4b03d90bf8a";
+          sha256 = "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/npm-mode";
+          sha256 = "1aym4jfr6im6hdc5d7995q6myhgig286fk9hpaxdf418h1s17rqr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/npm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nrepl-sync = callPackage ({ cider
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "nrepl-sync";
+        ename = "nrepl-sync";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "lein-sync";
+          rev = "9506238562c2e0c0df744e0d81edff4c74322a7d";
+          sha256 = "1si5pfczk3iypdx2ydhirznx2hvp6r7sq2hy64gn3mn4r68svlfi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nrepl-sync";
+          sha256 = "01b504b4d8rrhlf3sfq3kk9i222fch6jd5jbm02kqw20fgv6q3jd";
+          name = "recipe";
+        };
+        packageRequires = [ cider ];
+        meta = {
+          homepage = "https://melpa.org/#/nrepl-sync";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ns-auto-titlebar = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ns-auto-titlebar";
+        ename = "ns-auto-titlebar";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ns-auto-titlebar";
+          rev = "b16092e8058af63ad2bc222f166b0aa3cb66bf9d";
+          sha256 = "0m1ih8ca4702zrkhl3zdvwbci96wyjlxhpfx95w372k25rca87dq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ns-auto-titlebar";
+          sha256 = "1wk4y2jwl65z18cv57m8zkcg31wp9by74z2zvccxzl7mwlhy7kqg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ns-auto-titlebar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nsis-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nsis-mode";
+        ename = "nsis-mode";
+        version = "0.44";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "nsis-mode";
+          rev = "f1bf701c37680553c8f51462e0829d0dd6c53187";
+          sha256 = "0c4qfbb345yna5c30czq8nhcx283z1fnpp6h16p7vjqs6y37czsl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nsis-mode";
+          sha256 = "0pc047ryw906sz5mv0awvl67kh20prsgx6fbh0j1qm0cali2792l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nsis-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    number-lock = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "number-lock";
+        ename = "number-lock";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "Liu233w";
+          repo = "number-lock.el";
+          rev = "1c71e31ae4974e04a21c22c6f059a59221793901";
+          sha256 = "0iy16jbp4zaaxf9lk1yw9n1dzqbvsmqnny3iplvlp69a70q0j2z8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/number-lock";
+          sha256 = "13xqn4bcjm01zl0rgbwzad58x35230lm2qiipbyqkh2ma0a9pqn4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/number-lock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    numbers = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "numbers";
+        ename = "numbers";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "numbers.el";
+          rev = "74be68b94143f042ce461b2a69202f515acaf20c";
+          sha256 = "0b4bgc4hkndia8zg4d23l1w78iwzj1l46ifrhz5z1p97qldalb0x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/numbers";
+          sha256 = "02cx19fi34yvc0icajnwrmb8lr2g8y08kis08v9xxalfxz06kb3h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/numbers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nvm = callPackage ({ dash
+                       , dash-functional
+                       , f
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , s }:
+      melpaBuild {
+        pname = "nvm";
+        ename = "nvm";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "nvm.el";
+          rev = "d18b13e8275a57ee6c55dc71b671f02a8e6522ad";
+          sha256 = "1624jj922l0bbav1v8szdr0lpyx0ng959fg3sspg1j15kgkir8kf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nvm";
+          sha256 = "0md1ybc2r2fxykwk21acjhdzy2kw326bdwa1d15c6f48lknzvg4w";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional f s ];
+        meta = {
+          homepage = "https://melpa.org/#/nvm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    nyan-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "nyan-mode";
+        ename = "nyan-mode";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "TeMPOraL";
+          repo = "nyan-mode";
+          rev = "4195cd368aca8f05a71cbff4e60cfa9dde10319a";
+          sha256 = "1bnfxw6cnhsqill3n32j9bc6adl437ia9ivbwvwjpz1ay928yxm7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/nyan-mode";
+          sha256 = "1z2wnsbjllqa533g1ab5cgbv3d9hjix7fsd7z9c45nqh5cmadmyv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/nyan-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    o-blog = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "o-blog";
+        ename = "o-blog";
+        version = "2.0";
+        src = fetchFromGitHub {
+          owner = "renard";
+          repo = "o-blog";
+          rev = "069220e1046988ecd4658b09f9e2470c476c34e1";
+          sha256 = "16x0wy3w0vqpp17k5scbd53zwi8dxngm064rzg1kc24md8q6kqib";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/o-blog";
+          sha256 = "08grkyvg27wd5232q3y8p0v7higfq7bmsdzmvhja96v6qy2xsbja";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/o-blog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-async = callPackage ({ async
+                            , dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "ob-async";
+        ename = "ob-async";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "astahlman";
+          repo = "ob-async";
+          rev = "4bd85c9065f4b075190ffa5a721b9191bc84d6e9";
+          sha256 = "0i8551vhn6l7gfw3zxnrimp6nzlxkp13gkvzmcmjs1c5pbxqrrik";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-async";
+          sha256 = "0k7kv71nnibp53lav774c61w9pzhq8qvch9rvpyyrwbyd67ninl8";
+          name = "recipe";
+        };
+        packageRequires = [ async dash emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-async";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-blockdiag = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ob-blockdiag";
+        ename = "ob-blockdiag";
+        version = "20170728.113";
+        src = fetchFromGitHub {
+          owner = "corpix";
+          repo = "ob-blockdiag.el";
+          rev = "634fcf64a4ae735afe7001d865b03f5d71e23046";
+          sha256 = "0xr3bv4wxz13b1grfyl2qnrszzab3n9735za837nf4lxh527ksaj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-blockdiag";
+          sha256 = "1lmawbgrlp6qd7p664jcl98y1xd2yqw9np6j52bh9i6s3cz6628g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-blockdiag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-coffeescript = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "ob-coffeescript";
+        ename = "ob-coffeescript";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "ob-coffeescript";
+          rev = "219c83f6c44e3612a7718c996365df1de747127d";
+          sha256 = "14va23m0wab1jf6jc5m61y2c0kcmc8dha463vyci1mvs3p1psjr8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-coffeescript";
+          sha256 = "05q1wnabw52kd3fpcpinpxs9z6xmi4n1p19jbcz0bgjpnw05s27p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-coffeescript";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-http = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "ob-http";
+        ename = "ob-http";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "zweifisch";
+          repo = "ob-http";
+          rev = "d57a9d4bb8727f36cb264189fe0a4cd9ef7c1c56";
+          sha256 = "1iqcfzkk4b923mnh20g4dfpjp35a8qcwbmi86li8jj11bknrx6dw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-http";
+          sha256 = "0b7ghz9pqbyn3b52cpmnwa2wnd4svj23p6gc48ybwzwiid42wiss";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib s ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-http";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-hy = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "ob-hy";
+        ename = "ob-hy";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "brantou";
+          repo = "ob-hy";
+          rev = "a42ecaf440adc03e279afe43ee5ef6093ddd542a";
+          sha256 = "0kv92r6j0dcqcg1s0g4iq1xvanscg6crwniysbrq6ifvmc4lvfdj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-hy";
+          sha256 = "18a8fpda0f28wxmjprhd9dmz7bpk1j3iayl20lqffrcal6m4f1h7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-hy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-prolog = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ob-prolog";
+        ename = "ob-prolog";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "ljos";
+          repo = "ob-prolog";
+          rev = "efa86bb70fd1907806f3e43705aff54d35582442";
+          sha256 = "0g25nn2h7djgc9rp59spx9096jdypsizd0vfzwj96cpq90lkysjx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-prolog";
+          sha256 = "0ki8yd20yk5xwn0zpk06zjxzgrsf8paydif9n98svb9s2l9wrh1s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-prolog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-sagemath = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s
+                               , sage-shell-mode }:
+      melpaBuild {
+        pname = "ob-sagemath";
+        ename = "ob-sagemath";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "stakemori";
+          repo = "ob-sagemath";
+          rev = "450d510a5eb1fd644d0037e9f02271ca33639fb0";
+          sha256 = "00i7jszlfh67xzvqnp137aaia68rkk4ri5v0fs32ym10pcj8l4dp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-sagemath";
+          sha256 = "02ispac1y4g7p7iyscf5p8lvp92ncrn6281jm9igyiny1w6hivy7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s sage-shell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-sagemath";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-sml = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , sml-mode }:
+      melpaBuild {
+        pname = "ob-sml";
+        ename = "ob-sml";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "swannodette";
+          repo = "ob-sml";
+          rev = "5dc966acbe65e9e158bfa90018035bf52d4dafd4";
+          sha256 = "1xx6hyq3gk4bavcx6i9bhipbn4mn5rv2ga9lryq09qgq2l9znclk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-sml";
+          sha256 = "04qvzhwjr8ipvq3znnhn0wbl4pbb1rwxi90iidavzk3phbkpaskn";
+          name = "recipe";
+        };
+        packageRequires = [ sml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-sml";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-tmux = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , seq }:
+      melpaBuild {
+        pname = "ob-tmux";
+        ename = "ob-tmux";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "ahendriksen";
+          repo = "ob-tmux";
+          rev = "8886f31291e979b41215f3eb97670732efffea34";
+          sha256 = "0j77n1lawkx94hyv89xsvmrbqhd8x19ycrvxrwhc0mzlxh7rxjcy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-tmux";
+          sha256 = "12c0m2xxd75lbc98h7cwprmdn823mh2ii59pxr6fgnq7araqkz20";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s seq ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-tmux";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-translate = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , google-translate
+                                , lib
+                                , melpaBuild
+                                , org }:
+      melpaBuild {
+        pname = "ob-translate";
+        ename = "ob-translate";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "ob-translate";
+          rev = "6b39cc1a94a1071107a4391684b1bffb5b9826f3";
+          sha256 = "10hm20dzhkxk61ass3bd5gdn1bs2l60y3zjnpkxinzn7m6aaniia";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-translate";
+          sha256 = "1hi0rxbyxvk9sbk2fy3kqw7l4lgri921vya1mn4i1q2i1979r2gz";
+          name = "recipe";
+        };
+        packageRequires = [ google-translate org ];
+        meta = {
+          homepage = "https://melpa.org/#/ob-translate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ob-uart = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ob-uart";
+        ename = "ob-uart";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "andrmuel";
+          repo = "ob-uart";
+          rev = "90daeac90a9e75c20cdcf71234c67b812110c50e";
+          sha256 = "1syxxq411izmyfrhlywasax7n5c3yjy487mvfdjzjg8csmmk0m9v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ob-uart";
+          sha256 = "1dkbyk8da0zw784dgwi8njnz304s54341dyfzvlb0lhcn41dmkz7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ob-uart";
+          license = lib.licenses.free;
+        };
+      }) {};
+    obfusurl = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "obfusurl";
+        ename = "obfusurl";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "obfusurl.el";
+          rev = "7a5a41905000ce2ec1fd72509a5567e5fd9f47e5";
+          sha256 = "0jbrxlpx0cxg8jzqrssk3y3ab7v62ymi6ys24542a8vpk522vqxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/obfusurl";
+          sha256 = "0xx2zsjbkd17iy7xzqc66f9xgc97f9js3nz656yhmmxakjk2krra";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/obfusurl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ocodo-svg-modelines = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , svg-mode-line-themes }:
+      melpaBuild {
+        pname = "ocodo-svg-modelines";
+        ename = "ocodo-svg-modelines";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "ocodo";
+          repo = "ocodo-svg-modelines";
+          rev = "a6c5b9a7536c7a8fa3bd9d9dafdebc8d99903018";
+          sha256 = "05ay599nc6jdw2fjss4izz1ynv2wc4svff932n8j9hvrhygipb2w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ocodo-svg-modelines";
+          sha256 = "0fa88ns70wsr9i9gf4zx3fvmn1a32mrjsda105n0cx6c965kfmay";
+          name = "recipe";
+        };
+        packageRequires = [ svg-mode-line-themes ];
+        meta = {
+          homepage = "https://melpa.org/#/ocodo-svg-modelines";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ocp-indent = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ocp-indent";
+        ename = "ocp-indent";
+        version = "1.7.0";
+        src = fetchFromGitHub {
+          owner = "OCamlPro";
+          repo = "ocp-indent";
+          rev = "b15fd7585b42f89d745fad69ed1f2b70ecb8757d";
+          sha256 = "0aszx9kxfbrlg0amsl3j3kdwn6n0a5fl33kvl8rgyv543p2jcx8f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ocp-indent";
+          sha256 = "0wc4z9dsnnyr24n3vg1npvc3rm53av8bpbvrl8kldxxdiwgnbkjw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ocp-indent";
+          license = lib.licenses.free;
+        };
+      }) {};
+    octicons = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "octicons";
+        ename = "octicons";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-octicons";
+          rev = "7ffc50ac99d43bc92928dec9f269eceb7e76bf0b";
+          sha256 = "17hpcr864lx0g68by4n2n013zbplnihvidqm629zgr9b9ybanxy8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/octicons";
+          sha256 = "02f37bvnc5qvkvfbyx5wp54nz71bqm747mq1p5361sx091lllkxk";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/octicons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    offlineimap = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "offlineimap";
+        ename = "offlineimap";
+        version = "1";
+        src = fetchFromGitHub {
+          owner = "jd";
+          repo = "offlineimap.el";
+          rev = "646482203aacdf847d57d0a96263fddcfc33fb61";
+          sha256 = "0az4llfgva4wvpljyc5s2m7ggfnj06ssp32x8bncr5fzksha3r7b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/offlineimap";
+          sha256 = "0nza7lrz7cn06njcblwh9hy3050j8ja4awbxx7jzv6nazjg7201b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/offlineimap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    olivetti = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "olivetti";
+        ename = "olivetti";
+        version = "1.6.1";
+        src = fetchFromGitHub {
+          owner = "rnkn";
+          repo = "olivetti";
+          rev = "02272654f1d920ea2da5a4b553acd5e5cc096ab1";
+          sha256 = "0f7i2f42mlr27d9wa9h2zvz0k0xyqvwndzgz81x8gsm0w1iv15k9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/olivetti";
+          sha256 = "0fkvw2y8r4ww2ar9505xls44j0rcrxc884p5srf1q47011v69mhd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/olivetti";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-kill = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "omni-kill";
+        ename = "omni-kill";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-kill.el";
+          rev = "904549c8fd6ac3cf22b5d7111ca8944e179cffea";
+          sha256 = "1mlnh5pdqdv1qb8jvi0wvkgbpy74zq807gmp04bp6cpxdns9j63f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-kill";
+          sha256 = "03kydl16rd9mnc1rnan2byqa6f70891fhcj16wkavl2r68rfj75k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/omni-kill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-log = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ht
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "omni-log";
+        ename = "omni-log";
+        version = "0.3.6";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-log.el";
+          rev = "20021eb788cbeec0371145468430b259686f519d";
+          sha256 = "1sf2zbhjaz5b9xmz6632338cga7d326ibgw8b8c6c6b4vk16yhqc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-log";
+          sha256 = "0c29243zq8r89ax4rxlmb8imag12icnldcb0q0xsnhjccw8lyw1r";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ht s ];
+        meta = {
+          homepage = "https://melpa.org/#/omni-log";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-quotes = callPackage ({ dash
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , ht
+                               , lib
+                               , melpaBuild
+                               , omni-log
+                               , s }:
+      melpaBuild {
+        pname = "omni-quotes";
+        ename = "omni-quotes";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-quotes.el";
+          rev = "454116c1dd6581baaeefd6b9310b1b6b7a5c36d0";
+          sha256 = "1h8lrpi5wizi5vncdz83cxlx7c71xw3sw89sfg462zfbz2sq8afl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-quotes";
+          sha256 = "0dqki0ibabs9cpcjvnh8lc2114x46i1xmnyjc6qqblfxa3ggdygs";
+          name = "recipe";
+        };
+        packageRequires = [ dash f ht omni-log s ];
+        meta = {
+          homepage = "https://melpa.org/#/omni-quotes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-scratch = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "omni-scratch";
+        ename = "omni-scratch";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-scratch.el";
+          rev = "636374c59c7d33c2f72c97ad8ba9fb4854f2324d";
+          sha256 = "0w62bk2m0gs4b605s691z4iap9baz1z6c8z4v9vb05917qlsx5xb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-scratch";
+          sha256 = "190dkqcw8xywzrq8a99w4rqi0y1h2aj23s84g2ln1sf7jaf6d6n9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/omni-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omni-tags = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , pcre2el }:
+      melpaBuild {
+        pname = "omni-tags";
+        ename = "omni-tags";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "AdrieanKhisbe";
+          repo = "omni-tags.el";
+          rev = "a39bcb31647d3d6c81253d2476bd50ceb1179a4b";
+          sha256 = "0688xl5izq3189w4fxzw255md3r092f56xhbbsszqf8rra42qq42";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omni-tags";
+          sha256 = "133ww1jf14jbw02ssbx2a46mp52j18a2wwzb6x77azb0akmf1lzl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib pcre2el ];
+        meta = {
+          homepage = "https://melpa.org/#/omni-tags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    omnisharp = callPackage ({ auto-complete
+                             , cl-lib ? null
+                             , csharp-mode
+                             , dash
+                             , emacs
+                             , f
+                             , fetchFromGitHub
+                             , fetchurl
+                             , flycheck
+                             , lib
+                             , melpaBuild
+                             , popup
+                             , s
+                             , shut-up }:
+      melpaBuild {
+        pname = "omnisharp";
+        ename = "omnisharp";
+        version = "4.2";
+        src = fetchFromGitHub {
+          owner = "OmniSharp";
+          repo = "omnisharp-emacs";
+          rev = "588b8482685adedbc56933cb13c58d9cc6a82456";
+          sha256 = "1iqwxc19jvcb2gsm2aq59zblg1qjmbxgb2yl3h3aybqp968j3i00";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/omnisharp";
+          sha256 = "0gh0wwdpdx2cjf95pcagj52inf7mrmiq7x8p0x5c7lvl4pfzhh87";
+          name = "recipe";
+        };
+        packageRequires = [
+          auto-complete
+          cl-lib
+          csharp-mode
+          dash
+          emacs
+          f
+          flycheck
+          popup
+          s
+          shut-up
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/omnisharp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    opam = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "opam";
+        ename = "opam";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "opam.el";
+          rev = "d5b15e6f75e4e46e6d4064ef45fb25c90515aa85";
+          sha256 = "00alzjidp7v0ll4pb5ybkk3hly6phzn4izar4n4clmpwn623fjf8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/opam";
+          sha256 = "004r93nn1ranvxkcc0y5m3p8gh4axgghgnsvim38nc1sqda5h6xa";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/opam";
+          license = lib.licenses.free;
+        };
+      }) {};
+    opencl-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "opencl-mode";
+        ename = "opencl-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "salmanebah";
+          repo = "opencl-mode";
+          rev = "14109a4bb56105a9c052ae49ad4c638b4cc210b2";
+          sha256 = "0n64l1jrrk60g192nn0240qcv2p9r138mi9gb38qq5k65wffbc21";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/opencl-mode";
+          sha256 = "1g351wiaycwmg1bnf4s2mdnc3lb2ml5l54g19184xqssfqlx7y79";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/opencl-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    opener = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , request }:
+      melpaBuild {
+        pname = "opener";
+        ename = "opener";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "0robustus1";
+          repo = "opener.el";
+          rev = "ab75048b1073fb1b1452dabae94ab55e0cfb57c4";
+          sha256 = "00kh8m23jzwb0wipwjdm2wad08xqrlcg00vzc4vzijgrapz0da3h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/opener";
+          sha256 = "0fhny4m7x19wnlnr19s4rkl04dkx95yppd51jzrkr96xiznw97s7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/opener";
+          license = lib.licenses.free;
+        };
+      }) {};
+    opensource = callPackage ({ dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pkg-info
+                              , request
+                              , s }:
+      melpaBuild {
+        pname = "opensource";
+        ename = "opensource";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "OpenSourceOrg";
+          repo = "el-opensourceorg";
+          rev = "27d06be45c852e84e47c33cbd0f4c344fd9a0370";
+          sha256 = "1rjf78vki4xp8y856v95877093p3zgfc9mx92npscsi1g93dxn80";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/opensource";
+          sha256 = "17gi20s2vi7m75qqaff907x1g8ja5ny90klldpqmj258m2j6a6my";
+          name = "recipe";
+        };
+        packageRequires = [ dash pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/opensource";
+          license = lib.licenses.free;
+        };
+      }) {};
+    operate-on-number = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "operate-on-number";
+        ename = "operate-on-number";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "operate-on-number.el";
+          rev = "6a17272e2b6e23260edb1b5eeb01905a1f37e0a6";
+          sha256 = "12q09kdcgv6hl1hmgarl73j4g9gi4h7sj865655mdja0ns9n1pdb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/operate-on-number";
+          sha256 = "1rw3fqbzfizgcbz3yaf99rr2546msna4z7dyfa8dbi8h7yzl4fhk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/operate-on-number";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-ac = callPackage ({ auto-complete-pcmp
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , log4e
+                          , melpaBuild
+                          , yaxception }:
+      melpaBuild {
+        pname = "org-ac";
+        ename = "org-ac";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "org-ac";
+          rev = "b637dfdacdeea8a61303eea338c8ca9b73eb5fff";
+          sha256 = "16j9zalchijdskfwz38icdwhfnxbkvybzqnzdjjm2ihk734yl6vg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-ac";
+          sha256 = "059jr3v3558cgw626zbqfwmwwv5f4637ai26h7b6psqh0x9sf3mr";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete-pcmp log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/org-ac";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-agenda-property = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "org-agenda-property";
+        ename = "org-agenda-property";
+        version = "1.3.1";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "org-agenda-property";
+          rev = "2ff628a14a3e758863bbd88fba4db9f77fd2c3a8";
+          sha256 = "0gkxxzdk8bd1yi5x9217pkq9d01ccq8znxc7h8qcw0p1336rigfc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-agenda-property";
+          sha256 = "0zsjzjw52asl609q7a2s4jcsm478p4cxzhnd3azyr9ypxydjf6qk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-agenda-property";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-alert = callPackage ({ alert
+                             , dash
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , s }:
+      melpaBuild {
+        pname = "org-alert";
+        ename = "org-alert";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "spegoraro";
+          repo = "org-alert";
+          rev = "685c18aa5ce994360c7f9e8bbf49590c412187ac";
+          sha256 = "0gkv2sfl9nb64qqh5xhgq68r9kfmsny3vpcmnzk2mqjcb9nh657s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-alert";
+          sha256 = "01bb0s22wa14lyr9wi58cvk4b03xqq268y3dvxbrhymw1ld97zk2";
+          name = "recipe";
+        };
+        packageRequires = [ alert dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-autolist = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-autolist";
+        ename = "org-autolist";
+        version = "0.14";
+        src = fetchFromGitHub {
+          owner = "calvinwyoung";
+          repo = "org-autolist";
+          rev = "c82d1e83e982b5f0c106b8800e5b0cfd5f73fdc1";
+          sha256 = "0ykiafbdjb2iy0s1gr6l51gddjbk08iwj4v13hgm8b675bl0cw56";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-autolist";
+          sha256 = "1jvspxhxlvd7h1srk9dbk1v5dykmf8jsjaqicpll7ial6i0qgikj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-autolist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-babel-eval-in-repl = callPackage ({ emacs
+                                          , ess
+                                          , eval-in-repl
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , matlab-mode
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "org-babel-eval-in-repl";
+        ename = "org-babel-eval-in-repl";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "diadochos";
+          repo = "org-babel-eval-in-repl";
+          rev = "36ebf7d855df8ace9429270cfc48cf2e949775eb";
+          sha256 = "1hjwxmn1gsq9wfhhydqlnss66zq4wl13vkq4irf0l50xspzscg8l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-babel-eval-in-repl";
+          sha256 = "0brqp0w9s28ibws4idlm1rw09lsfa98l5wbpwm64rvlixhs6zlnx";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ess eval-in-repl matlab-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/org-babel-eval-in-repl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-beautify-theme = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "org-beautify-theme";
+        ename = "org-beautify-theme";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "jonnay";
+          repo = "org-beautify-theme";
+          rev = "7b7a7cbd4f25f77e8bd81783f517b2b182220fd9";
+          sha256 = "0nqw4apv642vqbjjqbi960zim9lkbnaszrlasf25c9fnzdg1m134";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-beautify-theme";
+          sha256 = "0rrlyn61xh3szw8aihxpbmg809xx5ac66xqzj895dn1raz129h2w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-beautify-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-board = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "org-board";
+        ename = "org-board";
+        version = "1018";
+        src = fetchFromGitHub {
+          owner = "scallywag";
+          repo = "org-board";
+          rev = "405bfd630f1b31bd77158bc8e79aab86812cba65";
+          sha256 = "066shdqp0bca2xlds1m0c5ml3yxqfyzsyyy7sy72ybv41n5b11x3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-board";
+          sha256 = "00jsrxc8f85cvrh7364n7337frdj12yknlfp28fhdgk2ph6d7bp4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-board";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-bookmark-heading = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "org-bookmark-heading";
+        ename = "org-bookmark-heading";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-bookmark-heading";
+          rev = "70b014e09977371a8c9bad03085c116693062b19";
+          sha256 = "0j765rb2yfwnc0ri53jb8d6lxj6knpmy495bk3sd63492kdrxf93";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-bookmark-heading";
+          sha256 = "1q92rg9d945ypcpb7kig2r0cr7nb7avsylaa7nxjib25advx80n9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-bookmark-heading";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-bullets = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "org-bullets";
+        ename = "org-bullets";
+        version = "0.2.4";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "org-bullets";
+          rev = "b70ac2ec805bcb626a6e39ea696354577c681b36";
+          sha256 = "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-bullets";
+          sha256 = "0yrfgd6r71rng3qipp3y9i5mpm6510k4xsfgyidcn25v27fysk3v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-bullets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-category-capture = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , org }:
+      melpaBuild {
+        pname = "org-category-capture";
+        ename = "org-category-capture";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "org-projectile";
+          rev = "48f621b595e748c5e03431f237facf258ffc9443";
+          sha256 = "00n2msmwcjjiibrhrvpawzgz6qcjjfy9qnii1iaass0038g4bd89";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-category-capture";
+          sha256 = "0l5n71h9lc8q9k0sb5ghzwb81lah4l1ykc06shfl9zw5lqqvahav";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-category-capture";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-clock-csv = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , org
+                                 , s }:
+      melpaBuild {
+        pname = "org-clock-csv";
+        ename = "org-clock-csv";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "atheriel";
+          repo = "org-clock-csv";
+          rev = "20ab6ee4395bedc0a7b8dfaf7b51f2c63dc8d2c6";
+          sha256 = "00lcvmls7zlkqmsi0yfiihyxv49803jlc9khcbqawxlkijvr65pm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-clock-csv";
+          sha256 = "02spjrzdf1kmvyvqkzg7nnmq9kqv75zwxn5ifqmg0f7a1gw28f0l";
+          name = "recipe";
+        };
+        packageRequires = [ org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-clock-csv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-commentary = callPackage ({ dash
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , org }:
+      melpaBuild {
+        pname = "org-commentary";
+        ename = "org-commentary";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "smaximov";
+          repo = "org-commentary";
+          rev = "2eeeb0f506e30ef82263e67279d837a79cbde021";
+          sha256 = "02an98pc52yfxsxmz1kib692yx93rqdi1q3lpvblzyd3hhd51rlr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-commentary";
+          sha256 = "0ym1rq2zhyhc6hkk40wsa9jni2h1z5dkaisldqzg8ggl7iv3v4fx";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-commentary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-doing = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "org-doing";
+        ename = "org-doing";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "rudolfolah";
+          repo = "org-doing";
+          rev = "e099514cfc162f8fe3d383456a7964743b0455d5";
+          sha256 = "1hvnrw0y3chlfv6zxsczmm8zybrnakn3x13ykv2zblw96am9kd2s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-doing";
+          sha256 = "10vg0wl8dsy12r51178qi4rzi94img692z5x3zv8dxa29lmn26xs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-doing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-download = callPackage ({ async
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-download";
+        ename = "org-download";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "org-download";
+          rev = "a57beffd0f09b218a9487d1750960878c1d5b12c";
+          sha256 = "1disqqfwjl366kv6xgc28w7zbc4xl9a0jmdj7w27mb00sxzfk3vb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-download";
+          sha256 = "19yjx0qqpmrdwagp3d6lwwv7dcb745m9ccq3m29sin74f5p4svsi";
+          name = "recipe";
+        };
+        packageRequires = [ async ];
+        meta = {
+          homepage = "https://melpa.org/#/org-download";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-dp = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "org-dp";
+        ename = "org-dp";
+        version = "1";
+        src = fetchFromGitHub {
+          owner = "tj64";
+          repo = "org-dp";
+          rev = "d740c2065120f71762c48877da1a31dea881e98e";
+          sha256 = "0cxccxz17pj67wgmyxr74n381mknqgqkyav3jkxs4ghg59g5nygl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-dp";
+          sha256 = "0fnrzpgw8l0g862j20yy4mw1wfcm2i04r6dxi4yd7yay8bw2i4yq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-dp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-edit-latex = callPackage ({ auctex
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "org-edit-latex";
+        ename = "org-edit-latex";
+        version = "0.8.3";
+        src = fetchFromGitHub {
+          owner = "et2010";
+          repo = "org-edit-latex";
+          rev = "39cbc9a99acb030f537c7269ab93958187321871";
+          sha256 = "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-edit-latex";
+          sha256 = "0nkiz4682qgk5dy4if3gij98738482ys8zwm8yx834za38xxbwry";
+          name = "recipe";
+        };
+        packageRequires = [ auctex emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-edit-latex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-elisp-help = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , org }:
+      melpaBuild {
+        pname = "org-elisp-help";
+        ename = "org-elisp-help";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "org-elisp-help";
+          rev = "3e33ab1a2933dd7f2782ef91d667a37f12d633ab";
+          sha256 = "088pbafz1x4z7qi70cjbrvfrcdrjp4zy0yl115klbidshqhxycmj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-elisp-help";
+          sha256 = "0a4wvz52hkcw5nrml3h1yp8w97vg5jw22wnpfbb827zh7iwb259h";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-elisp-help";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-evil = callPackage ({ dash
+                            , evil
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , monitor
+                            , org }:
+      melpaBuild {
+        pname = "org-evil";
+        ename = "org-evil";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "GuiltyDolphin";
+          repo = "org-evil";
+          rev = "3b4620edc606412ef75c0b5aa637af22486eb126";
+          sha256 = "0aqya9l9s55h5wd728iz15f53p5xajrfk8pn9gjxnw0i8m4d09sd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-evil";
+          sha256 = "0wvd201k9b9ghg39rwbah6rw8b7hyyd27vvqjynjwbk3v8rp5zyn";
+          name = "recipe";
+        };
+        packageRequires = [ dash evil monitor org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-gcal = callPackage ({ alert
+                            , cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org
+                            , request-deferred }:
+      melpaBuild {
+        pname = "org-gcal";
+        ename = "org-gcal";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "kidd";
+          repo = "org-gcal.el";
+          rev = "badd3629e6243563c30ff1dd0452b7601f6cc036";
+          sha256 = "1pxfcyf447h18220izi8qlnwdr8rlwn5kds8gr5i1v90s6hpa498";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-gcal";
+          sha256 = "014h67ba0cwi4i1llngypscyvyrm74ljh067i3iapx5a18q7xw5v";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib emacs org request-deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/org-gcal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-gnome = callPackage ({ alert
+                             , fetchFromGitHub
+                             , fetchurl
+                             , gnome-calendar
+                             , lib
+                             , melpaBuild
+                             , telepathy }:
+      melpaBuild {
+        pname = "org-gnome";
+        ename = "org-gnome";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "org-gnome.el";
+          rev = "1012d47886cfd30eed25b73d9f18e475e0155f88";
+          sha256 = "0b57ik05iax2h3nrj96kysbk4hxmxlaabd0n6lv1xsayrlli3sj1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-gnome";
+          sha256 = "0c37gfs6xs0jbvg6ypd4z5ip1khm26wr5lxgmv1dzcc383ynzg0v";
+          name = "recipe";
+        };
+        packageRequires = [ alert gnome-calendar telepathy ];
+        meta = {
+          homepage = "https://melpa.org/#/org-gnome";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-if = callPackage ({ fetchFromGitLab
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "org-if";
+        ename = "org-if";
+        version = "0.2.0";
+        src = fetchFromGitLab {
+          owner = "elzair";
+          repo = "org-if";
+          rev = "fab602cc1bbee7a4e99c0083e129219d3f9ed2e8";
+          sha256 = "1iyqv34b7q2k73srshcnpvfzcadq47w4rzkqp6m1d3ajk8x2vypq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-if";
+          sha256 = "0h0jdyawz2j4mp33w85z8q77l37qid8palvw5n4z379qa0wr5h96";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-if";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-index = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "org-index";
+        ename = "org-index";
+        version = "5.9.3";
+        src = fetchFromGitHub {
+          owner = "marcIhm";
+          repo = "org-index";
+          rev = "d073e071ab5e96af6691ccf9b20c975e7a0c8e16";
+          sha256 = "15r9qxbkz2s82qj7fbdzcln4w3qipq6lgdfyrgmzi9f73v5l0c8f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-index";
+          sha256 = "092q92hwvknwm3v2shp8dm59qdamfivx9z9v23msysy7x2mhg98f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-index";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-jira = callPackage ({ cl-lib ? null
+                            , dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , request
+                            , s }:
+      melpaBuild {
+        pname = "org-jira";
+        ename = "org-jira";
+        version = "4.0.3";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "org-jira";
+          rev = "45f3e8f19f511fae2012828a99b8e3254708531c";
+          sha256 = "1s42bvmg04vf5fl1y9pzga63xmbk72s3ydgnqhq88xg7cj9siw0h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-jira";
+          sha256 = "1sbypbz00ki222zpm47yplyprx7h2q076b3l07qfilk0sr8kf4ql";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs request s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-jira";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-journal = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "org-journal";
+        ename = "org-journal";
+        version = "1.15.0";
+        src = fetchFromGitHub {
+          owner = "bastibe";
+          repo = "org-journal";
+          rev = "3ae2e7d7e372dee08143282a9137bf4dfc946645";
+          sha256 = "1sqn68l1rlyypz3839hghrpwzcdxvqwr50dbfad5827garflg3m4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-journal";
+          sha256 = "1npzqxn1ssigq7k1nrxz3xymxaazby0ddgxq6lgw2a1zjmjm4h2b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-journal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-kanban = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , org }:
+      melpaBuild {
+        pname = "org-kanban";
+        ename = "org-kanban";
+        version = "0.4.8";
+        src = fetchFromGitHub {
+          owner = "gizmomogwai";
+          repo = "org-kanban";
+          rev = "476b896cdc537b7bc25d2a652c2d49f4560e2118";
+          sha256 = "0b4lmhp3ghjk5s2x45lgh5yf5i3qlk1gi60pgrd2y0kphaxj0y4j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-kanban";
+          sha256 = "1flgqa2pwzw6b2zm3j09i9bvz1i8k03mbwj6l75yrk29lh4njq41";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-kanban";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-link-travis = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , org }:
+      melpaBuild {
+        pname = "org-link-travis";
+        ename = "org-link-travis";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "org-link-travis";
+          rev = "596615ad8373d9090bd4138da683524f0ad0bda5";
+          sha256 = "1797pd264zn19zk93nifyw6pwk2a7wrpfir373qclk601yv2g5h8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-link-travis";
+          sha256 = "0hj4x7cw7a3ry8xislkz9bnavy77z4cpmnvns02yi3gnib53mlfs";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-link-travis";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-linkany = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , log4e
+                               , melpaBuild
+                               , yaxception }:
+      melpaBuild {
+        pname = "org-linkany";
+        ename = "org-linkany";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "org-linkany";
+          rev = "ed4a6614b56c9baef31647ea728b3d5fae6ed3a2";
+          sha256 = "1bggz782ci0z6aw76v51ykbmfzh5g6cxh43w798as1152sn7im3p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-linkany";
+          sha256 = "0arjj3c23yqm1ljvbnl7v9cqvd9lbz4381g8f3jyqbafs25bdc3c";
+          name = "recipe";
+        };
+        packageRequires = [ log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/org-linkany";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-make-toc = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , org
+                                , s }:
+      melpaBuild {
+        pname = "org-make-toc";
+        ename = "org-make-toc";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-make-toc";
+          rev = "f1a51017b0f85e0cb9ae7d0d8240f2115f57886c";
+          sha256 = "0syhj8q4pv33xgl5qa6x27yhwqvfhffw5xqp819hj4qs1ddlc7j5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-make-toc";
+          sha256 = "0xaw3d1axvln4pr7p0jnqf0j6fd1g6cra1gykvf6y12zx02xkchh";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-make-toc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-mime = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "org-mime";
+        ename = "org-mime";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "org-mime";
+          repo = "org-mime";
+          rev = "0752659f7a19cead182584fabc9544464f69b83e";
+          sha256 = "06lay5w03ah3w156spgh4bv2ma4x42pyhr3glfxw7vplfr5klvfz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-mime";
+          sha256 = "14154pajl2bbawdd8iqfwgc67pcjp2lxl6f92c62nwq12wkcnny6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-mime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-mru-clock = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "org-mru-clock";
+        ename = "org-mru-clock";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "org-mru-clock";
+          rev = "0e2dcb7799fb82bbe55c8aa9930192871e8b6109";
+          sha256 = "08z6jc7qhj7zmzf1sag1n4nqh77k1dis2ijc6s2pzqlaxm3rhxyw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-mru-clock";
+          sha256 = "1arww5x6vdyyn1bwxry91w88phbr9l6nk8xxrw40iqmmbhggahgm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-mru-clock";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-multiple-keymap = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , org }:
+      melpaBuild {
+        pname = "org-multiple-keymap";
+        ename = "org-multiple-keymap";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "org-multiple-keymap.el";
+          rev = "20eb3be6be9f0abbad9f0d007e40cb00c8109201";
+          sha256 = "0yxfhzygiki8sha1dddac4g72r51yi4jnga2scmk51f9jgwqbihp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-multiple-keymap";
+          sha256 = "16iv5575634asvn1b2k535ml8g4lqgy8z5w6ykma5f9phq5idb9f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-multiple-keymap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-noter = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "org-noter";
+        ename = "org-noter";
+        version = "1.3.0";
+        src = fetchFromGitHub {
+          owner = "weirdNox";
+          repo = "org-noter";
+          rev = "8fb007c329fee8cceca97338ae0e88aaafcb8535";
+          sha256 = "0qcdw1px07ggnp74gb3hibd69cq8np9bdpcpvlkm5k32qxhsnwjy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-noter";
+          sha256 = "0vsc2b1yz9lw0zv1vnm722pl35kxpwhcdi7h6mijhnw8vv7rhixf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-noter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-outlook = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "org-outlook";
+        ename = "org-outlook";
+        version = "0.11";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "org-outlook.el";
+          rev = "070c37d017ccb71d94c3c69c99632fa6570ec2cc";
+          sha256 = "15fy6xpz6mk4j3nkrhiqal2dp77rhxmk8a7xiw037xr1jgq9sd9a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-outlook";
+          sha256 = "0cn8h6yy67jr5h1yxsfqmr8q7ii4f99pgghfp821m01pj55qyjx9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-outlook";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-page = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , ht
+                            , htmlize
+                            , lib
+                            , melpaBuild
+                            , mustache
+                            , org }:
+      melpaBuild {
+        pname = "org-page";
+        ename = "org-page";
+        version = "0.41";
+        src = fetchFromGitHub {
+          owner = "kelvinh";
+          repo = "org-page";
+          rev = "09febf89d8dcb226aeedf8164169b31937b64439";
+          sha256 = "0zc20m63a1iz9aziid5jsvcbl86k9dg9js4k3almchh55az4a0i3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-page";
+          sha256 = "1326m3w7vz22zk7rx40z28fddsccy5fl1qhbb7clci8l69blcc2v";
+          name = "recipe";
+        };
+        packageRequires = [ ht htmlize mustache org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-page";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-password-manager = callPackage ({ fetchgit
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , org
+                                        , s }:
+      melpaBuild {
+        pname = "org-password-manager";
+        ename = "org-password-manager";
+        version = "0.0.1";
+        src = fetchgit {
+          url = "https://github.com/leafac/org-password-manager";
+          rev = "108ad275965c9a65905d1a0064e7d9b5f6a62d3f";
+          sha256 = "0551fd71qbxzxxmhxqvlkh3skkswgcc1sgdl30mf5chylbnw8kly";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-password-manager";
+          sha256 = "0wxvl6ypgn6ky1z3dh33ya3rh73znkh5f8qhqwfmwp7hy2mbl4la";
+          name = "recipe";
+        };
+        packageRequires = [ org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-password-manager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-pdfview = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , org
+                               , pdf-tools }:
+      melpaBuild {
+        pname = "org-pdfview";
+        ename = "org-pdfview";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "markus1189";
+          repo = "org-pdfview";
+          rev = "3a96bfb57cb158ac02cfb4225512699c66f5221d";
+          sha256 = "0lrcj3mcdfcdrndivhj5ds386zrsy78sfg0i8126wwwc5lfh48vq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-pdfview";
+          sha256 = "1qhlmzf2ffcrjnx4yghv7n6rsry8bcwnkw489spgraq9vxvqklah";
+          name = "recipe";
+        };
+        packageRequires = [ org pdf-tools ];
+        meta = {
+          homepage = "https://melpa.org/#/org-pdfview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-pomodoro = callPackage ({ alert
+                                , cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-pomodoro";
+        ename = "org-pomodoro";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "lolownia";
+          repo = "org-pomodoro";
+          rev = "a6d867865f1a033fb5a09cca6643045d7ebac49c";
+          sha256 = "0r5shgikm34d66i2hblyknbblpg92lb2zc9x4bcb28xkh7m9d0xv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-pomodoro";
+          sha256 = "1vdi07hrhniyhhvg0hcr5mlixy6bjynvwm89z2lvfyvnnxpx0r27";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-pomodoro";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-projectile = callPackage ({ dash
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , org-category-capture
+                                  , projectile
+                                  , s }:
+      melpaBuild {
+        pname = "org-projectile";
+        ename = "org-projectile";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "org-projectile";
+          rev = "48f621b595e748c5e03431f237facf258ffc9443";
+          sha256 = "00n2msmwcjjiibrhrvpawzgz6qcjjfy9qnii1iaass0038g4bd89";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-projectile";
+          sha256 = "0xdkd5pkyi6yfqi4przgp5mpklyxfxv0cww285zdlh00rzl935cw";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org-category-capture projectile s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-projectile-helm = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , helm
+                                       , lib
+                                       , melpaBuild
+                                       , org-projectile }:
+      melpaBuild {
+        pname = "org-projectile-helm";
+        ename = "org-projectile-helm";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "org-projectile";
+          rev = "fc62993b5a0b9c13d4e6abeff5a504fc75edad85";
+          sha256 = "08gbgzn8dxl9wl3y4igq1lsnlxi94ak5w7pn9ykw7y6nr2714bms";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-projectile-helm";
+          sha256 = "0x79j5yr9wsgzjf1dpp7d4xiji8hgyhr79vb973an5z2r02vnaf4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm org-projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/org-projectile-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-protocol-jekyll = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "org-protocol-jekyll";
+        ename = "org-protocol-jekyll";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "vonavi";
+          repo = "org-protocol-jekyll";
+          rev = "ed09d166d665ad45f61184cfddcfc24b62e37bc7";
+          sha256 = "1iz6g1c37xrlrpi9avalkad6wmfb2l7yiawng0kbqm9i0bqkjhhs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-protocol-jekyll";
+          sha256 = "18wg489n2d1sx9jk00ki6p2rxkqz67kqwnmy2kb1ga1rmb6x9wfs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-protocol-jekyll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-random-todo = callPackage ({ alert
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "org-random-todo";
+        ename = "org-random-todo";
+        version = "0.5.2";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "org-random-todo";
+          rev = "60364c18725d2f3898a9099e7e546ae406dd6578";
+          sha256 = "0k86hqmqilvkam886mb85v991ivwnglallwj4l9ghszl7awy207m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-random-todo";
+          sha256 = "0yflppdbkfn2phd21zkjdlidzasfm846mzniay83v3akz0qx31lr";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-random-todo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-readme = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , header2
+                              , http-post-simple
+                              , lib
+                              , lib-requires
+                              , melpaBuild
+                              , yaoddmuse }:
+      melpaBuild {
+        pname = "org-readme";
+        ename = "org-readme";
+        version = "20130322.926";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "org-readme";
+          rev = "15054e42351b5ec6b629c55760a578516e035355";
+          sha256 = "0hhgfw0sqvl9jmmslwxn6v3dii99v09yz2h0ia5np9lzyxsc207a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-readme";
+          sha256 = "1qqbsgspd006gy0kc614w7bg6na0ygmflvqkmw47899pbgj81hxh";
+          name = "recipe";
+        };
+        packageRequires = [ header2 http-post-simple lib-requires yaoddmuse ];
+        meta = {
+          homepage = "https://melpa.org/#/org-readme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-ref = callPackage ({ dash
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , helm
+                           , helm-bibtex
+                           , hydra
+                           , ivy
+                           , key-chord
+                           , lib
+                           , melpaBuild
+                           , pdf-tools
+                           , s }:
+      melpaBuild {
+        pname = "org-ref";
+        ename = "org-ref";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "jkitchin";
+          repo = "org-ref";
+          rev = "db6c52f41faba686a378a8c57356a563f5cef496";
+          sha256 = "0kx6w3zz5gmlmr9bx1mdq1k8ykkbnll6m91z90p6f2xm96j627j6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-ref";
+          sha256 = "087isxf3z8cgmmniaxr3lpq9jg3sriw88dwp4f0ky286hlvgzw08";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          emacs
+          f
+          helm
+          helm-bibtex
+          hydra
+          ivy
+          key-chord
+          pdf-tools
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/org-ref";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-repo-todo = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "org-repo-todo";
+        ename = "org-repo-todo";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "waymondo";
+          repo = "org-repo-todo";
+          rev = "cba6145c6821fd2bbd96a1c9ef2346c281b76ad2";
+          sha256 = "0b57qy87sa8qcki16rgh16ldziay57yd7f98cpinaq0adcrqywy0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-repo-todo";
+          sha256 = "0l5ns1hs3i4dhrpmvzl34zc9zysgjkfa7j8apbda59n9jdvml5v1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-repo-todo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-rich-yank = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "org-rich-yank";
+        ename = "org-rich-yank";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "unhammer";
+          repo = "org-rich-yank";
+          rev = "f6bbf973bef7063c6ab475db25a630bc7ee317da";
+          sha256 = "1by1ymypwlnnnh8fx4ndcwsrif83xyx56mlvmv2lx6wmyliv0py9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-rich-yank";
+          sha256 = "1v0sc90g5sl6b9ylxbk2y8s3pvxkf4v7k2rkzpgpbp4nrq0miy4y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-rich-yank";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-static-blog = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "org-static-blog";
+        ename = "org-static-blog";
+        version = "1.2.1";
+        src = fetchFromGitHub {
+          owner = "bastibe";
+          repo = "org-static-blog";
+          rev = "f69d2fd6671fb250fbd87df5efa898a7bf5b9bda";
+          sha256 = "1h9c96rbxxk1jypib5f9pfi5zkimkvhxi61j0sps6r39435dd3w7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-static-blog";
+          sha256 = "07vh2k7cj0cs1yzfmrrz9p03x5mbfh0bigbl93s72h1wf7i05rkw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-static-blog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-super-agenda = callPackage ({ dash
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , ht
+                                    , lib
+                                    , melpaBuild
+                                    , org
+                                    , s }:
+      melpaBuild {
+        pname = "org-super-agenda";
+        ename = "org-super-agenda";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-super-agenda";
+          rev = "9dca3d88daf4ad58c5913846c968bbb9a37f95aa";
+          sha256 = "0infnwhssnaksmha4731cn30vm83im0lyq71r5ns5sdgwx32sxhh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-super-agenda";
+          sha256 = "1h3kqvpjq2w0n8qiqwb8wcpdy2g4ac7j6kin0943g7p5gm5yf0ra";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ht org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-super-agenda";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-sync = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , org }:
+      melpaBuild {
+        pname = "org-sync";
+        ename = "org-sync";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "arbox";
+          repo = "org-sync";
+          rev = "8c65dceaa2f3d436f83ed591916f22556a6e7f91";
+          sha256 = "0zx9gpvm5gy9k45lbhaks9s935id727lszsh40gmpdp5zxf3rjk1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-sync";
+          sha256 = "0n8fz2d1vg9r8dszgasbnb6pgaxr2i8mqrp953prf1nhmfpjpxad";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-sync";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-table-comment = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "org-table-comment";
+        ename = "org-table-comment";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "org-table-comment.el";
+          rev = "33b9966c33ecbc3e27cca67c2f2cdea04364d74e";
+          sha256 = "1qx3kd02sxs9k7adlvdlbmyhkc5kr7ni5lw4gxjw3nphnc536bkb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-table-comment";
+          sha256 = "1d40vl8aa1x27z4gwnkzxgrqp7vd3ln2pc445ijjxp1wr8bjxvdz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-table-comment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-table-sticky-header = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild
+                                           , org }:
+      melpaBuild {
+        pname = "org-table-sticky-header";
+        ename = "org-table-sticky-header";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "org-table-sticky-header";
+          rev = "4dba2dc9a3ed63f58aa946aeec84a52d46ca4043";
+          sha256 = "0az4lzd9qk4cx7jjfj36r2fvlkwyrhn3xqhha5d1pydglnhd9amy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-table-sticky-header";
+          sha256 = "1rk41279rcsdma39zpr1ka5p47gh1d0969wahd0jbm5xlmx5gz2m";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-table-sticky-header";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-tfl = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "org-tfl";
+        ename = "org-tfl";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "storax";
+          repo = "org-tfl";
+          rev = "f0d7d39106a1de5457f5160cddd98ab892b61066";
+          sha256 = "1rwdibiq0w4nzccmvdkpwnmfga70y35lfg2xlkqxd02x7bfl7j3m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-tfl";
+          sha256 = "1rqmmw0222vbxfn5wxq9ni2j813x92lpv99jjszqjvgnf2rkhjhf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/org-tfl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-themis = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "org-themis";
+        ename = "org-themis";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "zellio";
+          repo = "org-themis";
+          rev = "4b4bf1fa1e853664bf006dda8afe2db00e522aaa";
+          sha256 = "12fksqi9flf84h1lbmbcjnqxa7dairp50wvlwfhbp1hbb8l9z63a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-themis";
+          sha256 = "08rajz5y7h88fh94s2ad0f66va4vi31k9hwdv8p212bs276rp7ln";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-themis";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-time-budgets = callPackage ({ alert
+                                    , cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "org-time-budgets";
+        ename = "org-time-budgets";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "leoc";
+          repo = "org-time-budgets";
+          rev = "f2a8fe3d9d6104f3dd61fabbb385a596363b360b";
+          sha256 = "09iw2jffb2qrx5r07zd1j8sk5wafamjkc2khqyfwc5kx6xyp1f46";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-time-budgets";
+          sha256 = "0r8km586n6xdnjha7xnzlh03nw1dp066hydaz8kxfmhvygl9cpah";
+          name = "recipe";
+        };
+        packageRequires = [ alert cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/org-time-budgets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-timeline = callPackage ({ dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-timeline";
+        ename = "org-timeline";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "org-timeline";
+          rev = "5063120b688c60320aa19fa67787613929ca7b1d";
+          sha256 = "0ih55nq2vhzk6n07ds1fgil72jq5fc9rjkqh2n32ch8cafzv2ma2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-timeline";
+          sha256 = "0zlhjzjc7jwqh6wcys17hraz76n2hnjwffis02x71maclrf2cfdd";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/org-timeline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-toodledo = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "org-toodledo";
+        ename = "org-toodledo";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "org-toodledo";
+          rev = "5473c1a2762371b198862aa8fd83fd3ec57485a4";
+          sha256 = "0qqa62fsmra6v4061kpki8wbhfcwkgnb2gzxwvnaqlcmhivksg6v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-toodledo";
+          sha256 = "0c7qr0jsc4iyrwkc22xp9nmk6984v7q1k0rvpd62m07lb5gvbiq3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-toodledo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-tracktable = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "org-tracktable";
+        ename = "org-tracktable";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "tty-tourist";
+          repo = "org-tracktable";
+          rev = "8e0e60a582a034bd66d5efb72d513140b7d4d90a";
+          sha256 = "1aq7qv5jyc2x2a4iphnzmmsvak6dbi7nwdcf3m8nly8w75vrl5lj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-tracktable";
+          sha256 = "0mngf9q2ffxq32cgng0xl30661mj15wmr9y4hr3xddj626kxrp00";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-tracktable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-transform-tree-table = callPackage ({ dash
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild
+                                            , s }:
+      melpaBuild {
+        pname = "org-transform-tree-table";
+        ename = "org-transform-tree-table";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "jplindstrom";
+          repo = "emacs-org-transform-tree-table";
+          rev = "0a9bf07f01bc5fc3b349aff64e83999a8de83b52";
+          sha256 = "1h15fr16kgbyrxambmk4hsmha6hx4c4yqkccb82g3wlvzmnqj5x3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-transform-tree-table";
+          sha256 = "0n68cw769nk90ms6w1w6cc1nxjwn1navkz56mf11bsiqvsk3km7r";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-transform-tree-table";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-tree-slide = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "org-tree-slide";
+        ename = "org-tree-slide";
+        version = "2.8.4";
+        src = fetchFromGitHub {
+          owner = "takaxp";
+          repo = "org-tree-slide";
+          rev = "dccd80418a4444df5e8301695ff0d0dfe86a3c21";
+          sha256 = "0aacxxwhwjzby0f9r4q0lra5lqcrw5snnm1yc63jrs6c0ifakk45";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-tree-slide";
+          sha256 = "0v857zplv0wdbg4li667v2p5pn5zcf9fgbqcwa75x8babilkl6jn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-tree-slide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-trello = callPackage ({ dash
+                              , dash-functional
+                              , deferred
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , request-deferred
+                              , s }:
+      melpaBuild {
+        pname = "org-trello";
+        ename = "org-trello";
+        version = "0.8.1";
+        src = fetchFromGitHub {
+          owner = "org-trello";
+          repo = "org-trello";
+          rev = "c38c36159cdeb2348c4e9ca75246aa9cc1dfd76c";
+          sha256 = "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-trello";
+          sha256 = "14lq8nn1x6qb3jx518zaaz5582m4npd593w056igqhahkfm0qp8i";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional deferred request-deferred s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-trello";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-vcard = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "org-vcard";
+        ename = "org-vcard";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "flexibeast";
+          repo = "org-vcard";
+          rev = "a697c966579a8a67e02ad6b5d7f7897a1b5b4620";
+          sha256 = "1fx36yqq21wmccv055kd8p0ks2gmycyw68x4v57lszadg5rcf77k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-vcard";
+          sha256 = "0l6azshvzl1wws582njqr3qx4h73gwrdqwa3jcic1qbs9hg2l4yl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/org-vcard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-web-tools = callPackage ({ dash
+                                 , emacs
+                                 , esxml
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , org
+                                 , s }:
+      melpaBuild {
+        pname = "org-web-tools";
+        ename = "org-web-tools";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "org-web-tools";
+          rev = "e91fe58c161705160fc690f76fb721b9c0ad6552";
+          sha256 = "0z4via0laha9iz84frjfimlbwjk05576927171ascv4fknfqr1rb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-web-tools";
+          sha256 = "19zpspap85fjqg5a20ps34rcigb0ws986pj6dzd7xik8s6ia29s7";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs esxml org s ];
+        meta = {
+          homepage = "https://melpa.org/#/org-web-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org-wild-notifier = callPackage ({ alert
+                                     , dash
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "org-wild-notifier";
+        ename = "org-wild-notifier";
+        version = "0.2.4";
+        src = fetchFromGitHub {
+          owner = "akhramov";
+          repo = "org-wild-notifier.el";
+          rev = "5da63fc00db20b60eb46a241cc8308547d85b3ad";
+          sha256 = "1269az078d6d0x7ims2qa6wdv8ql2hn70fwigfqw116v9602ywjr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org-wild-notifier";
+          sha256 = "1lmpa614jnkpmfg3m1d2wjn9w0zig3gwd02n3dyjn23n71fiyhkp";
+          name = "recipe";
+        };
+        packageRequires = [ alert dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/org-wild-notifier";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org2blog = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , htmlize
+                            , lib
+                            , melpaBuild
+                            , metaweblog
+                            , org
+                            , xml-rpc }:
+      melpaBuild {
+        pname = "org2blog";
+        ename = "org2blog";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "org2blog";
+          repo = "org2blog";
+          rev = "bd2028b6a79daa63fc5481deaed63c4efc681be0";
+          sha256 = "1qpw5bs5qjlpw3hphbf2jg0h8bdrcgrb8xavdsx8viwjl013d4ps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org2blog";
+          sha256 = "15nr6f45z0i265llf8xs87958l5hvafh518k0s7jan7x1l6w5q33";
+          name = "recipe";
+        };
+        packageRequires = [ htmlize metaweblog org xml-rpc ];
+        meta = {
+          homepage = "https://melpa.org/#/org2blog";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org2jekyll = callPackage ({ dash-functional
+                              , deferred
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "org2jekyll";
+        ename = "org2jekyll";
+        version = "0.1.9";
+        src = fetchFromGitHub {
+          owner = "ardumont";
+          repo = "org2jekyll";
+          rev = "35e11ffa24b140d2e247df195489fca344bd0c08";
+          sha256 = "089nqbda5mg1ippqnsl5wcx9n1gpnaqhl6kz54n47kivb400bidh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org2jekyll";
+          sha256 = "1j9d6xf5nsakifxwd4zmjc29lbj46ffn3z109k2y2yhz7q3r9hzv";
+          name = "recipe";
+        };
+        packageRequires = [ dash-functional deferred s ];
+        meta = {
+          homepage = "https://melpa.org/#/org2jekyll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    org2web = callPackage ({ cl-lib ? null
+                           , dash
+                           , el2org
+                           , fetchFromGitHub
+                           , fetchurl
+                           , ht
+                           , htmlize
+                           , lib
+                           , melpaBuild
+                           , mustache
+                           , org
+                           , simple-httpd }:
+      melpaBuild {
+        pname = "org2web";
+        ename = "org2web";
+        version = "0.9.1";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "org2web";
+          rev = "5243b399927a4c474bb3b8d1c8a00799df1f27d7";
+          sha256 = "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/org2web";
+          sha256 = "0lcqf0pgkd7jilasw1485fy45k269jxvyl7hl7qrcs94s6fy2vaf";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          dash
+          el2org
+          ht
+          htmlize
+          mustache
+          org
+          simple-httpd
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/org2web";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgbox = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , org }:
+      melpaBuild {
+        pname = "orgbox";
+        ename = "orgbox";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "yasuhito";
+          repo = "orgbox";
+          rev = "ecaf5a064431cf92922338c974df8fce1a8f1734";
+          sha256 = "02mxp17p7bj4xamg0m6zk832hmpqcgzc7bjbjcnvbvrawhc255hy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgbox";
+          sha256 = "12wfqlpjh9nr7zgqs4h8kmfsk825n68qcbn8z2fw2mpshg3nj7l8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib org ];
+        meta = {
+          homepage = "https://melpa.org/#/orgbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgit = callPackage ({ dash
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , magit
+                         , melpaBuild
+                         , org }:
+      melpaBuild {
+        pname = "orgit";
+        ename = "orgit";
+        version = "1.5.1";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "orgit";
+          rev = "d909f92d3b1b42184143fd5e6d4c6a2762477ab7";
+          sha256 = "1jdc874bxkpbfpllak3vmfsn82p930s565bzff341vzv7aw2528c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgit";
+          sha256 = "0askccb3h98v8gmylwxaph3gbyv5b1sp4slws76aqz1kq9x0jy7w";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs magit org ];
+        meta = {
+          homepage = "https://melpa.org/#/orgit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orglink = callPackage ({ dash
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "orglink";
+        ename = "orglink";
+        version = "1.1.3";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "orglink";
+          rev = "82ea67b7f1bf10627759044acb74828f66a85a83";
+          sha256 = "0zqbz1idj73wz3kljkkzl7mvalk73j7xpl3di6mb16ylscg9sraw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orglink";
+          sha256 = "0ldrvvqs3hlazj0dch162gsbnbxcg6fgrxid8p7w9gj19vbcl52b";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/orglink";
+          license = lib.licenses.free;
+        };
+      }) {};
+    orgtbl-show-header = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "orgtbl-show-header";
+        ename = "orgtbl-show-header";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "orgtbl-show-header";
+          rev = "2f13391f56cf94f8fe1dc79d6eccb662198f9b69";
+          sha256 = "0s3pf18n7vh67am1pjaa22gh645088dbz2rgxixr9avpfyalaycj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/orgtbl-show-header";
+          sha256 = "1xgqjg3lmcczdblxaka47cc1ad8p8jhyb2nqwq0qnbqw46fqjp3k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/orgtbl-show-header";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-browse = callPackage ({ browse-url-dwim
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , string-utils }:
+      melpaBuild {
+        pname = "osx-browse";
+        ename = "osx-browse";
+        version = "0.8.8";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "osx-browse";
+          rev = "6186a6020e143e90d557c8d062c44fcdba0516c7";
+          sha256 = "0g1xhh88a65vcq6rlh7ii16pra4pv519ajcws0h93ldbbjiy7p0m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-browse";
+          sha256 = "06rfzq2hxhzg6jh2zs28r7ffxwlq40nz954j13ly8403c7rmbrfm";
+          name = "recipe";
+        };
+        packageRequires = [ browse-url-dwim string-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/osx-browse";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-clipboard = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "osx-clipboard";
+        ename = "osx-clipboard";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "joddie";
+          repo = "osx-clipboard-mode";
+          rev = "e46dd31327a3f92f77b013b4c9b1e5fdd0e5c73d";
+          sha256 = "1ykn48src7qhx9cmpjkaqsz7h36p75kkq1h9wlcpv5fhaky2d4n4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-clipboard";
+          sha256 = "0gjgr451v6rlyarz96v6h8kfbvkk7npvhgvkgwdi0bjighrhlv4f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/osx-clipboard";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-dictionary = callPackage ({ cl-lib ? null
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "osx-dictionary";
+        ename = "osx-dictionary";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "osx-dictionary.el";
+          rev = "0e5e5f1b0077a62673855889d529dd4f0cc8f665";
+          sha256 = "1zpr50q7i4wg1x7vsj69rh1b8xvk9r0591y4fvvs3a2l1llca2mq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-dictionary";
+          sha256 = "13033fxc5vjd1f7mm6znmprcp3mwxbvblb2d25shr8d4imqqhv82";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/osx-dictionary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-location = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "osx-location";
+        ename = "osx-location";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "osx-location";
+          rev = "110aee945b53ea550e4debe69bf3c077d940ec8c";
+          sha256 = "1csnxpsfnv9lv07kgvc60qx5c33sshmnz60p3qjz7ym7rnjy9b5x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-location";
+          sha256 = "1p12mmrw70p3b04zlprkdxdfnb7m3vkm6gci3fwhr5zyfvwxvn0c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/osx-location";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-pseudo-daemon = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "osx-pseudo-daemon";
+        ename = "osx-pseudo-daemon";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "mac-pseudo-daemon";
+          rev = "0358b3acd932082082971c489012bf139f5860dc";
+          sha256 = "1scdqy8g8dx3qzii70p3m2gddqqy7dkv63p8nfkp7vw1y5m19426";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-pseudo-daemon";
+          sha256 = "1sch7bb8hl96fji2ayw2ah5cjgsga08wj44vddjxskyway8ykf0z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/osx-pseudo-daemon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    osx-trash = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "osx-trash";
+        ename = "osx-trash";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "osx-trash.el";
+          rev = "529619b84d21e18a38ec5255eb40f6b8ede38b2a";
+          sha256 = "1n44wdffkw14si9kb7bpkp6d9cjwjrvksfh22y9549dhs1vav6qq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/osx-trash";
+          sha256 = "1f6pi53mhp2pvrfjm8544lqqj36gzpzxq245lzvv91lvqkxr9ysj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/osx-trash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outline-minor-faces = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "outline-minor-faces";
+        ename = "outline-minor-faces";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "outline-minor-faces";
+          rev = "8549b0b267c4ebd879d3915690c7f59aa175e202";
+          sha256 = "1i37kq2ww572gwzpyf90pwkqw7pn33z414fmmcq4xz3x8r0m23a8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outline-minor-faces";
+          sha256 = "1728imdqmmfqw5f67w8xsailn2b09y4xgdr769pd6kx8z6lsi8zb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/outline-minor-faces";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outlook = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "outlook";
+        ename = "outlook";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "asavonic";
+          repo = "outlook.el";
+          rev = "5847c6f13b106cb54529080e9050be5b8b5be867";
+          sha256 = "13wlfklk342gv5fmzpnz69mc07vm8x6xmh7li1w7f13ci3v4s045";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outlook";
+          sha256 = "0yq9zl7dr8kkm4rps5np4dwvjfhzsxq9wd1af7zwcmms4l3qry6k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/outlook";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outorg = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "outorg";
+        ename = "outorg";
+        version = "2.0";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "outorg";
+          rev = "04986bdb0b91fdd97974e032dced01dd8de759a4";
+          sha256 = "154nkvjaa78zhazmyv8ia8axgs7s1xr3zpv0z3mjl3v0ny7s5j21";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outorg";
+          sha256 = "10jh64d1nalfig69nnsib46915jinv37lvmxa0aj91zymq2szdm9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/outorg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    outshine = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , outorg }:
+      melpaBuild {
+        pname = "outshine";
+        ename = "outshine";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "outshine";
+          rev = "345d85ab5467ec6015fc58fe268936da93be0a5c";
+          sha256 = "1r7mjgwbljz16sa73gr7ig7zh6kkc8abqgma704njrbhlwygh9b0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/outshine";
+          sha256 = "1qqmvs17hq5s047nqplg4sa09xg5ck6zwqyg91xmbh71bx80v28v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib outorg ];
+        meta = {
+          homepage = "https://melpa.org/#/outshine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ov = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ov";
+        ename = "ov";
+        version = "1.0.6";
+        src = fetchFromGitHub {
+          owner = "ShingoFukuyama";
+          repo = "ov.el";
+          rev = "4e1c254d74bc1773c92f1613c3865cdcb4bc7095";
+          sha256 = "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ov";
+          sha256 = "0d71mpv74cfxcnwixbrl90nr22cw4kv5sdgpny5wycvh6cgmd6qb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ov";
+          license = lib.licenses.free;
+        };
+      }) {};
+    overcast-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "overcast-theme";
+        ename = "overcast-theme";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "myTerminal";
+          repo = "overcast-theme";
+          rev = "faafe7c19106cb4db29ba716d117fbb6ebdda3f4";
+          sha256 = "1kjvx2wjb9ksdr7w0c4xnvqa4sbplj6rwlh85lbmcg8lwkb1s2sy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/overcast-theme";
+          sha256 = "1v8hdnvc4pfmadkvdm6b8z0cy20pminvhjdlr13q5m9immr88a4r";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/overcast-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    overseer = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , pkg-info }:
+      melpaBuild {
+        pname = "overseer";
+        ename = "overseer";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "tonini";
+          repo = "overseer.el";
+          rev = "cf532a4e373e3da2077ccbaa48d4bfacd14661ba";
+          sha256 = "0jz8p6bwpfncxwi6ssmi6ngx8sjjica565i6ln0gsr5i11zfb7nx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/overseer";
+          sha256 = "0zbh0j21h6wsqnqvnzai6y6rpccdciksb7g64qw7fx0cpg5x2ms8";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/overseer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    owdriver = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , log4e
+                            , melpaBuild
+                            , smartrep
+                            , yaxception }:
+      melpaBuild {
+        pname = "owdriver";
+        ename = "owdriver";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "owdriver";
+          rev = "0479389d9df9e70ff9ce69dff06252d3aa40fc86";
+          sha256 = "0f2psx4lq98l3q3fnibsfqxp2hvvwk7b30zjvjlry3bffg3l7pfk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/owdriver";
+          sha256 = "0j8z7ynan0zj581x50gsi9lljkbi6bwmzpfyha3i6q8ch5qkdxfd";
+          name = "recipe";
+        };
+        packageRequires = [ log4e smartrep yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/owdriver";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-epub = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "ox-epub";
+        ename = "ox-epub";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "ofosos";
+          repo = "ox-epub";
+          rev = "7991155e4b80bafee616108014be5281c22bae83";
+          sha256 = "09di3qq0nc9m3dnqik392vbdps829wlkxdsjlcpdm0dfms9wq10v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-epub";
+          sha256 = "15q6vsmgv76c0qfdxa3prqvgmr6n7k4rd4bpi05574ibi23y0ynh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-epub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-gfm = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ox-gfm";
+        ename = "ox-gfm";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "larstvei";
+          repo = "ox-gfm";
+          rev = "99f93011b069e02b37c9660b8fcb45dab086a07f";
+          sha256 = "0drdypmgxk3238hmkqw9s3cw9wv94cyfqar5ar0bv0k69s92pxj8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-gfm";
+          sha256 = "065ngmzfd3g2h8n903hc4d363hz4z5rrdgizh2xpz03kf3plca6q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ox-gfm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-hugo = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , org }:
+      melpaBuild {
+        pname = "ox-hugo";
+        ename = "ox-hugo";
+        version = "0.8";
+        src = fetchFromGitHub {
+          owner = "kaushalmodi";
+          repo = "ox-hugo";
+          rev = "9751d34e1133b89a533a978c085b0715f85db648";
+          sha256 = "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-hugo";
+          sha256 = "1niarxj2y4a14lrv2nqcc36msw7k61h8fbjpcdrfbaw3n0kchd40";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-hugo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-ioslide = callPackage ({ cl-lib ? null
+                              , emacs
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , org }:
+      melpaBuild {
+        pname = "ox-ioslide";
+        ename = "ox-ioslide";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "org-ioslide";
+          rev = "6cb628e022ef224e9fe8b8b6c123713449d8f06b";
+          sha256 = "1ipscvm7rdp8vcpd2f9516k5mjhdx03sb1p2c9j7krkhigfrbpsr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-ioslide";
+          sha256 = "0z0qnvpw64wxbgz8203rphswlh9hd2i11pz2mlay8l3bzz4gx4vc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-ioslide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-pandoc = callPackage ({ dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , ht
+                             , lib
+                             , melpaBuild
+                             , org }:
+      melpaBuild {
+        pname = "ox-pandoc";
+        ename = "ox-pandoc";
+        version = "1.150707";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "ox-pandoc";
+          rev = "035f1d60a0139349232c382cfd23a96902b7003d";
+          sha256 = "0h49pfl97vl796sm7r62rpv3slj0z5krm4zrqkgz0q6zlyrjay29";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-pandoc";
+          sha256 = "0wy6yvwd4vyq6xalkrshnfjjxlh1p24y52z49894nz5fl63b74xc";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ht org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-pandoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-twbs = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ox-twbs";
+        ename = "ox-twbs";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "marsmining";
+          repo = "ox-twbs";
+          rev = "2414e6b1de7deb6dd2ae79a7be633fdccb9c2f28";
+          sha256 = "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-twbs";
+          sha256 = "050rv270jlkc1v7wp47cv9cwr9pz3n840dd4jxxhfs6s47b9ln73";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ox-twbs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ox-wk = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , org }:
+      melpaBuild {
+        pname = "ox-wk";
+        ename = "ox-wk";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "w-vi";
+          repo = "ox-wk.el";
+          rev = "9fc37e7e2f789b0ba07cb117ea1e1dcd14a2fd83";
+          sha256 = "00wsx21nmnvci2wfvxaci1kdxplavi2a4dw8ahvl7ncr3b60219f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ox-wk";
+          sha256 = "0rb4xkkqb65ly01lb1gl3gyz4yj9hzv4ydbdzsbvmpj0hrdw5nv3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://melpa.org/#/ox-wk";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pabbrev = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pabbrev";
+        ename = "pabbrev";
+        version = "4.1";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "pabbrev";
+          rev = "127a8b10cf352b0491fefd2f4178ba78ee587564";
+          sha256 = "073qpa223ja673p63mhvy4l6yyv3k7z05ifwvn7bmq4b5fq42hw6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pabbrev";
+          sha256 = "1mbfa40pbzbi00sp155zm43sj6nw221mcayc2rk3ppin9ps95hx3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pabbrev";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pacfiles-mode = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "pacfiles-mode";
+        ename = "pacfiles-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "UndeadKernel";
+          repo = "pacfiles-mode";
+          rev = "180eea7ba33dc4fa5c116b01649c4e9ba3f43276";
+          sha256 = "07ki2dz459nv4jshmgk2gq1b8c0x3iqy3nf9rwv0w3b3qm70gn3f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pacfiles-mode";
+          sha256 = "08yc3w7zvckg8s1g707hvbbkvi2k52jrk2iwlj0sk22ih3q3yaa9";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pacfiles-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-build = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "package-build";
+        ename = "package-build";
+        version = "2.3";
+        src = fetchFromGitHub {
+          owner = "melpa";
+          repo = "package-build";
+          rev = "385cd427ce15ca1715f3dd758b6aa408bf0186b1";
+          sha256 = "1412pjghyvzkdlsrrs0ql30vw591bhyk1wlbf49f15dzjbspx3w0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-build";
+          sha256 = "0kr82j9rbvmapsph0jdxy24p0b8mcnj01sg1myywf428nf30cgbh";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/package-build";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-lint = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "package-lint";
+        ename = "package-lint";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "package-lint";
+          rev = "ef9112273d9e3e410c2efed6502b0ab2716c5b11";
+          sha256 = "07b4i0mmkn3pk0jkcviqyx8ypilqkzq27pybgj1z2nwr8wm1js1h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-lint";
+          sha256 = "05akg9cgcqbgja966iv2j878y14d5wvky6m9clkfbw5wyg66xpr0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/package-lint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-lint-flymake = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "package-lint-flymake";
+        ename = "package-lint-flymake";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "package-lint";
+          rev = "77422967927abf60166d31c9b52c640f1239066e";
+          sha256 = "00lwhndl4dga5a0pmi0387ys7w8383igx57idv0sp7ybzgs8crlz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-lint-flymake";
+          sha256 = "076v3xvbxym7dwwl95j8kynj9kj2xw3gzq6qv6qkm0xls7df4yjz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/package-lint-flymake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-plus = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "package-plus";
+        ename = "package+";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "zenspider";
+          repo = "package";
+          rev = "4a9618a44ec4f26a14e0136cd9d3c4855fceb25b";
+          sha256 = "1xv0ra130qg0ksgqi4npspnv0ckq77k7f5kcibavj030h578kj97";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package+";
+          sha256 = "1mbsxr4llz8ny7n7w3lykld9yvbaywlfqnvr9l0aiv9rvmdv03bn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/package+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-safe-delete = callPackage ({ emacs
+                                       , epl
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "package-safe-delete";
+        ename = "package-safe-delete";
+        version = "0.1.7";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "package-safe-delete";
+          rev = "138171e4fc03c0ef05a8260cbb5cd2e114c1c194";
+          sha256 = "1pdv6d6bm5jmpgjqf9ycvzasxz1205zdi0zjrmkr33c03azwz7rd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-safe-delete";
+          sha256 = "12ss5yjhnyxsif4vlbgxamn5jfa0wxkkphffxnv6drhvmpq226jw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs epl ];
+        meta = {
+          homepage = "https://melpa.org/#/package-safe-delete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    package-utils = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , restart-emacs }:
+      melpaBuild {
+        pname = "package-utils";
+        ename = "package-utils";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "Silex";
+          repo = "package-utils";
+          rev = "5621b95c56b55499f0463fd8b29501da25d861bd";
+          sha256 = "1mhsf0l0253d9b7n3c68mw5kwnsk7wf217y7m2fiybh51bdgjfnd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/package-utils";
+          sha256 = "02hgh7wg68ysfhw5hckrpshzv4vm1vnm395d34x6vpgl4ccx7v9r";
+          name = "recipe";
+        };
+        packageRequires = [ restart-emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/package-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    packed = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "packed";
+        ename = "packed";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "emacscollective";
+          repo = "packed";
+          rev = "788ea94bff319d6a776954c32cff1de8b400f051";
+          sha256 = "1sga68hf6zf5j8sb56zqy35p5gn6x7c12m6h8q1gzazfy7xz57p0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/packed";
+          sha256 = "103z6fas2fkvlhvwbv1rl6jcij5pfsv5vlqqsb4dkq1b0s7k11jd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/packed";
+          license = lib.licenses.free;
+        };
+      }) {};
+    page-break-lines = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "page-break-lines";
+        ename = "page-break-lines";
+        version = "0.11";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "page-break-lines";
+          rev = "67b5928a7f14568baf2716b5741e13659a86b9ea";
+          sha256 = "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/page-break-lines";
+          sha256 = "0i5kx191wnq9763jyqxbyh33hvdaqbd98a1rhgqd97zhvg0hslz1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/page-break-lines";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pallet = callPackage ({ cask
+                          , dash
+                          , f
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "pallet";
+        ename = "pallet";
+        version = "0.9.2";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "pallet";
+          rev = "0e1ae11e1ebfe644cbf832df62ac2dbf6ecd0501";
+          sha256 = "03mlg6dmpjw8fq2s3c4gpqj20kjhzldz3m51bf6s0mxq9bclx2xw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pallet";
+          sha256 = "0q50cdwnn2w1n5h4bappncjjyi5yaixxannwgy23fngdrz1mxwd7";
+          name = "recipe";
+        };
+        packageRequires = [ cask dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/pallet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    panda-theme = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "panda-theme";
+        ename = "panda-theme";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "jamiecollinson";
+          repo = "emacs-panda-theme";
+          rev = "4016c16709889ca974bc194c039523b85c29c903";
+          sha256 = "1kfg8dswg9hp07mcafz6s78md31wyn03r3pzz1jvysnlfdg9ak7c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/panda-theme";
+          sha256 = "1q3zp331hz8l54p8ym9jrs4f36aj15r8aka6bqqnalnk237xqxl7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/panda-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pandoc = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pandoc";
+        ename = "pandoc";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "pandoc.el";
+          rev = "d45e35c917d9d775c05747d9feb49a1a831ad831";
+          sha256 = "15ks8wlaj6n50cqmvw48pz191ha96krfwd38ygwq0kk1nm7y1y8g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pandoc";
+          sha256 = "0x81anxam7agr2v2zqgc331zs5s5zxcw54kzpanndda23n51h5cc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pandoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pandoc-mode = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , hydra
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "pandoc-mode";
+        ename = "pandoc-mode";
+        version = "2.26";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "pandoc-mode";
+          rev = "d594ce399fc75eb553a6d8572713b827f744d95b";
+          sha256 = "1n3rbjvaqf6gzqgqsfcn989cwhi2kva4dr9xy0vdhqxikwm5gkaq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pandoc-mode";
+          sha256 = "0qvc6cf87h1jqf590kd68jfg25snxaxayfds634wj4z6gp70l781";
+          name = "recipe";
+        };
+        packageRequires = [ dash hydra ];
+        meta = {
+          homepage = "https://melpa.org/#/pandoc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pangu-spacing = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "pangu-spacing";
+        ename = "pangu-spacing";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "pangu-spacing";
+          rev = "034b4ef8a1b29bf7bfed6a916380941506ed26ed";
+          sha256 = "0gmdzagyg0p7q1gyj2a3aqp2g4asljpib3n67nikr0v99c2mki5y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pangu-spacing";
+          sha256 = "082qh26vlk7kifz1800lyai17yvngwjygrfrsh1dsd8dxhk6l9j8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pangu-spacing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paradox = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , hydra
+                           , let-alist
+                           , lib
+                           , melpaBuild
+                           , seq
+                           , spinner }:
+      melpaBuild {
+        pname = "paradox";
+        ename = "paradox";
+        version = "2.5.2";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "paradox";
+          rev = "17a6690d42a1e854ec270ed930c7494077570fc8";
+          sha256 = "1vg5i4cxgn4a8cgx43i75w3cf0d8sb6ig6xxxdj3pvpzc81i53bc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paradox";
+          sha256 = "1xq14nfvprsq18464qr4mhphq7cl1f570lji5n8z6j9vpfm9a4p2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hydra let-alist seq spinner ];
+        meta = {
+          homepage = "https://melpa.org/#/paradox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paredit = callPackage ({ fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "paredit";
+        ename = "paredit";
+        version = "24";
+        src = fetchgit {
+          url = "https://mumble.net/~campbell/git/paredit.git";
+          rev = "82bb75ceb2ddc272d6618d94874b7fc13181a409";
+          sha256 = "13wzz5fahbz5svc4ql3ajzzpd1fv0ynwpa5widklbcp5yqncv1vm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paredit";
+          sha256 = "01qh8kfb5hyfi0jfl1kq3inkyzr0rf3wncmzgxlkfdc8zlq4v653";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/paredit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paredit-everywhere = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , paredit }:
+      melpaBuild {
+        pname = "paredit-everywhere";
+        ename = "paredit-everywhere";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "paredit-everywhere";
+          rev = "72b7cd5dcdc02233a32e9f1a6c2d21dc30532170";
+          sha256 = "0jbjwjl92pf0kih3p2x20ms2kpyzzam8fir661nimpmk802ahgkj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paredit-everywhere";
+          sha256 = "0gbkwk8mrbjr2l8pz3q4y6j8q4m12zmzl31c88ngs1k5d86wav36";
+          name = "recipe";
+        };
+        packageRequires = [ paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/paredit-everywhere";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paren-face = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "paren-face";
+        ename = "paren-face";
+        version = "1.0.4";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "paren-face";
+          rev = "42b2141b5427bc78d640229821b2b8053e6743d2";
+          sha256 = "1f1srk4100rsc7i6257q460g4ykmqx4fwrpgb57dlp83d3342c6h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paren-face";
+          sha256 = "0dmzk66m3rd8x0rb925pyrfpc2qsvayks4kmhpb2ccdrx68pg8gf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/paren-face";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parent-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "parent-mode";
+        ename = "parent-mode";
+        version = "2.3";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "parent-mode";
+          rev = "db692cf08deff2f0e973e6e86e26662b44813d1b";
+          sha256 = "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parent-mode";
+          sha256 = "1ndn6m6aasmk9yrml9xqj8141100nw7qi1bhnlsss3v8b6njwwig";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/parent-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parinfer = callPackage ({ cl-lib ? null
+                            , dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "parinfer";
+        ename = "parinfer";
+        version = "0.4.10";
+        src = fetchFromGitHub {
+          owner = "DogLooksGood";
+          repo = "parinfer-mode";
+          rev = "5b3b247d68eeaf7404598cbcbf2158e07f16e65d";
+          sha256 = "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parinfer";
+          sha256 = "05w4w7j6xyj19dm63073amd4n7fw4zm3qnn4x02fk2011iw8fq7i";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/parinfer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parrot = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "parrot";
+        ename = "parrot";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "dp12";
+          repo = "parrot";
+          rev = "e9fe686408214884b20c65284a6a595e1c755794";
+          sha256 = "079k4j0lcaj0lff1llp29bj5ah2b59byw9lw3jjw9wkl9px87r0m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parrot";
+          sha256 = "0m67b80vc3qivcxs4w6fpzdg6h9d8s75251rlhnbc0xp7271zgnk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/parrot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parsebib = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "parsebib";
+        ename = "parsebib";
+        version = "2.3.2";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "parsebib";
+          rev = "c8d59deb20552f9a1885297b5ae0b8f753d191a5";
+          sha256 = "1b1iiiy184czp014gg1bb3jks9frmkw8hs5z2l2lnzjmfjr6jm6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parsebib";
+          sha256 = "07br2x68scsxykdk2ajc4mfqhdb7vjkcfgz3vnpy91sirxzgfjdd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/parsebib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parsec = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "parsec";
+        ename = "parsec";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "parsec.el";
+          rev = "8f0c266d8b9b0ee5fcf9b80c518644b2849ff3b3";
+          sha256 = "1zwdh3dwqvw9z79mxgf9kf1l2c0pb32sknhrs7ppca613nk9c58j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parsec";
+          sha256 = "1p3364sv5r868xjj1411xqj4acxqmbzcdl900sd03585ql5wbypj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/parsec";
+          license = lib.licenses.free;
+        };
+      }) {};
+    parseclj = callPackage ({ a
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "parseclj";
+        ename = "parseclj";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "parseclj";
+          rev = "93a0f43529598984835f88e64b62fa68bebda89b";
+          sha256 = "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/parseclj";
+          sha256 = "077qigx0qyjyvm3437ffnv05rmnpqxvpxf69yyfdgnay1xclv172";
+          name = "recipe";
+        };
+        packageRequires = [ a emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/parseclj";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pass = callPackage ({ emacs
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , password-store }:
+      melpaBuild {
+        pname = "pass";
+        ename = "pass";
+        version = "1.7";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "pass";
+          rev = "2ccf4f68fa4d2aab7efbdc26ebdc45ac1ef1819c";
+          sha256 = "11b8c0qihgkl46hjqx6g1p1ifd7lc3q7jhqds3gr41zsrnlyi3p8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pass";
+          sha256 = "1vvyvnqf6k7wm0p45scwi6ny86slkrcbr36lnxdlkf96cqyrqzfr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f password-store ];
+        meta = {
+          homepage = "https://melpa.org/#/pass";
+          license = lib.licenses.free;
+        };
+      }) {};
+    passmm = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , password-store }:
+      melpaBuild {
+        pname = "passmm";
+        ename = "passmm";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "pjones";
+          repo = "passmm";
+          rev = "2e0cd4e8ef7e6017dbc295664c925d32d6fdc688";
+          sha256 = "0f2nkmbphmrnfkx4yw7w0ch33kpdzqjalah2pf6nj0rm629b1dad";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/passmm";
+          sha256 = "0p6qps9ww7s6w5x7p6ha26xj540pk4bjkr629lcicrvnfr5jsg4b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs password-store ];
+        meta = {
+          homepage = "https://melpa.org/#/passmm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    passthword = callPackage ({ cl-lib ? null
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "passthword";
+        ename = "passthword";
+        version = "1.4";
+        src = fetchFromGitLab {
+          owner = "pidu";
+          repo = "passthword";
+          rev = "58a91defdbeec9014b4e46f909a7411b3a627285";
+          sha256 = "1g0mvg9i8f2qccb4b0m4d74zkjx9gjfv47x57by6cdaf9yywqryi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/passthword";
+          sha256 = "19zv80kidb6a3985n3zij507hvffcxhcvlfxd01gwx64wvfc0c3c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/passthword";
+          license = lib.licenses.free;
+        };
+      }) {};
+    password-store = callPackage ({ emacs
+                                  , f
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , s
+                                  , with-editor }:
+      melpaBuild {
+        pname = "password-store";
+        ename = "password-store";
+        version = "1.7.3";
+        src = fetchFromGitHub {
+          owner = "zx2c4";
+          repo = "password-store";
+          rev = "65cead8c0fdb07ce3821f6b97bdcb32684d0c3f7";
+          sha256 = "0rm364l9mg2gl16ng5zd02gkfq8592mhrp81sk1v0wwh8wlyrzrh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/password-store";
+          sha256 = "03r8j14l12yc42b51fzvn1jh8j85nyl1rg6c80r0a7ihwkj27jv6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f s with-editor ];
+        meta = {
+          homepage = "https://melpa.org/#/password-store";
+          license = lib.licenses.free;
+        };
+      }) {};
+    password-store-otp = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , password-store
+                                      , s }:
+      melpaBuild {
+        pname = "password-store-otp";
+        ename = "password-store-otp";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "volrath";
+          repo = "password-store-otp.el";
+          rev = "a39a64a91de36e87b852339635bd3c5fb0e32441";
+          sha256 = "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/password-store-otp";
+          sha256 = "0m3n4gjf6hmcs2kg80h1whzbl74zsj79ihliyqfcdfc4v31m32sg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs password-store s ];
+        meta = {
+          homepage = "https://melpa.org/#/password-store-otp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pastehub = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pastehub";
+        ename = "pastehub";
+        version = "0.5.2";
+        src = fetchFromGitHub {
+          owner = "kiyoka";
+          repo = "pastehub";
+          rev = "3cc5dcb87104f3b4320a6d7fa20fa7340e6b7026";
+          sha256 = "0wbb5689n9k351gf3s9mqr3bi00lpajk0h1k9gx1b2mdbb7lq7xd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pastehub";
+          sha256 = "1slvqn5ay6gkbi0ai1gy1wmc02h4g3n6srrh4fqn72y7b9nv5i0v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pastehub";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pastelmac-theme = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "pastelmac-theme";
+        ename = "pastelmac-theme";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "bmastenbrook";
+          repo = "pastelmac-theme-el";
+          rev = "bead21741e3f46f6506e8aef4469d4240a819389";
+          sha256 = "1v5mpjb8kavbqhvg4rizwg8cypgmi6ngdiy8qp9pimmkb56y42ly";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pastelmac-theme";
+          sha256 = "168zzqhp2dbfcnknwfqxk68rgmibfw71ksghvi6h2j2c1m08l23f";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pastelmac-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pastery = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , request }:
+      melpaBuild {
+        pname = "pastery";
+        ename = "pastery";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "diasbruno";
+          repo = "pastery.el";
+          rev = "4493be98b743b4d062cb4e00760125e394a55022";
+          sha256 = "0bmm18d84lrkclg4md46k1ma03w7a97s10hrvjcm9yj8xbrjqqsc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pastery";
+          sha256 = "006qawjc86spbbs2pxvhg9w94rcsxap577cndqwaiw1k0cc8vkhp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/pastery";
+          license = lib.licenses.free;
+        };
+      }) {};
+    path-helper = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "path-helper";
+        ename = "path-helper";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "arouanet";
+          repo = "path-helper";
+          rev = "9a2a18bd1ec9801eccc4c4bfb13c451ac72b1935";
+          sha256 = "0zxn9ik764yxhy9dlzz1pqxs2l938zrmr2y787sf36qnnh23bn12";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/path-helper";
+          sha256 = "0fff3l88jgflqpxlcfxfyp2prc2ichajvm7c8i19qhvw70sbasny";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/path-helper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pathify = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pathify";
+        ename = "pathify";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "pathify.el";
+          rev = "335332a900717ae01bde5ccb8f3dc97a5350f123";
+          sha256 = "1brdyrp2sz1pszdfr6f4w94qxk5lrd6kphc1xa5pywfns14c9386";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pathify";
+          sha256 = "1z970xnzbhmfikj1rkfx24jvwc7f1xxw6hk7kmahxvphjxrvgc2f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pathify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    paxedit = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , paredit }:
+      melpaBuild {
+        pname = "paxedit";
+        ename = "paxedit";
+        version = "1.1.8";
+        src = fetchFromGitHub {
+          owner = "promethial";
+          repo = "paxedit";
+          rev = "644eb7036a475fbcba4de5d46d6940b1e8ef33cd";
+          sha256 = "0jmhr658cczblag8knr8j77q58yj268rkhh5dmga66l0sb30wb21";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/paxedit";
+          sha256 = "06ymilr0zrwfpyzql7dcpg48lhkx73f2jlaw3caxgsjaz7x3n4ic";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib paredit ];
+        meta = {
+          homepage = "https://melpa.org/#/paxedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcache = callPackage ({ eieio ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pcache";
+        ename = "pcache";
+        version = "0.4.2";
+        src = fetchFromGitHub {
+          owner = "sigma";
+          repo = "pcache";
+          rev = "025ef2411fa1bf82a9ac61dfdb7bd4cedaf2d740";
+          sha256 = "1jkdyacpcvbsm1g2rjpnk6hfr01r3j5ibgh09441scz41v6xk248";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcache";
+          sha256 = "0wwx20x6gzlli3hh4zd9pfv2cmqfm38xbl9p4vsgy08q1rm5agva";
+          name = "recipe";
+        };
+        packageRequires = [ eieio ];
+        meta = {
+          homepage = "https://melpa.org/#/pcache";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcomplete-extension = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "pcomplete-extension";
+        ename = "pcomplete-extension";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "pcomplete-extension";
+          rev = "839740c90de857e18db2f578d6660951522faab5";
+          sha256 = "0h0p4c08z0dqxmg55fzch1d2f38rywfk1j0an2f4sc94lj7ckbm6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcomplete-extension";
+          sha256 = "0m0c9ir44p21rj93fkisvpvi08936717ljmzsr4qdf69b3i54cwc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pcomplete-extension";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcre2el = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pcre2el";
+        ename = "pcre2el";
+        version = "1.8";
+        src = fetchFromGitHub {
+          owner = "joddie";
+          repo = "pcre2el";
+          rev = "3eba762d3a9619496d7ef2929d95117040ca93fa";
+          sha256 = "0m76flv62z6f167hlw5lmnzrwyzj412vfpgcw1lrla2l7mjv011z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcre2el";
+          sha256 = "1l72hv9843qk5p8gi9ibr15wczm804j3ws2v1x7nx4dr7pc5c7l3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pcre2el";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pcsv = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "pcsv";
+        ename = "pcsv";
+        version = "1.3.6";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-pcsv";
+          rev = "91599aaba70a8e8593fa2f36165af82cbd35e41e";
+          sha256 = "03k3xhrim4s3yvbnl8g8ci5g7chlffycdw7d6a1pz3077mxf1f1z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pcsv";
+          sha256 = "1zphndkbva59g1fd319a240yvq8fjk315b1fyrb8zvmqpgk9n0dl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pcsv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pdf-tools = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , let-alist
+                             , lib
+                             , melpaBuild
+                             , tablist }:
+      melpaBuild {
+        pname = "pdf-tools";
+        ename = "pdf-tools";
+        version = "0.80";
+        src = fetchFromGitHub {
+          owner = "politza";
+          repo = "pdf-tools";
+          rev = "920e598c1ec6eb9a48dde32282d10adc9cc3b011";
+          sha256 = "1i4647vax5na73basc5dz4lh9kprir00fh8ps4i0l1y3ippnjs2s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pdf-tools";
+          sha256 = "1hnc8cci00mw78h7d7gs8smzrgihqz871sdc9hfvamb7iglmdlxw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist tablist ];
+        meta = {
+          homepage = "https://melpa.org/#/pdf-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    peg = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "peg";
+        ename = "peg";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "ellerh";
+          repo = "peg.el";
+          rev = "081efeca91d790c7fbc90871ac22c40935f4833b";
+          sha256 = "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/peg";
+          sha256 = "0nxy9xn99myz0p36m4jflfj48qxhhn1sspbfx8d90030xg3cc2gm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/peg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pelican-mode = callPackage ({ emacs
+                                , fetchgit
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "pelican-mode";
+        ename = "pelican-mode";
+        version = "20170808";
+        src = fetchgit {
+          url = "https://git.korewanetadesu.com/pelican-mode.git";
+          rev = "8b13c30c4ec38dd535eadf26e463f8616d5c089c";
+          sha256 = "0rghcyp09ga95ag0pjbk4hdxxlsnr93dr6706z0xvfgmninbn5aw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pelican-mode";
+          sha256 = "0z6w5j3qwb58pndqbmpsvy1l77w9jv90bss9qq9hicil8nlk4pvi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pelican-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    per-buffer-theme = callPackage ({ cl-lib ? null
+                                    , fetchhg
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "per-buffer-theme";
+        version = "1.5";
+        src = fetchhg {
+          url = "https://bitbucket.com/inigoserna/per-buffer-theme.el";
+          rev = "9e6200da91b3";
+          sha256 = "0w02l91x624cgzdg33a9spgcwy12m607dsfnr1xbc1fi08np4sd1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/per-buffer-theme";
+          sha256 = "1czcaybpfmx4mwff7hs07iayyvgvlhifkickccap6kpd0cp4n6hn";
+          name = "per-buffer-theme";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/per-buffer-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persistent-scratch = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "persistent-scratch";
+        ename = "persistent-scratch";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "persistent-scratch";
+          rev = "2e6678a837db85e68da713bbd4772c7fb88d83d4";
+          sha256 = "0ipr2cnw5b26q560c82mm6bmkx9clw1mrndycs2qz894y53dzlmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persistent-scratch";
+          sha256 = "0iai65lsg3zxj07hdb9201w3rwrvdb3wffr6k2jdl8hzg5idghn1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/persistent-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persistent-soft = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , list-utils
+                                   , melpaBuild
+                                   , pcache }:
+      melpaBuild {
+        pname = "persistent-soft";
+        ename = "persistent-soft";
+        version = "0.8.10";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "persistent-soft";
+          rev = "a1e0ddf2a12a6f18cab565dee250f070384cbe02";
+          sha256 = "14p20br8vzxs39d4hswzrrkgwql5nnmn5j17cpbabzjvck42rixc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persistent-soft";
+          sha256 = "0a4xiwpgyyynjf69s8p183mqd3z53absv544ggvhb2gkpm6jravc";
+          name = "recipe";
+        };
+        packageRequires = [ list-utils pcache ];
+        meta = {
+          homepage = "https://melpa.org/#/persistent-soft";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persp-fr = callPackage ({ dash
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , persp-mode }:
+      melpaBuild {
+        pname = "persp-fr";
+        ename = "persp-fr";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "rocher";
+          repo = "persp-fr";
+          rev = "3f536440b120499464106fd25f182d7580192870";
+          sha256 = "0bnplxv6igry7ak3wvn2b88zm4aarv35z4z5q38x52k4zac94rl8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persp-fr";
+          sha256 = "0p4379yr1b32l8ghq1axyb8qhp28gnq5qxxvbk3mdzgbwwj8y4b2";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs persp-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/persp-fr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persp-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "persp-mode";
+        ename = "persp-mode";
+        version = "2.9.6";
+        src = fetchFromGitHub {
+          owner = "Bad-ptr";
+          repo = "persp-mode.el";
+          rev = "1dfea0de788f6d25ee47b5c62ddbeaf9e8e92f06";
+          sha256 = "11ww8hg9p8qlmr8zpir0m5xzzbvd1faiqjx6vn4b05d4ll03rnhm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persp-mode";
+          sha256 = "1bgni7y5xsn4a21494npr90w3320snfzw1hvql30xrr57pw3765w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/persp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    persp-projectile = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , perspective
+                                    , projectile }:
+      melpaBuild {
+        pname = "persp-projectile";
+        ename = "persp-projectile";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "persp-projectile";
+          rev = "7686633acf44402fa90429759cca6a155e4df2b9";
+          sha256 = "0rqyzsmg32sdr4k9i2lf3jfyr9bskkl7gfb5ndl16iip9py7403z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/persp-projectile";
+          sha256 = "10l2kqjyigg98qbbpf3qf4d5bm63kkk4vp7ip8fibgj1p9gqmnxm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib perspective projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/persp-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    perspective = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "perspective";
+        ename = "perspective";
+        version = "2.2";
+        src = fetchFromGitHub {
+          owner = "nex3";
+          repo = "perspective-el";
+          rev = "8e2f122de408d7866136dd861d513a9575cf32e6";
+          sha256 = "0pd5sqrrz6y3md20yh6ffy32jdcgb1gc9b4j14pm6r54bqxik68h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/perspective";
+          sha256 = "021ax1c2ys82dcjs5jl7b4nb83n6gax2imnpm030rcbihjl1lzm7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/perspective";
+          license = lib.licenses.free;
+        };
+      }) {};
+    perspeen = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "perspeen";
+        ename = "perspeen";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "seudut";
+          repo = "perspeen";
+          rev = "4079e254d542876eaa7e37b3c4b77d4f6a0f4e16";
+          sha256 = "1y54zlrrzc7h1kflvayhxnmh2xrv2nc708hd9m63h99li4xqcdzp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/perspeen";
+          sha256 = "0kwmllas9vnppsfaviy58d0nk4hmlqp566mfr4l53x46sybv1y04";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/perspeen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pfuture = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pfuture";
+        ename = "pfuture";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "pfuture";
+          rev = "8b5cd8dfb8769d2b24484a313d3d21938afd3dfb";
+          sha256 = "1d63sfwy7qmldhq2xda9dglg91cy2kpjdr2rlmqb48w95wf0am3m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pfuture";
+          sha256 = "15fr9wkpv8v1p22wz7hsyihq7f807ck105c2crfs8y7capfvs53s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pfuture";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ph = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ph";
+        ename = "ph";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "gromnitsky";
+          repo = "ph";
+          rev = "ed45c371642e313810b56c45af08fdfbd71a7dfe";
+          sha256 = "1qxsc5wyk8l9gkgmqy3mzwxdhji1ljqw9s1jfxkax7fyv4d1v31p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ph";
+          sha256 = "0azx4cpfdn01yrqyn0q1gg9z7w0h0rn7zl39v3dx6yidd76ysh0l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ph";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phan = callPackage ({ composer
+                        , emacs
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "phan";
+        ename = "phan";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phan.el";
+          rev = "6b077b3421a0b2c0b98a6906b8ab0d14d9d7bf50";
+          sha256 = "1af4pam149dgxqzwqkjklxxqq2n8fg3l1b9w6bmaw24lx1pdxcyv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phan";
+          sha256 = "17ar6nxy0plx5li49kgf4f0h99wwmnnp5kwmpf34jg9ygyhaglvb";
+          name = "recipe";
+        };
+        packageRequires = [ composer emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/phan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phi-search = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "phi-search";
+        ename = "phi-search";
+        version = "20160630";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "phi-search";
+          rev = "40b86bfe9ae15377fbee842b1de3d93c2eb7dd69";
+          sha256 = "10kyq3lkhmbmj1hl9awzc0w8073dn9mbjd5skh660ljg5mmi6x62";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phi-search";
+          sha256 = "0nj06ixl76dd80zg83q4bi8k224mcwb612mr4gd1xppj5k8xl03g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/phi-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phi-search-mc = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , multiple-cursors
+                                 , phi-search }:
+      melpaBuild {
+        pname = "phi-search-mc";
+        ename = "phi-search-mc";
+        version = "2.2.1";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "phi-search-mc.el";
+          rev = "4c6d2d39feb502febb81fc98b7b5854d88150c69";
+          sha256 = "0r6cl1ng41s6wsy5syjlkaip0mp8h491diipdc1psbhnpk4vabsv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phi-search-mc";
+          sha256 = "07hd80rbyzr5n3yd7hv1j51nl6pvcxmln20g6xvw8gh5yfl9k0m8";
+          name = "recipe";
+        };
+        packageRequires = [ multiple-cursors phi-search ];
+        meta = {
+          homepage = "https://melpa.org/#/phi-search-mc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-auto-yasnippets = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , php-mode
+                                       , yasnippet }:
+      melpaBuild {
+        pname = "php-auto-yasnippets";
+        ename = "php-auto-yasnippets";
+        version = "2.3.1";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "php-auto-yasnippets";
+          rev = "1950d83cbcc5c5d62cd3bc432e1595870fe8cabf";
+          sha256 = "0zs11811kx6x1zgc1icd8gw420saa7z6zshpzmrddnbznya4qql6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-auto-yasnippets";
+          sha256 = "047i51ks2nn7ydrx2hjx9qvsh3lxnyxp8a6c3h3nb1acy84f5bd1";
+          name = "recipe";
+        };
+        packageRequires = [ php-mode yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/php-auto-yasnippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-cs-fixer = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "php-cs-fixer";
+        ename = "php-cs-fixer";
+        version = "1.0.-2.4";
+        src = fetchFromGitHub {
+          owner = "OVYA";
+          repo = "php-cs-fixer";
+          rev = "2e28b82d192c6f420ecb8cbef04256f3c9c47c4b";
+          sha256 = "1lh37z4z09nz4wfp8ly94dwrmjsqpg6phw5r8y4gjhfnfbgpq4b9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-cs-fixer";
+          sha256 = "1xvz6v1fwngi2rizrx5sf0wrs4cy8rb13467r26k8hb7z8h1rqmf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/php-cs-fixer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-mode = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "php-mode";
+        ename = "php-mode";
+        version = "1.19.1";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "php-mode";
+          rev = "aacb133b3d89ed0da8d936a162f49afc2aa5dfd4";
+          sha256 = "1al6l37377psiykk6syyyc3sfifr7x3mqyb2rms5kqqkff53x1yx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-mode";
+          sha256 = "1gqmcynz2wx09xjnk70db1a2pbnrh1vfm5vd6mks1s10y59bh0zq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/php-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    php-runtime = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "php-runtime";
+        ename = "php-runtime";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "php-runtime.el";
+          rev = "fa4312863245511462b75cb31df2f8558288f4df";
+          sha256 = "1glwy0cgnn0z4rnd45pqy0bmyaddhxfjlj778hz7ghy40h9kqbdn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/php-runtime";
+          sha256 = "0dvnwajrjsgyqzglzpkx9vwx3f55mrag6dsbdjqc9vvpvxhmgfwb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/php-runtime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phpactor = callPackage ({ cl-lib ? null
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "phpactor";
+        ename = "phpactor";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phpactor.el";
+          rev = "61e4eab638168b7034eef0f11e35a89223fa7687";
+          sha256 = "0dsa1mygb96nlz5gppf0sny3lxaacvmvnkg84c0cs6x223s6zfx8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phpactor";
+          sha256 = "0w2iszi74y3s6rcn6p2ic545cg319y4jpy83npbh5m98y8jma84m";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/phpactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phpcbf = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "phpcbf";
+        ename = "phpcbf";
+        version = "0.9.2";
+        src = fetchFromGitHub {
+          owner = "nishimaki10";
+          repo = "emacs-phpcbf";
+          rev = "b556b548ceb061b002389d6165d2cc63d8bddb5d";
+          sha256 = "09rinyx0621d7613xmbyvrrlav6d4ia332wkgg0m9dn265g3h56z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phpcbf";
+          sha256 = "1hf88ys4grffpqgavrbc72dn3m7crafgid2ygzx9c5j55syh8mfv";
+          name = "recipe";
+        };
+        packageRequires = [ s ];
+        meta = {
+          homepage = "https://melpa.org/#/phpcbf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phpstan = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "phpstan";
+        ename = "phpstan";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "phpstan.el";
+          rev = "09102b062b607affc93f2d8a113a9fc9f9cf3016";
+          sha256 = "0n21vyvd5c42v03xcfx94dz252z3s413i0f9pwjrssq2yd3x2bgm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phpstan";
+          sha256 = "0j3xb3h6fqgk0nv5mlfz7lgfkcy0z04an9qy8nq5y473hdj87qzm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/phpstan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    phpunit = callPackage ({ cl-lib ? null
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , pkg-info
+                           , s }:
+      melpaBuild {
+        pname = "phpunit";
+        ename = "phpunit";
+        version = "0.17.1";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "phpunit.el";
+          rev = "4212307bbcfd8accd2abfa7e4ab55a6751a0b11b";
+          sha256 = "1silbfmv85r73pbc7f5cm4znc6644ngihfnhibk1fgp9j0rf7ahc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/phpunit";
+          sha256 = "0nj8ss1yjkcqnbnn4jgbp0403ljjk2xhipzikdrl3dbxlf14i4f8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f pkg-info s ];
+        meta = {
+          homepage = "https://melpa.org/#/phpunit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pillar = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , makey
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pillar";
+        ename = "pillar";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "pillar-markup";
+          repo = "pillar-mode";
+          rev = "13a7f676544cc66005ccd8e6fc1c25e4ccd6f909";
+          sha256 = "19i8hgzr7kdj4skf0cnv6vlsklq9qcyxcv3p33k9vgq7y4f9mah8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pillar";
+          sha256 = "1lklky3shyvm1iygp621hbldpx37m0a9vd5l6mxs4y60ksj6z0js";
+          name = "recipe";
+        };
+        packageRequires = [ makey ];
+        meta = {
+          homepage = "https://melpa.org/#/pillar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pinboard-popular = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , loop
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "pinboard-popular";
+        ename = "pinboard-popular";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "asimpson";
+          repo = "pinboard-popular";
+          rev = "df6f5928f1e5a614fb770f6f4b9aefe0bf4d1c25";
+          sha256 = "1x3qaqj81w1wblkd4rd1b7nggmgnf6jahh3zh2p6nlr200fg52lq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pinboard-popular";
+          sha256 = "0d9ng4mclnb9yfzh8wzz03fbhfxayns0dg31bdixkwvy2vk00rkf";
+          name = "recipe";
+        };
+        packageRequires = [ loop ];
+        meta = {
+          homepage = "https://melpa.org/#/pinboard-popular";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pine-script-mode = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "pine-script-mode";
+        ename = "pine-script-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "EricCrosson";
+          repo = "pine-script-mode";
+          rev = "9176de41a5c80f7b56e41fb7a9ba7350885a2512";
+          sha256 = "1kxdrqa420zbl73jlakilvn1ja83vfqnhqdirgfvp23z4xhcddq6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pine-script-mode";
+          sha256 = "0ihijbcx7m4vhxr1fnfkwjdk6ka1mqzxb8z164yh8yn73qs0saiq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pine-script-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pinyin-search = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "pinyin-search";
+        ename = "pinyin-search";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "pinyin-search.el";
+          rev = "5895cccfa6b43263ee243c5642cc16dd9a69fb4e";
+          sha256 = "12jhdkgfck2a6d5jj65l9d98dm34gsyi0ya4h21dbbvz35zivz70";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pinyin-search";
+          sha256 = "1si693nmmxgg0kp5mxvj5nq946kfc5cv3wfsl4znbqzps8qb2b7z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pinyin-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pinyinlib = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "pinyinlib";
+        ename = "pinyinlib";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "cute-jumper";
+          repo = "pinyinlib.el";
+          rev = "39943d226c2a42a9013421a0b4b6d5d3696bf234";
+          sha256 = "1nwj4c3y0kdlkf3jqd2dnibaiazrq6qcj533xk2qw4wmx072yij0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pinyinlib";
+          sha256 = "0kv67qa3825fw64qimkph2b65pilrsx5730y4c7f7c1f8giz5vxr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pinyinlib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pip-requirements = callPackage ({ dash
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "pip-requirements";
+        ename = "pip-requirements";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "pip-requirements.el";
+          rev = "93e0595f037e3a95c1c1cd6f00f7e052a9a25912";
+          sha256 = "016r7y5nfnx6iws3hq4xnyrcv00y6zmd453psxhivi896wb8szfq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pip-requirements";
+          sha256 = "1wsjfyqga7pzp8gsm5x53qrkn40srairbjpifyrqbi2fpzmwhrnz";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/pip-requirements";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pixiv-novel-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "pixiv-novel-mode";
+        ename = "pixiv-novel-mode";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "pixiv-novel-mode.el";
+          rev = "4dd9caf749190fab8f0b33862b3894b635de46c5";
+          sha256 = "1wg8pcwd70ixn2bxh01934zl12ry4pgx3l9dccpbjdi40gira00d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pixiv-novel-mode";
+          sha256 = "0f1rxvf9nrw984122i6dzsgik9axfjv6yscmg203s065n9lz17px";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pixiv-novel-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pkg-info = callPackage ({ epl
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pkg-info";
+        ename = "pkg-info";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "lunaryorn";
+          repo = "pkg-info.el";
+          rev = "f9bb471ee95d1c5fe9adc6b0e98db2ddff3ddc0e";
+          sha256 = "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pkg-info";
+          sha256 = "1k23hmpcq534060qcxbrv4g6bw9nzcbjg192mbdp20kwidw7p81n";
+          name = "recipe";
+        };
+        packageRequires = [ epl ];
+        meta = {
+          homepage = "https://melpa.org/#/pkg-info";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pkgbuild-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "pkgbuild-mode";
+        ename = "pkgbuild-mode";
+        version = "0.14";
+        src = fetchFromGitHub {
+          owner = "juergenhoetzel";
+          repo = "pkgbuild-mode";
+          rev = "6bb7cb3b0599ac0ae3c1d8d5014aefc1ecff7965";
+          sha256 = "0a8qb1ldk6bjs7fpxgxrf90md7q46fhl71gmay8yafdkh6hn0kqr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pkgbuild-mode";
+          sha256 = "1lp7frjahcpr4xnzxz77qj5hbpxbxm2g28apkixrnc1xjha66v3x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pkgbuild-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plain-theme = callPackage ({ emacs
+                               , fetchFromGitLab
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "plain-theme";
+        ename = "plain-theme";
+        version = "8";
+        src = fetchFromGitLab {
+          owner = "yegortimoshenko";
+          repo = "plain-theme";
+          rev = "2609a811335d58cfb73a65d6307c156fe09037d3";
+          sha256 = "0g5vl4xigdm2pn2mnkwgj1kxdjr66w7ynr77bchy3ij6qvzdzkqd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plain-theme";
+          sha256 = "10qq7cy6hqh6c8qi796y9lk4wyyjbhdn1pvkcw3g29cfh857x50m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/plain-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plantuml-mode = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "plantuml-mode";
+        ename = "plantuml-mode";
+        version = "1.2.7";
+        src = fetchFromGitHub {
+          owner = "skuro";
+          repo = "plantuml-mode";
+          rev = "82ab084c8631e70b089448ace72525f647af4f10";
+          sha256 = "0jcsbswpg41r27i5xb5lvw17n1kndwl8df9iwyhpm26jh2i2hpyv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plantuml-mode";
+          sha256 = "03srbg34512vxcqn95q4r7h2aqbqq0sd5c9ffnbx2a75vsblqc6h";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/plantuml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    platformio-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , projectile }:
+      melpaBuild {
+        pname = "platformio-mode";
+        ename = "platformio-mode";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "ZachMassia";
+          repo = "PlatformIO-Mode";
+          rev = "470a80c1d764a6e1680a2b41ca5a847869a07a27";
+          sha256 = "1nznbkl06cdq4pyqmvkp9jynsjibn0fd6ai4mggz6ggcwzcixbf0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/platformio-mode";
+          sha256 = "1v1pp3365wj19a5wmsxyyy5n548z3lmcbm2pwl914wip3ca7546f";
+          name = "recipe";
+        };
+        packageRequires = [ projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/platformio-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    play-crystal = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , request }:
+      melpaBuild {
+        pname = "play-crystal";
+        ename = "play-crystal";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "veelenga";
+          repo = "play-crystal.el";
+          rev = "86b54346e7c832c14f8e5654a462f6490a6b11d7";
+          sha256 = "0kvkr24f8r21pahm2lsvbr9bg53770wxwpdfmmjljs2zmgxf2c40";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/play-crystal";
+          sha256 = "1jqf36b1mhyf4j7fs386g6isy09q7k8zwdc4rb34mhjg1a56gcnf";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/play-crystal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    play-routes-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "play-routes-mode";
+        ename = "play-routes-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "brocode";
+          repo = "play-routes-mode";
+          rev = "d7eb682cd474d90b3a3d005290cd6d4fe9f94cae";
+          sha256 = "0slfaclbhjm5paw8l7rr3y9xxjyhkizp9lwyvlgpkd38n4pgj2bx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/play-routes-mode";
+          sha256 = "17phqil2zf5rfvhs5v743dh4lix4v2azbf33z9n97ahs7j66y2gz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/play-routes-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plenv = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "plenv";
+        ename = "plenv";
+        version = "0.32";
+        src = fetchFromGitHub {
+          owner = "karupanerura";
+          repo = "plenv.el";
+          rev = "ee937d0f3a1a7ba2d035f45be896d3ed8fefaee2";
+          sha256 = "11cbpgjsnw8fiqf1s12hbm9qxgjcw6y2zxx7wz4wg7idmi7m0b7g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plenv";
+          sha256 = "0dw9fy5wd9wm76ag6yyw3f9jnlj7rcdcxgdjm30h514qfi9hxbw4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/plenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plsense = callPackage ({ auto-complete
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , log4e
+                           , melpaBuild
+                           , yaxception }:
+      melpaBuild {
+        pname = "plsense";
+        ename = "plsense";
+        version = "0.4.7";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-plsense";
+          rev = "f6fb22607a5252b2556d2e7fa14f1bcab5d9747a";
+          sha256 = "0f00dv5jwbhs99j4jc6lvr5n0mv1y80yg7zpp6yrmhww6829l5rg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plsense";
+          sha256 = "1ka06r4ashhjkfyzql9mfvs3gj7n684h4gaycj29w4nfqrhcw9va";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/plsense";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plsense-direx = callPackage ({ direx
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , log4e
+                                 , melpaBuild
+                                 , plsense
+                                 , yaxception }:
+      melpaBuild {
+        pname = "plsense-direx";
+        ename = "plsense-direx";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "plsense-direx";
+          rev = "8a2f465264c74e04524cc789cdad0190ace43f6c";
+          sha256 = "0s34nbqqy6aqi113xj452pbmqp43046wfbfbbfv1xwhybgq0c1j1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plsense-direx";
+          sha256 = "0qd4b7gkmn5ydadhp70995rap3643s1aa8gfi5izgllzhg0i864j";
+          name = "recipe";
+        };
+        packageRequires = [ direx log4e plsense yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/plsense-direx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plur = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "plur";
+        ename = "plur";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "plur";
+          rev = "5bdd3b9a2f0624414bd596e798644713cd1545f0";
+          sha256 = "0qlxj19hj96l4lw81xh5r14ppf6kp63clikk060s9yw00q7gnl6a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/plur";
+          sha256 = "0nf1dc7xf2zp316rssnz8sv374akcr54hp0rb219qvgyck9bdqiv";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/plur";
+          license = lib.licenses.free;
+        };
+      }) {};
+    po-mode = callPackage ({ fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "po-mode";
+        ename = "po-mode";
+        version = "0.19.8.1";
+        src = fetchgit {
+          url = "https://git.savannah.gnu.org/git/gettext.git";
+          rev = "7fa0c2779d7de8a263271abfbe684185dbf6898b";
+          sha256 = "1w154dzp98kjqsid4g0jq7cnpm4mivgffgjks6gr89dssq9qc3yh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/po-mode";
+          sha256 = "0km19n87iqd6m6n23h46b6225zyvava9jbx6b8frna3sjwb4ls7w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/po-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pocket-lib = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , kv
+                              , lib
+                              , melpaBuild
+                              , request
+                              , s }:
+      melpaBuild {
+        pname = "pocket-lib";
+        ename = "pocket-lib";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "pocket-lib.el";
+          rev = "ef3bcf452129b74e7b82265f6c08f9569fd19515";
+          sha256 = "0r2y6idzwkvaclsnaskdlzk9afvxnm9kkyy8y38cfwany3kbmyzj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pocket-lib";
+          sha256 = "0v619blifmvm36dr773wjf35fjji4dj3pyck9nkz0m8zmpz0fg78";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs kv request s ];
+        meta = {
+          homepage = "https://melpa.org/#/pocket-lib";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pocket-reader = callPackage ({ dash
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , kv
+                                 , lib
+                                 , melpaBuild
+                                 , org-web-tools
+                                 , ov
+                                 , pocket-lib
+                                 , rainbow-identifiers
+                                 , s }:
+      melpaBuild {
+        pname = "pocket-reader";
+        ename = "pocket-reader";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "alphapapa";
+          repo = "pocket-reader.el";
+          rev = "e65a7e7529ece4fb7a738c062e73d5c07ace9574";
+          sha256 = "0bqxsvhmwvf0gpjmmh7pmzyw4lpcarj2prm52bgncch8x1f0gvnp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pocket-reader";
+          sha256 = "0gcgmz4mhjgvqbh2gmv8v09sy80cnfccjym455m0fbl31b8dczhf";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          emacs
+          kv
+          org-web-tools
+          ov
+          pocket-lib
+          rainbow-identifiers
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/pocket-reader";
+          license = lib.licenses.free;
+        };
+      }) {};
+    point-pos = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "point-pos";
+        ename = "point-pos";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "point-pos.el";
+          rev = "f4126b64567a81e7f22058f09d56c63b2ff06632";
+          sha256 = "1sbwz9kxvnd5r24q9x6bhcjajjnm2z8q6khgqs4gl4ycs60kn0s6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/point-pos";
+          sha256 = "1zv6hx8i8jwq52j4la1ff0ar0bpbs2pb4gcsh9hypghba11gnync";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/point-pos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-R = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , poly-markdown
+                          , poly-noweb
+                          , polymode }:
+      melpaBuild {
+        pname = "poly-R";
+        ename = "poly-R";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-R";
+          rev = "876e1324ce3bc2b6e3b84e03d08d4b5cd06018c6";
+          sha256 = "0xjlrdwp7vhk05lq9hkbm8gqda5valxc6siiydrwmpa79n8dbqxd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-R";
+          sha256 = "1v2was6pdynwm22b4n2hkwyrr0c0iir9kp1wz4hjab8haqxz68ii";
+          name = "recipe";
+        };
+        packageRequires = [ emacs poly-markdown poly-noweb polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-R";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-erb = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , polymode }:
+      melpaBuild {
+        pname = "poly-erb";
+        ename = "poly-erb";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-erb";
+          rev = "aa8a40a1bb1035144b1cbc053d87305f70a442a7";
+          sha256 = "0zsvywh9xs9wb6x70b7j3cpavbx7846p772qlqd141y2lcp1jss9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-erb";
+          sha256 = "01c1z2jll497k1y8835pp54n121y0gkyz1pdxcdjjqv7ia8jwfyy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-erb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-markdown = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , markdown-mode
+                                 , melpaBuild
+                                 , polymode }:
+      melpaBuild {
+        pname = "poly-markdown";
+        ename = "poly-markdown";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-markdown";
+          rev = "bf41bd2f30066573f562c674d38b9e42a43ed016";
+          sha256 = "0w2xy1cksik332qs1i26imxiyd89vbfy3ff7di4b3l14cxz6ybra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-markdown";
+          sha256 = "0pxai5x2vz6j742s3bpcy82dxja6441fsgclhz1hbv2ykazbm141";
+          name = "recipe";
+        };
+        packageRequires = [ emacs markdown-mode polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-markdown";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-noweb = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , polymode }:
+      melpaBuild {
+        pname = "poly-noweb";
+        ename = "poly-noweb";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-noweb";
+          rev = "f27f09184573c579bfcd164ba995e8b5bfb84954";
+          sha256 = "096a2bm1i2ngyv4gdy0gz8bnwmgr50b4chvryxg2fh840p07540f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-noweb";
+          sha256 = "1692js29wdjpxvcbcaxysbsq6pxdqr38frqf88ksldlz35cmy62b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-noweb";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-org = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , polymode }:
+      melpaBuild {
+        pname = "poly-org";
+        ename = "poly-org";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-org";
+          rev = "2465f1d252940f13555252ef7b8e4d02ee3956ce";
+          sha256 = "1xw6h7qcva4529vs8v13gsw5zdcgc1sky7i3vbhcchxkm3d4ffdb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-org";
+          sha256 = "1xrhdjmz3p5d3sgbfpmf6wksa1cpxqhy1wg17b5x8ah4w4yhpdca";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-ruby = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , polymode }:
+      melpaBuild {
+        pname = "poly-ruby";
+        ename = "poly-ruby";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "poly-ruby.el";
+          rev = "794ebb926ace23e9c1398da934701951432dcea2";
+          sha256 = "1ffm81hg1gah7hb9x556hda5g4j3gk4c986q9gaacvfizqak3gyy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-ruby";
+          sha256 = "0d8s6bl5ynx0r5cwvfkd52rksiq5kdyrgbxds56r8ls6cfkwqngg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-ruby";
+          license = lib.licenses.free;
+        };
+      }) {};
+    poly-slim = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , polymode
+                             , slim-mode }:
+      melpaBuild {
+        pname = "poly-slim";
+        ename = "poly-slim";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "poly-slim";
+          rev = "2216d7edf315ab8df1e01c2a826041bcdb8bcd01";
+          sha256 = "0wcfacd5wpi52glfz4snxh8ghff2qlv8d1jwj890297ikmk7mn1g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/poly-slim";
+          sha256 = "15nh0d8y79rwc24akxfpf346jypadfgjjn6vlgaj6xjnj7wsp7ax";
+          name = "recipe";
+        };
+        packageRequires = [ emacs polymode slim-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/poly-slim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    polymode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "polymode";
+        ename = "polymode";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "polymode";
+          repo = "polymode";
+          rev = "06c4329fdf765b4f9072e20906c8737a19e6646b";
+          sha256 = "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/polymode";
+          sha256 = "15i9masklpy4iwskc7dzqjhb430ggn0496z4wb1zjj0b9xx4wj66";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/polymode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pomidor = callPackage ({ alert
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pomidor";
+        ename = "pomidor";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "TatriX";
+          repo = "pomidor";
+          rev = "3f9186e4dc8fe8bf06b8f2ac9c68ecd8aafb4a65";
+          sha256 = "19bz3pg3s265wpcwb458i84138z170rgd1qybn6vrll2brvwsf8b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pomidor";
+          sha256 = "0pdzipyza98dhnz6am8lrmz8fh3p1c21v2mhs56fb9lwyvcgv8fi";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pomidor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pony-snippets = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , yasnippet }:
+      melpaBuild {
+        pname = "pony-snippets";
+        ename = "pony-snippets";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "SeanTAllen";
+          repo = "pony-snippets";
+          rev = "56018b23a11563c6766ed706024b22aa5a4556b4";
+          sha256 = "0xjvxfkrl6wl31s7rvbv9zczn6d6i9vf20waqlr3c2ff3zy55ygy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pony-snippets";
+          sha256 = "12ygvpfkzldq6s4mwbrxs4x9927i7pa7ywn7lf1r3gg4h29ar9gn";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/pony-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ponylang-mode = callPackage ({ dash
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ponylang-mode";
+        ename = "ponylang-mode";
+        version = "0.0.11";
+        src = fetchFromGitHub {
+          owner = "SeanTAllen";
+          repo = "ponylang-mode";
+          rev = "963abdcdb398b71fb13a4f7d2ffde23eb20e2a23";
+          sha256 = "1h0y6x4h7higwdq569h2lk0iddd23c3csqjk7y5phvc0lq812xs0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ponylang-mode";
+          sha256 = "02fq0qp7f4bzmynzszrwskfs78nzsmf413qjxqndrh3hamixzpi1";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/ponylang-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pophint = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , log4e
+                           , melpaBuild
+                           , popup
+                           , yaxception }:
+      melpaBuild {
+        pname = "pophint";
+        ename = "pophint";
+        version = "0.9.3";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-pophint";
+          rev = "28dc6a76e726f371bcca3160c27ae2017324399c";
+          sha256 = "18i0kivn6prh5pwdr7b4pxfxqsc8l4mks1h6cfs7iwnfn15g5k19";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pophint";
+          sha256 = "1chq2j79hg095jxw5z3pz4qicqrccw0gj4sxrin0a55hnprzzp72";
+          name = "recipe";
+        };
+        packageRequires = [ log4e popup yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/pophint";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popup = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "popup";
+        ename = "popup";
+        version = "0.5.3";
+        src = fetchFromGitHub {
+          owner = "auto-complete";
+          repo = "popup-el";
+          rev = "46632ab9652dacad56fd961cd6def25a015170ae";
+          sha256 = "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popup";
+          sha256 = "151g00h9rkid76qf6c53n8bncsfaikmhj8fqcb3r3a6mbngcd5k2";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/popup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popup-complete = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , popup }:
+      melpaBuild {
+        pname = "popup-complete";
+        ename = "popup-complete";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-popup-complete";
+          rev = "e362d4a005b36646ffbaa6be604e9e31bc406ca9";
+          sha256 = "084hb3zn1aiabbyxgaalszb2qjf9z64z960ks5fvz8nh7n6y7ny4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popup-complete";
+          sha256 = "04bpm31zx87j390r2xi1yl4kyqgalmyqc48xarsm67zfww9fw9c1";
+          name = "recipe";
+        };
+        packageRequires = [ popup ];
+        meta = {
+          homepage = "https://melpa.org/#/popup-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popup-imenu = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , flx-ido
+                               , lib
+                               , melpaBuild
+                               , popup }:
+      melpaBuild {
+        pname = "popup-imenu";
+        ename = "popup-imenu";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "ancane";
+          repo = "popup-imenu";
+          rev = "c5e2e69adbd3a630e4cb750965a1aee8c10c1f09";
+          sha256 = "0vn0jli0ya7xnapifkgzynbnh3rpnzb82j5k9bla2j4miqfc6cg8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popup-imenu";
+          sha256 = "0lxwfaa9vhdn55dj3idp8c3fg1g26qsqq46y5bimfd0s89bjbaxn";
+          name = "recipe";
+        };
+        packageRequires = [ dash flx-ido popup ];
+        meta = {
+          homepage = "https://melpa.org/#/popup-imenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    popwin = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "popwin";
+        ename = "popwin";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "popwin-el";
+          rev = "95dea14c60019d6cccf9a3b33e0dec4e1f22c304";
+          sha256 = "0nips9npm4zmz3f37vvb4s0g1ci0p9cl6w0z4sc6agg4rybjhpdp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/popwin";
+          sha256 = "1zp54nv8rh0b3g8y5aj4793miiw2r1ijwbzq31lkwmbdr09mixmf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/popwin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pos-tip = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "pos-tip";
+        ename = "pos-tip";
+        version = "0.4.6";
+        src = fetchFromGitHub {
+          owner = "pitkali";
+          repo = "pos-tip";
+          rev = "1b81694d1dc29253db0e855b82563f84a32b38d4";
+          sha256 = "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pos-tip";
+          sha256 = "13qjz112qlrnq34lr70087gshzq8m44knfl6694hfprzjgix84vh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pos-tip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    powerline = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "powerline";
+        ename = "powerline";
+        version = "2.4";
+        src = fetchFromGitHub {
+          owner = "milkypostman";
+          repo = "powerline";
+          rev = "d3dcfc57a36111d8e0b037d90c6ffce85ce071b2";
+          sha256 = "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/powerline";
+          sha256 = "0gsffr6ilmckrzifsmhwd42vr85vs42pc26f1205pbxb7ma34dhx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/powerline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    powershell = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "powershell";
+        ename = "powershell";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "jschaf";
+          repo = "powershell.el";
+          rev = "4865dff0d20a8b36569f7f5d2634a7e27e8f3a65";
+          sha256 = "1zqsnyfkxvaagrasxm86pxyv6qz9h3149p3k61nq1095b9c3sgqf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/powershell";
+          sha256 = "162k8y9k2n48whaq93sqk86zy3p9qvsfxgyfv9n1nvk4l5wn70wk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/powershell";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ppd-sr-speedbar = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , project-persist-drawer
+                                   , sr-speedbar }:
+      melpaBuild {
+        pname = "ppd-sr-speedbar";
+        ename = "ppd-sr-speedbar";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "ppd-sr-speedbar";
+          rev = "19d3e924407f40a6bb38c8fe427a159af755adce";
+          sha256 = "0pv671j8g09pn61kkfb3pa9axfa9zd2jdrkgr81rm2gqb2vh1hsq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ppd-sr-speedbar";
+          sha256 = "1m2918hqvb9c6rgb5szs95ds99gdjdxggcbdfqzmbb5sz2936av8";
+          name = "recipe";
+        };
+        packageRequires = [ project-persist-drawer sr-speedbar ];
+        meta = {
+          homepage = "https://melpa.org/#/ppd-sr-speedbar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prassee-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "prassee-theme";
+        ename = "prassee-theme";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "prassee";
+          repo = "prassee-emacs-theme";
+          rev = "9850c806d39acffdef8e91e1a31b54a7620cbae3";
+          sha256 = "1agghimrmh4kh71y51l6lzampjl15ac6jxrrhdviw95c3rxfll4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prassee-theme";
+          sha256 = "1j0817hxxri6mq9pplgwf5jp2dagk6hay7g1a1lgz4qgkf5jnshs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/prassee-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prescient = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "prescient";
+        ename = "prescient";
+        version = "2.2.1";
+        src = fetchFromGitHub {
+          owner = "raxod502";
+          repo = "prescient.el";
+          rev = "1623a0d4e5b9a752db45923fd91da48b49c85068";
+          sha256 = "0yan4m9xf4iia4ns8kqa0zsham4h2mcnwsq9xnfwm26rkn94xrw0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prescient";
+          sha256 = "04js3hblavfrc6kqp942x5yjdl3ndazf3n64p83423ldsmhbip6s";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/prescient";
+          license = lib.licenses.free;
+        };
+      }) {};
+    presentation = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "presentation";
+        ename = "presentation";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "emacs-presentation-mode";
+          rev = "e9e402d05a8b6d9e1e7fe853503c92fea4cf65cb";
+          sha256 = "10pvjdnb48fk663232qvh4gapk2yiz4iawpffzjrbs3amxh50bi7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/presentation";
+          sha256 = "0zdpfvg6kbvi6b4lb7vbdjrkgk0j1q6gzyd0s2b0603fnyy4sqdg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/presentation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pretty-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "pretty-mode";
+        ename = "pretty-mode";
+        version = "2.0.3";
+        src = fetchFromGitHub {
+          owner = "pretty-mode";
+          repo = "pretty-mode";
+          rev = "4ba8fceb7dd733361ed975d80ac2caa3612fa78b";
+          sha256 = "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pretty-mode";
+          sha256 = "0zm6azbl70qmq2ybi576wfs3mx0ny54mf97b94ac501miv4fv0mq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pretty-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    processing-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , yasnippet }:
+      melpaBuild {
+        pname = "processing-mode";
+        ename = "processing-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "ptrv";
+          repo = "processing2-emacs";
+          rev = "228bc56369675787d60f637223b50ce3a1afebbd";
+          sha256 = "08ljf39jfmfpdk36nws2dnwpm7y8252zsdprsc85hr1h1ig5xy15";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/processing-mode";
+          sha256 = "184yg9z14ighz9djg53ji5dgnb98dnxkkwx55m8f0f879x31i89m";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/processing-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    processing-snippets = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "processing-snippets";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "ptrv";
+          repo = "processing2-emacs";
+          rev = "228bc56369675787d60f637223b50ce3a1afebbd";
+          sha256 = "08ljf39jfmfpdk36nws2dnwpm7y8252zsdprsc85hr1h1ig5xy15";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/ba59561e8a2f259fde170a79844af5e1ef5ed34f/recipes/processing-snippets";
+          sha256 = "09vkm9asmjz1in0f63s7bf4amifspsqf5w9pxiy5y0qvmn28fr2r";
+          name = "processing-snippets";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/processing-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prodigy = callPackage ({ dash
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "prodigy";
+        ename = "prodigy";
+        version = "0.7.0";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "prodigy.el";
+          rev = "3bacca898db9b3493883c95f923a87eb1ce807eb";
+          sha256 = "1whnk1902f8q03clm9xlfl47gkpsywf3mx0ykp70c1q496ab39qj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prodigy";
+          sha256 = "0lfxb80jqjnzssjs6l511jcsmhkpzb5rh5czrb16dkqcz0cl5b2p";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/prodigy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prog-fill = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "prog-fill";
+        ename = "prog-fill";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "prog-fill";
+          rev = "3fbf7da6dd826e95c9077d659566ee29814a31d8";
+          sha256 = "167is1hbv3nsskz26g9q3zdndqsw9d3rwhbasj0r7a3wabpr8j4r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prog-fill";
+          sha256 = "0wnqzkzhaywcyw93z86pngpycsrd1mi79psmck6qbhms1aia79p3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/prog-fill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-explorer = callPackage ({ cl-lib ? null
+                                    , emacs
+                                    , es-lib
+                                    , es-windows
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "project-explorer";
+        ename = "project-explorer";
+        version = "0.14.3";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "project-explorer";
+          rev = "7c2cc86a81f679dda355110f916366b64893a5d4";
+          sha256 = "1hv8ifrpwn434sm41vkgbwni21ma5kfybkwasi6zp0f2b5i9ziw7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/project-explorer";
+          sha256 = "076lzmyi1n7yrgdgyh9qinq271qk6k64x0msbzarihr3p4psrn8m";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs es-lib es-windows ];
+        meta = {
+          homepage = "https://melpa.org/#/project-explorer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-persist = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "project-persist";
+        ename = "project-persist";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "project-persist";
+          rev = "26d9435bef44da2a1b0892eba822f9f487b98eec";
+          sha256 = "0ja2pnbw11a2gwywfyfbdpk8rkm8imy04wkshpnlh0nwn7lf0clm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/project-persist";
+          sha256 = "0csjwj0qaw0hz2qrj8kxgxlixh2hi3aqib98vm19sr3f1b8qab24";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/project-persist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-persist-drawer = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild
+                                          , project-persist }:
+      melpaBuild {
+        pname = "project-persist-drawer";
+        ename = "project-persist-drawer";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "rdallasgray";
+          repo = "project-persist-drawer";
+          rev = "35bbe132a4fab6a0fec15ce6c0fd2fe6a4aa9626";
+          sha256 = "1nq320ph8fs9a197ji4mnw2xa24dld0r1nka476yvkg4azmcc9x8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/project-persist-drawer";
+          sha256 = "1jv2y2hcqakyvfibclzm7g4diw0bvsv3a8fa43yf19wb64jm8hdb";
+          name = "recipe";
+        };
+        packageRequires = [ project-persist ];
+        meta = {
+          homepage = "https://melpa.org/#/project-persist-drawer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    project-root = callPackage ({ fetchhg
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "project-root";
+        version = "0.7";
+        src = fetchhg {
+          url = "https://bitbucket.com/piranha/project-root";
+          rev = "843ca1f4ab2b";
+          sha256 = "0nw02f5lmbqdfnw93d3383sdxx1d31szk23zvjlrmmdwv2124281";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/project-root";
+          sha256 = "0xjir204zk254y2x70k9vqwirx2ljmrikpsgn5kn170d1bxvhwmb";
+          name = "project-root";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/project-root";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pkg-info }:
+      melpaBuild {
+        pname = "projectile";
+        ename = "projectile";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "projectile";
+          rev = "09d1ef17a20c42dc6a2b1622df8faa8fb1c6ad9f";
+          sha256 = "1yyphiy2bc4kzc1bz1akfz5rrdrs0bq3zvsyam9bsx03jixzn7yv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile";
+          sha256 = "1kf8hql59nwiy13q0p6p6rf5agjvah43f0sflflfqsrxbihshvdn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-git-autofetch = callPackage ({ alert
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild
+                                            , projectile }:
+      melpaBuild {
+        pname = "projectile-git-autofetch";
+        ename = "projectile-git-autofetch";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "andrmuel";
+          repo = "projectile-git-autofetch";
+          rev = "da02069d906e6e7f28ea1dd6a9196529315a5cba";
+          sha256 = "106kj49rxsrdh6awvql3zyr3ramdcn0aaq4rmbmd45hz9ij7x1wh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-git-autofetch";
+          sha256 = "0m0raddsw5yvjrw2v6bdaswffmva8y9hxksdgf9axpvrd3rzlk9n";
+          name = "recipe";
+        };
+        packageRequires = [ alert projectile ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-git-autofetch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-rails = callPackage ({ emacs
+                                    , f
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , inf-ruby
+                                    , inflections
+                                    , lib
+                                    , melpaBuild
+                                    , projectile
+                                    , rake }:
+      melpaBuild {
+        pname = "projectile-rails";
+        ename = "projectile-rails";
+        version = "0.16.0";
+        src = fetchFromGitHub {
+          owner = "asok";
+          repo = "projectile-rails";
+          rev = "31c9f90d472e07cb8e49fa8992b187b67c9c9a71";
+          sha256 = "0j38zbprkga3iq5wb77zvfa5r3sj3sqv8qh0ab62wm68qy60d6g3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-rails";
+          sha256 = "0fgvignqdqh0ma91z9385782l89mvwfn77rp1gmy8cbkwi3b7fkq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f inf-ruby inflections projectile rake ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-rails";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-ripgrep = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , projectile
+                                      , ripgrep }:
+      melpaBuild {
+        pname = "projectile-ripgrep";
+        ename = "projectile-ripgrep";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "ripgrep.el";
+          rev = "73595f1364f2117db49e1e4a49290bd6d430e345";
+          sha256 = "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-ripgrep";
+          sha256 = "1iczizyayql40wcljvpc1mvfvn9r28b1dkrkcmdxif732gd01jjg";
+          name = "recipe";
+        };
+        packageRequires = [ projectile ripgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-ripgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-sift = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , projectile
+                                   , sift }:
+      melpaBuild {
+        pname = "projectile-sift";
+        ename = "projectile-sift";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "sift.el";
+          rev = "8c3f3d14a351a2394027d72ee0599aa73b9f0d13";
+          sha256 = "1ma6djvhvjai07v1g9a36lfa3nw8zsy6x5vliwcdnkf44gs287ra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-sift";
+          sha256 = "1wbgpwq9yy3v7hqidaczrvvsw5ajj7m3n4gsy3b169xv5h673a0i";
+          name = "recipe";
+        };
+        packageRequires = [ projectile sift ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-sift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-trailblazer = callPackage ({ emacs
+                                          , f
+                                          , fetchFromGitHub
+                                          , fetchurl
+                                          , inf-ruby
+                                          , inflections
+                                          , lib
+                                          , melpaBuild
+                                          , projectile
+                                          , rake }:
+      melpaBuild {
+        pname = "projectile-trailblazer";
+        ename = "projectile-trailblazer";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "micdahl";
+          repo = "projectile-trailblazer";
+          rev = "79299498d74876f2ac3fe8075716b39a5bdd04cd";
+          sha256 = "1lkj9jdr3g7nl80fxvic6g5cn7vbkyxys7m3kcmd6xa9mq7nvci4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-trailblazer";
+          sha256 = "18cijb5c1ym5kn2g2apbijbfd3aqhrraki8vv9bk8rvi7wmm6qj4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f inf-ruby inflections projectile rake ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-trailblazer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projectile-variable = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "projectile-variable";
+        ename = "projectile-variable";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "projectile-variable";
+          rev = "8d348ac70bdd6dc320c13a12941b32b38140e264";
+          sha256 = "0l38nldx6lwjb7mxixykiyj10xwb35249dxfg0k2wkmb2vy1fkxs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projectile-variable";
+          sha256 = "15qc5n91nxyfvb100iyihfmrdr57qgw6098yv3nfqgw3zx1qchdw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/projectile-variable";
+          license = lib.licenses.free;
+        };
+      }) {};
+    projekt = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "projekt";
+        ename = "projekt";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "tekai";
+          repo = "projekt";
+          rev = "107232c191375b59d065354470d0af83062e2a4c";
+          sha256 = "1rw55w2fpb3rw7j136kclkhppz21f7d7di4cvlv7zj5zpdl5zz88";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/projekt";
+          sha256 = "1bhb24701flihl54w8xrj6yxhynpq4dk0fp5ciac7k28n4930lw8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/projekt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prompt-text = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "prompt-text";
+        ename = "prompt-text";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "prompt-text-el";
+          rev = "3cc486c070b7a7c806c8d6002f9ba4979f56107d";
+          sha256 = "1hv4p1x5sli5lplm8hl6frxmwvbc1vmamgj9m2ryk17ykqmr05r5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prompt-text";
+          sha256 = "1b9sj9kzx5ydq2zsfmkwsx78pzg0vsvrn92397js6b2cm24vrwwc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/prompt-text";
+          license = lib.licenses.free;
+        };
+      }) {};
+    proof-general = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "proof-general";
+        ename = "proof-general";
+        version = "4.4";
+        src = fetchFromGitHub {
+          owner = "ProofGeneral";
+          repo = "PG";
+          rev = "771cab48b2f9ea2ae3fa8f944d0e36a805bf9f3b";
+          sha256 = "0bdfk91wf71z80mdfnl8hpinripndcjgdkz854zil6521r84nqk8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/proof-general";
+          sha256 = "10zif9ax4d3m8sa9y2xqz7g24xa2r3m2x5l0zqa06wm4afq29p87";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/proof-general";
+          license = lib.licenses.free;
+        };
+      }) {};
+    prop-menu = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "prop-menu";
+        ename = "prop-menu";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "prop-menu-el";
+          rev = "50b102c1c0935fd3e0c465feed7f27d66b21cdf3";
+          sha256 = "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/prop-menu";
+          sha256 = "0dhy52fxxpa058mhhx0slw3sly3dlxm9vkax6fd1sap6f6v00p5i";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/prop-menu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    protobuf-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "protobuf-mode";
+        ename = "protobuf-mode";
+        version = "3.6.1";
+        src = fetchFromGitHub {
+          owner = "google";
+          repo = "protobuf";
+          rev = "4674cc7c073f1b8d5efd2a42ffcf3ca30a907bfe";
+          sha256 = "0sspwvwxyqq9aibf3piv6cp5vb28w2fnfk6x7wkmaiy7a4gcklcv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/protobuf-mode";
+          sha256 = "1hh0w93fg6mfwsbb9wvp335ry8kflj50k8hybchpjcn6f4x39xsj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/protobuf-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    protocols = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "protocols";
+        ename = "protocols";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "protocols.el";
+          rev = "f5549f5d873a683af45a0e19c732524d5b964026";
+          sha256 = "0v9is6r307814gvrnch2d3mvikd7j8lnmsqb2c3gj6gvfj4p9y7r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/protocols";
+          sha256 = "1wg3qh8a1ms82lkzz4i1bk787147a8agcj8rszj1zfvwg0ckqq1a";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/protocols";
+          license = lib.licenses.free;
+        };
+      }) {};
+    psci = callPackage ({ dash
+                        , deferred
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , purescript-mode
+                        , s }:
+      melpaBuild {
+        pname = "psci";
+        ename = "psci";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "purescript-emacs";
+          repo = "emacs-psci";
+          rev = "8c2d5a0ba604ec593f83f632b2830a87f41f84d4";
+          sha256 = "0wgxrwl7dpy084sc76wiwpixycb171g7xwc66m5gnlrv79qyac73";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/psci";
+          sha256 = "1iwkr58b910vrwwxyk00psy74vp201vmm3b0cm4k5fh3glr31vp9";
+          name = "recipe";
+        };
+        packageRequires = [ dash deferred f purescript-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/psci";
+          license = lib.licenses.free;
+        };
+      }) {};
+    psession = callPackage ({ async
+                            , cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "psession";
+        ename = "psession";
+        version = "1.5";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "psession";
+          rev = "702d20897c0839568201bc6921d5f0f80b8778c0";
+          sha256 = "0ynd69fyjpgs6rs3kkznpx19kmdmd25wb46bj9zq61gj138b6p33";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/psession";
+          sha256 = "18va6kvpia5an74vkzccs72z02vg4vq9mjzr5ih7xbcqxna7yv3a";
+          name = "recipe";
+        };
+        packageRequires = [ async cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/psession";
+          license = lib.licenses.free;
+        };
+      }) {};
+    psysh = callPackage ({ emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , s }:
+      melpaBuild {
+        pname = "psysh";
+        ename = "psysh";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "psysh.el";
+          rev = "f72d6fe41af2d9566d41b167cda66e97efdf8cfa";
+          sha256 = "0hr8nlxcqfas9wl5ahz9hmvpa8b6k35n4f7iv9dx6zwf5q48q7y7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/psysh";
+          sha256 = "00rzfw8nlbcmfbjnzbfl08136dhgvrrn9g1s9l623xgpbcay63sg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/psysh";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pt = callPackage ({ fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "pt";
+        ename = "pt";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "bling";
+          repo = "pt.el";
+          rev = "a539dc11ecb2d69760ff50f76c96f49895ce1e1e";
+          sha256 = "1p0k770h96iw8bxm8ssi0a91m050s615q036870lrlsz35mzc5kw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pt";
+          sha256 = "0zmz1hcr4ajc2ydvpdxhy1dlhp7hvlkv6y6w1b79ffvq6acdd5mj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pug-mode = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "pug-mode";
+        ename = "pug-mode";
+        version = "1.0.7";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-pug-mode";
+          rev = "96718f802dad3acd5a3f770b1452b81e39f77d92";
+          sha256 = "1jqj3qfc4686v09am869ls1k3jwy397646cql4a8dg7crjdpf023";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pug-mode";
+          sha256 = "1njhr95y2rx7inpl9phxxz580844p2iadqlga1kj7xzvjz698x85";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/pug-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    punctuality-logger = callPackage ({ fetchFromGitLab
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "punctuality-logger";
+        ename = "punctuality-logger";
+        version = "0.8";
+        src = fetchFromGitLab {
+          owner = "elzair";
+          repo = "punctuality-logger";
+          rev = "708cae8e67dbae293c7c4be0ca5e49d76fac6714";
+          sha256 = "1v48i37iqrrwbyy3bscicfq66vbbml4sg0f0n950bnk0qagjx8py";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/punctuality-logger";
+          sha256 = "0q9s74hkfqvcx67xpq9rlvh38nyjnz230bll6ks7y5yzxvl4qhcm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/punctuality-logger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pungi = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , jedi
+                         , lib
+                         , melpaBuild
+                         , pyvenv }:
+      melpaBuild {
+        pname = "pungi";
+        ename = "pungi";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "mgrbyte";
+          repo = "pungi";
+          rev = "41c9f8b7795e083bfd63ba0d06c789c250998723";
+          sha256 = "012lv7hrwlhvins81vw3yjkhdwbpi6g1dx55i101qyrpzv5ifngm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pungi";
+          sha256 = "1v9fsd764z5wdcips63z53rcipdz7bha4q6s4pnn114jn3a93ls1";
+          name = "recipe";
+        };
+        packageRequires = [ jedi pyvenv ];
+        meta = {
+          homepage = "https://melpa.org/#/pungi";
+          license = lib.licenses.free;
+        };
+      }) {};
+    puppet-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , pkg-info }:
+      melpaBuild {
+        pname = "puppet-mode";
+        ename = "puppet-mode";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "voxpupuli";
+          repo = "puppet-mode";
+          rev = "d943149691abd7b66c85d58aee9657bfcf822c02";
+          sha256 = "0xr3s56p6fbm6wgw17galsl3kqvv8c7l1l1qvbhbay39yzs4ff14";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/puppet-mode";
+          sha256 = "1qn71j6fkwnrsq1s6fhfcxhic3rbspg5cy9n7jv451ji7ywyhakf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs pkg-info ];
+        meta = {
+          homepage = "https://melpa.org/#/puppet-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    purescript-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "purescript-mode";
+        ename = "purescript-mode";
+        version = "13.10";
+        src = fetchFromGitHub {
+          owner = "dysinger";
+          repo = "purescript-mode";
+          rev = "6a4d4bdd178c65183a715c7729941a0b8fe5f253";
+          sha256 = "1wk319akv0scvyyjsd48pisi2i1gkahhsan9hfszrs6xx3anvfd9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/77175fa470e517fa134751fbb38e144eb5b979ff/recipes/purescript-mode";
+          sha256 = "00gz752mh7144nsaka5q3q4681jp845kc5vcy2nbfnqp9b24l55m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/purescript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pushbullet = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , grapnel
+                              , json ? null
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "pushbullet";
+        ename = "pushbullet";
+        version = "0.5.2";
+        src = fetchFromGitHub {
+          owner = "theanalyst";
+          repo = "revolver";
+          rev = "73c59a0f1dc04875b3e5a2c8afbc26c32128e445";
+          sha256 = "03ivg3ddhy5zh410wgwxa17m98wywqhk62jgijhjd00b6l8i4aym";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pushbullet";
+          sha256 = "1swzl25rcw7anl7q099qh14yhnwlbn3m20ib9kis0l1rv59kkarl";
+          name = "recipe";
+        };
+        packageRequires = [ grapnel json ];
+        meta = {
+          homepage = "https://melpa.org/#/pushbullet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-autopep8 = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "py-autopep8";
+        ename = "py-autopep8";
+        version = "2016.1";
+        src = fetchFromGitHub {
+          owner = "paetzke";
+          repo = "py-autopep8.el";
+          rev = "68e12d8788c91c7ec53a68acf1d23adb2ffa4788";
+          sha256 = "16fmym6hvi2lx0mmbrrhld1vzki5iqfqx2m0xa9021gjjzb33lw6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-autopep8";
+          sha256 = "1argjdmh0x9c90zkb6cr4z3zkpgjp2mkpsw0dr4v6gg83jcggfpp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/py-autopep8";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-isort = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "py-isort";
+        ename = "py-isort";
+        version = "2016.1";
+        src = fetchFromGitHub {
+          owner = "paetzke";
+          repo = "py-isort.el";
+          rev = "e67306f459c47c53a65604e4eea88a3914596560";
+          sha256 = "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-isort";
+          sha256 = "0k5gn3bjn5pv6dn6p0m9xghn0sx3m29bj3pfrmyh6gd5ic0l00yb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/py-isort";
+          license = lib.licenses.free;
+        };
+      }) {};
+    py-yapf = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "py-yapf";
+        ename = "py-yapf";
+        version = "2016.1";
+        src = fetchFromGitHub {
+          owner = "paetzke";
+          repo = "py-yapf.el";
+          rev = "a878304202ad827a1f3de3dce1badd9ca8731146";
+          sha256 = "1mmzqdigxx46my0h9497l25cjydy3vykg6slxkch4dzvhhlbap48";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/py-yapf";
+          sha256 = "1381x0ffpllxwgkr2d8xxbv1nd4k475m1aff8l5qijw7d1fqga2f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/py-yapf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pycarddavel = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "pycarddavel";
+        ename = "pycarddavel";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "pycarddavel";
+          rev = "6ead921066fa0156f20155b7126e5875ce11c328";
+          sha256 = "0qg1kjzsv2mcvlsivqy8ys3djbs5yala37r9h2zcxdicl88q0l11";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pycarddavel";
+          sha256 = "12k2mnzkd8yv17csfhclsnd479vcabawmac23yw6dsw7ic53jf1a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm ];
+        meta = {
+          homepage = "https://melpa.org/#/pycarddavel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pydoc = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "pydoc";
+        ename = "pydoc";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "statmobile";
+          repo = "pydoc";
+          rev = "5392248e33d83ef05d3b2809b0c6b207786b2644";
+          sha256 = "1m0jb5pk1a1ww5jx2y5nz21by4dh7nlnhdn6bigz53ra449rrxii";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pydoc";
+          sha256 = "0sf52cb80yiridsl1pffdr3wpbgxrn2l8vnq03l70djckild477n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pydoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyenv-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , pythonic }:
+      melpaBuild {
+        pname = "pyenv-mode";
+        ename = "pyenv-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "pyenv-mode";
+          rev = "b96c15fa1b83cad855e472eda06319ad35e34513";
+          sha256 = "1y3q1k195wp2kgp00a1y34i20zm80wdv2kxigh6gbn2r6qzkqrar";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyenv-mode";
+          sha256 = "00yqrk92knv9gq1m9xcg78gavv70jsjlwzkllzxl63iva9qrch59";
+          name = "recipe";
+        };
+        packageRequires = [ pythonic ];
+        meta = {
+          homepage = "https://melpa.org/#/pyenv-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyim = callPackage ({ async
+                        , cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild
+                        , popup
+                        , pyim-basedict }:
+      melpaBuild {
+        pname = "pyim";
+        ename = "pyim";
+        version = "1.7";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "pyim";
+          rev = "3b1c5fbdf3b910f96771935785e28cf33d8d54cc";
+          sha256 = "1ijfsnjvyys941kgcq00d5dgnkbzj14gb7c9pks0x11bsdl0vr6p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyim";
+          sha256 = "1ly4xhfr3irlrwvv20j3kyz98g7barridi9n8jppc0brh2dlv98j";
+          name = "recipe";
+        };
+        packageRequires = [ async cl-lib emacs popup pyim-basedict ];
+        meta = {
+          homepage = "https://melpa.org/#/pyim";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyim-basedict = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "pyim-basedict";
+        ename = "pyim-basedict";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "pyim-basedict";
+          rev = "f71d0ffd9d2421f2b51cd0ccb89fd9eb43c09585";
+          sha256 = "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyim-basedict";
+          sha256 = "1y8cmccli3im5bvws2h582z7k4nj6p8brgypl8h09y3na6yjy2z9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pyim-basedict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyim-wbdict = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , pyim }:
+      melpaBuild {
+        pname = "pyim-wbdict";
+        ename = "pyim-wbdict";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "tumashu";
+          repo = "pyim-wbdict";
+          rev = "114489ed97e825ae11a8d09da6e873820cf23106";
+          sha256 = "187wx418pj4h8p8baf4943v9dsb6mfbn0n19r8xiil1z2cmm4ygc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyim-wbdict";
+          sha256 = "1s0i9xcnpy8kxqhsv7rqxabv5vnxsciyng398mn32mknib03315i";
+          name = "recipe";
+        };
+        packageRequires = [ pyim ];
+        meta = {
+          homepage = "https://melpa.org/#/pyim-wbdict";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyimport = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "pyimport";
+        ename = "pyimport";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "pyimport";
+          rev = "c99d2fd9ca3963deac13a51ce0123f70d303af27";
+          sha256 = "19gxiaikwwfjz65nbbbrwgh91d66s76yzrkls58jzjwghz56pbv3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyimport";
+          sha256 = "1qwigplawknykw1kbm5babyyknzn43ddhbdpahvzh4wy3kycn6n8";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/pyimport";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pynt = callPackage ({ deferred
+                        , ein
+                        , emacs
+                        , epc
+                        , fetchFromGitHub
+                        , fetchurl
+                        , helm
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "pynt";
+        ename = "pynt";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "ebanner";
+          repo = "pynt";
+          rev = "bc750cd244141005ea3b7bb87f75c6f6c5a5778f";
+          sha256 = "0mj8lkc40iv8d6afl4dba7gsbi0mgnx9ivanvczq6pxp5d4kgfsn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pynt";
+          sha256 = "07c0zc68r3pskn3bac3a8x5nrsykl90a1h22865g3i5vil76vvg3";
+          name = "recipe";
+        };
+        packageRequires = [ deferred ein emacs epc helm ];
+        meta = {
+          homepage = "https://melpa.org/#/pynt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-environment = callPackage ({ deferred
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "python-environment";
+        ename = "python-environment";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-python-environment";
+          rev = "401006584e32864a10c69d29f14414828909362e";
+          sha256 = "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-environment";
+          sha256 = "1pq16rddw76ic5d02j5bswl9qcydi47hqmhs7r06jk46vsfzxpl7";
+          name = "recipe";
+        };
+        packageRequires = [ deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/python-environment";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-mode = callPackage ({ fetchFromGitLab
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "python-mode";
+        ename = "python-mode";
+        version = "6.2.3";
+        src = fetchFromGitLab {
+          owner = "python-mode-devs";
+          repo = "python-mode";
+          rev = "a0a534639bc6142c2c2f44bd7ca5878ad5f79518";
+          sha256 = "0sj2hfjwpcdg9djsgl3y5aa3gnvl4s87477x6a9d14m11db3p7ml";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-mode";
+          sha256 = "1m7c6c97xpr5mrbyzhcl2cy7ykdz5yjj90mrakd4lknnsbcq205k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/python-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-pytest = callPackage ({ dash
+                                 , dash-functional
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , magit-popup
+                                 , melpaBuild
+                                 , projectile
+                                 , s }:
+      melpaBuild {
+        pname = "python-pytest";
+        ename = "python-pytest";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "wbolster";
+          repo = "emacs-python-pytest";
+          rev = "6772ecfaa86f0f4a1a66bfd3a454c9b11956de70";
+          sha256 = "086jjygzdrcjfp7j70xs8jh8nq0xv496kza6iap7lyc3qf16b4kk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-pytest";
+          sha256 = "0n97akqq7dss7rsww311ljh9w1hyc4j64wjmpxjlc9lg5aqwjbh4";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          dash-functional
+          emacs
+          magit-popup
+          projectile
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/python-pytest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    python-x = callPackage ({ fetchFromGitLab
+                            , fetchurl
+                            , folding
+                            , lib
+                            , melpaBuild
+                            , python ? null }:
+      melpaBuild {
+        pname = "python-x";
+        ename = "python-x";
+        version = "1.0";
+        src = fetchFromGitLab {
+          owner = "wavexx";
+          repo = "python-x.el";
+          rev = "e606469aafec2e6beda8c589540b88a5a6f6f33f";
+          sha256 = "00i7cc4r7275l22k3708xi4hqw2j44yivdb1madzrpf314v3kabr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/python-x";
+          sha256 = "03px1z27yhvc9084h9j2p0khvhkwmfxdskf0ndvz79ywp6nl7mb6";
+          name = "recipe";
+        };
+        packageRequires = [ folding python ];
+        meta = {
+          homepage = "https://melpa.org/#/python-x";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pythonic = callPackage ({ cl-lib ? null
+                            , dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "pythonic";
+        ename = "pythonic";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "pythonic";
+          rev = "c59a158942634d3c07e506b2376d96e8d5d1466f";
+          sha256 = "0219s900kdpi3cxllvmwm8hb2lwqzikplq578f7pyxhzljjh2lma";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pythonic";
+          sha256 = "1hq0r3vg8vmgw89wfjdqknwm76pimlk0dy56wmh9vffh06gqsb51";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/pythonic";
+          license = lib.licenses.free;
+        };
+      }) {};
+    pyvenv = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "pyvenv";
+        ename = "pyvenv";
+        version = "1.18";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "pyvenv";
+          rev = "921ae2356b6a111ac0b7e44fd04cba8e95cbe936";
+          sha256 = "04kxx8fjqzzdl2rn56vn9jac2v3irpmr9dfckwfa3r4gslvipybm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/pyvenv";
+          sha256 = "0gai9idss1wvryxyqk3pv854mc2xg9hd0r55r2blql8n5rd2yv8v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/pyvenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    qiita = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "qiita";
+        ename = "qiita";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "gongo";
+          repo = "qiita-el";
+          rev = "542be60f1dbc67e8ec778e5d7790b863d3dbc151";
+          sha256 = "0hp7c51d9d8l0cx0wdq7003clyf3k61dq8ns8zq6lfpbvaliq7yq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/qiita";
+          sha256 = "1kzk7pc68ks9gxm2l2d28al23gxh56z0cmkl80qwg7sh4gsmhyxl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/qiita";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ql = callPackage ({ emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ql";
+        ename = "ql";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "ieure";
+          repo = "ql-el";
+          rev = "d976414ba6aa576ad524b5ee5bfa620efd072258";
+          sha256 = "138h4ndnzpphsmi4b8yw53mxc3rnqrj1c3jp8njx5pkmiqkp1q00";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ql";
+          sha256 = "0wxjblqacs5nx2hyh7r6rlv1yngbhn6phn5rni4dw2dms98zj34z";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    qml-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "qml-mode";
+        ename = "qml-mode";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "coldnew";
+          repo = "qml-mode";
+          rev = "6c5f33ba88ae010bf201a80ee8095e20a724558c";
+          sha256 = "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/qml-mode";
+          sha256 = "123mlibviplzra558x87da4zx0kpbhsgfigjjgjgp3mdg897084n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/qml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    qt-pro-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "qt-pro-mode";
+        ename = "qt-pro-mode";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "EricCrosson";
+          repo = "qt-pro-mode";
+          rev = "1e0052fcfb89c15cb47714c1546d4e8ec6e01ae6";
+          sha256 = "11bwxq4nwfbnlk4clg0m8jh2xz0ldv4ggyaw645sy7hprvwkp8y4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/qt-pro-mode";
+          sha256 = "1k3ph9bqvvg6i6n623qrwdpsffs8w9rv9nihmlggb4w30dwqc9nf";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/qt-pro-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quasi-monochrome-theme = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild }:
+      melpaBuild {
+        pname = "quasi-monochrome-theme";
+        ename = "quasi-monochrome-theme";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "lbolla";
+          repo = "emacs-quasi-monochrome";
+          rev = "7d3afe41c2696ee25e3e4bcce987af1f589208d6";
+          sha256 = "0bn1yzxzj6r1k3xcp45l04flq4avzlh0sbjfyiw4nglfhliyvwcf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quasi-monochrome-theme";
+          sha256 = "0h5pqrklyga40jg8qc47lwmf8khn0vcs5jx2sdycl2ipy0ikmfs0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/quasi-monochrome-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quickrun = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "quickrun";
+        ename = "quickrun";
+        version = "2.2.8";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-quickrun";
+          rev = "70e93e06778f44113f405aedec6187b925311d57";
+          sha256 = "0swbgsidq11w7vyjhf06dn8vsj06j9scj8n2dm9m7fasj0yh3ghw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quickrun";
+          sha256 = "0f989d6niw6ghf9mq454kqyp0gy7gj34vx5l6krwc52agckyfacy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/quickrun";
+          license = lib.licenses.free;
+        };
+      }) {};
+    quiz = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "quiz";
+        ename = "quiz";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "quiz.el";
+          rev = "69629937eaf994a51dad39c26355e1a56b9dcb95";
+          sha256 = "06k1kv9ijg9gx8c5jid8ckbmjkviyzh59rygp9drbkpihwdwyfmj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/quiz";
+          sha256 = "0pcjfhk109ifi834jw8lndwhpfcv764wym1dhiqhp5qd2vf431kg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/quiz";
+          license = lib.licenses.free;
+        };
+      }) {};
+    r-autoyas = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "r-autoyas";
+        ename = "r-autoyas";
+        version = "0.28";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "r-autoyas.el";
+          rev = "563254f01ce530ca4c9be1f23395e3fd7d520ff9";
+          sha256 = "02bddznlqys37fnhdpp2g9xa9m7kfgrj1vl0hc5kr42hggk9wwmg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/r-autoyas";
+          sha256 = "18zifadsgbwnga205jvpx61wa2dvjxmxs5v7cjqhny45a524nbv4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/r-autoyas";
+          license = lib.licenses.free;
+        };
+      }) {};
+    racer = callPackage ({ dash
+                         , emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , rust-mode
+                         , s }:
+      melpaBuild {
+        pname = "racer";
+        ename = "racer";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "racer-rust";
+          repo = "emacs-racer";
+          rev = "10aa2119c47584959fd1abe6cfa770818852d3b4";
+          sha256 = "0rl8rnchd1pch1ndgs9s0rrcmn8kq9xxk1wqkb50lyspv64dl46d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/racer";
+          sha256 = "1091y5pisbf73i6zg5d7yny2d5yckkjg0z6fpjpmz5qjs3xcm9wi";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f rust-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/racer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    railscasts-reloaded-theme = callPackage ({ fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild }:
+      melpaBuild {
+        pname = "railscasts-reloaded-theme";
+        ename = "railscasts-reloaded-theme";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "thegeorgeous";
+          repo = "railscasts-reloaded-theme";
+          rev = "ae77bc04fe5a948f418ec8693f6ff2c9ea757c50";
+          sha256 = "1vn9cw343w9vvxhzqi85vyqnj6kxcv99qvva4xjvy1sf65i24wy4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/railscasts-reloaded-theme";
+          sha256 = "1iy30mnm3s7p7qigrm3lvv7xjgwvinwg6yg0hry2aifwn88cnwmz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/railscasts-reloaded-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rainbow-blocks = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "rainbow-blocks";
+        ename = "rainbow-blocks";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "istib";
+          repo = "rainbow-blocks";
+          rev = "8335993563aadd4290c5fa09dd7a6a81691b0690";
+          sha256 = "02x5ciyafqwak06yk813kl8p92hq03wjsk1882q8axr9q231100c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rainbow-blocks";
+          sha256 = "1zf1z1hnp8q0s9za7nnpq83isbpmz26l8hxafz0h0b5dz1w2vlvs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rainbow-blocks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rainbow-delimiters = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "rainbow-delimiters";
+        ename = "rainbow-delimiters";
+        version = "2.1.3";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "rainbow-delimiters";
+          rev = "93cd2dc873e7fedca7abc599cd97d46db4376ac7";
+          sha256 = "0vs9pf8lqq5p5qz1770pxgw47ym4xj8axxmwamn66br59mykdhv0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rainbow-delimiters";
+          sha256 = "132nslbnszvbgkl0819z811yar3lms1hp5na4ybi9gkmnb7bg4rg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rainbow-delimiters";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rainbow-identifiers = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "rainbow-identifiers";
+        ename = "rainbow-identifiers";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "rainbow-identifiers";
+          rev = "19fbfded1baa98d12335f26f6d7b20e5ae44ce2e";
+          sha256 = "05i0jpmxzsj2lsj48cafn3v93z37l7k5kaza2ik3yirdpjdibyrh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rainbow-identifiers";
+          sha256 = "0lw790ymrgpyh0sxwmzinl2ik5vl5vggbg14cd0cx5yagkw5y3mp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rainbow-identifiers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rake = callPackage ({ cl-lib ? null
+                        , dash
+                        , f
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "rake";
+        ename = "rake";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "asok";
+          repo = "rake";
+          rev = "e680f1a8f2591af7c80cad188340601b101b5ddc";
+          sha256 = "1dk2clsnmjy3bfv6laxf8sslvdajjbwpk83ss8v9xm55dcxjvd7n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rake";
+          sha256 = "0cw47g6cjnkh3z4hbwwq1f8f5vrvs84spn06k53bx898brqdh8ns";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash f ];
+        meta = {
+          homepage = "https://melpa.org/#/rake";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ranger = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "ranger";
+        ename = "ranger";
+        version = "0.9.8.5";
+        src = fetchFromGitHub {
+          owner = "ralesi";
+          repo = "ranger.el";
+          rev = "584e4ae8cce1c54a44b40dd4c77fbb2f06d73ecb";
+          sha256 = "01rphv92g1r0cw5bwkbrh02s0na7fjrddxx1dckk2y7qr97s7l8j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ranger";
+          sha256 = "14g4r4iaz0nzfsklslrswsik670pvfd0605xfjghvpngn2a8ych4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ranger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rase = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "rase";
+        ename = "rase";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "m00natic";
+          repo = "rase";
+          rev = "59b5f7e8102570b65040e8d55781c7ea28de7338";
+          sha256 = "1i16361klpdsxphcjdpxqswab3ing69j1wb9nygws7ghil85h0bx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rase";
+          sha256 = "1g7v2z7l4csl5by64hc3zg4kgrkvv81iq30mfqq4nvy1jc0xa6j0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rase";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rats = callPackage ({ cl-lib ? null
+                        , fetchFromGitHub
+                        , fetchurl
+                        , go-mode
+                        , lib
+                        , melpaBuild
+                        , s }:
+      melpaBuild {
+        pname = "rats";
+        ename = "rats";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "ane";
+          repo = "rats.el";
+          rev = "8ad4023a4b9b00c1224b10b0060f6dc60b4814a4";
+          sha256 = "0rwgwz1x9w447y8mxy9hrx1rzi3ac9dwk2y5yg1p08z5b7dy6vcz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rats";
+          sha256 = "0jhwiq9yzwpyqhk3c32vqx8nryingzh58psxbzjl3812b7xdqphr";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib go-mode s ];
+        meta = {
+          homepage = "https://melpa.org/#/rats";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rbenv = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "rbenv";
+        ename = "rbenv";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "senny";
+          repo = "rbenv.el";
+          rev = "a613ee1941efa48ef5321bad39ac1ed8ad1540b8";
+          sha256 = "09c6v4lnv6vm2cckbdpx2fdi9xkz9l68qvhx35vaawxhrkgvypzp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rbenv";
+          sha256 = "1skh1v8dgwl1f9m3pmy2s3rnzp8n3cydi3579fgjv4mzi81k3d5q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rbenv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rc-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "rc-mode";
+        ename = "rc-mode";
+        version = "1.0.13";
+        src = fetchFromGitHub {
+          owner = "mrhmouse";
+          repo = "rc-mode.el";
+          rev = "fe2e0570bf9c19a292e16b18fd4b0a256df5d93f";
+          sha256 = "0skjg3l3ss8nlrpnpjjflmf7wjib4jfarkmx4438nc6vm6553fmn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rc-mode";
+          sha256 = "0p77mckw8jyxcwspj1ffm8mz0k01ddm67hh9j8rw812wddwnj7qf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rcirc-styles = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "rcirc-styles";
+        ename = "rcirc-styles";
+        version = "1.3.2";
+        src = fetchFromGitHub {
+          owner = "aaron-em";
+          repo = "rcirc-styles.el";
+          rev = "f313bf6a7470bed314b27c7a40558cb787d7bc67";
+          sha256 = "1kwn33rxaqik5jls66c2indvswhwmxdmd60n7a1h9siqm5qhy9d6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rcirc-styles";
+          sha256 = "01dxhnzsnljig769dk9axdi970b3lw2s6p1z3ljf29qlb5j4548r";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/rcirc-styles";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rdf-prefix = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "rdf-prefix";
+        ename = "rdf-prefix";
+        version = "1.10";
+        src = fetchFromGitHub {
+          owner = "simenheg";
+          repo = "rdf-prefix";
+          rev = "164136d05505275d42d1ca3a390f55fcc89694b8";
+          sha256 = "18jp3yynnk2248mzwf8h62awfw8fh25m5ah5di0dg62xw56l9nig";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rdf-prefix";
+          sha256 = "1vxgn5f2kws17ndfdv1vj5p9ks3rp6sikzpc258j07bhsfpjz5qm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rdf-prefix";
+          license = lib.licenses.free;
+        };
+      }) {};
+    react-snippets = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , yasnippet }:
+      melpaBuild {
+        pname = "react-snippets";
+        ename = "react-snippets";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "johnmastro";
+          repo = "react-snippets.el";
+          rev = "bfc4b68b81374a6a080240592641091a7e8a6d61";
+          sha256 = "1wna4v8l3j0ppjv4nj72lhp0yh6vbka6bvl1paqqfvay300kiqjb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/react-snippets";
+          sha256 = "0chs0h41nb2fdz02hdsaynz7ma8fg66a8m1q1np0464skrsdaj73";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/react-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    real-auto-save = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "real-auto-save";
+        ename = "real-auto-save";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "ChillarAnand";
+          repo = "real-auto-save";
+          rev = "2775cf497cce60335091817f9fea14f838cd725f";
+          sha256 = "0s19qy5idnzhd7aq0v538x3ysqh7lzddm98mkf8wmqf4xpws6h3j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/real-auto-save";
+          sha256 = "1li0b2d93ffxjq4jdyzyvjdy5h7q5xllys0w4748d2bhr8q35p3w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/real-auto-save";
+          license = lib.licenses.free;
+        };
+      }) {};
+    realgud = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , load-relative
+                           , loc-changes
+                           , melpaBuild
+                           , test-simple }:
+      melpaBuild {
+        pname = "realgud";
+        ename = "realgud";
+        version = "1.4.5";
+        src = fetchFromGitHub {
+          owner = "realgud";
+          repo = "realgud";
+          rev = "09431a4561921bece36a6083b6e27ac4dc82432d";
+          sha256 = "00dgdiiwnwynlyyh6pfhljrl363s8zd5ynbx9mhd2y8c3gmvfab0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/realgud";
+          sha256 = "0wbcclgd23d91c7lx8yx7qigcbc0ywr4hjh7h49pi2avy1cm2q0v";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          emacs
+          load-relative
+          loc-changes
+          test-simple
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/realgud";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reason-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "reason-mode";
+        ename = "reason-mode";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "reasonml-editor";
+          repo = "reason-mode";
+          rev = "6b53815a0405be1f364a082d22fe5c900409a01a";
+          sha256 = "1433bgakbfyf5d5vq69rwj4zg1h0xwjy9qsryvd9r1ssax2hzi7r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reason-mode";
+          sha256 = "07sirgj8bs9yv7pbx1lahwslvjd2aadkzkz7lsyw6xflj5fxpggr";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/reason-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reazon = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "reazon";
+        ename = "reazon";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "nickdrozd";
+          repo = "reazon";
+          rev = "020be6467a83957adcbdcb192b61f2c76a94079b";
+          sha256 = "18la2g0srybr10vm1dajgbxi67j1l0cs08mr696hxb6m558yxdv5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reazon";
+          sha256 = "1lymdc1lnwr7s8s15mnjcavxdyqncy2rkfdj571lf1a37y52jcj1";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/reazon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rebecca-theme = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "rebecca-theme";
+        ename = "rebecca-theme";
+        version = "1.2.1";
+        src = fetchFromGitHub {
+          owner = "vic";
+          repo = "rebecca-theme";
+          rev = "239115183e0a354ccd5c2cb299893b558fbde05c";
+          sha256 = "0n6xf9s39frnyvchk40zzxbkn0hyga5ridkxbf50n7hr5j19yrmb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rebecca-theme";
+          sha256 = "1m72jqyqx18i1vpj07v3vkbi0di9dks5sz46wb2h0f23xqyx00md";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rebecca-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    recover-buffers = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "recover-buffers";
+        ename = "recover-buffers";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "tripleee";
+          repo = "recover-buffers";
+          rev = "fa602e32f73dcec2d90e4bb8e0f72f3240cfdb45";
+          sha256 = "04vmmda2dj8madhlrkmyqw34vsx4pvb0szv3sjvfwqq1z17lsixi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/recover-buffers";
+          sha256 = "0g40d7440hzlc9b45v63ng0anvmgip4dhbd9wcm2sn8qjfr4w11b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/recover-buffers";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rect-plus = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "rect-plus";
+        ename = "rect+";
+        version = "1.0.10";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-rectplus";
+          rev = "299b742faa0bc4448e0d5fe9cb98ab1eb93b8dcc";
+          sha256 = "1vpsihrl03hkd6n6b7mrjccm0a023qf3154a8rw4chihikxw27pj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rect+";
+          sha256 = "0vk0jwpl6yp2md9nh0ghp2qn883a8lr3cq8c9mgq0g552dwdiv5m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rect+";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rectangle-utils = callPackage ({ cl-lib ? null
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "rectangle-utils";
+        ename = "rectangle-utils";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "rectangle-utils";
+          rev = "6fe38fdd48ef5305a908b94a043a966ac3f2053a";
+          sha256 = "08n3ah40gfgkbriwj2z3y0751vpvgz86qjdn6dxs4mghjrwr2545";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rectangle-utils";
+          sha256 = "1w5z2gykydsfp30ahqjihpvq04c5v0cfslbrrg429hycys8apws7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rectangle-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    redpen-paragraph = callPackage ({ cl-lib ? null
+                                    , emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , json ? null
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "redpen-paragraph";
+        ename = "redpen-paragraph";
+        version = "0.42";
+        src = fetchFromGitHub {
+          owner = "karronoli";
+          repo = "redpen-paragraph.el";
+          rev = "f9569bc8e2993dea0f83cba5738a35ce32f82424";
+          sha256 = "087dq9h8i8cjwm8x2s33xrwnnxjpjcmddy2624z00s1ip0dh5ham";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/redpen-paragraph";
+          sha256 = "0jr707ik6fhznq0q421l986w85ah0n9b4is91zrgbk1v6miqrhca";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/redpen-paragraph";
+          license = lib.licenses.free;
+        };
+      }) {};
+    redprl = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "redprl";
+        ename = "redprl";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "RedPRL";
+          repo = "sml-redprl";
+          rev = "c26dcea5896d199c3d0a53b792807a09c98222f5";
+          sha256 = "0iacmk79wl97h9q47hzz60xzxnd2xs0yv4gxzdpmmzw2mbkvs4p6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/redprl";
+          sha256 = "1zinzs3vzf2alsnxf5k71i7lp90fm26wv4y20ci52n0hnh5nz861";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/redprl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    redtick = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "redtick";
+        ename = "redtick";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "ferfebles";
+          repo = "redtick";
+          rev = "ff3a83974dfa2a6e9959baecc2d523cae8ddcda4";
+          sha256 = "177bbpkkk3b7ljn9rv05774yxmbglkhyqm68bvlrgl75vnmm7jdz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/redtick";
+          sha256 = "1a9rviz0hg6vlh2jc04g6vslyf9n89xglcz9cb79vf10hhr6igrb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/redtick";
+          license = lib.licenses.free;
+        };
+      }) {};
+    refine = callPackage ({ dash
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , list-utils
+                          , loop
+                          , melpaBuild
+                          , s }:
+      melpaBuild {
+        pname = "refine";
+        ename = "refine";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "refine";
+          rev = "9760e56ab849a4827e6c9425fdef6f5a7784c967";
+          sha256 = "1b4n0mfplh6vj87p3124c2fw24fj0vm9jvcaxrvccfq3sida4sf3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/refine";
+          sha256 = "1sk6rsd92pix7k8snnqm3hsimjzaihzjgac0g5h3a2zm9dabf4py";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs list-utils loop s ];
+        meta = {
+          homepage = "https://melpa.org/#/refine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    region-convert = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "region-convert";
+        ename = "region-convert";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "zonuexe";
+          repo = "right-click-context";
+          rev = "4391dd89616584dc34773d7c304a7db93f9b63a4";
+          sha256 = "0kqgznjrdg70y5zcz7y9fxssddib6m1wrgfqza2g97g4gl1m91vf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/region-convert";
+          sha256 = "0daghvxc6gxgric1aa1gw036gbpbzilqz72gr1inqy92hz7xrxfm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/region-convert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    relax = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , json ? null
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "relax";
+        ename = "relax";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "relax.el";
+          rev = "6e33892623ab87833082262321dc8e1977209626";
+          sha256 = "0lqbhwi1f8b4sv9p1rf0gyjllk0l7g6v6mlws496079wxx1n5j66";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/relax";
+          sha256 = "0gfr4ym6aakawhkfz40ar2n0rfz503hq428yj6rbf7jmq3ajaysk";
+          name = "recipe";
+        };
+        packageRequires = [ json ];
+        meta = {
+          homepage = "https://melpa.org/#/relax";
+          license = lib.licenses.free;
+        };
+      }) {};
+    repeatable-motion = callPackage ({ emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "repeatable-motion";
+        ename = "repeatable-motion";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "willghatch";
+          repo = "emacs-repeatable-motion";
+          rev = "e664b0a4a3e39c4085378a28b5136b349a0afb22";
+          sha256 = "007lqahjbig6yygqik6fgbq114784z6l40a3vrc4qs9361zqizck";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/repeatable-motion";
+          sha256 = "12z4z8apd8ksf6dfvqm54l71mx68j0yg4hrjypa9p77fpcd6p0zw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/repeatable-motion";
+          license = lib.licenses.free;
+        };
+      }) {};
+    repl-toggle = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , fullframe
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "repl-toggle";
+        ename = "repl-toggle";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "tomterl";
+          repo = "repl-toggle";
+          rev = "934f59478a5c5577795f9507e945d564be368510";
+          sha256 = "13pgfqijfp0ad9h1rpcf0blppq3jv31wdgvpjndgi213vwrkk79j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/repl-toggle";
+          sha256 = "16k9fk1nl2llk9qli52kiirlx9rlz8yhjh3cy6v5y2b3k0y1cf0b";
+          name = "recipe";
+        };
+        packageRequires = [ fullframe ];
+        meta = {
+          homepage = "https://melpa.org/#/repl-toggle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    replace-symbol = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "replace-symbol";
+        ename = "replace-symbol";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "bmastenbrook";
+          repo = "replace-symbol-el";
+          rev = "baf949e528aee1881f455f9c84e67718bedcb3f6";
+          sha256 = "178y1cmpdb2r72igx8j4l7pyhs1idw56j6hg5h8r9a2p99lkgjjc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/replace-symbol";
+          sha256 = "07ljmw6aw9hsqffhwmiq2pvhry27acg6f4vgxgi91vjr8jj3r4ng";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/replace-symbol";
+          license = lib.licenses.free;
+        };
+      }) {};
+    replace-with-inflections = callPackage ({ cl-lib ? null
+                                            , fetchFromGitHub
+                                            , fetchurl
+                                            , inflections
+                                            , lib
+                                            , melpaBuild
+                                            , string-inflection }:
+      melpaBuild {
+        pname = "replace-with-inflections";
+        ename = "replace-with-inflections";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "replace-with-inflections.el";
+          rev = "d9201e047856492f282da65459b28aba25998dbb";
+          sha256 = "09yvn489z33hww7mi1flh344faxrpbkzqhm0i6xb2rridcj7acqh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/replace-with-inflections";
+          sha256 = "1pqpin5ipm3g74zjh1kh6s1gh0aan6202p0y2q00d4ywbz9kn5s0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib inflections string-inflection ];
+        meta = {
+          homepage = "https://melpa.org/#/replace-with-inflections";
+          license = lib.licenses.free;
+        };
+      }) {};
+    repo = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "repo";
+        ename = "repo";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "canatella";
+          repo = "repo-el";
+          rev = "9f03c0d90c9036b96e531c17d529f3855364d47a";
+          sha256 = "1ggxs40mbk50aqhqqfdcz6izvlvsz53s93dj3ndxvgdxkpkxr6yn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/repo";
+          sha256 = "0z4lcswh0c6xnsxlv33bsxh0nh26ydzfl8sv8xabdp5a2gk6bhpb";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/repo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    req-package = callPackage ({ dash
+                               , fetchFromGitLab
+                               , fetchurl
+                               , ht
+                               , lib
+                               , log4e
+                               , melpaBuild
+                               , use-package }:
+      melpaBuild {
+        pname = "req-package";
+        ename = "req-package";
+        version = "1.2";
+        src = fetchFromGitLab {
+          owner = "edvorg";
+          repo = "req-package";
+          rev = "0c0ac7451149dac6bfda2adfe959d1df1c273de6";
+          sha256 = "0sx3kw1gpliifbc0gh2z1lvig68v3gwqjbj0izgn77js8kqxad84";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/req-package";
+          sha256 = "1zjhc6f9qcb3j72k1llp6vym25lxnvq1jgqgmnrjxxwc4fhxx595";
+          name = "recipe";
+        };
+        packageRequires = [ dash ht log4e use-package ];
+        meta = {
+          homepage = "https://melpa.org/#/req-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    request = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "request";
+        ename = "request";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-request";
+          rev = "a3d080e57eb8be606fbf39d1baff94e1b16e1fb8";
+          sha256 = "0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/request";
+          sha256 = "0h4jqg98px9dqqvjp08vi2z1lhmk0ca59lnrcl96bi7gkkj3jiji";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/request";
+          license = lib.licenses.free;
+        };
+      }) {};
+    request-deferred = callPackage ({ deferred
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild
+                                    , request }:
+      melpaBuild {
+        pname = "request-deferred";
+        ename = "request-deferred";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "tkf";
+          repo = "emacs-request";
+          rev = "aeae9028de5c489b07a5f5df29682eff47f80f6b";
+          sha256 = "002blp30bvi8l9b9mzjk8ib6xv3fps3j8cqrvbdj6dw2yvrcfl1g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/request-deferred";
+          sha256 = "1dcxqnzmvddk61dzmfx8vjbzd8m44lscr3pjdp3r7211zhwfk40n";
+          name = "recipe";
+        };
+        packageRequires = [ deferred request ];
+        meta = {
+          homepage = "https://melpa.org/#/request-deferred";
+          license = lib.licenses.free;
+        };
+      }) {};
+    requirejs = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , js2-mode
+                             , lib
+                             , melpaBuild
+                             , popup
+                             , s }:
+      melpaBuild {
+        pname = "requirejs";
+        ename = "requirejs";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "joeheyming";
+          repo = "requirejs-emacs";
+          rev = "ba99f27f97c0552f724aac822ff4e507f801b916";
+          sha256 = "0s38b25jpf9l55c7z42zw5z86rihsymc48l0wp2n61ansafsalkk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/requirejs";
+          sha256 = "09z6r9wcag3gj075wq215zcslyknl1izap595rn48xvizxi06c6k";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib js2-mode popup s ];
+        meta = {
+          homepage = "https://melpa.org/#/requirejs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    resize-window = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "resize-window";
+        ename = "resize-window";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "dpsutton";
+          repo = "resize-window";
+          rev = "e281aca5a1b371aff20d7bfc6abc456de22e19dd";
+          sha256 = "1d8jzhwif80bgj5pxa36hbavjrlmjg12yzxypl40d1wrjamq854c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/resize-window";
+          sha256 = "0h1hlj50hc97wxqpnmvg6w3qhdd9nbnb8r8v39ylv87zqjcmlp8l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/resize-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    restart-emacs = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "restart-emacs";
+        ename = "restart-emacs";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "iqbalansari";
+          repo = "restart-emacs";
+          rev = "e9292fe88d8be7d0ecf9f4f30ed98ffbc6bd689b";
+          sha256 = "0y4ga1lj2x2f0r535ivs09m2l0q76iz72w42wknhsw9lmdsyl5nz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/restart-emacs";
+          sha256 = "03aabz7fmy99nwimvjn7qz6pvc94i470hfgiwmjz3348cw02k0n6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/restart-emacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    restclient-test = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , restclient }:
+      melpaBuild {
+        pname = "restclient-test";
+        ename = "restclient-test";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "simenheg";
+          repo = "restclient-test.el";
+          rev = "a21e41b905b423e762eeb4da3a236c8b1aea8c49";
+          sha256 = "1lan49723rpzg1q7w8x3iggazwl4zirq5l8nhpb8m5hmg21a4kih";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/restclient-test";
+          sha256 = "0g26z5p9fq7fm6bgrwaszya5xmhsgzcn1p7zqr83w74fbw6bcl39";
+          name = "recipe";
+        };
+        packageRequires = [ emacs restclient ];
+        meta = {
+          homepage = "https://melpa.org/#/restclient-test";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reveal-in-osx-finder = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "reveal-in-osx-finder";
+        ename = "reveal-in-osx-finder";
+        version = "0.3.3";
+        src = fetchFromGitHub {
+          owner = "kaz-yos";
+          repo = "reveal-in-osx-finder";
+          rev = "5710e5936e47139a610ec9a06899f72e77ddc7bc";
+          sha256 = "1q13cgpz4wzhnqv84ablawy3y2wgdwy46sp7454mmfx9m77jzb2v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reveal-in-osx-finder";
+          sha256 = "00jgrmh5s3vlpj1jjf8l3c3h4hjk5x781m95sidw6chimizvfmfc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/reveal-in-osx-finder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    reverse-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "reverse-theme";
+        ename = "reverse-theme";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-reverse-theme";
+          rev = "13d0821a4ec5ece7e6a81f50d2a1a7e7ad21394d";
+          sha256 = "1sfl0rm4sxjkcjki0hmkkcicr24qr2q7gmficg9bi5q6vlrid1pn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/reverse-theme";
+          sha256 = "163kk5qnz9bk3l2fam79n264s764jfxbwqbiwgid8kw9cmk0v776";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/reverse-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rg = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild
+                      , s }:
+      melpaBuild {
+        pname = "rg";
+        ename = "rg";
+        version = "1.6.1";
+        src = fetchFromGitHub {
+          owner = "dajva";
+          repo = "rg.el";
+          rev = "164349748da570b9b9105fa2a8294c9e1ec4cbee";
+          sha256 = "1bmk4xbaipbcwqmvrhab0qp3rxv50486kf32kpm4lad4wis4318k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rg";
+          sha256 = "0i78qvqdznh1z3b0mnzihv07j8b9r86dc1lsa1qlzacv6a2i9sbm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs s ];
+        meta = {
+          homepage = "https://melpa.org/#/rg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rib-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "rib-mode";
+        ename = "rib-mode";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "blezek";
+          repo = "rib-mode";
+          rev = "4172e902fd66f235184c0eb6db7fd4a73dbd0866";
+          sha256 = "0s9dyqv4yh0zxngay951g98g07029h51m4r2fc7ib2arw6srfram";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rib-mode";
+          sha256 = "0qgbzrwbbgg4mzjb7yw85qs83b6hpldazip1cigywr46w7f81587";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rib-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rich-minority = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "rich-minority";
+        ename = "rich-minority";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "rich-minority";
+          rev = "333e4669f76a0fb68b433117d377711e418a525e";
+          sha256 = "0ms42fnfis6y2h717cqhngzv7ysgf8340rsfm2i7rx2gbdynr1ic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rich-minority";
+          sha256 = "11xd76w5k3b3q5bxqjb55vi6dsal9drvyc1nh7z83awm59hvgczc";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/rich-minority";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rigid-tabs = callPackage ({ emacs
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "rigid-tabs";
+        ename = "rigid-tabs";
+        version = "1.0";
+        src = fetchFromGitLab {
+          owner = "wavexx";
+          repo = "rigid-tabs.el";
+          rev = "c7c6b726806df7e8cb25a41b213a207850c91cb7";
+          sha256 = "0p044wg9d4i6f5x7bdshmisgwvw424y16lixac93q6v5bh3xmab5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rigid-tabs";
+          sha256 = "0623hhhykrxq702871s5p4vddkvx7jpj6hg5q0c9jkbvflz9n9y8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rigid-tabs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rinari = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , inf-ruby
+                          , jump
+                          , lib
+                          , melpaBuild
+                          , ruby-compilation
+                          , ruby-mode ? null }:
+      melpaBuild {
+        pname = "rinari";
+        ename = "rinari";
+        version = "2.11";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "rinari";
+          rev = "7a146b23f80ac672005adc74d3d71aae83383a21";
+          sha256 = "19f5n44f9qh7agvyhmwqmdh86y4vf1sn41h2afm85l2a8xq6r7rh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rinari";
+          sha256 = "0qknicg3vzl7zbkwsdvp10hrvlng6mbi8hgslx4ir522dflrf9p0";
+          name = "recipe";
+        };
+        packageRequires = [ inf-ruby jump ruby-compilation ruby-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/rinari";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ripgrep = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "ripgrep";
+        ename = "ripgrep";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "ripgrep.el";
+          rev = "73595f1364f2117db49e1e4a49290bd6d430e345";
+          sha256 = "1a5rdpmvsgsjlc9sywism9pq7jd6n9qbcdsvpbfkq1npwhpifkbj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ripgrep";
+          sha256 = "1j9c3mhcyhs4xf44z6fnlvmb81pps25bp43gdqvp0954i068mgah";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ripgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rjsx-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , js2-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "rjsx-mode";
+        ename = "rjsx-mode";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "felipeochoa";
+          repo = "rjsx-mode";
+          rev = "f7d31589acd8a2dfcf4ca8851d2384e4f90364d0";
+          sha256 = "057pgylflzd69ydqz41g8wisvixypdrfn8yv81mfixh3iyq740y8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rjsx-mode";
+          sha256 = "0w3ij8k8058pfw443chm1kn30ia0f5rfbg03w9ddw86xb3wa2q0b";
+          name = "recipe";
+        };
+        packageRequires = [ emacs js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/rjsx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    robe = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , inf-ruby
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "robe";
+        ename = "robe";
+        version = "0.8.1";
+        src = fetchFromGitHub {
+          owner = "dgutov";
+          repo = "robe";
+          rev = "22457d6855fb39b8aedf068556d0e2fbd2874d5b";
+          sha256 = "0ll7ivxqnglfb0i70ly6qq2yfw9cyi3vq3lmj4s6h6c1c7rm3gcq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/robe";
+          sha256 = "19py2lwi7maya90kh1mgwqb16j72f7gm05dwla6xrzq1aks18wrk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/robe";
+          license = lib.licenses.free;
+        };
+      }) {};
+    robots-txt-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "robots-txt-mode";
+        ename = "robots-txt-mode";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "emacs-php";
+          repo = "robots-txt-mode";
+          rev = "431efda01e08426d671d51fcf1f98cfbc87f8c16";
+          sha256 = "1mpg62ai721aasd1lm5xwcygpkyh9kp4x5zvmd62agmp3i8s78gc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/robots-txt-mode";
+          sha256 = "00hxz4mygcxg7d8m2i4cm0bl82v3hw8wb4m8vv7g7fqkjp32c9qc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/robots-txt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    roguel-ike = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , popup }:
+      melpaBuild {
+        pname = "roguel-ike";
+        ename = "roguel-ike";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "stevenremot";
+          repo = "roguel-ike";
+          rev = "706dcb0687e8016d7d776f9d9e5ace9fdbbca43c";
+          sha256 = "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/roguel-ike";
+          sha256 = "1a7sa6nhgi0s4gjh55bhk5cg6q6s7564fk008ibmrm05gfq9wlg8";
+          name = "recipe";
+        };
+        packageRequires = [ popup ];
+        meta = {
+          homepage = "https://melpa.org/#/roguel-ike";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rope-read-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "rope-read-mode";
+        ename = "rope-read-mode";
+        version = "0.3.4";
+        src = fetchFromGitHub {
+          owner = "marcowahl";
+          repo = "rope-read-mode";
+          rev = "71e475ab35555e0a1eca26d73acf1ced911e422e";
+          sha256 = "0x3mmf4gq4d0cqfqbkrrpwhayvmplacck0zc9nlzcn35y17jzpcz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rope-read-mode";
+          sha256 = "0grnn5k6rbck0hz4c6cadgj3a4dv62habyingznisg2kx9i3m0dw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rope-read-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rsense = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "rsense";
+        ename = "rsense";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "rsense";
+          rev = "fbcfc00402742b0d8744a9bfd1bcdd869f4fb923";
+          sha256 = "178rnmhj3987dscsjkg5qcsw92s3b5rv51s0j7qcavx254h7xdf0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rsense";
+          sha256 = "1901xqlpc8fg4sl9j58jn40i2djs8s0cdcqcrzrq02lvk8ssfdf5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rsense";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rspec-mode = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , ruby-mode ? null }:
+      melpaBuild {
+        pname = "rspec-mode";
+        ename = "rspec-mode";
+        version = "1.11";
+        src = fetchFromGitHub {
+          owner = "pezra";
+          repo = "rspec-mode";
+          rev = "e289e52ec4b3aa1caf35957d721e5568eca2a3bb";
+          sha256 = "0hrn5n7aaymwimk511kjij44vqaxbmhly1gwmlmsrnbvvma7f2mp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rspec-mode";
+          sha256 = "0nyib9rx9w9cbsgkcjx9n8fp77xkzxg923z0rdm3f9kc7njcn0zx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ruby-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/rspec-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rtags = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "rtags";
+        ename = "rtags";
+        version = "2.20";
+        src = fetchFromGitHub {
+          owner = "Andersbakken";
+          repo = "rtags";
+          rev = "baf121831ab5b1a40f6e0b3c2771a6238a94414c";
+          sha256 = "06gnjsj4y39m61r38399y949b08lnncwg1ac5yzsmww019mjj6bc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rtags";
+          sha256 = "0s5m4zjvnc1k4gkkizbs4ysvzzbfh45717pksg9bnyzwx5lcw5yd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rtags";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rubik = callPackage ({ calc
+                         , cl-lib ? null
+                         , emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "rubik";
+        ename = "rubik";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "Kurvivor19";
+          repo = "rubik-mode";
+          rev = "7ec955639865ca8e99a941843e19b12be5015a47";
+          sha256 = "0fdjg6gpg45m5myq517vkprmvh50xw10dqa8vwr9hfz2z8dy18ja";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rubik";
+          sha256 = "07bbh5vjw3jdxf06lxqm45y8ijcai391mf97xw5c29z33vhqs267";
+          name = "recipe";
+        };
+        packageRequires = [ calc cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rubik";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rubocop = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "rubocop";
+        ename = "rubocop";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "rubocop-hq";
+          repo = "rubocop-emacs";
+          rev = "980bedb455e3551d35a212fae515c054888907c1";
+          sha256 = "152ara2p59imry2ymfnk5mycbc07rblcmfmqjgm5fijb2x94xv8p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rubocop";
+          sha256 = "07ma4fv015wzpj5j4rdb0ckwwmhkxs3k5vy33qxgwghqmn6xby6x";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rubocop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rubocopfmt = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "rubocopfmt";
+        ename = "rubocopfmt";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "jimeh";
+          repo = "rubocopfmt.el";
+          rev = "43ffa9d9c3dcc0574038bebd049102642f50b290";
+          sha256 = "0vzpfd9xv80ph9xz8psczz46blhsdnac8zh5i944klkxgqdw7x1x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rubocopfmt";
+          sha256 = "06ficv1r3axzi7q659pk1m3gbpf44nd2ir2ikmi8mr8rq44sqps0";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/rubocopfmt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-compilation = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , inf-ruby
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-compilation";
+        ename = "ruby-compilation";
+        version = "2.11";
+        src = fetchFromGitHub {
+          owner = "eschulte";
+          repo = "rinari";
+          rev = "e2ed2fa55ac3435a86b1cf6a4f2d29aebc309135";
+          sha256 = "1wqhqv2fc5h10igv1php51bayx0s7qw4m9gzx9by80dab8lwa0vk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-compilation";
+          sha256 = "1x1vpkjpx95sfcjhkx4cafypj0nkbd1i0mzxx3lmcrsmg8iv0rjc";
+          name = "recipe";
+        };
+        packageRequires = [ inf-ruby ];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-compilation";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-electric = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-electric";
+        ename = "ruby-electric";
+        version = "2.3.1";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "ruby-electric.el";
+          rev = "3553448a780a1ea5c3b0e9becd820d4762876593";
+          sha256 = "0h47lfgxjcyyl8gb1w7l8j8h65s3lp1hsq742sl7a1gf5y6bbm3v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-electric";
+          sha256 = "02xskivi917l8xyhrij084dmzwjq3knjcn65l2iwz34s767fbwl2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-electric";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-end = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-end";
+        ename = "ruby-end";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ruby-end.el";
+          rev = "648b81af136a581bcef387744d93c011d9cdf54b";
+          sha256 = "1cpz9vkp57nk682c5xm20g7bfj5g2aq5ahpk4nhgx7pvd3xvr1ds";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-end";
+          sha256 = "1cnmdlkhm8xsifbjs6ymvi92gdnxiaghb04h10qg41phj6v7m9mg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-end";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-hash-syntax = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-hash-syntax";
+        ename = "ruby-hash-syntax";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "ruby-hash-syntax";
+          rev = "bc05c3130a5d3237f04c6064297e56de5f73887d";
+          sha256 = "1jwvyj3kqchd40h37m75ydl0gjrbm873dhfn1grqg4sgk60hr414";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-hash-syntax";
+          sha256 = "0bvwyagfh7mn457iibrpv1ay75089gp8pg608gbm24m0ix82xvb5";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-hash-syntax";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-test-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-test-mode";
+        ename = "ruby-test-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "r0man";
+          repo = "ruby-test-mode";
+          rev = "a8f41e63d9e9b031fcbad57911b0a28a444f6cdb";
+          sha256 = "1wck3n2lcsasrg14jimm9iiyxdsh9mr9293q1kx4l0jm0z1k8f43";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-test-mode";
+          sha256 = "06j1q9m08jkwlnkccppf2qlcs48nr8ic9sjdv90rnixc18bw7bpk";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-test-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ruby-tools = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ruby-tools";
+        ename = "ruby-tools";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "ruby-tools.el";
+          rev = "6e7fb376085bfa7010ecd3dfad63adacc6e2b4ac";
+          sha256 = "1zvhq9l717rjgkm7bxz5gqkmh5i49cshwzlimb3h78kpjw3hxl2k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ruby-tools";
+          sha256 = "0zpk55rkrqyangyyljxzf0n1icgqnpdzycwack5rji556h5grvjy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ruby-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rufo = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "rufo";
+        ename = "rufo";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "danielma";
+          repo = "rufo.el";
+          rev = "550651cbb39bef875a994cbcda10ecd6f9ab1d6d";
+          sha256 = "0i0azjnrp4km9p5zmdzj9py7g0wg6h5dwi4pz0j5zj0a97qiqmhy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rufo";
+          sha256 = "0pxsifcxic3q54rqj0jbj20hq7f2s4icl57lligf9g0w23qzj239";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rufo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    runner = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "runner";
+        ename = "runner";
+        version = "1.8";
+        src = fetchFromGitHub {
+          owner = "thamer";
+          repo = "runner";
+          rev = "e7394d7c9e886788a656a7085b4cf963d6fc318f";
+          sha256 = "0gpfszp6bqr3vdr32vr6l0nq9hnic31vnins68hc5hknli91bpsq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/runner";
+          sha256 = "09apmk22swj05z77ziij31jj6b3g221qv3mw3mymffzxn5ap2rbx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/runner";
+          license = lib.licenses.free;
+        };
+      }) {};
+    russian-holidays = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "russian-holidays";
+        ename = "russian-holidays";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "grafov";
+          repo = "russian-holidays";
+          rev = "b285a30f29d85c48e3ea4eb93972d34a090c167b";
+          sha256 = "1mz842gvrscklg2w2r2q2wbj92qr31h895k700j3axqx6k30ni0h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/russian-holidays";
+          sha256 = "0lawjwz296grbvb4a1mm1j754q7mpcanyfln1gqxr339kqx2aqd8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/russian-holidays";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rust-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "rust-mode";
+        ename = "rust-mode";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "rust-lang";
+          repo = "rust-mode";
+          rev = "e32765893ce2efb2db6662f507fb9d33d5c1b61b";
+          sha256 = "03i79iqhr8fzri018hx65rix1fsdxk38pkvbw5z6n5flbfr4m0k4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rust-mode";
+          sha256 = "1i1mw1v99nyikscg2s1m216b0h8svbzmf5kjvjgk9zjiba4cbqzc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rust-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rust-playground = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "rust-playground";
+        ename = "rust-playground";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "grafov";
+          repo = "rust-playground";
+          rev = "092c8b11d62dea23953a004744833092bac85fe1";
+          sha256 = "0n2c1pjbvy46ic0k84jd3ffwwb5hibjqc1wv7knzkldi5agigfsh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rust-playground";
+          sha256 = "0ml0zr9vz2vjd9wr0v706w4v4qqfzpa56rdzfak2kb5llx53j89v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/rust-playground";
+          license = lib.licenses.free;
+        };
+      }) {};
+    rvm = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "rvm";
+        ename = "rvm";
+        version = "1.4.0";
+        src = fetchFromGitHub {
+          owner = "senny";
+          repo = "rvm.el";
+          rev = "8e45a9bad8e317ff195f384dab14d3402497dc79";
+          sha256 = "0iblk0vagjcg3c8q9hlpwk7426ms7aq0s80izgvascfmyqycv6qm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/rvm";
+          sha256 = "08i7cmav2cz73jp88ww0ay2yjhk9dj8146836q4sij1bl1slbaf8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/rvm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    s = callPackage ({ fetchFromGitHub
+                     , fetchurl
+                     , lib
+                     , melpaBuild }:
+      melpaBuild {
+        pname = "s";
+        ename = "s";
+        version = "1.12.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "s.el";
+          rev = "12f116d58ac03706496bd682c6449b452681874e";
+          sha256 = "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/s";
+          sha256 = "0dars9212z0yv97mj4615h23vd22vy8b6cw2n433z9jhif3aybqa";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/s";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sackspace = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sackspace";
+        ename = "sackspace";
+        version = "0.8.2";
+        src = fetchFromGitHub {
+          owner = "cofi";
+          repo = "sackspace.el";
+          rev = "fd0480eaaf6d3d11fd30ac5feb2da2f4f7572708";
+          sha256 = "06gqqbkn85l2p05whmr4wkg9axqyzb7r7sgm3r8wfshm99kgpxvl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sackspace";
+          sha256 = "1m10iw83k6m7v7sg2dxzdy83zxq6svk8h9fh4ankyn3baqrdxg5z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sackspace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sage-shell-mode = callPackage ({ cl-lib ? null
+                                   , deferred
+                                   , emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , let-alist
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "sage-shell-mode";
+        ename = "sage-shell-mode";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "sagemath";
+          repo = "sage-shell-mode";
+          rev = "e8bc089e8dfd76f688160e2ac77aee985afeade7";
+          sha256 = "166plwg9ggivr3im0yfxw8k6m9ral37jzznnb06kb6g0zycb4aps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sage-shell-mode";
+          sha256 = "0ivqiigmp9cf88j4xapzanjpbx692r70wb4i25mnppqsi3jlwxdv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib deferred emacs let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/sage-shell-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    salt-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , mmm-jinja2
+                             , mmm-mode
+                             , yaml-mode }:
+      melpaBuild {
+        pname = "salt-mode";
+        ename = "salt-mode";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "glynnforrest";
+          repo = "salt-mode";
+          rev = "e14ed8f2ce0ab7a783c4341879ec8c003e2b5c81";
+          sha256 = "19gw35qv13f2r4wif5fgqfhrph2r320n81faxx8980zds28x2q0x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/salt-mode";
+          sha256 = "1n7i9d6qpjsdcgbzmbf63y4c7ggxh5wsim8fd0casnrq9bl7ssym";
+          name = "recipe";
+        };
+        packageRequires = [ mmm-jinja2 mmm-mode yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/salt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sass-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , haml-mode
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sass-mode";
+        ename = "sass-mode";
+        version = "3.0.18";
+        src = fetchFromGitHub {
+          owner = "nex3";
+          repo = "sass-mode";
+          rev = "26a66e331b507fb420e3bb7d0a6a8fbb04294343";
+          sha256 = "0lxrq3mzabkwj5bv0mgd7fnx3dsx8vxd5kjgb79rjfra0m7pfgln";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sass-mode";
+          sha256 = "1byjk5zpzjlyiwkp780c4kh7s9l56y686sxji89wc59d19rp8800";
+          name = "recipe";
+        };
+        packageRequires = [ haml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/sass-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sauron = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "sauron";
+        ename = "sauron";
+        version = "0.10";
+        src = fetchFromGitHub {
+          owner = "djcb";
+          repo = "sauron";
+          rev = "a9877f0efa9418c41d25002b58d1c2f8c69ec975";
+          sha256 = "1mcag7qad1npjn096byakb8pmmi2g64nlf2vcc12irzmwia85fml";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sauron";
+          sha256 = "01fk1xfh7r16fb1xg5ibbs7gci9dja49msdlf7964hiq7pnnhxgb";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sauron";
+          license = lib.licenses.free;
+        };
+      }) {};
+    say-what-im-doing = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "say-what-im-doing";
+        ename = "say-what-im-doing";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "Benaiah";
+          repo = "say-what-im-doing";
+          rev = "4acc16360a29646040b51db158ba7fdeb711449d";
+          sha256 = "1gkzgcnh5ib4j5206mx8gbwj5ykay19vqlfg9070m2r09d1a55qf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/say-what-im-doing";
+          sha256 = "0wi7318q7mms4wjbzhnsw298bjh7g957dnra0bvg87vv48pz3yfp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/say-what-im-doing";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sayid = callPackage ({ cider
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "sayid";
+        ename = "sayid";
+        version = "0.0.17";
+        src = fetchFromGitHub {
+          owner = "clojure-emacs";
+          repo = "sayid";
+          rev = "a2625e3975c2bc8449259f0ecd51b28068cbdfac";
+          sha256 = "1vw0dc8cx8npy79r53cw129h5s8n12629ah0ypkq15v2rh2hs1gk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sayid";
+          sha256 = "065mxb2la3dq2zqyb8dfksb18fpqym04nnax5rrp19izcw488qsm";
+          name = "recipe";
+        };
+        packageRequires = [ cider ];
+        meta = {
+          homepage = "https://melpa.org/#/sayid";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sbt-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "sbt-mode";
+        ename = "sbt-mode";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "ensime";
+          repo = "emacs-sbt-mode";
+          rev = "e658af140547cbef495c33535c7f694a501d318c";
+          sha256 = "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sbt-mode";
+          sha256 = "0v0n70czgkdijnw5jd4na41vlrmqcshvr8gdpv0bv55ilqhiihc8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sbt-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scala-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "scala-mode";
+        ename = "scala-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "ensime";
+          repo = "emacs-scala-mode";
+          rev = "56cba2903cf6e12c715dbb5c99b34c97b2679379";
+          sha256 = "13miqdn426cw9y1wqaz5smmf0wi3bzls95z6shcxzdz8cg50zmpg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scala-mode";
+          sha256 = "12x377iw085fbkjb034dmcsbi7hma17zkkmbgrhkvfkz8pbgaic8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scala-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    schrute = callPackage ({ emacs
+                           , fetchgit
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "schrute";
+        ename = "schrute";
+        version = "0.2.2";
+        src = fetchgit {
+          url = "https://bitbucket.org/shackra/dwight-k.-schrute";
+          rev = "08ab6565fa94f3a8016163fe6f7be1932af1156b";
+          sha256 = "0l1k6wjjr569lk5k8ydwq13041kn889g20qbzf79qj1ws96rim4m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/schrute";
+          sha256 = "1sr49wr3738sqfzix7v9rj6bvv7q2a46qdkimn9z7rnsjys9i7zy";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/schrute";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scpaste = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , htmlize
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "scpaste";
+        ename = "scpaste";
+        version = "0.6.5";
+        src = fetchFromGitHub {
+          owner = "technomancy";
+          repo = "scpaste";
+          rev = "cca8f4ee5402bbf9a4bbb24e81372067cb21bba4";
+          sha256 = "13s8hp16wxd9fb8gf05dn0xr692kkgiqg7v49fgr00gas4xgpfpm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scpaste";
+          sha256 = "02dqmx6v3jxdn5yz1z74624sc6sz2bm4qjyi78w9akhp2jplwlk1";
+          name = "recipe";
+        };
+        packageRequires = [ htmlize ];
+        meta = {
+          homepage = "https://melpa.org/#/scpaste";
+          license = lib.licenses.free;
+        };
+      }) {};
+    scss-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "scss-mode";
+        ename = "scss-mode";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "antonj";
+          repo = "scss-mode";
+          rev = "d663069667d9b158d56e863b80dd4cc02984e49f";
+          sha256 = "0zpjf9cp8g4rgnwgmhlpwnanf9lzqm3rm1mkihf0gk5qzxvwsdh9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/scss-mode";
+          sha256 = "1g27xnp6bjaicxjlb9m0njc6fg962j3hlvvzmxvmyk7gsdgcgpkv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/scss-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    search-web = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "search-web";
+        ename = "search-web";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "tomoya";
+          repo = "search-web.el";
+          rev = "c4ae86ac1acfc572b81f3d78764bd9a54034c331";
+          sha256 = "08yc67a4ji7z8s0zh500wiscziqsxi92i1d33fjla2mcr8sxxn0i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/search-web";
+          sha256 = "0qqx9l8dn1as4gqpq80jfacn6lz0132m91pjzxv0fx6al2iz0m36";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/search-web";
+          license = lib.licenses.free;
+        };
+      }) {};
+    secretaria = callPackage ({ alert
+                              , emacs
+                              , f
+                              , fetchFromGitLab
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "secretaria";
+        ename = "secretaria";
+        version = "0.2.9";
+        src = fetchFromGitLab {
+          owner = "shackra";
+          repo = "secretaria";
+          rev = "7428b8302c01468b3c1318e318640f68fd5a61b1";
+          sha256 = "16cm8xv7n012hvz757p940ahxp1ygji2vfzsaxal48y4cf026rpl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/secretaria";
+          sha256 = "04pcibzdljcfiha4yh10van8gsjrzn6bdkvkm2ahfcwrmscfn3hf";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs f s ];
+        meta = {
+          homepage = "https://melpa.org/#/secretaria";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sekka = callPackage ({ cl-lib ? null
+                         , concurrent
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , popup }:
+      melpaBuild {
+        pname = "sekka";
+        ename = "sekka";
+        version = "1.8.0";
+        src = fetchFromGitHub {
+          owner = "kiyoka";
+          repo = "sekka";
+          rev = "d1fd5d47aacba723631d5d374169a45ff2051c41";
+          sha256 = "035rx863cj3hs1lhayff0810cpp6kv8nwc1c0y54gvdk1bb333x0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sekka";
+          sha256 = "1jj4ly9p7m3xvb31nfn171lbpm9y70y8cbf8p24w0fhv665dx0cp";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib concurrent popup ];
+        meta = {
+          homepage = "https://melpa.org/#/sekka";
+          license = lib.licenses.free;
+        };
+      }) {};
+    select-themes = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "select-themes";
+        ename = "select-themes";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "jasonm23";
+          repo = "emacs-select-themes";
+          rev = "236f54287519a3ea6dd7b3992d053e4f4ff5d0fe";
+          sha256 = "1c9yv1kjcd0jrzgw99q9p4kzj980f261mjcsggbcw806wb0iw1xn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/select-themes";
+          sha256 = "18ydv7240vcqppg1i7n8sy18hy0lhpxz17947kxs7mvj4rl4wd84";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/select-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    selectric-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "selectric-mode";
+        ename = "selectric-mode";
+        version = "1.4.1";
+        src = fetchFromGitHub {
+          owner = "rbanffy";
+          repo = "selectric-mode";
+          rev = "a35cb3815caceaf273ad7d16ac3b2dd3c7a3003e";
+          sha256 = "04bj71080wqybznyx63dawhppq6x3p88x1j56gvl8kvxv2hwzgzf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/selectric-mode";
+          sha256 = "1k4l0lr68rqyi37wvqp1cnfci6jfkz0gvrd1hwbgx04cjgmz56n4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/selectric-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    servant = callPackage ({ ansi
+                           , commander
+                           , dash
+                           , epl
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , shut-up
+                           , web-server }:
+      melpaBuild {
+        pname = "servant";
+        ename = "servant";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "cask";
+          repo = "servant";
+          rev = "4d2aa8250b54b28e6e7ee4cd5ebd98a33db2c134";
+          sha256 = "15lx6qvmq3vp84ys8dzbx1nzxcnzlq41whawc2yhrnd1dbq4mv2d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/servant";
+          sha256 = "0h8xsg37cvc5r8vkclf7d3gbf6gh4k5pmbiyhwpkbrxwjyl1sl21";
+          name = "recipe";
+        };
+        packageRequires = [ ansi commander dash epl f s shut-up web-server ];
+        meta = {
+          homepage = "https://melpa.org/#/servant";
+          license = lib.licenses.free;
+        };
+      }) {};
+    serverspec = callPackage ({ dash
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "serverspec";
+        ename = "serverspec";
+        version = "0.0.7";
+        src = fetchFromGitHub {
+          owner = "k1LoW";
+          repo = "emacs-serverspec";
+          rev = "b6dfe82af9869438de5e5d860ced196641f372c0";
+          sha256 = "1h58q41wixjlapia1ggf83jxcllq7492k55mc0fq7hbx3hw1q1y2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/serverspec";
+          sha256 = "001d57yd0wmz4d7qmhnanac8g29wls0sqw194003hrgirakg82id";
+          name = "recipe";
+        };
+        packageRequires = [ dash f helm s ];
+        meta = {
+          homepage = "https://melpa.org/#/serverspec";
+          license = lib.licenses.free;
+        };
+      }) {};
+    services = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "services";
+        ename = "services";
+        version = "1.7";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "services.el";
+          rev = "514e4095e8964c4d0f38c4f3ad6c692e86d12faa";
+          sha256 = "1k6w2ghi1iczh65bbln5ryxwnxmkkjm3p0p54s155q9sjidiqlwb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/services";
+          sha256 = "02lgmpbw52ps6z4p9gwzvh9iaxisq5mb0n9aml9ajxac1473vpcd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/services";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sesman = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "sesman";
+        ename = "sesman";
+        version = "0.3.3";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "sesman";
+          rev = "1a6c5448cbcab6320570ca17a04b7487cdae0bd5";
+          sha256 = "0r32f8ma9ddczxrrdz0nadp14j3zmk10q1ch02gb82synkx3xdra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sesman";
+          sha256 = "106jcdsp7rhkr4bbyprcld5fxcnimfcyx0cwcpzhd0b4vh3v3qvg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sesman";
+          license = lib.licenses.free;
+        };
+      }) {};
+    session = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "session";
+        ename = "session";
+        version = "2.3.1";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "session";
+          rev = "19ea0806873daac3539a4b956e15655e99e3dd6c";
+          sha256 = "0sp952abz7dkq8b8kkzzmnwnkq5w15zsx5dr3h8lzxb92lnank9v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/session";
+          sha256 = "0fghxbnf1d5iyrx1q8xd0lbw9nvkdgg2v2f89j6apnawisrsbhwx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/session";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sexp-move = callPackage ({ fetchFromGitLab
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sexp-move";
+        ename = "sexp-move";
+        version = "0.2.6";
+        src = fetchFromGitLab {
+          owner = "elzair";
+          repo = "sexp-move";
+          rev = "117f7a91ab7c25e438413753e916570122011ce7";
+          sha256 = "11h5z2gmwq07c4gqzj2c9apksvqk3k8kpbb9kg78bbif2xfajr3m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sexp-move";
+          sha256 = "0sdm3kr4594fy9hk8yljj2iwa40bgs8nqpwwl2a60r060spz54z9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sexp-move";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sexy-monochrome-theme = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "sexy-monochrome-theme";
+        ename = "sexy-monochrome-theme";
+        version = "3.1";
+        src = fetchFromGitHub {
+          owner = "voloyev";
+          repo = "sexy-monochrome-theme";
+          rev = "f64714a176d9212c9fa82355dd8ec89587ce13f0";
+          sha256 = "17ahrdyk2v7vz13b4934xn8xjza4b7bfrkq8n42frq3pc8mgwqfd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sexy-monochrome-theme";
+          sha256 = "0rlx4029zxrnzzqspn8zrp3q6w0n46q24qk7za46hvxdsmgdpxbq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sexy-monochrome-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shackle = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "shackle";
+        ename = "shackle";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "shackle";
+          rev = "4189c1c773aab533969b587f7801ffbcd1d7d613";
+          sha256 = "1gh30sryh884mpwxpkf0ngkcvixjrxxf4bgq4nqm9n969sr5bhsq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shackle";
+          sha256 = "159z0cwg7afrmym0xk902d8z093sqv39jig25ds7z4a224yrv5w6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/shackle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shakespeare-mode = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "shakespeare-mode";
+        ename = "shakespeare-mode";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "CodyReichert";
+          repo = "shakespeare-mode";
+          rev = "c442eeea9d585e1b1fbb8813e33d47feec348a57";
+          sha256 = "1ba9xy5jwn8ni8fi2k144j669jp95k2qf9ip77r16rsiy7divl0y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shakespeare-mode";
+          sha256 = "1sg8n4ifpi36zmf6b6s0swq7k3r038cmj8kxjm7hpgxq6f9qnk9x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shakespeare-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shampoo = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "shampoo";
+        ename = "shampoo";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "dmatveev";
+          repo = "shampoo-emacs";
+          rev = "be20737f2b870670ce8889a34ad5db0657e7a153";
+          sha256 = "1dfjxphh3i9dwyjdj708ddi2mw7r90bxqzhc9inqkknfabycdw1r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shampoo";
+          sha256 = "01ssgw4cnnx8d86g3r1d5hqcib4qyhmpqvcvx47xs7zh0jscps61";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shampoo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-pop = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "shell-pop";
+        ename = "shell-pop";
+        version = "0.64";
+        src = fetchFromGitHub {
+          owner = "kyagi";
+          repo = "shell-pop-el";
+          rev = "4a3a9d093ad1add792bba764c601aa28de302b34";
+          sha256 = "1ybvg048jvijcg9jjfrbllf59pswmp0fd5zwq5x6nwg5wmggplzd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-pop";
+          sha256 = "02s17ln0hbi9gy3di8fksp3mqc7d8ahhf5vwyz4vrc1bg77glxw8";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shell-pop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-split-string = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "shell-split-string";
+        ename = "shell-split-string";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "shell-split-string-el";
+          rev = "062b85f333a0a60ae09207530544a95d9b001581";
+          sha256 = "18k7asrisxaa5kh3y849hxpk419429cnr2109cs6bnnzr3wya0r3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-split-string";
+          sha256 = "1yj1h7za4ylxh2nikj7s1qqlilpsk05x9571a2fymfyznm3iq77m";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shell-split-string";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-switcher = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "shell-switcher";
+        ename = "shell-switcher";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "shell-switcher";
+          rev = "2c5575ae859a82041a4bacd1793b844bfc24c34f";
+          sha256 = "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-switcher";
+          sha256 = "07g9naiv2jk9jxwjywrbb05dy0pbfdx6g8pkra38rn3vqrjzvhyx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shell-switcher";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shell-toggle = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "shell-toggle";
+        ename = "shell-toggle";
+        version = "1.3.1";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "shell-toggle.el";
+          rev = "9820b0ad6f22c700759555aae8a454a7dc5a46b3";
+          sha256 = "0wvaa5nrbblayjvzjyj6cd942ywg7xz5d8fqaffxcvwlcdihvm7q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shell-toggle";
+          sha256 = "1ai0ks7smr8b221j9hmsikswpxqraa9b13fpwv4wwagavnlah446";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shell-toggle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shelldoc = callPackage ({ cl-lib ? null
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "shelldoc";
+        ename = "shelldoc";
+        version = "0.0.5";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-shelldoc";
+          rev = "1d40c73969347586906ca1dde2adb50afcd73b1b";
+          sha256 = "1nli26llyfkj1cz2dwn18c5pz1pnpz3866hapfibvdmwrg4z6cax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shelldoc";
+          sha256 = "1xlp03aaidp7dp8349v8drzhl4lcngvxgdrwwn9cahfqlrvvbbbx";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib s ];
+        meta = {
+          homepage = "https://melpa.org/#/shelldoc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shelltest-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "shelltest-mode";
+        ename = "shelltest-mode";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "rtrn";
+          repo = "shelltest-mode";
+          rev = "b7f5cbb5eb64941afc9a3bf19ea3757b8e60cc18";
+          sha256 = "1k26krij8vz2582cs194paiyzyjjns87w8syicm58fx6z0s6zrad";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shelltest-mode";
+          sha256 = "1inb0vq34fbwkr0jg4dv2lljag8djggi8kyssrzhfawri50m81nh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shelltest-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shen-elisp = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "shen-elisp";
+        ename = "shen-elisp";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "deech";
+          repo = "shen-elisp";
+          rev = "ffe17dee05f75539cf5e4c59395e4c7400ececaa";
+          sha256 = "10dq3qj1q8i6f604zws97xrvjxwrdcjj3ygh6xpna00cvf40llc2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shen-elisp";
+          sha256 = "045nawzyqaxd3g5f56fxfy680pl18x67w0wi28nrq4l4681w9xyq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shen-elisp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shift-number = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "shift-number";
+        ename = "shift-number";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "alezost";
+          repo = "shift-number.el";
+          rev = "ba3c1f2e6b01bf14aa1433c2a49098af1c025f7c";
+          sha256 = "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shift-number";
+          sha256 = "1sbzkmd336d0dcdpk29pzk2b5bhlahrn083x62l6m150n2xzxn4p";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shift-number";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shm = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "shm";
+        ename = "shm";
+        version = "1.0.20";
+        src = fetchFromGitHub {
+          owner = "chrisdone";
+          repo = "structured-haskell-mode";
+          rev = "bbdefb56cd341256628a19d1b2d7b0abe5da4b0e";
+          sha256 = "12svprs5r2sbdgmp7cslr7xlwaqzjw386dzf6imf5d9m7rnlylck";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shm";
+          sha256 = "1qmp8cc83dcz25xbyqd4987i0d8ywvh16wq2wfs4km3ia8a2vi3c";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    showtip = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "showtip";
+        ename = "showtip";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "showtip";
+          rev = "930da302809a4257e8d69425455b29e1cc91949b";
+          sha256 = "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/showtip";
+          sha256 = "1d5ckka2z0ffwyk9g3h91n3waijj2v7n8kvdks35gcr2yl3yk780";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/showtip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shpec-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "shpec-mode";
+        ename = "shpec-mode";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "shpec";
+          repo = "shpec-mode";
+          rev = "76bccd63e3b70233a6c9ca0798dd03550952cc76";
+          sha256 = "09454mcjd8n1090pjc5mk1dc6bn3bgh60ddpnv9hkajkzpcjxx4h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shpec-mode";
+          sha256 = "155hc1nym3fsvflps8d3ixaqw1cafqp97zcaywdppp47n7vj8zjl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shpec-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shr-tag-pre-highlight = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , language-detection
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "shr-tag-pre-highlight";
+        ename = "shr-tag-pre-highlight";
+        version = "2";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "shr-tag-pre-highlight.el";
+          rev = "63eb0b2a4c1caf1004bac8e002ff8b7477871e36";
+          sha256 = "14b398k7rd0c2ymvg8wyq65fhggkm0camgvqr7j6ia2y0kairxba";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shr-tag-pre-highlight";
+          sha256 = "1v8fqx8bd5504r2mflq6x8xs3k0py3bgsnadz3bjs68yhaxacj3v";
+          name = "recipe";
+        };
+        packageRequires = [ emacs language-detection ];
+        meta = {
+          homepage = "https://melpa.org/#/shr-tag-pre-highlight";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shrink-path = callPackage ({ dash
+                               , f
+                               , fetchFromGitLab
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , s }:
+      melpaBuild {
+        pname = "shrink-path";
+        ename = "shrink-path";
+        version = "0.3.1";
+        src = fetchFromGitLab {
+          owner = "bennya";
+          repo = "shrink-path.el";
+          rev = "9b8cfb59a2dcee8b39b680ab9adad5ecb1f53c0b";
+          sha256 = "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shrink-path";
+          sha256 = "0fq13c6g7qbq6f2ry9dzdyg1f6p41wimkjcdaj177rnilz77alzb";
+          name = "recipe";
+        };
+        packageRequires = [ dash f s ];
+        meta = {
+          homepage = "https://melpa.org/#/shrink-path";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shrink-whitespace = callPackage ({ fetchFromGitLab
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "shrink-whitespace";
+        ename = "shrink-whitespace";
+        version = "0.0.4";
+        src = fetchFromGitLab {
+          owner = "jcpetkovich";
+          repo = "shrink-whitespace.el";
+          rev = "0407b89c142bd17e65edb666f35e2c6755bd0867";
+          sha256 = "1qxdi2jm3zl5f55c6irsbnxrmqw039pcm99jafn7hg5z5zc3xhbx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shrink-whitespace";
+          sha256 = "12i6xlcgk27bsdfnlcdjww8vxbx1yilaqa0pkh5n0hxb66zi6x15";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/shrink-whitespace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shut-up = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "shut-up";
+        ename = "shut-up";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "cask";
+          repo = "shut-up";
+          rev = "dccd8f7d6af2dde96718f557b37bc25adc61dd12";
+          sha256 = "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shut-up";
+          sha256 = "1bcqrnnafnimfcg1s7vrgq4cb4rxi5sgpd92jj7xywvkalr3kh26";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shut-up";
+          license = lib.licenses.free;
+        };
+      }) {};
+    shx = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "shx";
+        ename = "shx";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "riscy";
+          repo = "shx-for-emacs";
+          rev = "a7d9dda0196423bbb673f9a4d30ac948449758f6";
+          sha256 = "0hf4b9a2azdj2xh7ffwz5j2b4akpxia0237ibk6g2kv902982n4s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/shx";
+          sha256 = "0h5ldglx4y85lm0pfilasnch2k82mlr7rb20qvarzwd41hb1az1k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/shx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    side-notes = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "side-notes";
+        ename = "side-notes";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "rnkn";
+          repo = "side-notes";
+          rev = "981ac308b9b5d58e2af20485377e693d2a6e15aa";
+          sha256 = "1hjj6pkl83b9fldzf2bixdny85l5mn81a9kf25kyp0cc6apvwsqr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/side-notes";
+          sha256 = "07hrrplgvp3fvl10fsmxifnim8wz34w7fhzzzkxpdj1zlwls6h83";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/side-notes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sift = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "sift";
+        ename = "sift";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "sift.el";
+          rev = "8c3f3d14a351a2394027d72ee0599aa73b9f0d13";
+          sha256 = "1ma6djvhvjai07v1g9a36lfa3nw8zsy6x5vliwcdnkf44gs287ra";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sift";
+          sha256 = "1kr5rxza5li3zrkfvs91y7dxmn213z0zf836rkwkmwg2b9rmqxvj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    silkworm-theme = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "silkworm-theme";
+        ename = "silkworm-theme";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "mswift42";
+          repo = "silkworm-theme";
+          rev = "ffb3d6d26191dec696ebb2ba4dc5fddfb38b9e0b";
+          sha256 = "0g9672gfinlgmfi23c7zizf3sgpmjm5imzfhx3j77yw5l7zdx8ak";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/silkworm-theme";
+          sha256 = "1zbrjqmhf80qs3i910sixirrv42rxkqdrg2z03gnz1g885gpcn13";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/silkworm-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simple-bookmarks = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "simple-bookmarks";
+        ename = "simple-bookmarks";
+        version = "1.8";
+        src = fetchFromGitHub {
+          owner = "jtkDvlp";
+          repo = "simple-bookmarks";
+          rev = "e89e8163a0705e28e9346320a1ee13c1aae249af";
+          sha256 = "0bx8inaihfs48rzi01nlr3wp2iw0bnk318hhgpd4zg64ap3sgdsv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simple-bookmarks";
+          sha256 = "0jn5wzm9y4054mr9czd3224s5kbrqpcpcfmj6fi62yhy3p1ys9rb";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/simple-bookmarks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simple-httpd = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "simple-httpd";
+        ename = "simple-httpd";
+        version = "1.5.1";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "emacs-web-server";
+          rev = "a5eb49a6567e33586fba15dd649d63ca6e964314";
+          sha256 = "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simple-httpd";
+          sha256 = "1g9m8dx62pql6dqz490pifcli96i5pv6sar18w4lwrfgpfisfz8c";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/simple-httpd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simpleclip = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "simpleclip";
+        ename = "simpleclip";
+        version = "1.0.8";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "simpleclip";
+          rev = "63b1a5356e6ff839b1dbacdf22a5c7a275ec88e6";
+          sha256 = "0iic8r0q21gjhj0d1k5nin9abx3789j0a37n96a5sx6rb4ps4f2v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simpleclip";
+          sha256 = "07qkfwlg8vw5kb097qbsv082hxir047q2bcvc8scbak2dr6pl12s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/simpleclip";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simplenote2 = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , request-deferred }:
+      melpaBuild {
+        pname = "simplenote2";
+        ename = "simplenote2";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "alpha22jp";
+          repo = "simplenote2.el";
+          rev = "070aa311b0a08b530394c53d0c52c6438efbc20c";
+          sha256 = "0zx49kd3wrqx6f52nk8rzqx3ay3qbcygibcidw6w7drvxnxjgd04";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simplenote2";
+          sha256 = "1qdzbwhzmsga65wmrd0mb3rbs71nlyqqb6f4v7kvfxzyis50cswm";
+          name = "recipe";
+        };
+        packageRequires = [ request-deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/simplenote2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    simplezen = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "simplezen";
+        ename = "simplezen";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "simplezen.el";
+          rev = "c0ddaefbb38fcc1c9775434f734f89227d246a30";
+          sha256 = "1p1771qm3jndnf4rdhb1bri5cjiksvxizagi7vfb7mjmsmx18w61";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/simplezen";
+          sha256 = "13f2anhfsxmx1vdd209gxkhpywsi3nn6pazhc6bkswmn27yiig7j";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/simplezen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    skeletor = callPackage ({ cl-lib ? null
+                            , dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , let-alist
+                            , lib
+                            , melpaBuild
+                            , s }:
+      melpaBuild {
+        pname = "skeletor";
+        ename = "skeletor";
+        version = "1.6.1";
+        src = fetchFromGitHub {
+          owner = "chrisbarrett";
+          repo = "skeletor.el";
+          rev = "91cd3a81b5881e7bef8024177bd0d9c5501d1d79";
+          sha256 = "1a3yx3bg61kk1xpwzrn4b0wiavnms1myc1fy48xf9awfqfi78zxd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/skeletor";
+          sha256 = "1vfvg5l12dzksr24dxwc6ngawsqzpxjs97drw48qav9dy1vyl10v";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs f let-alist s ];
+        meta = {
+          homepage = "https://melpa.org/#/skeletor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    skewer-less = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , skewer-mode }:
+      melpaBuild {
+        pname = "skewer-less";
+        ename = "skewer-less";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "skewer-less";
+          rev = "593001930f1d68c85233f34c5f6fb04173fc98d6";
+          sha256 = "0g5sapd76pjnfhxlw149zj0fpn6l3pz3l8qlcn2c237vm8vn6qv3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/skewer-less";
+          sha256 = "0fhv5cnp5bgw3krfmb0jl18kw2hzx2p81falj57lg3p8rn23dryl";
+          name = "recipe";
+        };
+        packageRequires = [ skewer-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/skewer-less";
+          license = lib.licenses.free;
+        };
+      }) {};
+    skewer-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , js2-mode
+                               , lib
+                               , melpaBuild
+                               , simple-httpd }:
+      melpaBuild {
+        pname = "skewer-mode";
+        ename = "skewer-mode";
+        version = "1.8.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "skewer-mode";
+          rev = "a10955db9ef95b0243ee31bcd30a6fb07ce5302b";
+          sha256 = "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/skewer-mode";
+          sha256 = "1zp4myi9f7pw6zkgc0xg12585iihn7khcsf20pvqyc0vn4ajdwqm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs js2-mode simple-httpd ];
+        meta = {
+          homepage = "https://melpa.org/#/skewer-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sl = callPackage ({ cl-lib ? null
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "sl";
+        ename = "sl";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "sl.el";
+          rev = "51d92f820f3e93776fff6cdb9690458816888bdc";
+          sha256 = "1faklr7jz1s6hs1xrzhvddlibhbjbqwxsb8iz6i5c8dg9sj3hw45";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sl";
+          sha256 = "0h90ajikr6kclsy73vs9f50jg8z3d6kqbpanm9ryh2pw3sd4rnii";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/sl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slideview = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "slideview";
+        ename = "slideview";
+        version = "0.6.1";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-slideview";
+          rev = "b0572c757115ba703f471e83135b2c8cc86d7f8f";
+          sha256 = "0yrmm514b2sq86njc1pi7qnngfy5izz3nnpfk9nxsqar1vmdbdzb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slideview";
+          sha256 = "0zr08yrnrz49zds1651ysmgjqgbnhfdcqbg90sbsb086iw89rxl1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/slideview";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slim-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "slim-mode";
+        ename = "slim-mode";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "slim-template";
+          repo = "emacs-slim";
+          rev = "fe8abb644b7b9cc0ed1e76d9ca8d6c01edccbdb8";
+          sha256 = "1cl8amk1kc7a953l1khjms04j40mfkpnbsjz3qa123msgachrsg7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slim-mode";
+          sha256 = "1hip0r22irr9sah3b65ky71ic508bhqvj9hj95a81qvy1zi9rcac";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/slim-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slime = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , macrostep
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "slime";
+        ename = "slime";
+        version = "2.22";
+        src = fetchFromGitHub {
+          owner = "slime";
+          repo = "slime";
+          rev = "8d9fdf34fe542ec280ee042ee7bdea16e512d3c0";
+          sha256 = "0zsliqfd92ivg2y2w1z6scn6i3w658x8bi1wd0rvf6mddc74lvj6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slime";
+          sha256 = "04zcvjg0bbx5mdbsk9yn7rlprakl89dq6jmnq5v2g0n6q0mh6ign";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib macrostep ];
+        meta = {
+          homepage = "https://melpa.org/#/slime";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slime-company = callPackage ({ company
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , slime }:
+      melpaBuild {
+        pname = "slime-company";
+        ename = "slime-company";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "anwyn";
+          repo = "slime-company";
+          rev = "6c244690c80387a32b0cb984843e00c8b75ad6bb";
+          sha256 = "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slime-company";
+          sha256 = "195s5fi2dl3h2jyy4d45q22jac35sciz81n13b4lgw94mkxx4rq2";
+          name = "recipe";
+        };
+        packageRequires = [ company slime ];
+        meta = {
+          homepage = "https://melpa.org/#/slime-company";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slime-docker = callPackage ({ cl-lib ? null
+                                , docker-tramp
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , slime }:
+      melpaBuild {
+        pname = "slime-docker";
+        ename = "slime-docker";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "daewok";
+          repo = "slime-docker";
+          rev = "1ba41c2d86540a84b47466b0b6957f8063f23aa8";
+          sha256 = "168s5xsf7l6s8x5hcmzmk5j9d8a3wpr4s3dlm697dg2n1717gl2z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slime-docker";
+          sha256 = "13zkkrpww51ndsblpyz2msiwrjnaz6yrk61jbzrwp0r7a2v0djsa";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib docker-tramp emacs slime ];
+        meta = {
+          homepage = "https://melpa.org/#/slime-docker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slime-volleyball = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "slime-volleyball";
+        ename = "slime-volleyball";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "fitzsim";
+          repo = "slime-volleyball";
+          rev = "159b5c0f40b109e3854e94b89ec5383854c46ae3";
+          sha256 = "00v4mh04affd8kkw4rn51djpyga2rb8f63mgy86napglqnkz40r3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slime-volleyball";
+          sha256 = "1dzvj8z3l5l9ixjl3nc3c7zzi23zc2300r7jzw2l3bvg64cfbdg7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/slime-volleyball";
+          license = lib.licenses.free;
+        };
+      }) {};
+    slstats = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "slstats";
+        ename = "slstats";
+        version = "1.10";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "slstats.el";
+          rev = "e9696066abf3f2b7b818a57c062530dfd9377033";
+          sha256 = "1mjzr6lqcyx3clp3bxq77k2rpkaglnq407xdk05xkaqissirpc83";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/slstats";
+          sha256 = "0z5y2fmb3v16g5gf87c9gll04wbjp3d1cf7gm5cxi4w3y1kw4r7q";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/slstats";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sly = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "sly";
+        ename = "sly";
+        version = "2.22";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "sly";
+          rev = "2bf65222066f4cfcc91f4a34f785ceac07ecb3a7";
+          sha256 = "0l632f7mrf1qh00ccngywja4kxdzh7ygqdyjwm32c2kssa9h304y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sly";
+          sha256 = "18as0g1fi1x6lgjzd9rn2s6iw3n00q3nxi99lchjnn004pwsv8kq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sly";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-mode-line = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , rich-minority }:
+      melpaBuild {
+        pname = "smart-mode-line";
+        ename = "smart-mode-line";
+        version = "2.12.0";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "smart-mode-line";
+          rev = "9a81b51cd37fc5b6d47abfbb2b32f98f36a0fcfc";
+          sha256 = "055w1pcr96bfgbmig6ll2sgcisw82rf9dh4n8dhnsl75p32g1rcn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-mode-line";
+          sha256 = "0qmhzlkc6mfqyaw4jaw6195b8sw0wg9pfjcijb4p0mlywf5mh5q6";
+          name = "recipe";
+        };
+        packageRequires = [ emacs rich-minority ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-mode-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-mode-line-powerline-theme = callPackage ({ emacs
+                                                   , fetchFromGitHub
+                                                   , fetchurl
+                                                   , lib
+                                                   , melpaBuild
+                                                   , powerline
+                                                   , smart-mode-line }:
+      melpaBuild {
+        pname = "smart-mode-line-powerline-theme";
+        ename = "smart-mode-line-powerline-theme";
+        version = "2.12.0";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "smart-mode-line";
+          rev = "558251e200cc555df137e60326295f2bd640fd6a";
+          sha256 = "1xh1qcxw0r3j8hx8k8hsx0cl82wps5x755j4kbn01m7srzv6v167";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-mode-line-powerline-theme";
+          sha256 = "0hv3mx39m3l35xhz351zp98321ilr6qq9wzwn1f0ziiv814khcn4";
+          name = "recipe";
+        };
+        packageRequires = [ emacs powerline smart-mode-line ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-mode-line-powerline-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-semicolon = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "smart-semicolon";
+        ename = "smart-semicolon";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "iquiw";
+          repo = "smart-semicolon";
+          rev = "94cf665aed45c5882e94afe465704fed6326e92e";
+          sha256 = "16nkxf8phxi240fd9ksazxmjs91j0xplny6890a06kx4r8s61p9f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-semicolon";
+          sha256 = "1vq6l3vc615w0p640wy226z5i7dky666sgzczkngv07kag0iwqp0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/smart-semicolon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smart-tabs-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "smart-tabs-mode";
+        ename = "smart-tabs-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "jcsalomon";
+          repo = "smarttabs";
+          rev = "8b196d596b331f03fba0efdb4e31d2fd0752c4a7";
+          sha256 = "1kfihh4s8578cwqyzn5kp3iib7f9vvg6rfc3klqzgads187ryd4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smart-tabs-mode";
+          sha256 = "1fmbi0ypzhsizzb1vm92hfaq23swiyiqvg0pmibavzqyc9lczhhl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smart-tabs-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smartparens = callPackage ({ cl-lib ? null
+                               , dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "smartparens";
+        ename = "smartparens";
+        version = "1.11.0";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "smartparens";
+          rev = "4873352b5d0a1c5142658122de1b6950b8fe7e4d";
+          sha256 = "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smartparens";
+          sha256 = "025nfrfw0992024i219jzm4phwf29smc5hib45s6h1s67942mqh6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/smartparens";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smartrep = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "smartrep";
+        ename = "smartrep";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "myuhe";
+          repo = "smartrep.el";
+          rev = "0b73bf3d1a3c795671bfee0a36cecfaa54729446";
+          sha256 = "0j5lg9gryl8vbzw8d3r2fl0c9wxa0c193mcvdfidd25b98wccc3f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smartrep";
+          sha256 = "1ypls52d51lcqhz737rqg73c6jwl6q8b3bwb29z51swyamf37rbn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smartrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smartscan = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "smartscan";
+        ename = "smartscan";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "mickeynp";
+          repo = "smart-scan";
+          rev = "13c9fd6c0e38831f78dec55051e6b4a643963176";
+          sha256 = "1sd7dh9114mvr4xnp43xx4b7qmwkaj1a1fv7pwc28fhiy89d2md4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smartscan";
+          sha256 = "1q0lqms16g7avln1pbxzb49z3w96kv1r7lbh61ijlnz3jips098w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smartscan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smbc = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "smbc";
+        ename = "smbc";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "sakshamsharma";
+          repo = "emacs-smbc";
+          rev = "c377b806118d82140197d9cb1095548477e00497";
+          sha256 = "16cj6jsy1psmcjshxb46i44sf1zb9s4mfiagl5cr22njy01ajq1h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smbc";
+          sha256 = "0aviqa8mk8dxxnddfskq9jgz3knqhf0frj7gq7nk6ckxkrxrgqn4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smbc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smeargle = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "smeargle";
+        ename = "smeargle";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-smeargle";
+          rev = "0665b1ff5109731898bc4a0ca6d939933b804777";
+          sha256 = "0p0kxmjdr02l9injlyyrnnzqdbb7mirz1xx79c3lw1rgpalf0jnf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smeargle";
+          sha256 = "1dy87ah1w21csvrkq5icnx7g7g7nxqkcyggxyazqwwxvh2silibd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/smeargle";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smex = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "smex";
+        ename = "smex";
+        version = "3.0";
+        src = fetchFromGitHub {
+          owner = "nonsequitur";
+          repo = "smex";
+          rev = "97b4a4d82a4449e3f1a3fa8a93387d6eb0ef9c26";
+          sha256 = "1hcjh577xz3inx28r8wb4g2b1424ccw8pffvgdmpf80xp1llldj5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smex";
+          sha256 = "1rwyi7gdzswafkwpfqd6zkxka1mrf4xz17kld95d2ram6cxl6zda";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smmry = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "smmry";
+        ename = "smmry";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "microamp";
+          repo = "smmry.el";
+          rev = "b7ee765337fa627a6c59eb4f2a91df5d280ac6df";
+          sha256 = "0hzs8xi7n3bsqwm3nlm3vk8p2p33ydwxpwk9wp3325g03jl921in";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smmry";
+          sha256 = "05ikcvyr74jy3digd0ad443h5kf11w29hgnmb71bclm3mfslh5wn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smmry";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smooth-scroll = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "smooth-scroll";
+        ename = "smooth-scroll";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "k-talo";
+          repo = "smooth-scroll.el";
+          rev = "02320f28abb5cae28b3a18f6b9ce93129bdbfc45";
+          sha256 = "1kkg7qhb2lmwr4siiazqny9w2z9nk799lzl5i159lfivlxcgixmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smooth-scroll";
+          sha256 = "1b0mjpd4dqgk7ij37145ry2jqbn1msf8rrvymn7zyckbccg83zsf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smooth-scroll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    smooth-scrolling = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "smooth-scrolling";
+        ename = "smooth-scrolling";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "aspiers";
+          repo = "smooth-scrolling";
+          rev = "6a1420be510decde0a5eabc56cff229ae554417e";
+          sha256 = "1dkqix0iyjyiqf34h3p8faqcpffc0pwkxqqn80ys9jvj4f27kkrg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/smooth-scrolling";
+          sha256 = "0zy2xsmr05l2narslfgril36d7qfb55f52qm2ki6fy1r18lfiyc6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/smooth-scrolling";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snakemake-mode = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , magit-popup
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "snakemake-mode";
+        ename = "snakemake-mode";
+        version = "1.5.0";
+        src = fetchFromGitHub {
+          owner = "kyleam";
+          repo = "snakemake-mode";
+          rev = "0cadd2bbd20aae1555561e81ed72fec43ec7296e";
+          sha256 = "1i4cwdyhfyawfx07i63iqdx524mlphgbrl44wqqnnxrbdqm0h534";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snakemake-mode";
+          sha256 = "1xxd3dms5vgvpn18a70wjprka5xvri2pj9cw8qz09s640f5jf3r4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs magit-popup ];
+        meta = {
+          homepage = "https://melpa.org/#/snakemake-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snapshot-timemachine-rsnapshot = callPackage ({ fetchFromGitHub
+                                                  , fetchurl
+                                                  , lib
+                                                  , melpaBuild
+                                                  , seq
+                                                  , snapshot-timemachine }:
+      melpaBuild {
+        pname = "snapshot-timemachine-rsnapshot";
+        ename = "snapshot-timemachine-rsnapshot";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "snapshot-timemachine-rsnapshot";
+          rev = "72b0b700d80f1a0442e62bbbb6a0c8c59182f97f";
+          sha256 = "1bdy7p0bjfdlv6l6yih6fvvi7xpldal4rj8l2ajpc6sgby24h8bb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snapshot-timemachine-rsnapshot";
+          sha256 = "0fxijd94p961ab0p4ddmhja4bfrif2d87v32g4c41amc1klyf25r";
+          name = "recipe";
+        };
+        packageRequires = [ seq snapshot-timemachine ];
+        meta = {
+          homepage = "https://melpa.org/#/snapshot-timemachine-rsnapshot";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snazzy-theme = callPackage ({ base16-theme
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "snazzy-theme";
+        ename = "snazzy-theme";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "weijiangan";
+          repo = "emacs-snazzy";
+          rev = "8729d10b5c1edf1053800170dab1ffd820b6fff2";
+          sha256 = "1c07yggr6cnbca2iag1rjjsp1hiaccix222wzybxrphb72fn93wq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snazzy-theme";
+          sha256 = "0srmhwhqrp1s01p1znhjzs254l3r2i6c91v7cnlwlvrls1sbh32k";
+          name = "recipe";
+        };
+        packageRequires = [ base16-theme emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/snazzy-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    snoopy = callPackage ({ cl-lib ? null
+                          , emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "snoopy";
+        ename = "snoopy";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "anmonteiro";
+          repo = "snoopy-mode";
+          rev = "ec4123bdebfe0bb7bf4feaac2dc02b59caffe386";
+          sha256 = "01l44lshw0zvykay9886s1vqryanagkd4ciw3ramchn0baqz11vl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/snoopy";
+          sha256 = "1wa8jykqyj6rxqfhwbiyli6yh8s7n0pqv7fc9sfaymarda93zbgi";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/snoopy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    socyl = callPackage ({ cl-lib ? null
+                         , dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , pkg-info
+                         , s }:
+      melpaBuild {
+        pname = "socyl";
+        ename = "socyl";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "socyl";
+          rev = "38157e3bb0d7afa8b90b744648f63c85b4edb230";
+          sha256 = "1ha0827zcdkl1ih8c7018cpbiw2k1b8ik4h7p6asw7pg0n5xf1c6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/socyl";
+          sha256 = "00b7x247cyjh4gci101fq1j6708vbcz1g9ls3845w863wjf6m5sz";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash pkg-info s ];
+        meta = {
+          homepage = "https://melpa.org/#/socyl";
+          license = lib.licenses.free;
+        };
+      }) {};
+    solaire-mode = callPackage ({ cl-lib ? null
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "solaire-mode";
+        ename = "solaire-mode";
+        version = "1.0.6";
+        src = fetchFromGitHub {
+          owner = "hlissner";
+          repo = "emacs-solaire-mode";
+          rev = "abf2ce4da77d0877efb4a035687390ce921eda4f";
+          sha256 = "15wszz841vd9i59gq2xxh8rk7bh7agwglh2dwhxgs70m24hsp3p4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/solaire-mode";
+          sha256 = "0pvgip12xl16rwz4wqmqjd8nhh3a299aknfsghazmxigamlmlsl5";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/solaire-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    solarized-theme = callPackage ({ dash
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "solarized-theme";
+        ename = "solarized-theme";
+        version = "1.2.2";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "solarized-emacs";
+          rev = "210dbef0186f87048d50face41d1d374d6154b3a";
+          sha256 = "0zcj9jf8nlsj9vms888z2vs76q54n8g8r9sh381xad3x8d6lrlb3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/solarized-theme";
+          sha256 = "15d8k32sj8i11806byvf7r57rivz391ljr0zb4dx8n8vjjkyja12";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/solarized-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    solidity-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "solidity-mode";
+        ename = "solidity-mode";
+        version = "0.1.9";
+        src = fetchFromGitHub {
+          owner = "ethereum";
+          repo = "emacs-solidity";
+          rev = "d0ff4dea49540f37301d869f2797fca2492f55d5";
+          sha256 = "1wcy5z4wggn3zs9h1kyvm0ji51ppjcqdmym3mmxbrhan6a0kq724";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/solidity-mode";
+          sha256 = "0bnpak4n3324igln2cp9gz820zkpjyw3q2k42dm7mx6n5bv2pjj6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/solidity-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sos = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild
+                       , org }:
+      melpaBuild {
+        pname = "sos";
+        ename = "sos";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "rudolfolah";
+          repo = "emacs-sos";
+          rev = "c3906ca6872f460c0bdd276410519308626313f1";
+          sha256 = "0b5w3vdr8llg3hqd22gnc6b6y089lq6vfk0ajkws6gfldz2gg2v1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sos";
+          sha256 = "0d0n2h7lbif32qgz0z2c36536mrx36d22gq86xm7kmxday6iy19k";
+          name = "recipe";
+        };
+        packageRequires = [ org ];
+        meta = {
+          homepage = "https://melpa.org/#/sos";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sotclojure = callPackage ({ cider
+                              , clojure-mode
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , sotlisp }:
+      melpaBuild {
+        pname = "sotclojure";
+        ename = "sotclojure";
+        version = "1.3.1";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "speed-of-thought-clojure";
+          rev = "ceac82aa691e8d98946471be6aaff9c9a4603c32";
+          sha256 = "1a6riq7ksk5m76dsgc75d8b992nyr50l48l8cpms9064m6b0r9jv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sotclojure";
+          sha256 = "12byqjzg0pffqyq958265qq8yxxmf3iyy4m7zib492qcj8ccy090";
+          name = "recipe";
+        };
+        packageRequires = [ cider clojure-mode emacs sotlisp ];
+        meta = {
+          homepage = "https://melpa.org/#/sotclojure";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sotlisp = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "sotlisp";
+        ename = "sotlisp";
+        version = "1.6.2";
+        src = fetchFromGitHub {
+          owner = "Malabarba";
+          repo = "speed-of-thought-lisp";
+          rev = "fffe8d0b42b143a2e7df0470d9049fa57b6ecac5";
+          sha256 = "0j5zwb1ypqps30126w2684lmjh8ia4qxg8inlajcbv8i3pbai7k6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sotlisp";
+          sha256 = "0zjnn6hhwy6cjvc5rhvhxcq5pmrhcyil14a48fcgwvg4lv7fbljk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sotlisp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sound-wav = callPackage ({ cl-lib ? null
+                             , deferred
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sound-wav";
+        ename = "sound-wav";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-sound-wav";
+          rev = "2a8c8a9bd797dfbf4a0aa1c023a464b803227ff8";
+          sha256 = "1ba1r359cb1dms24ajn0xfrqn8c9y08m6m7dwgxpylyyjwh1096y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sound-wav";
+          sha256 = "1vrwzk6zqma7r0w5ivbx16shys6hsifj52fwlf5rxs6jg1gqdb4f";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/sound-wav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sourcekit = callPackage ({ dash
+                             , dash-functional
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , request }:
+      melpaBuild {
+        pname = "sourcekit";
+        ename = "sourcekit";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "nathankot";
+          repo = "company-sourcekit";
+          rev = "8ba62ac25bf533b7f148f333bcb5c1db799f749b";
+          sha256 = "01dh0wdaydiai4v13r8g05rpiwqr5qqi34wif8vbk2mrr25wc7i9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sourcekit";
+          sha256 = "1lvk3m86awlinivpg89h6zvrwrdqa5ljdp563k3i4h9384w82pks";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/sourcekit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sourcemap = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sourcemap";
+        ename = "sourcemap";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-sourcemap";
+          rev = "64c89d296186f48d9135fb8aad501de19f64bceb";
+          sha256 = "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sourcemap";
+          sha256 = "0cjg90y6a0l59a9v7d7p12pgmr21gwd7x5msil3h6xkm15f0qcc5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sourcemap";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spaceline = callPackage ({ cl-lib ? null
+                             , dash
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , powerline
+                             , s }:
+      melpaBuild {
+        pname = "spaceline";
+        ename = "spaceline";
+        version = "2.0.1";
+        src = fetchFromGitHub {
+          owner = "TheBB";
+          repo = "spaceline";
+          rev = "2d1a7bfb5bdaf24958f50b4bf93182847916af85";
+          sha256 = "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spaceline";
+          sha256 = "0jpcj0i8ckdylrisx9b4l9kam6kkjzhhv1s7mwwi4b744rx942iw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash emacs powerline s ];
+        meta = {
+          homepage = "https://melpa.org/#/spaceline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spaceline-all-the-icons = callPackage ({ all-the-icons
+                                           , emacs
+                                           , fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild
+                                           , memoize
+                                           , spaceline }:
+      melpaBuild {
+        pname = "spaceline-all-the-icons";
+        ename = "spaceline-all-the-icons";
+        version = "1.4.0";
+        src = fetchFromGitHub {
+          owner = "domtronn";
+          repo = "spaceline-all-the-icons.el";
+          rev = "7eafe2d7a81f8d10e03498bdcc3bec0ea50f905d";
+          sha256 = "186v71d8n1iy73drayyf57pyzlz973q74mazkyvb8w3fj8bb3llm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spaceline-all-the-icons";
+          sha256 = "1h6clkr2f29k2vw0jcrmnfbjpphaxm7s3zai6pn6qag32bgm3jq6";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons emacs memoize spaceline ];
+        meta = {
+          homepage = "https://melpa.org/#/spaceline-all-the-icons";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sparkline = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sparkline";
+        ename = "sparkline";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "woudshoo";
+          repo = "sparkline";
+          rev = "e44498cf1a58fb165991198fe5104d51c92ea904";
+          sha256 = "1gmmmkzxxlpz2ml6qk24vndlrbyl55r5cba76jn342zrxvb357ny";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sparkline";
+          sha256 = "081jzaxjb32nydvr1kmyafxqxi610n0yf8lwz9vldm84famf3g7y";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/sparkline";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sparql-mode = callPackage ({ cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "sparql-mode";
+        ename = "sparql-mode";
+        version = "4.0.2";
+        src = fetchFromGitHub {
+          owner = "ljos";
+          repo = "sparql-mode";
+          rev = "2837b97244111515c61fb3823c1479bc126a458b";
+          sha256 = "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sparql-mode";
+          sha256 = "1xicrfmgxpb31lz30qj450w8v7dl4ipjp7b2wz54s4kn88nsfj7d";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sparql-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    speech-tagger = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "speech-tagger";
+        ename = "speech-tagger";
+        version = "0.0.0";
+        src = fetchFromGitHub {
+          owner = "cosmicexplorer";
+          repo = "speech-tagger";
+          rev = "f5b9d4c0bca82dec6b70a2d6ec933cd189ef553a";
+          sha256 = "0jcax2867nps9xfb85xwz7zx9mlfgxmkmw6nprivmm1hd3wm8dpd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/speech-tagger";
+          sha256 = "0sqil949ny9qjxq7kpb4zmjd7770r0qvq4sz80agw6a27mqnaajc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/speech-tagger";
+          license = lib.licenses.free;
+        };
+      }) {};
+    speed-type = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "speed-type";
+        ename = "speed-type";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "parkouss";
+          repo = "speed-type";
+          rev = "f87399c523a2d0c6c98549f507006f1313d9cd6c";
+          sha256 = "069rc8fjh5ic7b66x1gxfss4vki6j1pcvqjs8680wj3mxw5vbfw1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/speed-type";
+          sha256 = "0lsbi3b6v7fiwpvydgwcqx3y5i7bysfjammly22qpz3kcjmlvi06";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/speed-type";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sphinx-doc = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , s }:
+      melpaBuild {
+        pname = "sphinx-doc";
+        ename = "sphinx-doc";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "naiquevin";
+          repo = "sphinx-doc.el";
+          rev = "b3459ecb9e6d3fffdee3cb7342563a56a32ce666";
+          sha256 = "1q6v0xfdxm57lyj4zxyqv6n5ik5w9drk7yf9w8spb5r22jg0dg8c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sphinx-doc";
+          sha256 = "00h3wx2p5hzbw6sggggdrzv4jrn1wc051iqql5y2m1hsh772ic5z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib s ];
+        meta = {
+          homepage = "https://melpa.org/#/sphinx-doc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sphinx-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "sphinx-mode";
+        ename = "sphinx-mode";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "sphinx-mode";
+          rev = "3d6e3059350593dc077f06f54c33869b9e28f7bc";
+          sha256 = "0l3a8swmf3sm54ayk2ahh1i5j1hf0hd822dfmx50kgwi4wpv48sp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sphinx-mode";
+          sha256 = "0f5xkaqsmxc4bfz80njlc395dcw2dbvmzx6h9fw31mylshzbmrys";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sphinx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    splitjoin = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "splitjoin";
+        ename = "splitjoin";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-splitjoin";
+          rev = "7e3a37e6700cda6a7ed6e3f1b97b85704c071f89";
+          sha256 = "1bir7vvvd2zx2rf79cnmry30hi5xdn92yzg926mahfjdksbh2rhx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/splitjoin";
+          sha256 = "0l1x98fvvia8qx8g125h4d76slv0xnb3h1zxiq9xb5qh7a1h069l";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/splitjoin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    spotify = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "spotify";
+        ename = "spotify";
+        version = "0.3.4";
+        src = fetchFromGitHub {
+          owner = "remvee";
+          repo = "spotify-el";
+          rev = "29577cf1188161f98b8358c149aaf47b2c137902";
+          sha256 = "0h6yhfvvyd9sd5d37d3ng3z56zfb546vl95qjq16kcvxq00hdn1v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/spotify";
+          sha256 = "07y6d3cz3nziasza3znysvcnx3kw156ab78kw5y0pdll45nw210x";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/spotify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sprintly-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , furl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "sprintly-mode";
+        ename = "sprintly-mode";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "sprintly";
+          repo = "sprintly-mode";
+          rev = "6695892bae5860b5268bf3ae62be990ee9b63c11";
+          sha256 = "06rk07h92s5sljprs41y3q31q64cprx9kgs56c2j6v4c8cmsq5h6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sprintly-mode";
+          sha256 = "15i3rrv27ccpn12wwj9raaxpj7nlnrrj3lsp8vdfwph6ydvnfza4";
+          name = "recipe";
+        };
+        packageRequires = [ furl ];
+        meta = {
+          homepage = "https://melpa.org/#/sprintly-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sprunge = callPackage ({ cl-lib ? null
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , request }:
+      melpaBuild {
+        pname = "sprunge";
+        ename = "sprunge";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "tomjakubowski";
+          repo = "sprunge.el";
+          rev = "0fd386b8b29c4175022a04ad70ea5643185b6726";
+          sha256 = "03wjzk1ljclfjgqzkg6m7v8saaajgavyd0xskd8fg8rdkx13ki0l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sprunge";
+          sha256 = "199vfl6i881aks8fi9d9w4w7mnc7n443h79p3s4srcpmbyfg6g3w";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib request ];
+        meta = {
+          homepage = "https://melpa.org/#/sprunge";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sql-impala = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "sql-impala";
+        ename = "sql-impala";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "jterk";
+          repo = "sql-impala";
+          rev = "68248e9851b153850542ed1f709298bb9ab59610";
+          sha256 = "12zyw8b8s3jga560wv141gc4yvlbldvfcmpibns8wrpx2w8aivfj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sql-impala";
+          sha256 = "1mh36ycqgr07r0hknkr6vb4k0r5b2h8bqd7m5faz9p56qbisgvvh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sql-impala";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sqlformat = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sqlformat";
+        ename = "sqlformat";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "sqlformat";
+          rev = "b70b05bf469a27c1a2940eeaa1a5c8cc93d805fd";
+          sha256 = "14n2yjmi4ls8rmpvvw6d7cz5f6dcg7laaljxnhwbagfd5j4sdfrm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sqlformat";
+          sha256 = "07lf2gx629429b41qr04gl98gplb538gb5hw7idzrmi3higrmv8m";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sqlformat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sqlup-mode = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "sqlup-mode";
+        ename = "sqlup-mode";
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "Trevoke";
+          repo = "sqlup-mode.el";
+          rev = "04970977b4abb4d44301651618bbf1cdb0b263dd";
+          sha256 = "14s66xrabj269z7f94iynsla96bka7zac011psrbcfyy4m8mlamz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sqlup-mode";
+          sha256 = "0ngs58iri3fwv5ny707kvb6xjq98x19pzak8c9nq4qnpw3nkr83b";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sqlup-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sr-speedbar = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "sr-speedbar";
+        ename = "sr-speedbar";
+        version = "20140914.2339";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "sr-speedbar";
+          rev = "4f816528a32eb421197a768d6dcf3a05de83f642";
+          sha256 = "1x9wizd0fzcmpf8ff7c3rcfxk64diy9jmzzvxa7d5a3k8vvpdhg3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sr-speedbar";
+          sha256 = "1v90jbqdw39yrfcsnyqas8c5g09rcf1db65q2m2rw7rik8cgb052";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sr-speedbar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    srcery-theme = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "srcery-theme";
+        ename = "srcery-theme";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "srcery-colors";
+          repo = "srcery-emacs";
+          rev = "0114420262f5e76cdc63f333d00522229aa77732";
+          sha256 = "1am3nxa9n0irzw0mrb93lmppmw9d5c2yjfgpipvcvwsij3g6k2aj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/srcery-theme";
+          sha256 = "1bnvf9v7g2mpx8519lh73fphhr4cqd33qlw22qyxnqiz5cz93lsp";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/srcery-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    srefactor = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "srefactor";
+        ename = "srefactor";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "tuhdo";
+          repo = "semantic-refactor";
+          rev = "ecd40713f736b243285c07f4cfd77113794d4f9f";
+          sha256 = "0wx8l8gkh8rbf2g149f35gpnmkk45s9x4r844aqw5by4zkvix4rc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/srefactor";
+          sha256 = "01cd40jm4h00c5q2ix7cskp7klbkcd3n5763y5lqfv59bjxwdqd2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/srefactor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    srv = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "srv";
+        ename = "srv";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "legoscia";
+          repo = "srv.el";
+          rev = "b1eb7b109bc1c616dbf027429a90dc3b1a4263f1";
+          sha256 = "05kp8ajbqk7vxzkv23akyk2m7yg81pbrxpl3dsw67101sjazsybi";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/srv";
+          sha256 = "0xrgbi63vg0msxkcmcnvijkxa9y0s7613liqac7fs9514yvkbwin";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/srv";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ssass-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ssass-mode";
+        ename = "ssass-mode";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "ssass-mode";
+          rev = "5f36a169a1ad497f1d7a465be386ffb5e1f80bcf";
+          sha256 = "1n1q26p52i6c6i8svkr0bn91hliqm540y1fcz3jci8w2ws0s5x11";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ssass-mode";
+          sha256 = "07aym4a7l70f1lb6yvwxkhsykrwbf0lcpwlwgcn5n44kavvdbzxm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ssass-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ssh-agency = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ssh-agency";
+        ename = "ssh-agency";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "ssh-agency";
+          rev = "d9dbedd773ad3a831e02e162c47936d6814a850a";
+          sha256 = "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ssh-agency";
+          sha256 = "1b25fl1kk4mwsd25pg9s0lazlpmaa6s9wnfgvlqk8k65d7p7idzz";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ssh-agency";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ssh-deploy = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "ssh-deploy";
+        ename = "ssh-deploy";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "cjohansson";
+          repo = "emacs-ssh-deploy";
+          rev = "b13ba60ea175798cfd1395ab833082789724073d";
+          sha256 = "0fgcxvs2ngv65chnkb9w5rrak187xkwxiwmpc25iqvrrnrfr43s6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ssh-deploy";
+          sha256 = "1ys3cc5fz8y4rsiq3daqgcpa14ssv1q4cw0pqbfscql6mps0mjdm";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ssh-deploy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stan-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "stan-mode";
+        ename = "stan-mode";
+        version = "9.2.0";
+        src = fetchFromGitHub {
+          owner = "stan-dev";
+          repo = "stan-mode";
+          rev = "45b8242611fe0437fcff48f5f4f7d8f0552531ac";
+          sha256 = "14yv57grsw3zyjcqasaanx8g2skix0i3w1f5r1fng3sgwclwbkdw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stan-mode";
+          sha256 = "17ph5khwwrcpyl96xnp3rsbmnk7mpwmgskxka3cfgkm190qihfqy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stan-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stan-snippets = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , stan-mode
+                                 , yasnippet }:
+      melpaBuild {
+        pname = "stan-snippets";
+        ename = "stan-snippets";
+        version = "9.2.0";
+        src = fetchFromGitHub {
+          owner = "stan-dev";
+          repo = "stan-mode";
+          rev = "45b8242611fe0437fcff48f5f4f7d8f0552531ac";
+          sha256 = "14yv57grsw3zyjcqasaanx8g2skix0i3w1f5r1fng3sgwclwbkdw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stan-snippets";
+          sha256 = "021skkvak645483s7haz1hsz98q3zd8hqi9k5zdzaqlabwdjwh85";
+          name = "recipe";
+        };
+        packageRequires = [ stan-mode yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/stan-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stash = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "stash";
+        ename = "stash";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "stash.el";
+          rev = "638ae8a4f6d33af54fe77d57c2c0eb1800dd2e19";
+          sha256 = "0igqifws73cayvjnhhrsqpy14sr27avymfhaqzrpj76m2fsh6fj4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stash";
+          sha256 = "116k40ispv7sq3jskwc1lvmhmk3jjz4j967r732s07f5h11vk1z9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stash";
+          license = lib.licenses.free;
+        };
+      }) {};
+    status = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "status";
+        ename = "status";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "tromey";
+          repo = "emacs-status";
+          rev = "b62c74bf272566f82a68622f29fb9edafea0f241";
+          sha256 = "0jpxmzfvg4k5q3h3gn6lrg891wjzlcps2kkij1jbdjk4jkgq386i";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/status";
+          sha256 = "0a9lqa7a5nki5711bjrmx214kah5ndqpwh3i240gdd08mcm07ps3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/status";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stgit = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "stgit";
+        ename = "stgit";
+        version = "0.19";
+        src = fetchFromGitHub {
+          owner = "ctmarinas";
+          repo = "stgit";
+          rev = "a29fc8873fca30cb5b13d94743a9010de28e2610";
+          sha256 = "1xhxba0m78zx00m55y125bs1zxibyg7d9nw8xw9gqyshcncjffpg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stgit";
+          sha256 = "1gbr0pvvig2vg94svy1r6zp57rhyg6n9yp7qvlkfal1z2lhzhs0g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stgit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    string-edit = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "string-edit";
+        ename = "string-edit";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "string-edit.el";
+          rev = "9f9c9cd659156fd2217be814eb4e91da48d44647";
+          sha256 = "15gdcpbba3h84s7xnpk69nav6bixdixnirdh5n1rly010q0m5s5x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/string-edit";
+          sha256 = "1l1hqsfyi6pp4x4g1rk4s7x9zjc03wfmhy16izia8nkjhzz88fi8";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/string-edit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    string-inflection = callPackage ({ fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild }:
+      melpaBuild {
+        pname = "string-inflection";
+        ename = "string-inflection";
+        version = "1.0.10";
+        src = fetchFromGitHub {
+          owner = "akicho8";
+          repo = "string-inflection";
+          rev = "9b08372301e3c5f91cb278ee0e00a48845a42cb6";
+          sha256 = "0j3ms2cxbv24kr27r2jhzxpdih6w43gjdkm3sqd28c28ycab8d4b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/string-inflection";
+          sha256 = "1vrjcg1fa5adw16s4v9dq0fid0gfazxk15z9cawz0kmnpyzz3fg2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/string-inflection";
+          license = lib.licenses.free;
+        };
+      }) {};
+    string-utils = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , list-utils
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "string-utils";
+        ename = "string-utils";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "string-utils";
+          rev = "3ae530143899f533a9ef5e1f26f28b577ebe72ee";
+          sha256 = "03azfs6z0jg66ppalijcxl973vdbhj4c3g84sm5dm8xv6rnxrv2s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/string-utils";
+          sha256 = "1vsvxc06fd3wardldb83i5hjfibvmiqnxvcgdns7i5i8qlsrsx4v";
+          name = "recipe";
+        };
+        packageRequires = [ list-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/string-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stripe-buffer = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "stripe-buffer";
+        ename = "stripe-buffer";
+        version = "0.2.5";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "stripe-buffer";
+          rev = "d9f009b92cf16fe2c40cd92b8f842a3872e6c190";
+          sha256 = "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stripe-buffer";
+          sha256 = "1kjib1kf9xqdirryr16wlvc95701hq8s4h8hz4dqzg3wzyb8287b";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/stripe-buffer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stumpwm-mode = callPackage ({ fetchgit
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "stumpwm-mode";
+        ename = "stumpwm-mode";
+        version = "0.9.8";
+        src = fetchgit {
+          url = "https://git.savannah.nongnu.org/git/stumpwm.git";
+          rev = "a920d31bac148e7f6afa98c05f98920135de8b89";
+          sha256 = "0hg2dhgph1fz8z6c79ia2j36wnbqgi6a7fjiz3wngslhbwy28xq7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stumpwm-mode";
+          sha256 = "11yk7xmmccgv7hin5qd1ibcsm1za01xfwsxa25q7vqwk6svnb0sf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/stumpwm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    stylus-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , sws-mode }:
+      melpaBuild {
+        pname = "stylus-mode";
+        ename = "stylus-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "brianc";
+          repo = "jade-mode";
+          rev = "73893e8d8f1bcaf9f0252c6f020cdb3741d7125c";
+          sha256 = "0fiihkwq4s8lkqx5fp3csmnaf0blnm6kpl4hfkwsb8rywgvzh7lk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/stylus-mode";
+          sha256 = "152k74q6qn2xa38v2zyd5y7ya5n26nvai5v7z5fmq7jrcndp27r5";
+          name = "recipe";
+        };
+        packageRequires = [ sws-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/stylus-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    subatomic-theme = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "subatomic-theme";
+        ename = "subatomic-theme";
+        version = "1.8.1";
+        src = fetchFromGitHub {
+          owner = "cryon";
+          repo = "subatomic";
+          rev = "6a4086af748b1ecb27f6ba2aa2614988db16d594";
+          sha256 = "1j63rzxnrzzqizh7fpd99dcgsy5hd7w4d2lpwl5armmixlycl5m8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/subatomic-theme";
+          sha256 = "0mqas67qms492n3hn74c5nrkjpsgf9b42lp02s2dh366c075dpqc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/subatomic-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    subemacs = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "subemacs";
+        ename = "subemacs";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "kbauer";
+          repo = "subemacs";
+          rev = "c053ccae8b1d5317651f131a63210eb20f590c93";
+          sha256 = "0jfdw6i3qjsil0myhrddqchg39vrnd94qci4k1z37k2323vszy3m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/subemacs";
+          sha256 = "0sqh80jhh3v37l5af7w6k9lqvj39bd91pn6a9rwdlfk389hp90zm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/subemacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sublimity = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sublimity";
+        ename = "sublimity";
+        version = "20160629";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "sublimity";
+          rev = "ee9c9fbb92b8fc0c191e5e8640477e251b602bf9";
+          sha256 = "1kpq7kpmhgq3vjd62rr4qsc824qcyjxm50m49r7invgnmgd78h4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sublimity";
+          sha256 = "1xwggaalad65cxcfvmy30f141bxhpzc3fgvwziwbzi8fygbdv4nw";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sublimity";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sudden-death = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "sudden-death";
+        ename = "sudden-death";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "yewton";
+          repo = "sudden-death.el";
+          rev = "791a63d3f4df192e71f4232a9a4c5588f4b43dfb";
+          sha256 = "0z3adwd6ymapkdniny3ax2i3wzxp11g6in4bghbcr9bfdxcsf7ps";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sudden-death";
+          sha256 = "1wrhb3d27j07i64hvjggyajm752w4mhrhq09lfvyhz6ykp1ly3fh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sudden-death";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sudo-edit = callPackage ({ cl-lib ? null
+                             , emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "sudo-edit";
+        ename = "sudo-edit";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "nflath";
+          repo = "sudo-edit";
+          rev = "bcb12aaa0da0c56d851cfa2f1b3ea4afdd2a755b";
+          sha256 = "1k6sx8k304dw9dlidnxcln9ip9cj3b6i196z98g9n0kcd1js9f99";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sudo-edit";
+          sha256 = "10vz7q8m0l2dyhiy9r9nj17qlwyv032glshzljzhm1n20w8y1fq4";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/sudo-edit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    suggest = callPackage ({ dash
+                           , emacs
+                           , f
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , loop
+                           , melpaBuild
+                           , s
+                           , spinner }:
+      melpaBuild {
+        pname = "suggest";
+        ename = "suggest";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "Wilfred";
+          repo = "suggest.el";
+          rev = "31ab6c956d17176affbbe9ca53c416920180ddbd";
+          sha256 = "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/suggest";
+          sha256 = "12vvakqqzmmqq5yynpd4wf4lnb0yvcnz065kni996sy7rv7rh83q";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f loop s spinner ];
+        meta = {
+          homepage = "https://melpa.org/#/suggest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    suomalainen-kalenteri = callPackage ({ fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild }:
+      melpaBuild {
+        pname = "suomalainen-kalenteri";
+        ename = "suomalainen-kalenteri";
+        version = "2017.8.1";
+        src = fetchFromGitHub {
+          owner = "tlikonen";
+          repo = "suomalainen-kalenteri";
+          rev = "c702e33cb6e13cb28bd761844e95be112a3c04f3";
+          sha256 = "13avc3ba6vhysmhrcxfpkamggfpal479gn7k9n7509dpwp06dv8h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/suomalainen-kalenteri";
+          sha256 = "1wzijbgcr3jc47ccr7nrdkqha16s6gw0xiccnmdczi48cvnvvlkh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/suomalainen-kalenteri";
+          license = lib.licenses.free;
+        };
+      }) {};
+    super-save = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "super-save";
+        ename = "super-save";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "super-save";
+          rev = "62512f60d6685d8601e2021d95e77603b6d96885";
+          sha256 = "0cn39d1qfm119bxb9sdl43ya2vvadfp22qwdn3j843wyf92hpdn4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/super-save";
+          sha256 = "0ikfw7n2rvm3xcgnj1si92ly8w75x26071ki551ims7a8sawh52p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/super-save";
+          license = lib.licenses.free;
+        };
+      }) {};
+    svg-mode-line-themes = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , xmlgen }:
+      melpaBuild {
+        pname = "svg-mode-line-themes";
+        ename = "svg-mode-line-themes";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "sabof";
+          repo = "svg-mode-line-themes";
+          rev = "80a0e01839cafbd66899202e7764c33231974259";
+          sha256 = "14h40s0arc2i898r9yysn256z6l8jkrnmqvrdg7p7658c0klz5ic";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/svg-mode-line-themes";
+          sha256 = "12lnszcb9bl32n9wir7vf8xiyyv7njw4xg21aj9x4dasmidyx506";
+          name = "recipe";
+        };
+        packageRequires = [ xmlgen ];
+        meta = {
+          homepage = "https://melpa.org/#/svg-mode-line-themes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swagger-to-org = callPackage ({ cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , json ? null
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "swagger-to-org";
+        ename = "swagger-to-org";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "ahungry";
+          repo = "swagger-to-org";
+          rev = "181357c71ea24bede263f5706d8781ad65e16877";
+          sha256 = "0x1mxxvlhhs34j869cy68gy5pgmvpfliyl9vlrlwm3z8apbip9gp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swagger-to-org";
+          sha256 = "1m40f5njxcxmc2snaz2q43b4scwgp51y761kq6klixjvafi0pv86";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/swagger-to-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sweetgreen = callPackage ({ cl-lib ? null
+                              , dash
+                              , fetchFromGitHub
+                              , fetchurl
+                              , helm
+                              , lib
+                              , melpaBuild
+                              , request }:
+      melpaBuild {
+        pname = "sweetgreen";
+        ename = "sweetgreen";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "CestDiego";
+          repo = "sweetgreen.el";
+          rev = "e40d2821ff941695e50a9b003a8c96d32c19bfdc";
+          sha256 = "1gw09x5d4yqlmknjsrhgygp9bch315cnmyqp3679i3hza0l7fds6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sweetgreen";
+          sha256 = "1v75wk0gq5fkz8i1r8pl4gqnxbv1d80isyn48w2hxj2fmdn2xhpy";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash helm request ];
+        meta = {
+          homepage = "https://melpa.org/#/sweetgreen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swift-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , seq }:
+      melpaBuild {
+        pname = "swift-mode";
+        ename = "swift-mode";
+        version = "7.0.1";
+        src = fetchFromGitHub {
+          owner = "swift-emacs";
+          repo = "swift-mode";
+          rev = "fc718a5d48a4fc16e8be1c4bde65bb11cd107a09";
+          sha256 = "0dbid9djal6xrigcbmvfvagjh9rpk7vjywivjgc7qpa6hynhqxmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swift-mode";
+          sha256 = "103nix9k2agxgfpwyhsracixl4xvzqlgidd25r1fpj679hr42bg8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/swift-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swift3-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "swift3-mode";
+        ename = "swift3-mode";
+        version = "2.1.1";
+        src = fetchFromGitHub {
+          owner = "taku0";
+          repo = "swift3-mode";
+          rev = "ea34d46bf9a4293e75ffdac9500d34989316d9e9";
+          sha256 = "1hwc3fxv87hmw0a0mgl8khfzf1p7yp2izkc02z8f1vbkaibmmawp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swift3-mode";
+          sha256 = "14vm05p8ix09v73dkmf03i56yib8yk6h2r1zc9m4ym80fki4f520";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/swift3-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swiper = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , ivy
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "swiper";
+        ename = "swiper";
+        version = "0.10.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper";
+          rev = "4a2cee03519f98cf95b29905dec2566a39ff717e";
+          sha256 = "14vnigqb5c3yi4q9ysw1fiwdqyqwyklqpb9wnjf81chm7s2mshnr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swiper";
+          sha256 = "0qaia5pgsjsmrfmcdj72jmj39zq82wg4i5l2mb2z6jlf1jpbk6y9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ivy ];
+        meta = {
+          homepage = "https://melpa.org/#/swiper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    swiper-helm = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , helm
+                               , lib
+                               , melpaBuild
+                               , swiper }:
+      melpaBuild {
+        pname = "swiper-helm";
+        ename = "swiper-helm";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "swiper-helm";
+          rev = "93fb6db87bc6a5967898b5fd3286954cc72a0008";
+          sha256 = "05n4h20lfyg1kis5rig72ajbz680ml5fmsy6l1w4g9jx2xybpll2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/swiper-helm";
+          sha256 = "011ln6vny7z5vw67cpzldxf5n6sk2hjdkllyf7v6sf4m62ws93ph";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/swiper-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    switch-buffer-functions = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "switch-buffer-functions";
+        ename = "switch-buffer-functions";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "switch-buffer-functions-el";
+          rev = "701caf97c977903c9afae6ef305241d068c5d9ac";
+          sha256 = "1j6m3alk6y31zkq8h3fkha39fnvad7wmpa7kj4cwva0r5cd40l5a";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/switch-buffer-functions";
+          sha256 = "1b93p8q07zncqq3nw829gddc615rwaan1ds5vgfhdb1l7bh9f37l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/switch-buffer-functions";
+          license = lib.licenses.free;
+        };
+      }) {};
+    switch-window = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "switch-window";
+        ename = "switch-window";
+        version = "1.6.1";
+        src = fetchFromGitHub {
+          owner = "dimitri";
+          repo = "switch-window";
+          rev = "40565f7bdf11e86d882185fa4c4ec77b96dcc21c";
+          sha256 = "047qx4vk86b9jbvv5w477215mkmqpdwl5wd4n9fhp5xjni11jnhx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/switch-window";
+          sha256 = "02f0zjvlzms66w1ryhk1cbr4rqwklzvgcjfiicj0lcnqqx61m2k2";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/switch-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sws-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "sws-mode";
+        ename = "sws-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "brianc";
+          repo = "jade-mode";
+          rev = "03486dce6990c96e85e53c18b8fcb35fbb8509f5";
+          sha256 = "10w73i4sh6mn108lcnm6sv4xr1w0avbfw05kid28c33583h80vpm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sws-mode";
+          sha256 = "0b12dsad0piih1qygjj0n7rni0pl8cizbzwqm9h1dr8imy53ak4i";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/sws-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    sx = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , json ? null
+                      , let-alist
+                      , lib
+                      , markdown-mode
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "sx";
+        ename = "sx";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "vermiculus";
+          repo = "sx.el";
+          rev = "4892f45746fb217d059f4fa074a237c5bac7dd6c";
+          sha256 = "02f63k8rzb3bcch6vj6w5c5ncccqg83siqnc8hyi0lhy1bfx240p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/sx";
+          sha256 = "1ml1rkhhk3hkd16ij2zwng591rxs2yppsfq9gwd4ppk02if4v517";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json let-alist markdown-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/sx";
+          license = lib.licenses.free;
+        };
+      }) {};
+    symbol-overlay = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "symbol-overlay";
+        ename = "symbol-overlay";
+        version = "4.1";
+        src = fetchFromGitHub {
+          owner = "wolray";
+          repo = "symbol-overlay";
+          rev = "d1464042783e252f5cac1fcac82fee16fc3534db";
+          sha256 = "0d5ir4f3xmz3kr0w93zw45ha4hzz4rvldiza3q9fmqm7m1w2c995";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/symbol-overlay";
+          sha256 = "1al60x2mnjsv99jd10v5sd56zz185wsddiq7128phf1l35bkibis";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/symbol-overlay";
+          license = lib.licenses.free;
+        };
+      }) {};
+    symbolword-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "symbolword-mode";
+        ename = "symbolword-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "ncaq";
+          repo = "symbolword-mode";
+          rev = "14a2e4429229d073d48d77c81b3551d60256c545";
+          sha256 = "1p92xxclzyfpxl3g12s3651y5rx4a6hf9zy232mxzlxjy0adic2v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/symbolword-mode";
+          sha256 = "1fs1irnmlbrn76b4gdsy0v65nz8av85iqm0b7g9nm2rm8azcr050";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/symbolword-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    symon = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "symon";
+        ename = "symon";
+        version = "20160630";
+        src = fetchFromGitHub {
+          owner = "zk-phi";
+          repo = "symon";
+          rev = "7beeedd70dc37f5904c781fb697c8df056196ee9";
+          sha256 = "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/symon";
+          sha256 = "11llnvngyc3xz8nd6nj86ism0hhs8p54wkscvs4yycbakbyn61lz";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/symon";
+          license = lib.licenses.free;
+        };
+      }) {};
+    syndicate = callPackage ({ evil
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "syndicate";
+        ename = "syndicate";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "KNX32542";
+          repo = "syndicate";
+          rev = "38b78e18442b1fd028ef3c44053c97bd6020a5b8";
+          sha256 = "0iycq74liddjgah9xhb562rr7a8s2c99mbw22r34gvl7rqhn6c2j";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/syndicate";
+          sha256 = "06nmldcw5dy2shhpk6nyix7gs57gsr5s9ksj57xgg8y2j3j0da95";
+          name = "recipe";
+        };
+        packageRequires = [ evil ];
+        meta = {
+          homepage = "https://melpa.org/#/syndicate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    synosaurus = callPackage ({ cl-lib ? null
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "synosaurus";
+        ename = "synosaurus";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "hpdeifel";
+          repo = "synosaurus";
+          rev = "93f8e0bdddc94426730bfcdf736522e378af508f";
+          sha256 = "0gq9gq3a2x7ysmxil4fg6srnm424digpfp8gc2iqvhkdrhmygg3y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/synosaurus";
+          sha256 = "06a48ajpickf4qr1bc14skfr8khnjjph7c35b7ajfy8jw2zwavpn";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/synosaurus";
+          license = lib.licenses.free;
+        };
+      }) {};
+    syntactic-sugar = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "syntactic-sugar";
+        ename = "syntactic-sugar";
+        version = "0.9.4";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "syntactic-sugar";
+          rev = "06d943c6ad9507603bb6ab6d37be2d359d0763a9";
+          sha256 = "1pn69f4w48jdj3wd1myj6qq2mhvygmlzbq2dws2qkjlp3kbwa6da";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/syntactic-sugar";
+          sha256 = "12b2vpvz5h4wzxrk8jrbgc8v0w6bzzvxcyfs083fi1791qq1rw7r";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/syntactic-sugar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    syntax-subword = callPackage ({ fetchhg
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "syntax-subword";
+        version = "0.2";
+        src = fetchhg {
+          url = "https://bitbucket.com/jpkotta/syntax-subword";
+          rev = "ad0db0fcb464";
+          sha256 = "1wcgr6scvwwfmhhjbpq3riq0gmp4g08ffbl91fpgp72j8zrc1c6x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/syntax-subword";
+          sha256 = "1as89ffqz2h69fdwybgs5wibnrvskm7hd58vagfjkla9pjlpffpm";
+          name = "syntax-subword";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/syntax-subword";
+          license = lib.licenses.free;
+        };
+      }) {};
+    system-packages = callPackage ({ emacs
+                                   , fetchFromGitLab
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "system-packages";
+        ename = "system-packages";
+        version = "1.0.8";
+        src = fetchFromGitLab {
+          owner = "jabranham";
+          repo = "system-packages";
+          rev = "41933fbfdfdc6323d8d240f623a4cb167f6b6f6f";
+          sha256 = "05pqp0k66l24mfclgkbii8i09xx4cm7qyf6l1y1l72b2zj25qp7y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/system-packages";
+          sha256 = "13nk3m8gw9kqjllk7hgkmpxsx9y5h03f0l7zydg388wc7cxsiy3l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/system-packages";
+          license = lib.licenses.free;
+        };
+      }) {};
+    system-specific-settings = callPackage ({ fetchFromGitHub
+                                            , fetchurl
+                                            , lib
+                                            , melpaBuild }:
+      melpaBuild {
+        pname = "system-specific-settings";
+        ename = "system-specific-settings";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "emacs-system-specific-settings";
+          rev = "0050d85b2175095aa5ecf580a2fe43c069b0eef3";
+          sha256 = "1hixilnnybv2v3p1wpn7a0ybwah17grawszs3jycsjgzahpgckv7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/system-specific-settings";
+          sha256 = "1ydmxi8aw2lf78wv4m39yswbqkmcadqg0wmzg9s8b5h9bxxwvppp";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/system-specific-settings";
+          license = lib.licenses.free;
+        };
+      }) {};
+    systemd = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "systemd";
+        ename = "systemd";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "holomorph";
+          repo = "systemd-mode";
+          rev = "1e7567a9973bf80cab0d7e0355656a84bee7ca96";
+          sha256 = "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/systemd";
+          sha256 = "1ykvm8mfi3fjvrkfcy9qn0sr9mhwm9x1svrmrd0gyqk418clk5i3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/systemd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ta = callPackage ({ cl-lib ? null
+                      , emacs
+                      , fetchFromGitHub
+                      , fetchurl
+                      , lib
+                      , melpaBuild }:
+      melpaBuild {
+        pname = "ta";
+        ename = "ta";
+        version = "1.5";
+        src = fetchFromGitHub {
+          owner = "kuanyui";
+          repo = "ta.el";
+          rev = "9226afbe7abbefb825844ef3ba4ca15f1934cfc2";
+          sha256 = "09nndx83ws5v2i9x0dzk6l1a0lq29ffzh3y05n0n64nf5j0a7zvk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ta";
+          sha256 = "0kn2k4n0xfwsrniaqb36v3rxj2pf2sai3bmjksbn1g2kf5g156ll";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/ta";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tabbar = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "tabbar";
+        ename = "tabbar";
+        version = "2.2";
+        src = fetchFromGitHub {
+          owner = "dholm";
+          repo = "tabbar";
+          rev = "82bbda31cbe8ef367dd6501c3aa14b7f2c835910";
+          sha256 = "01sw76wp8bvh21h30pkc3kjr98c8m6qid6misk1y7hkyld0bzxay";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tabbar";
+          sha256 = "1y376nz1xmchwns4fz8dixbb7hbqh4mln78zvsh7y32il98wzvx9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tabbar";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tabbar-ruler = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , tabbar }:
+      melpaBuild {
+        pname = "tabbar-ruler";
+        ename = "tabbar-ruler";
+        version = "0.45";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "tabbar-ruler.el";
+          rev = "7df2e4814018e84ef9261d04a2ade8168a44e3d7";
+          sha256 = "1xd67s92gyr49v73j7r7cbhsc40bkw8aqh21whgbypdgzpyc7azc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tabbar-ruler";
+          sha256 = "10dwjj6r74g9rzdd650wa1wxhqc0q6dmff4j0qbbhmjsxvsr3y0d";
+          name = "recipe";
+        };
+        packageRequires = [ tabbar ];
+        meta = {
+          homepage = "https://melpa.org/#/tabbar-ruler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tablist = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "tablist";
+        ename = "tablist";
+        version = "0.70";
+        src = fetchFromGitHub {
+          owner = "politza";
+          repo = "tablist";
+          rev = "ef38312867bc0268b1584dd890b1c420bb77ec11";
+          sha256 = "0gy9hxm7bca0l1hfy2pzn86avpifrz3bs8xzpicj4kxw5wi4ygns";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tablist";
+          sha256 = "0c10g86xjhzpmc2sqjmzcmi393qskyw6d9bydqzjk3ffjzklm45p";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tablist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tagedit = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s }:
+      melpaBuild {
+        pname = "tagedit";
+        ename = "tagedit";
+        version = "1.4.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "tagedit";
+          rev = "3fcf54b824b75c5ad68f5438d5638103049a389f";
+          sha256 = "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tagedit";
+          sha256 = "0vfkbrxmrw4fwdz324s734zxdxm2nj3df6i8m6lgb9pizqyp2g6z";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/tagedit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tao-theme = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "tao-theme";
+        ename = "tao-theme";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "11111000000";
+          repo = "tao-theme-emacs";
+          rev = "af142b423536b47bce67afda5108dbf3a9317521";
+          sha256 = "1fs4rhb4g7s7x3cvqv9d2x5f3079z2hkmp5lns7qfziszkc9fxia";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tao-theme";
+          sha256 = "0gl6zzk5ha6vl2xxf5fcnv1k42cw4axdjdcirr1c4r8jwdq3nl3a";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tao-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tawny-mode = callPackage ({ cider
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "tawny-mode";
+        ename = "tawny-mode";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "phillord";
+          repo = "tawny-owl";
+          rev = "9f11bb428a255a605c725dfbd23cc082c5d258af";
+          sha256 = "0l419pvvnj850c6byr7njnjki171mcsvlqj8g2d4qk16j504n34m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tawny-mode";
+          sha256 = "1xaw1six1n6rw1283fdyl15xcf6m7ngvq6gqlz0xzpf232c4b0kr";
+          name = "recipe";
+        };
+        packageRequires = [ cider emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tawny-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tdd-status-mode-line = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "tdd-status-mode-line";
+        ename = "tdd-status-mode-line";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "algernon";
+          repo = "tdd-status-mode-line";
+          rev = "9b3c35b0a972772640e9fee653eab6a76e06416a";
+          sha256 = "0bvxc926kaxvqnppaw4y6gp814qc0krvidn5qg761z4qwz023rax";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tdd-status-mode-line";
+          sha256 = "1i0s7f4y4v8681mymcmjlcbq0jfghgmdzrs167c453mb5ssz8yxg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tdd-status-mode-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    telepathy = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "telepathy";
+        ename = "telepathy";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "telepathy.el";
+          rev = "211d785b02a29ddc254422fdcc3db45262582f8c";
+          sha256 = "16kr1p4lzi1ysd5r2dh0mxk60zsm5fvwa9345nfyrgdic340yscc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/telepathy";
+          sha256 = "0c3d6vk7d6vqzjndlym2kk7d2zm0b15ac4142ir03p6f19rqq9pr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/telepathy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    telephone-line = callPackage ({ cl-generic
+                                  , cl-lib ? null
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , seq }:
+      melpaBuild {
+        pname = "telephone-line";
+        ename = "telephone-line";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "dbordak";
+          repo = "telephone-line";
+          rev = "a83dcda21b0f6e10e51c3cded7da9a5d2ead5f34";
+          sha256 = "1cg34l6jq75mcqnb3p93z0kv1arvnswm8nkk39fmryand2yygnl9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/telephone-line";
+          sha256 = "0dyh9h1yk9y0217b6rxsm7m372n910vpfgw5w23lkkrwa8x8qpx3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-generic cl-lib emacs seq ];
+        meta = {
+          homepage = "https://melpa.org/#/telephone-line";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ten-hundred-mode = callPackage ({ cl-lib ? null
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "ten-hundred-mode";
+        ename = "ten-hundred-mode";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "aaron-em";
+          repo = "ten-hundred-mode.el";
+          rev = "bdcfda49b1819e82d61fe90947e50bb948cf7933";
+          sha256 = "11nsh6dkd3i489lrqpd9xhr4c0ai51364rlrd6slm54720by9jql";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ten-hundred-mode";
+          sha256 = "17v38h33ka70ynq72mvma2chvlnm1k2amyvk62c65iv67rwilky3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/ten-hundred-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-alert = callPackage ({ alert
+                              , emacs
+                              , f
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , term-cmd }:
+      melpaBuild {
+        pname = "term-alert";
+        ename = "term-alert";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "CallumCameron";
+          repo = "term-alert";
+          rev = "47af9e6fe483ef0d393098c145f499362a33292a";
+          sha256 = "1nv8ma8x9xkgsl95z7yysy8q1lb3xr0pd8a5sb01nlx8ks3clad4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-alert";
+          sha256 = "02qvfhklysfk1fd4ibdngf4crp9k5ab11zgg90hi1sp429a53f3m";
+          name = "recipe";
+        };
+        packageRequires = [ alert emacs f term-cmd ];
+        meta = {
+          homepage = "https://melpa.org/#/term-alert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-cmd = callPackage ({ dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "term-cmd";
+        ename = "term-cmd";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "CallumCameron";
+          repo = "term-cmd";
+          rev = "6c9cbc659b70241d2ed1601eea34aeeca0646dac";
+          sha256 = "08qiipjsqc9dfbha6r2yijjbrg2s4i2mkn6zn5616086550v3kpj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-cmd";
+          sha256 = "0pbz9fy9rjfpzspwq78ggf1wcvjslwvj8fvc05w4g56ydza0gqi4";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/term-cmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-manager = callPackage ({ dash
+                                , emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "term-manager";
+        ename = "term-manager";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "term-manager";
+          rev = "bbf64e7d840bc60242dd1d4943f6f5acee1478c2";
+          sha256 = "1p11zrig6f01hyxx0adrz57i8zq4c61myiak3kd80v4j3aa8d7ng";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-manager";
+          sha256 = "0ab388ki7vr1wpz81bvbl2fskq9zz5bicdf5gqfg01qzv5l75iza";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/term-manager";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-projectile = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild
+                                   , projectile
+                                   , term-manager }:
+      melpaBuild {
+        pname = "term-projectile";
+        ename = "term-projectile";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "IvanMalison";
+          repo = "term-manager";
+          rev = "0bca2e7e3b6e906ec67696bc0be952988ca7f733";
+          sha256 = "0ybmszjb2lrgqp3zixpxy0lp2l9axw3mz2d4n2kmajh8ckbr576v";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-projectile";
+          sha256 = "1mzyzjxkdfvf1kq9m3c1f6y6xzj1qq53rixawmnzmil5cmznvwag";
+          name = "recipe";
+        };
+        packageRequires = [ projectile term-manager ];
+        meta = {
+          homepage = "https://melpa.org/#/term-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    term-run = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "term-run";
+        ename = "term-run";
+        version = "0.1.5";
+        src = fetchFromGitHub {
+          owner = "10sr";
+          repo = "term-run-el";
+          rev = "54650dbbabb13cb2a6c0670ff6b24b29717a6a8b";
+          sha256 = "149pl3zxg5kriydk5h6j95jyly6i23w4w4g4a99s4zi6ljiny6c6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/term-run";
+          sha256 = "1bx3s68rgr9slsw9k01gfg7sxd4z7sarg4pi2ivril7108mhg2cs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/term-run";
+          license = lib.licenses.free;
+        };
+      }) {};
+    termbright-theme = callPackage ({ emacs
+                                    , fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "termbright-theme";
+        ename = "termbright-theme";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "bmastenbrook";
+          repo = "termbright-theme-el";
+          rev = "bec6ab14336c0611e85f45486276004f16d20607";
+          sha256 = "0gfsqpza8phvma5y3ck0n6p197x1i33w39m3c7jmja4ml121n73d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/termbright-theme";
+          sha256 = "14q88qdbnyzxr8sr8i5glj674sb4150b9y6nag0dqrxs629is6xj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/termbright-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    terminal-here = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "terminal-here";
+        ename = "terminal-here";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "davidshepherd7";
+          repo = "terminal-here";
+          rev = "e176d1675dc5c41b6aebd05122fb2efc44b6cff0";
+          sha256 = "0dj3z8czvziszb20sizgf1yriv4im811rcfadm7ga9zs2al56kqy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/terminal-here";
+          sha256 = "1w64r3y88lspxxcqcqfwhakk8p9vl7q3z610dykfbqwqx61a6adj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/terminal-here";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tern = callPackage ({ cl-lib ? null
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , json ? null
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "tern";
+        ename = "tern";
+        version = "0.23.0";
+        src = fetchFromGitHub {
+          owner = "ternjs";
+          repo = "tern";
+          rev = "40a0c74db3888b997a9115720ff91c399bb1b146";
+          sha256 = "0dh0bfs0knikzn4gvjh9274yhbg3ndw46qmj4jy0kxh7gfl2lpkh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tern";
+          sha256 = "1am97ssslkyijpvgk4nldi67ws48g1kpj6gisqzajrrlw5q93wvd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs json ];
+        meta = {
+          homepage = "https://melpa.org/#/tern";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tern-auto-complete = callPackage ({ auto-complete
+                                      , cl-lib ? null
+                                      , emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , tern }:
+      melpaBuild {
+        pname = "tern-auto-complete";
+        ename = "tern-auto-complete";
+        version = "0.23.0";
+        src = fetchFromGitHub {
+          owner = "ternjs";
+          repo = "tern";
+          rev = "d545bbdd8482c231211f9521c688fc06632e745e";
+          sha256 = "0ribzvl5gs281chp2kqaqmjj9xji7k9l71hsblfw1vj2w9l7nw2m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tern-auto-complete";
+          sha256 = "1i99b4awph50ygcqsnppm1h48hbf8cpq1ppd4swakrwgmcy2mn26";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete cl-lib emacs tern ];
+        meta = {
+          homepage = "https://melpa.org/#/tern-auto-complete";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tern-context-coloring = callPackage ({ context-coloring
+                                         , emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , tern }:
+      melpaBuild {
+        pname = "tern-context-coloring";
+        ename = "tern-context-coloring";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "jacksonrayhamilton";
+          repo = "tern-context-coloring";
+          rev = "db0466c650ed4f7e6621a48dfdc53eaf5e127be9";
+          sha256 = "093mdq97gc0ljw6islhm7y1yl3yf7w4gf205s96bnsnb1v952n63";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tern-context-coloring";
+          sha256 = "0wkb7gn2ma6mz495bgphcjs5p0c6a869zk4a8mnm0spq41xbw4gi";
+          name = "recipe";
+        };
+        packageRequires = [ context-coloring emacs tern ];
+        meta = {
+          homepage = "https://melpa.org/#/tern-context-coloring";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tern-django = callPackage ({ emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild
+                               , tern }:
+      melpaBuild {
+        pname = "tern-django";
+        ename = "tern-django";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "proofit404";
+          repo = "tern-django";
+          rev = "3b779469ba7f0249dec17d91b219dc0badf98774";
+          sha256 = "0k9fra8nf1zpa59rznw93pa0pg9h98sq6896wdhahcm9z3x0rlhn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tern-django";
+          sha256 = "1pjaaffadaw8h2n7yv01ks19gw59dmh8bp8vw51hx1082r3yfvv0";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f tern ];
+        meta = {
+          homepage = "https://melpa.org/#/tern-django";
+          license = lib.licenses.free;
+        };
+      }) {};
+    terraform-mode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , hcl-mode
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "terraform-mode";
+        ename = "terraform-mode";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-terraform-mode";
+          rev = "6286aa42132a7fcad49271d63be33deeeb8d4efc";
+          sha256 = "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/terraform-mode";
+          sha256 = "1m3s390mn4pba7zk17xfk045dqr4rrpv5gw63jm18fyqipsi6scn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hcl-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/terraform-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    test-case-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , fringe-helper
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "test-case-mode";
+        ename = "test-case-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "ieure";
+          repo = "test-case-mode";
+          rev = "26e397c0f930b7eb0be413ef7dd257b1da052bec";
+          sha256 = "108csr1d7w0105rb6brzgbksb9wmq1p573vxbq0miv5k894j447f";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/test-case-mode";
+          sha256 = "1iba97yvbi5vr7gvc58gq2ah6jg2s7apc9ssq7mdzki823n8z2qi";
+          name = "recipe";
+        };
+        packageRequires = [ fringe-helper ];
+        meta = {
+          homepage = "https://melpa.org/#/test-case-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    test-kitchen = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "test-kitchen";
+        ename = "test-kitchen";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "jjasghar";
+          repo = "test-kitchen-el";
+          rev = "ddbcb964ac4700973eaf30ae366f086e3319e51f";
+          sha256 = "004rd6jkaklsbgka9mf2zi5qzxsl2shwl1kw0vgb963xkmk9zaz8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/test-kitchen";
+          sha256 = "1bl3yvj56dq147yplrcwphcxiwvmx5n97y4qpkm9imiv8cnjm1g0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/test-kitchen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    test-simple = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "test-simple";
+        ename = "test-simple";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "rocky";
+          repo = "emacs-test-simple";
+          rev = "75eea25bae04d8e5e3e835a2770f02f0ff4602c4";
+          sha256 = "08g7fan1y3wi4w7cdij14awadqss6prqg3k7qzf0wrnbm13dzhmk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/test-simple";
+          sha256 = "1l6y77fqd0l0mh2my23psi66v5ya6pbr2hgvcbsaqjnpmfm90w3g";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/test-simple";
+          license = lib.licenses.free;
+        };
+      }) {};
+    textmate = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "textmate";
+        ename = "textmate";
+        version = "1";
+        src = fetchFromGitHub {
+          owner = "defunkt";
+          repo = "textmate.el";
+          rev = "17b699fc96849958f9a09003d11da73020ffb7be";
+          sha256 = "14bxpbswwpzbz6g8z3imgk2nsig0xllxmf71w0i83cdhh7ql1f3h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/textmate";
+          sha256 = "119w944pwarpqzcr9vys17svy1rkfs9hiln8903q9ff4lnjkpf1v";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/textmate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    textmate-to-yas = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "textmate-to-yas";
+        ename = "textmate-to-yas";
+        version = "0.21";
+        src = fetchFromGitHub {
+          owner = "mattfidler";
+          repo = "textmate-to-yas.el";
+          rev = "8805e5159329e1b74629b7b584373fc446f57d31";
+          sha256 = "0fjapb7naysf34g4ac5gsa90b2s2ss7qgpyd9mfv3mdqrsp2dyw7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/textmate-to-yas";
+          sha256 = "04agz4a41h0givfdw88qjd3c7pd418qyigsij4la5f37j5rh338l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/textmate-to-yas";
+          license = lib.licenses.free;
+        };
+      }) {};
+    textx-mode = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "textx-mode";
+        ename = "textx-mode";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "novakboskov";
+          repo = "textx-mode";
+          rev = "72f9f0c5855b382024f0da8f56833c22a70a5cb3";
+          sha256 = "1lr9v7dk0pnmpvdvs4m5d9yvxlii0xzr8b3akknm25gvbw1y1q8k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/textx-mode";
+          sha256 = "10y95m6fskvdb2gh078ifa70nc48shkvw0223iyqbyjys35h53bn";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/textx-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    theme-changer = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "theme-changer";
+        ename = "theme-changer";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "hadronzoo";
+          repo = "theme-changer";
+          rev = "d3d9c9f62a138958262ac5dd61837df427268611";
+          sha256 = "09vf3qs949n4iqzd14iq2kgvypwdwdv8ii8l5jcqfppgspd8m8yd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/theme-changer";
+          sha256 = "1qbmsghkl5gs728q0gaalc7p8q7nzv3l045jc0jdxxnb7na3gc5w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/theme-changer";
+          license = lib.licenses.free;
+        };
+      }) {};
+    theme-looper = callPackage ({ cl-lib ? null
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "theme-looper";
+        ename = "theme-looper";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "myTerminal";
+          repo = "theme-looper";
+          rev = "5e3a3ea7ad31d4b38efa2cc08f0063b230736da9";
+          sha256 = "06khrrjlhnzckr2zisdbx4pj6r8kmv7dbdzvzh74qz79x337lvzn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/theme-looper";
+          sha256 = "018bixcbzri3zsasy1pp2qfvgd679ylpi9gq26qv9iwlfhlrpwgf";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/theme-looper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    thinks = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "thinks";
+        ename = "thinks";
+        version = "1.12";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "thinks.el";
+          rev = "7bdc418ff946d0cc9ea4cc73d38b3c71ffaa838d";
+          sha256 = "0wf3nikpnn0yivlmp6plyaiydm56mp3f91lljb1kay64nqgnfq65";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/thinks";
+          sha256 = "11vj9mjfzmqwdmkq97aqns3fh8hkgx9scnki6c2iag5lj0av2vcq";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/thinks";
+          license = lib.licenses.free;
+        };
+      }) {};
+    thrift = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "thrift";
+        ename = "thrift";
+        version = "2018.11.19.0";
+        src = fetchFromGitHub {
+          owner = "facebook";
+          repo = "fbthrift";
+          rev = "a1960cc1a78ada27872913a145395f6bd45c8fd9";
+          sha256 = "1az66smmfdkm4rzb8pripsb8ymyvvpncpapg69byf0hqhklln55z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/thrift";
+          sha256 = "13isxx16h7rg8q5a68qmgrf3rknhfrx1qh6fb5njlznfwhrqry3y";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/thrift";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tickscript-mode = callPackage ({ emacs
+                                   , fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "tickscript-mode";
+        ename = "tickscript-mode";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "msherry";
+          repo = "tickscript-mode";
+          rev = "6e7564593d7735acc9f3fa670ec6512991cb73a1";
+          sha256 = "173zk9nzjds0rkypmaq8xv5qianivgk16jpzgk0msdsn9kjbd8s9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tickscript-mode";
+          sha256 = "0wnck6j377idx7h7csmfdhp6napv3zs4sd24lknfclafhslllp54";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/tickscript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tidal = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , haskell-mode
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "tidal";
+        ename = "tidal";
+        version = "0.9.10";
+        src = fetchFromGitHub {
+          owner = "tidalcycles";
+          repo = "Tidal";
+          rev = "ef658d3df0604f3dec955a150509ec1cc68fbd98";
+          sha256 = "1ild1gnbcrw830b8d3byvqlmgm27609dgailmxgin6z7g1pg4r7z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tidal";
+          sha256 = "0im0qbavpykacrwww3y0mlbhf5yfx8afcyvsq5pmjjp0aw245w6a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/tidal";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tide = callPackage ({ cl-lib ? null
+                        , dash
+                        , fetchFromGitHub
+                        , fetchurl
+                        , flycheck
+                        , lib
+                        , melpaBuild
+                        , s
+                        , typescript-mode }:
+      melpaBuild {
+        pname = "tide";
+        ename = "tide";
+        version = "2.8.3.1";
+        src = fetchFromGitHub {
+          owner = "ananthakumaran";
+          repo = "tide";
+          rev = "0c624e7f02fb8f5b78ec35436d7b2f3f42d46dea";
+          sha256 = "0pcxfdql98nnfckjzpykr619p8qsy87wnhyqjajgqxh6ad5rq6si";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tide";
+          sha256 = "1z2xr25s23sz6nrzzw2xg1l2j8jvjhxi53qh7nvxmmq6n6jjpwg1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash flycheck s typescript-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/tide";
+          license = lib.licenses.free;
+        };
+      }) {};
+    timer-revert = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "timer-revert";
+        ename = "timer-revert";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "yyr";
+          repo = "timer-revert";
+          rev = "6c67f09d4c8349f2883ee870097ec68be0033291";
+          sha256 = "0b9sar8crzh3rzsscvqj45gkr2kfxp7w1fzq7y1d631d45wn41zq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/timer-revert";
+          sha256 = "0lvm2irfx9rb5psm1lf53fv2jjx745n1c172xmyqip5xwgmf6msy";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/timer-revert";
+          license = lib.licenses.free;
+        };
+      }) {};
+    timesheet = callPackage ({ auctex
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , org
+                             , s }:
+      melpaBuild {
+        pname = "timesheet";
+        ename = "timesheet";
+        version = "0.4.1";
+        src = fetchFromGitHub {
+          owner = "tmarble";
+          repo = "timesheet.el";
+          rev = "67ca6a9f6733052066b438301fb2dd81b8b3f6eb";
+          sha256 = "0rmh8lik27pmq95858jbjzgvf6rsfdnpynwcagj1fgkval5kzdbs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/timesheet";
+          sha256 = "1gy6bf4wqvp8cw2wjnrr9ijnzwav3p7j46m7qrn6l0517shwl506";
+          name = "recipe";
+        };
+        packageRequires = [ auctex org s ];
+        meta = {
+          homepage = "https://melpa.org/#/timesheet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    timonier = callPackage ({ all-the-icons
+                            , dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , hydra
+                            , lib
+                            , melpaBuild
+                            , pkg-info
+                            , request
+                            , s }:
+      melpaBuild {
+        pname = "timonier";
+        ename = "timonier";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "timonier";
+          rev = "33ca5887a1d1b63349177237e9edfb73546511a5";
+          sha256 = "0z6s26kc50rbmgkkbxzpasphi8hcwhixmi8ksqzrclayccjjj7ar";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/timonier";
+          sha256 = "0vb83kv2dkca2bq876icxs8iivv9qgkzmzrsxfpnvbv752b220b0";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons dash hydra pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/timonier";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toc-org = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "toc-org";
+        ename = "toc-org";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "snosov1";
+          repo = "toc-org";
+          rev = "a0e8ca05e806e5074b8603985da7f18b92c15856";
+          sha256 = "1sv9y5dln4ai9w3mgg8p4a3s05hflfqh0k7k8isjqikydbv85m2k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/toc-org";
+          sha256 = "06mx2b0zjck82vp3i4bwbqlrzn05i2rkf8080cn34nkizi59wlbs";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/toc-org";
+          license = lib.licenses.free;
+        };
+      }) {};
+    total-lines = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "total-lines";
+        ename = "total-lines";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "hinrik";
+          repo = "total-lines";
+          rev = "58a9fb0ffca63e3dfb3b27c7d91b4630e422903b";
+          sha256 = "0ajbqrkg3v0yn8mj7dsv12w9zzcwjkabd776fabxamhcj6zbvza3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/total-lines";
+          sha256 = "0zpli7gsb56fc3pzb3b2bs7dzr9glkixbzgl4p2kc249vz3jqajh";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/total-lines";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tox = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "tox";
+        ename = "tox";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "chmouel";
+          repo = "tox.el";
+          rev = "27a074b21238855ce3c33d22e42d69e2c2921205";
+          sha256 = "1m3f0i6vrkrncd7xsgz65m6595iv6yr4gbbzlis8p01kd98wbxfk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tox";
+          sha256 = "1z81x8fs5q6r19hpqphsilk8wdwwnfr8w78x5x298x74s9mcsywl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    toxi-theme = callPackage ({ emacs
+                              , fetchhg
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "toxi-theme";
+        version = "0.1.2";
+        src = fetchhg {
+          url = "https://bitbucket.com/postspectacular/toxi-theme";
+          rev = "b322fc7497a5";
+          sha256 = "1pnsky541m8kzcv81w98jkv0hgajh04hxqlmgddc1y0wbvi849j0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/toxi-theme";
+          sha256 = "032m3qbxfd0qp81qwayd5g9k7vz55g4yhw0d35qkxzf4qf58x9sd";
+          name = "toxi-theme";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/toxi-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    traad = callPackage ({ dash
+                         , deferred
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , popup
+                         , request
+                         , request-deferred
+                         , virtualenvwrapper }:
+      melpaBuild {
+        pname = "traad";
+        ename = "traad";
+        version = "3.1.1";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-traad";
+          rev = "1f05cb4e5e96a90d2fb2bbc93093084327c40cf2";
+          sha256 = "14qg8aczcdf51w618zdzx3d48y9n4skjrg72yhgcm9a9lrs5v8y1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/traad";
+          sha256 = "08gxh5c01xfbbj9g4992jah494rw3d3bbs8j79r3mpqxllkp2znf";
+          name = "recipe";
+        };
+        packageRequires = [
+          dash
+          deferred
+          popup
+          request
+          request-deferred
+          virtualenvwrapper
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/traad";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tracking = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "tracking";
+        ename = "tracking";
+        version = "2.10";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "circe";
+          rev = "571853c1f5ece6777fe745489b34d3ad7c3cb0ba";
+          sha256 = "1l2zhszwg7cg96vlyi33bykk4mmig38xmasgpp02xypa4j4p11sw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tracking";
+          sha256 = "096h5bl7jcwz5hpbm2139bf8a784hijfy40vzf42y1c9794al46z";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tracking";
+          license = lib.licenses.free;
+        };
+      }) {};
+    transmission = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , let-alist
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "transmission";
+        ename = "transmission";
+        version = "0.12.1";
+        src = fetchFromGitHub {
+          owner = "holomorph";
+          repo = "transmission";
+          rev = "03a36853f141387654b7cb9217c7417db096a083";
+          sha256 = "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/transmission";
+          sha256 = "0w0hlr4y4xpcrpvclqqqasggkgrwnzrdib51mhkh3f3mqyiw8gs9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/transmission";
+          license = lib.licenses.free;
+        };
+      }) {};
+    travis = callPackage ({ dash
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , pkg-info
+                          , request
+                          , s }:
+      melpaBuild {
+        pname = "travis";
+        ename = "travis";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "nlamirault";
+          repo = "emacs-travis";
+          rev = "c8769d3db10ed4604969049e3bd276afa0a0138e";
+          sha256 = "1jd7xsvs4m55fscp62a9lk59ip4sgifv4kazl55b7543nz1i31bz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/travis";
+          sha256 = "1km496cq1vni9gy2d3z4c9524q62750ywz745rjz4r7178ip9mix";
+          name = "recipe";
+        };
+        packageRequires = [ dash pkg-info request s ];
+        meta = {
+          homepage = "https://melpa.org/#/travis";
+          license = lib.licenses.free;
+        };
+      }) {};
+    treemacs = callPackage ({ ace-window
+                            , cl-lib ? null
+                            , dash
+                            , emacs
+                            , f
+                            , fetchFromGitHub
+                            , fetchurl
+                            , ht
+                            , hydra
+                            , lib
+                            , melpaBuild
+                            , pfuture
+                            , s }:
+      melpaBuild {
+        pname = "treemacs";
+        ename = "treemacs";
+        version = "2.2.2";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "treemacs";
+          rev = "4976d15c5f29bb8200b5502b742a9ba4a743706f";
+          sha256 = "04sv030az079hgj4mvyigwckl6vnw2gc9zy71zksl5vn7ii25m4m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/treemacs";
+          sha256 = "1wcsn0kzrbawyyhxmsmrsxr1vp0llkxw6r7zx53pwyc82ia64nlv";
+          name = "recipe";
+        };
+        packageRequires = [ ace-window cl-lib dash emacs f ht hydra pfuture s ];
+        meta = {
+          homepage = "https://melpa.org/#/treemacs";
+          license = lib.licenses.free;
+        };
+      }) {};
+    treemacs-evil = callPackage ({ evil
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , treemacs }:
+      melpaBuild {
+        pname = "treemacs-evil";
+        ename = "treemacs-evil";
+        version = "2.2.2";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "treemacs";
+          rev = "82061efe99e34ac69367726d65fa0f517947b40b";
+          sha256 = "0f2ybaf149ji54rgf7q9xbdx55jr2jgz9qbahsh2q7gl800nkg17";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/treemacs-evil";
+          sha256 = "1i2mxqwnqb2jz775qg3z4lf7pk4mgi646fyyi2la5gdcnq6a46mg";
+          name = "recipe";
+        };
+        packageRequires = [ evil treemacs ];
+        meta = {
+          homepage = "https://melpa.org/#/treemacs-evil";
+          license = lib.licenses.free;
+        };
+      }) {};
+    treemacs-projectile = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild
+                                       , projectile
+                                       , treemacs }:
+      melpaBuild {
+        pname = "treemacs-projectile";
+        ename = "treemacs-projectile";
+        version = "2.2.2";
+        src = fetchFromGitHub {
+          owner = "Alexander-Miller";
+          repo = "treemacs";
+          rev = "cbc75759fd54a772fcb67bd8babacf1b2020ba88";
+          sha256 = "18aafgiircgb5max35zqzdfb0yjmgjqacax9sfy39ihh9x9z0vc1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/treemacs-projectile";
+          sha256 = "1vyifik30673bwlfvbmw8pzz7f3wd4q6zzssvbj8d23zhk8kh8vc";
+          name = "recipe";
+        };
+        packageRequires = [ projectile treemacs ];
+        meta = {
+          homepage = "https://melpa.org/#/treemacs-projectile";
+          license = lib.licenses.free;
+        };
+      }) {};
+    treepy = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "treepy";
+        ename = "treepy";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "volrath";
+          repo = "treepy.el";
+          rev = "b40e6b09eb9be45da67b8c9e4990a5a0d7a2a09d";
+          sha256 = "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/treepy";
+          sha256 = "0jfah4vywi1b6c86h7vh8fspmklhs790qzkl51i9p7yckfggwp72";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/treepy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    trinary = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "trinary";
+        ename = "trinary";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "emacs-elsa";
+          repo = "trinary-logic";
+          rev = "c043034e1e476ae103cc52b6922e15f6dd2fc8a3";
+          sha256 = "0hi6ybsz6v6ls8ajkyqpy9cq87pk684l9a7js863f7ycgwb37nzn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/trinary";
+          sha256 = "1k2jpay1wx2m54fpja9mrhqyk15ikml8xf15irh8yrxb3hah8f8k";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/trinary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    trr = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "trr";
+        ename = "trr";
+        version = "2.0.0";
+        src = fetchFromGitHub {
+          owner = "kawabata";
+          repo = "emacs-trr";
+          rev = "7500ae0a05a3e26888949208afcd0185cc1b1404";
+          sha256 = "0x1knf2jqkd1sdswv1w902jnlppih2yw6z028268nizl0c9q92yn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/trr";
+          sha256 = "068vqsyx8riqzfrmjk8wr81f68r2y2b6ymc2vvl6vka9rprvsfwr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/trr";
+          license = lib.licenses.free;
+        };
+      }) {};
+    truthy = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , list-utils
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "truthy";
+        ename = "truthy";
+        version = "0.2.8";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "truthy";
+          rev = "276a7e6b13606d28e4f2e423bb1ea30904c5def3";
+          sha256 = "18na22fhwqz80qinmnpsvp6ghc9irva1scixi6s4q6plmgr4m397";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/truthy";
+          sha256 = "1a56zmqars9fd03bkqzwpvgblq5fvq19n4jw04c4hpga92sq8wqg";
+          name = "recipe";
+        };
+        packageRequires = [ list-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/truthy";
+          license = lib.licenses.free;
+        };
+      }) {};
+    try = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "try";
+        ename = "try";
+        version = "0.0.1";
+        src = fetchFromGitHub {
+          owner = "larstvei";
+          repo = "Try";
+          rev = "271b0a362cadf44d0694628b9e213f54516ef913";
+          sha256 = "1fvpi02c6awyrwg2yqjapvcv4132qvmvd9bkbwpjmndxpicsann3";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/try";
+          sha256 = "0dv0i77agva215bf1gj1x1k7f7g3pvccyyd7vslapf9z8brccn7n";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/try";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tss = callPackage ({ auto-complete
+                       , fetchFromGitHub
+                       , fetchurl
+                       , json-mode
+                       , lib
+                       , log4e
+                       , melpaBuild
+                       , yaxception }:
+      melpaBuild {
+        pname = "tss";
+        ename = "tss";
+        version = "0.6.0";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-tss";
+          rev = "140ae681828469b1415ae51a39ac4fdfaa84e4c3";
+          sha256 = "113qs1frz1rfvswgw5wrvmxd7q6zbpp6rdz35hr1wmpfj546z1kw";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tss";
+          sha256 = "0d16x5r2xfy6mrwy0mqzpr9b3inqmyyxgawrxlfh83j1xb903dhm";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete json-mode log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/tss";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tuareg = callPackage ({ caml
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "tuareg";
+        ename = "tuareg";
+        version = "2.2.0";
+        src = fetchFromGitHub {
+          owner = "ocaml";
+          repo = "tuareg";
+          rev = "40f974d3b0777f9666928d0b4a5126a4c7491b17";
+          sha256 = "049nw6pkkxnq3k4vv4ksl93csiybm7q29xigdkc7cr9cls6h8jf0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tuareg";
+          sha256 = "0wx723dmjlpm86xdabl9n8p22zbbxpapyfn6ifz0b0pvhh49ip7q";
+          name = "recipe";
+        };
+        packageRequires = [ caml ];
+        meta = {
+          homepage = "https://melpa.org/#/tuareg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tumble = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "tumble";
+        ename = "tumble";
+        version = "1.5";
+        src = fetchFromGitHub {
+          owner = "febuiles";
+          repo = "tumble";
+          rev = "a1db6dac5720b9f468a79e0efce04f77c0a458e3";
+          sha256 = "0ihjjw5wxz5ybl3600k937pszw3442cijs4gbqqip9vhd5y9m8gy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tumble";
+          sha256 = "1c9ybq0mb2a0pw15fmm13vfwcnr2h9fb1xsm5nrff1cg7913pgv9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tumble";
+          license = lib.licenses.free;
+        };
+      }) {};
+    tup-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "tup-mode";
+        ename = "tup-mode";
+        version = "1.3.1";
+        src = fetchFromGitHub {
+          owner = "ejmr";
+          repo = "tup-mode";
+          rev = "945af9c8e6c402e10cd3bf8e28a9591174023d6d";
+          sha256 = "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/tup-mode";
+          sha256 = "0pzpn1ljfcc2dl9fg7jc8lmjwz2baays4axjqk1qsbj0kqbc8j0l";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/tup-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    turing-machine = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "turing-machine";
+        ename = "turing-machine";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "dieggsy";
+          repo = "turing-machine";
+          rev = "ad1dccc9c445f9e4465e1c67cbbfea9583153047";
+          sha256 = "0qaz4r5ahg2fxsfyxilb8c9956i5ra9vg80l82slm8vrnsinzll6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/turing-machine";
+          sha256 = "0q9a31m5wnz9j9l4i8czdl7z12nrcdjw72w8sqvf94ri2g5dbpkq";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/turing-machine";
+          license = lib.licenses.free;
+        };
+      }) {};
+    twilight-anti-bright-theme = callPackage ({ fetchFromGitHub
+                                              , fetchurl
+                                              , lib
+                                              , melpaBuild }:
+      melpaBuild {
+        pname = "twilight-anti-bright-theme";
+        ename = "twilight-anti-bright-theme";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "jimeh";
+          repo = "twilight-anti-bright-theme";
+          rev = "16d4ff2606789b506f0d2f53d12f02d5b1b64f9b";
+          sha256 = "0glw5lns7hwp8jznnfm6dyjw454sv2n84gy07ma7s1q3yczhq5bc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/twilight-anti-bright-theme";
+          sha256 = "1wfj570l5k0ygqi9dwjskc78rpnxw6080bkw1zd1a8kl3fa28n2k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/twilight-anti-bright-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    twittering-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "twittering-mode";
+        ename = "twittering-mode";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "hayamiz";
+          repo = "twittering-mode";
+          rev = "fa40325328bc8c2aa40eff6ed1954d5c07436152";
+          sha256 = "1bpzcljg81igldjjglgn0vxy9i89i802kx2jgvcr16c1vway7cm9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/twittering-mode";
+          sha256 = "0v9ijxw5jazh2hc0qab48y71za2l9ryff0mpkxhr3f79irlqy0a1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/twittering-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    typescript-mode = callPackage ({ fetchFromGitHub
+                                   , fetchurl
+                                   , lib
+                                   , melpaBuild }:
+      melpaBuild {
+        pname = "typescript-mode";
+        ename = "typescript-mode";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "ananthakumaran";
+          repo = "typescript.el";
+          rev = "7a5c74d88e3c5513cc4431a837003736f905a75e";
+          sha256 = "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/typescript-mode";
+          sha256 = "01jyqy44ir59n9c2f6gh4xzwfmzdpnys1lw4lnsy6kirqgbsq9ha";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/typescript-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    typit = callPackage ({ emacs
+                         , f
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , mmt }:
+      melpaBuild {
+        pname = "typit";
+        ename = "typit";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "typit";
+          rev = "a4e3147dedac5535bdc8b06aca00f34f14f26e35";
+          sha256 = "0hbnwrhxj9wwjvxsk372ffgjqfkb3ljxhgi5h7wps2r15dxfvf3w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/typit";
+          sha256 = "05m7ymcq6fgbhh93ninrf3qi7csdnf2ahhf01mkm8gxxyaqq6m4n";
+          name = "recipe";
+        };
+        packageRequires = [ emacs f mmt ];
+        meta = {
+          homepage = "https://melpa.org/#/typit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    typo = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "typo";
+        ename = "typo";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "jorgenschaefer";
+          repo = "typoel";
+          rev = "e72171e4eb0b9ec80b9dabc3198d137d9fb4f972";
+          sha256 = "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/typo";
+          sha256 = "1p8is1n525lmzq588hj6vazmhl9wi6rairnfx1g1p6g6ijdycd4h";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/typo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ubuntu-theme = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "ubuntu-theme";
+        ename = "ubuntu-theme";
+        version = "4.2";
+        src = fetchFromGitHub {
+          owner = "rocher";
+          repo = "ubuntu-theme";
+          rev = "41f09ca6c203da93bdadb2077556efd48e3b5d5a";
+          sha256 = "0k41hwb6jgv3hngfrphlyhmfhvy4k05mvn0brm64xk7lj56y8q2c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ubuntu-theme";
+          sha256 = "160z59aaxb2v6c24nki6bn7pjm9r4jl1mgxs4h4sivzxkaw811s2";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ubuntu-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ucs-utils = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , list-utils
+                             , melpaBuild
+                             , pcache
+                             , persistent-soft }:
+      melpaBuild {
+        pname = "ucs-utils";
+        ename = "ucs-utils";
+        version = "0.8.4";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "ucs-utils";
+          rev = "cbfd42f822bf5717934fa2d92060e6e24a813433";
+          sha256 = "0qw9vwl1p0pjw1xmshxar1a8kn6gmin5rdvvnnly8b5z9hpkjf3m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ucs-utils";
+          sha256 = "111fwg2cqqzpa79rcqxidppb12c8g12zszppph2ydfvkgkryb6z2";
+          name = "recipe";
+        };
+        packageRequires = [ list-utils pcache persistent-soft ];
+        meta = {
+          homepage = "https://melpa.org/#/ucs-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    undercover = callPackage ({ dash
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , shut-up }:
+      melpaBuild {
+        pname = "undercover";
+        ename = "undercover";
+        version = "0.6.1";
+        src = fetchFromGitHub {
+          owner = "sviridov";
+          repo = "undercover.el";
+          rev = "86f856c799aacfd48d2eb42d1a6afda0e6e49845";
+          sha256 = "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/undercover";
+          sha256 = "1s30c3i6y4r3mgrrs3lda3rrwmy9ff11ihdmshyziv9v5879sdjf";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs shut-up ];
+        meta = {
+          homepage = "https://melpa.org/#/undercover";
+          license = lib.licenses.free;
+        };
+      }) {};
+    underline-with-char = callPackage ({ emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "underline-with-char";
+        ename = "underline-with-char";
+        version = "3.0.0";
+        src = fetchFromGitHub {
+          owner = "marcowahl";
+          repo = "underline-with-char";
+          rev = "c2f4870aff70efe70a8d1b089e56d3a2d6d048b9";
+          sha256 = "0i6jfr4l7mr8gpavmfblr5d41ck8aqzaf4iv1qk5fyzsb6yi0nla";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/underline-with-char";
+          sha256 = "0la24nvyqinla40c2f3f4a63mjjsg58096hyw3pvp0mwiff7rxyd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/underline-with-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+    underwater-theme = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "underwater-theme";
+        ename = "underwater-theme";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "jmdeldin";
+          repo = "underwater-theme.el";
+          rev = "1fbd4ecd4538256c6c46f9638f883072c73ac927";
+          sha256 = "1g1ldyz42q3i2xlgvhd4s93cvkh0fm8m3l344zjcw8rvqaisyphj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/underwater-theme";
+          sha256 = "0ab2bcqfdi9ml3z9d511pbfwcbp8hkkd36xxp61k36gkyi3acvlr";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/underwater-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unfill = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "unfill";
+        ename = "unfill";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "unfill";
+          rev = "234fee7351cafdcfa68a2b1fc603744b03e0e16b";
+          sha256 = "0i25kr4anszl48w29vlxwfg3dq1baa81qj91v4iw3wsnmc40n7ww";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unfill";
+          sha256 = "0b21dk45vbz4vqdbdx0n6wx30rm38w1jjqbsxfj7b96p3i5shwqv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unfill";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-enbox = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild
+                                 , pcache
+                                 , persistent-soft
+                                 , string-utils
+                                 , ucs-utils }:
+      melpaBuild {
+        pname = "unicode-enbox";
+        ename = "unicode-enbox";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "unicode-enbox";
+          rev = "ff313f6778bb96481c0ee3291b07a7db46f21ff5";
+          sha256 = "0n06dvf6r7qblz8vz38qc37xrn29wa1c0jyzis1qw9zzf6hmmzj7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-enbox";
+          sha256 = "1phb2qq3pg6z6bl96kl9yfq4jxhgardjpaa4lhgqbxymmqdm7gzv";
+          name = "recipe";
+        };
+        packageRequires = [ pcache persistent-soft string-utils ucs-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-enbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-escape = callPackage ({ dash
+                                  , emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , names }:
+      melpaBuild {
+        pname = "unicode-escape";
+        ename = "unicode-escape";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "kosh04";
+          repo = "unicode-escape.el";
+          rev = "04c7f22f90c96e93f998f084089ab08dc7f4fdd6";
+          sha256 = "01i5cq7yan9z1kr6pvp4bwzsnxs0bpqsaglfbvy7v6jfp923bvdm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-escape";
+          sha256 = "0gcwkv7qbdnvak10jfzj9irb7nkfqsfxv2n5fi8vvrk90j1a2i2k";
+          name = "recipe";
+        };
+        packageRequires = [ dash emacs names ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-escape";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-fonts = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , font-utils
+                                 , lib
+                                 , list-utils
+                                 , melpaBuild
+                                 , pcache
+                                 , persistent-soft
+                                 , ucs-utils }:
+      melpaBuild {
+        pname = "unicode-fonts";
+        ename = "unicode-fonts";
+        version = "0.4.10";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "unicode-fonts";
+          rev = "7b88ae84e589f6c8b9386b2fb5a02ff4ccb91169";
+          sha256 = "07wzcfj92jiadgd6nj5rmxky2aiaxs89j7zywp877xdp4vv0v512";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-fonts";
+          sha256 = "0plipwb30qqay8691qzqdyg6smpbs9dsxxi49psb8sq0xnxl84q3";
+          name = "recipe";
+        };
+        packageRequires = [
+          font-utils
+          list-utils
+          pcache
+          persistent-soft
+          ucs-utils
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-fonts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-progress-reporter = callPackage ({ emacs
+                                             , fetchFromGitHub
+                                             , fetchurl
+                                             , lib
+                                             , melpaBuild
+                                             , pcache
+                                             , persistent-soft
+                                             , ucs-utils }:
+      melpaBuild {
+        pname = "unicode-progress-reporter";
+        ename = "unicode-progress-reporter";
+        version = "0.5.4";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "unicode-progress-reporter";
+          rev = "f4705332412b12fc72ca868b77c78465561bda75";
+          sha256 = "0qy1hla7vf674ynqdzsaw2cnk92nhpcimww5q94rc0a95pzw64wd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-progress-reporter";
+          sha256 = "03z7p27470fqy3gd356l9cpp44a35sfrxz94dxmx388rzlygk7y7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs pcache persistent-soft ucs-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-progress-reporter";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unicode-whitespace = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , pcache
+                                      , persistent-soft
+                                      , ucs-utils }:
+      melpaBuild {
+        pname = "unicode-whitespace";
+        ename = "unicode-whitespace";
+        version = "0.2.4";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "unicode-whitespace";
+          rev = "6d29f25d46b3344c74ce289fc80b3d4fc17ed6db";
+          sha256 = "0q7cbl89yg3fjxaxsqsksxhw7ibdslbb004z5y1m579n7zgcrljy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unicode-whitespace";
+          sha256 = "1b3jgha8va42b89pdp41sab2w9wllp7dicqg4lxl67bg6wn147wy";
+          name = "recipe";
+        };
+        packageRequires = [ pcache persistent-soft ucs-utils ];
+        meta = {
+          homepage = "https://melpa.org/#/unicode-whitespace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unify-opening = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "unify-opening";
+        ename = "unify-opening";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "unify-opening";
+          rev = "502469ddba6d8d52159f53976265f7d956b6b17c";
+          sha256 = "0mni9vnbs50wvgnwfjwgzlwfff38h3wbrpr20nv84dmfh8ac0v61";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unify-opening";
+          sha256 = "1gpmklbdbmv8va8d3yr94r1ydkcyvdzcgxv56rp0bxwbcgmk0as8";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/unify-opening";
+          license = lib.licenses.free;
+        };
+      }) {};
+    unkillable-scratch = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "unkillable-scratch";
+        ename = "unkillable-scratch";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "EricCrosson";
+          repo = "unkillable-scratch";
+          rev = "85e01b6da499a05bc920ca7958f0642c76dd9ce2";
+          sha256 = "0j513ia8mfa4i8h1z0m00k65g89fdcdp6h37bdm2ymy4g26wbk6n";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/unkillable-scratch";
+          sha256 = "0ghbpa9pf7k6vd2mjxkpqg2qfl4sd40ir6mrk1rxr1rv8s0afkf7";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/unkillable-scratch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    uptimes = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "uptimes";
+        ename = "uptimes";
+        version = "3.6";
+        src = fetchFromGitHub {
+          owner = "davep";
+          repo = "uptimes.el";
+          rev = "5e81f8bb419836602819045e7d5a74b76ad3e69c";
+          sha256 = "04l452k249s3ilfj0da0k7rrfyjnxxdsipa2al46xqjds8l3h2rn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/uptimes";
+          sha256 = "0r8s5c2hdcb1ly7rnhzar4qzf1c9d49gd914ndnc3mg9yb9gyy5h";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/uptimes";
+          license = lib.licenses.free;
+        };
+      }) {};
+    use-package = callPackage ({ bind-key
+                               , diminish
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "use-package";
+        ename = "use-package";
+        version = "2.3";
+        src = fetchFromGitHub {
+          owner = "jwiegley";
+          repo = "use-package";
+          rev = "cd58b268a8a025451c11c3cb1ba18d4f27f245da";
+          sha256 = "14x01dg7fgj4icf8l8w90pksazc0sn6qrrd0k3xjr2zg1wzdcang";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/use-package";
+          sha256 = "0d0zpgxhj6crsdi9sfy30fn3is036apm1kz8fhjg1yzdapf1jdyp";
+          name = "recipe";
+        };
+        packageRequires = [ bind-key diminish ];
+        meta = {
+          homepage = "https://melpa.org/#/use-package";
+          license = lib.licenses.free;
+        };
+      }) {};
+    use-package-el-get = callPackage ({ fetchFromGitLab
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , use-package }:
+      melpaBuild {
+        pname = "use-package-el-get";
+        ename = "use-package-el-get";
+        version = "0.1";
+        src = fetchFromGitLab {
+          owner = "edvorg";
+          repo = "use-package-el-get";
+          rev = "f33c448ed43ecb003b60ff601ee7ef9b08cff947";
+          sha256 = "1wzn3h8k7aydj3hxxws64b0v4cr3b77cf7z128xh3v6xz2w62m4z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/use-package-el-get";
+          sha256 = "143vydssjxmkcgs661hz6nhg310r8qypn2a4vyxy5sb31wqcclzg";
+          name = "recipe";
+        };
+        packageRequires = [ use-package ];
+        meta = {
+          homepage = "https://melpa.org/#/use-package-el-get";
+          license = lib.licenses.free;
+        };
+      }) {};
+    usql = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "usql";
+        ename = "usql";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "nickbarnwell";
+          repo = "usql.el";
+          rev = "bfaf428b366a9a185eef84f0d645a98dc918fe3d";
+          sha256 = "00b1g30l86abg65wc9f4vcn4ccqa2zmn2mi33vdjrq3phw17d2ks";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/usql";
+          sha256 = "10ks164kcly5gkb2qmn700a51kph2sry4a64jwn60p5xl7w7af84";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/usql";
+          license = lib.licenses.free;
+        };
+      }) {};
+    utop = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "utop";
+        ename = "utop";
+        version = "2.2.0";
+        src = fetchFromGitHub {
+          owner = "diml";
+          repo = "utop";
+          rev = "48100fcf769bdaeb4a6c93bbb33c37b85c1dcb10";
+          sha256 = "1cr1i5ywn9abqbrl4iq1c82vdjwrbh43v67zv1a8i4fvh99yzlv1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/utop";
+          sha256 = "0lv16kl29gc9hdcpn04l85pf7x93vkl41s4mgqp678cllzyr0cq7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/utop";
+          license = lib.licenses.free;
+        };
+      }) {};
+    v2ex-mode = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , let-alist
+                             , lib
+                             , melpaBuild
+                             , request }:
+      melpaBuild {
+        pname = "v2ex-mode";
+        ename = "v2ex-mode";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "aborn";
+          repo = "v2ex-mode";
+          rev = "e871c4872a4970bf76e6132d77ef0ef7b11536fe";
+          sha256 = "0sc0ix8d5knsm8p6z819j7iwkp2d6lrq0d8l94x4a8dgh4mapls8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/v2ex-mode";
+          sha256 = "04frd6jbnf9g7ak2fdbik9iji7b0903cpbg1hx7rai1853af7gh1";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib let-alist request ];
+        meta = {
+          homepage = "https://melpa.org/#/v2ex-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vagrant = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "vagrant";
+        ename = "vagrant";
+        version = "0.6.1";
+        src = fetchFromGitHub {
+          owner = "ottbot";
+          repo = "vagrant.el";
+          rev = "ef3022d290ee26597e21b17ab87acbd8d4f1071f";
+          sha256 = "1661fwfx2gpxjriy3ngi9raz8c2kkk3rgg51irdi591jr2zqmw6s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vagrant";
+          sha256 = "0g6sqzsx3lixcn09fkxhhcfp45qnqgf1ms0l7nkzyljavb7151cf";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vagrant";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vbasense = callPackage ({ auto-complete
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , log4e
+                            , melpaBuild
+                            , yaxception }:
+      melpaBuild {
+        pname = "vbasense";
+        ename = "vbasense";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "emacs-vbasense";
+          rev = "8c61a492d7c15218ae1a96e2aebfe6f78bfff6db";
+          sha256 = "19j5q2f6pybvjq3ryjcyihzlw348hqyjhfcy3qflry6w786dqcgn";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vbasense";
+          sha256 = "1440q2bi4arpl5lbqh7zscg7v3884clqx54p2fdfcfkz47ky4z9n";
+          name = "recipe";
+        };
+        packageRequires = [ auto-complete log4e yaxception ];
+        meta = {
+          homepage = "https://melpa.org/#/vbasense";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vc-hgcmd = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "vc-hgcmd";
+        ename = "vc-hgcmd";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "muffinmad";
+          repo = "emacs-vc-hgcmd";
+          rev = "c95696fb2da0b0ebc9173bc0335e11083d5e87b8";
+          sha256 = "07n9dpp686xqrcsr3sajn2vd2wm6dphpqwqp9lw6wkzl5z0qbm0y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vc-hgcmd";
+          sha256 = "11p8r94s72x47nkxlarxwy33im167jpjas8b9i8dkrz2iggwn5xk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vc-hgcmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vc-msg = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , popup }:
+      melpaBuild {
+        pname = "vc-msg";
+        ename = "vc-msg";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "vc-msg";
+          rev = "091f3cf15ecb35bb4dc5de1ef7229f78735d9aee";
+          sha256 = "0s129fzxhrr8pp4h0hkmxapnman67r0bdmbj8ys6r361na7h16hf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vc-msg";
+          sha256 = "16pgx8pg3djhkmhf1fihgjk7c6nb2nsqj58888bwg7385mlwc7g9";
+          name = "recipe";
+        };
+        packageRequires = [ emacs popup ];
+        meta = {
+          homepage = "https://melpa.org/#/vc-msg";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vcomp = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "vcomp";
+        ename = "vcomp";
+        version = "0.3.1";
+        src = fetchFromGitHub {
+          owner = "tarsius";
+          repo = "vcomp";
+          rev = "a12363c3a66576b68955abcadf7280de32eaa051";
+          sha256 = "07dx3dyvkwcin0gb6j4jx0ldfxs4rqhygl56a8i81yy05adkaq2x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vcomp";
+          sha256 = "02cj2nlyxvgvl2rjfgacljvcsnfm9crmmkhcm2pznj9xw10y8pq0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vcomp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdiff = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , hydra
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "vdiff";
+        ename = "vdiff";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "justbur";
+          repo = "emacs-vdiff";
+          rev = "f55acdbfcbb14e463d0850cfd041614c7002669e";
+          sha256 = "0dlhisvnlzkzlilg456lxi0m5wh4a8681n142684hmk8vaw3wx2k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdiff";
+          sha256 = "11gw0l63fssbiyhngqb7ykrp7m1vy55wlf27ybhh2dkwh1cpkr4l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs hydra ];
+        meta = {
+          homepage = "https://melpa.org/#/vdiff";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdiff-magit = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , magit
+                               , melpaBuild
+                               , vdiff }:
+      melpaBuild {
+        pname = "vdiff-magit";
+        ename = "vdiff-magit";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "justbur";
+          repo = "emacs-vdiff-magit";
+          rev = "7e841dc7225300dd4d5560faad04e5c44cd8b267";
+          sha256 = "0800lnclv0kdkk2njddhsydsbifrwgg6w09mm4js7mqci1mr3gia";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdiff-magit";
+          sha256 = "1vjc1r5xfdg9bmscgppx1fps1w5bd0zpp6ab5z5dxlg2zx2vdldw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs magit vdiff ];
+        meta = {
+          homepage = "https://melpa.org/#/vdiff-magit";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdirel = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , helm
+                          , lib
+                          , melpaBuild
+                          , org-vcard
+                          , seq }:
+      melpaBuild {
+        pname = "vdirel";
+        ename = "vdirel";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "DamienCassou";
+          repo = "vdirel";
+          rev = "58b0b6e6f0913a782691373b3996ca6bb6d1ba54";
+          sha256 = "0rkj9w1jbagx1515xs1jwh6fi0cx0nj7gym30c99c8v8asq63ds2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdirel";
+          sha256 = "11cc7bw7x5h3bwnlsjyhw6k5fh2fk7wffarrcny562v4cmr013cj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs helm org-vcard seq ];
+        meta = {
+          homepage = "https://melpa.org/#/vdirel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdm-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "vdm-mode";
+        ename = "vdm-mode";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "peterwvj";
+          repo = "vdm-mode";
+          rev = "0c083ee4848ea5d78de7894a4a0722d6630839c9";
+          sha256 = "175zlxxjxl7zp80hm2hz5xw7gy3qh0hz3fdvqy8v3n0vz4zvqx1k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdm-mode";
+          sha256 = "1h72731vcsjqsbii1wbzpa114x09aqbkbnz5fg9fnjq9rybz6rn7";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/vdm-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vdm-snippets = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , yasnippet }:
+      melpaBuild {
+        pname = "vdm-snippets";
+        ename = "vdm-snippets";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "peterwvj";
+          repo = "vdm-mode";
+          rev = "0c083ee4848ea5d78de7894a4a0722d6630839c9";
+          sha256 = "175zlxxjxl7zp80hm2hz5xw7gy3qh0hz3fdvqy8v3n0vz4zvqx1k";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vdm-snippets";
+          sha256 = "1js1hjs2r9bbqm50bl389y87xn68f30xrh2z6nd5kz2hdgkm6lhj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/vdm-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vector-utils = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "vector-utils";
+        ename = "vector-utils";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "vector-utils";
+          rev = "2bd63c8ade1a2b6f8aac403c5f25adda2215a685";
+          sha256 = "0lzq31zqnk32vfp3kicnvgfr3nkv8amjzxmk9nrz1kwgmq7gvkjk";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vector-utils";
+          sha256 = "07armr23pq5pd47lqhir6a59r86c84zikbc51d8vfcaw8y71yr5n";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vector-utils";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vertigo = callPackage ({ dash
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "vertigo";
+        ename = "vertigo";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "noctuid";
+          repo = "vertigo.el";
+          rev = "ebfa068d9e2fc39ba6d1744618c4e31dad6f629b";
+          sha256 = "1yk7qqg8i3970kpfk34wvi0gh16qf0b0sfnf18g3s21dd4gk5a6g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vertigo";
+          sha256 = "0x0wy1z601sk1x96bl2xx18qm4avd77iybq1a3ss8x8ykwqlgf83";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/vertigo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vhdl-tools = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , ggtags
+                              , helm
+                              , lib
+                              , melpaBuild
+                              , outshine }:
+      melpaBuild {
+        pname = "vhdl-tools";
+        ename = "vhdl-tools";
+        version = "5.9";
+        src = fetchFromGitHub {
+          owner = "csantosb";
+          repo = "vhdl-tools";
+          rev = "4e9df06c3519be22f1f713d18c80d325a5b0c3d2";
+          sha256 = "0n6mmbg8g3ip3dkbc4kxqxsd4p1h7jry25n1cqvzm24x1adwlcfm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vhdl-tools";
+          sha256 = "006d9xv60a90xalagczkziiimwsr1np9nn25zvnc4nlbf8j3fbbw";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ggtags helm outshine ];
+        meta = {
+          homepage = "https://melpa.org/#/vhdl-tools";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vim-region = callPackage ({ expand-region
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "vim-region";
+        ename = "vim-region";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "ongaeshi";
+          repo = "emacs-vim-region";
+          rev = "e5359cc584a0cfa9270a76866a5eff7d3f44eb3d";
+          sha256 = "1750gx65ymibam8ahx5blfv5jc26f3mzbklk1jrmfwpsalyghdd9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vim-region";
+          sha256 = "1dcnx799lpjsdnnjxqzgskkfj2nx7f4kwf0xjhbg35ny4nyn81dx";
+          name = "recipe";
+        };
+        packageRequires = [ expand-region ];
+        meta = {
+          homepage = "https://melpa.org/#/vim-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vimish-fold = callPackage ({ cl-lib ? null
+                               , emacs
+                               , f
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "vimish-fold";
+        ename = "vimish-fold";
+        version = "0.2.3";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "vimish-fold";
+          rev = "e631352fbf910f692807afe38a2b6a7882a403a8";
+          sha256 = "152w1wqxj7yzm3d12lknzz1aix4h8cb571sjns3m1s7azsr3vfbq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vimish-fold";
+          sha256 = "017by9w53d8pqlsazfycmhdv16yylks308p5vxp1rcw2qacpc5m3";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs f ];
+        meta = {
+          homepage = "https://melpa.org/#/vimish-fold";
+          license = lib.licenses.free;
+        };
+      }) {};
+    virtualenvwrapper = callPackage ({ dash
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , s }:
+      melpaBuild {
+        pname = "virtualenvwrapper";
+        ename = "virtualenvwrapper";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "porterjamesj";
+          repo = "virtualenvwrapper.el";
+          rev = "5649028ea0c049cb7dfa2105285dee9c00d189fb";
+          sha256 = "1xcjjs394vlaz94xh52kqaq94gkbmmjqmxlg7wly8vfn9vh34mws";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/virtualenvwrapper";
+          sha256 = "0rn5vwncx8z69xp8hspr06nzkf28l9flchpb2936c2nalmhx6m8i";
+          name = "recipe";
+        };
+        packageRequires = [ dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/virtualenvwrapper";
+          license = lib.licenses.free;
+        };
+      }) {};
+    visible-mark = callPackage ({ fetchFromGitLab
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "visible-mark";
+        ename = "visible-mark";
+        version = "0.1";
+        src = fetchFromGitLab {
+          owner = "iankelling";
+          repo = "visible-mark";
+          rev = "c1852e13b6b61982738b56977a452ec9026faf1b";
+          sha256 = "15zdbvv6c114mv6hdq375l7ax70sss06p9d7m86hgssc3kiv9vsv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/visible-mark";
+          sha256 = "1rp0gnz28m1drwb1hhsf0mwxzdppdi88hscf788qw8cw65gckv80";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/visible-mark";
+          license = lib.licenses.free;
+        };
+      }) {};
+    visual-fill-column = callPackage ({ emacs
+                                      , fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "visual-fill-column";
+        ename = "visual-fill-column";
+        version = "1.11";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "visual-fill-column";
+          rev = "57c2a72d46900117ea92e0a01b97e19481800503";
+          sha256 = "086zfx4lh168rg50ndg8qzdh8vzc6sgfii7qzcn4mg4wa74hnp9y";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/visual-fill-column";
+          sha256 = "19y0pwaybjal2rc7migdbnafpi4dfbxvrzgfqr8dlvd9q68v08y5";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/visual-fill-column";
+          license = lib.licenses.free;
+        };
+      }) {};
+    visual-regexp = callPackage ({ cl-lib ? null
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "visual-regexp";
+        ename = "visual-regexp";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "benma";
+          repo = "visual-regexp.el";
+          rev = "b3096c2d391ff4e28a2a4e8cd82efbf11071ea85";
+          sha256 = "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/visual-regexp";
+          sha256 = "16bdqq2j7pnjq3j6qa4rhxzidqdhyg80c7nazd93smis8rcv5d0z";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/visual-regexp";
+          license = lib.licenses.free;
+        };
+      }) {};
+    visual-regexp-steroids = callPackage ({ fetchFromGitHub
+                                          , fetchurl
+                                          , lib
+                                          , melpaBuild
+                                          , visual-regexp }:
+      melpaBuild {
+        pname = "visual-regexp-steroids";
+        ename = "visual-regexp-steroids";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "benma";
+          repo = "visual-regexp-steroids.el";
+          rev = "a6420b25ec0fbba43bf57875827092e1196d8a9e";
+          sha256 = "1isqa4ck6pm4ykcrkr0g1qj8664jkpcsrq0f8dlb0sksns2dqkwj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/visual-regexp-steroids";
+          sha256 = "1xkrzyyll8wmb67m75lfm9k8qcm068km8r1k8hcsadpkd01bx1lr";
+          name = "recipe";
+        };
+        packageRequires = [ visual-regexp ];
+        meta = {
+          homepage = "https://melpa.org/#/visual-regexp-steroids";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vlf = callPackage ({ fetchFromGitHub
+                       , fetchurl
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "vlf";
+        ename = "vlf";
+        version = "1.7.1";
+        src = fetchFromGitHub {
+          owner = "m00natic";
+          repo = "vlfi";
+          rev = "df677c128f8abc764b51d2a0ed26071618e686de";
+          sha256 = "1fx2ngjh3y69ynih328jiy8132z9y7q7s91rzw8mgpf3hnfmaqly";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vlf";
+          sha256 = "1ipkv5kmda0l39xwbf7ns9p0mx3kb781mxsm9vmbkhr5x577s2j8";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vlf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    voca-builder = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "voca-builder";
+        ename = "voca-builder";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "yitang";
+          repo = "voca-builder";
+          rev = "224402532da28e45edd398fda61ecbddb97d22d3";
+          sha256 = "0q1rwqjwqcnsr57s531pwlm464q8wx5vvdm5rj2xy9b3yi6phis1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/voca-builder";
+          sha256 = "0mbw87mpbb8rw7xzhmg6yjla2c80x9820kw4q00x00ny5rbhm76y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/voca-builder";
+          license = lib.licenses.free;
+        };
+      }) {};
+    volatile-highlights = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "volatile-highlights";
+        ename = "volatile-highlights";
+        version = "1.11";
+        src = fetchFromGitHub {
+          owner = "k-talo";
+          repo = "volatile-highlights.el";
+          rev = "fb2abc2d4d4051a9a6b7c8de2fe7564161f01f24";
+          sha256 = "1v0chqj5jir4685jd8ahw86g9zdmi6xd05wmzhyw20rbk924fcqf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/volatile-highlights";
+          sha256 = "1r6in919aqdziv6bgzp4k7jqa87bd287pacq615sd5m1nzva1a4d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/volatile-highlights";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vue-html-mode = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "vue-html-mode";
+        ename = "vue-html-mode";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "vue-html-mode";
+          rev = "361a9fa117f044c3072dc5a7344ff7be31725849";
+          sha256 = "1z1pphxli8fcahw9fhmxls1v9nyd34pz51jwwa6g468zvdmcjb77";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vue-html-mode";
+          sha256 = "1f4pjfp4298jkvhacxygddg557hhyivgnm5x3yhjipfv6fjkgl2s";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/vue-html-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    vue-mode = callPackage ({ edit-indirect
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , mmm-mode
+                            , ssass-mode
+                            , vue-html-mode }:
+      melpaBuild {
+        pname = "vue-mode";
+        ename = "vue-mode";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "AdamNiederer";
+          repo = "vue-mode";
+          rev = "48ff04657613f39848d0e66e9dd367aa2dc19e89";
+          sha256 = "014vx8jkscj1c614v78dqlqlg7n0zc3c2db3dqvxvaz417i5mxq0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/vue-mode";
+          sha256 = "0npzn7pycqfdakv4plkigq8aw1bqhz3y03y3ypx21q5a186ds0g5";
+          name = "recipe";
+        };
+        packageRequires = [ edit-indirect mmm-mode ssass-mode vue-html-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/vue-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    w32-browser = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "w32-browser";
+        ename = "w32-browser";
+        version = "235";
+        src = fetchFromGitHub {
+          owner = "emacsorphanage";
+          repo = "w32-browser";
+          rev = "a8126b60bf18193e8e4ec6f699b5694b6f71a062";
+          sha256 = "13wjvzsas7in8f09sc2qj17dz25wizg1l0r2krgp1zymy92p8f97";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/w32-browser";
+          sha256 = "16sp0gn4yv7iaa55i2kvfsqw3610gr3x31l9lqa14r9xmfhda1rn";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/w32-browser";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wacspace = callPackage ({ cl-lib ? null
+                            , dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "wacspace";
+        ename = "wacspace";
+        version = "0.4.2";
+        src = fetchFromGitHub {
+          owner = "shosti";
+          repo = "wacspace.el";
+          rev = "b951995c204ff23699d2bda515a96221147a725d";
+          sha256 = "0jl3n79wmbxnrbf83qjq0v5pzhvv67i9r5sp2zj8nc86hh7dvjsd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wacspace";
+          sha256 = "1xy0mprvyi37zmgj1yrlh5ni08j47lpag1jm3a76cgghgmlfjxrl";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/wacspace";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wandbox = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , request
+                           , s }:
+      melpaBuild {
+        pname = "wandbox";
+        ename = "wandbox";
+        version = "0.6.4";
+        src = fetchFromGitHub {
+          owner = "kosh04";
+          repo = "emacs-wandbox";
+          rev = "e002fe41f2cd9b4ce2b1dc80b83301176e9117f1";
+          sha256 = "0fnbj3k21lisgs94pf8z13cdymmclgpn994xq3xly4gq6l8k0an5";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wandbox";
+          sha256 = "0myyln82nx462bj79acvqxwvmblxild4vbygcrzw5chcwy6crvlz";
+          name = "recipe";
+        };
+        packageRequires = [ emacs request s ];
+        meta = {
+          homepage = "https://melpa.org/#/wandbox";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wc-goal-mode = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "wc-goal-mode";
+        ename = "wc-goal-mode";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "bnbeckwith";
+          repo = "wc-goal-mode";
+          rev = "a8aa227b1a692dd6399855add84b5e37f6c5d9cb";
+          sha256 = "0mnfk2ys8axjh696cq5msr5cdr91icl1i3mi0dd2y00lvh6sbm7w";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wc-goal-mode";
+          sha256 = "0l3gh96njjldp7n13jn1zjrp17h7ivjak102j6wwspgg6v2h5419";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wc-goal-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wc-mode = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "wc-mode";
+        ename = "wc-mode";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "bnbeckwith";
+          repo = "wc-mode";
+          rev = "122f90bd1d422a84cc50acabd350d44d39ddeb69";
+          sha256 = "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wc-mode";
+          sha256 = "191dmxfpqnj7d43cr0fhdmj5ldfs7w9zg5pb2lv9wvlfl7asdid6";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wc-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wcheck-mode = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "wcheck-mode";
+        ename = "wcheck-mode";
+        version = "2016.1.30";
+        src = fetchFromGitHub {
+          owner = "tlikonen";
+          repo = "wcheck-mode";
+          rev = "adb9dd9f39cb0bd0000d140d6e778c4864dfde08";
+          sha256 = "113prlamr2j6y6n0w43asffawwa4qiq63mgwm85v04h6pr8bd90l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wcheck-mode";
+          sha256 = "0cmdvhgax6r5svn3wkwll4j271qj70g8182c58riwnkhiajxmn3k";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wcheck-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    weather-metno = callPackage ({ cl-lib ? null
+                                 , emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "weather-metno";
+        ename = "weather-metno";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "ruediger";
+          repo = "weather-metno-el";
+          rev = "b59680c1ab908b32513954034ba894dfb8564dd8";
+          sha256 = "0qx92jqzsimjk92pql2h8pzhq66mqijwqgjqwp7rmq5b6k0nvx1z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/weather-metno";
+          sha256 = "0h7p4l8y75h27pgk45f0mk3gjd43jk8q97gjf85a9b0afd63d3f6";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/weather-metno";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-beautify = callPackage ({ fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "web-beautify";
+        ename = "web-beautify";
+        version = "0.3.2";
+        src = fetchFromGitHub {
+          owner = "yasuyk";
+          repo = "web-beautify";
+          rev = "aa95055224c24f38736716809fec487cd817c38d";
+          sha256 = "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-beautify";
+          sha256 = "06ky2svhca8hjgmvxrg3h6ya7prl72q1r88x967yc6b0qq3r7g0f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/web-beautify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-completion-data = callPackage ({ fetchFromGitHub
+                                       , fetchurl
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "web-completion-data";
+        ename = "web-completion-data";
+        version = "0.2";
+        src = fetchFromGitHub {
+          owner = "osv";
+          repo = "web-completion-data";
+          rev = "c272c94e8a71b779c29653a532f619acad433a4f";
+          sha256 = "19nzjgvd2i5745283ck3k2vylrr6lnk9h3ggzwrwdhyd3m9433vm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-completion-data";
+          sha256 = "1zzdmhyn6bjaidk808s4pdk25a5rn4287949ps5vbpyniaf6gny9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/web-completion-data";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-mode = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "web-mode";
+        ename = "web-mode";
+        version = "16";
+        src = fetchFromGitHub {
+          owner = "fxbois";
+          repo = "web-mode";
+          rev = "3ff506aae50a47b277f2b95ff7b7a7c596664e6a";
+          sha256 = "17dw6a8d0p304f2sa4f9zwd8r48w2wbkc3fvbmxwlg4w12h7cwf0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-mode";
+          sha256 = "1vyhyc5nf4yj2m63inpwmcqvlsihaqw8nn8xvfdg44nhl6vjz97i";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/web-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-mode-edit-element = callPackage ({ emacs
+                                         , fetchFromGitHub
+                                         , fetchurl
+                                         , lib
+                                         , melpaBuild
+                                         , web-mode }:
+      melpaBuild {
+        pname = "web-mode-edit-element";
+        ename = "web-mode-edit-element";
+        version = "2.1";
+        src = fetchFromGitHub {
+          owner = "jtkDvlp";
+          repo = "web-mode-edit-element";
+          rev = "8b8ac07aa8c920dafd94c96a51effb0d6c0ed1ce";
+          sha256 = "0aj1ibmnrbaxrkwjf1fac2qzazrj39pql3prcibnchc2bmp191aa";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-mode-edit-element";
+          sha256 = "1kcycsjjv1bzfn93aq3cdh5d913izrr8cdxmknbyriyipsqryh3l";
+          name = "recipe";
+        };
+        packageRequires = [ emacs web-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/web-mode-edit-element";
+          license = lib.licenses.free;
+        };
+      }) {};
+    web-search = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "web-search";
+        ename = "web-search";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "web-search.el";
+          rev = "72fea0e7429ed3d6932a497b568335316d8ef283";
+          sha256 = "1f2g6r24482k1dra1z92yahwvqiryc8p5p1v2naxv16ysa461a34";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/web-search";
+          sha256 = "08iflbp6rmsxsy2lahsdjj9ki70ixqhsas0vxzawz5pi5vk2x9gj";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/web-search";
+          license = lib.licenses.free;
+        };
+      }) {};
+    webpaste = callPackage ({ cl-lib ? null
+                            , emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , request }:
+      melpaBuild {
+        pname = "webpaste";
+        ename = "webpaste";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "etu";
+          repo = "webpaste.el";
+          rev = "2da60b8857d107721b089346121a7d51296a58bf";
+          sha256 = "1r945qz7z5z80qvzlqvz985mz51zy3pj3fk36y0flc380y4ap6hd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/webpaste";
+          sha256 = "1pqqapslb5wxfrf1ykrj5jxcl43pix17lawgdqrqkv5fyxbhmfpm";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs request ];
+        meta = {
+          homepage = "https://melpa.org/#/webpaste";
+          license = lib.licenses.free;
+        };
+      }) {};
+    websocket = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "websocket";
+        ename = "websocket";
+        version = "1.10";
+        src = fetchFromGitHub {
+          owner = "ahyatt";
+          repo = "emacs-websocket";
+          rev = "0d96ba2ff5a25c6cd6c66f417cc9b5f38a4308ba";
+          sha256 = "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/websocket";
+          sha256 = "1v8jlpahp30lihz7mdznwl6pyrbsdbqznli2wb5gfblnlxil04lg";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/websocket";
+          license = lib.licenses.free;
+        };
+      }) {};
+    weechat = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild
+                           , s
+                           , tracking }:
+      melpaBuild {
+        pname = "weechat";
+        ename = "weechat";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "the-kenny";
+          repo = "weechat.el";
+          rev = "bcf714e32b012c6a89d5c0a82ab3a74d454908ff";
+          sha256 = "1gm2yhz3qy55qqwf0ccrqw4nifxaig4jpdqmcl0ydx1n3myxx64l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/weechat";
+          sha256 = "0sxrms5024bi4irv8x8s8j1zcyd62cpqm0zv4dgpm65wnpc7xc46";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs s tracking ];
+        meta = {
+          homepage = "https://melpa.org/#/weechat";
+          license = lib.licenses.free;
+        };
+      }) {};
+    weibo = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "weibo";
+        ename = "weibo";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "austin-----";
+          repo = "weibo.emacs";
+          rev = "a8af467e5660a35342029c2796de99cd551454b2";
+          sha256 = "14vmgfz45wmpjfhfx3pfjn3bak8qvj1zk1w4xc5w1cfl6vnij6hv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/weibo";
+          sha256 = "1ndgfqqb0gvy8p2fisi57s9bsa2nrnv80smg78m89i4cwagbz6yd";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/weibo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep = callPackage ({ fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "wgrep";
+        ename = "wgrep";
+        version = "2.1.10";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "3028e9b31427c528d9343d458abcb2222813410f";
+          sha256 = "1gc3xwj7dffwpmjq1189x27ij25v2pp909xpdxc69a01yx5474i1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep";
+          sha256 = "09xs420lvbsmz5z28rf6f1iwa0ixkk0w24qbj6zhl9hidh4mv9y4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep-ack = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild
+                             , wgrep }:
+      melpaBuild {
+        pname = "wgrep-ack";
+        ename = "wgrep-ack";
+        version = "2.1.10";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "9448a9d597bd089ae61e58add2c5dbecb0aa2b8f";
+          sha256 = "0x27h0ccq93avsmb8gim43zklbsb4ghfw30a7hjvz0ilfx02gdca";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep-ack";
+          sha256 = "03l1a681cwnn06m77xg0a547892gy8mh415v9rg3h6lkxwcld8wh";
+          name = "recipe";
+        };
+        packageRequires = [ wgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep-ack";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep-ag = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , wgrep }:
+      melpaBuild {
+        pname = "wgrep-ag";
+        ename = "wgrep-ag";
+        version = "2.1.10";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "9448a9d597bd089ae61e58add2c5dbecb0aa2b8f";
+          sha256 = "0x27h0ccq93avsmb8gim43zklbsb4ghfw30a7hjvz0ilfx02gdca";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep-ag";
+          sha256 = "1b2mj06kws29ha7g16l5d1s3p3nwyw8rprbpaiijdk9nxqcm0a8a";
+          name = "recipe";
+        };
+        packageRequires = [ wgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep-ag";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep-helm = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , wgrep }:
+      melpaBuild {
+        pname = "wgrep-helm";
+        ename = "wgrep-helm";
+        version = "2.1.10";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "976eb41327e9c15c3be860a9d9962b3c3df9712e";
+          sha256 = "1nh9gl1k54w7402fkphgw35bq3lljhv1alaaig2xfrjcm5x2phwv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep-helm";
+          sha256 = "1hh7isc9xifkrdfw88jw0z0xmfazrbcis6d355bcaxlnjy6fzm8b";
+          name = "recipe";
+        };
+        packageRequires = [ wgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep-helm";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wgrep-pt = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , wgrep }:
+      melpaBuild {
+        pname = "wgrep-pt";
+        ename = "wgrep-pt";
+        version = "2.1.10";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "Emacs-wgrep";
+          rev = "cd8df1be69257da2e48dc3eae4badc674468b61c";
+          sha256 = "1df7lal4c0zsinrfjp4qv2k3xi1kbl66d36in47pmiam1kkqs9fs";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wgrep-pt";
+          sha256 = "1gphdf85spsywj3s3ypb7dwrqh0zd70n2vrbgjqkbnfbwqjp9qbg";
+          name = "recipe";
+        };
+        packageRequires = [ wgrep ];
+        meta = {
+          homepage = "https://melpa.org/#/wgrep-pt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    which-key = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "which-key";
+        ename = "which-key";
+        version = "3.3.1";
+        src = fetchFromGitHub {
+          owner = "justbur";
+          repo = "emacs-which-key";
+          rev = "2f5661646b771f6c5a00a8a9aaa3f183abd5f84d";
+          sha256 = "1dh6kr00wmql46whjkvnl953zngiv5j99ypvr1b3cb2174623afb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/which-key";
+          sha256 = "0vqbhfzcv9m58w41zdhpiymhgl38n15c6d7ffd99narxlkckcj59";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/which-key";
+          license = lib.licenses.free;
+        };
+      }) {};
+    whitaker = callPackage ({ dash
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "whitaker";
+        ename = "whitaker";
+        version = "0.3";
+        src = fetchFromGitHub {
+          owner = "Fuco1";
+          repo = "whitaker";
+          rev = "28172edce0f727f0f7f17d8ba71d5510d877bb45";
+          sha256 = "01fwhrfi92pcrwc4yn03pflc9wj07mhzj0a0i5amar4f9bj6m5b4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/whitaker";
+          sha256 = "17fnvb3jh6fi4wddn5qnp6i6ndidg8jf9ac69q9j032c2msr07nj";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/whitaker";
+          license = lib.licenses.free;
+        };
+      }) {};
+    whitespace-cleanup-mode = callPackage ({ fetchFromGitHub
+                                           , fetchurl
+                                           , lib
+                                           , melpaBuild }:
+      melpaBuild {
+        pname = "whitespace-cleanup-mode";
+        ename = "whitespace-cleanup-mode";
+        version = "0.10";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "whitespace-cleanup-mode";
+          rev = "e1e250aa6f5b1a526778c7a501cdec98ba29c0a4";
+          sha256 = "0xmwhybb8x6wwfr55ym5xg4dhy1aqx1abxy9qskn7h3zf1z4pgg2";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/whitespace-cleanup-mode";
+          sha256 = "1fhdjrxxyfx4xsgfjqq9p7vhj98wmqf2r00mv8k27vdaxwsnm5p3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/whitespace-cleanup-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    whizzml-mode = callPackage ({ emacs
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild }:
+      melpaBuild {
+        pname = "whizzml-mode";
+        ename = "whizzml-mode";
+        version = "0.3.0";
+        src = fetchFromGitHub {
+          owner = "whizzml";
+          repo = "whizzml-mode";
+          rev = "eca56d0fd51c5f41ef3e84e363f66d717ea5b160";
+          sha256 = "0rli8jc9fig32dx7icvmwmmdzkvar12323xy25vh296xzcyjrgba";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/whizzml-mode";
+          sha256 = "0gas9xfpz5v9fbhjxhd4msihwz9w4a05l5icsaclxvh06f92wcyk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/whizzml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    whole-line-or-region = callPackage ({ fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild }:
+      melpaBuild {
+        pname = "whole-line-or-region";
+        ename = "whole-line-or-region";
+        version = "1.3.1";
+        src = fetchFromGitHub {
+          owner = "purcell";
+          repo = "whole-line-or-region";
+          rev = "a60e022b30c2f4d3118bcaef1adb77b90e0ca941";
+          sha256 = "0ip0vkqb4dm88xqzgwc9yaxzf4sc4x006m6z73a3lbfmrncy2c1d";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/whole-line-or-region";
+          sha256 = "0zz9i1jxayw2p6ggfxjvhb1mc3ly9iy4jvk23ycndz9lnnzkch0y";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/whole-line-or-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    widget-mvc = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "widget-mvc";
+        ename = "widget-mvc";
+        version = "0.0.2";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-widget-mvc";
+          rev = "2576e6f0c35d8dedfa9c2cd6ea4fb4c14cb72b63";
+          sha256 = "0fqv63m8z5m5ghh4j8ccdnmgcdkvi4jqpg9z7lp17g4p9pq3xfjf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/widget-mvc";
+          sha256 = "0njzvdlxb7z480r6dvmksgivhz7rvnil517aj86qx0jbc5mr3l2f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/widget-mvc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wiki-nav = callPackage ({ button-lock
+                            , fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild
+                            , nav-flash }:
+      melpaBuild {
+        pname = "wiki-nav";
+        ename = "wiki-nav";
+        version = "1.0.2";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "button-lock";
+          rev = "86c514d20b9b67c1e87112a574f65c7d53aec2ec";
+          sha256 = "0yy4z9k30prsjaig39x20f925dbl2svs8n3lgshcbv5aijffkq07";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wiki-nav";
+          sha256 = "19mabz0y3fcqsm68ijwwbbqylxgp71anc0a31zgc1blha9jivvwy";
+          name = "recipe";
+        };
+        packageRequires = [ button-lock nav-flash ];
+        meta = {
+          homepage = "https://melpa.org/#/wiki-nav";
+          license = lib.licenses.free;
+        };
+      }) {};
+    win-switch = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "win-switch";
+        ename = "win-switch";
+        version = "1.1.4";
+        src = fetchFromGitHub {
+          owner = "genovese";
+          repo = "win-switch";
+          rev = "954eb5e4c5737f0c06368c42a7f1c3dd374d782f";
+          sha256 = "1xpx4sc1g1w8w0yc39k2dys83m8skrpvi745bfrzdl47jngrf54h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/win-switch";
+          sha256 = "1s6inp5kf763rngn58r02fd7n7z3dd55j6hb7s9dgvc856d5z3my";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/win-switch";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-end-visible = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild }:
+      melpaBuild {
+        pname = "window-end-visible";
+        ename = "window-end-visible";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "rolandwalker";
+          repo = "window-end-visible";
+          rev = "bdc3d182e5f76e75f1b8cc49357194b36e48b67c";
+          sha256 = "049bwa5g0z1b9nrsc1vc4511aqcq9fvl16xg493wj651g6q9qigb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-end-visible";
+          sha256 = "1p78n7yysj18404cdc6vahfrzwn5pixyfnja8ch48rj4fm4jbxwq";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/window-end-visible";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-layout = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "window-layout";
+        ename = "window-layout";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "kiwanami";
+          repo = "emacs-window-layout";
+          rev = "cd2e4f967b610c2bbef53182829e47250d027056";
+          sha256 = "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-layout";
+          sha256 = "061mvxcj4mg2pmkln7nn6gyscs08aid4cfc6xck0x5gzr1snr639";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/window-layout";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-numbering = callPackage ({ fetchFromGitHub
+                                    , fetchurl
+                                    , lib
+                                    , melpaBuild }:
+      melpaBuild {
+        pname = "window-numbering";
+        ename = "window-numbering";
+        version = "1.1.2";
+        src = fetchFromGitHub {
+          owner = "nschum";
+          repo = "window-numbering.el";
+          rev = "653afce73854d629c2b9d63dad73126032d6a24c";
+          sha256 = "1rz2a1l3apavsknlfy0faaivqgpj4x9jz3hbysbg9pydpcwqgf64";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-numbering";
+          sha256 = "0x3n0ni16q69lfpyjz61spqghmhvc3cwa4aj80ihii3pk80f769x";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/window-numbering";
+          license = lib.licenses.free;
+        };
+      }) {};
+    window-purpose = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , imenu-list
+                                  , let-alist
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "window-purpose";
+        ename = "window-purpose";
+        version = "1.7";
+        src = fetchFromGitHub {
+          owner = "bmag";
+          repo = "emacs-purpose";
+          rev = "a302340e183d20baa4445858d321f43449298829";
+          sha256 = "1dpy8hkjn87wbdkzyabhay4jx4dgc0ab2flyf0rjq1qaazk393sc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/window-purpose";
+          sha256 = "1y70jrba3gf9fyf2qdihfshbsblzb88yv9fkcswdzrpq5kmgwp84";
+          name = "recipe";
+        };
+        packageRequires = [ emacs imenu-list let-alist ];
+        meta = {
+          homepage = "https://melpa.org/#/window-purpose";
+          license = lib.licenses.free;
+        };
+      }) {};
+    windsize = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "windsize";
+        ename = "windsize";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "grammati";
+          repo = "windsize";
+          rev = "014b0836f9ffe45fa7e0ccc84576fbef74815a59";
+          sha256 = "1f4v0xd341qs4kfnjqhgf8j26valvg6pz4rwcz0zj0s23niy2yil";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/windsize";
+          sha256 = "1fzqf86d7pimnc87xdgvpv4hnv7j6ngmk1sjvazj6726xygswkyv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/windsize";
+          license = lib.licenses.free;
+        };
+      }) {};
+    winring = callPackage ({ fetchFromGitLab
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "winring";
+        ename = "winring";
+        version = "5.1";
+        src = fetchFromGitLab {
+          owner = "warsaw";
+          repo = "winring";
+          rev = "f2d072bd446b73e93b127523f19ea82b99b9267f";
+          sha256 = "1j0g52panhx91hqw5glnlv5vnnpnjyx49xc8xif8mjf0m27723fv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/winring";
+          sha256 = "1mgr5z4h7mf677xx8md3pqd31k17qs62z9iamfih206fcwgh24k4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/winring";
+          license = lib.licenses.free;
+        };
+      }) {};
+    winum = callPackage ({ cl-lib ? null
+                         , dash
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "winum";
+        ename = "winum";
+        version = "2.1.0";
+        src = fetchFromGitHub {
+          owner = "deb0ch";
+          repo = "emacs-winum";
+          rev = "efcb14fd306afbc738666e6b2e5a8a1bb5904392";
+          sha256 = "0v1qmw3svydk7dlqbcymy1g1bygkfpb2h4b97zdp12xvd8mww9ny";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/winum";
+          sha256 = "0yyvjmvqif6glh9ri6049nxcmgib9mxdhy6816kjhsaqr570f9pw";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib dash ];
+        meta = {
+          homepage = "https://melpa.org/#/winum";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wisp-mode = callPackage ({ fetchhg
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "wisp-mode";
+        version = "0.9.8";
+        src = fetchhg {
+          url = "https://bitbucket.com/ArneBab/wisp";
+          rev = "d04938232934";
+          sha256 = "1sjadb0kh3hrdsvwywi04agrzrs21sxzh1v1km0z3x6f15nr048c";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/5b7972602399f9df9139cff177e38653bb0f43ed/recipes/wisp-mode";
+          sha256 = "10zkp1qbvl8dmxij7zz4p1fixs3891xr1nr57vyb3llar9fgzglc";
+          name = "wisp-mode";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wisp-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wispjs-mode = callPackage ({ clojure-mode
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "wispjs-mode";
+        ename = "wispjs-mode";
+        version = "0.2.0";
+        src = fetchFromGitHub {
+          owner = "krisajenkins";
+          repo = "wispjs-mode";
+          rev = "be094c3c3223c07b26b5d8bb8fa7aa6866369b3f";
+          sha256 = "188h1sy4mxzrkwi3zgiw108c5f71rkj5agdkf9yy9v8c1bkawm4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wispjs-mode";
+          sha256 = "0qzm0dcvjndasnbqpkdc56f1qv66gxv8dfgfcwq5l1bp5wyx813p";
+          name = "recipe";
+        };
+        packageRequires = [ clojure-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/wispjs-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    with-editor = callPackage ({ async
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "with-editor";
+        ename = "with-editor";
+        version = "2.8.0";
+        src = fetchFromGitHub {
+          owner = "magit";
+          repo = "with-editor";
+          rev = "db11c10b8ca981f00d9fc7f8e0669a6c15710502";
+          sha256 = "1bbzvxnjpxqyvi808isld025b3pcidn4r2xf8hnk9bmzcfdvdr6q";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/with-editor";
+          sha256 = "1wsl1vwvywlc32r5pcc9jqd0pbzq1sn4fppxk3vwl0s5h40v8rnb";
+          name = "recipe";
+        };
+        packageRequires = [ async emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/with-editor";
+          license = lib.licenses.free;
+        };
+      }) {};
+    with-simulated-input = callPackage ({ emacs
+                                        , fetchFromGitHub
+                                        , fetchurl
+                                        , lib
+                                        , melpaBuild
+                                        , s
+                                        , seq }:
+      melpaBuild {
+        pname = "with-simulated-input";
+        ename = "with-simulated-input";
+        version = "2.2";
+        src = fetchFromGitHub {
+          owner = "DarwinAwardWinner";
+          repo = "with-simulated-input";
+          rev = "9efeb236c8f6887a8591d6241962c37266d8e726";
+          sha256 = "1v8c85ahsk9pz3zndh0c9xba4c78f4b1j97hbv62jirvr75b079g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/with-simulated-input";
+          sha256 = "0113la76nbp18vaffsd7w7wcw5k2sqwgnjq1gslf4khdfqghrkwk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs s seq ];
+        meta = {
+          homepage = "https://melpa.org/#/with-simulated-input";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wn-mode = callPackage ({ emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "wn-mode";
+        ename = "wn-mode";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "luismbo";
+          repo = "wn-mode";
+          rev = "6e7029b0d5773a79914a289937be068784931cad";
+          sha256 = "0nmzh6dynbm8vglp4pqz81s2z68jbnasvamvi1x1iawf8g9zfyix";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wn-mode";
+          sha256 = "1qy1pkfdnm4pska4cnff9cx2c812ilymajhpmsfc9jdbvhzwrwg3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wn-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wolfram = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "wolfram";
+        ename = "wolfram";
+        version = "1.1.1";
+        src = fetchFromGitHub {
+          owner = "hsjunnesson";
+          repo = "wolfram.el";
+          rev = "6b5dceae3fd6cdb4d7562510deeafa02c93c010b";
+          sha256 = "1ijyjw2793i7n00i30ma8lw4fzi9w63m6k0xgjx6j78r5y7pfj2g";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wolfram";
+          sha256 = "02xp1916v9rydh0586jkx71v256qdg63f87s3m0agc2znnrni9h4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wolfram";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wonderland = callPackage ({ dash
+                              , dash-functional
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , multi }:
+      melpaBuild {
+        pname = "wonderland";
+        ename = "wonderland";
+        version = "0.1.1";
+        src = fetchFromGitHub {
+          owner = "kurisuwhyte";
+          repo = "emacs-wonderland";
+          rev = "28cf6b37000c395ece9519db53147fb826a42bc4";
+          sha256 = "018r35dz8z03wcrx9s28pjisayy21549i232mp6wy9mxkrkxbzpc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wonderland";
+          sha256 = "1b4p49mbzqffm2b2y8sbbi56vnkxap2jscsmla9l6l8brybqjppi";
+          name = "recipe";
+        };
+        packageRequires = [ dash dash-functional emacs multi ];
+        meta = {
+          homepage = "https://melpa.org/#/wonderland";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wordgen = callPackage ({ cl-lib ? null
+                           , emacs
+                           , fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "wordgen";
+        ename = "wordgen";
+        version = "0.1.4";
+        src = fetchFromGitHub {
+          owner = "Fanael";
+          repo = "wordgen.el";
+          rev = "aacad928ae99a953e034a831dfd0ebdf7d52ac1d";
+          sha256 = "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wordgen";
+          sha256 = "0vlrplm3pmpwwa8p8j6lck97b875gzzm7vxxc8l9l18vs237cz1m";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wordgen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wordsmith-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "wordsmith-mode";
+        ename = "wordsmith-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "istib";
+          repo = "wordsmith-mode";
+          rev = "45df3bca3b49f7ee9d59278e4f6662d63d1dec33";
+          sha256 = "0yxhw6kv12ny1fg5k0j9k7z3f54hnaq6h6b454197lssm9xjgg2b";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wordsmith-mode";
+          sha256 = "0s6b6dfqn31jdcgs2mlmvwgpr5a4zs4xi8m002ly11c6sn035xb1";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wordsmith-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    worf = callPackage ({ ace-link
+                        , fetchFromGitHub
+                        , fetchurl
+                        , hydra
+                        , lib
+                        , melpaBuild
+                        , swiper }:
+      melpaBuild {
+        pname = "worf";
+        ename = "worf";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "abo-abo";
+          repo = "worf";
+          rev = "f36755447b588b739b2bf6ab0fb5eb5f4d8db3df";
+          sha256 = "0l2n3vwk251ba06xdrs9z0bp4ligfdjd259a84ap2z3sqdfa98x4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/worf";
+          sha256 = "1fkb2ddl684dijsb0cqgmfbg1nz4xv43rb7g5rah05rchy5sgkpi";
+          name = "recipe";
+        };
+        packageRequires = [ ace-link hydra swiper ];
+        meta = {
+          homepage = "https://melpa.org/#/worf";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wrap-region = callPackage ({ dash
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "wrap-region";
+        ename = "wrap-region";
+        version = "0.7.3";
+        src = fetchFromGitHub {
+          owner = "rejeep";
+          repo = "wrap-region.el";
+          rev = "5a910ad23ebb0649e644bf62ad042587341da5da";
+          sha256 = "03hjwm51sngkh7jjiwnqhflllqq6i99ib47rm2ja9ii0qyhj1qa0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wrap-region";
+          sha256 = "058518smxj3j3mr6ljzh7c9x5g23d24104p58sl9nhpw0cq9k28i";
+          name = "recipe";
+        };
+        packageRequires = [ dash ];
+        meta = {
+          homepage = "https://melpa.org/#/wrap-region";
+          license = lib.licenses.free;
+        };
+      }) {};
+    writegood-mode = callPackage ({ fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "writegood-mode";
+        ename = "writegood-mode";
+        version = "2.0.3";
+        src = fetchFromGitHub {
+          owner = "bnbeckwith";
+          repo = "writegood-mode";
+          rev = "b71757ec337e226909fb0422f0224e31acc71733";
+          sha256 = "038gliy6l931r02bf2dbhmp188sgk1rq46ngg9nhf5q5rkf3pi8p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/writegood-mode";
+          sha256 = "1lxammisaj04g5vr5lwms64ywf39w8knrq72x4i94wwzwx5ywi1d";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/writegood-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    writeroom-mode = callPackage ({ emacs
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , lib
+                                  , melpaBuild
+                                  , visual-fill-column }:
+      melpaBuild {
+        pname = "writeroom-mode";
+        ename = "writeroom-mode";
+        version = "3.7";
+        src = fetchFromGitHub {
+          owner = "joostkremers";
+          repo = "writeroom-mode";
+          rev = "d3252f54c8f9f37a19d6a21fb2291c3da7a7121a";
+          sha256 = "13nbls5qxz5z8firjxaip8m9vzfbbpxmwrmr01njbk4axpwrpj0z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/writeroom-mode";
+          sha256 = "1kpsrp3agw8bg3qbf5rf5k1a7ww30q5xsa8z5ywxajsaywjzx1bk";
+          name = "recipe";
+        };
+        packageRequires = [ emacs visual-fill-column ];
+        meta = {
+          homepage = "https://melpa.org/#/writeroom-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ws-butler = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "ws-butler";
+        ename = "ws-butler";
+        version = "0.6";
+        src = fetchFromGitHub {
+          owner = "lewang";
+          repo = "ws-butler";
+          rev = "323b651dd70ee40a25accc940b8f80c3a3185205";
+          sha256 = "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ws-butler";
+          sha256 = "1k5nhj37r51i0czrlafra53wir73p0nbq83jjccqmw4p4xk6axl3";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ws-butler";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wsd-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "wsd-mode";
+        ename = "wsd-mode";
+        version = "0.5.0";
+        src = fetchFromGitHub {
+          owner = "josteink";
+          repo = "wsd-mode";
+          rev = "b5e8ea0daeaa52f2ea6349e09902bd3216e96258";
+          sha256 = "1ibvcc54y2w72d3yvcczvzywribiwmkhlb1b08g4pyb1arclw393";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wsd-mode";
+          sha256 = "07vclmnj18wx9wlrcnsl99f9jlk3sb9g6pcdv8x1smk84gccpakc";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/wsd-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wttrin = callPackage ({ emacs
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild
+                          , xterm-color }:
+      melpaBuild {
+        pname = "wttrin";
+        ename = "wttrin";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "bcbcarl";
+          repo = "emacs-wttrin";
+          rev = "36375c46220aae42aa2c3fe20cf1c252e8ecad87";
+          sha256 = "1vjcfqqm6xwinwmi973n45jillc5j77da436wlv1ax0095xck4nl";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wttrin";
+          sha256 = "0msp8lja9nz6khz3dkasv8hnhkaayqxd7m58kma03hpkcjxnaxil";
+          name = "recipe";
+        };
+        packageRequires = [ emacs xterm-color ];
+        meta = {
+          homepage = "https://melpa.org/#/wttrin";
+          license = lib.licenses.free;
+        };
+      }) {};
+    wucuo = callPackage ({ emacs
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "wucuo";
+        ename = "wucuo";
+        version = "0.0.4";
+        src = fetchFromGitHub {
+          owner = "redguardtoo";
+          repo = "wucuo";
+          rev = "4e988c101fe82f2e8c7b3710d15982fe28b8d32d";
+          sha256 = "0g558miz9f4g8jlq532fs9yxj3il62zajgcjfndall2853hn54af";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/wucuo";
+          sha256 = "084fcv4dkflpka9vmxmxqdl0cgmjjh9wc6axr65j1ffmqd933y4a";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/wucuo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    x86-lookup = callPackage ({ cl-lib ? null
+                              , emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "x86-lookup";
+        ename = "x86-lookup";
+        version = "1.2.0";
+        src = fetchFromGitHub {
+          owner = "skeeto";
+          repo = "x86-lookup";
+          rev = "609b2ba70dc5a246ac9b4b5f89eb5ef4331519bf";
+          sha256 = "19zgq7mcc3wx847xc911fibvphbsws99m2l3k54xdjp8mb5qfdzm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/x86-lookup";
+          sha256 = "1clv1npvdkzsy0a08xrb880yflwzl4d5cc2c5xrs7b837mqpj8hd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/x86-lookup";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xbm-life = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "xbm-life";
+        ename = "xbm-life";
+        version = "0.1.3";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "xbm-life";
+          rev = "bde2b3730a02d237f7d95a8e3f3722f23f2d9201";
+          sha256 = "154xnfcmil9xjjmq4cyrfpir4ga4mgcmmbd7dja1m7rpk1734xk6";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xbm-life";
+          sha256 = "1pglxjd4cs630sayx17ai1xflpbyj3hry3156682bgwhqs1vw68q";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xbm-life";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xcode-project = callPackage ({ emacs
+                                 , fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "xcode-project";
+        ename = "xcode-project";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "nhojb";
+          repo = "xcode-project";
+          rev = "f5548a26a1afc0b0d873556c25f6d8b6b9c2aa8c";
+          sha256 = "0xb1cvjaw7zjnw6c5aq315vvlc3cncris62jis44jb8s5r8gxcrv";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xcode-project";
+          sha256 = "0igp30f6ypmp4l8zmdfpa5bza4avm7mq2gj8v7b3ii655v91n6vi";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/xcode-project";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xcscope = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "xcscope";
+        ename = "xcscope";
+        version = "1.4";
+        src = fetchFromGitHub {
+          owner = "dkogan";
+          repo = "xcscope.el";
+          rev = "57bff67460c587acf60f513de622b4c7ab312081";
+          sha256 = "1l1k85wlmjb2mgzx1la9f0p7j3q0mzj4hlrs98pf4bbfkdbqg7a7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xcscope";
+          sha256 = "06xh29cm5v3b5xwj32y0i0h0kvvy995840db4hvab2wn9jw68m8w";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xcscope";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xkcd = callPackage ({ fetchFromGitHub
+                        , fetchurl
+                        , json ? null
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "xkcd";
+        ename = "xkcd";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "vibhavp";
+          repo = "emacs-xkcd";
+          rev = "2c538d41a9728939cc5e8292faa78ed50997877d";
+          sha256 = "0p9p3w8i5w1pzh3y3yxz0rg5gywfq4m5anbiyrdn84vdd42jij4x";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xkcd";
+          sha256 = "0gy2952zg1rq5gl10x7iwbchz5jibfcvikd3chifqbmil80wh6b5";
+          name = "recipe";
+        };
+        packageRequires = [ json ];
+        meta = {
+          homepage = "https://melpa.org/#/xkcd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xml-rpc = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "xml-rpc";
+        ename = "xml-rpc";
+        version = "1.6.12";
+        src = fetchFromGitHub {
+          owner = "hexmode";
+          repo = "xml-rpc-el";
+          rev = "0ab093d60140d19e31d217c8abdc7dbdac944486";
+          sha256 = "0g52bmamcd54acyk6i47ar5jawad6ycvm9g656inb994wprnjin9";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xml-rpc";
+          sha256 = "14r6xgnpqsb2jlv52vgrhqf3qw8a6gmdyap3ylhilyxw71lxf1js";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xml-rpc";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xmlgen = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "xmlgen";
+        ename = "xmlgen";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "philjackson";
+          repo = "xmlgen";
+          rev = "dba66681f0c5e621a9e70e8afb34903c9ffe93c4";
+          sha256 = "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xmlgen";
+          sha256 = "0c77la6kl02qkapfzbjmhac60f8p837kwg8bp0686ylxh5s31zsh";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xmlgen";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xquery-tool = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "xquery-tool";
+        ename = "xquery-tool";
+        version = "0.1.10";
+        src = fetchFromGitHub {
+          owner = "paddymcall";
+          repo = "xquery-tool.el";
+          rev = "b81b5862e8541aca5231840eb176afad7ab55cf3";
+          sha256 = "0dv3gl9djs9sbsg5mhdfnnv61ir9xccqijh7i2b82gq2j3lqhibm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xquery-tool";
+          sha256 = "069injmvv9zzcbqbms94qx5wjj740jnik6sf3b4xjhln7z1yskp0";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/xquery-tool";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xref-js2 = callPackage ({ emacs
+                            , fetchFromGitHub
+                            , fetchurl
+                            , js2-mode
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "xref-js2";
+        ename = "xref-js2";
+        version = "1.5";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "xref-js2";
+          rev = "7e2bc6a8dad08a493d11d3554f6374584846b9e6";
+          sha256 = "1mmd27miv32sl8cj7qhy09yfh7v1zgw7rv4fdwk96msvd4qfdkqd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xref-js2";
+          sha256 = "1mfyszdi1wx2lqd9fyqm0ra227dcsjs8asc1dw2li0alwh7n4xs3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs js2-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/xref-js2";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xterm-color = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "xterm-color";
+        ename = "xterm-color";
+        version = "1.7";
+        src = fetchFromGitHub {
+          owner = "atomontage";
+          repo = "xterm-color";
+          rev = "42374a98f1039e105cad9f16ce585dffc96a3f1c";
+          sha256 = "09mzzql76z3gn39qnfjspm8waps8msbkilmlk3n2zrizpbps6crj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xterm-color";
+          sha256 = "0bvzi1mkxgm4vbq2va1sr0k9h3fdmppq79hkvbizc2xgk72sazpj";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/xterm-color";
+          license = lib.licenses.free;
+        };
+      }) {};
+    xtest = callPackage ({ cl-lib ? null
+                         , fetchFromGitHub
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "xtest";
+        ename = "xtest";
+        version = "1.1.0";
+        src = fetchFromGitHub {
+          owner = "promethial";
+          repo = "xtest";
+          rev = "b227414d714e7baddef79bd306a43024b9a34d45";
+          sha256 = "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/xtest";
+          sha256 = "1vbs4sb4frzg8d3l96ip9cc6lc86nbj50vpdfqazvxmdfd1sg4i7";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/xtest";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yafolding = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yafolding";
+        ename = "yafolding";
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "zenozeng";
+          repo = "yafolding.el";
+          rev = "57c015ddd7c3454571c80825bc5391d7a10fa1d7";
+          sha256 = "144v8nn4l8ngfdrsgj5nrxp09391gnfrqf950y956cbmqvnlw7z8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yafolding";
+          sha256 = "1yb1rlxa5f1y1xjqs7ndr5jnf9j5cv0ccqdpbrx4l9xkm3npw9zl";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yafolding";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yagist = callPackage ({ cl-lib ? null
+                          , fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "yagist";
+        ename = "yagist";
+        version = "0.8.12";
+        src = fetchFromGitHub {
+          owner = "mhayashi1120";
+          repo = "yagist.el";
+          rev = "97723a34750ccab5439eb9f6a2f67e4e0e234167";
+          sha256 = "0l9b888wv72j4hhkcfzsh09iqjxp2qjbjcjcfmvfhxf7il11pv8h";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yagist";
+          sha256 = "1mz86fq0pb4w54c66vd19m2492mkrzq2qi6ssnn2xwmn8vv02wdd";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/yagist";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yaml-imenu = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , yaml-mode }:
+      melpaBuild {
+        pname = "yaml-imenu";
+        ename = "yaml-imenu";
+        version = "1.0.1";
+        src = fetchFromGitHub {
+          owner = "knu";
+          repo = "yaml-imenu.el";
+          rev = "78a383098807014d9e7f2941196d8271677158cd";
+          sha256 = "1f85m0h19wjb0xrwkxrh7vrpphm8l5nkrv82zsl097dqw3ijj3f1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yaml-imenu";
+          sha256 = "03r7020gyr96m1z7p947nb7z8szzlkqv21g1hm10sqa8qp7k0qli";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yaml-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/yaml-imenu";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yaml-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yaml-mode";
+        ename = "yaml-mode";
+        version = "0.0.13";
+        src = fetchFromGitHub {
+          owner = "yoshiki";
+          repo = "yaml-mode";
+          rev = "2ace378bef2047a980fba0e42e3e6b5d990f2c66";
+          sha256 = "1wx4gqkg0v0mcykimiihrp4lg2s9qac31w8rw5frbs1r37v3l8x7";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yaml-mode";
+          sha256 = "0afp83xcr8h153cayyaszwkgpap0iyk351dlykmv6bv9d2m774mc";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/yaml-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yang-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yang-mode";
+        ename = "yang-mode";
+        version = "0.9.8";
+        src = fetchFromGitHub {
+          owner = "mbj4668";
+          repo = "yang-mode";
+          rev = "340aec635e359609b22f7e94df15af1af2b070f6";
+          sha256 = "0795z6s71vlb709n5lpx2f9adfjndafg1h5860zvy1qc4m1054rz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yang-mode";
+          sha256 = "0rl90xbcf3383ls95g1dixh2dr02kc4g60d324cqbb4h59wffp40";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yang-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yankpad = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "yankpad";
+        ename = "yankpad";
+        version = "1.6";
+        src = fetchFromGitHub {
+          owner = "Kungsgeten";
+          repo = "yankpad";
+          rev = "d2ea6920a2444f1ce6f53947640446b8e16f84b7";
+          sha256 = "1lw2d25rwszk35bi3gm3bg0cb30b8c2bf3p32b89shnsmwylw52m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yankpad";
+          sha256 = "1w5r9zk33cjgsmk45znfg32ym06nyqj5q3knr59jmn1fafx7a3z4";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yankpad";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yapfify = callPackage ({ fetchFromGitHub
+                           , fetchurl
+                           , lib
+                           , melpaBuild }:
+      melpaBuild {
+        pname = "yapfify";
+        ename = "yapfify";
+        version = "0.0.6";
+        src = fetchFromGitHub {
+          owner = "JorisE";
+          repo = "yapfify";
+          rev = "9e63a9135bd8dbfbee55819837a3aa0d119c5e6f";
+          sha256 = "1bf09hah2g8x0jbrdh4fm1v01qjymiv38yvv8a5qmfpv5k93lcrc";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yapfify";
+          sha256 = "0scl8lk1c5i7jp1qj5gg8zf3zyi8lkb57ijkmvcs4czzlyv3y9bm";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yapfify";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yard-mode = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yard-mode";
+        ename = "yard-mode";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "pd";
+          repo = "yard-mode.el";
+          rev = "28015f600c38efed37df025b76705f7edbf963ea";
+          sha256 = "1p1f1cdq1km2zlk1z8s2yhw9mgf3kdx48pgp7bhd0l2ybxh5kc85";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yard-mode";
+          sha256 = "0jmlcba8qapjwaaliz9gzs99if3wglkhmlpjzcdy3icx18sw8kzx";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yard-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yarn-mode = callPackage ({ emacs
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yarn-mode";
+        ename = "yarn-mode";
+        version = "1.0";
+        src = fetchFromGitHub {
+          owner = "anachronic";
+          repo = "yarn-mode";
+          rev = "99891000efe31214b065fa9446cd5e68c5c42ed8";
+          sha256 = "0cg06ba9yfgjzprq78cvhvvl06av0p2vhnmynddzbpgjgjnwskfy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yarn-mode";
+          sha256 = "08a3lrz670jsf531mn1hwhh7fg5dby6i749cscd6d4dyvkzpz5dg";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/yarn-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yascroll = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "yascroll";
+        ename = "yascroll";
+        version = "0.1";
+        src = fetchFromGitHub {
+          owner = "m2ym";
+          repo = "yascroll-el";
+          rev = "0a8b531b3a3c8afe7235c8c212e08bfe2021a629";
+          sha256 = "007837w6gd7k253h7g2in6l3ihcbwv733yiffs26pnymgk21xdqz";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yascroll";
+          sha256 = "11g7wn4hgdwnx3n7ra0sh8gk6rykwvrg9g2cihvcv7mjbqgcv53f";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yascroll";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yasnippet = callPackage ({ cl-lib ? null
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "yasnippet";
+        ename = "yasnippet";
+        version = "0.13.0";
+        src = fetchFromGitHub {
+          owner = "joaotavora";
+          repo = "yasnippet";
+          rev = "5a29fe67d70de3749e30ebb37206395b4d1a51a8";
+          sha256 = "0fkkplycrw8f8r30hjjxl1wm7p2irq2ipzzc1g7cc52abaal796p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yasnippet";
+          sha256 = "1r37vz5b8nj6hr6c2ki9fdbrs3kkb4zwimh8r4ixm10kdkk5jqds";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/yasnippet";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yasnippet-snippets = callPackage ({ fetchFromGitHub
+                                      , fetchurl
+                                      , lib
+                                      , melpaBuild
+                                      , yasnippet }:
+      melpaBuild {
+        pname = "yasnippet-snippets";
+        ename = "yasnippet-snippets";
+        version = "0.7";
+        src = fetchFromGitHub {
+          owner = "AndreaCrotti";
+          repo = "yasnippet-snippets";
+          rev = "88e209997a93f290206bb6e8c7c81d03307ae486";
+          sha256 = "0rlg8zlg15kpayvwszif5axwfvd9kc60ipppbfhcypas2gmw35ys";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yasnippet-snippets";
+          sha256 = "0daawvlw78ya38bbi95swjq8qk5jf5shsyv164m81y2gd8i5c183";
+          name = "recipe";
+        };
+        packageRequires = [ yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/yasnippet-snippets";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yatemplate = callPackage ({ emacs
+                              , fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild
+                              , yasnippet }:
+      melpaBuild {
+        pname = "yatemplate";
+        ename = "yatemplate";
+        version = "3.0";
+        src = fetchFromGitHub {
+          owner = "mineo";
+          repo = "yatemplate";
+          rev = "caa8734afc559a28eb4ec5dc3f240434e51cafc9";
+          sha256 = "0zzmhkadyyw56j1z6dgj3x81sb5mxd0s2r20vy5mrfm18cyvsdd1";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yatemplate";
+          sha256 = "05gd9sxdiqpw2p1kdagwgxd94wiw1fmmcsp9v4p74i9sqmf6qn6q";
+          name = "recipe";
+        };
+        packageRequires = [ emacs yasnippet ];
+        meta = {
+          homepage = "https://melpa.org/#/yatemplate";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yatex = callPackage ({ fetchhg
+                         , fetchurl
+                         , lib
+                         , melpaBuild }:
+      melpaBuild {
+        pname = "yatex";
+        version = "1.80";
+        src = fetchhg {
+          url = "https://www.yatex.org/hgrepos/yatex";
+          rev = "af4601ee3c6a";
+          sha256 = "1r0irbkg8c5aapd1i7il31wv2fmhi0bzspiy21k670m896jqx50p";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/9854c39fc1889891fe460d0d5ac9224de3f6c635/recipes/yatex";
+          sha256 = "1qbqdsqf5s61hyyzx84csnby242n5sdcmcw55pa8r16j8kyzgrc0";
+          name = "yatex";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yatex";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yaxception = callPackage ({ fetchFromGitHub
+                              , fetchurl
+                              , lib
+                              , melpaBuild }:
+      melpaBuild {
+        pname = "yaxception";
+        ename = "yaxception";
+        version = "0.3.3";
+        src = fetchFromGitHub {
+          owner = "aki2o";
+          repo = "yaxception";
+          rev = "21a36020c6a5319ea6461f4524aa3a0589df3bbd";
+          sha256 = "06fnm2c17hmlfp40mq8lxk1blmcy10z0xxdpy8ykyv1r1r6syjf8";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yaxception";
+          sha256 = "18n2kjbgfhkhcwigxmv8dk72jp57vsqqd20lc26v5amx6mrhgh58";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yaxception";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ycmd = callPackage ({ cl-lib ? null
+                        , dash
+                        , deferred
+                        , emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , let-alist
+                        , lib
+                        , melpaBuild
+                        , pkg-info
+                        , request
+                        , request-deferred
+                        , s }:
+      melpaBuild {
+        pname = "ycmd";
+        ename = "ycmd";
+        version = "1.2";
+        src = fetchFromGitHub {
+          owner = "abingham";
+          repo = "emacs-ycmd";
+          rev = "d042a673b4d717c3ca9d641f120bfe16c994c740";
+          sha256 = "0rxw86xi9xgr0fp6wmd6hgqgqr9flk7p4lcr0052jhlwknj1nrx0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ycmd";
+          sha256 = "10jqr6xz2fnrd1ihips9jmbcd28zha432h4pxjpswz3ivwjqhxna";
+          name = "recipe";
+        };
+        packageRequires = [
+          cl-lib
+          dash
+          deferred
+          emacs
+          let-alist
+          pkg-info
+          request
+          request-deferred
+          s
+        ];
+        meta = {
+          homepage = "https://melpa.org/#/ycmd";
+          license = lib.licenses.free;
+        };
+      }) {};
+    ydk-mode = callPackage ({ fetchFromGitHub
+                            , fetchurl
+                            , lib
+                            , melpaBuild }:
+      melpaBuild {
+        pname = "ydk-mode";
+        ename = "ydk-mode";
+        version = "1.0.0";
+        src = fetchFromGitHub {
+          owner = "jacksonrayhamilton";
+          repo = "ydk-mode";
+          rev = "3de9ef27dbdf5887f05092895e4ba93e7659e0ec";
+          sha256 = "1kc1qsblfxfxrbgv3ksqf87gzic463136k2v7ryaj3x2r9mc0j3l";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/ydk-mode";
+          sha256 = "1z9digf39d7dd736svp0cy6773l3nklzc263q23gwfcg0jswbdyg";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/ydk-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yesql-ghosts = callPackage ({ cider
+                                , dash
+                                , fetchFromGitHub
+                                , fetchurl
+                                , lib
+                                , melpaBuild
+                                , s }:
+      melpaBuild {
+        pname = "yesql-ghosts";
+        ename = "yesql-ghosts";
+        version = "0.1.0";
+        src = fetchFromGitHub {
+          owner = "magnars";
+          repo = "yesql-ghosts";
+          rev = "bd834e97f263f9f981758c1462bc6297a83ca852";
+          sha256 = "0yvz7lmid4jcikb9jmc7h2lcry3fdyy809k25nyasj2bk41xqqsd";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yesql-ghosts";
+          sha256 = "1hxzbnfd15f0ifdqjbw9nhxd0z46x705v2bc0xl71nav78fgpswf";
+          name = "recipe";
+        };
+        packageRequires = [ cider dash s ];
+        meta = {
+          homepage = "https://melpa.org/#/yesql-ghosts";
+          license = lib.licenses.free;
+        };
+      }) {};
+    yoshi-theme = callPackage ({ fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "yoshi-theme";
+        ename = "yoshi-theme";
+        version = "6.1.0";
+        src = fetchFromGitHub {
+          owner = "ryuslash";
+          repo = "yoshi-theme";
+          rev = "b140d3adce4e8e7ff7b0daaa6684bd7065e4819b";
+          sha256 = "19a47780h0x1rdicr8i7356kvamkbkcwp31skdpp5cxgysvi3d9s";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/yoshi-theme";
+          sha256 = "1kzdjs3rzg9rxrjgsk0wk75rwvbip6ixg1apcxv2c1a6biqqf2hv";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/yoshi-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    youdao-dictionary = callPackage ({ chinese-word-at-point
+                                     , emacs
+                                     , fetchFromGitHub
+                                     , fetchurl
+                                     , lib
+                                     , melpaBuild
+                                     , names
+                                     , popup }:
+      melpaBuild {
+        pname = "youdao-dictionary";
+        ename = "youdao-dictionary";
+        version = "0.4";
+        src = fetchFromGitHub {
+          owner = "xuchunyang";
+          repo = "youdao-dictionary.el";
+          rev = "a6e44e4fb93cc1b9f1067f10cf854b0bfc3fe732";
+          sha256 = "1m4zri7kiw70062w2sp4fdqmmx2vmjisamjwmjdg6669dzvnpawq";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/youdao-dictionary";
+          sha256 = "1qfk7s18br9jask1bpida0cjxks098qpz0ssmw8misi3bjax0fym";
+          name = "recipe";
+        };
+        packageRequires = [ chinese-word-at-point emacs names popup ];
+        meta = {
+          homepage = "https://melpa.org/#/youdao-dictionary";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zel = callPackage ({ emacs
+                       , fetchFromGitHub
+                       , fetchurl
+                       , frecency
+                       , lib
+                       , melpaBuild }:
+      melpaBuild {
+        pname = "zel";
+        ename = "zel";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "rudolfochrist";
+          repo = "zel";
+          rev = "1d938ac01a42e7a985a3f92f5e97bc09e057676e";
+          sha256 = "1hk84x4aqcfd3jggk9san1v4kr58v2zhikbv9sh3dcii6x5w2nv0";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zel";
+          sha256 = "0fwc1fghsw2rg4fv10kgc9d6rhbq20xa9diqcvp1f1cqs12rfhpd";
+          name = "recipe";
+        };
+        packageRequires = [ emacs frecency ];
+        meta = {
+          homepage = "https://melpa.org/#/zel";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zenburn-theme = callPackage ({ fetchFromGitHub
+                                 , fetchurl
+                                 , lib
+                                 , melpaBuild }:
+      melpaBuild {
+        pname = "zenburn-theme";
+        ename = "zenburn-theme";
+        version = "2.6";
+        src = fetchFromGitHub {
+          owner = "bbatsov";
+          repo = "zenburn-emacs";
+          rev = "fdb1a9ca91ba04ed76a85af39890e1943774706b";
+          sha256 = "15g8dk5qdx8r54ccawy6gyprvms7zp7cgf5pwf24b829l2mrrs6r";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zenburn-theme";
+          sha256 = "1kb371j9aissj0vy07jw4ydfn554blc8b2rbi0x1dvfksr2rhsn9";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zenburn-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zephir-mode = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "zephir-mode";
+        ename = "zephir-mode";
+        version = "0.3.3";
+        src = fetchFromGitHub {
+          owner = "sergeyklay";
+          repo = "zephir-mode";
+          rev = "b031c56753cef349484d53d2f3f29bd8080f4dc5";
+          sha256 = "1gxz2khyl14z4hg1gxscv14gsqgnrz0343yy3lla0cc9i64c65ih";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zephir-mode";
+          sha256 = "0nxm6w7z89q2vvf3bp1p6hb6f2axv9ha85jyiv4k02l46sjprf4j";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zephir-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zerodark-theme = callPackage ({ all-the-icons
+                                  , fetchFromGitHub
+                                  , fetchurl
+                                  , flycheck
+                                  , lib
+                                  , magit
+                                  , melpaBuild }:
+      melpaBuild {
+        pname = "zerodark-theme";
+        ename = "zerodark-theme";
+        version = "4.5";
+        src = fetchFromGitHub {
+          owner = "NicolasPetton";
+          repo = "zerodark-theme";
+          rev = "ceb46240636865e86f3fe26906957943ba7bd73c";
+          sha256 = "0nnlxzsmhsbszqigcyxak9i1a0digrd13gv6v18ck4h760mihh1m";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zerodark-theme";
+          sha256 = "1nqzswmnq6h0av4rivqm237h7ghp7asa2nvls7nz4ma467p9qhp9";
+          name = "recipe";
+        };
+        packageRequires = [ all-the-icons flycheck magit ];
+        meta = {
+          homepage = "https://melpa.org/#/zerodark-theme";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zombie-trellys-mode = callPackage ({ cl-lib ? null
+                                       , emacs
+                                       , fetchFromGitHub
+                                       , fetchurl
+                                       , haskell-mode
+                                       , lib
+                                       , melpaBuild }:
+      melpaBuild {
+        pname = "zombie-trellys-mode";
+        ename = "zombie-trellys-mode";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "david-christiansen";
+          repo = "zombie-trellys-mode";
+          rev = "03b8d3635f65dbf38f9a19b5d1a8dfdcb38ba423";
+          sha256 = "0rp615k41v5v9m9g3ydyzgwr6a7wqrmsdkz3pc2frl1zij8jpjm4";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zombie-trellys-mode";
+          sha256 = "19xzvppw7f35s82hm0y7sga8dyjjyy0dxy6vji4hxdpjziz7lggv";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib emacs haskell-mode ];
+        meta = {
+          homepage = "https://melpa.org/#/zombie-trellys-mode";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zone-nyan = callPackage ({ esxml
+                             , fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "zone-nyan";
+        ename = "zone-nyan";
+        version = "0.2.2";
+        src = fetchFromGitHub {
+          owner = "wasamasa";
+          repo = "zone-nyan";
+          rev = "e36875d83ad3dce14f23864688959fa0d98ba410";
+          sha256 = "1lrgirfvcvbir7csshkhhwj99jj1x5aprhw7xfiicv7nan9m6gjy";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zone-nyan";
+          sha256 = "1g7i5p26gb9gny64b84x6zqml7fly5q9aykmc6l6c1kfl6pqxs94";
+          name = "recipe";
+        };
+        packageRequires = [ esxml ];
+        meta = {
+          homepage = "https://melpa.org/#/zone-nyan";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zoom = callPackage ({ emacs
+                        , fetchFromGitHub
+                        , fetchurl
+                        , lib
+                        , melpaBuild }:
+      melpaBuild {
+        pname = "zoom";
+        ename = "zoom";
+        version = "0.2.1";
+        src = fetchFromGitHub {
+          owner = "cyrus-and";
+          repo = "zoom";
+          rev = "85deb722abb89f1758a24969680fc13b51344cb2";
+          sha256 = "1a7dlfi1w0rh6iphvflip3798xg7sac916qwjmqzz4inw9wdh3ga";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zoom";
+          sha256 = "09bk0nnfj72an2b3rravd6qp21gdgcm1m55qnf2r8rzbgqymq5ls";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zoom";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zoom-window = callPackage ({ emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "zoom-window";
+        ename = "zoom-window";
+        version = "0.5";
+        src = fetchFromGitHub {
+          owner = "syohex";
+          repo = "emacs-zoom-window";
+          rev = "eefe36d26e04a9f89aad27671d1f06e9d4736ac6";
+          sha256 = "08splg49ncgfsap3ivpc974wmg22ikshwv33l0i6advjjv9cskhm";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zoom-window";
+          sha256 = "0l9683nk2bdm49likk9c55c23qfy6f1pn04drqwd1vhpanz4l4b3";
+          name = "recipe";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zoom-window";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zop-to-char = callPackage ({ cl-lib ? null
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "zop-to-char";
+        ename = "zop-to-char";
+        version = "1.1";
+        src = fetchFromGitHub {
+          owner = "thierryvolpiatto";
+          repo = "zop-to-char";
+          rev = "816ea90337db0545a2f0a5079f4d7b3a2822af7d";
+          sha256 = "14waf3g7b92k3qd5088w4pn0wcspxjfkbswlzf7nnkjliw1yh0kf";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zop-to-char";
+          sha256 = "0jnspvqqvnaplld083j7cqqxw122qazh88ab7hymci36m3ka9hga";
+          name = "recipe";
+        };
+        packageRequires = [ cl-lib ];
+        meta = {
+          homepage = "https://melpa.org/#/zop-to-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zotelo = callPackage ({ fetchFromGitHub
+                          , fetchurl
+                          , lib
+                          , melpaBuild }:
+      melpaBuild {
+        pname = "zotelo";
+        ename = "zotelo";
+        version = "1.3";
+        src = fetchFromGitHub {
+          owner = "vspinu";
+          repo = "zotelo";
+          rev = "56eaaa76f80bd15710e68af4a1e585394af987d3";
+          sha256 = "0qwdbzfi8mddmchdd9ab9ms1ynlc8dx08i6g2mf3za1sbcivdqsr";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zotelo";
+          sha256 = "0y6s5ma7633h5pf9zj7vkazidlf211va7nk47ppb1q0iyfkyln36";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zotelo";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zotxt = callPackage ({ fetchFromGitLab
+                         , fetchurl
+                         , lib
+                         , melpaBuild
+                         , request-deferred }:
+      melpaBuild {
+        pname = "zotxt";
+        ename = "zotxt";
+        version = "0.1.34";
+        src = fetchFromGitLab {
+          owner = "egh";
+          repo = "zotxt-emacs";
+          rev = "43c0c6d23b31126bac6b14bb85608180fd9c866f";
+          sha256 = "0qksa67aazs9vx7v14nlakr34z6l0h6mhfzi2c0vhrr0c210r6hp";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zotxt";
+          sha256 = "18jla05g2k8zfrmp7q9kpr1mpw6smxzdyn8nfghm306wvv9ff8y5";
+          name = "recipe";
+        };
+        packageRequires = [ request-deferred ];
+        meta = {
+          homepage = "https://melpa.org/#/zotxt";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zygospore = callPackage ({ fetchFromGitHub
+                             , fetchurl
+                             , lib
+                             , melpaBuild }:
+      melpaBuild {
+        pname = "zygospore";
+        ename = "zygospore";
+        version = "0.0.3";
+        src = fetchFromGitHub {
+          owner = "LouisKottmann";
+          repo = "zygospore.el";
+          rev = "1af5ee663f5a7aa08d96a77cacff834dcdf55ea8";
+          sha256 = "0v73fgb0gf81vlihiicy32v6x86rr2hv0bxlpw7d3pk4ng1a0l3z";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zygospore";
+          sha256 = "0n9qs6fymdjly0i4rmx87y8gapfn5sqivsivcffi42vcb5f17kxj";
+          name = "recipe";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://melpa.org/#/zygospore";
+          license = lib.licenses.free;
+        };
+      }) {};
+    zzz-to-char = callPackage ({ avy
+                               , cl-lib ? null
+                               , emacs
+                               , fetchFromGitHub
+                               , fetchurl
+                               , lib
+                               , melpaBuild }:
+      melpaBuild {
+        pname = "zzz-to-char";
+        ename = "zzz-to-char";
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "mrkkrp";
+          repo = "zzz-to-char";
+          rev = "b62414b155fe2e09d91b70059a909d1403d89acf";
+          sha256 = "07a086s3fpncr4plkmr89vghn7xwji9k69m64ri7i1vhnnl6q4zj";
+        };
+        recipe = fetchurl {
+          url = "https://raw.githubusercontent.com/milkypostman/melpa/13d1a86dfe682f65daf529f9f62dd494fd860be9/recipes/zzz-to-char";
+          sha256 = "16vwp0krshmn5x3ry1j512g4kydx39znjqzri4j7wgg49bz1n7vh";
+          name = "recipe";
+        };
+        packageRequires = [ avy cl-lib emacs ];
+        meta = {
+          homepage = "https://melpa.org/#/zzz-to-char";
+          license = lib.licenses.free;
+        };
+      }) {};
+  }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix
new file mode 100644
index 000000000000..6d1a8f081e5a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix
@@ -0,0 +1,224 @@
+/*
+
+# Updating
+
+To update the list of packages from MELPA,
+
+1. Clone https://github.com/ttuegel/emacs2nix.
+2. Clone https://github.com/milkypostman/melpa.
+3. Run `./melpa-stable-packages.sh --melpa PATH_TO_MELPA_CLONE` from emacs2nix.
+4. Copy the new `melpa-stable-generated.nix` file into Nixpkgs.
+5. Check for evaluation errors: `nix-instantiate ./. -A emacsPackagesNg.melpaStablePackages`.
+6. `git add pkgs/applications/editors/emacs-modes/melpa-stable-generated.nix && git commit -m "melpa-stable-packages $(date -Idate)"`
+
+*/
+
+{ external }:
+
+self:
+
+  let
+    imported = import ./melpa-stable-generated.nix { inherit (self) callPackage; };
+
+    super = imported;
+
+    dontConfigure = pkg: pkg.override (args: {
+      melpaBuild = drv: args.melpaBuild (drv // {
+        configureScript = "true";
+      });
+    });
+
+    markBroken = pkg: pkg.override (args: {
+      melpaBuild = drv: args.melpaBuild (drv // {
+        meta = (drv.meta or {}) // { broken = true; };
+      });
+    });
+
+    overrides = {
+      # upstream issue: mismatched filename
+      ack-menu = markBroken super.ack-menu;
+
+      # Expects bash to be at /bin/bash
+      ac-rtags = markBroken super.ac-rtags;
+
+      airline-themes = super.airline-themes.override {
+        inherit (self.melpaPackages) powerline;
+      };
+
+      # upstream issue: missing file header
+      bufshow = markBroken super.bufshow;
+
+      # part of a larger package
+      caml = dontConfigure super.caml;
+
+      # part of a larger package
+      # upstream issue: missing package version
+      cmake-mode = markBroken (dontConfigure super.cmake-mode);
+
+      # Expects bash to be at /bin/bash
+      company-rtags = markBroken super.company-rtags;
+
+      # upstream issue: missing file header
+      connection = markBroken super.connection;
+
+      # upstream issue: missing file header
+      dictionary = markBroken super.dictionary;
+
+      easy-kill-extras = super.easy-kill-extras.override {
+        inherit (self.melpaPackages) easy-kill;
+      };
+
+      # missing git
+      egg = markBroken super.egg;
+
+      # upstream issue: missing file header
+      elmine = markBroken super.elmine;
+
+      # upstream issue: missing dependency redshank
+      emr = markBroken super.emr;
+
+      ess-R-data-view = super.ess-R-data-view.override {
+        inherit (self.melpaPackages) ess ctable popup;
+      };
+
+      # upstream issue: doesn't build
+      eterm-256color = markBroken super.eterm-256color;
+
+      # upstream issue: missing dependency highlight
+      evil-search-highlight-persist = markBroken super.evil-search-highlight-persist;
+
+      # upstream issue: missing dependency highlight
+      floobits  = markBroken super.floobits;
+
+      # missing OCaml
+      flycheck-ocaml = markBroken super.flycheck-ocaml;
+
+      # Expects bash to be at /bin/bash
+      flycheck-rtags = markBroken super.flycheck-rtags;
+
+      # upstream issue: missing dependency
+      fold-dwim-org = markBroken super.fold-dwim-org;
+
+      # build timeout
+      graphene = markBroken super.graphene;
+
+      # upstream issue: mismatched filename
+      helm-lobsters = markBroken super.helm-lobsters;
+
+      # Expects bash to be at /bin/bash
+      helm-rtags = markBroken super.helm-rtags;
+
+      # Build same version as Haskell package
+      hindent = super.hindent.overrideAttrs (attrs: {
+        version = external.hindent.version;
+        src = external.hindent.src;
+        packageRequires = [ self.haskell-mode ];
+        propagatedUserEnvPkgs = [ external.hindent ];
+      });
+
+      # 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: recipe fails
+      insert-shebang = markBroken super.insert-shebang;
+
+      # Expects bash to be at /bin/bash
+      ivy-rtags = markBroken super.ivy-rtags;
+
+      # upstream issue: missing file header
+      jsfmt = markBroken super.jsfmt;
+
+      # upstream issue: missing file header
+      link = markBroken super.link;
+
+      # upstream issue: mismatched filename
+      link-hint = markBroken super.link-hint;
+
+      # upstream issue: missing file header
+      maxframe = markBroken super.maxframe;
+
+      magit =
+        (super.magit.override {
+          # version of magit-popup needs to match magit
+          # https://github.com/magit/magit/issues/3286
+          inherit (self.melpaStablePackages) magit-popup;
+        }).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 ];
+      });
+
+      # missing OCaml
+      merlin = markBroken super.merlin;
+
+      mhc = super.mhc.override {
+        inherit (self.melpaPackages) calfw;
+      };
+
+      # missing .NET
+      nemerle = markBroken super.nemerle;
+
+      # part of a larger package
+      notmuch = dontConfigure super.notmuch;
+
+      # missing OCaml
+      ocp-indent = markBroken super.ocp-indent;
+
+      # upstream issue: missing file header
+      po-mode = markBroken super.po-mode;
+
+      # upstream issue: truncated file
+      powershell = markBroken super.powershell;
+
+      # upstream issue: mismatched filename
+      processing-snippets = markBroken super.processing-snippets;
+
+      # 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
+      stgit = markBroken super.stgit;
+
+      # upstream issue: missing file header
+      tawny-mode = markBroken super.tawny-mode;
+
+      # upstream issue: missing file header
+      textmate = markBroken super.textmate;
+
+      # missing OCaml
+      utop = markBroken super.utop;
+
+      vdiff-magit =
+        (super.vdiff-magit.overrideAttrs (attrs: {
+          nativeBuildInputs =
+            (attrs.nativeBuildInputs or []) ++ [ external.git ];
+        }));
+
+      # upstream issue: missing file header
+      voca-builder = markBroken super.voca-builder;
+
+      # upstream issue: missing file header
+      window-numbering = markBroken super.window-numbering;
+    };
+
+    melpaStablePackages = super // overrides;
+  in
+    melpaStablePackages // { inherit melpaStablePackages; }
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/metaweblog/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/metaweblog/default.nix
new file mode 100644
index 000000000000..a5633cdfabaa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/metaweblog/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, emacs, xmlRpc }:
+
+stdenv.mkDerivation rec {
+  name = "metaweblog-0.1";
+
+  src = fetchgit {
+    url = https://github.com/punchagan/metaweblog.git;
+    rev = "ceda65048afaa4c7596c7f50ced998c59ef41167";
+    sha256 = "a4c10bb1b4be574e560f87d5f07da4e24e5fffe9ecc83e6d4f9325f3a7eb1e2f";
+  };
+
+  buildInputs = [ emacs ];
+  propagatedUserEnvPkgs = [ xmlRpc ];
+
+  buildPhase = ''
+    emacs -L . -L ${xmlRpc}/share/emacs/site-lisp --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el* $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "An emacs library to access metaweblog based weblogs";
+    homepage = https://github.com/punchagan/metaweblog;
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/monky/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/monky/default.nix
new file mode 100644
index 000000000000..8e35a4e2b571
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/monky/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, emacs, unzip }:
+
+stdenv.mkDerivation {
+  name = "emacs-monky-20150404";
+
+  src = fetchurl {
+    url = "https://github.com/ananthakumaran/monky/archive/48c0200910739b6521f26f6423b2bfb8c38b4482.zip";
+    sha256 = "0yp3pzddx7yki9n3qrriqa5p442qyrdivvlc4xbl024vzjyzddrj";
+  };
+
+  buildInputs = [ emacs unzip ];
+
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/nyan-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/nyan-mode/default.nix
new file mode 100644
index 000000000000..e0057fd30cea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/nyan-mode/default.nix
@@ -0,0 +1,30 @@
+{lib, trivialBuild, fetchFromGitHub}:
+
+trivialBuild rec {
+  pname    = "nyan-mode";
+  version  = "20150128";
+
+  src = fetchFromGitHub {
+    owner  = "TeMPOraL";
+    repo   = pname;
+    rev    = "41faa2c809da7b2cb3e6f8fadefae3f338ced3f2";
+    sha256 = "1idaac7sjc8hhbf5zif61ncg1pvg28c0qfihavdx61albww0ll7f";
+  };
+
+  patches = [ ./directory.patch ];
+
+  preBuild = ''
+    substituteInPlace nyan-mode.el \
+      --replace "@OUT@" "$out/"
+  '';
+
+  postInstall = ''
+    cp -r img $out
+    cp -r mus $out
+  '';
+
+  meta = {
+    description = "An analog indicator of the position in the buffer";
+    license = lib.licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/nyan-mode/directory.patch b/nixpkgs/pkgs/applications/editors/emacs-modes/nyan-mode/directory.patch
new file mode 100644
index 000000000000..b471531ec34c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/nyan-mode/directory.patch
@@ -0,0 +1,13 @@
+diff --git a/nyan-mode.el b/nyan-mode.el
+index 939a25a..3d0b983 100644
+--- a/nyan-mode.el
++++ b/nyan-mode.el
+@@ -106,7 +106,7 @@ This can be t or nil."
+   :group 'nyan)

+ 

+ 

+-(defconst +nyan-directory+ (file-name-directory (or load-file-name buffer-file-name)))

++(defconst +nyan-directory+ "@OUT@")

+ 

+ (defconst +nyan-cat-size+ 3)

+ 

diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/ocaml/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/ocaml/default.nix
new file mode 100644
index 000000000000..9f8d408dd5a2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/ocaml/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, emacs, ocaml }:
+
+# this package installs the emacs-mode which
+# resides in the ocaml compiler sources.
+
+let version = stdenv.lib.removePrefix "ocaml-" ocaml.name;
+in stdenv.mkDerivation {
+  name = "ocaml-mode-${version}";
+  inherit (ocaml) prefixKey src;
+
+  # a quick configure to get the Makefile generated. Since
+  # we do not build the ocaml itself, we don't really
+  # need it to support any features.
+  configureFlags = (with stdenv.lib; optional (!(versionAtLeast version "4.02")) "-no-tk") ++
+    [ "-no-curses" "-no-pthread" ];
+
+  buildInputs = [ emacs ];
+  dontBuild = true;
+
+  installPhase = ''
+    cd emacs;
+    mkdir -p "$out/share/emacs/site-lisp" "$out/bin"
+    EMACSDIR=$out/share/emacs/site-lisp make simple-install install-ocamltags
+  '';
+
+  meta = {
+    homepage = http://caml.inria.fr;
+    description = "OCaml mode package for Emacs";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/offlineimap/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/offlineimap/default.nix
new file mode 100644
index 000000000000..f61eaa982663
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/offlineimap/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  rev = "646482203aacdf847d57d0a96263fddcfc33fb61";
+  name = "emacs-offlineimap-${rev}";
+
+  src = fetchgit {
+    inherit rev;
+    url = "git://git.naquadah.org/offlineimap-el.git";
+    sha256 = "0az4llfgva4wvpljyc5s2m7ggfnj06ssp32x8bncr5fzksha3r7b";
+  };
+
+  buildInputs = [ emacs ];
+
+  installPhase = ''
+    substituteInPlace offlineimap.el --replace "Machine.MachineUI" "machineui"
+    emacs --batch -f batch-byte-compile offlineimap.el
+    install -d $out/share/emacs/site-lisp
+    install offlineimap.el offlineimap.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "OfflineIMAP support for Emacs";
+    homepage = "http://julien.danjou.info/projects/emacs-packages#offlineimap";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.garbas ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/org-generated.nix
new file mode 100644
index 000000000000..d97b07295281
--- /dev/null
+++ b/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 = "20181217";
+        src = fetchurl {
+          url = "http://orgmode.org/elpa/org-20181217.tar";
+          sha256 = "0j301z0429dnk1d3bn7524y848vp9il41sxpm9z9hs7gpzfdcw28";
+        };
+        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 = "20181217";
+        src = fetchurl {
+          url = "http://orgmode.org/elpa/org-plus-contrib-20181217.tar";
+          sha256 = "1p7v9246zxkp68kc63550x3w7pmhx1drgj20wmddhvs0bqd3k3ap";
+        };
+        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/nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix
new file mode 100644
index 000000000000..1937a94cad11
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/org-mac-link/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation rec {
+  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 = http://orgmode.org/worg/org-contrib/org-mac-link.html;
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix
new file mode 100644
index 000000000000..46b90a52a091
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/org-packages.nix
@@ -0,0 +1,31 @@
+/*
+
+# Updating
+
+To update the list of packages from ELPA,
+
+1. Clone https://github.com/ttuegel/emacs2nix
+2. Run `./org-packages.sh` from emacs2nix
+3. Copy the new org-packages.json file into Nixpkgs
+4. `git commit -m "org-packages $(date -Idate)"`
+
+*/
+
+{ }:
+
+self:
+
+  let
+
+    imported = import ./org-generated.nix {
+      inherit (self) callPackage;
+    };
+
+    super = imported;
+
+    overrides = {
+    };
+
+    orgPackages = super // overrides;
+
+  in orgPackages // { inherit orgPackages; }
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/org/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/org/default.nix
new file mode 100644
index 000000000000..99ecddcb2648
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/org/default.nix
@@ -0,0 +1,51 @@
+{ fetchurl, stdenv, emacs, texinfo, texlive }:
+
+stdenv.mkDerivation rec {
+  name = "org-8.3.3";
+
+  src = fetchurl {
+    url = "http://orgmode.org/${name}.tar.gz";
+    sha256 = "1vhymmd41v7an457xdjhk5zfc4q1x7z64b25rs1ccam5p550cq65";
+  };
+
+  buildInputs = [ emacs ];
+  nativeBuildInputs = [ (texlive.combine {
+    inherit (texlive) scheme-small cm-super;
+  }) texinfo ];
+
+  configurePhase =
+    '' sed -i mk/default.mk \
+           -e "s|^prefix\t=.*$|prefix=$out/share|g"
+    '';
+
+  postBuild =
+    '' make doc
+    '';
+
+  installPhase =
+    '' make install install-info
+
+       mkdir -p "$out/share/doc/${name}"
+       cp -v doc/org*.{html,pdf,txt} "$out/share/doc/${name}"
+
+       mkdir -p "$out/share/org"
+       cp -R contrib "$out/share/org/contrib"
+    '';
+
+  meta = {
+    description = "Org-Mode, an Emacs mode for notes, project planning, and authoring";
+
+    longDescription =
+      '' Org-mode is for keeping notes, maintaining ToDo lists, doing project
+         planning, and authoring with a fast and effective plain-text system.
+
+         This package contains a version of Org-mode typically more recent
+         than that found in GNU Emacs.
+      '';
+
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    maintainers = with stdenv.lib.maintainers; [ chaoflow pSub ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/org2blog/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/org2blog/default.nix
new file mode 100644
index 000000000000..5c1aec7e02b7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/org2blog/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchgit, emacs, org, xmlRpc, metaweblog }:
+
+stdenv.mkDerivation rec {
+  name = "org2blog-0.8.1";
+
+  src = fetchgit {
+    url = https://github.com/punchagan/org2blog.git;
+    rev = "5f573ff3e4007c16517a5fe28c4f5d8dde3f8a77";
+    sha256 = "e83c08ceece92bb507be70046db4a7fa87a4af34ad3f84a727e0bd6a1dd99a33";
+  };
+
+  buildInputs = [ emacs ];
+  propagatedUserEnvPkgs = [ org xmlRpc metaweblog ];
+
+  buildPhase = ''
+    emacs -L . -L ${org}/share/emacs/site-lisp/org \
+               -L ${xmlRpc}/share/emacs/site-lisp \
+               -L ${metaweblog}/share/emacs/site-lisp \
+               --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el* $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Publish directly from Emacs’ org-mode to WordPress blogs";
+    homepage = https://github.com/punchagan/org2blog;
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/pcache/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/pcache/default.nix
new file mode 100644
index 000000000000..f4dcf03dee84
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/pcache/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "pcache-0.2.3";
+
+  src = fetchgit {
+    url = "https://github.com/sigma/pcache.git";
+    rev = "fa8f863546e2e8f2fc0a70f5cc766a7f584e01b6";
+    sha256 = "f7cdad5a729b24f96ec69db4adfd19daf45c27aaf3a0267385b252cb2e59daa0";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -f batch-byte-compile pcache.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install pcache.el pcache.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Persistent caching for Emacs";
+    homepage = https://github.com/sigma/pcache.el;
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix
new file mode 100644
index 000000000000..97d063d452cd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/perl-completion/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/php/builder.sh b/nixpkgs/pkgs/applications/editors/emacs-modes/php/builder.sh
new file mode 100644
index 000000000000..85c448480571
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/php/builder.sh
@@ -0,0 +1,7 @@
+source $stdenv/setup
+
+mkdir -p $out/share/emacs/site-lisp
+cd $out/share/emacs/site-lisp
+tar xvfz $src
+mv php-mode-*/* .
+rmdir php-mode-*
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/php/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/php/default.nix
new file mode 100644
index 000000000000..2b3cf7b29712
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/php/default.nix
@@ -0,0 +1,12 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "php-mode-1.5.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/php-mode/${name}.tar.gz";
+    sha256 = "1bffgg4rpiggxqc1hvjcby24sfyzj5728zg7r6f4v6a126a7kcfq";
+  };
+
+  builder = ./builder.sh;
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix
new file mode 100644
index 000000000000..b01c526aa8e4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/prolog/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "prolog-mode-1.25";
+
+  src = fetchurl {
+    url = "http://bruda.ca/_media/emacs/prolog.el";
+    sha256 = "0hfd2dr3xc5qxgvc08nkb2l5a05hfldahdc6ymi9vd8798cc46yh";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/4.4.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/4.4.nix
new file mode 100644
index 000000000000..0f7ac1d1dc80
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/4.4.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, emacs, texinfo, texLive, which, automake, enableDoc ? false }:
+
+stdenv.mkDerivation rec {
+  name = "ProofGeneral-${version}";
+  version = "4.4";
+
+  src = fetchFromGitHub {
+    owner = "ProofGeneral";
+    repo = "PG";
+    rev = "v${version}";
+    sha256 = "0bdfk91wf71z80mdfnl8hpinripndcjgdkz854zil6521r84nqk8";
+  };
+
+  buildInputs = [ emacs which ] ++ stdenv.lib.optionals enableDoc [ texinfo texLive ];
+
+  prePatch =
+    '' sed -i "Makefile" \
+           -e "s|^\(\(DEST_\)\?PREFIX\)=.*$|\1=$out|g ; \
+               s|/sbin/install-info|install-info|g"
+
+       sed -i "bin/proofgeneral" -e's/which/type -p/g'
+
+       chmod +x bin/proofgeneral
+
+       # @image{ProofGeneral-image} fails, so remove it.
+       sed -i '91d' doc/PG-adapting.texi
+       sed -i '96d' doc/ProofGeneral.texi
+    '' + stdenv.lib.optionalString enableDoc
+    # Copy `texinfo.tex' in the right place so that `texi2pdf' works.
+    '' cp -v "${automake}/share/"automake-*/texinfo.tex doc
+    '';
+
+  patches = [ ./pg.patch ];
+
+  installTargets = [ "install" ] ++ stdenv.lib.optional enableDoc "install-doc";
+
+  meta = {
+    description = "Proof General, an Emacs front-end for proof assistants";
+    longDescription = ''
+      Proof General is a generic front-end for proof assistants (also known as
+      interactive theorem provers), based on the customizable text editor Emacs.
+    '';
+    homepage = http://proofgeneral.inf.ed.ac.uk;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.unix;  # arbitrary choice
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix
new file mode 100644
index 000000000000..de72b24f87ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/HEAD.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, emacs, texinfo, texLive, perl, which, automake, enableDoc ? false }:
+
+stdenv.mkDerivation (rec {
+  name = "ProofGeneral-unstable-${version}";
+  version = "2018-01-30";
+
+  src = fetchFromGitHub {
+    owner = "ProofGeneral";
+    repo = "PG";
+    rev = "945cada601c5729edd16fcc989a3969c8b34d20a";
+    sha256 = "1zjmbhq6c8g8b93nnsvr5pxx6mlcndb0fz152b2h80vfh9663cn8";
+  };
+
+  buildInputs = [ emacs texinfo perl which ] ++ stdenv.lib.optional enableDoc texLive;
+
+  prePatch =
+    '' sed -i "Makefile" \
+           -e "s|^\(\(DEST_\)\?PREFIX\)=.*$|\1=$out|g ; \
+               s|/sbin/install-info|install-info|g"
+
+       # @image{ProofGeneral} fails, so remove it.
+       sed -i '94d' doc/PG-adapting.texi
+       sed -i '96d' doc/ProofGeneral.texi
+    '';
+
+  preBuild = ''
+    make clean;
+  '';
+
+  installPhase =
+    if enableDoc
+    then
+    # Copy `texinfo.tex' in the right place so that `texi2pdf' works.
+    '' cp -v "${automake}/share/"automake-*/texinfo.tex doc
+       make install install-doc
+    ''
+    else "make install";
+
+  meta = {
+    description = "Proof General, an Emacs front-end for proof assistants";
+    longDescription = ''
+      Proof General is a generic front-end for proof assistants (also known as
+      interactive theorem provers), based on the customizable text editor Emacs.
+    '';
+    homepage = http://proofgeneral.inf.ed.ac.uk;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.unix;  # arbitrary choice
+  };
+})
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/pg.patch b/nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/pg.patch
new file mode 100644
index 000000000000..704e4b6c8c7a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/proofgeneral/pg.patch
@@ -0,0 +1,16 @@
+diff -r c7d8bfff4c0a bin/proofgeneral
+--- a/bin/proofgeneral	Sat Sep 27 02:25:15 2014 +0100
++++ b/bin/proofgeneral	Sat Sep 27 02:28:16 2014 +0100
+@@ -73,11 +73,7 @@
+ 
+ # Try to find Proof General directory
+ if [ -z "$PGHOME" ] || [ ! -d "$PGHOME" ]; then
+-    # default relative to this script, otherwise PGHOMEDEFAULT
+-    MYDIR="`readlink --canonicalize "$0" | sed -ne 's,/bin/proofgeneral$,,p'`"
+-    if [ -d "$MYDIR/generic" ]; then
+-	PGHOME="$MYDIR"
+-    elif [ -d "$PGHOMEDEFAULT" ]; then
++    if [ -d "$PGHOMEDEFAULT" ]; then
+ 	PGHOME="$PGHOMEDEFAULT"
+     else
+ 	echo "Cannot find the Proof General lisp files: Set PGHOME or use --pghome."
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/quack/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/quack/default.nix
new file mode 100644
index 000000000000..95634a24ded4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/quack/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, emacs }:
+
+stdenv.mkDerivation {
+  name = "quack-0.39";
+
+  src = fetchurl {
+    # XXX: Upstream URL is not versioned, which might eventually break this.
+    url = "http://www.neilvandyke.org/quack/quack.el";
+    sha256 = "1q5bsllxkibiddwp32306flqm8s3caffnpbqz5ka260avllp4jj5";
+  };
+
+  buildInputs = [ emacs ];
+
+  unpackPhase = "true";
+  configurePhase = "true";
+  installPhase = "true";
+
+  buildPhase = ''
+    emacsDir="$out/share/emacs/site-lisp"
+
+    mkdir -p "$emacsDir"
+    cp -v "$src" "$emacsDir/quack.el"
+    emacs --batch -f batch-byte-compile "$emacsDir/quack.el"
+  '';
+
+  meta = {
+    description = "Enhanced Emacs support for editing and running Scheme code";
+    homepage = http://www.neilvandyke.org/quack/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/railgun/default.nix
new file mode 100644
index 000000000000..ba716e1dd13b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/emacs-modes/rainbow-delimiters/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/rainbow-delimiters/default.nix
new file mode 100644
index 000000000000..2b4223cdc1fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/rainbow-delimiters/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, emacs}:
+
+let version = "1.3.13";
+
+in stdenv.mkDerivation {
+  name = "emacs-rainbow-delimiters-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/jlr/rainbow-delimiters/archive/${version}.tar.gz";
+    sha256 = "075j3nsk4jm0rs5671n28c1wksrfbvpl9a4f89kzcd7sk1h6ncvl";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
new file mode 100644
index 000000000000..1f218439a5ff
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/redshank/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/redshank/default.nix
new file mode 100644
index 000000000000..e03d2fdc90f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/redshank/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation rec {
+  pname = "redshank";
+  name = "${pname}-20120510";
+
+  src = fetchgit {
+    url = "http://www.foldr.org/~michaelw/projects/redshank.git";
+    rev = "f98e68f532e622bcd464292ca4a9cf5fbea14ebb";
+    sha256 = "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp *.el *.elc $out/share/emacs/site-lisp/
+  '';
+
+  meta = {
+    description = "Common Lisp Editing Extensions (for Emacs)";
+    homepage = http://www.foldr.org/~michaelw/emacs/redshank/;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/rudel/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/rudel/default.nix
new file mode 100644
index 000000000000..0031ffee4d4d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/rudel/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl}:
+
+let
+    version = "0.2-4";
+in
+stdenv.mkDerivation
+{
+  name = "rudel-${version}";
+  src = fetchurl
+  {
+    url = "mirror://sourceforge/rudel/rudel-${version}.tar.gz";
+    sha256 = "68247bfb702d929877f6d098932e8b0ca45c573a3510187e1ccc43e5ea194f25";
+  };
+
+  installPhase = ''
+    for n in . obby zeroconf jupiter; do
+      mkdir -p "$out/share/emacs/site-lisp/$n";
+      cp $n/*.el "$out/share/emacs/site-lisp/$n/";
+    done
+    install -D -m444 doc/card.pdf "$out/share/doc/rudel/card.pdf"
+  '';
+
+  meta = {
+    homepage = http://rudel.sourceforge.net/;
+    description = "A collaborative editing environment for GNU Emacs";
+    license = "GPL";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/s/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/s/default.nix
new file mode 100644
index 000000000000..b818348939e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/s/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, emacs}:
+
+let version = "1.9.0";
+
+in stdenv.mkDerivation {
+  name = "emacs-s-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/magnars/s.el/archive/${version}.tar.gz";
+    sha256 = "1gah2k577gvnmxlpw7zrz0jr571vghzhdv2hbgchlgah07czd091";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix
new file mode 100644
index 000000000000..835cf8081afa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/sbt-mode/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, emacs, unzip }:
+
+stdenv.mkDerivation {
+
+  name = "sbt-mode-2014-06-05";
+
+  src = fetchurl {
+    url = "https://github.com/hvesalai/sbt-mode/archive/676f22d9658989de401d299ed0250db9b911574d.zip";
+    sha256 = "0b8qrr3yp48ggl757d3a6bz633mbf4zxqpcwsh47b1ckiwa3nb2h";
+  };
+
+  buildInputs = [ unzip emacs ];
+
+  installPhase = ''
+    mkdir -p "$out/share/emacs/site-lisp"
+    cp -v *.el *.elc "$out/share/emacs/site-lisp/"
+  '';
+
+  meta = {
+    homepage = https://github.com/hvesalai/scala-mode2;
+    description = "An Emacs mode for editing Scala code";
+    license = "permissive";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/scala-mode/v1.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/scala-mode/v1.nix
new file mode 100644
index 000000000000..7867226ff806
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/scala-mode/v1.nix
@@ -0,0 +1,30 @@
+{ fetchsvn, stdenv, emacs }:
+
+let revision = "17339"; in
+stdenv.mkDerivation rec {
+  name = "scala-mode-r${revision}";
+
+  src = fetchsvn {
+    url = "http://lampsvn.epfl.ch/svn-repos/scala/scala-tool-support/trunk/src/emacs";
+    rev = revision;
+    sha256 = "05g3xk2mxkqwdnyvxklnrdyhppkvhfs2fd21blhzbhf474cgqlyh";
+  };
+
+  buildInputs = [ emacs ];
+
+  installPhase =
+    '' mkdir -p "$out/share/emacs/site-lisp"
+       cp -v *.el *.elc "$out/share/emacs/site-lisp"
+    '';
+
+  meta = {
+    description = "An Emacs mode for editing Scala code";
+
+    homepage = https://www.scala-lang.org/node/354;
+
+    # non-copyleft, BSD-style
+    license = "permissive";
+
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix
new file mode 100644
index 000000000000..0a44deb8ced8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/scala-mode/v2.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, emacs, unzip }:
+
+stdenv.mkDerivation {
+
+  name = "scala-mode2-2014-07-01";
+
+  src = fetchurl {
+    url = "https://github.com/hvesalai/scala-mode2/archive/c154f1623f4696d26e1c88d19170e67bf6825837.zip";
+    sha256 = "0im2ajb1iagjldh52j8wz4yby68rs3h7shrdf1pqy5ds7s4fa8cc";
+  };
+
+  buildInputs = [ unzip emacs ];
+
+  installPhase = ''
+    mkdir -p "$out/share/emacs/site-lisp"
+    cp -v *.el *.elc "$out/share/emacs/site-lisp/"
+  '';
+
+  meta = {
+    homepage = https://github.com/hvesalai/scala-mode2;
+    description = "An Emacs mode for editing Scala code";
+    license = "permissive";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix
new file mode 100644
index 000000000000..f5aeb35d1840
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/stgit/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/stgit/default.nix
new file mode 100644
index 000000000000..6460ee53abdc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/stgit/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "stgit";
+  name = "${pname}-2009-10-28";
+
+  unpackPhase = "true";
+
+  src = fetchurl {
+    url = "https://raw.githubusercontent.com/miracle2k/stgit/master/contrib/stgit.el";
+    sha256 = "0pl8q480633vdkylr85s7cbd4653xpzwklnxrwm8xhsnvw9d501q";
+    name = "stgit.el";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp $src $out/share/emacs/site-lisp/stgit.el
+  '';
+
+  meta = {
+    description = "An emacs mode for Stgit";
+    homepage = http://procode.org/stgit/;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
new file mode 100644
index 000000000000..aa27e302e5d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchgit, emacs}:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/thingatpt-plus/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/thingatpt-plus/default.nix
new file mode 100644
index 000000000000..820919b5321f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/thingatpt-plus/default.nix
@@ -0,0 +1,23 @@
+{ fetchurl, lib, melpaBuild }:
+
+melpaBuild {
+  pname = "thingatpt-plus";
+  version = "20170307.1539";
+
+  src = fetchurl {
+    url = "https://www.emacswiki.org/emacs/download/thingatpt+.el";
+    sha256 = "1k9y354315gvhbdk0m9xpjx24w1bwrnzlnfiils8xgdwnw4py99a";
+    name = "thingatpt+.el";
+  };
+
+  recipe = fetchurl {
+    url = "https://raw.githubusercontent.com/milkypostman/melpa/a5d15f875b0080b12ce45cf696c581f6bbf061ba/recipes/thingatpt+";
+    sha256 = "0w031lzjl5phvzsmbbxn2fpziwkmdyxsn08h6b9lxbss1prhx7aa";
+    name = "thingatpt-plus";
+  };
+
+  meta = {
+    homepage = "https://melpa.org/#/thingatpt+";
+    license = lib.licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix
new file mode 100644
index 000000000000..b0cfe9979081
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/tramp/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, emacs, texinfo }:
+
+stdenv.mkDerivation rec {
+  name = "tramp-2.3.0";
+  src = fetchurl {
+    url = "mirror://gnu/tramp/${name}.tar.gz";
+    sha256 = "1srwm24lwyf00w1661wbx03xg6j943dk05jhwnwdjf99m82cqbgi";
+  };
+  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/nixpkgs/pkgs/applications/editors/emacs-modes/tuareg/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/tuareg/default.nix
new file mode 100644
index 000000000000..be03938f8a53
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/tuareg/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip, emacs }:
+
+# this package installs the emacs-mode which
+# resides in the ocaml compiler sources.
+
+let version = "2.0.9";
+
+in stdenv.mkDerivation {
+  name = "tuareg-mode-${version}";
+  src = fetchzip {
+    url = "https://github.com/ocaml/tuareg/releases/download/${version}/tuareg-${version}.tar.gz";
+    sha256 = "13rh5ddwvwwz5jf0n3wagc5m9zq4cbaylnsknzjalryyvipwfyh3";
+  }; 
+
+  buildInputs = [ emacs ];
+
+  installPhase = ''
+    mkdir -p "$out/share/emacs/site-lisp"
+    cp *.el *.elc  "$out/share/emacs/site-lisp"
+  '';
+
+  meta = {
+    homepage =  https://github.com/ocaml/tuareg;
+    description = "OCaml mode package for Emacs";
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/writegood/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/writegood/default.nix
new file mode 100644
index 000000000000..6d0631a4cb83
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/writegood/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, emacs}:
+
+let version = "2.0.2";
+
+in stdenv.mkDerivation {
+  name = "writegood-mode-${version}";
+  src = fetchurl {
+    url = "https://github.com/bnbeckwith/writegood-mode/archive/v${version}.tar.gz";
+    sha256 = "1ilbqj24vzpfh9n1wph7idj0914ga290jkpv9kr1pff3a0v5hf6k";
+  };
+
+  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
+  '';
+
+  meta = {
+    description = "Emacs minor mode that aids in finding common writing problems";
+    homepage = https://github.com/bnbeckwith/writegood-mode;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.pSub ];
+    license = stdenv.lib.licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix
new file mode 100644
index 000000000000..661430516b70
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation rec {
+  name = "xml-rpc-1.6.8";
+
+  src = fetchurl {
+    url = https://launchpadlibrarian.net/40270196/xml-rpc.el;
+    sha256 = "0i8hf90yhrjwqrv7q1f2g1cff6ld8apqkka42fh01wkdys1fbm7b";
+  };
+
+  phases = [ "buildPhase" "installPhase"];
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    cp $src xml-rpc.el
+    emacs --batch -f batch-byte-compile xml-rpc.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install xml-rpc.el* $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Elisp implementation of clientside XML-RPC";
+    homepage = https://launchpad.net/xml-rpc-el;
+    license = stdenv.lib.licenses.gpl3Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/yaoddmuse/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/yaoddmuse/default.nix
new file mode 100644
index 000000000000..e147fd53b229
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/yaoddmuse/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation rec {
+  name = "yaoddmuse-0.1.2";
+
+  src = fetchurl {
+    url = "http://emacswiki.org/emacs/download/yaoddmuse.el";
+    sha256 = "0vlllq3xmnlni0ws226pqxj68nshclbl5rgqv6y11i3yvzgiazr6";
+  };
+
+  phases = [ "buildPhase" "installPhase"];
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    cp $src yaoddmuse.el
+    emacs --batch -f batch-byte-compile yaoddmuse.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install yaoddmuse.el $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Comprehensive Emacs integration with Oddmuse wikis";
+    homepage = http://emacswiki.org/emacs/Yaoddmuse;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix b/nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix
new file mode 100644
index 000000000000..3461787ab59c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs-modes/zeitgeist/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation {
+  name = "zeitgeist-20120221";
+
+  unpackPhase = "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/nixpkgs/pkgs/applications/editors/emacs/25.nix b/nixpkgs/pkgs/applications/editors/emacs/25.nix
new file mode 100644
index 000000000000..d9f0b211f159
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/25.nix
@@ -0,0 +1,139 @@
+{ stdenv, lib, fetchurl, ncurses, xlibsWrapper, libXaw, libXpm, Xaw3d
+, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
+, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
+, alsaLib, cairo, acl, gpm, cf-private, AppKit, GSS, ImageIO
+, withX ? !stdenv.isDarwin
+, withGTK2 ? false, gtk2 ? null
+, withGTK3 ? true, gtk3 ? null, gsettings-desktop-schemas ? null
+, withXwidgets ? false, webkitgtk24x-gtk3 ? null, wrapGAppsHook ? null, glib-networking ? null
+, withCsrc ? true
+, srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null
+}:
+
+assert (libXft != null) -> libpng != null;      # probably a bug
+assert stdenv.isDarwin -> libXaw != null;       # fails to link otherwise
+assert withGTK2 -> withX || stdenv.isDarwin;
+assert withGTK3 -> withX || stdenv.isDarwin;
+assert withGTK2 -> !withGTK3 && gtk2 != null;
+assert withGTK3 -> !withGTK2 && gtk3 != null;
+assert withXwidgets -> withGTK3 && webkitgtk24x-gtk3 != null;
+
+let
+  toolkit =
+    if withGTK2 then "gtk2"
+    else if withGTK3 then "gtk3"
+    else "lucid";
+in
+stdenv.mkDerivation rec {
+  name = "emacs-${version}${versionModifier}";
+  version = "25.3";
+  versionModifier = "";
+
+  src = fetchurl {
+    url = "mirror://gnu/emacs/${name}.tar.xz";
+    sha256 = "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5";
+  };
+
+  enableParallelBuilding = true;
+
+  patches = lib.optionals stdenv.isDarwin [
+    ./at-fdcwd.patch
+
+    # Backport of the fix to
+    # https://lists.gnu.org/archive/html/bug-gnu-emacs/2017-04/msg00201.html
+    # Should be removed when switching to Emacs 26.1
+    (fetchurl {
+      url = "https://gist.githubusercontent.com/aaronjensen/f45894ddf431ecbff78b1bcf533d3e6b/raw/6a5cd7f57341aba673234348d8b0d2e776f86719/Emacs-25-OS-X-use-vfork.patch";
+      sha256 = "1nlsxiaynswqhy99jf4mw9x0sndhwcrwy8713kq1l3xqv9dbrzgj";
+    })
+  ];
+
+  nativeBuildInputs = [ pkgconfig ]
+    ++ lib.optionals srcRepo [ autoconf automake texinfo ]
+    ++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook;
+
+  buildInputs =
+    [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext ]
+    ++ lib.optionals stdenv.isLinux [ dbus libselinux ]
+    ++ lib.optionals withX
+      [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff librsvg libXft
+        imagemagick gconf ]
+    ++ lib.optional (withX && withGTK2) gtk2
+    ++ lib.optionals (withX && withGTK3) [ gtk3 gsettings-desktop-schemas ]
+    ++ lib.optional (stdenv.isDarwin && withX) cairo
+    ++ lib.optionals (withX && withXwidgets) [ webkitgtk24x-gtk3 glib-networking ]
+    ++ lib.optionals stdenv.isDarwin [
+      AppKit GSS ImageIO
+      # Needed for CFNotificationCenterAddObserver symbols.
+      cf-private
+    ];
+
+  hardeningDisable = [ "format" ];
+
+  configureFlags = [ "--with-modules" ] ++
+   (if stdenv.isDarwin
+      then [ "--with-ns" "--disable-ns-self-contained" ]
+    else if withX
+      then [ "--with-x-toolkit=${toolkit}" "--with-xft" ]
+      else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
+             "--with-gif=no" "--with-tiff=no" ])
+    ++ lib.optional withXwidgets "--with-xwidgets";
+
+  preConfigure = lib.optionalString srcRepo ''
+    ./autogen.sh
+  '' + ''
+    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
+  '';
+
+  installTargets = "tags install";
+
+  postInstall = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
+    $out/bin/emacs --batch -f batch-byte-compile $out/share/emacs/site-lisp/site-start.el
+
+    rm -rf $out/var
+    rm -rf $out/share/emacs/${version}/site-lisp
+  '' + lib.optionalString withCsrc ''
+    for srcdir in src lisp lwlib ; do
+      dstdir=$out/share/emacs/${version}/$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 stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    mv nextstep/Emacs.app $out/Applications
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The extensible, customizable GNU text editor";
+    homepage    = https://www.gnu.org/software/emacs/;
+    license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ chaoflow lovek323 peti the-kenny jwiegley ];
+    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/nixpkgs/pkgs/applications/editors/emacs/at-fdcwd.patch b/nixpkgs/pkgs/applications/editors/emacs/at-fdcwd.patch
new file mode 100644
index 000000000000..2d8099b73736
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch b/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch
new file mode 100644
index 000000000000..7b4cb9d52667
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch
@@ -0,0 +1,15 @@
+Dump temacs in an empty environment to prevent -dev paths from ending
+up in the dumped image.
+
+diff -ru -x '*~' emacs-25.3/src/Makefile.in emacs-25.3-new/src/Makefile.in
+--- emacs-25.3/src/Makefile.in	2017-04-14 17:02:47.000000000 +0200
++++ emacs-25.3-new/src/Makefile.in	2017-09-25 19:03:02.173861038 +0200
+@@ -532,7 +532,7 @@
+ ifeq ($(CANNOT_DUMP),yes)
+ 	ln -f temacs$(EXEEXT) $@
+ else
+-	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/nixpkgs/pkgs/applications/editors/emacs/default.nix b/nixpkgs/pkgs/applications/editors/emacs/default.nix
new file mode 100644
index 000000000000..948d8cb98672
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/default.nix
@@ -0,0 +1,144 @@
+{ stdenv, lib, fetchurl, ncurses, xlibsWrapper, libXaw, libXpm, Xaw3d
+, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
+, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
+, alsaLib, cairo, acl, gpm, cf-private, AppKit, GSS, ImageIO, m17n_lib, libotf
+, 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, autoconf ? null, automake ? null, texinfo ? null
+}:
+
+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
+  toolkit =
+    if withGTK2 then "gtk2"
+    else if withGTK3 then "gtk3"
+    else "lucid";
+in
+stdenv.mkDerivation rec {
+  name = "emacs-${version}${versionModifier}";
+  version = "26.1";
+  versionModifier = "";
+
+  src = fetchurl {
+    url = "mirror://gnu/emacs/${name}.tar.xz";
+    sha256 = "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w";
+  };
+
+  enableParallelBuilding = true;
+
+  patches = [
+    ./clean-env.patch
+  ];
+
+  postPatch = lib.optionalString srcRepo ''
+    rm -fr .git
+  '';
+
+  CFLAGS = "-DMAC_OS_X_VERSION_MAX_ALLOWED=101200";
+
+  nativeBuildInputs = [ pkgconfig ]
+    ++ lib.optionals srcRepo [ autoconf automake texinfo ]
+    ++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook;
+
+  buildInputs =
+    [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext ]
+    ++ lib.optionals stdenv.isLinux [ dbus libselinux systemd ]
+    ++ lib.optionals withX
+      [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff librsvg libXft
+        imagemagick gconf ]
+    ++ lib.optionals (stdenv.isLinux && withX) [ m17n_lib libotf ]
+    ++ lib.optional (withX && withGTK2) gtk2-x11
+    ++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ]
+    ++ lib.optional (stdenv.isDarwin && withX) cairo
+    ++ lib.optionals (withX && withXwidgets) [ webkitgtk ]
+    ++ lib.optionals withNS [
+      AppKit GSS ImageIO
+      # Needed for CFNotificationCenterAddObserver symbols.
+      cf-private
+    ];
+
+  hardeningDisable = [ "format" ];
+
+  configureFlags = [ "--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" ]
+      else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
+             "--with-gif=no" "--with-tiff=no" ])
+    ++ lib.optional withXwidgets "--with-xwidgets";
+
+  preConfigure = lib.optionalString srcRepo ''
+    ./autogen.sh
+  '' + ''
+    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
+  '';
+
+  installTargets = "tags install";
+
+  postInstall = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
+    $out/bin/emacs --batch -f batch-byte-compile $out/share/emacs/site-lisp/site-start.el
+
+    rm -rf $out/var
+    rm -rf $out/share/emacs/${version}/site-lisp
+  '' + lib.optionalString withCsrc ''
+    for srcdir in src lisp lwlib ; do
+      dstdir=$out/share/emacs/${version}/$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
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The extensible, customizable GNU text editor";
+    homepage    = https://www.gnu.org/software/emacs/;
+    license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ chaoflow lovek323 peti the-kenny jwiegley ];
+    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/nixpkgs/pkgs/applications/editors/emacs/macport.nix b/nixpkgs/pkgs/applications/editors/emacs/macport.nix
new file mode 100644
index 000000000000..4eb0fecec407
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/macport.nix
@@ -0,0 +1,107 @@
+{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls, gettext, autoconf, automake
+, cf-private, AppKit, Carbon, Cocoa, IOKit, OSAKit, Quartz, QuartzCore, WebKit
+, ImageCaptureCore, GSS, ImageIO # These may be optional
+}:
+
+stdenv.mkDerivation rec {
+  emacsVersion = "26.1";
+  emacsName = "emacs-${emacsVersion}";
+  macportVersion = "7.4";
+  name = "emacs-mac-${emacsVersion}-${macportVersion}";
+
+  src = fetchurl {
+    url = "mirror://gnu/emacs/${emacsName}.tar.xz";
+    sha256 = "0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w";
+  };
+
+  macportSrc = fetchurl {
+    url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${emacsName}-mac-${macportVersion}.tar.gz";
+    sha256 = "1xl3rfqw1f3jil20xf6iy0f1hdk9adj8rnv7xhcjq4pymj4w8ka6";
+  };
+
+  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
+    AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
+    ImageCaptureCore GSS ImageIO   # may be optional
+    # Needed for CFNotificationCenterAddObserver symbols.
+    cf-private
+  ];
+
+  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
+  '';
+
+  configureFlags = [
+    "LDFLAGS=-L${ncurses.out}/lib"
+    "--with-xml2=yes"
+    "--with-gnutls=yes"
+    "--with-mac"
+    "--with-modules"
+    "--enable-mac-app=$$out/Applications"
+  ];
+
+  CFLAGS = "-O3 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10 -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_10";
+  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
+  '';
+
+  doCheck = true;
+
+  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/nixpkgs/pkgs/applications/editors/emacs/site-start.el b/nixpkgs/pkgs/applications/editors/emacs/site-start.el
new file mode 100644
index 000000000000..34addc33a59c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/site-start.el
@@ -0,0 +1,56 @@
+(defun nix--profile-paths ()
+  "Returns a list of all paths in the NIX_PROFILES environment
+variable, 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
+(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
+(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/
+(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
+        (concat
+         (number-to-string emacs-major-version)
+         "."
+         (number-to-string emacs-minor-version))))
+      (src (file-name-as-directory "src")))
+  (setq find-function-C-source-directory (concat emacs version src)))
diff --git a/nixpkgs/pkgs/applications/editors/featherpad/default.nix b/nixpkgs/pkgs/applications/editors/featherpad/default.nix
new file mode 100644
index 000000000000..b1e26910f1fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/featherpad/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, qt5, fetchFromGitHub }:
+
+with qt5;
+
+stdenv.mkDerivation rec {
+  version = "0.9.2";
+  name = "featherpad-${version}";
+  src = fetchFromGitHub {
+    owner = "tsujan";
+    repo = "FeatherPad";
+    rev = "V${version}";
+    sha256 = "1kpv8x3m4hiz7q9k7qadgbrys5nyzm7v5mhjyk22hawnp98m9x4q";
+  };
+  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/nixpkgs/pkgs/applications/editors/flpsed/default.nix b/nixpkgs/pkgs/applications/editors/flpsed/default.nix
new file mode 100644
index 000000000000..104206a14913
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/flpsed/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, fltk13, ghostscript }:
+
+stdenv.mkDerivation rec {
+  name = "flpsed-${version}";
+  version = "0.7.3";
+
+  src = fetchurl {
+    url = "http://www.flpsed.org/${name}.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 = http://flpsed.org/flpsed.html;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ fuuzetsu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/focuswriter/default.nix b/nixpkgs/pkgs/applications/editors/focuswriter/default.nix
new file mode 100644
index 000000000000..2708c40d5091
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/focuswriter/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, qmake, qttools, hunspell, qtbase, qtmultimedia }:
+
+stdenv.mkDerivation rec {
+  name = "focuswriter-${version}";
+  version = "1.7.0";
+
+  src = fetchurl {
+    url = "https://gottcode.org/focuswriter/focuswriter-${version}-src.tar.bz2";
+    sha256 = "0321wqhjfs020q113lgh959qq03zfamm72zk22mnqxf3ng3adc3g";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/fte/default.nix b/nixpkgs/pkgs/applications/editors/fte/default.nix
new file mode 100644
index 000000000000..d32a3fb5f1b5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/geany/default.nix b/nixpkgs/pkgs/applications/editors/geany/default.nix
new file mode 100644
index 000000000000..caead872eb27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/geany/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, gtk2, which, pkgconfig, intltool, file, libintl, hicolor-icon-theme }:
+
+with stdenv.lib;
+
+let
+  version = "1.34";
+in
+
+stdenv.mkDerivation rec {
+  name = "geany-${version}";
+
+  src = fetchurl {
+    url = "https://download.geany.org/${name}.tar.bz2";
+    sha256 = "63b93d25d037eaffa77895ae6dd29c91bca570e4053eff5cc8490f87e6021f8e";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool libintl ];
+  buildInputs = [ gtk2 which file hicolor-icon-theme ];
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  patchPhase = "patchShebangs .";
+
+  meta = {
+    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 GTK2 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/nixpkgs/pkgs/applications/editors/geany/with-vte.nix b/nixpkgs/pkgs/applications/editors/geany/with-vte.nix
new file mode 100644
index 000000000000..ac35560c7f63
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/geany/with-vte.nix
@@ -0,0 +1,8 @@
+{ runCommand, makeWrapper, geany, gnome2 }:
+let name = builtins.replaceStrings ["geany-"] ["geany-with-vte-"] geany.name;
+in
+runCommand "${name}" { nativeBuildInputs = [ makeWrapper ]; inherit (geany.meta); } "
+   mkdir -p $out
+   ln -s ${geany}/share $out
+   makeWrapper ${geany}/bin/geany $out/bin/geany --prefix LD_LIBRARY_PATH : ${gnome2.vte}/lib
+"
diff --git a/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix b/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
new file mode 100644
index 000000000000..65645dcc9693
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/ghostwriter/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, qmake, pkgconfig, qttools, qtwebkit, hunspell }:
+
+stdenv.mkDerivation rec {
+  pname = "ghostwriter";
+  version = "1.7.4";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "wereturtle";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1pqlr08z5syqcq5p282asxwzrrm7c1w94baxyb467swh8yp3fj5m";
+  };
+
+  nativeBuildInputs = [ qmake pkgconfig qttools ];
+
+  buildInputs = [ qtwebkit 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/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
new file mode 100644
index 000000000000..5a4be5eb4485
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
@@ -0,0 +1,139 @@
+{ stdenv
+, ctags
+, desktop-file-utils
+, docbook_xsl
+, docbook_xml_dtd_43
+, fetchurl
+, flatpak
+, glibcLocales
+, gnome3
+, gobject-introspection
+, gspell
+, gtk-doc
+, gtk3
+, gtksourceview4
+, hicolor-icon-theme
+, json-glib
+, jsonrpc-glib
+, libdazzle
+, libxml2
+, meson
+, ninja
+, ostree
+, pcre
+, pkgconfig
+, python3
+, sysprof
+, template-glib
+, vala
+, webkitgtk
+, wrapGAppsHook
+}:
+let
+  version = "3.30.2";
+  pname = "gnome-builder";
+in stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "05yax7iv9g831xvw9xdc01qc0l7qpmh6rfd692x8cbg76hljxdrr";
+  };
+
+  nativeBuildInputs = [
+    #appstream-glib # tests fail if these tools are available
+    desktop-file-utils
+    docbook_xsl
+    docbook_xml_dtd_43
+    glibcLocales # for Meson's gtkdochelper
+    gobject-introspection
+    gtk-doc
+    hicolor-icon-theme
+    meson
+    ninja
+    pkgconfig
+    python3
+    python3.pkgs.wrapPython
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    ctags
+    flatpak
+    gnome3.devhelp
+    gnome3.libgit2-glib
+    gnome3.libpeas
+    gnome3.vte
+    gspell
+    gtk3
+    gtksourceview4
+    json-glib
+    jsonrpc-glib
+    libdazzle
+    libxml2
+    ostree
+    pcre
+    python3
+    sysprof
+    template-glib
+    vala
+    webkitgtk
+  ];
+
+  outputs = [ "out" "devdoc" ];
+
+  prePatch = ''
+    patchShebangs build-aux/meson/post_install.py
+  '';
+
+  mesonFlags = [
+    "-Dpython_libprefix=${python3.libPrefix}"
+    "-Dwith_docs=true"
+
+    # Making the build system correctly detect clang header and library paths
+    # is difficult. Somebody should look into fixing this.
+    "-Dwith_clang=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 = false;
+
+  preInstall = ''
+    export LC_ALL="en_US.utf-8"
+  '';
+
+  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 = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix b/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix
new file mode 100644
index 000000000000..71d0f9450f2d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/gnome-latex/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, wrapGAppsHook
+, tepl, amtk, gnome3, glib, pkgconfig, intltool, itstool, libxml2 }:
+let
+  version = "3.30.2";
+  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 = "0fn3vy6w714wy0bz3y11zpdprpwxbv5xfiyyxjwp2nix9mbvv2sm";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+  configureFlags = ["--disable-dconf-migration"];
+
+  nativeBuildInputs = [
+    pkgconfig
+    wrapGAppsHook
+    itstool
+    intltool
+  ];
+
+  buildInputs = with gnome3; [
+    amtk
+    defaultIconTheme
+    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/nixpkgs/pkgs/applications/editors/gobby/default.nix b/nixpkgs/pkgs/applications/editors/gobby/default.nix
new file mode 100644
index 000000000000..e59def88de55
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/gobby/default.nix
@@ -0,0 +1,28 @@
+{ avahiSupport ? false # build support for Avahi in libinfinity
+, stdenv, fetchurl, fetchFromGitHub, autoconf, automake, pkgconfig, wrapGAppsHook
+, gtkmm3, gsasl, gtksourceview3, libxmlxx, libinfinity, intltool, itstool, gnome3 }:
+
+let
+  libinf = libinfinity.override { gtkWidgets = true; inherit avahiSupport; };
+in stdenv.mkDerivation rec {
+  name = "gobby-unstable-2018-04-03";
+  src = fetchFromGitHub {
+    owner = "gobby";
+    repo = "gobby";
+    rev = "ea4df27c9b6b885434797b0071ce198b23f9f63b";
+    sha256 = "0q7lq64yn16lxvj4jphs8y9194h0xppj8k7y9x8b276krraak2az";
+  };
+
+  nativeBuildInputs = [ autoconf automake pkgconfig intltool itstool gnome3.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/nixpkgs/pkgs/applications/editors/hecate/default.nix b/nixpkgs/pkgs/applications/editors/hecate/default.nix
new file mode 100644
index 000000000000..8aea8508aefd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/hecate/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  version = "0.0.1";
+  name = "hecate-${version}";
+
+  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/nixpkgs/pkgs/applications/editors/hecate/deps.nix b/nixpkgs/pkgs/applications/editors/hecate/deps.nix
new file mode 100644
index 000000000000..c9d94934a444
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/heme/default.nix b/nixpkgs/pkgs/applications/editors/heme/default.nix
new file mode 100644
index 000000000000..dce02b568906
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/heme/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "heme-${version}";
+  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/nixpkgs/pkgs/applications/editors/hexcurse/default.nix b/nixpkgs/pkgs/applications/editors/hexcurse/default.nix
new file mode 100644
index 000000000000..22cc4d47e680
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/hexcurse/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "hexcurse-${version}";
+  version = "1.60.0";
+
+  src = fetchFromGitHub {
+    owner = "LonnyGomes";
+    repo = "hexcurse";
+    rev = "v${version}";
+    sha256 = "17ckkxfzbqvvfdnh10if4aqdcq98q3vl6dn1v6f4lhr4ifnyjdlk";
+  };
+  buildInputs = [ ncurses ];
+  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/nixpkgs/pkgs/applications/editors/hexedit/default.nix b/nixpkgs/pkgs/applications/editors/hexedit/default.nix
new file mode 100644
index 000000000000..4671df77554f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/hexedit/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "hexedit-${version}";
+  version = "1.2.13";
+
+  src = fetchurl {
+    url = "http://rigaux.org/${name}.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/nixpkgs/pkgs/applications/editors/howl/default.nix b/nixpkgs/pkgs/applications/editors/howl/default.nix
new file mode 100644
index 000000000000..8f75eda7ef70
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/howl/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk3, librsvg }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "howl-${version}";
+  version = "0.5.3";
+
+  # Use the release tarball containing pre-downloaded dependencies sources
+  src = fetchurl {
+    url = "https://github.com/howl-editor/howl/releases/download/0.5.3/howl-0.5.3.tgz";
+    sha256 = "0gnc8vr5h8mwapbcqc1zr9la62rb633awyqgy8q7pwjpiy85a03v";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/ht/default.nix b/nixpkgs/pkgs/applications/editors/ht/default.nix
new file mode 100644
index 000000000000..63864bc581df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/ht/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "ht-${version}";
+  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/nixpkgs/pkgs/applications/editors/ht/gcc7.patch b/nixpkgs/pkgs/applications/editors/ht/gcc7.patch
new file mode 100644
index 000000000000..a90deaac698d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/jedit/build.xml.patch b/nixpkgs/pkgs/applications/editors/jedit/build.xml.patch
new file mode 100644
index 000000000000..2f630f18ab76
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/jedit/default.nix b/nixpkgs/pkgs/applications/editors/jedit/default.nix
new file mode 100644
index 000000000000..11322e8240c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/jedit/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchurl, ant, jdk, commonsBsf, commonsLogging, bsh }:
+
+let
+  version = "5.2.0";
+  bcpg = fetchurl {
+    url = http://central.maven.org/maven2/org/bouncycastle/bcpg-jdk16/1.46/bcpg-jdk16-1.46.jar;
+    sha256 = "16xhmwks4l65m5x150nd23y5lyppha9sa5fj65rzhxw66gbli82d";
+  };
+  jsr305 = fetchurl {
+    url = http://central.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar;
+    sha256 = "0s74pv8qjc42c7q8nbc0c3b1hgx0bmk3b8vbk1z80p4bbgx56zqy";
+  };
+in
+
+stdenv.mkDerivation {
+  name = "jedit-${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
+
+    patch package-files/linux/jedit << EOF
+    5a6,8
+    > # specify the correct JAVA_HOME
+    > JAVA_HOME=${jdk.jre.home}/jre
+    > 
+    EOF
+    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/nixpkgs/pkgs/applications/editors/jetbrains/common.nix b/nixpkgs/pkgs/applications/editors/jetbrains/common.nix
new file mode 100644
index 000000000000..be20800cde29
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/common.nix
@@ -0,0 +1,80 @@
+{ stdenv, makeDesktopItem, makeWrapper, patchelf, p7zip
+, 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 = "Application;Development;";
+    icon = execName;
+    extraEntries = ''
+      StartupWMClass=${wmClass}
+    '';
+  };
+
+  nativeBuildInputs = [ makeWrapper patchelf p7zip unzip ];
+
+  patchPhase = ''
+      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}:${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
+  '';
+
+}
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
new file mode 100644
index 000000000000..1cff72f59796
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
@@ -0,0 +1,394 @@
+{ lib, stdenv, callPackage, fetchurl
+, python
+, jdk, cmake, libxml2, zlib, python3, ncurses
+}:
+
+with stdenv.lib;
+
+let
+  mkJetBrainsProduct = callPackage ./common.nix { };
+
+  # Sorted alphabetically
+
+  buildClion = { name, version, src, license, description, wmClass, ... }:
+    lib.overrideDerivation (mkJetBrainsProduct rec {
+      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 ${ncurses.out}/lib/libncurses.so $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 ]}" \
+            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; [ loskutov ];
+        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 rec {
+      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;
+      };
+    });
+
+  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 ];
+        platforms = platforms.linux;
+      };
+    });
+
+  buildPycharm = { name, version, src, license, description, wmClass, ... }:
+    (mkJetBrainsProduct rec {
+      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; [ jgeerds ];
+        platforms = platforms.linux;
+      };
+    }).override {
+      propagatedUserEnvPkgs = [ python ];
+    };
+
+  buildRider = { name, version, src, license, description, wmClass, ... }:
+    lib.overrideDerivation (mkJetBrainsProduct rec {
+      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 = attrs.patchPhase + ''
+        # Patch built-in mono for ReSharperHost to start successfully
+        interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
+        patchelf --set-interpreter "$interpreter" lib/ReSharperHost/linux-x64/mono/bin/mono-sgen
+      '';
+    });
+
+  buildRubyMine = { name, version, src, license, description, wmClass, ... }:
+    (mkJetBrainsProduct rec {
+      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 jre64
+      '';
+    });
+in
+
+{
+  # Sorted alphabetically
+
+  clion = buildClion rec {
+    name = "clion-${version}";
+    version = "2018.3.1"; /* 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 = "0wv4hmh71ca9fl4pslf8nn6wppa98sc94272z4nb42jbs6dnb9ji"; /* 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 = "2018.2.5"; /* 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 = "0ls3qas8z0d1ynn6hh42qipa5br2g2497wf3pgcw3q0m3kp6wida"; /* updated by script */
+    };
+    wmClass = "jetbrains-datagrip";
+    update-channel = "DataGrip 2018.2";
+  };
+
+  goland = buildGoland rec {
+    name = "goland-${version}";
+    version = "2018.3.1"; /* 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 = "0z3z9hc7h3n63mfy7c5zh5sz8c0bzgxk79xamw08sxphrsjahasz"; /* updated by script */
+    };
+    wmClass = "jetbrains-goland";
+    update-channel = "GoLand Release";
+  };
+
+  idea-community = buildIdea rec {
+    name = "idea-community-${version}";
+    version = "2018.3.1"; /* 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 = "1zi4aib1h4jfn241gsg83jsqfj99fpbci4pkh8xarap6xrallyiq"; /* updated by script */
+    };
+    wmClass = "jetbrains-idea-ce";
+    update-channel = "IntelliJ IDEA Release";
+  };
+
+  idea-ultimate = buildIdea rec {
+    name = "idea-ultimate-${version}";
+    version = "2018.3.1"; /* 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-jdk.tar.gz";
+      sha256 = "0x0dplmv37gqdbrwxsx6xaix9dbaa6kqc09ganln5r4nl2bg64i8"; /* updated by script */
+    };
+    wmClass = "jetbrains-idea";
+    update-channel = "IntelliJ IDEA Release";
+  };
+
+  phpstorm = buildPhpStorm rec {
+    name = "phpstorm-${version}";
+    version = "2018.2.6"; /* 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 = "0z627q9mcxlz8a92dndnaz2qa9dkaapimsfqkvc0i8ab88yw75v1"; /* updated by script */
+    };
+    wmClass = "jetbrains-phpstorm";
+    update-channel = "PhpStorm 2018.2";
+  };
+
+  pycharm-community = buildPycharm rec {
+    name = "pycharm-community-${version}";
+    version = "2018.3.1"; /* updated by script */
+    description = "PyCharm Community Edition";
+    license = stdenv.lib.licenses.asl20;
+    src = fetchurl {
+      url = "https://download.jetbrains.com/python/${name}.tar.gz";
+      sha256 = "02vs8nxxm139jl622nhxs59i9gw9rs5rjymkg8a0ajpybang24jk"; /* updated by script */
+    };
+    wmClass = "jetbrains-pycharm-ce";
+    update-channel = "PyCharm Release";
+  };
+
+  pycharm-professional = buildPycharm rec {
+    name = "pycharm-professional-${version}";
+    version = "2018.3.1"; /* updated by script */
+    description = "PyCharm Professional Edition";
+    license = stdenv.lib.licenses.unfree;
+    src = fetchurl {
+      url = "https://download.jetbrains.com/python/${name}.tar.gz";
+      sha256 = "0g4ag9lid2km69s5g31hhhvz3zjx52wxca1q4qz1h0s9km0ca1sq"; /* updated by script */
+    };
+    wmClass = "jetbrains-pycharm";
+    update-channel = "PyCharm Release";
+  };
+
+  rider = buildRider rec {
+    name = "rider-${version}";
+    version = "2018.2.3"; /* 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 = "1g2b7wszviknzd4srgcvwmci0pxyjbcmjzb4fg5clh62wwdpa16n"; /* updated by script */
+    };
+    wmClass = "jetbrains-rider";
+    update-channel = "Rider 2018.2";
+  };
+
+  ruby-mine = buildRubyMine rec {
+    name = "ruby-mine-${version}";
+    version = "2018.2.6"; /* 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 = "0xbmj7d1ccq2qf1jsvch1zxdrypkvzxdfkr431c8fnabh993yxx1"; /* updated by script */
+    };
+    wmClass = "jetbrains-rubymine";
+    update-channel = "RubyMine 2018.2";
+  };
+
+  webstorm = buildWebStorm rec {
+    name = "webstorm-${version}";
+    version = "2018.3.1"; /* 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 = "1l3jy1ifx82gdnvpgz77ycxbwymcwwd830i4mfidkr9gkndlxpsp"; /* updated by script */
+    };
+    wmClass = "jetbrains-webstorm";
+    update-channel = "WebStorm Release";
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/update.pl b/nixpkgs/pkgs/applications/editors/jetbrains/update.pl
new file mode 100755
index 000000000000..b4a96228db40
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/joe/default.nix b/nixpkgs/pkgs/applications/editors/joe/default.nix
new file mode 100644
index 000000000000..b2ace8accd8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/joe/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl } :
+
+stdenv.mkDerivation rec {
+  version = "4.6";
+  name = "joe-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/joe-editor/${name}.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/nixpkgs/pkgs/applications/editors/jucipp/default.nix b/nixpkgs/pkgs/applications/editors/jucipp/default.nix
new file mode 100644
index 000000000000..08918beb8d59
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/jucipp/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchgit, gnome3, at-spi2-core,
+  boost, epoxy, cmake, aspell, llvmPackages, libgit2, pkgconfig, pcre,
+  libXdmcp, libxkbcommon, libpthreadstubs, wrapGAppsHook, aspellDicts,
+  coreutils, glibc, dbus, openssl, libxml2, gnumake, ctags }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "juicipp-${version}";
+  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
+    gnome3.gtksourceview
+    at-spi2-core
+    pcre
+    epoxy
+    boost
+    libXdmcp
+    cmake
+    aspell
+    libgit2
+    libxkbcommon
+    gnome3.gtkmm3
+    libpthreadstubs
+    gnome3.gtksourceviewmm
+    llvmPackages.clang.cc
+    llvmPackages.lldb
+    gnome3.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/nixpkgs/pkgs/applications/editors/jupp/default.nix b/nixpkgs/pkgs/applications/editors/jupp/default.nix
new file mode 100644
index 000000000000..5e6406e33f28
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/jupp/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl
+, ncurses, gpm
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "jupp-${version}";
+  version = "3.1";
+  srcName = "joe-3.1jupp31";
+
+  src = fetchurl {
+    urls = [
+      "https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz"
+      "https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ];
+    sha256 = "1fnf9jsd6p4jyybkhjjs328qx38ywy8w029ngc7j7kqp0ixn0l0s";
+  };
+
+  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://mirbsd.de/jupp;
+    license = licenses.gpl1;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/jupyter/default.nix b/nixpkgs/pkgs/applications/editors/jupyter/default.nix
new file mode 100644
index 000000000000..2bca120c1deb
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix b/nixpkgs/pkgs/applications/editors/jupyter/kernel.nix
new file mode 100644
index 000000000000..cdb6b6212bd3
--- /dev/null
+++ b/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 rec {
+
+    name = "jupyter-kernels";
+
+    src = "/dev/null";
+
+    unpackCmd = "mkdir jupyter_kernels";
+
+    installPhase =  ''
+      mkdir kernels
+
+      ${concatStringsSep "\n" (mapAttrsToList (kernelName: kernel:
+        let
+          config = builtins.toJSON {
+            display_name = if (kernel.displayName != "")
+              then kernel.displayName
+              else kernelName;
+            argv = kernel.argv;
+            language = kernel.language;
+          };
+          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 = http://jupyter.org/;
+      maintainers = with maintainers; [ aborsu ];
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/default.nix b/nixpkgs/pkgs/applications/editors/kakoune/default.nix
new file mode 100644
index 000000000000..bcfbe53b5658
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, ncurses, asciidoc, docbook_xsl, libxslt, pkgconfig }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "kakoune-unstable-${version}";
+  version = "2018.10.27";
+  src = fetchFromGitHub {
+    repo = "kakoune";
+    owner = "mawww";
+    rev = "v${version}";
+    sha256 = "1w7jmq57h8gxxbzg0n3lgd6cci77xb9mziy6lr8330nzqc85zp9p";
+  };
+  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}"
+  '';
+
+  meta = {
+    homepage = http://kakoune.org/;
+    description = "A vim inspired text editor";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ vrthra ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix b/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
new file mode 100644
index 000000000000..fac18c0b1294
--- /dev/null
+++ b/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.1.0";
+
+in
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    sha256 = "20d84d25bd40610bd6c0964e4fe0642e56c41b76a65575122dc5196649621e5d";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix b/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix
new file mode 100644
index 000000000000..f0ac79e2d22c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kdevelop5/kdevelop.nix
@@ -0,0 +1,69 @@
+{ 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
+}:
+
+let
+  pname = "kdevelop";
+  version = "5.2.4";
+  qtVersion = "5.${lib.versions.minor qtbase.version}";
+in
+mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    sha256 = "1jbks7nh9rybz4kg152l39hfj2x0p6mjins8x9mz03bbv8jf8gic";
+  };
+
+  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
+  ];
+
+  postInstall = ''
+    # The kdevelop! script (shell environment) needs qdbus and kioclient5 in PATH.
+    wrapProgram "$out/bin/kdevelop!" \
+      --prefix PATH ":" "${lib.makeBinPath [ qttools kde-cli-tools ]}"
+
+    wrapProgram "$out/bin/kdevelop" \
+      --prefix QT_PLUGIN_PATH : $out/lib/qt-${qtVersion}/plugins
+
+    # 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/nixpkgs/pkgs/applications/editors/kile/default.nix b/nixpkgs/pkgs/applications/editors/kile/default.nix
new file mode 100644
index 000000000000..494ad686ee3b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kile/default.nix
@@ -0,0 +1,61 @@
+{ 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.92";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/kile/${name}.tar.bz2";
+    sha256 = "177372dc25b1d109e037a7dbfc64b5dab2efe538320c87f4a8ceada21e9097f2";
+
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ];
+
+  propagatedBuildInputs = [
+    kconfig
+    kcrash
+    kdbusaddons
+    kdelibs4support
+    kdoctools
+    kguiaddons
+    kiconthemes
+    kinit
+    khtml
+    kparts
+    ktexteditor
+    kwindowsystem
+    okular
+    poppler
+    qtscript
+  ];
+
+  propagatedUserEnvPkgs = [ konsole ];
+
+  meta = {
+    description = "Kile is a 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/nixpkgs/pkgs/applications/editors/kodestudio/default.nix b/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
new file mode 100644
index 000000000000..b212773712c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kodestudio/default.nix
@@ -0,0 +1,133 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
+, # Patchelf dependencies:
+  alsaLib, atomEnv, boehmgc, flac, libogg, libvorbis, libXScrnSaver, libGLU_combined
+, 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 rec {
+    name = "kodestudio-${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:${libGLU_combined}/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/nixpkgs/pkgs/applications/editors/leafpad/default.nix b/nixpkgs/pkgs/applications/editors/leafpad/default.nix
new file mode 100644
index 000000000000..c3b46cf61df8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/leafpad/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gtk2 }:
+
+stdenv.mkDerivation rec {
+  version = "0.8.18.1";
+  name = "leafpad-${version}";
+  src = fetchurl {
+    url = "https://download.savannah.gnu.org/releases/leafpad/${name}.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/nixpkgs/pkgs/applications/editors/leo-editor/default.nix b/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
new file mode 100644
index 000000000000..a2274be463ed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, python3, fetchFromGitHub, makeWrapper, makeDesktopItem }:
+
+stdenv.mkDerivation rec {
+  name = "leo-editor-${version}";
+  version = "5.7.3";
+
+  src = fetchFromGitHub {
+    owner = "leo-editor";
+    repo = "leo-editor";
+    rev = version;
+    sha256 = "0ri6l6cxwva450l05af5vs1lsgrz6ciwd02njdgphs9pm1vwxbl9";
+  };
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper python3 ];
+  propagatedBuildInputs = with python3.pkgs; [ pyqt5 docutils ];
+
+  desktopItem = makeDesktopItem rec {
+    name = "leo-editor";
+    exec = "leo %U";
+    icon = "leoapp32";
+    type = "Application";
+    comment = meta.description;
+    desktopName = "Leo";
+    genericName = "Text Editor";
+    categories = stdenv.lib.concatStringsSep ";" [
+      "Application" "Development" "IDE" "QT"
+    ];
+    startupNotify = "false";
+    mimeType = stdenv.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"
+  '';
+
+  meta = with stdenv.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 ramkromberg ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/lighttable/default.nix b/nixpkgs/pkgs/applications/editors/lighttable/default.nix
new file mode 100644
index 000000000000..dfd6543c5985
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/lighttable/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, 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 {
+  name = "lighttable-${version}";
+  version = "0.8.1";
+
+  src =
+      fetchurl {
+        name = "LightTableLinux64.tar.gz";
+        url = "https://github.com/LightTable/LightTable/releases/download/${version}/${name}-linux.tar.gz";
+        sha256 = "06fj725xfhf3fwrf7dya7ijmxq3v76kfmd4lr2067a92zhlwr5pv";
+      };
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    tar xf ${src}
+    mkdir -p $out/{bin,share/LightTable}
+    mv ./${name}-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 ${systemd.lib}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
+    substituteInPlace $out/bin/light \
+        --replace "/usr/lib/x86_64-linux-gnu" "${systemd.lib}/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/nixpkgs/pkgs/applications/editors/manuskript/default.nix b/nixpkgs/pkgs/applications/editors/manuskript/default.nix
new file mode 100644
index 000000000000..4f4be05f79e4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/manuskript/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, zlib, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "manuskript";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "olivierkes";
+    rev = version;
+    sha256 = "0vqz02p3m9n4hk2jplnklr9s6niqdm5iykab6nblqdm4plb04c34";
+  };
+
+  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}
+  '';
+
+  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/nixpkgs/pkgs/applications/editors/mg/default.nix b/nixpkgs/pkgs/applications/editors/mg/default.nix
new file mode 100644
index 000000000000..d0367d7c3051
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/mg/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, libbsd, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "mg-${version}";
+  version = "20171014";
+
+  src = fetchurl {
+    url = "http://homepage.boetes.org/software/mg/${name}.tar.gz";
+    sha256 = "0hakfikzsml7z0hja8m8mcahrmfy2piy81bq9nccsjplyfc9clai";
+  };
+
+  enableParallelBuilding = true;
+
+  makeFlags = [ "PKG_CONFIG=${pkgconfig}/bin/pkg-config" ];
+
+  installPhase = ''
+    install -m 555 -Dt $out/bin mg
+    install -m 444 -Dt $out/share/man/man1 mg.1
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ libbsd ncurses ];
+
+  meta = with stdenv.lib; {
+    description = "Micro GNU/emacs, a portable version of the mg maintained by the OpenBSD team";
+    homepage = "https://homepage.boetes.org/software/mg";
+    license = licenses.publicDomain;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/micro/default.nix b/nixpkgs/pkgs/applications/editors/micro/default.nix
new file mode 100644
index 000000000000..fab3646efdff
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/micro/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage  rec {
+  name = "micro-${version}";
+  version = "1.4.1";
+
+  goPackagePath = "github.com/zyedidia/micro";
+
+  src = fetchFromGitHub {
+    owner = "zyedidia";
+    repo = "micro";
+    rev = "v${version}";
+    sha256 = "0m9p6smb5grdazsgr3m1x4rry9ihhlgl9ildhvfp53czrifbx0m5";
+    fetchSubmodules = true;
+  };
+
+  subPackages = [ "cmd/micro" ];
+
+  buildFlagsArray = [ "-ldflags=" "-X main.Version=${version}" ];
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/editors/mindforger/build.patch b/nixpkgs/pkgs/applications/editors/mindforger/build.patch
new file mode 100644
index 000000000000..e2745cbce2d0
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/mindforger/default.nix b/nixpkgs/pkgs/applications/editors/mindforger/default.nix
new file mode 100644
index 000000000000..a027242c5eef
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/mindforger/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, qmake, qtbase, qtwebkit }:
+
+stdenv.mkDerivation rec {
+  name = "mindforger-${version}";
+  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/nixpkgs/pkgs/applications/editors/moe/default.nix b/nixpkgs/pkgs/applications/editors/moe/default.nix
new file mode 100644
index 000000000000..64843b2f0706
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/moe/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl
+, lzip, ncurses
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+  name = "moe-${version}";
+  version = "1.9";
+
+  src = fetchurl {
+    url = "mirror://gnu/moe/${name}.tar.lz";
+    sha256 = "1wsfzy0iia0c89wnx1ilzw54wqcmlp2nz8mkpvc393z0zagrx48q";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/monodevelop/default.nix b/nixpkgs/pkgs/applications/editors/monodevelop/default.nix
new file mode 100644
index 000000000000..c2917aa394f9
--- /dev/null
+++ b/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";
+  name = "monodevelop-${version}";
+
+  src = fetchurl {
+    url = "https://download.mono-project.com/sources/monodevelop/${name}.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/nixpkgs/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch b/nixpkgs/pkgs/applications/editors/monodevelop/git-revert-12d610fb3f6dce121df538e36f21d8c2eeb0a6e3.patch
new file mode 100644
index 000000000000..969aad33ec0b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix b/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
new file mode 100644
index 000000000000..1b1c6eaf9e54
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/music/tuxguitar/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, swt, jdk, makeWrapper, alsaLib }:
+
+let metadata = assert stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux";
+  if stdenv.hostPlatform.system == "i686-linux" then
+    { arch = "x86"; sha256 = "1qmb51k0538pn7gv4nsvhfv33xik4l4af0qmpllkzrikmj8wvzlb"; }
+  else
+    { arch = "x86_64"; sha256 = "12af47jhlrh9aq5b3d13l7cdhlndgnfpy61gz002hajbq7i00ixh"; };
+in stdenv.mkDerivation rec {
+  version = "1.2";
+  name = "tuxguitar-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/tuxguitar/${name}-linux-${metadata.arch}.tar.gz";
+    sha256 = metadata.sha256;
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r lib share $out/
+    cp tuxguitar $out/bin/tuxguitar
+    cp tuxguitar.jar $out/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 ]}" \
+      --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/nixpkgs/pkgs/applications/editors/nano/default.nix b/nixpkgs/pkgs/applications/editors/nano/default.nix
new file mode 100644
index 000000000000..0e313d33736a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/nano/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, fetchFromGitHub
+, ncurses
+, texinfo
+, 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 {
+  name = "nano-${version}";
+  version = "3.2";
+
+  src = fetchurl {
+    url = "mirror://gnu/nano/${name}.tar.xz";
+    sha256 = "0jb3zq0v84xb0chyynkcp2jhs9660wmpkic294p4p6c96npp69yi";
+  };
+
+  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;
+
+  meta = {
+    homepage = https://www.nano-editor.org/;
+    description = "A small, user-friendly console text editor";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [
+      jgeerds
+      joachifm
+    ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix b/nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix
new file mode 100644
index 000000000000..fb30036e146f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "nanorc-${version}";
+  version = "2018-09-05";
+
+  src = fetchFromGitHub {
+    owner = "scopatz";
+    repo = "nanorc";
+    rev = "1e589cb729d24fba470228d429e6dde07973d597";
+    sha256 = "136yxr38lzrfv8bar0c6c56rh54q9s94zpwa19f425crh44drppl";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/share
+
+    install *.nanorc $out/share/
+  '';
+
+  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/nixpkgs/pkgs/applications/editors/ne/default.nix b/nixpkgs/pkgs/applications/editors/ne/default.nix
new file mode 100644
index 000000000000..9bc6425bc411
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/ne/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, ncurses, texinfo, texlive, perl, ghostscript }:
+
+
+stdenv.mkDerivation rec {
+  name = "ne-${version}";
+  version = "3.1.2";
+  src = fetchFromGitHub {
+    owner = "vigna";
+    repo = "ne";
+    rev = version;
+    sha256 = "154grh9gdzydnqn9xxj7zpia9cc5x6a7y1g73vwizr9bkg92l5cc";
+  };
+  buildInputs = [ ncurses texlive.combined.scheme-medium texinfo perl ghostscript ];
+  dontBuild = true;
+  installPhase = ''
+    substituteInPlace src/makefile --replace "CC=c99" "cc=gcc"
+    substituteInPlace src/makefile --replace "-lcurses" "-lncurses"
+    substituteInPlace makefile --replace "./version.pl" "perl version.pl"
+    cd doc && make && cd ..
+    cd src && make && cd ..
+    make PREFIX=$out install
+  '';
+
+  meta = {
+    description = "The nice editor";
+    homepage = https://github.com/vigna/ne;
+    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 = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/nedit/default.nix b/nixpkgs/pkgs/applications/editors/nedit/default.nix
new file mode 100644
index 000000000000..6fff6df8cdda
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/nedit/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, xlibsWrapper, motif, libXpm }:
+
+stdenv.mkDerivation rec {
+  name = "nedit-${version}";
+  version = "5.7";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/nedit/nedit-source/${name}-src.tar.gz";
+    sha256 = "0ym1zhjx9976rf2z5nr7dj4mjkxcicimhs686snjhdcpzxwsrndd";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  nativeBuildInputs = [ xlibsWrapper ];
+  buildInputs = [ motif libXpm ];
+
+  buildFlags = if stdenv.isLinux then "linux" else
+               # the linux config works fine on darwin too!
+               if stdenv.isDarwin then "linux" else "";
+
+  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;
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/neovim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/default.nix
new file mode 100644
index 000000000000..6690e4c9c1b9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, fetchFromGitHub, cmake, gettext, msgpack, libtermkey, libiconv
+, libuv, luaPackages, ncurses, pkgconfig
+, unibilium, xsel, gperf
+, libvterm-neovim
+, withJemalloc ? true, jemalloc
+}:
+
+with stdenv.lib;
+
+let
+
+  neovim = stdenv.mkDerivation rec {
+    name = "neovim-unwrapped-${version}";
+    version = "0.3.1";
+
+    src = fetchFromGitHub {
+      owner = "neovim";
+      repo = "neovim";
+      rev = "v${version}";
+      sha256 = "19jy9nr2ffscli6wsysqkdvqvh7sgkkwhzkw3yypfrvg4pj9rl56";
+    };
+
+    enableParallelBuilding = true;
+
+    buildInputs = [
+      libtermkey
+      libuv
+      msgpack
+      ncurses
+      libvterm-neovim
+      unibilium
+      luaPackages.lua
+      gperf
+    ] ++ optional withJemalloc jemalloc
+      ++ optional stdenv.isDarwin libiconv
+      ++ lualibs;
+
+    nativeBuildInputs = [
+      cmake
+      gettext
+      pkgconfig
+    ];
+
+    LUA_PATH = stdenv.lib.concatStringsSep ";" (map luaPackages.getLuaPath lualibs);
+    LUA_CPATH = stdenv.lib.concatStringsSep ";" (map luaPackages.getLuaCPath lualibs);
+
+    lualibs = [ luaPackages.mpack luaPackages.lpeg luaPackages.luabitop ];
+
+    cmakeFlags = [
+      "-DLUA_PRG=${luaPackages.lua}/bin/lua"
+      "-DGPERF_PRG=${gperf}/bin/gperf"
+    ];
+
+    # triggers on buffer overflow bug while running tests
+    hardeningDisable = [ "fortify" ];
+
+    preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+      export DYLD_LIBRARY_PATH=${jemalloc}/lib
+      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
+    '' + stdenv.lib.optionalString (withJemalloc && stdenv.isDarwin) ''
+      install_name_tool -change libjemalloc.1.dylib \
+                ${jemalloc}/lib/libjemalloc.1.dylib \
+                $out/bin/nvim
+    '';
+
+    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 garbas rvolosatovs ];
+      platforms   = platforms.unix;
+    };
+  };
+
+in
+  neovim
diff --git a/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix b/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix
new file mode 100644
index 000000000000..11566293c49b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/neovim-remote.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+with stdenv.lib;
+
+pythonPackages.buildPythonPackage rec {
+  pname = "neovim-remote";
+  version = "2.1.1";
+  disabled = !pythonPackages.isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "mhinz";
+    repo = "neovim-remote";
+    rev = "v${version}";
+    sha256 = "1hkzcc141imjin03wpfykw50k0vs7vj1lr09czb2hsyf937gyjqn";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [ pynvim psutil ];
+
+  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/nixpkgs/pkgs/applications/editors/neovim/qt.nix b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
new file mode 100644
index 000000000000..315a51256f28
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, cmake, doxygen, makeWrapper
+, msgpack, neovim, pythonPackages, qtbase }:
+
+stdenv.mkDerivation rec {
+  name = "neovim-qt-${version}";
+  version = "0.2.11";
+
+  src = fetchFromGitHub {
+    owner  = "equalsraf";
+    repo   = "neovim-qt";
+    rev    = "v${version}";
+    sha256 = "0pc1adxc89p2rdvb6nxyqr9sjzqz9zw2dg7a4ardxsl3a8jga1wh";
+  };
+
+  cmakeFlags = [
+    "-DUSE_SYSTEM_MSGPACK=1"
+  ];
+
+  buildInputs = with pythonPackages; [
+    neovim qtbase msgpack
+  ] ++ (with pythonPackages; [
+    jinja2 msgpack python
+  ]);
+
+  nativeBuildInputs = [ cmake doxygen makeWrapper ];
+
+  enableParallelBuilding = true;
+
+  preConfigure = ''
+    # we rip out a number of tests that fail in the build env
+    # the GUI tests will never work but the others should - they did before neovim 0.2.0
+    # was released
+    sed -i test/CMakeLists.txt \
+      -e '/^add_xtest_gui/d' \
+      -e '/tst_neovimobject/d' \
+      -e '/tst_neovimconnector/d' \
+      -e '/tst_callallmethods/d' \
+      -e '/tst_encoding/d'
+  '';
+
+  doCheck = true;
+
+  postInstall = if stdenv.isDarwin then ''
+    mkdir -p $out/Applications
+    mv $out/bin/nvim-qt.app $out/Applications
+    rmdir $out/bin || :
+
+    wrapProgram "$out/Applications/nvim-qt.app/Contents/MacOS/nvim-qt" \
+      --prefix PATH : "${neovim}/bin"
+  '' else ''
+    wrapProgram "$out/bin/nvim-qt" \
+      --prefix PATH : "${neovim}/bin"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Neovim client library and GUI, in Qt5";
+    license     = licenses.isc;
+    maintainers = with maintainers; [ peterhoeg ];
+    inherit (neovim.meta) platforms;
+    inherit version;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile b/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile
new file mode 100644
index 000000000000..eebecf2906fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'neovim'
diff --git a/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock b/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
new file mode 100644
index 000000000000..a95ced76371d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/Gemfile.lock
@@ -0,0 +1,17 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    msgpack (1.2.4)
+    multi_json (1.13.1)
+    neovim (0.7.0)
+      msgpack (~> 1.0)
+      multi_json (~> 1.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  neovim
+
+BUNDLED WITH
+   1.14.6
diff --git a/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/gemset.nix b/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
new file mode 100644
index 000000000000..af887161ea6c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/ruby_provider/gemset.nix
@@ -0,0 +1,27 @@
+{
+  msgpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  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 = "0b487dzz41im8cwzvfjqgf8kkrp6mpkvcbzhazrmqqw8gxyvfbq4";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix b/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
new file mode 100644
index 000000000000..3dd3710da772
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
@@ -0,0 +1,112 @@
+{ stdenv, lib, makeWrapper
+, vimUtils
+, bundlerEnv, ruby
+, nodejs
+, nodePackages
+, pythonPackages
+, python3Packages
+}:
+with stdenv.lib;
+
+neovim:
+
+let
+  wrapper = {
+      withPython ? true,  extraPythonPackages ? (_: []) /* the function you would have passed to python.withPackages */
+    , withPython3 ? true,  extraPython3Packages ? (_: []) /* the function you would have passed to python.withPackages */
+    , withNodeJs? false
+    , withRuby ? true
+    , vimAlias ? false
+    , viAlias ? false
+    , configure ? {}
+  }:
+  let
+
+  rubyEnv = bundlerEnv {
+    name = "neovim-ruby-env";
+    gemdir = ./ruby_provider;
+    postBuild = ''
+      ln -sf ${ruby}/bin/* $out/bin
+    '';
+  };
+
+  /* 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);
+  extraPythonPackagesFun = compatFun extraPythonPackages;
+  extraPython3PackagesFun = compatFun extraPython3Packages;
+
+  requiredPlugins = vimUtils.requiredPlugins configure;
+  getDeps = attrname: map (plugin: plugin.${attrname} or (_:[]));
+
+  pluginPythonPackages = getDeps "pythonDependencies" requiredPlugins;
+  pythonEnv = pythonPackages.python.withPackages(ps:
+        [ ps.pynvim ]
+        ++ (extraPythonPackagesFun ps)
+        ++ (concatMap (f: f ps) pluginPythonPackages));
+
+  pluginPython3Packages = getDeps "python3Dependencies" requiredPlugins;
+  python3Env = python3Packages.python.withPackages (ps:
+        [ ps.pynvim ]
+        ++ (extraPython3PackagesFun ps)
+        ++ (concatMap (f: f ps) pluginPython3Packages));
+
+  binPath = makeBinPath (optionals withRuby [rubyEnv] ++ optionals withNodeJs [nodejs]);
+
+  in
+  stdenv.mkDerivation {
+      name = "neovim-${stdenv.lib.getVersion neovim}";
+      buildCommand = let bin="${neovim}/bin/nvim"; in ''
+        if [ ! -x "${bin}" ]
+        then
+            echo "cannot find executable file \`${bin}'"
+            exit 1
+        fi
+
+        makeWrapper "$(readlink -v --canonicalize-existing "${bin}")" \
+          "$out/bin/nvim" --add-flags " \
+        --cmd \"${if withNodeJs then "let g:node_host_prog='${nodePackages.neovim}/bin/neovim-node-host'" else "let g:loaded_node_provider=1"}\" \
+        --cmd \"${if withPython then "let g:python_host_prog='$out/bin/nvim-python'" else "let g:loaded_python_provider = 1"}\" \
+        --cmd \"${if withPython3 then "let g:python3_host_prog='$out/bin/nvim-python3'" else "let g:loaded_python3_provider = 1"}\" \
+        --cmd \"${if withRuby then "let g:ruby_host_prog='$out/bin/nvim-ruby'" else "let g:loaded_ruby_provider=1"}\" " \
+        --suffix PATH : ${binPath} \
+        ${optionalString withRuby '' --set GEM_HOME ${rubyEnv}/${rubyEnv.ruby.gemPath}'' }
+
+      ''
+      + optionalString (!stdenv.isDarwin) ''
+        # copy and patch the original neovim.desktop file
+        mkdir -p $out/share/applications
+        substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
+          --replace 'TryExec=nvim' "TryExec=$out/bin/nvim" \
+          --replace 'Name=Neovim' 'Name=WrappedNeovim'
+      ''
+      + optionalString withPython ''
+        makeWrapper ${pythonEnv}/bin/python $out/bin/nvim-python --unset PYTHONPATH
+    '' + optionalString withPython3 ''
+        makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH
+    '' + optionalString withRuby ''
+      ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
+    '' + optionalString vimAlias ''
+      ln -s $out/bin/nvim $out/bin/vim
+    '' + optionalString viAlias ''
+      ln -s $out/bin/nvim $out/bin/vi
+    '' + optionalString (configure != {}) ''
+    wrapProgram $out/bin/nvim --add-flags "-u ${vimUtils.vimrcFile configure}"
+    ''
+    ;
+
+    preferLocalBuild = true;
+
+    buildInputs = [makeWrapper];
+    passthru = { unwrapped = neovim; };
+
+    meta = neovim.meta // {
+      description = neovim.meta.description;
+      hydraPlatforms = [];
+      # prefer wrapper over the package
+      priority = (neovim.meta.priority or 0) - 1;
+    };
+  };
+in
+  lib.makeOverridable wrapper
diff --git a/nixpkgs/pkgs/applications/editors/netbeans/default.nix b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
new file mode 100644
index 000000000000..9af60ca4fcbd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem
+, jdk, perl, python, unzip, which
+}:
+
+let
+  desktopItem = makeDesktopItem {
+    name = "netbeans";
+    exec = "netbeans";
+    comment = "Integrated Development Environment";
+    desktopName = "Netbeans IDE";
+    genericName = "Integrated Development Environment";
+    categories = "Application;Development;";
+  };
+in
+stdenv.mkDerivation {
+  name = "netbeans-8.2";
+  src = fetchurl {
+    url = https://download.netbeans.org/netbeans/8.2/final/zip/netbeans-8.2-201609300101.zip;
+    sha256 = "0j092qw7aqfc9vpnvr3ix1ii94p4ik6frcnw708iyv4s9crqi65d";
+  };
+
+  buildCommand = ''
+    # Unpack and perform some path patching.
+    unzip $src
+    patchShebangs .
+
+    # Copy to installation directory and create a wrapper capable of starting
+    # it.
+    mkdir -p $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}"
+
+    # Create desktop item, so we can pick it from the KDE/GNOME menu
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+  '';
+
+  buildInputs = [ makeWrapper perl python unzip ];
+
+  meta = {
+    description = "An integrated development environment for Java, C, C++ and PHP";
+    maintainers = [ stdenv.lib.maintainers.sander ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/notepadqq/default.nix b/nixpkgs/pkgs/applications/editors/notepadqq/default.nix
new file mode 100644
index 000000000000..ab79c3e780b2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/notepadqq/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, pkgconfig, which, qtbase, qtsvg, qttools, qtwebkit}:
+
+let
+  version = "1.4.8";
+in stdenv.mkDerivation {
+  name = "notepadqq-${version}";
+  src = fetchFromGitHub {
+    owner = "notepadqq";
+    repo = "notepadqq";
+    rev = "v${version}";
+    sha256 = "0lbv4s7ng31dkznzbkmp2cvkqglmfj6lv4mbg3r410fif2nrva7k";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    pkgconfig which qttools
+  ];
+
+  buildInputs = [
+    qtbase qtsvg qtwebkit
+  ];
+
+  preConfigure = ''
+    export LRELEASE="lrelease"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = https://notepadqq.com/;
+    description = "Notepad++-like editor for the Linux desktop";
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ rszibele ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/nvi/default.nix b/nixpkgs/pkgs/applications/editors/nvi/default.nix
new file mode 100644
index 000000000000..82c89ebdca6e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/nvi/default.nix
@@ -0,0 +1,55 @@
+{ fetchurl, stdenv, ncurses }:
+
+stdenv.mkDerivation rec {
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/nvpy/default.nix b/nixpkgs/pkgs/applications/editors/nvpy/default.nix
new file mode 100644
index 000000000000..567f47520352
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/okteta/default.nix b/nixpkgs/pkgs/applications/editors/okteta/default.nix
new file mode 100644
index 000000000000..b14065429152
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/okteta/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, extra-cmake-modules, kdoctools, qtscript, kconfig
+, kinit, karchive, kcrash, kcmutils, kconfigwidgets, knewstuff, kparts
+, qca-qt5, shared-mime-info }:
+
+stdenv.mkDerivation rec {
+  name = "okteta-${version}";
+  version = "0.25.4";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/okteta/${version}/src/${name}.tar.xz";
+    sha256 = "0liar1xbns6mr6j320nyxqfii82i4ysp62hf3j6jg1112v874amf";
+  };
+
+  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;
+    maintainers = with maintainers; [ peterhoeg bkchr ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/quilter/default.nix b/nixpkgs/pkgs/applications/editors/quilter/default.nix
new file mode 100644
index 000000000000..b9fe90be9fb2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/quilter/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, fetchpatch, vala_0_40, pkgconfig, meson, ninja, python3
+, granite, gtk3, desktop-file-utils, gnome3, gtksourceview, webkitgtk, gtkspell3
+, discount, gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "quilter";
+  version = "1.6.8";
+
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "lainsce";
+    repo = pname;
+    rev = version;
+    sha256 = "07i9pivpddgixn1wzbr15gvzf0n5pklx0gkjjaa35kvj2z8k31x5";
+  };
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    discount
+    gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
+    gnome3.libgee
+    granite
+    gtk3
+    gtksourceview
+    gtkspell3
+    webkitgtk
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Focus on your writing - designed for elementary OS";
+    homepage = https://github.com/lainsce/quilter;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ worldofpeace ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/rednotebook/default.nix b/nixpkgs/pkgs/applications/editors/rednotebook/default.nix
new file mode 100644
index 000000000000..de9a089ec8c6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/rednotebook/default.nix
@@ -0,0 +1,39 @@
+{ lib, buildPythonApplication, fetchFromGitHub
+, gdk_pixbuf, glib, gobject-introspection, gtk3, gtksourceview, pango, webkitgtk
+, pygobject3, pyyaml
+}:
+
+buildPythonApplication rec {
+  pname = "rednotebook";
+  version = "2.8";
+
+  src = fetchFromGitHub {
+    owner = "jendrikseipp";
+    repo = "rednotebook";
+    rev = "v${version}";
+    sha256 = "0k75lw3p6jx30ngvn8iipk1763gazkbrsad3fpl3sqppaqaggryj";
+  };
+
+  # 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"
+  ];
+
+  meta = with lib; {
+    homepage = http://rednotebook.sourceforge.net/;
+    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/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch b/nixpkgs/pkgs/applications/editors/rstudio/clang-location.patch
new file mode 100644
index 000000000000..402abdd85636
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/rstudio/default.nix b/nixpkgs/pkgs/applications/editors/rstudio/default.nix
new file mode 100644
index 000000000000..9d8c430630e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/rstudio/default.nix
@@ -0,0 +1,121 @@
+{ stdenv, fetchurl, fetchFromGitHub, makeDesktopItem, cmake, boost
+, zlib, openssl, R, qtbase, qtwebkit, qtwebchannel, libuuid, hunspellDicts
+, unzip, ant, jdk, gnumake, makeWrapper, pandoc
+}:
+
+let
+  verMajor = "1";
+  verMinor = "1";
+  verPatch = "463";
+  version = "${verMajor}.${verMinor}.${verPatch}";
+  ginVer = "1.5";
+  gwtVer = "2.7.0";
+in
+stdenv.mkDerivation rec {
+  name = "RStudio-${version}";
+
+  nativeBuildInputs = [ cmake unzip ant jdk makeWrapper pandoc ];
+
+  buildInputs = [ boost zlib openssl R qtbase qtwebkit qtwebchannel libuuid ];
+
+  src = fetchFromGitHub {
+    owner = "rstudio";
+    repo = "rstudio";
+    rev = "v${version}";
+    sha256 = "014g984znsczzy1fyn9y1ly3rbsngryfs674lfgciz60mqnl8im6";
+  };
+
+  # Hack RStudio to only use the input R.
+  patches = [ ./r-location.patch ];
+  postPatch = "substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}";
+
+  ginSrc = fetchurl {
+    url = "https://s3.amazonaws.com/rstudio-buildtools/gin-${ginVer}.zip";
+    sha256 = "155bjrgkf046b8ln6a55x06ryvm8agnnl7l8bkwwzqazbpmz8qgm";
+  };
+
+  gwtSrc = fetchurl {
+    url = "https://s3.amazonaws.com/rstudio-buildtools/gwt-${gwtVer}.zip";
+    sha256 = "1cs78z9a1jg698j2n35wsy07cy4fxcia9gi00x0r0qc3fcdhcrda";
+  };
+
+  hunspellDictionaries = with stdenv.lib; filter isDerivation (attrValues hunspellDicts);
+
+  mathJaxSrc = fetchurl {
+    url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip;
+    sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
+  };
+
+  rstudiolibclang = fetchurl {
+    url = https://s3.amazonaws.com/rstudio-buildtools/libclang-3.5.zip;
+    sha256 = "1sl5vb8misipwbbbykdymw172w9qrh8xv3p29g0bf3nzbnv6zc7c";
+  };
+
+  rstudiolibclangheaders = fetchurl {
+    url = https://s3.amazonaws.com/rstudio-buildtools/libclang-builtin-headers.zip;
+    sha256 = "0x4ax186bm3kf098izwmsplckgx1kqzg9iiyzg95rpbqsb4593qb";
+  };
+
+  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 " " hunspellDictionaries}; 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/libclang/3.5
+      unzip ${rstudiolibclang} -d dependencies/common/libclang/3.5
+      mkdir -p dependencies/common/libclang/builtin-headers
+      unzip ${rstudiolibclangheaders} -d dependencies/common/libclang/builtin-headers
+
+      mkdir -p dependencies/common/pandoc
+      cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
+    '';
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" "-DQT_QMAKE_EXECUTABLE=$NIX_QT5_TMP/bin/qmake" ];
+
+  desktopItem = makeDesktopItem {
+    name = name;
+    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;";
+  };
+
+  postInstall = ''
+      wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin
+      mkdir $out/share
+      cp -r ${desktopItem}/share/applications $out/share
+      mkdir $out/share/icons
+      ln $out/rstudio.png $out/share/icons
+  '';
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/editors/rstudio/fix-cmake.patch b/nixpkgs/pkgs/applications/editors/rstudio/fix-cmake.patch
new file mode 100644
index 000000000000..3effc0eaa32b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/rstudio/fix-cmake.patch
@@ -0,0 +1,15 @@
+diff --git a/src/cpp/desktop/CMakeLists.txt b/src/cpp/desktop/CMakeLists.txt
+index f5701bf735..27af4148ff 100644
+--- a/src/cpp/desktop/CMakeLists.txt
++++ b/src/cpp/desktop/CMakeLists.txt
+@@ -112,6 +112,7 @@ find_package(Qt5WebEngine REQUIRED)
+ find_package(Qt5WebEngineWidgets REQUIRED)
+ find_package(Qt5PrintSupport REQUIRED)
+ find_package(Qt5Quick REQUIRED)
++find_package(Qt5QuickWidgets REQUIRED)
+ find_package(Qt5Positioning REQUIRED)
+ find_package(Qt5Sensors REQUIRED)
+ find_package(Qt5Svg REQUIRED)
+-- 
+2.17.1
+
diff --git a/nixpkgs/pkgs/applications/editors/rstudio/preview.nix b/nixpkgs/pkgs/applications/editors/rstudio/preview.nix
new file mode 100644
index 000000000000..340aeec15e0f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/rstudio/preview.nix
@@ -0,0 +1,119 @@
+{ stdenv, fetchurl, fetchFromGitHub, makeDesktopItem, cmake, boost, zlib
+, openssl, R, qtbase, qtdeclarative, qtsensors, qtwebengine, qtwebchannel
+, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
+, llvmPackages
+}:
+
+let
+  rev = "f33fb2b2f1";
+  ginVer = "2.1.2";
+  gwtVer = "2.8.1";
+in
+stdenv.mkDerivation rec {
+  name = "RStudio-preview-${rev}";
+
+  nativeBuildInputs = [ cmake unzip ant jdk makeWrapper pandoc ];
+
+  buildInputs = [ boost zlib openssl R qtbase qtdeclarative qtsensors
+                  qtwebengine qtwebchannel libuuid ];
+
+  src = fetchFromGitHub {
+    owner = "rstudio";
+    repo = "rstudio";
+    inherit rev;
+    sha256 = "0v3vzqjp74c3m4h9l6w2lrdnjqaimdjzbf7vhnlxj2qa0lwsnykb";
+  };
+
+  # Hack RStudio to only use the input R and provided libclang.
+  patches = [ ./r-location.patch ./clang-location.patch ];
+  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 = with stdenv.lib; filter isDerivation (attrValues hunspellDicts);
+
+  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 =
+    ''
+      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 " " hunspellDictionaries}; 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 = name;
+    exec = "rstudio %F";
+    icon = "rstudio";
+    desktopName = "RStudio Preview";
+    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;";
+  };
+
+  postInstall = ''
+      wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin
+      mkdir $out/share
+      cp -r ${desktopItem}/share/applications $out/share
+      mkdir $out/share/icons
+      ln $out/rstudio.png $out/share/icons
+  '';
+
+  meta = with stdenv.lib;
+    { description = "Set of integrated tools for the R language";
+      homepage = https://www.rstudio.com/;
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ averelld ];
+      platforms = platforms.linux;
+    };
+}
diff --git a/nixpkgs/pkgs/applications/editors/rstudio/r-location.patch b/nixpkgs/pkgs/applications/editors/rstudio/r-location.patch
new file mode 100644
index 000000000000..24cb6a246977
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/scite/default.nix b/nixpkgs/pkgs/applications/editors/scite/default.nix
new file mode 100644
index 000000000000..2f4693982a9c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/scite/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, gtk2 }:
+
+stdenv.mkDerivation rec {
+  name = "scite-${version}";
+  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/nixpkgs/pkgs/applications/editors/sigil/default.nix b/nixpkgs/pkgs/applications/editors/sigil/default.nix
new file mode 100644
index 000000000000..ef0d98455f27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/sigil/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, makeWrapper
+, boost, xercesc
+, qtbase, qttools, qtwebkit, qtxmlpatterns
+, python3, python3Packages
+}:
+
+stdenv.mkDerivation rec {
+  name = "sigil-${version}";
+  version = "0.9.10";
+
+  src = fetchFromGitHub {
+    sha256 = "11r7043kbqv67z1aqk929scsg6yllldpl8icl32dw3dai7f1c658";
+    rev = version;
+    repo = "Sigil";
+    owner = "Sigil-Ebook";
+  };
+
+  pythonPath = with python3Packages; [ lxml ];
+
+  propagatedBuildInputs = with python3Packages; [ lxml ];
+
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+
+  buildInputs = [
+    boost xercesc qtbase qttools qtwebkit qtxmlpatterns
+    python3 python3Packages.lxml ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/sigil" \
+       --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath ${python3Packages.lxml})
+  '';
+
+  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;
+    maintainers =[ maintainers.ramkromberg ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/standardnotes/default.nix b/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
new file mode 100644
index 000000000000..d9bca5309489
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, appimage-run, fetchurl }:
+
+let
+  version = "2.3.12";
+
+  plat = {
+    "i386-linux" = "i386";
+    "x86_64-linux" = "x86_64";
+  }.${stdenv.hostPlatform.system};
+
+  sha256 = {
+    "i386-linux" = "0q7izk20r14kxn3n4pn92jgnynfnlnylg55brz8n1lqxc0dc3v24";
+    "x86_64-linux" = "0myg4qv0vrwh8s9sckb12ld9f86ymx4yypvpy0w5qn1bxk5hbafc";
+  }.${stdenv.hostPlatform.system};
+in
+
+stdenv.mkDerivation rec {
+  name = "standardnotes-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/standardnotes/desktop/releases/download/v${version}/standard-notes-${version}-${plat}.AppImage";
+    inherit sha256;
+  };
+
+  buildInputs = [ appimage-run ];
+
+  unpackPhase = ":";
+
+  installPhase = ''
+    mkdir -p $out/{bin,share}
+    cp $src $out/share/standardNotes.AppImage
+    echo "#!/bin/sh" > $out/bin/standardnotes
+    echo "${appimage-run}/bin/appimage-run $out/share/standardNotes.AppImage" >> $out/bin/standardnotes
+    chmod +x $out/bin/standardnotes $out/share/standardNotes.AppImage
+  '';
+
+  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/nixpkgs/pkgs/applications/editors/sublime/2/default.nix b/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
new file mode 100644
index 000000000000..24639f3bfd46
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/sublime/3/common.nix b/nixpkgs/pkgs/applications/editors/sublime/3/common.nix
new file mode 100644
index 000000000000..cf6802eb9a93
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/sublime/3/common.nix
@@ -0,0 +1,137 @@
+{buildVersion, x32sha256, x64sha256}:
+
+{ fetchurl, stdenv, glib, xorg, cairo, gtk2, gtk3, pango, makeWrapper, wrapGAppsHook, openssl, bzip2,
+  pkexecPath ? "/run/wrappers/bin/pkexec", libredirect,
+  gksuSupport ? false, gksu, unzip, zip, bash}:
+
+assert gksuSupport -> gksu != null;
+
+let
+  legacy = stdenv.lib.versionOlder buildVersion "3181";
+  libPath = stdenv.lib.makeLibraryPath [ glib xorg.libX11 (if legacy then gtk2 else gtk3) cairo pango ];
+  redirects = [ "/usr/bin/pkexec=${pkexecPath}" ]
+    ++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo";
+in let
+  archSha256 =
+    if stdenv.hostPlatform.system == "i686-linux" then
+      x32sha256
+    else
+      x64sha256;
+
+  arch =
+    if stdenv.hostPlatform.system == "i686-linux" then
+      "x32"
+    else
+      "x64";
+
+  # package with just the binaries
+  sublime = stdenv.mkDerivation {
+    name = "sublimetext3-${buildVersion}-bin";
+    src =
+      fetchurl {
+        name = "sublimetext-${buildVersion}.tar.bz2";
+        url = "https://download.sublimetext.com/sublime_text_3_build_${buildVersion}_${arch}.tar.bz2";
+        sha256 = archSha256;
+      };
+
+    dontStrip = true;
+    dontPatchELF = true;
+    buildInputs = stdenv.lib.optionals (!legacy) [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH
+    nativeBuildInputs = [ makeWrapper zip unzip ] ++ stdenv.lib.optional (!legacy) 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 i in sublime_text plugin_host crash_reporter; do
+        patchelf \
+          --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          --set-rpath ${libPath}:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"} \
+          $i
+      done
+
+      # Rewrite pkexec|gksudo argument. Note that we can't delete bytes in binary.
+      sed -i -e 's,/bin/cp\x00,cp\x00\x00\x00\x00\x00\x00,g' sublime_text
+
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      # Correct sublime_text.desktop to exec `sublime' instead of /opt/sublime_text
+      sed -e "s,/opt/sublime_text/sublime_text,$out/sublime_text," -i sublime_text.desktop
+
+      mkdir -p $out
+      cp -prvd * $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/sublime_text \
+        --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+        --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \
+        ${stdenv.lib.optionalString (!legacy) ''"''${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 {
+  name = "sublimetext3-${buildVersion}";
+
+  phases = [ "installPhase" ];
+
+  inherit sublime;
+
+  installPhase = ''
+    mkdir -p $out/bin
+
+    cat > $out/bin/subl <<-EOF
+    #!/bin/sh
+    exec $sublime/sublime_text "\$@"
+    EOF
+    chmod +x $out/bin/subl
+
+    ln $out/bin/subl $out/bin/sublime
+    ln $out/bin/subl $out/bin/sublime3
+    mkdir -p $out/share/applications
+    ln -s $sublime/sublime_text.desktop $out/share/applications/sublime_text.desktop
+    ln -s $sublime/Icon/256x256/ $out/share/icons
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Sophisticated text editor for code, markup and prose";
+    homepage = https://www.sublimetext.com/;
+    maintainers = with maintainers; [ wmertens demin-dmitriy zimbatm ];
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+})
diff --git a/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix b/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix
new file mode 100644
index 000000000000..f9a6f1cb6dc9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix
@@ -0,0 +1,18 @@
+{ callPackage }:
+
+let
+  common = opts: callPackage (import ./common.nix opts);
+in
+  rec {
+    sublime3-dev = common {
+      buildVersion = "3183";
+      x32sha256 = "0rgah7iq9y3afbawcb723d2b7m56lz0ji5l8klxvkp59c9rphqxh";
+      x64sha256 = "1n3zarkhs22p2vi32fswb0fvcn9fzivmziw6zcvjy02c0rmxmdkz";
+    } {};
+
+    sublime3 = common {
+      buildVersion = "3176";
+      x32sha256 = "08asz13888d4ddsz81cfk7k3319dabzz1kgbnshw0756pvyrvr23";
+      x64sha256 = "0cppkh5jx2g8f6jyy1bs81fpb90l0kn5m7y3skackpjdxhd7rwbl";
+    } {};
+  }
diff --git a/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix b/nixpkgs/pkgs/applications/editors/supertux-editor/default.nix
new file mode 100644
index 000000000000..a6d624d4b1ec
--- /dev/null
+++ b/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 rec {
+  version = "git-2014-08-20";
+  name = "supertux-editor-${version}";
+
+  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/nixpkgs/pkgs/applications/editors/tecoc/default.nix b/nixpkgs/pkgs/applications/editors/tecoc/default.nix
new file mode 100644
index 000000000000..dd986b346a37
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/tecoc/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchFromGitHub
+, ncurses }:
+
+stdenv.mkDerivation rec {
+
+  name = "tecoc-git-${version}";
+  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/${name} $out/lib/teco/macros
+    cp src/tecoc $out/bin
+    cp src/aaout.txt doc/* $out/share/doc/${name}
+    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/nixpkgs/pkgs/applications/editors/texmacs/common.nix b/nixpkgs/pkgs/applications/editors/texmacs/common.nix
new file mode 100644
index 000000000000..ec2498aa69b9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/texmacs/darwin.nix b/nixpkgs/pkgs/applications/editors/texmacs/darwin.nix
new file mode 100644
index 000000000000..dfb2e49e0c8d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/texmacs/darwin.nix
@@ -0,0 +1,59 @@
+{ 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 {
+  name = "TeXmacs-${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 "${netpbm}/bin:") +
+    (if imagemagick == null then "" else "${imagemagick}/bin:");
+
+  enableParallelBuilding = true;
+
+  meta = common.meta // {
+    platforms = stdenv.lib.platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/texmacs/darwin.patch b/nixpkgs/pkgs/applications/editors/texmacs/darwin.patch
new file mode 100644
index 000000000000..2cb33fbbef30
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/texmacs/default.nix b/nixpkgs/pkgs/applications/editors/texmacs/default.nix
new file mode 100644
index 000000000000..d3d95e5886a5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/texmacs/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, callPackage,
+  fetchurl, guile_1_8, qt4, zlib, xmodmap, which, makeWrapper, freetype,
+  tex ? null,
+  aspell ? null,
+  ghostscriptX ? null,
+  extraFonts ? false,
+  chineseFonts ? false,
+  japaneseFonts ? false,
+  koreanFonts ? false }:
+
+let
+  pname = "TeXmacs";
+  version = "1.99.2";
+  common = callPackage ./common.nix {
+    inherit tex extraFonts chineseFonts japaneseFonts koreanFonts;
+  };
+in
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
+    sha256 = "0l48g9746igiaxw657shm8g3xxk565vzsviajlrxqyljbh6py0fs";
+  };
+
+  buildInputs = [ guile_1_8 qt4 makeWrapper ghostscriptX freetype ];
+
+  postInstall = "wrapProgram $out/bin/texmacs --suffix PATH : " +
+        (if ghostscriptX == null then "" else "${ghostscriptX}/bin:") +
+        (if aspell == null then "" else "${aspell}/bin:") +
+        (if tex == null then "" else "${tex}/bin:") +
+        "${xmodmap}/bin:${which}/bin";
+
+  inherit (common) postPatch;
+
+  postFixup = ''
+    bin="$out/libexec/TeXmacs/bin/texmacs.bin"
+    rpath=$(patchelf --print-rpath "$bin")
+    patchelf --set-rpath "$rpath:${zlib.out}/lib" "$bin"
+  '';
+
+  meta = common.meta // {
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/texmaker/default.nix b/nixpkgs/pkgs/applications/editors/texmaker/default.nix
new file mode 100644
index 000000000000..036bd8e546c4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/texmaker/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, qtbase, qtscript, qmake, zlib, pkgconfig, poppler }:
+
+stdenv.mkDerivation rec {
+  pname = "texmaker";
+  version = "5.0.3";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www.xm1math.net/texmaker/${name}.tar.bz2";
+    sha256 = "0vrj9w5lk3vf6138n5bz8phmy3xp5kv4dq1rgirghcf4hbxdyx30";
+  };
+
+  buildInputs = [ qtbase qtscript poppler zlib ];
+  nativeBuildInputs = [ pkgconfig poppler qmake ];
+  NIX_CFLAGS_COMPILE="-I${poppler.dev}/include/poppler";
+
+  preConfigure = ''
+    qmakeFlags="$qmakeFlags DESKTOPDIR=$out/share/applications ICONDIR=$out/share/pixmaps METAINFODIR=$out/share/metainfo"
+  '';
+
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/texstudio/default.nix b/nixpkgs/pkgs/applications/editors/texstudio/default.nix
new file mode 100644
index 000000000000..ca04cccdf17b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/texstudio/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, qt5, poppler, zlib, pkgconfig}:
+
+stdenv.mkDerivation rec {
+  pname = "texstudio";
+  version = "2.12.14";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "${pname}-org";
+    repo = pname;
+    rev = version;
+    sha256 = "08vfhkgzhh1227wcvr5wwpnw0072c80nf2crhmxwh3jgjfgi538f";
+  };
+
+  nativeBuildInputs = [ qt5.qmake pkgconfig ];
+  buildInputs = [ qt5.qtbase qt5.qtscript qt5.qtsvg poppler zlib ];
+
+  qmakeFlags = [ "NO_APPDATA=True" ];
+
+  meta = with stdenv.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; [ cfouche ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/textadept/default.nix b/nixpkgs/pkgs/applications/editors/textadept/default.nix
new file mode 100644
index 000000000000..f17f5a9a26a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/textadept/default.nix
@@ -0,0 +1,159 @@
+{ stdenv, fetchhg, fetchurl, fetchzip, gtk2, glib, pkgconfig, unzip, ncurses, zip }:
+let
+  # Textadept requires a whole bunch of external dependencies.
+  # The build system expects to be able to download them with wget.
+  # This expression gets Nix to fetch them instead.
+
+
+  cached_url = url: sha256: fetchurl {
+    inherit sha256 url;
+  };
+
+  get_url = url: sha256: let
+    store_path = cached_url url sha256;
+  in ''
+    local_path=$(basename ${store_path} | sed -e 's@^[0-9a-z]\+-@@')
+
+    # Copy the file from the Nix store and remove the hash part.
+    cp ${store_path} $local_path
+
+    # Update its access and modified times.
+    touch $local_path
+  '';
+
+  cached_url_zip = url: sha256: fetchzip {
+    inherit sha256 url;
+  };
+
+  get_url_zip = url: sha256: let
+    store_path = cached_url_zip url sha256;
+  in ''
+    (
+      build_dir=$PWD
+      cd $TMPDIR
+
+      local_path=$(basename ${url} .zip)
+
+      cp -r ${store_path} $local_path
+      chmod u+rwX -R $local_path
+      zip -r $build_dir/$local_path.zip $local_path
+      touch $local_path
+    )
+  '';
+
+
+  # These lists are taken from the Makefile.
+  scintilla_tgz  = "scintilla373.tgz";
+  tre_zip        = "cdce45e8dd7a3b36954022b4a4d3570e1ac5a4f8.zip";
+  scinterm_zip   = "scinterm_1.8.zip";
+  scintillua_zip = "33298b6cbce3.zip";
+  lua_tgz        = "lua-5.3.4.tar.gz";
+  lpeg_tgz       = "lpeg-1.0.0.tar.gz";
+  lfs_zip        = "v_1_6_3.zip";
+  lspawn_zip     = "lspawn_1.5.zip";
+  luajit_tgz     = "LuaJIT-2.0.3.tar.gz";
+  libluajit_tgz  = "libluajit_2.0.3.x86_64.tgz";
+  gtdialog_zip   = "gtdialog_1.3.zip";
+  cdk_tgz        = "cdk-5.0-20150928.tgz";
+  termkey_tgz    = "libtermkey-0.17.tar.gz";
+
+  scinterm_url   = "http://foicica.com/scinterm/download/" + scinterm_zip;
+  tre_url        = "https://github.com/laurikari/tre/archive/" + tre_zip;
+  #scintillua_url = "http://foicica.com/scintillua/download/" + scintillua_zip;
+  scintillua_url = "http://foicica.com/hg/scintillua/archive/" + scintillua_zip;
+  gtdialog_url   = "http://foicica.com/gtdialog/download/" + gtdialog_zip;
+  lspawn_url     = "http://foicica.com/lspawn/download/" + lspawn_zip;
+
+  scintilla_url  = "mirror://sourceforge/scintilla/" + scintilla_tgz;
+  lua_url        = "http://www.lua.org/ftp/" + lua_tgz;
+  lpeg_url       = "http://www.inf.puc-rio.br/~roberto/lpeg/" + lpeg_tgz;
+  lfs_url        = "https://github.com/keplerproject/luafilesystem/archive/" + lfs_zip;
+  luajit_url     = "http://luajit.org/download/" + luajit_tgz;
+  libluajit_url  = "http://foicica.com/textadept/download/" + libluajit_tgz;
+  cdk_url        = "http://invisible-mirror.net/archives/cdk/" + cdk_tgz;
+  bombay_url     = "http://foicica.com/hg/bombay/archive/tip.zip";
+  termkey_url    = "http://www.leonerd.org.uk/code/libtermkey/" + termkey_tgz;
+
+
+  get_scintilla   = get_url scintilla_url   "0rkczxzj6bqxks4jcbxbyrarjhfjh95nwxxiqprfid1kaamgkfm2";
+  get_tre         = get_url tre_url         "0mw8npwk5nnhc33352j4akannhpx77kqvfam8jdq1n4yf8js1gi7";
+  get_scinterm    = get_url scinterm_url    "02ax6cjpxylfz7iqp1cjmsl323in066a38yklmsyzdl3w7761nxi";
+  get_scintillua  = get_url scintillua_url  "1kx113dpjby1p9jcsqlnlzwj01z94f9szw4b38077qav3bj4lk6g";
+  get_lua         = get_url lua_url         "0320a8dg3aci4hxla380dx1ifkw8gj4gbw5c4dz41g1kh98sm0gn";
+  get_lpeg        = get_url lpeg_url        "13mz18s359wlkwm9d9iqlyyrrwjc6iqfpa99ai0icam2b3khl68h";
+  get_lfs         = get_url_zip lfs_url     "1hxcnqj53540ysyw8fzax7f09pl98b8f55s712gsglcdxp2g2pri";
+  get_lspawn      = get_url lspawn_url      "09c6v9irblay2kv1n7i59pyj9g4xb43c6rfa7ba5m353lymcwwqi";
+  get_luajit      = get_url luajit_url      "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm";
+  get_libluajit   = get_url libluajit_url   "1nhvcdjpqrhd5qbihdm3bxpw84irfvnw2vmfqnsy253ay3dxzrgy";
+  get_gtdialog    = get_url gtdialog_url    "0nvcldyhj8abr8jny9pbyfjwg8qfp9f2h508vjmrvr5c5fqdbbm0";
+  get_cdk         = get_url cdk_url         "0j74l874y33i26y5kjg3pf1vswyjif8k93pqhi0iqykpbxfsg382";
+  get_bombay      = get_url_zip bombay_url  "0illabngrrxidkprgz268wgjqknrds34nhm6hav95xc1nmsdr6jj"
+    + "mv tip.zip bombay.zip\n";
+  get_termkey     = get_url termkey_url     "12gkrv1ldwk945qbpprnyawh0jz7rmqh18fyndbxiajyxmj97538";
+
+
+  get_deps = get_scintilla
+    + get_tre
+    + get_scinterm
+    + get_scintillua
+    + get_lua
+    + get_lpeg
+    + get_lfs
+    + get_lspawn
+    + get_luajit
+    + get_libluajit
+    + get_gtdialog
+    + get_cdk
+    + get_bombay
+    + get_termkey;
+in
+stdenv.mkDerivation rec {
+  version = "9.3";
+  name = "textadept-${version}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    gtk2 glib unzip ncurses zip
+  ];
+
+  src = fetchhg {
+    url = http://foicica.com/hg/textadept;
+    rev = "textadept_${version}";
+    sha256 = "18x79pazm86agn1khdxfnf87la6kli3xasi7dcjx7l6yyz19y14d";
+  };
+
+  preConfigure = ''
+    cd src
+
+    # Make a dummy wget.
+    mkdir wget
+    echo '#! ${stdenv.shell}' > wget/wget
+    chmod a+x wget/wget
+    export PATH="$PATH:$PWD/wget"
+
+    ${get_deps}
+
+    # Let the build system do whatever setup it needs to do with these files.
+    make deps
+  '';
+
+  postBuild = ''
+    make curses
+  '';
+
+  postInstall = ''
+    make curses install PREFIX=$out MAKECMDGOALS=curses
+  '';
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  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/nixpkgs/pkgs/applications/editors/texworks/default.nix b/nixpkgs/pkgs/applications/editors/texworks/default.nix
new file mode 100644
index 000000000000..fe90250d4152
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/texworks/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
+, qt5, libsForQt5, hunspell
+, withLua ? true, lua
+, withPython ? true, python }:
+
+stdenv.mkDerivation rec {
+  name = "texworks-${version}";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "TeXworks";
+    repo = "texworks";
+    rev = "release-${version}";
+    sha256 = "0kj4pq5h4vs2wwg6cazxjlv83x6cwdfsa76winfkdddaqzpdklsj";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ qt5.qtscript libsForQt5.poppler hunspell lua python ]
+                ++ lib.optional withLua lua
+                ++ lib.optional withPython python;
+
+  cmakeFlags = lib.optional withLua "-DWITH_LUA=ON"
+               ++ lib.optional withPython "-DWITH_PYTHON=ON";
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/editors/thonny/default.nix b/nixpkgs/pkgs/applications/editors/thonny/default.nix
new file mode 100644
index 000000000000..ba68a5420a88
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/thonny/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromBitbucket, python3 }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+  pname = "thonny";
+  version = "3.0.5";
+
+  src = fetchFromBitbucket {
+    owner = "plas";
+    repo = pname;
+    rev = "e5a1ad4ae9d24066a769489b1e168b4bd6e00b03";
+    sha256 = "1lrl5pj9dpw9i5ij863hd47gfd15nmvglqkl2ldwgfn7kgpsdkz5";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    jedi
+    pyserial
+    tkinter
+    docutils
+    pylint
+    mypy
+    pyperclip
+  ];
+
+  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/nixpkgs/pkgs/applications/editors/tiled/default.nix b/nixpkgs/pkgs/applications/editors/tiled/default.nix
new file mode 100644
index 000000000000..ed37ad794a0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/tiled/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pkgconfig, qmake
+, python, qtbase, qttools }:
+
+stdenv.mkDerivation rec {
+  name = "tiled-${version}";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "bjorn";
+    repo = "tiled";
+    rev = "v${version}";
+    sha256 = "077fv3kn3fy06z8f414r3ny4a04l05prppmkyvjqhnwf1i1jck1w";
+  };
+
+  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/nixpkgs/pkgs/applications/editors/tweak/default.nix b/nixpkgs/pkgs/applications/editors/tweak/default.nix
new file mode 100644
index 000000000000..aa3b4b99d7a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/tweak/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "tweak-${version}";
+  version = "3.02";
+
+  src = fetchurl {
+    url = "https://www.chiark.greenend.org.uk/~sgtatham/tweak/${name}.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/nixpkgs/pkgs/applications/editors/typora/default.nix b/nixpkgs/pkgs/applications/editors/typora/default.nix
new file mode 100644
index 000000000000..0bff4864c612
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/typora/default.nix
@@ -0,0 +1,99 @@
+{ stdenv, fetchurl, dpkg, lib, glib, dbus, makeWrapper, gnome2, gnome3, gtk3, atk, cairo, pango
+, gdk_pixbuf, freetype, fontconfig, nspr, nss, xorg, alsaLib, cups, expat, udev, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "typora-${version}";
+  version = "0.9.53";
+
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchurl {
+        url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
+        sha256 = "02k6x30l4mbjragqbq5rn663xbw3h4bxzgppfxqf5lwydswldklb";
+      }
+    else
+      fetchurl {
+        url = "https://www.typora.io/linux/typora_${version}_i386.deb";
+        sha256 = "1wyq1ri0wwdy7slbd9dwyrdynsaa644x44c815jl787sg4nhas6y";
+      }
+    ;
+
+    rpath = stdenv.lib.makeLibraryPath [
+      alsaLib
+      gnome2.GConf
+      gdk_pixbuf
+      pango
+      gnome3.defaultIconTheme
+      expat
+      gtk3
+      atk
+      nspr
+      nss
+      stdenv.cc.cc
+      glib
+      cairo
+      cups
+      dbus
+      udev
+      fontconfig
+      freetype
+      xorg.libX11
+      xorg.libXi
+      xorg.libXext
+      xorg.libXtst
+      xorg.libXfixes
+      xorg.libXcursor
+      xorg.libXdamage
+      xorg.libXrender
+      xorg.libXrandr
+      xorg.libXcomposite
+      xorg.libxcb
+      xorg.libXScrnSaver
+  ];
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  dontWrapGApps = true;
+
+  buildInputs = [ dpkg makeWrapper ];
+
+  unpackPhase = "true";
+  installPhase = ''
+    mkdir -p $out
+    dpkg -x $src $out
+    mv $out/usr/bin $out
+    mv $out/usr/share $out
+    rm $out/bin/typora
+    rmdir $out/usr
+
+    # Otherwise it looks "suspicious"
+    chmod -R g-w $out
+  '';
+
+  postFixup = ''
+     patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "$out/share/typora:${rpath}" "$out/share/typora/Typora"
+
+    makeWrapper $out/share/typora/Typora $out/bin/typora
+
+    wrapProgram $out/bin/typora \
+      "''${gappsWrapperArgs[@]}" \
+      --suffix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
+      --prefix XDG_DATA_DIRS : "${gnome3.defaultIconTheme}/share"
+
+    # Fix the desktop link
+    substituteInPlace $out/share/applications/typora.desktop \
+      --replace /usr/bin/ $out/bin/ \
+      --replace /usr/share/ $out/share/
+
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A minimal Markdown reading & writing app";
+    homepage = https://typora.io;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ jensbin ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/uemacs/default.nix b/nixpkgs/pkgs/applications/editors/uemacs/default.nix
new file mode 100644
index 000000000000..551fa67d9863
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/uemacs/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "uemacs-${version}";
+  version = "2014-12-08";
+
+  src = fetchgit {
+    url = git://git.kernel.org/pub/scm/editors/uemacs/uemacs.git;
+    rev = "8841922689769960fa074fbb053cb8507f2f3ed9";
+    sha256 = "14yq7kpkax111cg6k7i3mnqk7sq7a65krq6qizzj7vvnm7bsj3sd";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "-lcurses" "-lncurses" \
+      --replace "CFLAGS=-O2" "CFLAGS+=" \
+      --replace "BINDIR=/usr/bin" "BINDIR=$out/bin" \
+      --replace "LIBDIR=/usr/lib" "LIBDIR=$out/share/uemacs"
+    substituteInPlace epath.h \
+      --replace "/usr/global/lib/" "$out/share/uemacs/" \
+      --replace "/usr/local/bin/" "$out/bin/" \
+      --replace "/usr/local/lib/" "$out/share/uemacs/" \
+      --replace "/usr/local/" "$out/bin/" \
+      --replace "/usr/lib/" "$out/share/uemacs/"
+    mkdir -p $out/bin $out/share/uemacs
+  '';
+
+  buildInputs = [ ncurses ];
+
+  meta = with stdenv.lib; {
+    homepage = https://git.kernel.org/cgit/editors/uemacs/uemacs.git;
+    description = "Torvalds Micro-emacs fork";
+    longDescription = ''
+      uEmacs/PK 4.0 is a full screen editor based on MicroEMACS 3.9e
+    '';
+    license = licenses.unfree;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/vbindiff/default.nix b/nixpkgs/pkgs/applications/editors/vbindiff/default.nix
new file mode 100644
index 000000000000..8d3a5353c989
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/vbindiff/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "vbindiff-${version}";
+  version = "3.0_beta5";
+
+  buildInputs = [ ncurses ];
+
+  src = fetchurl {
+    url = "https://www.cjmweb.net/vbindiff/${name}.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/nixpkgs/pkgs/applications/editors/vim/cflags-prune.diff b/nixpkgs/pkgs/applications/editors/vim/cflags-prune.diff
new file mode 100644
index 000000000000..6bec4fec09ef
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/vim/common.nix b/nixpkgs/pkgs/applications/editors/vim/common.nix
new file mode 100644
index 000000000000..e0ac32c54ec5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/vim/common.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub }:
+rec {
+  version = "8.1.0578";
+
+  src = fetchFromGitHub {
+    owner = "vim";
+    repo = "vim";
+    rev = "v${version}";
+    sha256 = "0sawqxp2737y6mga9da36qya47h0idnnaxblzpsx8clw002piyv2";
+  };
+
+  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 ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/vim/configurable.nix b/nixpkgs/pkgs/applications/editors/vim/configurable.nix
new file mode 100644
index 000000000000..7ee28adfa47f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/vim/configurable.nix
@@ -0,0 +1,184 @@
+# TODO tidy up eg The patchelf code is patching gvim even if you don't build it..
+# but I have gvim with python support now :) - Marc
+{ source ? "default", callPackage, fetchurl, stdenv, ncurses, pkgconfig, gettext
+, writeText, config, glib, gtk2, gtk3, lua, python, perl, tcl, ruby
+, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
+, libICE
+, vimPlugins
+, makeWrapper
+, wrapGAppsHook
+
+# apple frameworks
+, CoreServices, CoreData, Cocoa, Foundation, libobjc, cf-private
+
+, features          ? "huge" # One of tiny, small, normal, big or huge
+, wrapPythonDrv     ? false
+, guiSupport        ? config.vim.gui or "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 {};
+
+  isPython3 = python.isPy3 or false;
+
+in stdenv.mkDerivation rec {
+
+  name = "vim_configurable-${version}";
+
+  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.optionals pythonSupport [
+    "--enable-python${if isPython3 then "3" else ""}interp=yes"
+    "--with-python${if isPython3 then "3" else ""}-config-dir=${python}/lib"
+    "--disable-python${if (!isPython3) then "3" else ""}interp"
+  ]
+  ++ 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
+    ++ stdenv.lib.optional (guiSupport == "gtk3") gtk3
+    ++ stdenv.lib.optionals darwinSupport [ CoreServices CoreData Cocoa Foundation libobjc cf-private ]
+    ++ stdenv.lib.optional luaSupport lua
+    ++ stdenv.lib.optional pythonSupport python
+    ++ 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
+    '';
+
+  postInstall = ''
+  '' + stdenv.lib.optionalString stdenv.isLinux ''
+    patchelf --set-rpath \
+      "$(patchelf --print-rpath $out/bin/vim):${stdenv.lib.makeLibraryPath buildInputs}" \
+      "$out"/bin/{vim,gvim}
+
+    ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
+  '' + stdenv.lib.optionalString wrapPythonDrv ''
+    wrapProgram "$out/bin/vim" --prefix PATH : "${python}/bin"
+  '' + stdenv.lib.optionalString (guiSupport == "gtk3") ''
+
+    rewrap () {
+      rm -f "$out/bin/$1"
+      echo -e '#!${stdenv.shell}\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
+  '';
+
+  preInstall = ''
+    mkdir -p $out/share/applications $out/share/icons/{hicolor,locolor}/{16x16,32x32,48x48}/apps
+  '';
+
+  dontStrip = 1;
+}
diff --git a/nixpkgs/pkgs/applications/editors/vim/default.nix b/nixpkgs/pkgs/applications/editors/vim/default.nix
new file mode 100644
index 000000000000..2f34a6ddeb6b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/vim/default.nix
@@ -0,0 +1,59 @@
+{ 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
+, cf-private, Carbon, Cocoa
+}:
+
+let
+  common = callPackage ./common.nix {};
+in
+stdenv.mkDerivation rec {
+  name = "vim-${version}";
+
+  inherit (common) version src postPatch hardeningDisable enableParallelBuilding meta;
+
+  nativeBuildInputs = [ gettext pkgconfig ];
+  buildInputs = [ ncurses ]
+    ++ stdenv.lib.optionals stdenv.hostPlatform.isDarwin [
+      Carbon Cocoa
+      # Needed for OBJC_CLASS_$_NSArray symbols.
+      cf-private
+    ];
+
+  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/nixpkgs/pkgs/applications/editors/vim/ft-nix-support.patch b/nixpkgs/pkgs/applications/editors/vim/ft-nix-support.patch
new file mode 100644
index 000000000000..274d855731fd
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/vim/macvim.nix b/nixpkgs/pkgs/applications/editors/vim/macvim.nix
new file mode 100644
index 000000000000..360dc8f1c5d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/vim/macvim.nix
@@ -0,0 +1,112 @@
+{ stdenv, fetchFromGitHub, ncurses, gettext
+, pkgconfig, python, ruby, tcl, perl, luajit
+, darwin
+}:
+
+stdenv.mkDerivation rec {
+  name = "macvim-${version}";
+
+  version = "7.4.909";
+
+  src = fetchFromGitHub {
+    owner = "macvim-dev";
+    repo = "macvim";
+    rev = "75aa7774645adb586ab9010803773bd80e659254";
+    sha256 = "0k04jimbms6zffh8i8fjm2y51q01m5kga2n4djipd3pxij1qy89y";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    gettext ncurses luajit ruby tcl perl python
+  ];
+
+  patches = [ ./macvim.patch ];
+
+  postPatch = ''
+    substituteInPlace src/MacVim/mvim --replace "# VIM_APP_DIR=/Applications" "VIM_APP_DIR=$out/Applications"
+
+    # Don't create custom icons.
+    substituteInPlace src/MacVim/icons/Makefile --replace '$(MAKE) -C makeicns' ""
+    substituteInPlace src/MacVim/icons/make_icons.py --replace "dont_create = False" "dont_create = True"
+
+    # Full path to xcodebuild
+    substituteInPlace src/Makefile --replace "xcodebuild" "/usr/bin/xcodebuild"
+  '';
+
+  configureFlags = [
+      #"--enable-cscope" # TODO: cscope doesn't build on Darwin yet
+      "--enable-fail-if-missing"
+      "--with-features=huge"
+      "--enable-gui=macvim"
+      "--enable-multibyte"
+      "--enable-nls"
+      "--enable-luainterp=dynamic"
+      "--enable-pythoninterp=dynamic"
+      "--enable-perlinterp=dynamic"
+      "--enable-rubyinterp=dynamic"
+      "--enable-tclinterp=yes"
+      "--without-local-dir"
+      "--with-luajit"
+      "--with-lua-prefix=${luajit}"
+      "--with-ruby-command=${ruby}/bin/ruby"
+      "--with-tclsh=${tcl}/bin/tclsh"
+      "--with-tlib=ncurses"
+      "--with-compiledby=Nix"
+  ];
+
+  makeFlags = ''PREFIX=$(out) CPPFLAGS="-Wno-error"'';
+
+  # This is unfortunate, but we need to use the same compiler as XCode,
+  # but XCode doesn't provide a way to configure the compiler.
+  #
+  # If you're willing to modify the system files, you can do this:
+  #   http://hamelot.co.uk/programming/add-gcc-compiler-to-xcode-6/
+  #
+  # But we don't have that option.
+  preConfigure = ''
+    CC=/usr/bin/clang
+
+    DEV_DIR=$(/usr/bin/xcode-select -print-path)/Platforms/MacOSX.platform/Developer
+    configureFlagsArray+=(
+      "--with-developer-dir=$DEV_DIR"
+    )
+  '';
+
+  postConfigure = ''
+    substituteInPlace src/auto/config.mk --replace "PERL_CFLAGS	=" "PERL_CFLAGS	= -I${darwin.libutil}/include"
+  '';
+
+  postInstall = ''
+    mkdir -p $out/Applications
+    cp -r src/MacVim/build/Release/MacVim.app $out/Applications
+    rm -rf $out/MacVim.app
+
+    rm $out/bin/{Vimdiff,Vimtutor,Vim,ex,rVim,rview,view}
+
+    cp src/MacVim/mvim $out/bin
+    cp src/vimtutor $out/bin
+
+    for prog in "vimdiff" "vi" "vim" "ex" "rvim" "rview" "view"; do
+      ln -s $out/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}/lib $exe
+    install_name_tool -add_rpath $libperl $exe
+    install_name_tool -add_rpath ${ruby}/lib $exe
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Vim - the text editor - for macOS";
+    homepage    = https://github.com/b4winckler/macvim;
+    license = licenses.vim;
+    maintainers = with maintainers; [ cstrahan ];
+    platforms   = platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/vim/macvim.patch b/nixpkgs/pkgs/applications/editors/vim/macvim.patch
new file mode 100644
index 000000000000..e8f34aba537d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/vim/macvim.patch
@@ -0,0 +1,231 @@
+diff --git a/src/MacVim/MacVim.xcodeproj/project.pbxproj b/src/MacVim/MacVim.xcodeproj/project.pbxproj
+index c384bf7..bf1ce96 100644
+--- a/src/MacVim/MacVim.xcodeproj/project.pbxproj
++++ b/src/MacVim/MacVim.xcodeproj/project.pbxproj
+@@ -437,6 +437,8 @@
+ /* Begin PBXProject section */
+ 		29B97313FDCFA39411CA2CEA /* Project object */ = {
+ 			isa = PBXProject;
++			attributes = {
++			};
+ 			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "MacVim" */;
+ 			compatibilityVersion = "Xcode 2.4";
+ 			developmentRegion = English;
+@@ -632,6 +634,7 @@
+ 				INSTALL_PATH = "$(HOME)/Applications";
+ 				MACOSX_DEPLOYMENT_TARGET = "";
+ 				ONLY_ACTIVE_ARCH = YES;
++				OTHER_LDFLAGS = "-headerpad_max_install_names";
+ 				PRODUCT_NAME = MacVim;
+ 				VERSIONING_SYSTEM = "apple-generic";
+ 				WARNING_CFLAGS = "-Wall";
+@@ -662,6 +665,7 @@
+ 				INSTALL_PATH = "$(HOME)/Applications";
+ 				MACOSX_DEPLOYMENT_TARGET = "";
+ 				ONLY_ACTIVE_ARCH = YES;
++				OTHER_LDFLAGS = "-headerpad_max_install_names";
+ 				PRODUCT_NAME = MacVim;
+ 				VERSIONING_SYSTEM = "apple-generic";
+ 				WRAPPER_EXTENSION = app;
+diff --git a/src/Makefile b/src/Makefile
+index 84a93f7..e23196d 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -1306,7 +1306,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/pty.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_UNIX -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 cdc0819..8e2fd16 100755
+--- a/src/auto/configure
++++ b/src/auto/configure
+@@ -5383,10 +5383,7 @@ $as_echo "no" >&6; }
+   fi
+ 
+   if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
+-    if test "x$MACOSX" = "xyes"; then
+-      MZSCHEME_LIBS="-framework Racket"
+-      MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+-    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
++    if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
+       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
+       MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+     elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
+@@ -5731,23 +5728,6 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; }
+   fi
+ 
+   if test "x$MACOSX" = "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
+@@ -5954,13 +5934,6 @@ __:
+ eof
+ 	    	    eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ 	    rm -f -- "${tmp_mkf}"
+-	    if test "x$MACOSX" = "xyes" && ${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
+ 	      if test "${vi_cv_var_python_version}" = "1.4"; then
+ 		  vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
+ 	      else
+@@ -5979,7 +5952,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
+ 
+@@ -6055,13 +6027,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
+@@ -6919,11 +6884,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$MACOSX" != "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="/System/Library/Frameworks/Tcl.framework/Headers"
+-      fi
+       TCL_INC=
+       for try in $tclinc; do
+ 	if test -f "$try/tcl.h"; then
+@@ -6941,12 +6902,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$MACOSX" != "xyes"; then
+ 	  tclcnf=`echo $tclinc | sed s/include/lib/g`
+ 	  tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
+-	else
+-	  	  tclcnf="/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
+@@ -7120,10 +7077,6 @@ $as_echo "$rubyhdrdir" >&6; }
+ 	if test -f "$rubylibdir/$librubya"; then
+ 	  librubyarg="$librubyarg"
+ 	  RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+-        elif test -d "/System/Library/Frameworks/Ruby.framework"; then
+-                        RUBY_LIBS="-framework Ruby"
+-                        RUBY_CFLAGS="-DRUBY_VERSION=$rubyversion"
+-            librubyarg=
+ 	fi
+ 
+ 	if test "X$librubyarg" != "X"; then
+diff --git a/src/if_python.c b/src/if_python.c
+index 1d87cac..9d28df0 100644
+--- a/src/if_python.c
++++ b/src/if_python.c
+@@ -55,11 +55,7 @@
+ 
+ #define PY_SSIZE_T_CLEAN
+ 
+-#ifdef FEAT_GUI_MACVIM
+-# include <Python/Python.h>
+-#else
+-# include <Python.h>
+-#endif
++#include <Python.h>
+ 
+ #if !defined(PY_VERSION_HEX) || PY_VERSION_HEX < 0x02050000
+ # undef PY_SSIZE_T_CLEAN
+diff --git a/src/if_ruby.c b/src/if_ruby.c
+index 1deb83e..ac23878 100644
+--- a/src/if_ruby.c
++++ b/src/if_ruby.c
+@@ -106,17 +106,9 @@
+ # define rb_check_type rb_check_type_stub
+ #endif
+ 
+-#ifdef FEAT_GUI_MACVIM
+-# include <Ruby/ruby.h>
+-#else
+-# include <ruby.h>
+-#endif
++#include <ruby.h>
+ #ifdef RUBY19_OR_LATER
+-# ifdef FEAT_GUI_MACVIM
+-#  include <Ruby/ruby/encoding.h>
+-# else
+-#  include <ruby/encoding.h>
+-# endif
++# include <ruby/encoding.h>
+ #endif
+ 
+ #undef off_t	/* ruby defines off_t as _int64, Mingw uses long */
+diff --git a/src/vim.h b/src/vim.h
+index 4c93908..edc6bd7 100644
+--- a/src/vim.h
++++ b/src/vim.h
+@@ -308,18 +308,6 @@
+ # define UNUSED
+ #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 __EMX__
+ # define    getcwd  _getcwd2
+ # define    chdir   _chdir2
+diff --git a/src/vimtutor b/src/vimtutor
+index 70d9ec7..b565a1a 100755
+--- a/src/vimtutor
++++ b/src/vimtutor
+@@ -16,7 +16,7 @@ seq="vim vim8 vim75 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 gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
++  seq="mvim gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
+   shift
+ fi
+ 
diff --git a/nixpkgs/pkgs/applications/editors/vim/qvim.nix b/nixpkgs/pkgs/applications/editors/vim/qvim.nix
new file mode 100644
index 000000000000..81948918a114
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/vim/qvim.nix
@@ -0,0 +1,113 @@
+args@{ fetchgit, stdenv, ncurses, pkgconfig, gettext
+, lib, config, python, perl, tcl, ruby, qt4
+, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
+, libICE
+, lua
+, features
+, luaSupport       ? config.vim.lua or true
+, perlSupport      ? config.vim.perl or false      # Perl interpreter
+, pythonSupport    ? config.vim.python or true
+, rubySupport      ? config.vim.ruby or true
+, nlsSupport       ? config.vim.nls or false
+, tclSupport       ? config.vim.tcl or false
+, multibyteSupport ? config.vim.multibyte or false
+, cscopeSupport    ? config.vim.cscope or false
+, netbeansSupport  ? config.netbeans or true # eg envim is using it
+
+# by default, compile with darwin support if we're compiling on darwin, but
+# allow this to be disabled by setting config.vim.darwin to false
+, darwinSupport    ? stdenv.isDarwin && (config.vim.darwin or true)
+
+# add .nix filetype detection and minimal syntax highlighting support
+, ftNixSupport     ? config.vim.ftNix or true
+
+, ... }: with args;
+
+let tag = "20140827";
+    sha256 = "0ncgbcm23z25naicxqkblz0mcl1zar2qwgi37y5ar8q8884w9ml2";
+in {
+
+  name = "qvim-7.4." + tag;
+
+  enableParallelBuilding = true; # test this
+
+  src = fetchgit {
+    url = https://bitbucket.org/equalsraf/vim-qt.git;
+    rev = "refs/tags/package-" + tag;
+    inherit sha256;
+  };
+
+  # FIXME: adopt Darwin fixes from vim/default.nix, then chage meta.platforms.linux
+  # to meta.platforms.unix
+  preConfigure = assert (! stdenv.isDarwin); "";
+
+  configureFlags = [
+    "--with-vim-name=qvim"
+    "--enable-gui=qt"
+    "--with-features=${features}"
+    "--disable-xsmp"
+    "--disable-xsmp_interact"
+    "--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-mzscheme"
+  ]
+  ++ stdenv.lib.optionals luaSupport [
+    "--with-lua-prefix=${lua}"
+    "--enable-luainterp"
+  ]
+  ++ stdenv.lib.optional pythonSupport      "--enable-pythoninterp"
+  ++ stdenv.lib.optional (pythonSupport && stdenv.isDarwin) "--with-python-config-dir=${python}/lib"
+  ++ stdenv.lib.optional nlsSupport         "--enable-nls"
+  ++ stdenv.lib.optional perlSupport        "--enable-perlinterp"
+  ++ stdenv.lib.optional rubySupport        "--enable-rubyinterp"
+  ++ stdenv.lib.optional tclSupport         "--enable-tcl"
+  ++ stdenv.lib.optional multibyteSupport   "--enable-multibyte"
+  ++ stdenv.lib.optional darwinSupport      "--enable-darwin"
+  ++ stdenv.lib.optional cscopeSupport      "--enable-cscope";
+
+  nativeBuildInputs = [ ncurses pkgconfig libX11 libXext libSM libXpm libXt libXaw
+    libXau libXmu libICE qt4
+  ]
+  ++ stdenv.lib.optional nlsSupport gettext
+  ++ stdenv.lib.optional perlSupport perl
+  ++ stdenv.lib.optional pythonSupport python
+  ++ stdenv.lib.optional tclSupport tcl
+  ++ stdenv.lib.optional rubySupport ruby
+  ++ stdenv.lib.optional luaSupport lua
+  ;
+
+  postPatch = ''
+  '' + stdenv.lib.optionalString ftNixSupport ''
+    # because we cd to src in the main patch phase, we can't just add this
+    # patch to the list, we have to apply it manually
+    cd runtime
+    patch -p2 < ${./ft-nix-support.patch}
+    cd ..
+  '';
+
+  postInstall = stdenv.lib.optionalString stdenv.isLinux ''
+    rpath=`patchelf --print-rpath $out/bin/qvim`;
+    for i in $nativeBuildInputs; do
+      echo adding $i/lib
+      rpath=$rpath:$i/lib
+    done
+    echo $nativeBuildInputs
+    echo $rpath
+    patchelf --set-rpath $rpath $out/bin/qvim
+  '';
+
+  dontStrip = 1;
+
+  meta = with stdenv.lib; {
+    description = "The most popular clone of the VI editor (Qt GUI fork)";
+    homepage    = https://bitbucket.org/equalsraf/vim-qt/wiki/Home;
+    license = licenses.vim;
+    maintainers = with maintainers; [ smironov ttuegel ];
+    platforms   = platforms.linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/editors/vis/default.nix b/nixpkgs/pkgs/applications/editors/vis/default.nix
new file mode 100644
index 000000000000..7825188fea9b
--- /dev/null
+++ b/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 {
+  name = "vis-${version}";
+  version  = "0.5";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    sha256 = "1vhq6hprkgj90iwl5vl3pxs3xwc01mx8yhi6c1phzry5agqqp8jb";
+    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 rec {
+    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/nixpkgs/pkgs/applications/editors/vscode/default.nix b/nixpkgs/pkgs/applications/editors/vscode/default.nix
new file mode 100644
index 000000000000..167a8fe7b706
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/vscode/default.nix
@@ -0,0 +1,116 @@
+{ stdenv, lib, fetchurl, unzip, atomEnv, makeDesktopItem,
+  gtk2, wrapGAppsHook, libXScrnSaver, libxkbfile, libsecret,
+  isInsiders ? false }:
+
+let
+  executableName = "code" + lib.optionalString isInsiders "-insiders";
+
+  plat = {
+    "i686-linux" = "linux-ia32";
+    "x86_64-linux" = "linux-x64";
+    "x86_64-darwin" = "darwin";
+  }.${stdenv.hostPlatform.system};
+
+  sha256 = {
+    "i686-linux" = "1xadkgqfwsl53blm2f0kdvczwmag47585dswa1hpafzc8i86009b";
+    "x86_64-linux" = "0h77kc6z9c5bkkb8svjxjabnbbv0lb835kzd1c2yypamkhag9j4a";
+    "x86_64-darwin" = "1f8grgav5capd2mm1nx0416na8c6qjh91680cfvf1jh4pjihs6g4";
+  }.${stdenv.hostPlatform.system};
+
+  archive_fmt = if stdenv.hostPlatform.system == "x86_64-darwin" then "zip" else "tar.gz";
+
+  rpath = lib.concatStringsSep ":" [
+    atomEnv.libPath
+    "${lib.makeLibraryPath [gtk2]}"
+    "${lib.makeLibraryPath [libsecret]}/libsecret-1.so.0"
+    "${lib.makeLibraryPath [libXScrnSaver]}/libXss.so.1"
+    "${lib.makeLibraryPath [libxkbfile]}/libxkbfile.so.1"
+    "$out/lib/vscode"
+  ];
+
+in
+  stdenv.mkDerivation rec {
+    name = "vscode-${version}";
+    version = "1.30.1";
+
+    src = fetchurl {
+      name = "VSCode_${version}_${plat}.${archive_fmt}";
+      url = "https://vscode-update.azurewebsites.net/${version}/${plat}/stable";
+      inherit sha256;
+    };
+
+    passthru = {
+      inherit executableName;
+    };
+
+    desktopItem = makeDesktopItem {
+      name = executableName;
+      exec = executableName;
+      icon = "@out@/share/pixmaps/code.png";
+      comment = "Code editor redefined and optimized for building and debugging modern web and cloud applications";
+      desktopName = "Visual Studio Code" + lib.optionalString isInsiders " Insiders";
+      genericName = "Text Editor";
+      categories = "GNOME;GTK;Utility;TextEditor;Development;";
+    };
+
+    buildInputs = if stdenv.hostPlatform.system == "x86_64-darwin"
+      then [ unzip libXScrnSaver libsecret ]
+      else [ wrapGAppsHook libXScrnSaver libxkbfile libsecret ];
+
+    installPhase =
+      if stdenv.hostPlatform.system == "x86_64-darwin" then ''
+        mkdir -p $out/lib/vscode $out/bin
+        cp -r ./* $out/lib/vscode
+        ln -s $out/lib/vscode/Contents/Resources/app/bin/${executableName} $out/bin
+      '' else ''
+        mkdir -p $out/lib/vscode $out/bin
+        cp -r ./* $out/lib/vscode
+
+        substituteInPlace $out/lib/vscode/bin/${executableName} --replace '"$CLI" "$@"' '"$CLI" "--skip-getting-started" "$@"'
+
+        ln -s $out/lib/vscode/bin/${executableName} $out/bin
+
+        mkdir -p $out/share/applications
+        substitute $desktopItem/share/applications/${executableName}.desktop $out/share/applications/${executableName}.desktop \
+          --subst-var out
+
+        mkdir -p $out/share/pixmaps
+        cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
+      '';
+
+    postFixup = lib.optionalString (stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux") ''
+      patchelf \
+        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "${rpath}" \
+        $out/lib/vscode/${executableName}
+
+      patchelf \
+        --set-rpath "${rpath}" \
+        $out/lib/vscode/resources/app/node_modules.asar.unpacked/keytar/build/Release/keytar.node
+
+      patchelf \
+        --set-rpath "${rpath}" \
+        "$out/lib/vscode/resources/app/node_modules.asar.unpacked/native-keymap/build/Release/\
+      keymapping.node"
+
+      ln -s ${lib.makeLibraryPath [libsecret]}/libsecret-1.so.0 $out/lib/vscode/libsecret-1.so.0
+    '';
+
+    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 = http://code.visualstudio.com/;
+      downloadPage = https://code.visualstudio.com/Updates;
+      license = licenses.unfree;
+      platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+    };
+  }
diff --git a/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix b/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix
new file mode 100644
index 000000000000..88bea0c08095
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/vscode/with-extensions.nix
@@ -0,0 +1,74 @@
+{ stdenv, 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 = "${wrappedPkgName}-extensions-${wrappedPkgVersion}";
+    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"
+  makeWrapper "${vscode}/bin/${executableName}" "$out/bin/${executableName}" ${lib.optionalString (vscodeExtensions != []) ''
+    --add-flags "--extensions-dir ${combinedExtensionsDrv}/share/${wrappedPkgName}/extensions"
+  ''}
+''
diff --git a/nixpkgs/pkgs/applications/editors/wily/default.nix b/nixpkgs/pkgs/applications/editors/wily/default.nix
new file mode 100644
index 000000000000..ce67cc2d6484
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/wily/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, libX11, libXt } :
+
+stdenv.mkDerivation rec {
+  version = "0.13.42";
+  name = "wily-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/wily/${name}.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/nixpkgs/pkgs/applications/editors/wxhexeditor/default.nix b/nixpkgs/pkgs/applications/editors/wxhexeditor/default.nix
new file mode 100644
index 000000000000..c345e8a95d55
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/wxhexeditor/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, fetchpatch, wxGTK, autoconf, automake, libtool, python, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "wxHexEditor-${version}";
+  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";
+    })
+  ];
+
+  buildPhase = ''
+    make 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/nixpkgs/pkgs/applications/editors/xmlcopyeditor/default.nix b/nixpkgs/pkgs/applications/editors/xmlcopyeditor/default.nix
new file mode 100644
index 000000000000..229e37d0080a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/xmlcopyeditor/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, aspell, boost, expat, expect, intltool, libxml2, libxslt, pcre, wxGTK, xercesc }:
+
+stdenv.mkDerivation rec {
+  name = "xmlcopyeditor-${version}";
+  version = "1.2.1.3";
+
+  src = fetchurl {
+    name = "${name}.tar.gz";
+    url = "mirror://sourceforge/xml-copy-editor/${name}.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/nixpkgs/pkgs/applications/editors/xmlcopyeditor/xmlcopyeditor.patch b/nixpkgs/pkgs/applications/editors/xmlcopyeditor/xmlcopyeditor.patch
new file mode 100644
index 000000000000..253b9ce49ba8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/editors/yi/wrapper.nix b/nixpkgs/pkgs/applications/editors/yi/wrapper.nix
new file mode 100644
index 000000000000..e20c0a3cbca7
--- /dev/null
+++ b/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 rec {
+  name = "yi-custom-${version}";
+  version = "0.0.0.1";
+  unpackPhase = "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
+  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; [ fuuzetsu ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/editors/zile/default.nix b/nixpkgs/pkgs/applications/editors/zile/default.nix
new file mode 100644
index 000000000000..ae3871bb87af
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/gis/grass/default.nix b/nixpkgs/pkgs/applications/gis/grass/default.nix
new file mode 100644
index 000000000000..a64e9a18e1ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/grass/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, fetchurl, flex, bison, pkgconfig, zlib, libtiff, libpng, fftw
+, cairo, readline, ffmpeg, makeWrapper, wxGTK30, netcdf, blas
+, proj, gdal, geos, sqlite, postgresql, mysql, python2Packages, libLAS
+}:
+
+stdenv.mkDerivation {
+  name = "grass-7.2.2";
+  src = fetchurl {
+    url = https://grass.osgeo.org/grass72/source/grass-7.2.2.tar.gz;
+    sha256 = "0yzljbrxlqp4wbw08n1dvmm4vmwkg8glf1ff4xyh589r5ryb7gxv";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo
+  readline ffmpeg makeWrapper wxGTK30 netcdf geos postgresql mysql.connector-c blas
+  libLAS ]
+    ++ (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 ];
+
+  configureFlags = [
+    "--with-proj-share=${proj}/share/proj"
+    "--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=${mysql.connector-c}/include/mysql"
+    "--with-mysql-libs=${mysql.connector-c}/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.pack/r.pack.py \
+      scripts/r.tileset/r.tileset.py \
+      scripts/r.unpack/r.unpack.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
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/grass72 \
+    --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 = http://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/nixpkgs/pkgs/applications/gis/grass/no_symbolic_links.patch b/nixpkgs/pkgs/applications/gis/grass/no_symbolic_links.patch
new file mode 100644
index 000000000000..ef09b97b7037
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix b/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
new file mode 100644
index 000000000000..3517351090d7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub, gdal, cmake, ninja, proj, clipper, zlib, qtbase, qttools
+  , qtlocation, qtsensors, doxygen, cups, makeWrapper, qtimageformats
+}:
+
+stdenv.mkDerivation rec {
+  name = "OpenOrienteering-Mapper-${version}";
+  version = "0.8.3";
+
+  buildInputs = [ gdal qtbase qttools qtlocation qtimageformats
+                  qtsensors clipper zlib proj doxygen cups];
+
+  nativeBuildInputs = [ cmake makeWrapper ninja ];
+
+  src = fetchFromGitHub {
+    owner = "OpenOrienteering";
+    repo = "mapper";
+    rev = "v${version}";
+    sha256 = "0pnqwvmg97mgc2ci3abmx07l0njxcrbljh75w8ym31g0jq76pgr9";
+  };
+
+  cmakeFlags =
+    [
+    # Required by the build to be specified
+    "-DPROJ4_ROOT=${proj}"
+
+    # Building the manual and bundling licenses fails
+    "-DLICENSING_PROVIDER:BOOL=OFF"
+    "-DMapper_MANUAL_QTHELP:BOOL=OFF"
+    ] ++
+    (stdenv.lib.optionals stdenv.isDarwin
+    [
+    # Usually enabled on Darwin
+    "-DCMAKE_FIND_FRAMEWORK=never"
+    # 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 =
+    stdenv.lib.optionalString stdenv.isDarwin ''
+    # Fixes "This application failed to start because it could not find or load the Qt
+    # platform plugin "cocoa"."
+    wrapProgram $out/Mapper.app/Contents/MacOS/Mapper \
+      --set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase.bin}/lib/qt-*/plugins/platforms \
+      --set QT_PLUGIN_PATH ${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtimageformats}/${qtbase.qtPluginPrefix}
+    mkdir -p $out/bin
+    ln -s $out/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];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/gis/qgis/default.nix b/nixpkgs/pkgs/applications/gis/qgis/default.nix
new file mode 100644
index 000000000000..b98d048d0343
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/qgis/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, fetchurl, fetchpatch, gdal, cmake, qt4, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
+, qwt, fcgi, python2Packages, libspatialindex, libspatialite, qscintilla, postgresql, makeWrapper
+, qjson, qca2, txt2tags, openssl, darwin, pkgconfig
+, withGrass ? true, grass, saga, IOKit, ApplicationServices
+}:
+
+stdenv.mkDerivation rec {
+  name = "qgis-2.18.22";
+
+  buildInputs = [ gdal qt4 flex openssl bison proj geos xlibsWrapper sqlite gsl qwt qscintilla
+    fcgi libspatialindex libspatialite postgresql qjson qca2 txt2tags pkgconfig
+    saga ]
+  ++
+    (stdenv.lib.optionals stdenv.isDarwin [IOKit ApplicationServices])
+  ++
+    (stdenv.lib.optional withGrass grass) ++
+    (stdenv.lib.optional (stdenv.isDarwin && withGrass) darwin.apple_sdk.libs.utmp) ++
+    (with python2Packages; [ jinja2 numpy psycopg2 pygments requests python2Packages.qscintilla sip ]);
+
+  nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
+
+  # `make -f src/providers/wms/CMakeFiles/wmsprovider_a.dir/build.make src/providers/wms/CMakeFiles/wmsprovider_a.dir/qgswmssourceselect.cpp.o`:
+  # fatal error: ui_qgsdelimitedtextsourceselectbase.h: No such file or directory
+  enableParallelBuilding = false;
+
+  preConfigure = ''
+    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags libspatialindex)"
+  '';
+
+  # To handle the lack of 'local' RPATH; required, as they call one of
+  # their built binaries requiring their libs, in the build process.
+  preBuild = ''
+    export LD_LIBRARY_PATH=`pwd`/output/lib:${stdenv.lib.makeLibraryPath [ openssl ]}:$LD_LIBRARY_PATH
+  '';
+
+  src = fetchurl {
+    url = "https://qgis.org/downloads/${name}.tar.bz2";
+    sha256 = "00b3a2hfn3i7bdx7x96vz2nj0976vpkhid4ss7n8c33fdvw3k82a";
+  };
+
+  patches = [
+    # https://github.com/qgis/QGIS/pull/7765
+    (fetchpatch {
+      url = "https://github.com/qgis/QGIS/commit/6b61ef361a77f057dc29eb07463007bd9012b253.patch";
+      sha256 = "1xibcahm18n7nxff1xvwwzjf505hvhiw5dk12is7aclv49h0rdf7";
+    })
+  ];
+
+  # CMAKE_FIND_FRAMEWORK=never stops the installer choosing system
+  # installed frameworks
+  # QGIS_MACAPP_BUNDLE=0 stops the installer copying the Qt binaries into the
+  # installation which causes havoc
+  # Building RelWithDebInfo allows QGIS_DEBUG to print debugging information
+  cmakeFlags = stdenv.lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}"
+               ++ stdenv.lib.optional stdenv.isDarwin
+                    (["-DCMAKE_FIND_FRAMEWORK=never"]
+                      ++ ["-DQGIS_MACAPP_BUNDLE=0"]);
+#                     ++ ["-DCMAKE_BUILD_TYPE=RelWithDebInfo"];
+
+
+
+  postInstall =
+    (stdenv.lib.optionalString stdenv.isLinux ''
+          wrapProgram $out/bin/qgis \
+            --set PYTHONPATH $PYTHONPATH \
+            --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ openssl ]}
+          '') +
+    (stdenv.lib.optionalString stdenv.isDarwin ''
+      # Necessary for QGIS to find the correct default GRASS path
+      # Plugins look for gdal tools like deminfo on the PATH
+      ${stdenv.lib.optionalString withGrass "ln -sf ${grass} $out/QGIS.app/Contents/MacOS/grass"}
+      # Necessary for QGIS to find the right SAGA installation
+      ln -sf ${saga}/bin/saga_cmd $out/QGIS.app/Contents/MacOS/bin/saga_cmd
+      for file in $(find $out -type f -name "QGIS"); do
+        wrapProgram "$file" \
+          --prefix DYLD_LIBRARY_PATH : "${qwt}/lib" \
+          --prefix DYLD_LIBRARY_PATH : "${qscintilla}/lib" \
+          --prefix PATH : "${gdal}/bin" \
+          ${stdenv.lib.optionalString withGrass "--prefix PATH : ${grass}/bin"} \
+          --set PYTHONPATH $PYTHONPATH
+      done
+      mkdir -p $out/bin
+      ln -s $out/QGIS.app/Contents/MacOS/QGIS $out/bin/qgis
+      '');
+
+  meta = {
+    description = "User friendly Open Source Geographic Information System";
+    homepage = http://www.qgis.org;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = with stdenv.lib.platforms; unix;
+    maintainers = with stdenv.lib.maintainers; [mpickering];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/gis/saga/clang_patch.patch b/nixpkgs/pkgs/applications/gis/saga/clang_patch.patch
new file mode 100644
index 000000000000..e6af8d130514
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/saga/clang_patch.patch
@@ -0,0 +1,19 @@
+commit e92b250968e9656084ab5984689747ca615ff6e7
+Author: Volker Wichmann <wichmann@laserdata.at>
+Date:   Sun Mar 5 13:49:53 2017 +0100
+
+    saga_api, CSG_Table::Del_Records(): bug fix, check record count correctly
+
+diff --git a/src/saga_core/saga_api/table.cpp b/src/saga_core/saga_api/table.cpp
+index 76a1d8d..fa1a66f 100644
+--- a/src/saga_core/saga_api/table.cpp
++++ b/src/saga_core/saga_api/table.cpp
+@@ -901,7 +901,7 @@ bool CSG_Table::Del_Record(int iRecord)
+ //---------------------------------------------------------
+ bool CSG_Table::Del_Records(void)
+ {
+-	if( m_Records > 0 )
++	if( m_nRecords > 0 )
+ 	{
+ 		_Index_Destroy();
+
diff --git a/nixpkgs/pkgs/applications/gis/saga/default.nix b/nixpkgs/pkgs/applications/gis/saga/default.nix
new file mode 100644
index 000000000000..4738bfba14a8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/saga/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, gdal, wxGTK30, proj, libiodbc, lzma, jasper,
+  libharu, opencv, vigra, postgresql, Cocoa,
+  unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }:
+
+stdenv.mkDerivation rec {
+  name = "saga-6.3.0";
+
+  # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
+  # for why the have additional buildInputs on darwin
+  buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma
+                  jasper qhull giflib ]
+                ++ stdenv.lib.optionals stdenv.isDarwin
+                  [ Cocoa unixODBC poppler hdf4.out hdf5 netcdf sqlite ];
+
+  enableParallelBuilding = true;
+
+  patches = [ ./finite-6.3.0.patch];
+
+  CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/saga-gis/SAGA%20-%206/SAGA%20-%206.3.0/saga-6.3.0.tar.gz";
+    sha256 = "0hyjim8fcp3mna1hig22nnn4ki3j6b7096am2amcs99sdr09jjxv";
+  };
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/gis/saga/finite-6.3.0.patch b/nixpkgs/pkgs/applications/gis/saga/finite-6.3.0.patch
new file mode 100644
index 000000000000..91c9543edfda
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/saga/finite-6.3.0.patch
@@ -0,0 +1,55 @@
+diff --git a/src/tools/imagery/imagery_maxent/me.cpp b/src/tools/imagery/imagery_maxent/me.cpp
+index c5da854..d3e9cff 100755
+--- a/src/tools/imagery/imagery_maxent/me.cpp
++++ b/src/tools/imagery/imagery_maxent/me.cpp
+@@ -21,7 +21,7 @@
+ #ifdef _SAGA_MSW
+ #define isinf(x) (!_finite(x))
+ #else
+-#define isinf(x) (!finite(x))
++#define isinf(x) (!isfinite(x))
+ #endif
+ 
+ /** The input array contains a set of log probabilities lp1, lp2, lp3
+@@ -47,7 +47,7 @@ double sumLogProb(vector<double>& logprobs)
+ /** returns log (e^logprob1 + e^logprob2). */
+ double sumLogProb(double logprob1, double logprob2)
+ {
+-  if (isinf(logprob1) && isinf(logprob2)) 
++  if (isinf(logprob1) && isinf(logprob2))
+     return logprob1; // both prob1 and prob2 are 0, return log 0.
+   if (logprob1>logprob2)
+     return logprob1+log(1+exp(logprob2-logprob1));
+@@ -70,8 +70,8 @@ void MaxEntModel::print(ostream& ostrm, MaxEntTrainer& trainer)
+   for (FtMap::iterator it = _index.begin(); it!=_index.end(); it++) {
+     unsigned long i = it->second;
+     for (unsigned long c = 0; c<_classes; c++) {
+-      ostrm << "lambda(" << trainer.className(c) << ", " 
+-	    << trainer.getStr(it->first) << ")=" 
++      ostrm << "lambda(" << trainer.className(c) << ", "
++	    << trainer.getStr(it->first) << ")="
+ 	    << _lambda[i+c] << endl;
+     }
+   }
+@@ -86,7 +86,7 @@ int MaxEntModel::getProbs(MaxEntEvent& event, vector<double>& probs)
+     double s = 0;
+     for (unsigned int f = 0; f<event.size(); f++) {
+       FtMap::iterator it = _index.find(event[f]);
+-      if (it!=_index.end()) 
++      if (it!=_index.end())
+ 	s += _lambda[it->second+c];
+     }
+     probs[c] = s;
+@@ -142,10 +142,10 @@ double MaxEntModel::getObsCounts(EventSet& events, vector<double>& obsCounts)
+     double ftSum = 0;
+     for (unsigned long j=0; j<e.size(); j++) {
+       FtMap::iterator it = _index.find(e[j]);
+-      if (it!=_index.end()) 
++      if (it!=_index.end())
+ 	obsCounts[it->second+c] += count;
+       else { // new feature, need to expand obsCounts and _lambda
+-	for (unsigned int k = 0; k<_classes; k++) 
++	for (unsigned int k = 0; k<_classes; k++)
+ 	  obsCounts.push_back(0);
+ 	obsCounts[_lambda.size()+c] += count;
+ 	addFeature(e[j]);
diff --git a/nixpkgs/pkgs/applications/gis/saga/finite.patch b/nixpkgs/pkgs/applications/gis/saga/finite.patch
new file mode 100644
index 000000000000..7f60743534bd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/saga/finite.patch
@@ -0,0 +1,13 @@
+diff --git a/saga-gis/src/modules/imagery/imagery_maxent/me.cpp b/saga-gis/src/modules/imagery/imagery_maxent/me.cpp
+index c5da854..d3e9cff 100755
+--- a/src/modules/imagery/imagery_maxent/me.cpp
++++ b/src/modules/imagery/imagery_maxent/me.cpp
+@@ -21,7 +21,7 @@
+ #ifdef _SAGA_MSW
+ #define isinf(x) (!_finite(x))
+ #else
+-#define isinf(x) (!finite(x))
++#define isinf(x) (!isfinite(x))
+ #endif
+
+ /** The input array contains a set of log probabilities lp1, lp2, lp3
diff --git a/nixpkgs/pkgs/applications/gis/saga/lts.nix b/nixpkgs/pkgs/applications/gis/saga/lts.nix
new file mode 100644
index 000000000000..ca0034aa9708
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/saga/lts.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, gdal, wxGTK30, proj, libiodbc, lzma, jasper,
+  libharu, opencv, vigra, postgresql, autoreconfHook, Cocoa
+  , unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }:
+
+stdenv.mkDerivation rec {
+  name = "saga-2.3.2";
+
+  # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
+  # for why the have additional buildInputs on darwin
+  buildInputs = [ autoreconfHook gdal wxGTK30 proj libharu opencv vigra
+                  postgresql libiodbc lzma jasper
+                  unixODBC poppler hdf4.out hdf5 netcdf sqlite qhull giflib ]
+                ++ stdenv.lib.optional stdenv.isDarwin Cocoa ;
+
+  enableParallelBuilding = true;
+
+  CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing";
+
+  sourceRoot = "code-b6f474f/saga-gis";
+
+  patches = [ ./clang_patch.patch ./finite.patch];
+
+  src = fetchgit {
+    url = "https://git.code.sf.net/p/saga-gis/code.git";
+    rev = "b6f474f8af4af7f0ff82548cc6f88c53547d91f5";
+    sha256 = "0iakynai8mhcwj6wxvafkqhd7b417ss7hyhbcp9wf6092l6vc2zd";
+  };
+
+  meta = with stdenv.lib; {
+    description = "System for Automated Geoscientific Analyses";
+    homepage = http://www.saga-gis.org;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.mpickering ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix b/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
new file mode 100644
index 000000000000..f6adf7857ede
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform , fetchFromGitHub, Security }:
+rustPlatform.buildRustPackage rec {
+  name = "whitebox_tools-${version}";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "jblindsay";
+    repo = "whitebox-tools";
+    rev = "6221cdf327be70f0ee4f2053b76bfa01c3f37caa";
+    sha256 = "1423ga964mz7qkl88vkcm8qfprsksx04aq4sz9v5ghnmdzzvl89x";
+  };
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+  cargoSha256 = "1gbgirng21ak0kl3fiyr6lxwzrjd5v79gcrbzf941nb8y8rlvz7k";
+
+  meta = with stdenv.lib; {
+    description = "An advanced geospatial data analysis platform";
+    homepage = http://www.uoguelph.ca/~hydrogeo/WhiteboxTools/index.html;
+    license = licenses.mit;
+    maintainers = [ maintainers.mpickering ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix b/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
new file mode 100644
index 000000000000..8fb21e65c951
--- /dev/null
+++ b/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
+, 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 throw "ImageMagick is not supported on this platform.";
+
+  cfg = {
+    version = "7.0.8-14";
+    sha256 = "0pbrmzsjc8l4klfsz739rnmw61m712r82ryjl8ycvbxdzxwnwm9v";
+    patches = [];
+  };
+in
+
+stdenv.mkDerivation rec {
+  name = "imagemagick-${version}";
+  inherit (cfg) version;
+
+  src = fetchFromGitHub {
+    owner = "ImageMagick";
+    repo = "ImageMagick";
+    rev = cfg.version;
+    inherit (cfg) sha256;
+  };
+
+  patches = [ ./imagetragick.patch ] ++ 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
+    ]
+    ++ 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/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;
+    maintainers = with maintainers; [ the-kenny wkennington ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix b/nixpkgs/pkgs/applications/graphics/ImageMagick/default.nix
new file mode 100644
index 000000000000..5220fdf89813
--- /dev/null
+++ b/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
+, 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 throw "ImageMagick is not supported on this platform.";
+
+  cfg = {
+    version = "6.9.9-34";
+    sha256 = "0sqrgyfi7i7x1akna95c1qhk9sxxswzm3pkssfi4w6v7bn24g25g";
+    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 rec {
+  name = "imagemagick-${version}";
+  inherit (cfg) version;
+
+  src = fetchFromGitHub {
+    owner = "ImageMagick";
+    repo = "ImageMagick6";
+    rev = cfg.version;
+    inherit (cfg) sha256;
+  };
+
+  patches = [ ./imagetragick.patch ] ++ 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
+    ]
+    ++ 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/pkg-config
+      substituteInPlace "$file" --replace ${pkgconfig}/bin/pkg-config \
+        "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkgconfig}/bin/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;
+    maintainers = with maintainers; [ the-kenny wkennington ];
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/imagetragick.patch b/nixpkgs/pkgs/applications/graphics/ImageMagick/imagetragick.patch
new file mode 100644
index 000000000000..1b2de5e73506
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/ImageMagick/imagetragick.patch
@@ -0,0 +1,8 @@
+--- a/config/policy.xml
++++ b/config/policy.xml
+67a68,72
+>   <policy domain="coder" rights="none" pattern="EPHEMERAL" />
+>   <policy domain="coder" rights="none" pattern="URL" />
+>   <policy domain="coder" rights="none" pattern="HTTPS" />
+>   <policy domain="coder" rights="none" pattern="MVG" />
+>   <policy domain="coder" rights="none" pattern="MSL" />
diff --git a/nixpkgs/pkgs/applications/graphics/PythonMagick/default.nix b/nixpkgs/pkgs/applications/graphics/PythonMagick/default.nix
new file mode 100644
index 000000000000..938df76e2572
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/PythonMagick/default.nix
@@ -0,0 +1,28 @@
+# This expression provides Python bindings to ImageMagick. Python libraries are supposed to be called via `python-packages.nix`.
+
+{ stdenv, fetchurl, python, pkgconfig, imagemagick, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "pythonmagick-${version}";
+  version = "0.9.16";
+
+  src = fetchurl {
+    url = "mirror://imagemagick/python/releases/PythonMagick-${version}.tar.xz";
+    sha256 = "137278mfb5079lns2mmw73x8dhpzgwha53dyl00mmhj2z25varpn";
+  };
+
+  postPatch = ''
+    rm configure
+  '';
+
+  configureFlags = [ "--with-boost=${python.pkgs.boost}" ];
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ python python.pkgs.boost imagemagick ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.imagemagick.org/script/api.php;
+    license = licenses.imagemagick;
+    description = "PythonMagick provides object oriented bindings for the ImageMagick Library.";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix b/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix
new file mode 100644
index 000000000000..52df41c683cd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libconfig,
+  gtkmm2, glibmm, libxml2, libsecret, curl, libzip,
+  librsvg, gst_all_1, autoreconfHook, makeWrapper,
+  useUnrar ? false, unrar
+}:
+
+assert useUnrar -> unrar != null;
+
+stdenv.mkDerivation rec {
+  name = "ahoviewer-${version}";
+  version = "1.6.4";
+
+  src = fetchFromGitHub {
+    owner = "ahodesuka";
+    repo = "ahoviewer";
+    rev = version;
+    sha256 = "144jmk8w7dnmqy4w81b3kzama7i97chx16pgax2facn72a92921q";
+  };
+
+  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;
+
+  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/nixpkgs/pkgs/applications/graphics/alchemy/default.nix b/nixpkgs/pkgs/applications/graphics/alchemy/default.nix
new file mode 100644
index 000000000000..848f132060fe
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/alchemy/default.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchurl, jre}:
+
+stdenv.mkDerivation rec {
+  name = "alchemy-${version}";
+  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
+    #!/bin/sh
+    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/nixpkgs/pkgs/applications/graphics/animbar/default.nix b/nixpkgs/pkgs/applications/graphics/animbar/default.nix
new file mode 100644
index 000000000000..0d6b538b1072
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/animbar/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchurl, cmake, qt4, file, gcc }:
+
+stdenv.mkDerivation rec {
+  pname = "animbar";
+  version = "1.2";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${name}.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/nixpkgs/pkgs/applications/graphics/antimony/default.nix b/nixpkgs/pkgs/applications/graphics/antimony/default.nix
new file mode 100644
index 000000000000..aa6305ce8311
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/antimony/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, libpng, python3
+, libGLU_combined, qtbase, ncurses
+, cmake, flex, lemon
+}:
+
+let
+  gitRev    = "60a58688e552f12501980c4bdab034ab0f2ba059";
+  gitBranch = "develop";
+  gitTag    = "0.9.3";
+in
+  stdenv.mkDerivation rec {
+    name    = "antimony-${version}";
+    version = "2018-07-17";
+
+    src = fetchFromGitHub {
+      owner  = "mkeeter";
+      repo   = "antimony";
+      rev    = gitRev;
+      sha256 = "0pgf6kr23xw012xsil56j5gq78mlirmrlqdm09m5wlgcf4vr6xnl";
+    };
+
+    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,python-py35,python36," CMakeLists.txt
+    '';
+
+    buildInputs = [
+      libpng python3 python3.pkgs.boost
+      libGLU_combined qtbase ncurses
+    ];
+
+    nativeBuildInputs = [ cmake flex lemon ];
+
+    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/nixpkgs/pkgs/applications/graphics/antimony/paths-fix.patch b/nixpkgs/pkgs/applications/graphics/antimony/paths-fix.patch
new file mode 100644
index 000000000000..9235dd6cdce1
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/apitrace/default.nix b/nixpkgs/pkgs/applications/graphics/apitrace/default.nix
new file mode 100644
index 000000000000..459e07f9838b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/apitrace/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, libX11, procps, python2, libdwarf, qtbase, qtwebkit }:
+
+stdenv.mkDerivation rec {
+  name = "apitrace-${version}";
+  version = "7.1-363-ge3509be1";
+
+  src = fetchFromGitHub {
+    sha256 = "1xbz6gwl7kqjm7jjy5gxkdxzrg93vj1a3l19ara7rni6dii0q136";
+    rev = "e3509be175eda77749abffe051ed0d3eb5d14e72";
+    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 ];
+
+  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/nixpkgs/pkgs/applications/graphics/astah-community/default.nix b/nixpkgs/pkgs/applications/graphics/astah-community/default.nix
new file mode 100644
index 000000000000..72d367d8fea2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/astah-community/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem, unzip, jre }:
+
+let
+
+  name = "astah-community";
+  version = "7.2.0";
+  postfix = "1ff236";
+  desktopIcon = fetchurl {
+    name = "${name}.png";
+    url = "https://aur.archlinux.org/cgit/aur.git/plain/astah_community.png?h=astah-community&id=94710b5a6aadcaf489022b0f0e61f8832ae6fa87";
+    sha256 = "0knlknwfqqnhg63sxxpia5ykn397id31gzr956wnn6yjj58k3ckm";
+  };
+  mimeXml = fetchurl {
+    name = "${name}.xml";
+    url = "https://aur.archlinux.org/cgit/aur.git/plain/astah_community.xml?h=astah-community&id=94710b5a6aadcaf489022b0f0e61f8832ae6fa87";
+    sha256 = "096n2r14ddm97r32i4sbp7v4qdmwn9sxy7lwphcx1nydppb0m97b";
+  };
+  desktopItem = makeDesktopItem {
+    name = name;
+    exec = "astah %U";
+    icon = "${desktopIcon}";
+    comment = "Lightweight, easy-to-use, and free UML2.x modeler";
+    desktopName = "Astah* Community";
+    genericName = "Astah* Community";
+    mimeType = "application/x-astah";
+    categories = "Application;Development;";
+    extraEntries = "NoDisplay=false";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "${name}-${version}";
+
+  src = fetchurl {
+    url = "http://cdn.change-vision.com/files/${name}-${stdenv.lib.replaceStrings ["."] ["_"] version}-${postfix}.zip";
+    sha256 = "1lkl30jdjiarvh2ap9rjabvrq9qhrlmfrasv3vvkag22y9w4l499";
+  };
+
+  nativeBuildInputs = [ unzip makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share}
+    cp -r . $out/share/astah
+    cp -r ${desktopItem}/share/applications $out/share/applications
+
+    install -D ${desktopIcon} $out/share/pixmaps/${name}.png
+    install -D ${mimeXml} $out/share/mime/packages/${name}.xml
+
+    makeWrapper ${jre}/bin/java $out/bin/astah \
+      --add-flags "-jar $out/share/astah/astah-community.jar"
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Lightweight, easy-to-use, and free UML2.x modeler";
+    homepage = http://astah.net/editions/community;
+    license = licenses.unfree;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix b/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix
new file mode 100644
index 000000000000..5fd1810bc284
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/autopanosiftc/default.nix
@@ -0,0 +1,19 @@
+{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 ];
+
+  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/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix b/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix
new file mode 100644
index 000000000000..31ee0ff0d07b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/autotrace/autofig.nix
@@ -0,0 +1,10 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "autofig-0.1";
+
+  src = fetchurl {
+    url = "http://autotrace.sourceforge.net/tools/autofig.tar.gz";
+    sha256 = "11cs9hdbgcl3aamcs3149i8kvyyldmnjf6yq81kbcf8fdmfk2zdq";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/autotrace/default.nix b/nixpkgs/pkgs/applications/graphics/autotrace/default.nix
new file mode 100644
index 000000000000..7af7c8986f2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/autotrace/default.nix
@@ -0,0 +1,124 @@
+{ stdenv, fetchurl, callPackage, libpng12, imagemagick,
+  autoreconfHook, glib, pstoedit, pkgconfig, gettext, gd, darwin }:
+
+# TODO: Figure out why the resultant binary is somehow linked against
+# libpng16.so.16 rather than libpng12.
+
+stdenv.mkDerivation rec {
+  name = "autotrace-${version}";
+  version = "0.31.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/autotrace/AutoTrace/0.31.1/${name}.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'
+    #!${stdenv.shell}
+    # 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/nixpkgs/pkgs/applications/graphics/avocode/default.nix b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
new file mode 100644
index 000000000000..7777be918975
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
@@ -0,0 +1,104 @@
+{ 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, gsettings-desktop-schemas
+}:
+
+stdenv.mkDerivation rec {
+  name = "avocode-${version}";
+  version = "3.6.2";
+
+  src = fetchurl {
+    url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
+    sha256 = "1slxxr3j0djqdnbk645sriwl99jp9imndyxiwd8aqggmmlp145a2";
+  };
+
+  libPath = stdenv.lib.makeLibraryPath (with xorg; with gnome3; [
+    stdenv.cc.cc.lib
+    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
+  ]);
+
+  desktopItem = makeDesktopItem {
+    name = "Avocode";
+    exec = "avocode";
+    icon = "avocode";
+    desktopName = "Avocode";
+    genericName = "Design Inspector";
+    categories = "Application;Development;";
+    comment = "The bridge between designers and developers";
+  };
+
+  nativeBuildInputs = [makeWrapper];
+  buildInputs = [ unzip gtk3 gsettings-desktop-schemas];
+
+  # 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
+    done
+    for file in $out/bin/*; do
+      wrapProgram $file \
+        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    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/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix b/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix
new file mode 100644
index 000000000000..df742645e86b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenv, fetchgit, qtbase, qmake, makeWrapper, 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 = stdenv.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 stdenv.mkDerivation rec {
+  name = "awesomebump-${version}";
+
+  inherit src;
+
+  buildInputs = [ qtbase qtscript qtdeclarative ];
+
+  nativeBuildInputs = [ qmake makeWrapper ];
+
+  preBuild = ''
+    ln -sf ${qtnproperty}/bin/QtnPEG Sources/utils/QtnProperty/bin-linux/QtnPEG
+  '';
+
+  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.
+    makeWrapper $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/nixpkgs/pkgs/applications/graphics/awesomebump/qtnproperty-parallel-building.patch b/nixpkgs/pkgs/applications/graphics/awesomebump/qtnproperty-parallel-building.patch
new file mode 100644
index 000000000000..b3f8e68dd1ad
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/batik/builder.sh b/nixpkgs/pkgs/applications/graphics/batik/builder.sh
new file mode 100755
index 000000000000..c6cf64bf3700
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/batik/builder.sh
@@ -0,0 +1,7 @@
+set -e
+
+source $stdenv/setup
+
+unzip $src
+mkdir $out
+mv batik-* $out/batik
diff --git a/nixpkgs/pkgs/applications/graphics/batik/default.nix b/nixpkgs/pkgs/applications/graphics/batik/default.nix
new file mode 100644
index 000000000000..51156dea4a17
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/batik/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation {
+  name = "batik-1.6";
+  builder = ./builder.sh;
+  src = fetchurl {
+    url = http://tarballs.nixos.org/batik-1.6.zip;
+    sha256 = "0cf15dspmzcnfda8w5lbsdx28m4v2rpq1dv5zx0r0n99ihqd1sh6";
+  };
+
+  buildInputs = [unzip];
+
+  meta = with stdenv.lib; {
+    description = "Java based toolkit for handling SVG";
+    homepage = https://xmlgraphics.apache.org/batik;
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    knownVulnerabilities = [
+      # vulnerabilities as of 16th October 2018 from https://xmlgraphics.apache.org/security.html:
+      "CVE-2018-8013"
+      "CVE-2017-5662"
+      "CVE-2015-0250"
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/c3d/default.nix b/nixpkgs/pkgs/applications/graphics/c3d/default.nix
new file mode 100644
index 000000000000..7e1c6d7c8c4b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/c3d/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit, cmake, itk, Cocoa }:
+
+stdenv.mkDerivation rec {
+  name    = "${pname}-${version}";
+  pname   = "c3d";
+  version = "2018-10-04";
+
+  src = fetchgit {
+    url = "https://git.code.sf.net/p/c3d/git";
+    rev = "351929a582b2ef68fb9902df0b11d38f44a0ccd0";
+    sha256 = "0mpv4yl6hdnxgvnwrmd182h64n3ppp30ldzm0jz6jglk0nvpzq9w";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ itk ]
+    ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
+
+  meta = with stdenv.lib; {
+    homepage = http://www.itksnap.org/c3d;
+    description = "Medical imaging processing tool";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license = licenses.gpl2;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/cinepaint/default.nix b/nixpkgs/pkgs/applications/graphics/cinepaint/default.nix
new file mode 100644
index 000000000000..9c736f5ffb57
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/cinepaint/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, cmake, pkgconfig, gtk2, freetype, fontconfig, lcms,
+  flex, libtiff, libjpeg, libpng, libexif, zlib, perlPackages, libX11,
+  pythonPackages, gettext, intltool, babl, gegl,
+  glib, makedepend, xf86vidmodeproto, xineramaproto, libXmu, openexr,
+  libGLU_combined, libXext, libXpm, libXau, libXxf86vm, pixman, libpthreadstubs, fltk } :
+
+let
+  inherit (pythonPackages) python pygtk;
+in stdenv.mkDerivation rec {
+  name = "cinepaint-1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/cinepaint/${name}.tgz";
+    sha256 = "0b5g4bkq62yiz1cnb2vfij0a8fw5w5z202v5dm4dh89k7cj0yq4w";
+  };
+
+  buildInputs = [ libpng gtk2 freetype fontconfig lcms flex libtiff libjpeg
+    libexif zlib libX11 python pygtk gettext intltool babl
+    gegl glib makedepend xf86vidmodeproto xineramaproto libXmu openexr libGLU_combined
+    libXext libXpm libXau libXxf86vm pixman libpthreadstubs fltk
+  ] ++ (with perlPackages; [ perl XMLParser ]);
+
+  hardeningDisable = [ "format" ];
+
+  patches = [ ./install.patch ];
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  NIX_LDFLAGS = "-llcms -ljpeg -lX11";
+
+  meta = {
+    homepage = http://www.cinepaint.org/;
+    license = stdenv.lib.licenses.free;
+    description = "Image editor which supports images over 8bpp and ICC profiles";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/cinepaint/install.patch b/nixpkgs/pkgs/applications/graphics/cinepaint/install.patch
new file mode 100644
index 000000000000..f15ff1c4414d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/cinepaint/install.patch
@@ -0,0 +1,24 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dfb182f..5adaaa5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -138,7 +138,7 @@ STRING(REPLACE "/" "\\/" ESCAPEDPREFIX ${PREFIX})
+ # Note that for MacOS this needs to be revised 
+ # for the @OSX_ICC...@ variables
+ ADD_CUSTOM_COMMAND(
+-   OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/gimprc
++   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/gimprc
+    COMMAND  sed -e s/\@platform\@//g
+ 		-e s/\@prefix\@/${ESCAPEDPREFIX}/g 
+ 	        -e s/\@exec_prefix\@/\${prefix}/g
+@@ -155,8 +155,8 @@ ADD_CUSTOM_COMMAND(
+ 
+ ADD_CUSTOM_TARGET(RCFile ALL echo
+       ""
+-      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/user_install 
+-              ${CMAKE_CURRENT_SOURCE_DIR}/gimprc
++      DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/user_install 
++              ${CMAKE_CURRENT_BINARY_DIR}/gimprc
+    )
+ 
+ 
diff --git a/nixpkgs/pkgs/applications/graphics/comical/default.nix b/nixpkgs/pkgs/applications/graphics/comical/default.nix
new file mode 100644
index 000000000000..2796a5535a03
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/comical/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, wxGTK, utillinux, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "comical-0.8";
+  src = fetchurl {
+    url = "mirror://sourceforge/comical/${name}.tar.gz";
+    sha256 = "0b6527cc06b25a937041f1eb248d0fd881cf055362097036b939817f785ab85e";
+  };
+  buildInputs = [ wxGTK utillinux 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/nixpkgs/pkgs/applications/graphics/comical/wxgtk-2.8.patch b/nixpkgs/pkgs/applications/graphics/comical/wxgtk-2.8.patch
new file mode 100644
index 000000000000..db7626074a0f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/darktable/default.nix b/nixpkgs/pkgs/applications/graphics/darktable/default.nix
new file mode 100644
index 000000000000..51a401d4b8c8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/darktable/default.nix
@@ -0,0 +1,57 @@
+{ 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
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.4.4";
+  name = "darktable-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
+    sha256 = "0kdhmiw4wxk2w9v2hms9yk8nl4ymdshnqyj0l07nivzzr6w20hwn";
+  };
+
+  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
+  ] ++ stdenv.lib.optionals stdenv.isLinux [
+    colord colord-gtk libX11 ocl-icd
+  ] ++ stdenv.lib.optional stdenv.isDarwin gtk-mac-integration;
+
+  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 ''
+    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 rickynils flosse mrVanDalo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/deskew/default.nix b/nixpkgs/pkgs/applications/graphics/deskew/default.nix
new file mode 100644
index 000000000000..71e2d82ea7ca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/deskew/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromBitbucket, libtiff, fpc }:
+
+stdenv.mkDerivation rec {
+
+  name = "deskew-${version}";
+  version = "1.25";
+
+  src = fetchFromBitbucket {
+    owner = "galfar";
+    repo = "app-deskew";
+    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/nixpkgs/pkgs/applications/graphics/dia/default.nix b/nixpkgs/pkgs/applications/graphics/dia/default.nix
new file mode 100644
index 000000000000..0ce160242e56
--- /dev/null
+++ b/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, hicolor-icon-theme,
+gtk-mac-integration-gtk2 }:
+
+stdenv.mkDerivation rec {
+  name = "dia-${version}";
+  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 hicolor-icon-theme ]
+      ++ 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/nixpkgs/pkgs/applications/graphics/digikam/default.nix b/nixpkgs/pkgs/applications/graphics/digikam/default.nix
new file mode 100644
index 000000000000..fb99d3e38322
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/digikam/default.nix
@@ -0,0 +1,124 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
+
+# For `digitaglinktree`
+, perl, sqlite
+
+, qtbase
+, qtxmlpatterns
+, qtsvg
+, qtwebkit
+
+, kcalcore
+, kconfigwidgets
+, kcoreaddons
+, kdoctools
+, kfilemetadata
+, knotifications
+, knotifyconfig
+, ktextwidgets
+, kwidgetsaddons
+, kxmlgui
+
+, bison
+, boost
+, eigen
+, exiv2
+, flex
+, jasper
+, lcms2
+, lensfun
+, libgphoto2
+, libkipi
+, libksane
+, liblqr1
+, libqtav
+, libusb1
+, marble
+, libGL
+, libGLU
+, opencv3
+, pcre
+, threadweaver
+
+# For panorama and focus stacking
+, enblend-enfuse
+, hugin
+, gnumake
+
+, oxygen
+}:
+
+mkDerivation rec {
+  name    = "digikam-${version}";
+  version = "5.9.0";
+
+  src = fetchFromGitHub {
+    owner  = "KDE";
+    repo   = "digikam";
+    rev    = "v${version}";
+    sha256 = "09diw273h9i7rss89ba82yrfy6jb2njv3k0dknrrg7bb998vrw2d";
+  };
+
+  nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
+
+  buildInputs = [
+    bison
+    boost
+    eigen
+    exiv2
+    flex
+    jasper
+    lcms2
+    lensfun
+    libgphoto2
+    libkipi
+    libksane
+    liblqr1
+    libqtav
+    libusb1
+    libGL
+    libGLU
+    opencv3
+    pcre
+
+    qtbase
+    qtxmlpatterns
+    qtsvg
+    qtwebkit
+
+    kcalcore
+    kconfigwidgets
+    kcoreaddons
+    kfilemetadata
+    knotifications
+    knotifyconfig
+    ktextwidgets
+    kwidgetsaddons
+    kxmlgui
+
+    marble
+    oxygen
+    threadweaver
+  ];
+
+  cmakeFlags = [
+    "-DENABLE_MYSQLSUPPORT=1"
+    "-DENABLE_INTERNALMYSQL=1"
+    "-DENABLE_MEDIAPLAYER=1"
+  ];
+
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
+    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;
+    maintainers = with maintainers; [ the-kenny ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/displaycal/default.nix b/nixpkgs/pkgs/applications/graphics/displaycal/default.nix
new file mode 100644
index 000000000000..821a9e8083e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/displaycal/default.nix
@@ -0,0 +1,59 @@
+{buildPythonPackage, stdenv, fetchurl, pkgconfig
+ , libXext, libXxf86vm, libX11, libXrandr, libXinerama, libXScrnSaver
+ , argyllcms, wxPython, numpy
+ }:
+buildPythonPackage {
+  pname = "displaycal";
+  version = "3.5.0.0";
+
+  enableParallelBuilding = true;
+
+  src = fetchurl {
+    url = mirror://sourceforge/project/dispcalgui/release/3.5.0.0/DisplayCAL-3.5.0.0.tar.gz;
+    sha256 = "1j496sv8pbhby5hkkbp07k6bs3f7mb1l3dijmn2iga3kmix0fn5q";
+  };
+
+  propagatedBuildInputs = [
+    libXext
+    libXxf86vm
+    libX11
+    libXrandr
+    libXinerama
+    libXScrnSaver
+    argyllcms
+    wxPython
+    numpy
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+  ];
+
+  preConfigure = ''
+    mkdir dist
+    cp {misc,dist}/DisplayCAL.appdata.xml
+    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/nixpkgs/pkgs/applications/graphics/djview/default.nix b/nixpkgs/pkgs/applications/graphics/djview/default.nix
new file mode 100644
index 000000000000..2b0dde210c58
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/djview/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig
+, djvulibre, qt4, xorg, libtiff
+, darwin }:
+
+stdenv.mkDerivation rec {
+  name = "djview-${version}";
+  version = "4.10.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/djvu/${name}.tar.gz";
+    sha256 = "08bwv8ppdzhryfcnifgzgdilb12jcnivl4ig6hd44f12d76z6il4";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ djvulibre qt4 xorg.libXt libtiff ]
+  ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AGL ];
+
+  passthru = {
+    mozillaPlugin = "/lib/netscape/plugins";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://djvu.sourceforge.net/djview4.html;
+    description = "A portable DjVu viewer and browser plugin";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/dosage/default.nix b/nixpkgs/pkgs/applications/graphics/dosage/default.nix
new file mode 100644
index 000000000000..d45d6c3a62e3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/dosage/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, pythonPackages, fetchFromGitHub }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "dosage";
+  version = "2018.04.08";
+  PBR_VERSION = version;
+
+  src = fetchFromGitHub {
+    owner = "webcomics";
+    repo = "dosage";
+    rev = "b2fdc13feb65b93762928f7e99bac7b1b7b31591";
+    sha256 = "1p6vllqaf9s6crj47xqp97hkglch1kd4y8y4lxvzx3g2shhhk9hh";
+  };
+  buildInputs = with pythonPackages; [ pytest responses ];
+  propagatedBuildInputs = with pythonPackages; [ colorama lxml requests pbr ];
+
+  disabled = pythonPackages.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/nixpkgs/pkgs/applications/graphics/draftsight/default.nix b/nixpkgs/pkgs/applications/graphics/draftsight/default.nix
new file mode 100644
index 000000000000..30101bb94770
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/draftsight/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, dpkg, makeWrapper, gcc, libGLU_combined, xdg_utils,
+  dbus, alsaLib, cups, fontconfig, glib, icu, libpng12,
+  xkeyboard_config, zlib, libxslt, libxml2, sqlite, orc,
+  libX11, libXcursor, libXrandr, libxcb, libXi, libSM, libICE,
+  libXrender, libXcomposite }:
+
+let version = "2018SP2"; in
+stdenv.mkDerivation {
+  name = "draftsight-${version}";
+
+  nativeBuildInputs = [ dpkg makeWrapper ];
+
+  unpackPhase = ''
+    mkdir $out
+    mkdir $out/draftsight
+    dpkg -x $src $out/draftsight
+  '';
+
+  # Both executables and bundled libraries need patching to find their
+  # dependencies.  The makeWrapper & QT_XKB_CONFIG_ROOT is to
+  # alleviate "xkbcommon: ERROR: failed to add default include path
+  # /usr/share/X11/xkb" and "Qt: Failed to create XKB context!".
+  installPhase = ''
+    mkdir $out/bin
+    for exe in DraftSight dsHttpApiController dsHttpApiService FxCrashRptApp HelpGuide; do
+      echo "Patching $exe..."
+      patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+               --set-rpath $libPath:\$ORIGIN/../Libraries \
+               $out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe
+      makeWrapper $out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe \
+          $out/bin/$exe \
+          --prefix "QT_XKB_CONFIG_ROOT" ":" "${xkeyboard_config}/share/X11/xkb"
+    done
+    for lib in $out/draftsight/opt/dassault-systemes/DraftSight/Libraries/*.so*; do
+      # DraftSight ships with broken symlinks for some reason
+      if [ -f $(readlink -f $lib) ]
+      then
+        echo "Patching $lib..."
+        patchelf --set-rpath $libPath:\$ORIGIN/../Libraries $lib
+      else
+        echo "Ignoring broken link $lib"
+      fi
+    done
+    for lib in $out/draftsight/opt/dassault-systemes/DraftSight/APISDK/lib/cpp/*.so*; do
+      if [ -f $(readlink $lib) ]
+      then
+        echo "Patching $lib..."
+        chmod u+w $lib
+        patchelf --set-rpath $libPath:\$ORIGIN/../Libraries $lib
+      else
+        echo "Ignoring broken link $lib"
+      fi
+    done
+    # These libraries shouldn't really be here anyway:
+    find $out/draftsight/opt/dassault-systemes/DraftSight/APISDK/Samples/C++ \
+         -type d -name _lib | xargs rm -r
+  '';
+
+  # TODO: Figure out why HelpGuide segfaults at startup.
+
+  # This must be here for main window graphics to appear (without it
+  # it also gives the error: "QXcbIntegration: Cannot create platform
+  # OpenGL context, neither GLX nor EGL are enabled"). My guess is
+  # that it dlopen()'s libraries in paths removed by shrinking RPATH.
+  dontPatchELF = true;
+
+  src = fetchurl {
+    name = "draftSight.deb";
+    url = "http://dl-ak.solidworks.com/nonsecure/draftsight/${version}/draftSight.deb";
+    sha256 = "05lrvml0zkzqg0sj6sj2h8h66hxdmsw5fg9fwz923r1y8j48qxdx";
+  };
+
+  libPath = stdenv.lib.makeLibraryPath [ gcc.cc libGLU_combined xdg_utils
+    dbus alsaLib cups.lib fontconfig glib icu libpng12
+    xkeyboard_config zlib libxslt libxml2 sqlite orc libX11
+    libXcursor libXrandr libxcb libXi libSM libICE libXrender
+    libXcomposite ];
+
+  meta = with stdenv.lib; {
+    description = "2D design & drafting application, meant to be similar to AutoCAD";
+    longDescription = "Professional-grade 2D design and drafting solution from Dassault Systèmes that lets you create, edit, view and mark up any kind of 2D CAD drawing.";
+    homepage = https://www.3ds.com/products-services/draftsight-cad-software/;
+    license = stdenv.lib.licenses.unfree;
+    maintainers = with maintainers; [ hodapp ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/drawpile/default.nix b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
new file mode 100644
index 000000000000..fd8f88aa53ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchurl
+, cmake
+, qtbase
+, qtsvg
+, qtmultimedia
+, qttools
+, kdnssd
+, karchive
+, libsodium
+, libmicrohttpd
+, giflib
+, miniupnpc
+}:
+
+stdenv.mkDerivation rec {
+  name = "drawpile-${version}";
+  version = "2.0.11";
+  src = fetchurl {
+    url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
+    sha256 = "0h018rxhc0lwpqwmlihalz634nd0xaafk4p2b782djjd87irnjpk";
+  };
+  buildInputs = [
+    cmake
+    qtbase qtsvg qtmultimedia qttools
+    karchive
+    # optional deps:
+    libsodium # ext-auth support
+    libmicrohttpd # HTTP admin api
+    giflib # gif animation export support
+    miniupnpc # automatic port forwarding
+    kdnssd # local server discovery with Zeroconf
+  ];
+  configurePhase = "cmake -DCMAKE_INSTALL_PREFIX=$out .";
+
+  meta = with stdenv.lib; {
+    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 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/graphics/epeg/default.nix b/nixpkgs/pkgs/applications/graphics/epeg/default.nix
new file mode 100644
index 000000000000..3645cc565728
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/epeg/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libtool, autoconf, automake
+, libjpeg, libexif
+}:
+
+stdenv.mkDerivation rec {
+  name = "epeg-0.9.1.042"; # version taken from configure.ac
+
+  src = fetchFromGitHub {
+    owner = "mattes";
+    repo = "epeg";
+    rev = "248ae9fc3f1d6d06e6062a1f7bf5df77d4f7de9b";
+    sha256 = "14ad33w3pxrg2yfc2xzyvwyvjirwy2d00889dswisq8b84cmxfia";
+  };
+
+  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/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix b/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix
new file mode 100644
index 000000000000..562fb8c11dc3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/exrdisplay/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, fltk, openexr, libGLU_combined, 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_combined 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/nixpkgs/pkgs/applications/graphics/exrtools/default.nix b/nixpkgs/pkgs/applications/graphics/exrtools/default.nix
new file mode 100644
index 000000000000..7980d09fed12
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/exrtools/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, openexr, libpng12, libjpeg }:
+
+stdenv.mkDerivation rec {
+  name = "exrtools-${version}";
+  version = "0.4";
+
+  src = fetchurl {
+    url =  "http://scanline.ca/exrtools/${name}.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/nixpkgs/pkgs/applications/graphics/fbida/default.nix b/nixpkgs/pkgs/applications/graphics/fbida/default.nix
new file mode 100644
index 000000000000..33d65a860764
--- /dev/null
+++ b/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_noglu, 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_noglu
+  ];
+  
+  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";
+    homepage = https://www.kraxel.org/blog/linux/fbida/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pSub ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/feh/default.nix b/nixpkgs/pkgs/applications/graphics/feh/default.nix
new file mode 100644
index 000000000000..50664fc9e59b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/feh/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, makeWrapper
+, xorg, imlib2, libjpeg, libpng
+, curl, libexif, perlPackages }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "feh-${version}";
+  version = "3.1.1";
+
+  src = fetchurl {
+    url = "https://feh.finalrewind.org/${name}.tar.bz2";
+    sha256 = "1sy8z6rv5sy1bhk3846hgfdy96wdi874yr2fnxfprks46qp29l31";
+  };
+
+  outputs = [ "out" "man" "doc" ];
+
+  nativeBuildInputs = [ makeWrapper xorg.libXt ];
+
+  buildInputs = [ xorg.libX11 xorg.libXinerama imlib2 libjpeg libpng curl libexif ];
+
+  makeFlags = [
+    "PREFIX=$(out)" "exif=1"
+  ] ++ optional stdenv.isDarwin "verscmp=0";
+
+  postBuild = ''
+    pushd man
+    make
+    popd
+  '';
+
+  postInstall = ''
+    wrapProgram "$out/bin/feh" --prefix PATH : "${libjpeg.bin}/bin" \
+                               --add-flags '--theme=feh'
+    install -D -m 644 man/*.1 $out/share/man/man1
+  '';
+
+  checkInputs = [ perlPackages.TestCommand perlPackages.TestHarness ];
+  preCheck = ''
+    export PERL5LIB="${perlPackages.TestCommand}/lib/perl5/site_perl"
+  '';
+
+  doCheck = true;
+
+  meta = {
+    description = "A light-weight image viewer";
+    homepage = "https://feh.finalrewind.org/";
+    license = licenses.mit;
+    maintainers = [ maintainers.viric maintainers.willibutz ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/fig2dev/default.nix b/nixpkgs/pkgs/applications/graphics/fig2dev/default.nix
new file mode 100644
index 000000000000..1e54152fff4d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/fig2dev/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, ghostscript, libpng } :
+
+let
+  version = "3.2.7a";
+
+in stdenv.mkDerivation {
+  name = "fig2dev-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mcj/fig2dev-${version}.tar.xz";
+    sha256 = "0a7vkfl38fvkhg3na5gr9c4fskas9wbs84y9djg85nzwbshik8mx";
+  };
+
+  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/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix b/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix
new file mode 100644
index 000000000000..8ca093b90c3e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "fontmatrix-${version}";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "fontmatrix";
+    repo = "fontmatrix";
+    rev = "v${version}";
+    sha256 = "0aqndj1jhm6hjpwmj1qm92z2ljh7w78a5ff5ag47qywqha1ngn05";
+  };
+
+  buildInputs = [ qt4 ];
+
+  nativeBuildInputs = [ cmake ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    description = "Fontmatrix is a free/libre font explorer for Linux, Windows and Mac";
+    homepage = https://github.com/fontmatrix/fontmatrix;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/freecad/default.nix b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
new file mode 100644
index 000000000000..6362d6c06fe9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
@@ -0,0 +1,89 @@
+{ stdenv, fetchurl, cmake, coin3d, xercesc, ode, eigen, qt4, opencascade, gts
+, hdf5, vtk, medfile, zlib, python27Packages, swig, gfortran, fetchpatch
+, soqt, libf2c, makeWrapper, makeDesktopItem
+, mpi ? null }:
+
+assert mpi != null;
+
+let
+  pythonPackages = python27Packages;
+in stdenv.mkDerivation rec {
+  name = "freecad-${version}";
+  version = "0.17";
+
+  src = fetchurl {
+    url = "https://github.com/FreeCAD/FreeCAD/archive/${version}.tar.gz";
+    sha256 = "1yv6abdzlpn4wxy315943xwrnbywxqfgkjib37qwfvbb8y9p60df";
+  };
+
+  buildInputs = [ cmake coin3d xercesc ode eigen qt4 opencascade gts
+    zlib  swig gfortran soqt libf2c makeWrapper  mpi vtk hdf5 medfile
+  ] ++ (with pythonPackages; [
+    matplotlib pycollada pyside pysideShiboken pysideTools pivy python boost
+  ]);
+
+  patches = [
+    # Fix for finding boost_python. Boost >= 1.67.0 appends the Python version.
+    (fetchpatch {
+      url = https://github.com/FreeCAD/FreeCAD/commit/3c9e6b038ed544e446c61695dab62f83e781a28a.patch;
+      sha256 = "0f09qywzn0y41hylizb5g8jy74fi53iqmvqr5zznaz16wpw4hqbp";
+    })
+  ];
+
+  enableParallelBuilding = true;
+
+  # 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
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/FreeCAD --prefix PYTHONPATH : $PYTHONPATH \
+      --set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1
+
+    mkdir -p $out/share/mime/packages
+    cat << EOF > $out/share/mime/packages/freecad.xml
+    <?xml version="1.0" encoding="UTF-8"?>
+    <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+      <mime-type type="application/x-extension-fcstd">
+        <sub-class-of type="application/zip"/>
+        <comment>FreeCAD Document</comment>
+        <glob pattern="*.fcstd"/>
+      </mime-type>
+    </mime-info>
+    EOF
+
+    mkdir -p $out/share/applications
+    cp $desktopItem/share/applications/* $out/share/applications/
+    for entry in $out/share/applications/*.desktop; do
+      substituteAllInPlace $entry
+    done
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "freecad";
+    desktopName = "FreeCAD";
+    genericName = "CAD Application";
+    comment = meta.description;
+    exec = "@out@/bin/FreeCAD %F";
+    categories = "Science;Education;Engineering;";
+    startupNotify = "true";
+    mimeType = "application/x-extension-fcstd;";
+    extraEntries = ''
+      Path=@out@/share/freecad
+    '';
+  };
+
+  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 = [ maintainers.viric ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/freepv/default.nix b/nixpkgs/pkgs/applications/graphics/freepv/default.nix
new file mode 100644
index 000000000000..0bd3421f1b10
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/freepv/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, libjpeg, libGLU_combined, 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_combined 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/nixpkgs/pkgs/applications/graphics/fstl/default.nix b/nixpkgs/pkgs/applications/graphics/fstl/default.nix
new file mode 100644
index 000000000000..b1437508a509
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/fstl/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchFromGitHub, qtbase, mesa_glu}:
+stdenv.mkDerivation rec {
+  name = "fstl-${version}";
+  version = "0.9.3";
+
+  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 = "1j0y9xbf0ybrrnsmfzgpyyz6bi98xgzn9ivani424j01vffns892";
+  };
+
+  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/nixpkgs/pkgs/applications/graphics/gcolor2/default.nix b/nixpkgs/pkgs/applications/graphics/gcolor2/default.nix
new file mode 100644
index 000000000000..025b3ae65ece
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/gcolor2/default.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchurl, gtk2, perlPackages, pkgconfig } :
+
+let version = "0.4"; in
+stdenv.mkDerivation {
+  name = "gcolor2-${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";
+    sha1 = "e410a52dcff3d5c6c3d448b68a026d04ccd744be";
+
+  };
+
+  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/nixpkgs/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch b/nixpkgs/pkgs/applications/graphics/gcolor2/gcolor2-amd64.patch
new file mode 100644
index 000000000000..cd06a8315f98
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix b/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
new file mode 100644
index 000000000000..ed350b2b0eee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitLab, gnome3, meson, ninja, gettext, pkgconfig, libxml2, gtk3, hicolor-icon-theme, wrapGAppsHook }:
+
+let
+  version = "2.3.1";
+in stdenv.mkDerivation {
+  name = "gcolor3-${version}";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "gcolor3";
+    rev = "v${version}";
+    sha256 = "10cfzlkflwkb7f51rnrxmgxpfryh1qzvqaydj6lffjq9zvnhigg7";
+  };
+
+  nativeBuildInputs = [ meson ninja gettext pkgconfig libxml2 wrapGAppsHook ];
+
+  buildInputs = [ gtk3 hicolor-icon-theme ];
+
+  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://www.hjdskes.nl/projects/gcolor3/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/geeqie/default.nix b/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
new file mode 100644
index 000000000000..a1ea88da84be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, pkgconfig, autoconf, automake, gettext, intltool
+, gtk3, lcms2, exiv2, libchamplain, clutter-gtk, ffmpegthumbnailer, fbida
+}:
+
+stdenv.mkDerivation rec {
+  name = "geeqie-${version}";
+  version = "1.4";
+
+  src = fetchurl {
+    url = "http://geeqie.org/${name}.tar.xz";
+    sha256 = "0ciygvcxb78pqg59r6p061mkbpvkgv2rv3r79j3kgv3kalb3ln2w";
+  };
+
+  # Do not build the changelog as this requires markdown.
+  patches = [ ./geeqie-no-changelog.patch ];
+
+  preConfigure = "./autogen.sh";
+
+  nativeBuildInputs = [ pkgconfig autoconf automake gettext intltool ];
+  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 ];
+    platforms = platforms.gnu ++ platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/geeqie/geeqie-no-changelog.patch b/nixpkgs/pkgs/applications/graphics/geeqie/geeqie-no-changelog.patch
new file mode 100644
index 000000000000..1b8833b135f3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/geeqie/geeqie-no-changelog.patch
@@ -0,0 +1,14 @@
+--- geeqie-1.4.orig/Makefile.am	2017-12-31 07:31:21.000000000 -0500
++++ geeqie-1.4/Makefile.am	2018-01-01 15:05:58.742068166 -0500
+@@ -10,9 +10,9 @@
+ readmedir = @readmedir@
+ 
+ if HAVE_MARKDOWN
+-readme_DATA = README.md COPYING ChangeLog TODO README.lirc AUTHORS README.html ChangeLog.html
++readme_DATA = README.md COPYING TODO README.lirc AUTHORS README.html
+ else
+-readme_DATA = README.md COPYING ChangeLog TODO README.lirc AUTHORS ChangeLog.html
++readme_DATA = README.md COPYING TODO README.lirc AUTHORS
+ endif
+ 
+ desktopdir = $(datadir)/applications
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
new file mode 100644
index 000000000000..4d835e6590ed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchurl, substituteAll, 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
+, python2Packages, libexif, gettext, xorg, glib-networking, libmypaint, gexiv2
+, harfbuzz, mypaint-brushes, libwebp, libheif, libgudev, openexr
+, AppKit, Cocoa, gtk-mac-integration-gtk2, cf-private }:
+
+let
+  inherit (python2Packages) pygtk wrapPython python;
+in stdenv.mkDerivation rec {
+  name = "gimp-${version}";
+  version = "2.10.8";
+
+  src = fetchurl {
+    url = "http://download.gimp.org/pub/gimp/v${stdenv.lib.versions.majorMinor version}/${name}.tar.bz2";
+    sha256 = "16sb4kslwin2jbgdb4nhks78pd0af8mvj8g5hap3hj946p7w2jfq";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool gettext wrapPython ];
+  propagatedBuildInputs = [ gegl ]; # needed by gimp-2.0.pc
+  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 pygtk libexif xorg.libXpm glib-networking libmypaint mypaint-brushes
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    # cf-private is needed to get some things not in swift-corefoundation.
+    # For instance _OBJC_CLASS_$_NSArray is missing.
+    AppKit Cocoa gtk-mac-integration-gtk2 cf-private
+  ] ++ stdenv.lib.optionals stdenv.isLinux [ libgudev ];
+
+  pythonPath = [ pygtk ];
+
+  # 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"
+  '';
+
+  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;
+    })
+  ];
+
+  postFixup = ''
+    wrapPythonProgramsIn $out/lib/gimp/${passthru.majorVersion}/plug-ins/
+    wrapProgram $out/bin/gimp-${stdenv.lib.versions.majorMinor version} \
+      --prefix PYTHONPATH : "$PYTHONPATH" \
+      --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 = "${stdenv.lib.versions.major version}.0";
+    targetPluginDir = "lib/gimp/${majorVersion}/plug-ins";
+    targetScriptDir = "lib/gimp/${majorVersion}/scripts";
+
+    # probably its a good idea to use the same gtk in plugins ?
+    gtk = gtk2;
+  };
+
+  configureFlags = [
+    "--without-webkit" # old version is required
+    "--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
+    "--with-icc-directory=/var/run/current-system/sw/share/color/icc"
+  ];
+
+  # on Darwin,
+  # test-eevl.c:64:36: error: initializer element is not a compile-time constant
+  doCheck = !stdenv.isDarwin;
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
new file mode 100644
index 000000000000..0c753498af34
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -0,0 +1,245 @@
+# install these packages into your profile. Then add
+# ~/.nix-profile/gimp-version-plugins to your plugin list you can find at
+# preferences -> Folders -> Plug-ins
+# same applies for the scripts
+
+{ pkgs, gimp }:
+let
+  inherit (pkgs) stdenv fetchurl pkgconfig intltool glib fetchFromGitHub;
+  inherit (gimp) targetPluginDir targetScriptDir;
+
+  pluginDerivation = a: stdenv.mkDerivation ({
+    prePhases = "extraLib";
+    extraLib = ''
+      installScripts(){
+        mkdir -p $out/${targetScriptDir};
+        for p in "$@"; do cp "$p" $out/${targetScriptDir}; done
+      }
+      installPlugins(){
+        mkdir -p $out/${targetPluginDir};
+        for p in "$@"; do cp "$p" $out/${targetPluginDir}; done
+      }
+    '';
+  }
+  // a
+  // {
+      name = "gimp-plugin-${a.name}";
+      buildInputs = [ gimp gimp.gtk glib ] ++ (a.buildInputs or []);
+      nativeBuildInputs = [ pkgconfig intltool ] ++ (a.nativeBuildInputs or []);
+    }
+  );
+
+  scriptDerivation = {name, src} : pluginDerivation {
+    inherit name; phases = "extraLib installPhase";
+    installPhase = "installScripts ${src}";
+  };
+
+in
+rec {
+  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";
+    };
+    patchPhase = ''
+      sed -e 's,^\(GIMP_PLUGIN_DIR=\).*,\1'"$out/${gimp.name}-plugins", \
+       -e 's,^\(GIMP_DATA_DIR=\).*,\1'"$out/share/${gimp.name}", -i configure
+    '';
+    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.1";
+    buildInputs = with pkgs; [ fftw ];
+    postInstall = "fail";
+    installPhase = "installPlugins fourier";
+    src = fetchurl {
+      url = "http://registry.gimp.org/files/${name}.tar.gz";
+      sha256 = "1pr3y3zl9w8xs1circdrxpr98myz9m8wfzy022al79z4pdanwvs1";
+    };
+  };
+
+  focusblur = pluginDerivation rec {
+    /* menu:
+       Blur/Focus Blur
+    */
+    name = "focusblur-3.2.6";
+    buildInputs = with pkgs; [ fftwSinglePrec ];
+    patches = [ ./patches/focusblur-glib.patch ];
+    postInstall = "fail";
+    installPhase = "installPlugins src/focusblur";
+    src = fetchurl {
+      url = "http://registry.gimp.org/files/${name}.tar.bz2";
+      sha256 = "1gqf3hchz7n7v5kpqkhqh8kwnxbsvlb5cr2w2n7ngrvl56f5xs1h";
+    };
+    meta.broken = true;
+  };
+
+  resynthesizer = pluginDerivation {
+    /* menu:
+      Filters/Map/Resynthesize
+      Filters/Enhance/Smart enlarge
+      Filters/Enhance/Smart sharpen
+      Filters/Enhance/Smart remove selection
+    */
+    name = "resynthesizer-0.16";
+    buildInputs = with pkgs; [ fftw ];
+    src = fetchurl {
+      url = http://www.logarithmic.net/pfh-files/resynthesizer/resynthesizer-0.16.tar.gz;
+      sha256 = "1k90a1jzswxmajn56rdxa4r60v9v34fmqsiwfdxqcvx3yf4yq96x";
+    };
+
+    installPhase = "
+      installPlugins resynth
+      installScripts smart-{enlarge,remove}.scm
+    ";
+  };
+
+  resynthesizer2 = pluginDerivation {
+    /* menu:
+      Filters/Map/Resynthesize
+      Filters/Enhance/Smart enlarge
+      Filters/Enhance/Smart sharpen
+      Filters/Enhance/Smart remove selection
+    */
+    name = "resynthesizer-2.0.1";
+    buildInputs = with pkgs; [ fftw ];
+    nativeBuildInputs = with pkgs; [ autoreconfHook ];
+    makeFlags = "GIMP_LIBDIR=$out/lib/gimp/2.0/";
+    src = fetchFromGitHub {
+      owner = "bootchk";
+      repo = "resynthesizer";
+      rev = "2.0.1";
+      sha256 = "1d214s0jsqxz83l9dd8vhnz3siw9fyw7xdhhir25ra7jiwxc99hd";
+    };
+  };
+
+  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";
+    src = fetchurl {
+      url = http://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 {
+    /* menu:
+       Layer/Liquid Rescale
+    */
+    name = "lqr-plugin-0.6.1";
+    buildInputs = with pkgs; [ liblqr1 ];
+    src = fetchurl {
+      url = http://registry.gimp.org/files/gimp-lqr-plugin-0.6.1.tar.bz2;
+      sha256 = "00hklkpcimcbpjly4rjhfipaw096cpy768g9wixglwrsyqhil7l9";
+    };
+    #postInstall = ''mkdir -p $out/nix-support; echo "${liblqr1}" > "$out/nix-support/propagated-user-env-packages"'';
+    installPhase = "installPlugins src/gimp-lqr-plugin";
+  };
+
+  gmic = pkgs.gmic.gimpPlugin;
+
+  ufraw = pkgs.ufraw.gimpPlugin;
+
+  gimplensfun = pluginDerivation rec {
+    version = "0.2.4";
+    name = "gimplensfun-${version}";
+
+    src = fetchFromGitHub {
+      owner = "seebk";
+      repo = "GIMP-Lensfun";
+      rev = version;
+      sha256 = "0zlmp9v732qmzj083mnk5z421s57mnckmpjhiw890wmmwzj2lhxz";
+    };
+
+    buildInputs = with pkgs; [ lensfun exiv2 ];
+
+    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";
+    };
+  };
+
+  lightning = scriptDerivation {
+    name = "Lightning";
+    src = fetchurl {
+      url = http://registry.gimp.org/files/Lightning.scm;
+      sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49";
+    };
+  };
+
+  /* space in name trouble ?
+
+  rainbowPlasma = scriptDerivation {
+    # http://registry.gimp.org/node/164
+    name = "rainbow-plasma";
+    src = fetchurl {
+      url = "http://registry.gimp.org/files/Rainbow Plasma.scm";
+      sha256 = "34308d4c9441f9e7bafa118af7ec9540f10ea0df75e812e2f3aa3fd7b5344c23";
+      name = "Rainbow-Plasma.scm"; # nix doesn't like spaces, does it?
+    };
+  };
+  */
+
+  /* doesn't seem to be working :-(
+  lightningGate = scriptDerivation {
+    # http://registry.gimp.org/node/153
+    name = "lightning-gate";
+    src = fetchurl {
+      url = http://registry.gimp.org/files/LightningGate.scm;
+      sha256 = "181w1zi9a99kn2mfxjp43wkwcgw5vbb6iqjas7a9mhm8p04csys2";
+    };
+  };
+  */
+
+}
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/plugins/patches/focusblur-glib.patch b/nixpkgs/pkgs/applications/graphics/gimp/plugins/patches/focusblur-glib.patch
new file mode 100644
index 000000000000..b1079ab36604
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/gimp/remove-cc-reference.patch b/nixpkgs/pkgs/applications/graphics/gimp/remove-cc-reference.patch
new file mode 100644
index 000000000000..0d6a87000ccd
--- /dev/null
+++ b/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 12605c6..a9083da 100644
+--- a/app/gimp-version.c
++++ b/app/gimp-version.c
+@@ -203,7 +203,7 @@ gimp_version (gboolean be_verbose,
+       lib_versions = gimp_library_versions (localized);
+       verbose_info = g_strdup_printf ("git-describe: %s\n"
+                                       "C compiler:\n%s\n%s",
+-                                      GIMP_GIT_VERSION, CC_VERSION,
++                                      GIMP_GIT_VERSION, "@cc_version@",
+                                       lib_versions);
+       g_free (lib_versions);
+ 
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
new file mode 100644
index 000000000000..ec529519159b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/gimp/wrapper.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, symlinkJoin, gimp, makeWrapper, gimpPlugins, plugins ? null}:
+
+let
+allPlugins = lib.filter (pkg: builtins.isAttrs pkg && pkg.type == "derivation" && !pkg.meta.broken or false) (lib.attrValues gimpPlugins);
+selectedPlugins = 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" \
+        ${toString extraArgs}
+    done
+    set +x
+    for each in gimp gimp-console; do
+      ln -sf "$each-${versionBranch}" $out/bin/$each
+    done
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/graphics/giv/build.patch b/nixpkgs/pkgs/applications/graphics/giv/build.patch
new file mode 100644
index 000000000000..f57689fd3fa9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/giv/build.patch
@@ -0,0 +1,22 @@
+Get the environment propagated to scons forked childs, and correct the dicom plugin about
+a typedef of size_t that failed at least on x86_64-linux.
+
+diff --git a/SConstruct b/SConstruct
+index 9e752d6..f93f27f 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -9,13 +9,7 @@ else:
+ 
+ commit_id = os.popen('git rev-parse HEAD').read().replace('\n','')
+ 
+-env = Environment(LIBPATH=[],
+-                  CPPFLAGS = cppflags + ['-Wno-deprecated-declarations',
+-                                         '-Wno-reorder',
+-                                         '-Wno-unused-but-set-variable',
+-                                         '-Wno-unused-function'],
+-                  CXXFLAGS=['-std=c++1y']
+-                  )
++env = Environment(ENV = os.environ)
+ 
+ env['SBOX'] = False
+ env['COMMITIDSHORT'] = commit_id[0:6]
diff --git a/nixpkgs/pkgs/applications/graphics/giv/default.nix b/nixpkgs/pkgs/applications/graphics/giv/default.nix
new file mode 100644
index 000000000000..c5eb126cfbf7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/giv/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, gdk_pixbuf, scons, pkgconfig, gtk2, glib
+, pcre, cfitsio, perl, gob2, vala, libtiff, json-glib }:
+
+stdenv.mkDerivation rec {
+  name = "giv-${version}";
+  version = "0.9.26";
+
+  src = fetchFromGitHub {
+    owner = "dov";
+    repo = "giv";
+    rev = "v${version}";
+    sha256 = "1sfm8j3hvqij6z3h8xz724d7hjqqbzljl2a6pp4yjpnnrxksnic2";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  prePatch = ''
+    sed -i s,/usr/bin/perl,${perl}/bin/perl, doc/eperl
+    sed -i s,/usr/local,$out, SConstruct
+  '';
+
+  patches = [ ./build.patch ];
+
+  nativeBuildInputs = [ scons pkgconfig vala perl gob2 ];
+  buildInputs = [ gdk_pixbuf gtk2 glib pcre cfitsio libtiff json-glib ];
+
+  meta = with stdenv.lib; {
+    description = "Cross platform image and hierarchical vector viewer based";
+    homepage = http://giv.sourceforge.net/giv/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/glabels/default.nix b/nixpkgs/pkgs/applications/graphics/glabels/default.nix
new file mode 100644
index 000000000000..cf4ecf15523a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/glabels/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, barcode, gnome3, autoreconfHook
+, gtk3, gtk-doc, libxml2, librsvg , libtool, libe-book
+, intltool, itstool, makeWrapper, pkgconfig, hicolor-icon-theme
+}:
+
+stdenv.mkDerivation rec {
+  name = "glabels-${version}";
+  version = "3.4.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/glabels/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig makeWrapper intltool ];
+  buildInputs = [
+    barcode gtk3 gtk-doc gnome3.yelp-tools
+    gnome3.gnome-common gnome3.gsettings-desktop-schemas
+    itstool libxml2 librsvg libe-book libtool
+    hicolor-icon-theme
+  ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/glabels-3" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  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/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix b/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix
new file mode 100644
index 000000000000..b3671ead377a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/gnuclad/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, lib, fetchurl, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  name = "gnuclad-${version}";
+  version = "0.2.4";
+
+  src = fetchurl {
+    url = "https://launchpad.net/gnuclad/trunk/${lib.versions.majorMinor version}/+download/${name}.tar.gz";
+    sha256 = "0ka2kscpjff7gflsargv3r9fdaxhkf3nym9mfaln3pnq6q7fwdki";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  meta = with stdenv.lib; {
+    homepage = https://launchpad.net/gnuclad;
+    description = "gnuclad tries to help the environment by creating trees.  It's 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/nixpkgs/pkgs/applications/graphics/gocr/default.nix b/nixpkgs/pkgs/applications/graphics/gocr/default.nix
new file mode 100644
index 000000000000..f5fa8ca9221d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/goxel/default.nix b/nixpkgs/pkgs/applications/graphics/goxel/default.nix
new file mode 100644
index 000000000000..27dd37d1803a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/goxel/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, scons, pkgconfig, wrapGAppsHook
+, glfw3, gtk3, libpng12 }:
+
+stdenv.mkDerivation rec {
+  name = "goxel-${version}";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "guillaumechereau";
+    repo = "goxel";
+    rev = "v${version}";
+    sha256 = "0g6jkihjmsx6lyfl301qrq26gwvq89sk7xkkba6vrpklfs2jafkb";
+  };
+
+  patches = [ ./disable-imgui_ini.patch ];
+
+  nativeBuildInputs = [ scons pkgconfig wrapGAppsHook ];
+  buildInputs = [ glfw3 gtk3 libpng12 ];
+
+  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 = [ "x86_64-linux" ]; # see https://github.com/guillaumechereau/goxel/issues/125
+    maintainers = with maintainers; [ tilpner ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/goxel/disable-imgui_ini.patch b/nixpkgs/pkgs/applications/graphics/goxel/disable-imgui_ini.patch
new file mode 100644
index 000000000000..9427d45487d4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/gpicview/default.nix b/nixpkgs/pkgs/applications/graphics/gpicview/default.nix
new file mode 100644
index 000000000000..86867cd1cca7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/gqview/default.nix b/nixpkgs/pkgs/applications/graphics/gqview/default.nix
new file mode 100644
index 000000000000..75140bd005d5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/gqview/default.nix
@@ -0,0 +1,27 @@
+{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" ];
+
+  meta = with stdenv.lib; {
+    description = "A fast image viewer";
+    homepage = http://gqview.sourceforge.net;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/grafx2/default.nix b/nixpkgs/pkgs/applications/graphics/grafx2/default.nix
new file mode 100644
index 000000000000..b1580d73b641
--- /dev/null
+++ b/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";
+  name = "grafx2-${version}";
+
+  src = fetchurl {
+    url = "https://grafx2.googlecode.com/files/${name}-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/nixpkgs/pkgs/applications/graphics/graphicsmagick/compat.nix b/nixpkgs/pkgs/applications/graphics/graphicsmagick/compat.nix
new file mode 100644
index 000000000000..bd1ce2ed893a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/graphicsmagick/compat.nix
@@ -0,0 +1,37 @@
+{ stdenv, graphicsmagick }:
+
+stdenv.mkDerivation rec {
+  name = "graphicsmagick-imagemagick-compat-${version}";
+  inherit (graphicsmagick) version;
+
+  unpackPhase = "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/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix b/nixpkgs/pkgs/applications/graphics/graphicsmagick/default.nix
new file mode 100644
index 000000000000..c93b4fe958d5
--- /dev/null
+++ b/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 {
+  name = "graphicsmagick-${version}";
+  version = "1.3.31";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
+    sha256 = "0y22740f25qxsqqqg26xqlfp920dm57b7hrgaqmx7azksrcvnsq9";
+  };
+
+  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
+    ]
+    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  nativeBuildInputs = [ xz ];
+
+  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/nixpkgs/pkgs/applications/graphics/graphicsmagick/disable-popen.patch b/nixpkgs/pkgs/applications/graphics/graphicsmagick/disable-popen.patch
new file mode 100644
index 000000000000..2cdb1f7e90f7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/gthumb/default.nix b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
new file mode 100644
index 000000000000..e8f831a21c20
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
@@ -0,0 +1,48 @@
+{ stdenv,  fetchurl, gnome3, itstool, libxml2, pkgconfig, intltool,
+  exiv2, libjpeg, libtiff, gst_all_1, libraw, libsoup, libsecret,
+  libchamplain, librsvg, libwebp, json-glib, webkitgtk, lcms2, bison,
+  flex, wrapGAppsHook, shared-mime-info }:
+
+let
+  pname = "gthumb";
+  version = "3.6.2";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0rjb0bsjhn7nyl5jyjgrypvr6qdr9dc2g586j3lzan96a2vnpgy9";
+  };
+
+  nativeBuildInputs = [ itstool libxml2 intltool pkgconfig bison flex wrapGAppsHook ];
+
+  buildInputs = with gnome3; [
+    glib gtk gsettings-desktop-schemas gst_all_1.gstreamer gst_all_1.gst-plugins-base
+    exiv2 libjpeg libtiff libraw libsoup libsecret libchamplain
+    librsvg libwebp json-glib webkitgtk lcms2 defaultIconTheme
+  ];
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--enable-libchamplain"
+  ];
+
+  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.gpl2;
+    maintainers = [ maintainers.mimadrid ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/guetzli/default.nix b/nixpkgs/pkgs/applications/graphics/guetzli/default.nix
new file mode 100644
index 000000000000..061dc2b69a61
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/guetzli/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, libpng, fetchFromGitHub, pkgconfig }:
+let
+  version = "1.0.1";
+in
+stdenv.mkDerivation {
+  name = "guetzli-${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/nixpkgs/pkgs/applications/graphics/hugin/default.nix b/nixpkgs/pkgs/applications/graphics/hugin/default.nix
new file mode 100644
index 000000000000..1c5b8d1b81dd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/hugin/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, cmake, fetchurl, gnumake, makeWrapper, pkgconfig
+, autopanosiftc, boost, cairo, enblend-enfuse, exiv2, fftw, flann, gettext
+, glew, ilmbase, lcms2, lensfun, libjpeg, libpng, libtiff, libX11, libXi
+, libXmu, libGLU_combined, openexr, panotools, perlPackages, sqlite, vigra, wxGTK, zlib
+}:
+
+stdenv.mkDerivation rec {
+  name = "hugin-2018.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/hugin/${name}.tar.bz2";
+    sha256 = "1jv5wpqbq49fhbl5g521g1qxhdm1rm7acxd18fr3n3n5d830vbyk";
+  };
+
+  buildInputs = [
+    boost cairo exiv2 fftw flann gettext glew ilmbase lcms2 lensfun libjpeg
+    libpng libtiff libX11 libXi libXmu libGLU_combined 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/nixpkgs/pkgs/applications/graphics/imagej/default.nix b/nixpkgs/pkgs/applications/graphics/imagej/default.nix
new file mode 100644
index 000000000000..0bbd543a3076
--- /dev/null
+++ b/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 rec {
+    name = "imagej-${version}";
+    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/nixpkgs/pkgs/applications/graphics/imgcat/default.nix b/nixpkgs/pkgs/applications/graphics/imgcat/default.nix
new file mode 100644
index 000000000000..a98029dd5807
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/imgcat/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "imgcat-${version}";
+  version = "2.3.0";
+
+  buildInputs = [ autoconf automake libtool ncurses ];
+
+  preConfigure = ''
+    ${autoconf}/bin/autoconf
+    sed -i -e "s|-ltermcap|-L ${ncurses}/lib -lncurses|" Makefile
+  '';
+
+  preInstall = ''
+    makeFlagsArray=(PREFIX="$out");
+  '';
+
+  src = fetchFromGitHub {
+    owner = "eddieantonio";
+    repo = "imgcat";
+    rev = "3d854c72f785dce0eecd9485767a7f972d54890c";
+    sha256 = "0m83c33rzxvs0w214njql2c7q3fg06wnyijch3l2s88i7frl121f";
+  };
+
+  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/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix b/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix
new file mode 100644
index 000000000000..a881c0fc1f93
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/imlibsetroot/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libX11, libXinerama, imlib2 }:
+
+stdenv.mkDerivation rec {
+  name = "imlibsetroot-${version}";
+  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; [ lucas8 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/imv/default.nix b/nixpkgs/pkgs/applications/graphics/imv/default.nix
new file mode 100644
index 000000000000..cdbf5f446875
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/imv/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, SDL2, SDL2_ttf
+, freeimage, fontconfig, pkgconfig
+, asciidoc, docbook_xsl, libxslt, cmocka
+}:
+
+stdenv.mkDerivation rec {
+  name = "imv-${version}";
+  version = "3.0.0";
+
+  src = fetchFromGitHub {
+    owner  = "eXeC64";
+    repo   = "imv";
+    rev    = "v${version}";
+    sha256 = "0j5aykdkm1g518ism5y5flhwxvjvl92ksq989fhl2wpnv0la82jp";
+  };
+
+  buildInputs = [
+    SDL2 SDL2_ttf freeimage fontconfig pkgconfig
+    asciidoc docbook_xsl libxslt cmocka
+  ];
+
+  installFlags = [ "PREFIX=$(out)" "CONFIGPREFIX=$(out)/etc" ];
+
+  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 ];
+    platforms   = [ "i686-linux" "x86_64-linux" ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/default.nix b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
new file mode 100644
index 000000000000..25095f04d019
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, pkgconfig, perlPackages, libXft
+, libpng, zlib, popt, boehmgc, libxml2, libxslt, glib, gtkmm2
+, glibmm, libsigcxx, lcms, boost, gettext, makeWrapper
+, gsl, python2, poppler, imagemagick, libwpg, librevenge
+, libvisio, libcdr, libexif, potrace, cmake, hicolor-icon-theme
+}:
+
+let
+  python2Env = python2.withPackages(ps: with ps;
+    [ numpy lxml scour ]);
+in
+
+stdenv.mkDerivation rec {
+  name = "inkscape-0.92.3";
+
+  src = fetchurl {
+    url = "https://media.inkscape.org/dl/resources/file/${name}.tar.bz2";
+    sha256 = "1chng2yw8dsjxc9gf92aqv7plj11cav8ax321wmakmv5bb09cch6";
+  };
+
+  # 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;
+
+  unpackPhase = ''
+    cp $src ${name}.tar.bz2
+    tar xvjf ${name}.tar.bz2 > /dev/null
+    cd ${name}
+  '';
+
+  postPatch = ''
+    patchShebangs share/extensions
+    patchShebangs fix-roff-punct
+
+    # Python is used at run-time to execute scripts, e.g., those from
+    # the "Effects" menu.
+    substituteInPlace src/extension/implementation/script.cpp \
+      --replace '"python-interpreter", "python"' '"python-interpreter", "${python2Env}/bin/python"'
+  '';
+
+  nativeBuildInputs = [ pkgconfig cmake makeWrapper python2Env ]
+    ++ (with perlPackages; [ perl XMLParser ]);
+  buildInputs = [
+    libXft libpng zlib popt boehmgc
+    libxml2 libxslt glib gtkmm2 glibmm libsigcxx lcms boost gettext
+    gsl poppler imagemagick libwpg librevenge
+    libvisio libcdr libexif potrace hicolor-icon-theme
+
+    python2Env perlPackages.perl
+  ];
+
+  enableParallelBuilding = true;
+
+  # 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
+  '';
+
+  # 0.92.3 complains about an invalid conversion from const char * to char *
+  NIX_CFLAGS_COMPILE = " -fpermissive ";
+
+  meta = with stdenv.lib; {
+    license = "GPL";
+    homepage = https://www.inkscape.org;
+    description = "Vector graphics editor";
+    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/nixpkgs/pkgs/applications/graphics/ipe/default.nix b/nixpkgs/pkgs/applications/graphics/ipe/default.nix
new file mode 100644
index 000000000000..dbd209a57a2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/ipe/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, zlib, freetype, cairo, lua5, texlive, ghostscript
+, libjpeg, qtbase
+}:
+
+stdenv.mkDerivation rec {
+  name = "ipe-7.2.7";
+
+  src = fetchurl {
+    url = "https://dl.bintray.com/otfried/generic/ipe/7.2/${name}-src.tar.gz";
+    sha256 = "08lzqhagvr8l69hxghyw9akf5dixbily7hj2gxhzzrp334k3yvfn";
+  };
+
+  # changes taken from Gentoo portage
+  preConfigure = ''
+    cd src
+    sed -i \
+      -e 's/fpic/fPIC/' \
+      -e 's/moc-qt4/moc/' \
+      config.mak || die
+    sed -i -e 's/install -s/install/' common.mak || die
+  '';
+
+  NIX_CFLAGS_COMPILE = [ "-std=c++11" ]; # build with Qt 5.7
+
+  IPEPREFIX="$$out";
+  URWFONTDIR="${texlive}/texmf-dist/fonts/type1/urw/";
+  LUA_PACKAGE = "lua";
+
+  buildInputs = [
+    libjpeg zlib qtbase freetype cairo lua5 texlive ghostscript
+  ];
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+
+  postFixup = ''
+    for prog in $out/bin/*; do
+      wrapProgram "$prog" --prefix PATH : "${texlive}/bin"
+    done
+  '';
+
+  patches = [ ./xlocale.patch ];
+
+  #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/nixpkgs/pkgs/applications/graphics/ipe/xlocale.patch b/nixpkgs/pkgs/applications/graphics/ipe/xlocale.patch
new file mode 100644
index 000000000000..b440831d81b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/ipe/xlocale.patch
@@ -0,0 +1,10 @@
+--- ipe-7.2.7/src/ipelib/ipeplatform.cpp     2016-12-09 15:09:04.000000000 +0100
++++ ipe-7.2.7/src/ipelib/ipeplatform.cpp     2017-11-23 17:13:11.152395834 +0100
+@@ -38,7 +38,6 @@
+ #include <gdiplus.h>
+ #else
+ #include <sys/wait.h>
+-#include <xlocale.h>
+ #include <dirent.h>
+ #endif
+ #ifdef __APPLE__
diff --git a/nixpkgs/pkgs/applications/graphics/jbrout/default.nix b/nixpkgs/pkgs/applications/graphics/jbrout/default.nix
new file mode 100644
index 000000000000..9c81fe32b513
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/jbrout/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchsvn, pythonPackages, makeWrapper, fbida, which }:
+
+let
+  inherit (pythonPackages) python;
+in pythonPackages.buildPythonApplication rec {
+  name = "jbrout-${version}";
+  version = "338";
+
+  src = fetchsvn {
+    url = "http://jbrout.googlecode.com/svn/trunk";
+    rev = version;
+    sha256 = "0257ni4vkxgd0qhs73fw5ppw1qpf11j8fgwsqc03b1k1yv3hk4hf";
+  };
+
+  doCheck = false;
+
+  # XXX: patchPhase to avoid this
+  #  File "/nix/store/vnyjxn6h3rbrn49m25yyw7i1chlxglhw-python-2.7.1/lib/python2.7/zipfile.py", line 348, in FileHeader
+  #    len(filename), len(extra))
+  #struct.error: ushort format requires 0 <= number <= USHRT_MAX
+  patchPhase = ''
+    find | xargs touch
+
+    substituteInPlace setup.py --replace "version=__version__" "version=baseVersion"
+  '';
+
+  postInstall = ''
+    mkdir $out/bin
+    echo "python $out/${python.sitePackages}/jbrout/jbrout.py" > $out/bin/jbrout
+    chmod +x $out/bin/jbrout
+  '';
+
+  buildInputs = [ python makeWrapper which ];
+  propagatedBuildInputs = with pythonPackages; [ pillow lxml pyGtkGlade pyexiv2 fbida ];
+
+  meta = {
+    homepage = http://manatlan.com/jbrout/;
+    description = "Photo manager";
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/jpeginfo/default.nix b/nixpkgs/pkgs/applications/graphics/jpeginfo/default.nix
new file mode 100644
index 000000000000..f438bf6f7ed8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/jpeginfo/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, libjpeg }:
+
+stdenv.mkDerivation rec {
+  name = "jpeginfo-${version}";
+  version = "1.6.1";
+
+  src = fetchurl {
+    url = "https://www.kokkonen.net/tjko/src/${name}.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/nixpkgs/pkgs/applications/graphics/jpegoptim/default.nix b/nixpkgs/pkgs/applications/graphics/jpegoptim/default.nix
new file mode 100644
index 000000000000..ba64aae62159
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/jpegoptim/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, libjpeg }:
+
+stdenv.mkDerivation rec {
+  version = "1.4.6";
+  name = "jpegoptim-${version}";
+
+  src = fetchurl {
+    url = "https://www.kokkonen.net/tjko/src/${name}.tar.gz";
+    sha256 = "1dss7907fclfl8zsw0bl4qcw0hhz6fqgi3867w0jyfm3q9jfpcc8";
+  };
+
+  # There are no checks, it seems.
+  doCheck = false;
+
+  buildInputs = [ libjpeg ];
+
+  meta = with stdenv.lib; {
+    description = "Optimize JPEG files";
+    homepage = http://www.kokkonen.net/tjko/projects.html ;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.aristid ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/jpegrescan/default.nix b/nixpkgs/pkgs/applications/graphics/jpegrescan/default.nix
new file mode 100644
index 000000000000..1c65c7da3a28
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/k3d/default.nix b/nixpkgs/pkgs/applications/graphics/k3d/default.nix
new file mode 100644
index 000000000000..301dc902dce9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/k3d/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, fetchpatch, ftgl, glew, asciidoc
+, cmake, ninja, libGLU_combined, zlib, python, expat, libxml2, libsigcxx, libuuid, freetype
+, libpng, boost, doxygen, cairomm, pkgconfig, imagemagick, libjpeg, libtiff
+, gettext, intltool, perl, gtkmm2, glibmm, gtkglext, pangox_compat, libXmu }:
+
+stdenv.mkDerivation rec {
+  version = "0.8.0.6";
+  name = "k3d-${version}";
+  src = fetchFromGitHub {
+    owner = "K-3D";
+    repo = "k3d";
+    rev = name;
+    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_combined zlib python expat libxml2 libsigcxx libuuid freetype libpng
+     boost cairomm imagemagick libjpeg libtiff
+     ftgl glew gtkmm2 glibmm gtkglext pangox_compat 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/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix b/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix
new file mode 100644
index 000000000000..e70fafa24b60
--- /dev/null
+++ b/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 {
+  name = "kgraphviewer-${version}";
+  version = "2.4.3";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/kgraphviewer/${version}/${name}.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/nixpkgs/pkgs/applications/graphics/kipi-plugins/default.nix b/nixpkgs/pkgs/applications/graphics/kipi-plugins/default.nix
new file mode 100644
index 000000000000..f7faba7c41a5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/kipi-plugins/default.nix
@@ -0,0 +1,34 @@
+{
+  stdenv, fetchurl,
+  extra-cmake-modules,
+  karchive, kconfig, ki18n, kiconthemes, kio, kservice, kwindowsystem, kxmlgui,
+  libkipi, qtbase, qtsvg, qtxmlpatterns
+}:
+
+stdenv.mkDerivation rec {
+  name    = "kipi-plugins-${version}";
+  version = "5.9.0";
+
+  src = fetchurl {
+    url = "http://download.kde.org/stable/digikam/digikam-${version}.tar.xz";
+    sha256 = "06qdalf2mwx2f43p3bljy3vn5bk8n3x539kha6ky2vzxvkp343b6";
+  };
+
+  prePatch = ''
+    cd extra/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 = stdenv.lib.licenses.gpl2;
+    homepage = https://www.digikam.org;
+    maintainers = with stdenv.lib.maintainers; [ ttuegel ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/krita/default.nix b/nixpkgs/pkgs/applications/graphics/krita/default.nix
new file mode 100644
index 000000000000..ce2bdcbd298c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/krita/default.nix
@@ -0,0 +1,40 @@
+{ mkDerivation, lib, stdenv, 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
+, python3
+}:
+
+mkDerivation rec {
+  name = "krita-${version}";
+  version = "4.1.5";
+
+  src = fetchurl {
+    url = "https://download.kde.org/stable/krita/${version}/${name}.tar.gz";
+    sha256 = "1by8p8ifdp03f05bhg8ygdd1j036anfpjjnzbx63l2fbmy9k6q10";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  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
+    python3
+  ] ++ lib.optional (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) vc;
+
+  NIX_CFLAGS_COMPILE = [ "-I${ilmbase.dev}/include/OpenEXR" ];
+
+  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/nixpkgs/pkgs/applications/graphics/krop/default.nix b/nixpkgs/pkgs/applications/graphics/krop/default.nix
new file mode 100644
index 000000000000..c4c889cdba52
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/krop/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, python3Packages, libsForQt5, ghostscript }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "krop";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "arminstraub";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0b1zqpks4vzq7sfhf7r9qrshr77f1ncj18x7d0fa3g29rxa42dcr";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    pyqt5
+    pypdf2
+    poppler-qt5
+    libsForQt5.poppler
+    ghostscript
+  ];
+
+  # 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/nixpkgs/pkgs/applications/graphics/ktikz/default.nix b/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
new file mode 100644
index 000000000000..4b3a423a8ce2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchFromGitHub, gettext, poppler, qt5 , pkgconfig }:
+
+# Warning: You will also need a working pdflatex installation containing
+# at least auctex and pgf.
+
+# 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 = "unstable-20161122";
+  name = "qtikz-${version}";
+
+  src = fetchFromGitHub {
+    owner = "fhackenberger";
+    repo = "ktikz";
+    rev = "be66c8b1ff7e6b791b65af65e83c4926f307cf5a";
+    sha256 = "15jx53sjlnky4yg3ry1i1c29g28v1jbbvhbz66h7a49pfxa40fj3";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Editor for the TikZ language";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.layus ];
+  };
+
+  conf = ''
+    # installation prefix:
+    PREFIX = @out@
+
+    # install desktop file here (*nix only):
+    DESKTOP_INSTALL_DIR = @out@/share/applications
+
+    # install mimetype here:
+    MIME_INSTALL_DIR = @out@/share/mime/packages
+
+    # install doc here:
+    MAN_INSTALL_DIR = @out@/share/man
+
+    CONFIG -= debug
+    CONFIG += release
+
+    # qmake command:
+    QMAKECOMMAND = qmake
+    # lrelease command:
+    LRELEASECOMMAND = lrelease
+    # qcollectiongenerator command:
+    #QCOLLECTIONGENERATORCOMMAND = qcollectiongenerator
+
+    # TikZ documentation default file path:
+    TIKZ_DOCUMENTATION_DEFAULT = @out@/share/doc/texmf/pgf/pgfmanual.pdf.gz
+  '';
+
+  # 1. Configuration is done by overwriting qtikzconfig.pri
+  # 2. Recent Qt removed QString::fromAscii in favor of QString::fromLatin1
+  patchPhase = ''
+    echo "$conf" | sed "s!@out@!$out!g" > qmake/qtikzconfig.pri
+    find -name "*.cpp" -exec sed -i s/fromAscii/fromLatin1/g "{}" \;
+  '';
+
+  configurePhase = ''
+      qmake PREFIX="$out" ./qtikz.pro
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gettext qt5.full poppler ];
+
+  enableParallelBuilding = true;
+}
diff --git a/nixpkgs/pkgs/applications/graphics/leocad/default.nix b/nixpkgs/pkgs/applications/graphics/leocad/default.nix
new file mode 100644
index 000000000000..ada55f0351e1
--- /dev/null
+++ b/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 {
+  name = "leocad-${version}";
+  version = "18.02";
+
+  src = fetchFromGitHub {
+    owner = "leozide";
+    repo = "leocad";
+    rev = "v${version}";
+    sha256 = "0rb4kjyrr9ry85cfpbk52l19vvwn7lrh2kmj2lwq531smnygn5m3";
+  };
+
+  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/nixpkgs/pkgs/applications/graphics/luminance-hdr/default.nix b/nixpkgs/pkgs/applications/graphics/luminance-hdr/default.nix
new file mode 100644
index 000000000000..867c0a558382
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/luminance-hdr/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, cmake, fetchurl, pkgconfig, boost, exiv2, fftwFloat, gsl
+, ilmbase, lcms2, libraw, libtiff, openexr
+, qtbase, qtdeclarative, qttools, qtwebengine
+}:
+
+stdenv.mkDerivation rec {
+  name = "luminance-hdr-2.5.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/qtpfsgui/${name}.tar.bz2";
+    sha256 = "15hnyk9yjkkc97dmnrg2ipfgwqxprlcyv2kyvbls4d54zc56x658";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
+
+  buildInputs =
+    [
+      qtbase qtdeclarative qttools qtwebengine
+      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/nixpkgs/pkgs/applications/graphics/mcomix/default.nix b/nixpkgs/pkgs/applications/graphics/mcomix/default.nix
new file mode 100644
index 000000000000..eea0e501cb8e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/mcomix/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, python27Packages }:
+
+python27Packages.buildPythonApplication rec {
+    name = "mcomix-${version}";
+    version = "1.2.1";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/mcomix/${name}.tar.bz2";
+      sha256 = "0fzsf9pklhfs1rzwzj64c0v30b74nk94p93h371rpg45qnfiahvy";
+    };
+
+    propagatedBuildInputs = with python27Packages; [ pygtk pillow ];
+
+    doCheck = false;
+
+    meta = {
+      description = "Image viewer designed to handle comic books";
+      longDescription = ''
+        MComix is an user-friendly, customizable image viewer. It is specifically
+        designed to handle comic books, but also serves as a generic viewer.
+        It reads images in ZIP, RAR, 7Zip or tar archives as well as plain image
+        files. It is written in Python and uses GTK+ through the PyGTK bindings,
+        and runs on both Linux and Windows.
+
+        MComix is a fork of the Comix project, and aims to add bug fixes and
+        stability improvements after Comix development came to a halt in late 2009.
+      '';
+      homepage = http://mcomix.sourceforge.net/;
+      license = stdenv.lib.licenses.gpl2;
+      maintainers = with stdenv.lib.maintainers; [ fuuzetsu AndersonTorres ];
+    };
+}
+# TODO:
+# - error in check phase
diff --git a/nixpkgs/pkgs/applications/graphics/meh/default.nix b/nixpkgs/pkgs/applications/graphics/meh/default.nix
new file mode 100644
index 000000000000..c25c1277ee0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/meh/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libX11, libXext, libjpeg, libpng, giflib }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/graphics/meme/default.nix b/nixpkgs/pkgs/applications/graphics/meme/default.nix
new file mode 100644
index 000000000000..2fddc39e0d07
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/meme/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "meme-unstable-${version}";
+  version = "2017-09-10";
+
+  owner = "nomad-software";
+  repo = "meme";
+  goPackagePath = "github.com/${owner}/${repo}";
+
+  src = fetchFromGitHub {
+    inherit owner repo;
+    rev = "a6521f2eecb0aac22937b0013747ed9cb40b81ea";
+    sha256 = "1gbsv1d58ck6mj89q31s5b0ppw51ab76yqgz39jgwqnkidvzdfly";
+  };
+
+  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/nixpkgs/pkgs/applications/graphics/meshlab/default.nix b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
new file mode 100644
index 000000000000..bd5dea8014d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
@@ -0,0 +1,69 @@
+{ fetchFromGitHub, libGLU, llvmPackages, qtbase, qtscript, qtxmlpatterns }:
+
+let
+  meshlabRev = "d596d7c086c51fbdfb56050f9c30b55dd0286d4c";
+  vcglibRev = "6c3c940e34327322507c703889f9f1cfa73ab183";
+  # ^ this should be the latest commit in the vcglib devel branch at the time of the meshlab revision
+
+  stdenv = llvmPackages.stdenv; # only building with clang seems to be tested upstream
+in stdenv.mkDerivation {
+  name = "meshlab-20180627-beta";
+
+  srcs =
+    [
+      (fetchFromGitHub {
+        owner = "cnr-isti-vclab";
+        repo = "meshlab";
+        rev = meshlabRev;
+        sha256 = "0xi7wiyy0yi545l5qvccbqahlcsf70mhx829gf7bq29640si4rax";
+        name = "meshlab-${meshlabRev}";
+      })
+      (fetchFromGitHub {
+        owner = "cnr-isti-vclab";
+        repo = "vcglib";
+        rev = vcglibRev;
+        sha256 = "0jfgjvf21y9ncmyr7caipy3ardhig7hh9z8miy885c99b925hhwd";
+        name = "vcglib-${vcglibRev}";
+      })
+    ];
+
+  sourceRoot = "meshlab-${meshlabRev}";
+
+  hardeningDisable = [ "format" ];
+  enableParallelBuilding = true;
+
+  patches = [ ./fix-20180627-beta.patch ];
+
+  buildPhase = ''
+    # MeshLab has ../vcglib hardcoded everywhere, so move the source dir
+    mv ../vcglib-${vcglibRev} ../vcglib
+
+    cd src
+    export NIX_LDFLAGS="-rpath $out/opt/meshlab $NIX_LDFLAGS"
+    export QMAKESPEC="linux-clang"
+
+    pushd external
+    qmake -recursive external.pro
+    buildPhase
+    popd
+    qmake -recursive meshlab_full.pro
+    buildPhase
+  '';
+
+  installPhase = ''
+    mkdir -p $out/opt/meshlab $out/bin
+    cp -Rv distrib/* $out/opt/meshlab
+    ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
+    ln -s $out/opt/meshlab/meshlabserver $out/bin/meshlabserver
+  '';
+
+  buildInputs = [ libGLU llvmPackages.openmp qtbase qtscript qtxmlpatterns ];
+
+  meta = {
+    description = "A system for processing and editing 3D triangular meshes.";
+    homepage = http://www.meshlab.net/;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/meshlab/fix-20180627-beta.patch b/nixpkgs/pkgs/applications/graphics/meshlab/fix-20180627-beta.patch
new file mode 100644
index 000000000000..177b8e90c574
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/meshlab/fix-20180627-beta.patch
@@ -0,0 +1,25 @@
+diff --git a/src/meshlabplugins/edit_paint/paintbox.cpp b/src/meshlabplugins/edit_paint/paintbox.cpp
+index 2097a5b..6bcd1a4 100644
+--- a/src/meshlabplugins/edit_paint/paintbox.cpp
++++ b/src/meshlabplugins/edit_paint/paintbox.cpp
+@@ -23,6 +23,7 @@
+ 
+ #include "paintbox.h"
+ #include <QFileDialog>
++#include <QAction>
+ 
+ Paintbox::Paintbox(QWidget * parent, Qt::WindowFlags flags) : QWidget(parent, flags)
+ {
+diff --git a/src/meshlabplugins/render_gdp/shaderDialog.h b/src/meshlabplugins/render_gdp/shaderDialog.h
+index a62d3b5..7eb1594 100644
+--- a/src/meshlabplugins/render_gdp/shaderDialog.h
++++ b/src/meshlabplugins/render_gdp/shaderDialog.h
+@@ -32,6 +32,8 @@
+ #include "shaderStructs.h"
+ #include "ui_shaderDialog.h"
+ #include <QMap>
++#include <QSlider>
++#include <QLineEdit>
+ 
+ class QGLWidget;
+ 
diff --git a/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix b/nixpkgs/pkgs/applications/graphics/minidjvu/default.nix
new file mode 100644
index 000000000000..d629c776194d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/mirage/default.nix b/nixpkgs/pkgs/applications/graphics/mirage/default.nix
new file mode 100644
index 000000000000..515b834b41ea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/mirage/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pythonPackages, libX11, gettext }:
+
+pythonPackages.buildPythonApplication rec {
+    name = "mirage-${version}";
+    version = "0.9.5.2";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/mirageiv/${name}.tar.bz2";
+      sha256 = "d214a1b6d99d1d1e83da5848a2cef181f6781e0990e93f7ebff5880b0c43f43c";
+    };
+
+    doCheck = false;
+
+    buildInputs = [ stdenv libX11 gettext ];
+
+    patchPhase = ''
+      sed -i "s@/usr/local/share/locale@$out/share/locale@" mirage.py
+    '';
+
+    propagatedBuildInputs = with pythonPackages; [ pygtk pillow ];
+
+    meta = {
+      description = "Simple image viewer written in PyGTK";
+
+      homepage = http://mirageiv.sourceforge.net/;
+
+      license = stdenv.lib.licenses.gpl2;
+    };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/mozjpeg/default.nix b/nixpkgs/pkgs/applications/graphics/mozjpeg/default.nix
new file mode 100644
index 000000000000..b48fd891a6ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/mozjpeg/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libpng, nasm }:
+
+stdenv.mkDerivation rec {
+  version = "3.3.1";
+  name = "mozjpeg-${version}";
+
+  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/nixpkgs/pkgs/applications/graphics/mtpaint/default.nix b/nixpkgs/pkgs/applications/graphics/mtpaint/default.nix
new file mode 100644
index 000000000000..8a2a218d9891
--- /dev/null
+++ b/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+1/2 painting program";
+    longDescription = ''
+      mtPaint is a simple GTK+1/2 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/nixpkgs/pkgs/applications/graphics/mypaint/default.nix b/nixpkgs/pkgs/applications/graphics/mypaint/default.nix
new file mode 100644
index 000000000000..36c7e7e2fb30
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/mypaint/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, gtk3, intltool, json_c, lcms2, libpng, librsvg, gobject-introspection, hicolor-icon-theme
+, gdk_pixbuf, pkgconfig, python2Packages, scons, swig, wrapGAppsHook }:
+
+let
+  inherit (python2Packages) python pycairo pygobject3 numpy;
+in stdenv.mkDerivation rec {
+  name = "mypaint-${version}";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "mypaint";
+    repo = "mypaint";
+    rev = "bcf5a28d38bbd586cc9d4cee223f849fa303864f";
+    sha256 = "1zwx7n629vz1jcrqjqmw6vl6sxdf81fq6a5jzqiga8167gg8s9pf";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    intltool pkgconfig scons swig wrapGAppsHook
+    gobject-introspection # for setup hook
+  ];
+
+  buildInputs = [
+    gtk3 gdk_pixbuf json_c lcms2 libpng librsvg pycairo pygobject3 python hicolor-icon-theme
+  ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  postInstall = ''
+    sed -i -e 's|/usr/bin/env python2.7|${python}/bin/python|' $out/bin/mypaint
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix PYTHONPATH : $PYTHONPATH)
+  '';
+
+  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/nixpkgs/pkgs/applications/graphics/nomacs/default.nix b/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
new file mode 100644
index 000000000000..05d047f72275
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, wrapGAppsHook
+, gsettings-desktop-schemas
+
+, qtbase
+, qttools
+, qtsvg
+
+, exiv2
+, opencv
+, libraw
+, libtiff
+, quazip
+}:
+
+stdenv.mkDerivation rec {
+  version = "3.10.2";
+  src = fetchFromGitHub {
+    owner = "nomacs";
+    repo = "nomacs";
+    rev = version;
+    sha256 = "0v2gsdc8caswf2b5aa023d8kil1fqf4r9mlg15180h3c92f8jzvh";
+  };
+
+  name = "nomacs-${version}";
+
+  enableParallelBuilding = true;
+
+  setSourceRoot = ''
+    sourceRoot=$(echo */ImageLounge)
+  '';
+
+  nativeBuildInputs = [cmake
+                       pkgconfig
+                       wrapGAppsHook];
+
+  buildInputs = [qtbase
+                 qttools
+                 qtsvg
+                 exiv2
+                 opencv
+                 libraw
+                 libtiff
+                 quazip
+                 gsettings-desktop-schemas];
+
+  cmakeFlags = ["-DENABLE_OPENCV=ON"
+                "-DENABLE_RAW=ON"
+                "-DENABLE_TIFF=ON"
+                "-DENABLE_QUAZIP=ON"
+                "-DUSE_SYSTEM_QUAZIP=ON"];
+
+  meta = with stdenv.lib; {
+    homepage = https://nomacs.org;
+    description = "Qt-based image viewer";
+    maintainers = [maintainers.ahmedtd];
+    license = licenses.gpl3Plus;
+    repositories.git = https://github.com/nomacs/nomacs.git;
+    inherit (qtbase.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/ocrad/default.nix b/nixpkgs/pkgs/applications/graphics/ocrad/default.nix
new file mode 100644
index 000000000000..2ff62cc9eef2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/ocrad/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv, lzip, texinfo }:
+
+stdenv.mkDerivation rec {
+  name = "ocrad-0.26";
+
+  src = fetchurl {
+    url = "mirror://gnu/ocrad/${name}.tar.lz";
+    sha256 = "0g4fq7maybdnd1471kd05a3f5sb7spa3d26k706rk85sd5wd70y3";
+  };
+
+  buildInputs = [ lzip 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/nixpkgs/pkgs/applications/graphics/openimageio/default.nix b/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
new file mode 100644
index 000000000000..f405ca01200d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/openimageio/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, boost, cmake, ilmbase, libjpeg, libpng, libtiff
+, opencolorio, openexr, unzip
+}:
+
+stdenv.mkDerivation rec {
+  name = "openimageio-${version}";
+  version = "1.8.16";
+
+  src = fetchFromGitHub {
+    owner = "OpenImageIO";
+    repo = "oiio";
+    rev = "Release-${version}";
+    sha256 = "0isx137c6anvs1xfxi0z35v1cw855xvnq2ca0pakqqpdh0yivrps";
+  };
+
+  outputs = [ "bin" "out" "dev" "doc" ];
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [
+    boost ilmbase libjpeg libpng
+    libtiff opencolorio openexr
+    unzip
+  ];
+
+  cmakeFlags = [
+    "-DUSE_PYTHON=OFF"
+  ];
+
+  preBuild = ''
+    makeFlags="ILMBASE_HOME=${ilmbase.dev} OPENEXR_HOME=${openexr.dev} USE_PYTHON=0
+      INSTALLDIR=$out dist_dir="
+  '';
+
+  postInstall = ''
+    mkdir -p $bin
+    mv $out/bin $bin/
+  '';
+
+  enableParallelBuilding = true;
+
+  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/nixpkgs/pkgs/applications/graphics/openscad/default.nix b/nixpkgs/pkgs/applications/graphics/openscad/default.nix
new file mode 100644
index 000000000000..44855d5c8b49
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/openscad/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, qt5, libsForQt5
+, bison, flex, eigen, boost, libGLU_combined, glew, opencsg, cgal
+, mpfr, gmp, glib, pkgconfig, harfbuzz, gettext
+}:
+
+stdenv.mkDerivation rec {
+  version = "2018.04-git";
+  name = "openscad-${version}";
+
+#  src = fetchurl {
+#    url = "http://files.openscad.org/${name}.src.tar.gz";
+#    sha256 = "0djsgi9yx1nxr2gh1kgsqw5vrbncp8v5li0p1pp02higqf1psajx";
+#  };
+  src = fetchFromGitHub {
+    owner = "openscad";
+    repo = "openscad";
+    rev = "179074dff8c23cbc0e651ce8463737df0006f4ca";
+    sha256 = "1y63yqyd0v255liik4ff5ak6mj86d8d76w436x76hs5dk6jgpmfb";
+  };
+
+  buildInputs = [
+    bison flex eigen boost libGLU_combined glew opencsg cgal mpfr gmp glib
+    pkgconfig harfbuzz gettext
+  ]
+    ++ (with qt5; [qtbase qmake])
+    ++ (with libsForQt5; [qscintilla])
+  ;
+
+  qmakeFlags = [ "VERSION=${version}" ];
+
+  doCheck = false;
+
+  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.linux;
+    maintainers = with stdenv.lib.maintainers;
+      [ bjornfor raskin the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/panotools/default.nix b/nixpkgs/pkgs/applications/graphics/panotools/default.nix
new file mode 100644
index 000000000000..719aca5096a5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/paraview/default.nix b/nixpkgs/pkgs/applications/graphics/paraview/default.nix
new file mode 100644
index 000000000000..9839bb740778
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/paraview/default.nix
@@ -0,0 +1,71 @@
+{
+stdenv, fetchFromGitHub, cmake, makeWrapper
+,qtbase, qttools, python, libGLU_combined
+,libXt, qtx11extras, qtxmlpatterns
+}:
+
+stdenv.mkDerivation rec {
+  name = "paraview-${version}";
+  version = "5.5.2";
+
+  # fetching from GitHub instead of taking an "official" source
+  # tarball because of missing submodules there
+  src = fetchFromGitHub {
+    owner = "Kitware";
+    repo = "ParaView";
+    rev = "v${version}";
+    sha256 = "1jivph7lppnflmjsiirhgv0mnh8mxx41i1vzkk78ynn00rzacx3j";
+    fetchSubmodules = true;
+  };
+
+  cmakeFlags = [
+    "-DPARAVIEW_ENABLE_PYTHON=ON"
+    "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
+    "-DPARAVIEW_ENABLE_EMBEDDED_DOCUMENTATION=OFF"
+    "-DOpenGL_GL_PREFERENCE=GLVND"
+  ];
+
+  # 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:$PWD/lib:$PWD/VTK/ThirdParty/vtkm/vtk-m/lib
+  '';
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+  ];
+
+  buildInputs = [
+    python
+    python.pkgs.numpy
+    libGLU_combined
+    libXt
+    qtbase
+    qtx11extras
+    qttools
+    qtxmlpatterns
+  ];
+
+  # Paraview links into the Python library, resolving symbolic links on the way,
+  # so we need to put the correct sitePackages (with numpy) back on the path
+  postInstall = ''
+    wrapProgram $out/bin/paraview \
+      --set PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}"
+    wrapProgram $out/bin/pvbatch \
+      --set PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}"
+    wrapProgram $out/bin/pvpython \
+      --set PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}"
+  '';
+
+  meta = {
+    homepage = http://www.paraview.org/;
+    description = "3D Data analysis and visualization application";
+    license = stdenv.lib.licenses.free;
+    maintainers = with stdenv.lib.maintainers; [guibert];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/pbrt/default.nix b/nixpkgs/pkgs/applications/graphics/pbrt/default.nix
new file mode 100644
index 000000000000..3cc7166b4e46
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/pbrt/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchFromGitHub, flex, bison, cmake, git, zlib}:
+
+stdenv.mkDerivation rec {
+
+  version = "2018-08-15";
+  name = "pbrt-v3-${version}";
+
+  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/nixpkgs/pkgs/applications/graphics/pbrt/openexr-cmake-3.12.patch b/nixpkgs/pkgs/applications/graphics/pbrt/openexr-cmake-3.12.patch
new file mode 100644
index 000000000000..2993922a1ecf
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/pencil/default.nix b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
new file mode 100644
index 000000000000..de7582710048
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchurl, lib, makeWrapper,
+  # build dependencies
+  alsaLib, atk, cairo, cups, dbus, expat, fontconfig,
+  freetype, gdk_pixbuf, glib, gnome2, nspr, nss, xorg,
+  glibc, systemd
+}:
+
+stdenv.mkDerivation rec {
+  version = "3.0.4";
+  name = "pencil-${version}";
+
+  src = fetchurl {
+    url    = "http://pencil.evolus.vn/dl/V${version}/Pencil_${version}_amd64.deb";
+    sha256 = "58e2b794c615ea8715d8374f177e19c87f7071e359826ec34a59836d537a62fd";
+  };
+
+  sourceRoot = ".";
+
+  unpackCmd = ''
+    ar p "$src" data.tar.xz | tar xJ
+  '';
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -R usr/share opt $out/
+
+    # 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 = [
+      alsaLib
+      atk
+      cairo
+      cups
+      dbus
+      expat
+      fontconfig
+      freetype
+      gdk_pixbuf
+      glib
+      gnome2.GConf
+      gnome2.gtk
+      gnome2.pango
+      nspr
+      nss
+      xorg.libX11
+      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
+      glibc
+    ];
+    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
+
+    # patch libnode
+    patchelf \
+      --set-rpath "${libPath}" \
+      $out/opt/Pencil/libnode.so
+
+    # libffmpeg is for some reason  not executable
+    chmod a+x $out/opt/Pencil/libffmpeg.so
+
+    # fix missing libudev
+    ln -s ${systemd.lib}/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/nixpkgs/pkgs/applications/graphics/photivo/default.nix b/nixpkgs/pkgs/applications/graphics/photivo/default.nix
new file mode 100644
index 000000000000..4843898eb645
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/photivo/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchhg, fetchpatch, cmake, qt4, fftw, graphicsmagick_q16,
+  lcms2, lensfun, pkgconfig, libjpeg, exiv2, liblqr1 }:
+
+stdenv.mkDerivation rec {
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/photivo/gcc6.patch b/nixpkgs/pkgs/applications/graphics/photivo/gcc6.patch
new file mode 100644
index 000000000000..e2eb795fc8e2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/photoflow/default.nix b/nixpkgs/pkgs/applications/graphics/photoflow/default.nix
new file mode 100644
index 000000000000..db41ee0566fe
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/photoflow/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, gettext, glib, libxml2, pkgconfig, swig, automake, gobject-introspection, cmake, ninja, libtiff, libjpeg, fftw, exiv2, lensfun, gtkmm2, libraw, lcms2, libexif, vips, expat, pcre, pugixml }:
+
+stdenv.mkDerivation {
+  name = "photoflow-unstable-2018-08-28";
+
+  src = fetchFromGitHub {
+    owner = "aferrero2707";
+    repo = "PhotoFlow";
+    rev = "df03f2538ddd232e693c307db4ab63eb5bdfea38";
+    sha256 = "08ybhv08h24y4li8wb4m89xgrz1szlwpksf6vjharp8cznn4y4x9";
+  };
+
+  nativeBuildInputs = [
+    gettext
+    glib
+    libxml2
+    pkgconfig
+    swig
+    automake
+    gobject-introspection
+    cmake
+    ninja
+  ];
+
+  buildInputs = [
+    libtiff
+    libjpeg
+    fftw
+    exiv2
+    lensfun
+    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
+    libraw
+    lcms2
+    libexif
+    vips
+    expat
+    pcre
+    pugixml
+  ];
+
+  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;
+    broken = stdenv.isAarch64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/photoqt/default.nix b/nixpkgs/pkgs/applications/graphics/photoqt/default.nix
new file mode 100644
index 000000000000..7571bb29bec9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/photoqt/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, cmake, exiv2, graphicsmagick, libraw
+, qtbase, qtdeclarative, qtmultimedia, qtquickcontrols, qttools, qtgraphicaleffects
+}:
+
+stdenv.mkDerivation rec {
+  name = "photoqt-${version}";
+  version = "1.5.1";
+
+  src = fetchurl {
+    url = "https://photoqt.org/pkgs/photoqt-${version}.tar.gz";
+    sha256 = "17kkpzkmzfnigs26jjyd75iy58qffjsclif81cmviq73lzmqy0b1";
+  };
+
+  patches = [ ./photoqt-1.5.1-qt-5.9.patch ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    qtbase qtquickcontrols qttools exiv2 graphicsmagick
+    qtmultimedia qtdeclarative libraw qtgraphicaleffects
+  ];
+
+  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/nixpkgs/pkgs/applications/graphics/photoqt/photoqt-1.5.1-qt-5.9.patch b/nixpkgs/pkgs/applications/graphics/photoqt/photoqt-1.5.1-qt-5.9.patch
new file mode 100644
index 000000000000..daa982b5f3aa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/photoqt/photoqt-1.5.1-qt-5.9.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 97abcb5..fd4877a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -50,7 +50,7 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -Wall")
+ #### FIND REQUIRED PACKAGES ####
+ ################################
+ 
+-FIND_PACKAGE(Qt5 COMPONENTS LinguistTools Quick Widgets Core Svg REQUIRED)
++FIND_PACKAGE(Qt5 COMPONENTS LinguistTools Quick Widgets Core Svg Sql Xml REQUIRED)
+ SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
+ FIND_PACKAGE(Magick)
+ FIND_PACKAGE(Exiv2)
diff --git a/nixpkgs/pkgs/applications/graphics/phototonic/default.nix b/nixpkgs/pkgs/applications/graphics/phototonic/default.nix
new file mode 100644
index 000000000000..7da1d4b612f9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/phototonic/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, qtbase, qmake, exiv2 }:
+
+stdenv.mkDerivation rec {
+  name = "phototonic-${version}";
+  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/nixpkgs/pkgs/applications/graphics/pinta/default.nix b/nixpkgs/pkgs/applications/graphics/pinta/default.nix
new file mode 100644
index 000000000000..140903766848
--- /dev/null
+++ b/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 = http://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/nixpkgs/pkgs/applications/graphics/potrace/default.nix b/nixpkgs/pkgs/applications/graphics/potrace/default.nix
new file mode 100644
index 000000000000..132136da658b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/potrace/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "potrace-${version}";
+  version = "1.15";
+
+  src = fetchurl {
+    url = "http://potrace.sourceforge.net/download/${version}/potrace-${version}.tar.gz";
+    sha256 = "17ajildjp14shsy339xarh1lw1p0k60la08ahl638a73mh23kcx9";
+  };
+
+  configureFlags = [ "--with-libpotrace" ];
+
+  buildInputs = [ zlib ];
+
+  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/nixpkgs/pkgs/applications/graphics/pqiv/default.nix b/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
new file mode 100644
index 000000000000..ec4ce69d5e87
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/pqiv/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkgconfig
+, ffmpeg, gtk3, imagemagick, libarchive, libspectre, libwebp, poppler
+}:
+
+stdenv.mkDerivation (rec {
+  name = "pqiv-${version}";
+  version = "2.11";
+
+  src = fetchFromGitHub {
+    owner = "phillipberndt";
+    repo = "pqiv";
+    rev = version;
+    sha256 = "06cwm28b7j1skwp21s5snmj1pqh3xh6y2i5v4w3pz0b8k3053h9i";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ffmpeg 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 = [ maintainers.ndowens ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/graphics/processing3/default.nix b/nixpkgs/pkgs/applications/graphics/processing3/default.nix
new file mode 100644
index 000000000000..6f90131db12a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/processing3/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchFromGitHub, fetchurl, xmlstarlet, makeWrapper, ant, jdk, rsync, javaPackages, libXxf86vm, gsettings-desktop-schemas }:
+
+stdenv.mkDerivation rec {
+  version = "3.4";
+  name = "processing3-${version}";
+
+  src = fetchFromGitHub {
+    owner = "processing";
+    repo = "processing";
+    rev = "processing-0265-${version}";
+    sha256 = "12wpxgn2wd5vbasx9584w5yb1s319smq1zh8m7dvp7gkqw9plwp4";
+  };
+
+  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 {
+                          url    = http://download.processing.org/reference.zip;
+                          sha256 = "0ai0cr62gc7n6y22ki3qibyj1qnlaxv1miqxmmahfk3hpbyfqz9n";
+                        }
+                       } ./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/${name}
+
+    rmdir $out/${name}/java
+    ln -s ${jdk} $out/${name}/java
+
+    makeWrapper $out/${name}/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/${name}/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/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix b/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix
new file mode 100644
index 000000000000..c37e21ec898a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools, qtx11extras, poppler }:
+
+stdenv.mkDerivation rec {
+  name = "qcomicbook-${version}";
+  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/nixpkgs/pkgs/applications/graphics/qiv/default.nix b/nixpkgs/pkgs/applications/graphics/qiv/default.nix
new file mode 100644
index 000000000000..8e6058d69980
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/qiv/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, gtk2, imlib2, file, lcms2, libexif } :
+
+stdenv.mkDerivation (rec {
+  version = "2.3.1";
+  name = "qiv-${version}";
+
+  src = fetchurl {
+    url = "https://spiegl.de/qiv/download/${name}.tgz";
+    sha256 = "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 imlib2 file lcms2 libexif ];
+
+  preBuild=''
+    substituteInPlace Makefile --replace /usr/local "$out"
+    substituteInPlace Makefile --replace /man/ /share/man/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Quick image viewer";
+    homepage = http://spiegl.de/qiv/;
+    inherit version;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/graphics/qiv/default.upstream b/nixpkgs/pkgs/applications/graphics/qiv/default.upstream
new file mode 100644
index 000000000000..e6c7ef2408e8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix b/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix
new file mode 100644
index 000000000000..fafc76a76ffe
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/qtpfsgui/default.nix b/nixpkgs/pkgs/applications/graphics/qtpfsgui/default.nix
new file mode 100644
index 000000000000..4be7d230b5f4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/qtpfsgui/default.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchurl, qt4, qmake4Hook, exiv2, openexr, fftwSinglePrec, libtiff, ilmbase }:
+
+stdenv.mkDerivation rec {
+  name = "qtpfsgui-1.9.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/qtpfsgui/${name}.tar.gz";
+    sha256 = "1mlg9dry4mfnnjlnwsw375hzsiagssdhccfmapx5nh6ykqrslsh1";
+  };
+
+  buildInputs = [ qt4 exiv2 openexr fftwSinglePrec libtiff ];
+  nativeBuildInputs = [ qmake4Hook ];
+
+  hardeningDisable = [ "format" ];
+
+  preConfigure = ''
+    export CPATH="${ilmbase.dev}/include/OpenEXR:$CPATH"
+  '';
+
+  qmakeFlags = [
+    "EXIV2PATH=${exiv2.dev}/include/exiv2"
+    "OPENEXRDIR=${openexr.dev}/include/OpenEXR"
+    "FFTW3DIR=${fftwSinglePrec.dev}/include"
+    "LIBTIFFDIR=${libtiff.dev}/include"
+  ];
+
+  meta = {
+    homepage = http://qtpfsgui.sourceforge.net/;
+    description = "Qtpfsqui, a graphical application for high dynamic range (HDR) imaging";
+
+    longDescription =
+      '' Qtpfsgui is an open source graphical user interface application that
+         aims to provide a workflow for high dynamic range (HDR) imaging.
+      '';
+
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    maintainers = [ ];
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/rapcad/default.nix b/nixpkgs/pkgs/applications/graphics/rapcad/default.nix
new file mode 100644
index 000000000000..b300c0071fae
--- /dev/null
+++ b/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";
+  name = "rapcad-${version}";
+
+  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/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix b/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
new file mode 100644
index 000000000000..36087aa84bb3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchurl, python3Packages
+, file, intltool, gobject-introspection, libgudev
+, udisks, glib, gnome3, gst_all_1, libnotify
+, exiv2, exiftool, qt5, gdk_pixbuf
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "rapid-photo-downloader";
+  version = "0.9.13";
+
+  src = fetchurl {
+    url = "https://launchpad.net/rapid/pyqt/${version}/+download/${pname}-${version}.tar.gz";
+    sha256 = "1517w18sxil1gwd78jjbbixcd1b0sp05imnnd5h5lr8wl3f0szj0";
+  };
+
+  # 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"
+    substituteInPlace raphodo/copyfiles.py \
+      --replace "import problemnotification" "import raphodo.problemnotification"
+  '';
+
+  nativeBuildInputs = [ file intltool gobject-introspection ];
+
+  buildInputs = [
+    libgudev
+    udisks
+    glib
+    gnome3.gexiv2
+    gst_all_1.gstreamer
+    libnotify
+    exiv2
+    exiftool
+    qt5.qtimageformats
+    gdk_pixbuf
+  ] ++ (with python3Packages; [
+    pyqt5
+    pygobject3
+    gphoto2
+    pyzmq
+    tornado
+    psutil
+    pyxdg
+    arrow
+    dateutil
+    easygui
+    colour
+    pymediainfo
+    sortedcontainers
+    rawkit
+    requests
+    colorlog
+    pyprind
+  ]);
+
+  makeWrapperArgs = [
+    "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
+    "--set PYTHONPATH \"$PYTHONPATH\""
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Photo and video importer for cameras, phones, and memory cards";
+    homepage = http://www.damonlynch.net/rapid/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jfrankenau ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/rawtherapee/default.nix b/nixpkgs/pkgs/applications/graphics/rawtherapee/default.nix
new file mode 100644
index 000000000000..74e8c0e6b434
--- /dev/null
+++ b/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
+}:
+
+stdenv.mkDerivation rec {
+  version = "5.5";
+  name = "rawtherapee-" + version;
+
+  src = fetchFromGitHub {
+    owner = "Beep6581";
+    repo = "RawTherapee";
+    rev = version;
+    sha256 = "13clnx7rwkfa7wxgsim1xdx2pd7gwmmdad1m8a3fvywr20ml8xzk";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ];
+
+  buildInputs = [
+    pixman libpthreadstubs gtkmm3 libXau libXdmcp
+    lcms2 libiptcdata libcanberra-gtk3 fftw expat pcre libsigcxx lensfun
+  ];
+
+  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 the-kenny ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
new file mode 100644
index 000000000000..3990d0989062
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, qtbase, qtx11extras, qtsvg, makeWrapper
+, vulkan-loader, xorg
+, python36, bison, pcre, automake, autoconf
+}:
+let
+  custom_swig = fetchFromGitHub {
+    owner = "baldurk";
+    repo = "swig";
+    rev = "renderdoc-modified-6";
+    sha256 = "00ykqlzx1k9iwqjlc54kfch7cnzsj53hxn7ql70dj3rxqzrnadc0";
+  };
+in
+stdenv.mkDerivation rec {
+  version = "1.2";
+  name = "renderdoc-${version}";
+
+  src = fetchFromGitHub {
+    owner = "baldurk";
+    repo = "renderdoc";
+    rev = "v${version}";
+    sha256 = "0s1q5d58x18yz3nf94pv5i1qd2hc0a4gdj4qkpcn8s6ms2x05pz4";
+  };
+
+  buildInputs = [
+    qtbase qtsvg xorg.libpthreadstubs xorg.libXdmcp qtx11extras vulkan-loader python36
+  ];
+
+  nativeBuildInputs = [ cmake makeWrapper pkgconfig bison pcre automake autoconf ];
+
+  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: add once pyside2 is in nixpkgs
+    #"-DPYSIDE2_PACKAGE_DIR=${python36Packages.pyside2}"
+  ];
+
+  # Future work: define these in the above array via placeholders
+  preConfigure = ''
+    cmakeFlags+=" -DVULKAN_LAYER_FOLDER=$out/share/vulkan/implicit_layer.d/"
+    cmakeFlags+=" -DRENDERDOC_SWIG_PACKAGE=$PWD/../swig"
+  '';
+
+  preFixup = ''
+    wrapProgram $out/bin/qrenderdoc --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+    wrapProgram $out/bin/renderdoccmd --suffix LD_LIBRARY_PATH : $out/lib --suffix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+  '';
+
+  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/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/default.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/default.nix
new file mode 100644
index 000000000000..b431cf51b019
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/default.nix
@@ -0,0 +1,94 @@
+{ stdenv, fetchurl, callPackage, patchelf, makeWrapper, coreutils, libusb }:
+
+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.4-4";
+  src = 
+    if stdenv.hostPlatform.system == "i686-linux" then
+      fetchurl {
+        url = "http://download.brother.com/welcome/dlf006646/${name}.i386.deb";
+        sha256 = "13mhjbzf9nvpdzrc2s98684r7likg76zxs1wlz2h8w59fsqgx4k2";
+      }
+    else if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchurl {
+        url = "https://download.brother.com/welcome/dlf006645/${name}.amd64.deb";
+        sha256 = "0xy5px96y1saq9l80vwvfn6anr2q42qlxdhm6ci2a0diwib5q9fd";
+      }
+    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 ];
+  dontBuild = true;
+
+  patchPhase = ''
+    ${myPatchElf "opt/brother/scanner/brscan4/brsaneconfig4"}
+
+    RPATH=${libusb.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/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/preload.c b/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/preload.c
new file mode 100644
index 000000000000..016162770934
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/brscan4/udev_rules_type1.nix
new file mode 100644
index 000000000000..da136a7f9e1e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
new file mode 100644
index 000000000000..20d5629b83a9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
@@ -0,0 +1,11 @@
+{ callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.0.27";
+  src = fetchurl {
+    sha256 = "1j9nbqspaj0rlgalafb5z6r606k0i22kz0rcpd744p176yzlfdr9";
+    urls = [
+      "https://alioth.debian.org/frs/download.php/latestfile/176/sane-backends-${version}.tar.gz"
+    ];
+  };
+})
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix
new file mode 100644
index 000000000000..0f47c82f0325
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/generic.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, avahi, libjpeg, libusb1, libv4l, net_snmp, libpng
+, gettext, pkgconfig
+
+# 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" ];
+
+  configureFlags = []
+    ++ stdenv.lib.optional (avahi != null)   "--enable-avahi"
+    ++ stdenv.lib.optional (libusb1 != null) "--enable-libusb_1_0"
+    ;
+
+  buildInputs = [ avahi libusb1 libv4l net_snmp libpng ];
+  nativeBuildInputs = [ gettext pkgconfig ];
+  enableParallelBuilding = true;
+
+  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"
+  '' + 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/nixpkgs/pkgs/applications/graphics/sane/backends/git.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/git.nix
new file mode 100644
index 000000000000..e746f83e5d49
--- /dev/null
+++ b/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 = "git://alioth.debian.org/git/sane/sane-backends.git";
+  };
+})
diff --git a/nixpkgs/pkgs/applications/graphics/sane/config.nix b/nixpkgs/pkgs/applications/graphics/sane/config.nix
new file mode 100644
index 000000000000..c0a0206ddd1f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/sane/config.nix
@@ -0,0 +1,38 @@
+{ 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
+          ln -s "$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
+            ln -s "$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
+          ln -s "$conf" "$out/etc/sane.d/dll.d/$(basename $conf)"
+        done
+      fi
+    '';
+in
+stdenv.mkDerivation {
+  name = "sane-config";
+  phases = "installPhase";
+
+  installPhase = ''
+    mkdir -p $out/etc/sane.d $out/etc/sane.d/dll.d $out/lib/sane
+  '' + concatMapStrings installSanePath paths;
+}
diff --git a/nixpkgs/pkgs/applications/graphics/sane/frontends.nix b/nixpkgs/pkgs/applications/graphics/sane/frontends.nix
new file mode 100644
index 000000000000..f6994db81e4b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/sane/frontends.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, sane-backends, libX11, gtk2, pkgconfig, libusb ? null }:
+
+stdenv.mkDerivation rec {
+  name = "sane-frontends-${version}";
+  version = "1.0.14";
+
+  src = fetchurl {
+    url = "https://alioth.debian.org/frs/download.php/latestfile/175/${name}.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 != null) libusb;
+  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/nixpkgs/pkgs/applications/graphics/sane/xsane.nix b/nixpkgs/pkgs/applications/graphics/sane/xsane.nix
new file mode 100644
index 000000000000..09b431fdb116
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/sane/xsane.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, sane-backends, sane-frontends, libX11, gtk2, pkgconfig, libpng
+, libusb ? 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 != null then [libusb] 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/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix b/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix
new file mode 100644
index 000000000000..d55441e39fa5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub
+, cmake, libjpeg, libpng, libtiff, boost
+, qtbase, qttools }:
+
+stdenv.mkDerivation rec {
+  name = "scantailor-advanced-${version}";
+  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/nixpkgs/pkgs/applications/graphics/scantailor/default.nix b/nixpkgs/pkgs/applications/graphics/scantailor/default.nix
new file mode 100644
index 000000000000..395179ff70ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/scantailor/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, qt4, cmake, libjpeg, libtiff, boost }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/graphics/screencloud/default.nix b/nixpkgs/pkgs/applications/graphics/screencloud/default.nix
new file mode 100644
index 000000000000..292ae9c8faa8
--- /dev/null
+++ b/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 {
+  name = "screencloud-${version}";
+  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/nixpkgs/pkgs/applications/graphics/seg3d/cstdio.patch b/nixpkgs/pkgs/applications/graphics/seg3d/cstdio.patch
new file mode 100644
index 000000000000..0d9eed07a367
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/seg3d/cstdio.patch
@@ -0,0 +1,81 @@
+diff --git a/Core/Geometry/Transform.cc b/Core/Geometry/Transform.cc
+index 4f16fdc..0da4679 100644
+--- a/Core/Geometry/Transform.cc
++++ b/Core/Geometry/Transform.cc
+@@ -28,6 +28,7 @@
+ 
+ #include <cassert>
+ #include <cstring>
++#include <cstdio>
+ 
+ #include <Core/Util/TypeDescription.h>
+ #include <Core/Geometry/Transform.h>
+diff --git a/Core/Util/FullFileName.cc b/Core/Util/FullFileName.cc
+index 7a2cad7..7710e92 100644
+--- a/Core/Util/FullFileName.cc
++++ b/Core/Util/FullFileName.cc
+@@ -29,6 +29,7 @@
+ 
+ #include <Core/Util/FullFileName.h>
+ #include <iostream>
++#include <cstdio>
+ 
+ namespace SCIRun {
+ 
+diff --git a/Externals/particle-system-mm/src/sizingfield/LFS.cxx b/Externals/particle-system-mm/src/sizingfield/LFS.cxx
+index d1fa5aa..a5a4358 100644
+--- a/Externals/particle-system-mm/src/sizingfield/LFS.cxx
++++ b/Externals/particle-system-mm/src/sizingfield/LFS.cxx
+@@ -1,5 +1,6 @@
+ #include <cstdlib>
+ #include <iostream>
++#include <cstdio>
+ #include <LFS.h>
+ 
+ using namespace std;
+diff --git a/Externals/slivr/Point.cc b/Externals/slivr/Point.cc
+index d3be03e..ed4e503 100644
+--- a/Externals/slivr/Point.cc
++++ b/Externals/slivr/Point.cc
+@@ -42,6 +42,7 @@
+ #include <slivr/Point.h>
+ #include <slivr/Vector.h>
+ #include <iostream>
++#include <cstdio>
+ 
+ namespace SLIVR {
+ 
+diff --git a/Externals/slivr/Transform.cc b/Externals/slivr/Transform.cc
+index c0a4430..520179f 100644
+--- a/Externals/slivr/Transform.cc
++++ b/Externals/slivr/Transform.cc
+@@ -47,6 +47,7 @@
+ #include <math.h>
+ #include <string.h>
+ #include <iostream>
++#include <cstdio>
+ 
+ using namespace SLIVR;
+ using namespace std;
+diff --git a/Externals/slivr/Vector.cc b/Externals/slivr/Vector.cc
+index 8370d65..8b04bb9 100644
+--- a/Externals/slivr/Vector.cc
++++ b/Externals/slivr/Vector.cc
+@@ -43,6 +43,7 @@
+ #include <slivr/Point.h>
+ #include <assert.h>
+ #include <iostream>
++#include <cstdio>
+ 
+ using std::istream;
+ using std::ostream;
+diff --git a/Externals/vispack/src/image/imagefile.txx b/Externals/vispack/src/image/imagefile.txx
+index ced2590..13a32b2 100644
+--- a/Externals/vispack/src/image/imagefile.txx
++++ b/Externals/vispack/src/image/imagefile.txx
+@@ -1,3 +1,5 @@
++#include <cstdio>
++
+ template <class T>
+ int write_raw(const char* name, const VISImage<T>& im)
+ {
diff --git a/nixpkgs/pkgs/applications/graphics/seg3d/default.nix b/nixpkgs/pkgs/applications/graphics/seg3d/default.nix
new file mode 100644
index 000000000000..bca88cc70130
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/seg3d/default.nix
@@ -0,0 +1,55 @@
+{ fetchurl, stdenv, cmake, wxGTK, itk, libGLU_combined, libXft, libXext, libXi, zlib, libXmu,
+libuuid }:
+
+assert (stdenv ? glibc);
+
+stdenv.mkDerivation {
+  name = "seg3d-1.12_20090930";
+  src = fetchurl {
+    url = https://www.sci.utah.edu/releases/seg3d_v1.12/Seg3D_1.12_20090930_source.tgz;
+    sha256 = "1wr6rc6v5qjjkmws8yrc03z35h3iydxk1z28p06v1wdnca0y71z8";
+  };
+
+  patches = [ ./cstdio.patch ];
+
+  cmakeFlags = [
+    "-DM_LIBRARY=${stdenv.glibc.out}/lib/libm.so"
+    "-DDL_LIBRARY=${stdenv.glibc.out}/lib/libdl.so"
+    "-DBUILD_UTILS=1"
+    "-DBUILD_SEG3D=1"
+    "-DBUILD_DATAFLOW=0"
+    "-DBUILD_SHARED_LIBS=0"
+    "-DWITH_X11=1"
+    "-DBUILD_BIOMESH3D=1"
+    "-DWITH_TETGEN=1"
+    "-DBUILD_TYPE=Release"
+    "-DBUILD_TESTING=0"
+    "-DWITH_WXWIDGETS=ON"
+    "-DITK_DIR=${itk}/lib/InsightToolkit"
+    "-DGDCM_LIBRARY=${itk}/lib/libitkgdcm.a"
+  ];
+
+
+  makeFlags = "VERBOSE=1";
+
+  preBuild = ''
+    export LD_LIBRARY_PATH=`pwd`/lib
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lGLU -lSM -lICE -lX11 -lXext -luuid";
+  '';
+
+  preUnpack = ''
+    set -x
+    sourceRoot=`pwd`/src
+  '';
+
+  postInstall = ''
+    cp Seg3D $out/bin
+    exit 1
+  '';
+
+  buildInputs = [ cmake wxGTK itk libGLU_combined libXft libXext libXi zlib libXmu libuuid ];
+
+  meta = {
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/shotwell/default.nix b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
new file mode 100644
index 000000000000..aef7143f7e03
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
@@ -0,0 +1,50 @@
+{ fetchurl, stdenv, meson, ninja, gtk3, libexif, libgphoto2, libsoup, libxml2, vala, sqlite
+, webkitgtk, pkgconfig, gnome3, gst_all_1, libgudev, libraw, glib, json-glib
+, gettext, desktop-file-utils, gdk_pixbuf, librsvg, wrapGAppsHook
+, gobject-introspection, itstool, libgdata, python3 }:
+
+# for dependencies see https://wiki.gnome.org/Apps/Shotwell/BuildingAndInstalling
+
+let
+  pname = "shotwell";
+  version = "0.30.1";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "01hsmig06hjv34yf9y60hv2gml593xfkza4ilq4b22gr8l4v2qip";
+  };
+
+  nativeBuildInputs = [
+    meson ninja vala pkgconfig itstool gettext desktop-file-utils python3 wrapGAppsHook gobject-introspection
+  ];
+
+  buildInputs = [
+    gtk3 libexif libgphoto2 libsoup libxml2 sqlite webkitgtk
+    gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee
+    libgudev gnome3.gexiv2 gnome3.gsettings-desktop-schemas
+    libraw json-glib glib gdk_pixbuf librsvg gnome3.rest
+    gnome3.gcr gnome3.defaultIconTheme libgdata
+  ];
+
+  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/nixpkgs/pkgs/applications/graphics/shutter/default.nix b/nixpkgs/pkgs/applications/graphics/shutter/default.nix
new file mode 100644
index 000000000000..7e7bf644ce79
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/shutter/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, perl, 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 rec {
+  name = "shutter-0.94.2";
+
+  src = fetchurl {
+    url = "https://launchpad.net/shutter/0.9x/0.94.2/+download/shutter-0.94.2.tar.gz";
+    sha256 = "0mas7npm935j4rhqqjn226822s9sa4bsxrkp0b5fjj3z096k6vw0";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ 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 "${stdenv.lib.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 = http://shutter-project.org/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix b/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
new file mode 100644
index 000000000000..377a5ae61687
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/solvespace/default.nix b/nixpkgs/pkgs/applications/graphics/solvespace/default.nix
new file mode 100644
index 000000000000..2e413839f00b
--- /dev/null
+++ b/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-20180906";
+  rev = "258545a334098cf25c1c9f4cd59b778dfe0b0d29";
+  src = fetchgit {
+    url = https://github.com/solvespace/solvespace;
+    inherit rev;
+    sha256 = "1wimh6l0zpk0vywcsd2minijjf6g550z8i3l8lpmfnl5przymc2v";
+    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/nixpkgs/pkgs/applications/graphics/swingsane/default.nix b/nixpkgs/pkgs/applications/graphics/swingsane/default.nix
new file mode 100644
index 000000000000..94666531c0c8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/swingsane/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, makeDesktopItem, unzip, jre }:
+
+stdenv.mkDerivation rec {
+  name = "swingsane-${version}";
+  version = "0.2";
+
+  src = fetchurl {
+    sha256 = "15pgqgyw46yd2i367ax9940pfyvinyw2m8apmwhrn0ix5nywa7ni";
+    url = "mirror://sourceforge/swingsane/swingsane-${version}-bin.zip";
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = let
+
+    execWrapper = ''
+      #!/bin/sh
+      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;Application;";
+    };
+
+  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/nixpkgs/pkgs/applications/graphics/sxiv/default.nix b/nixpkgs/pkgs/applications/graphics/sxiv/default.nix
new file mode 100644
index 000000000000..7f118b6adc9a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/sxiv/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, libXft, imlib2, giflib, libexif, conf ? null }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "sxiv-${version}";
+  version = "24";
+
+  src = fetchFromGitHub {
+    owner = "muennich";
+    repo = "sxiv";
+    rev = "v${version}";
+    sha256 = "020n1bdxbzqncprh8a4rnjzc4frp335yxbqh5w6dr970f7n5qm8d";
+  };
+
+  postUnpack = ''
+    substituteInPlace $sourceRoot/Makefile \
+      --replace /usr/local $out
+  '';
+
+  configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf);
+  preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+  buildInputs = [ libXft imlib2 giflib libexif ];
+
+  postInstall = ''
+    mkdir -p $out/share/applications/
+    cp -v sxiv.desktop $out/share/applications/
+  '';
+
+  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 fuuzetsu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix b/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix
new file mode 100644
index 000000000000..63d35cc54531
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/synfigstudio/default.nix
@@ -0,0 +1,125 @@
+{ stdenv, fetchFromGitHub, boost, cairo, gettext, glibmm, gtk3, gtkmm3
+, libjack2, libsigcxx, libxmlxx, makeWrapper, mlt-qt5, pango, pkgconfig
+, imagemagick, intltool, autoreconfHook, which, defaultIconTheme
+}:
+
+let
+  version = "1.0.2";
+
+  ETL = stdenv.mkDerivation rec {
+    name = "ETL-0.04.19";
+
+    src = fetchFromGitHub {
+       repo   = "synfig";
+       owner  = "synfig";
+       rev    = version;
+       sha256 = "09ldkvzczqvb1yvlibd62y56dkyprxlr0w3rk38rcs7jnrhj2cqc";
+    };
+
+    postUnpack = "sourceRoot=\${sourceRoot}/ETL/";
+
+    nativeBuildInputs = [ autoreconfHook ];
+  };
+
+  synfig = stdenv.mkDerivation rec {
+    name = "synfig-${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 rec {
+  name = "synfigstudio-${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 defaultIconTheme
+  ];
+
+  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/nixpkgs/pkgs/applications/graphics/tesseract/default.nix b/nixpkgs/pkgs/applications/graphics/tesseract/default.nix
new file mode 100644
index 000000000000..840c87de216b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/tesseract/fetch-language-hashes b/nixpkgs/pkgs/applications/graphics/tesseract/fetch-language-hashes
new file mode 100755
index 000000000000..c431f1d97c26
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/tesseract/languages.nix b/nixpkgs/pkgs/applications/graphics/tesseract/languages.nix
new file mode 100644
index 000000000000..08512a5cdd9d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/tesseract/tesseract3.nix b/nixpkgs/pkgs/applications/graphics/tesseract/tesseract3.nix
new file mode 100644
index 000000000000..db0e06434aa9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/tesseract/tesseract3.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, fetchFromGitHub, autoreconfHook, pkgconfig
+, leptonica, libpng, libtiff, icu, pango, opencl-headers }:
+
+stdenv.mkDerivation rec {
+  name = "tesseract-${version}";
+  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/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix b/nixpkgs/pkgs/applications/graphics/tesseract/tesseract4.nix
new file mode 100644
index 000000000000..df321023c741
--- /dev/null
+++ b/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 {
+  name = "tesseract-${version}";
+  version = "4.0.0";
+
+  src = fetchFromGitHub {
+    owner = "tesseract-ocr";
+    repo = "tesseract";
+    rev = version;
+    sha256 = "1b5fi2vibc4kk9b30kkk4ais4bw8fbbv24bzr5709194hb81cav8";
+  };
+
+  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/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix b/nixpkgs/pkgs/applications/graphics/tesseract/wrapper.nix
new file mode 100644
index 000000000000..365d68a9ee76
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix b/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix
new file mode 100644
index 000000000000..b4ddb1436856
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, makeWrapper, perl, perlPackages }:
+
+stdenv.mkDerivation rec {
+  name = "timelapse-deflicker-${version}";
+  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/nixpkgs/pkgs/applications/graphics/ufraw/default.nix b/nixpkgs/pkgs/applications/graphics/ufraw/default.nix
new file mode 100644
index 000000000000..50cd9485a3e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/ufraw/default.nix
@@ -0,0 +1,54 @@
+{ fetchurl, stdenv, pkgconfig, gtk2, gettext, bzip2, zlib
+, withGimpPlugin ? true, gimp ? null
+, libjpeg, libtiff, cfitsio, exiv2, lcms2, gtkimageview, lensfun }:
+
+assert withGimpPlugin -> gimp != null;
+
+stdenv.mkDerivation rec {
+  name = "ufraw-0.22";
+
+  src = fetchurl {
+    # XXX: These guys appear to mutate uploaded tarballs!
+    url = "mirror://sourceforge/ufraw/${name}.tar.gz";
+    sha256 = "0pm216pg0vr44gwz9vcvq3fsf8r5iayljhf5nis2mnw7wn6d5azp";
+  };
+
+  outputs = [ "out" ] ++ stdenv.lib.optional withGimpPlugin "gimpPlugin";
+
+  nativeBuildInputs = [ pkgconfig gettext ];
+  buildInputs = [
+    gtk2 gtkimageview bzip2 zlib
+    libjpeg libtiff cfitsio exiv2 lcms2 lensfun
+  ] ++ stdenv.lib.optional withGimpPlugin gimp;
+
+  configureFlags = [
+    "--enable-extras"
+    "--enable-dst-correction"
+    "--enable-contrast"
+  ] ++ stdenv.lib.optional withGimpPlugin "--with-gimp";
+
+  postInstall = stdenv.lib.optionalString withGimpPlugin ''
+    moveToOutput "lib/gimp" "$gimpPlugin"
+  '';
+
+  meta = {
+    homepage = http://ufraw.sourceforge.net/;
+
+    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 = stdenv.lib.licenses.gpl2Plus;
+
+    maintainers = [ ];
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # needs GTK+
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix b/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
new file mode 100644
index 000000000000..d29c9cd82598
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/unigine-valley/default.nix
@@ -0,0 +1,112 @@
+{ stdenv, fetchurl
+
+# Build-time dependencies
+, makeWrapper
+, file
+
+# Runtime dependencies
+, fontconfig
+, freetype
+, libX11
+, libXext
+, libXinerama
+, libXrandr
+, libXrender
+, 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 {
+    name = "unigine-valley-${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
+      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 = http://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/nixpkgs/pkgs/applications/graphics/viewnior/default.nix b/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
new file mode 100644
index 000000000000..5afd7a0237d0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk2, libpng, exiv2, lcms
+, intltool, gettext, shared-mime-info, glib, gdk_pixbuf, perl}:
+
+stdenv.mkDerivation rec {
+  name = "viewnior-${version}";
+  version = "1.6";
+
+  src = fetchFromGitHub {
+    owner = "xsisqox";
+    repo = "Viewnior";
+    rev = name;
+    sha256 = "06ppv3r85l3id4ij6h4y5fgm3nib2587fdrdv9fccyi75zk7fs0p";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs =
+    [ pkgconfig gtk2 libpng exiv2 lcms intltool gettext
+      shared-mime-info glib gdk_pixbuf perl
+    ];
+
+  preFixup = ''
+    rm $out/share/icons/*/icon-theme.cache
+  '';
+
+  meta = {
+    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 = stdenv.lib.licenses.gpl3;
+
+    homepage = http://siyanpanayotov.com/project/viewnior/;
+
+    maintainers = [ stdenv.lib.maintainers.smironov ];
+
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/vimiv/default.nix b/nixpkgs/pkgs/applications/graphics/vimiv/default.nix
new file mode 100644
index 000000000000..e790ef49acbf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/vimiv/default.nix
@@ -0,0 +1,73 @@
+{ lib, python3Packages, fetchFromGitHub, imagemagick, librsvg, gtk3, jhead
+, hicolor-icon-theme, defaultIconTheme
+
+# 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 = [ hicolor-icon-theme defaultIconTheme 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/nixpkgs/pkgs/applications/graphics/wings/default.nix b/nixpkgs/pkgs/applications/graphics/wings/default.nix
new file mode 100644
index 000000000000..9ecf94e21c01
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/wings/default.nix
@@ -0,0 +1,45 @@
+{ fetchurl, stdenv, erlang, esdl, cl }:
+
+stdenv.mkDerivation rec {
+  name = "wings-1.5.4";
+  src = fetchurl {
+    url = "mirror://sourceforge/wings/${name}.tar.bz2";
+    sha256 = "0qz6rmmkqgk3p0d3v2ikkf22n511bq0m7xp3kkradwrp28fcl15x";
+  };
+
+  ERL_LIBS = "${esdl}/lib/erlang/lib:${cl}/lib/erlang/lib";
+
+  patchPhase = ''
+    sed -i 's,include("sdl_keyboard.hrl"),include_lib("esdl/include/sdl_keyboard.hrl"),' \
+      src/wings_body.erl plugins_src/commands/wpc_constraints.erl
+
+    # Fix reference
+    sed -i 's,wings/e3d/,,' plugins_src/import_export/wpc_lwo.erl
+  '';
+
+  buildInputs = [ erlang esdl cl ];
+
+  # 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 fonts textures shaders plugins $out/lib/$name
+    cat << EOF > $out/bin/wings
+    #!/bin/sh
+    ${erlang}/bin/erl -smp disable \
+      -pa ${esdl}/lib/erlang/lib/${cl.name}/ebin \
+      -pa ${esdl}/lib/erlang/lib/${esdl.name}/ebin \
+      -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 = "BSD";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix b/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
new file mode 100644
index 000000000000..e11bc3dd5bb9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib, qtbase, qtsvg, libglvnd, fetchurl, makeDesktopItem }:
+stdenv.mkDerivation rec {
+  name = "write_stylus-${version}";
+  version = "209";
+
+  desktopItem = makeDesktopItem {
+    name = "Write";
+    exec = "Write";
+    comment = "A word processor for handwriting";
+    icon = "write_stylus";
+    desktopName = "Write";
+    genericName = "Write";
+    categories = "Office;Graphics";
+  };
+
+  src = fetchurl {
+    url = "http://www.styluslabs.com/write/write${version}.tar.gz";
+    sha256 = "1p6glp4vdpwl8hmhypayc4cvs3j9jfmjfhhrgqm2xkgl5bfbv2qd";
+  };
+
+  # taken from: https://www.iconfinder.com/icons/50835/edit_pencil_write_icon
+  # license: Free for commercial use
+  icon = fetchurl {
+    url = "https://oyra.eu/write/icon.tar.gz";
+    sha256 = "1zd98g63apwi17qc1hm1g14maain5d18g4afadxm30qjz2s0mvs8";
+  };
+
+  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
+
+    # untar icons
+    tar -xzf ${icon} *.tar.gz -C $out/
+
+    mkdir -p $out/share/applications
+    ln -s ${desktopItem}/share/applications/* $out/share/applications/
+  '';
+  preFixup = let
+    libPath = lib.makeLibraryPath [
+      qtbase            # libQt5PrintSupport.so.5
+      qtsvg             # libQt5Svg.so.5
+      stdenv.cc.cc.lib  # libstdc++.so.6
+      libglvnd          # ibGL.so.1
+    ];
+  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/nixpkgs/pkgs/applications/graphics/xaos/default.nix b/nixpkgs/pkgs/applications/graphics/xaos/default.nix
new file mode 100644
index 000000000000..a6f97bb5334e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/xaos/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, aalib, gsl, libpng, libX11, xproto, libXext
+, xextproto, libXt, zlib, gettext, intltool, perl }:
+
+stdenv.mkDerivation rec {
+  name = "xaos-${version}";
+  version = "3.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/xaos/${name}.tar.gz";
+    sha256 = "15cd1cx1dyygw6g2nhjqq3bsfdj8sj8m4va9n75i0f3ryww3x7wq";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  buildInputs = [
+    aalib gsl libpng libX11 xproto libXext xextproto
+    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/nixpkgs/pkgs/applications/graphics/xara/debian-patches.nix b/nixpkgs/pkgs/applications/graphics/xara/debian-patches.nix
new file mode 100644
index 000000000000..dd3061461868
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/xara/debian-patches.nix
@@ -0,0 +1,30 @@
+# Generated by debian-patches.sh from debian-patches.txt
+let
+  prefix = "http://patch-tracker.debian.org/patch/series/dl/xaralx/0.7r1785-5";
+in
+[
+  {
+    url = "${prefix}/30_gtk_wxwidgets_symbol_clash";
+    sha256 = "1rc9dh9mnp93mad96dkp7idyhhcw7h6w0g5s92mqgzj79hqgaziz";
+  }
+  {
+    url = "${prefix}/40_algorithm_include";
+    sha256 = "03jhl1qnxj7nl8malf6v1y24aldfz87x1p2jxp04mrr35nzvyyc0";
+  }
+  {
+    url = "${prefix}/50_update_imagemagick_version_parser";
+    sha256 = "1nilsqghlr649sc14n1aqkhdx7f66rq91gqccdpi17jwijs27497";
+  }
+  {
+    url = "${prefix}/remove-icon-suffix";
+    sha256 = "160zmkgwlsanqivnip89558yvd9zvqp8ks2wbyr2aigl2rafin22";
+  }
+  {
+    url = "${prefix}/45_fix_gcc4";
+    sha256 = "06zsj0z9v5n557gj8337v6xd26clbvm4dc0qhvpvzbisq81l9jyi";
+  }
+  {
+    url = "${prefix}/55_fix_contstuctor_call";
+    sha256 = "0b14glrcwhv0ja960h56n5jm4f9563ladap2pgaywihq485ql1c1";
+  }
+]
diff --git a/nixpkgs/pkgs/applications/graphics/xara/debian-patches.txt b/nixpkgs/pkgs/applications/graphics/xara/debian-patches.txt
new file mode 100644
index 000000000000..5c95d401a323
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/xara/debian-patches.txt
@@ -0,0 +1,7 @@
+xaralx/0.7r1785-5
+30_gtk_wxwidgets_symbol_clash
+40_algorithm_include
+50_update_imagemagick_version_parser
+remove-icon-suffix
+45_fix_gcc4
+55_fix_contstuctor_call
diff --git a/nixpkgs/pkgs/applications/graphics/xara/default.nix b/nixpkgs/pkgs/applications/graphics/xara/default.nix
new file mode 100644
index 000000000000..56388a8a2555
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/xara/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, automake, gettext, freetype, libxml2, pango, pkgconfig
+, wxGTK, gtk2, perl, zip}:
+
+stdenv.mkDerivation {
+  name = "xaralx-0.7r1785";
+
+  src = fetchurl {
+    url = http://downloads2.xara.com/opensource/XaraLX-0.7r1785.tar.bz2;
+    sha256 = "05xbzq1i1vw2mdsv7zjqfpxfv3g1j0g5kks0gq6sh373xd6y8lyh";
+  };
+
+  nativeBuildInputs = [ automake pkgconfig gettext perl zip ];
+  buildInputs = [ wxGTK gtk2 libxml2 freetype pango ];
+
+  configureFlags = [ "--disable-svnversion" ];
+
+  patches = map fetchurl (import ./debian-patches.nix);
+
+  prePatch = "patchShebangs Scripts";
+
+  meta.broken = true;
+}
diff --git a/nixpkgs/pkgs/applications/graphics/xfig/default.nix b/nixpkgs/pkgs/applications/graphics/xfig/default.nix
new file mode 100644
index 000000000000..429af12b9bb3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/xfig/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, xlibsWrapper, makeWrapper, libXpm
+, libXmu, libXi, libXp, Xaw3d, fig2dev
+}:
+
+let
+  version = "3.2.7a";
+
+in stdenv.mkDerivation {
+  name = "xfig-${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/nixpkgs/pkgs/applications/graphics/xfractint/default.nix b/nixpkgs/pkgs/applications/graphics/xfractint/default.nix
new file mode 100644
index 000000000000..2269f1c18f14
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/xfractint/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, libX11, libXft}:
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "xfractint";
+  version = "20.04p14";
+  # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
+  src = fetchurl {
+    url = "https://www.fractint.net/ftp/current/linux/xfractint-${version}.tar.gz";
+    sha256 = "0jdqr639z862qrswwk5srmv4fj5d7rl8kcscpn6mlkx4jvjmca0f";
+  };
+
+  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/nixpkgs/pkgs/applications/graphics/xournal/default.nix b/nixpkgs/pkgs/applications/graphics/xournal/default.nix
new file mode 100644
index 000000000000..cfad449fb028
--- /dev/null
+++ b/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, xproto, 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 xproto zlib poppler
+  ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
+    libgnomeprint libgnomeprintui
+  ];
+
+  nativeBuildInputs = [ autoconf automake libtool pkgconfig ];
+
+  NIX_LDFLAGS = [ "-lz" ]
+    ++ stdenv.lib.optionals (!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/nixpkgs/pkgs/applications/graphics/xzgv/default.nix b/nixpkgs/pkgs/applications/graphics/xzgv/default.nix
new file mode 100644
index 000000000000..69ab67dffb73
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/xzgv/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, gtk2, libexif, pkgconfig, texinfo }:
+
+stdenv.mkDerivation rec {
+  name = "xzgv-${version}";
+  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/nixpkgs/pkgs/applications/graphics/yacreader/default.nix b/nixpkgs/pkgs/applications/graphics/yacreader/default.nix
new file mode 100644
index 000000000000..3cf42343658c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/yacreader/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, qmake, poppler, pkgconfig, libunarr, libGLU
+, qtdeclarative, qtgraphicaleffects, qtmultimedia, qtquickcontrols, qtscript
+}:
+
+stdenv.mkDerivation rec {
+  name = "yacreader-${version}";
+  version = "9.5.0";
+
+  src = fetchurl {
+    url = "https://github.com/YACReader/yacreader/releases/download/${version}/${name}-src.tar.xz";
+    sha256 = "0cv5y76kjvsqsv4fp99j8np5pm4m76868i1nn40q6hy573dmxwm6";
+  };
+
+  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 = stdenv.lib.licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/yed/default.nix b/nixpkgs/pkgs/applications/graphics/yed/default.nix
new file mode 100644
index 000000000000..7267e9bc4857
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/yed/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip, makeWrapper, unzip, jre }:
+
+stdenv.mkDerivation rec {
+  name = "yEd-${version}";
+  version = "3.18.2";
+
+  src = fetchzip {
+    url = "https://www.yworks.com/resources/yed/demo/${name}.zip";
+    sha256 = "1csj19j9mfx4jfc949sz672h8lnfj217nn32d54cxj8llks82ycy";
+  };
+
+  nativeBuildInputs = [ makeWrapper unzip ];
+
+  installPhase = ''
+    mkdir -p $out/yed
+    cp -r * $out/yed
+    mkdir -p $out/bin
+
+    makeWrapper ${jre}/bin/java $out/bin/yed \
+      --add-flags "-jar $out/yed/yed.jar --"
+  '';
+
+  meta = with stdenv.lib; {
+    license = licenses.unfree;
+    homepage = http://www.yworks.com/en/products/yfiles/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/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix b/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix
new file mode 100644
index 000000000000..03ffa8af3706
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/zgrviewer/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, jre, unzip}:
+stdenv.mkDerivation rec {
+  version = "0.9.0";
+  pname = "zgrviewer";
+  name="${pname}-${version}";
+  src = fetchurl {
+    url = "mirror://sourceforge/zvtm/${pname}/${version}/${name}.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 '#!/bin/sh' > "$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/nixpkgs/pkgs/applications/graphics/zgv/default.nix b/nixpkgs/pkgs/applications/graphics/zgv/default.nix
new file mode 100644
index 000000000000..7a49e5b2cb7f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/zgv/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, fetchpatch, pkgconfig, SDL, SDL_image, libjpeg, libpng, libtiff }:
+
+stdenv.mkDerivation rec {
+  name = "zgv-${version}";
+  version = "5.9";
+  src = fetchurl {
+    url = "https://www.svgalib.org/rus/zgv/${name}.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/nixpkgs/pkgs/applications/graphics/zgv/switch.patch b/nixpkgs/pkgs/applications/graphics/zgv/switch.patch
new file mode 100644
index 000000000000..0b5ad092d72d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/akonadi-calendar.nix b/nixpkgs/pkgs/applications/kde/akonadi-calendar.nix
new file mode 100644
index 000000000000..ce6b6f75f93c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadi-calendar.nix
@@ -0,0 +1,20 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  akonadi, akonadi-contacts, kcalcore, 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 kcalcore kcalutils kcontacts kidentitymanagement
+    kio kmailtransport
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix b/nixpkgs/pkgs/applications/kde/akonadi-contacts.nix
new file mode 100644
index 000000000000..b09058b60be9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix b/nixpkgs/pkgs/applications/kde/akonadi-import-wizard.nix
new file mode 100644
index 000000000000..cc1acbc6dd05
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/akonadi-mime.nix b/nixpkgs/pkgs/applications/kde/akonadi-mime.nix
new file mode 100644
index 000000000000..0ed958b4e770
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/akonadi-notes.nix b/nixpkgs/pkgs/applications/kde/akonadi-notes.nix
new file mode 100644
index 000000000000..72c4d799239c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/akonadi-search.nix b/nixpkgs/pkgs/applications/kde/akonadi-search.nix
new file mode 100644
index 000000000000..617c086ad9c9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadi-search.nix
@@ -0,0 +1,20 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  akonadi, akonadi-mime, kcalcore, 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 kcalcore kcontacts kcoreaddons kmime qtbase
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch b/nixpkgs/pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch
new file mode 100644
index 000000000000..1b5e12c7ec32
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch
@@ -0,0 +1,49 @@
+From bc018b4bc816a3b51deb9739bedbf8a2268d0684 Mon Sep 17 00:00:00 2001
+From: gnidorah <gnidorah@users.noreply.github.com>
+Date: Fri, 22 Dec 2017 17:36:03 +0300
+Subject: [PATCH] Revert "Make Akonadi installation properly relocatable"
+
+This reverts commit b2bb55f13f2ac783f89cc414de8c39f62fa2096a.
+---
+ CMakeLists.txt            | 3 ---
+ KF5AkonadiConfig.cmake.in | 6 +++---
+ 2 files changed, 3 insertions(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9788bea94..15bad00fd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -285,9 +285,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 75abede50..10f039376 100644
+--- a/KF5AkonadiConfig.cmake.in
++++ b/KF5AkonadiConfig.cmake.in
+@@ -13,8 +13,8 @@ find_dependency(KF5ConfigWidgets "@KF5_VERSION@")
+ find_dependency(Qt5DBus "@QT_REQUIRED_VERSION@")
+ find_dependency(Qt5Network "@QT_REQUIRED_VERSION@")
+ 
+-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@")
+ 
+@@ -22,4 +22,4 @@ 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@")
+-- 
+2.15.1
+
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/akonadi-paths.patch b/nixpkgs/pkgs/applications/kde/akonadi/akonadi-paths.patch
new file mode 100644
index 000000000000..9fa3c8a14141
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadi/akonadi-paths.patch
@@ -0,0 +1,191 @@
+diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
+index d85c1a79b..8df02710c 100644
+--- a/src/akonadicontrol/agentmanager.cpp
++++ b/src/akonadicontrol/agentmanager.cpp
+@@ -78,12 +78,12 @@ AgentManager::AgentManager(bool verbose, QObject *parent)
+     mStorageController = new Akonadi::ProcessControl;
+     mStorageController->setShutdownTimeout(15 * 1000);   // the server needs more time for shutdown if we are using an internal mysqld
+     connect(mStorageController, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::serverFailure);
+-    mStorageController->start(QStringLiteral("akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
++    mStorageController->start(QLatin1String(NIX_OUT "/bin/akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+ 
+     if (mAgentServerEnabled) {
+         mAgentServer = new Akonadi::ProcessControl;
+         connect(mAgentServer, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::agentServerFailure);
+-        mAgentServer->start(QStringLiteral("akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
++        mAgentServer->start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+     }
+ }
+ 
+diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
+index be1cc4afb..6d0c1d7e5 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 8b057b459..3fa4548ad 100644
+--- a/src/server/storage/dbconfigmysql.cpp
++++ b/src/server/storage/dbconfigmysql.cpp
+@@ -63,7 +63,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
+@@ -71,25 +70,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
+-    const QStringList mysqldSearchPath = QStringList()
+-                                         << QStringLiteral("/usr/bin")
+-                                         << QStringLiteral("/usr/sbin")
+-                                         << QStringLiteral("/usr/local/sbin")
+-                                         << QStringLiteral("/usr/local/libexec")
+-                                         << QStringLiteral("/usr/libexec")
+-                                         << QStringLiteral("/opt/mysql/libexec")
+-                                         << QStringLiteral("/opt/local/lib/mysql5/bin")
+-                                         << QStringLiteral("/opt/mysql/sbin");
+-    if (defaultServerPath.isEmpty()) {
+-        defaultServerPath = QStandardPaths::findExecutable(QStringLiteral("mysqld"), mysqldSearchPath);
+-    }
+-
+-    const QString mysqladminPath = QStandardPaths::findExecutable(QStringLiteral("mysqladmin"), mysqldSearchPath);
++    const QString mysqladminPath = QLatin1String(NIXPKGS_MYSQL_MYSQLADMIN);
+     if (!mysqladminPath.isEmpty()) {
+ #ifndef Q_OS_WIN
+         defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/mysql.socket shutdown")
+@@ -99,10 +80,10 @@ bool DbConfigMysql::init(QSettings &settings)
+ #endif
+     }
+ 
+-    mMysqlInstallDbPath = QStandardPaths::findExecutable(QStringLiteral("mysql_install_db"), mysqldSearchPath);
++    mMysqlInstallDbPath = QLatin1String(NIXPKGS_MYSQL_MYSQL_INSTALL_DB);
+     qCDebug(AKONADISERVER_LOG) << "Found mysql_install_db: " << mMysqlInstallDbPath;
+ 
+-    mMysqlCheckPath = QStandardPaths::findExecutable(QStringLiteral("mysqlcheck"), mysqldSearchPath);
++    mMysqlCheckPath = QLatin1String(NIXPKGS_MYSQL_MYSQLCHECK);
+     qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
+ 
+     mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
+@@ -119,7 +100,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();
+ 
+@@ -129,9 +110,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;
+ 
+@@ -140,9 +118,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();
+@@ -196,7 +171,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 6b50ae50e..f94a8c5eb 100644
+--- a/src/server/storage/dbconfigpostgresql.cpp
++++ b/src/server/storage/dbconfigpostgresql.cpp
+@@ -58,7 +58,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
+     // determine default settings depending on the driver
+     QString defaultHostName;
+     QString defaultOptions;
+-    QString defaultServerPath;
+     QString defaultInitDbPath;
+     QString defaultPgData;
+ 
+@@ -70,35 +69,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
+ 
+     mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
+     if (mInternalServer) {
+-        QStringList postgresSearchPath;
+-
+-#ifdef POSTGRES_PATH
+-        const QString dir(QStringLiteral(POSTGRES_PATH));
+-        if (QDir(dir).exists()) {
+-            postgresSearchPath << QStringLiteral(POSTGRES_PATH);
+-        }
+-#endif
+-        postgresSearchPath << QStringLiteral("/usr/bin")
+-                           << QStringLiteral("/usr/sbin")
+-                           << QStringLiteral("/usr/local/sbin");
+-        // Locale all versions in /usr/lib/postgresql (i.e. /usr/lib/postgresql/X.Y) in reversed
+-        // sorted order, so we search from the newest one to the oldest.
+-        QStringList postgresVersionedSearchPaths;
+-        QDir versionedDir(QStringLiteral("/usr/lib/postgresql"));
+-        if (versionedDir.exists()) {
+-            const auto versionedDirs = versionedDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed);
+-            for (const auto &path : versionedDirs) {
+-                // Don't break once PostgreSQL 10 is released, but something more future-proof will be needed
+-                if (path.fileName().startsWith(QLatin1String("10."))) {
+-                    postgresVersionedSearchPaths.prepend(path.absoluteFilePath() + QStringLiteral("/bin"));
+-                } else {
+-                    postgresVersionedSearchPaths.append(path.absoluteFilePath() + QStringLiteral("/bin"));
+-                }
+-            }
+-        }
+-        postgresSearchPath.append(postgresVersionedSearchPaths);
+-        defaultServerPath = QStandardPaths::findExecutable(QStringLiteral("pg_ctl"), postgresSearchPath);
+-        defaultInitDbPath = QStandardPaths::findExecutable(QStringLiteral("initdb"), postgresSearchPath);
++        defaultInitDbPath = QLatin1String(NIXPKGS_POSTGRES_INITDB);
+         defaultHostName = Utils::preferredSocketDirectory(StandardDirs::saveDir("data", QStringLiteral("db_misc")));
+         defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
+     }
+@@ -118,10 +89,7 @@ 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()) {
+@@ -142,7 +110,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();
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/akonadi-timestamps.patch b/nixpkgs/pkgs/applications/kde/akonadi/akonadi-timestamps.patch
new file mode 100644
index 000000000000..25a835f5ba24
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadi/akonadi-timestamps.patch
@@ -0,0 +1,14 @@
+Index: akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp
+===================================================================
+--- akonadi-17.04.0.orig/src/server/storage/dbconfigmysql.cpp
++++ akonadi-17.04.0/src/server/storage/dbconfigmysql.cpp
+@@ -229,8 +229,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)) {
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/default.nix b/nixpkgs/pkgs/applications/kde/akonadi/default.nix
new file mode 100644
index 000000000000..cba0b1e59e3a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadi/default.nix
@@ -0,0 +1,33 @@
+{
+  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  extra-cmake-modules, shared-mime-info,
+  boost, kcompletion, kconfigwidgets, kcrash, kdbusaddons, kdesignerplugin,
+  ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
+}:
+
+mkDerivation {
+  name = "akonadi";
+  meta = {
+    license = [ lib.licenses.lgpl21 ];
+    maintainers = kdepimTeam;
+  };
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  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_INITDB=\"\"''
+  ];
+  preConfigure = ''
+    NIX_CFLAGS_COMPILE+=" -DNIX_OUT=\"$out\""
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/series b/nixpkgs/pkgs/applications/kde/akonadi/series
new file mode 100644
index 000000000000..f828d503cc77
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadi/series
@@ -0,0 +1,3 @@
+akonadi-paths.patch
+akonadi-timestamps.patch
+0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch
diff --git a/nixpkgs/pkgs/applications/kde/akonadiconsole.nix b/nixpkgs/pkgs/applications/kde/akonadiconsole.nix
new file mode 100644
index 000000000000..1470406d5a43
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadiconsole.nix
@@ -0,0 +1,21 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  akonadi, akonadi-contacts, calendarsupport, kcalcore, 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 kcalcore kcompletion kconfigwidgets
+    kcontacts kdbusaddons kitemmodels kpimtextedit ktextwidgets kxmlgui
+    messagelib qtbase libkdepim akonadi-search xapian
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/akregator.nix b/nixpkgs/pkgs/applications/kde/akregator.nix
new file mode 100644
index 000000000000..98d53bc80838
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/ark/default.nix b/nixpkgs/pkgs/applications/kde/ark/default.nix
new file mode 100644
index 000000000000..598857f2e70d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/ark/default.nix
@@ -0,0 +1,37 @@
+{
+  mkDerivation, lib, makeWrapper,
+
+  extra-cmake-modules, kdoctools,
+
+  karchive, kconfig, kcrash, kdbusaddons, ki18n, kiconthemes, kitemmodels,
+  khtml, kio, kparts, kpty, kservice, kwidgetsaddons, libarchive,
+
+  # Archive tools
+  p7zip, unzip, zip,
+
+  # Unfree tools
+  unfreeEnableUnrar ? false, unrar,
+}:
+
+mkDerivation {
+  name = "ark";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+  propagatedBuildInputs = [
+    karchive kconfig kcrash kdbusaddons khtml ki18n kiconthemes kio kitemmodels
+    kparts kpty kservice kwidgetsaddons libarchive
+  ];
+  outputs = [ "out" "dev" ];
+  postFixup =
+    let
+      PATH =
+        lib.makeBinPath
+        ([ p7zip unzip zip ] ++ lib.optional unfreeEnableUnrar unrar);
+    in ''
+      wrapProgram "$out/bin/ark" --prefix PATH : "${PATH}"
+    '';
+  meta = {
+    license = with lib.licenses;
+      [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree;
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/kde/baloo-widgets.nix b/nixpkgs/pkgs/applications/kde/baloo-widgets.nix
new file mode 100644
index 000000000000..3479b6600fc9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/calendarsupport.nix b/nixpkgs/pkgs/applications/kde/calendarsupport.nix
new file mode 100644
index 000000000000..485397ec4aac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/calendarsupport.nix
@@ -0,0 +1,20 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  akonadi, akonadi-calendar, akonadi-mime, 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 kcalutils kdepim-apps-libs kholidays pimcommon qttools
+  ];
+  propagatedBuildInputs = [ akonadi-calendar kidentitymanagement kmime ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/default.nix b/nixpkgs/pkgs/applications/kde/default.nix
new file mode 100644
index 000000000000..43974e027a2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/default.nix
@@ -0,0 +1,173 @@
+/*
+
+# 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,
+  okteta
+}:
+
+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 ];
+      };
+    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 {};
+      calendarsupport = callPackage ./calendarsupport.nix {};
+      dolphin = callPackage ./dolphin.nix {};
+      dolphin-plugins = callPackage ./dolphin-plugins.nix {};
+      dragon = callPackage ./dragon.nix {};
+      eventviews = callPackage ./eventviews.nix {};
+      ffmpegthumbs = callPackage ./ffmpegthumbs.nix { };
+      filelight = callPackage ./filelight.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 {};
+      kate = callPackage ./kate.nix {};
+      kcachegrind = callPackage ./kcachegrind.nix {};
+      kcalc = callPackage ./kcalc.nix {};
+      kcalcore = callPackage ./kcalcore.nix {};
+      kcalutils = callPackage ./kcalutils.nix {};
+      kcolorchooser = callPackage ./kcolorchooser.nix {};
+      kcontacts = callPackage ./kcontacts.nix {};
+      kdav = callPackage ./kdav.nix {};
+      kdebugsettings = callPackage ./kdebugsettings.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.nix {};
+      kdepim-addons = callPackage ./kdepim-addons.nix {};
+      kdepim-apps-libs = callPackage ./kdepim-apps-libs {};
+      kdf = callPackage ./kdf.nix {};
+      kdialog = callPackage ./kdialog.nix {};
+      keditbookmarks = callPackage ./keditbookmarks.nix {};
+      kget = callPackage ./kget.nix {};
+      kgpg = callPackage ./kgpg.nix {};
+      khelpcenter = callPackage ./khelpcenter.nix {};
+      kidentitymanagement = callPackage ./kidentitymanagement.nix {};
+      kig = callPackage ./kig.nix {};
+      kimap = callPackage ./kimap.nix {};
+      kitinerary = callPackage ./kitinerary.nix {};
+      kio-extras = callPackage ./kio-extras.nix {};
+      kldap = callPackage ./kldap.nix {};
+      kleopatra = callPackage ./kleopatra.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 {};
+      kmix = callPackage ./kmix.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 {};
+      kpimtextedit = callPackage ./kpimtextedit.nix {};
+      ksmtp = callPackage ./ksmtp {};
+      kqtquickcharts = callPackage ./kqtquickcharts.nix {};
+      kpkpass = callPackage ./kpkpass.nix {};
+      krdc = callPackage ./krdc.nix {};
+      krfb = callPackage ./krfb.nix {};
+      kruler = callPackage ./kruler.nix {};
+      ksystemlog = callPackage ./ksystemlog.nix {};
+      ktnef = callPackage ./ktnef.nix {};
+      kwalletmanager = callPackage ./kwalletmanager.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 {};
+      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 {};
+      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 {};
+      spectacle = callPackage ./spectacle.nix {};
+      # Okteta was removed from kde applications and will now be released independently
+      # Lets keep an alias for compatibility reasons
+      inherit okteta;
+    };
+
+in lib.makeScope libsForQt5.newScope packages
diff --git a/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix b/nixpkgs/pkgs/applications/kde/dolphin-plugins.nix
new file mode 100644
index 000000000000..5580952f40a0
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/dolphin.nix b/nixpkgs/pkgs/applications/kde/dolphin.nix
new file mode 100644
index 000000000000..241bb71983a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/dolphin.nix
@@ -0,0 +1,30 @@
+{
+  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 ];
+  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/nixpkgs/pkgs/applications/kde/dragon.nix b/nixpkgs/pkgs/applications/kde/dragon.nix
new file mode 100644
index 000000000000..9dd55ec4b9c1
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/eventviews.nix b/nixpkgs/pkgs/applications/kde/eventviews.nix
new file mode 100644
index 000000000000..495491f6d3c1
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/fetch.sh b/nixpkgs/pkgs/applications/kde/fetch.sh
new file mode 100644
index 000000000000..3b01e4970390
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/fetch.sh
@@ -0,0 +1 @@
+WGET_ARGS=( https://download.kde.org/stable/applications/18.12.0/ -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix b/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix
new file mode 100644
index 000000000000..aa03425f36a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/ffmpegthumbs.nix
@@ -0,0 +1,15 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  ffmpeg, kio
+}:
+
+mkDerivation {
+  name = "ffmpegthumbs";
+  meta = {
+    license = with lib.licenses; [ gpl2 bsd3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ ffmpeg kio ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/filelight.nix b/nixpkgs/pkgs/applications/kde/filelight.nix
new file mode 100644
index 000000000000..a3be5be7f0a2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix b/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix
new file mode 100644
index 000000000000..bb8a97e8341e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix
@@ -0,0 +1,20 @@
+{
+  mkDerivation, copyPathsToStore, 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" ];
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    grantlee ki18n kiconthemes knewstuff kservice kxmlgui qtbase
+  ];
+  propagatedBuildInputs = [ grantlee kiconthemes knewstuff ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch b/nixpkgs/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch
new file mode 100644
index 000000000000..ebb81248475f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch
@@ -0,0 +1,155 @@
+diff --git a/src/grantleetheme.cpp b/src/grantleetheme.cpp
+index 27d5bc8..8d43140 100644
+--- a/src/grantleetheme.cpp
++++ b/src/grantleetheme.cpp
+@@ -46,7 +46,7 @@ ThemePrivate::ThemePrivate(const ThemePrivate &other)
+     , description(other.description)
+     , name(other.name)
+     , dirName(other.dirName)
+-    , absolutePath(other.absolutePath)
++    , absolutePaths(other.absolutePaths)
+     , author(other.author)
+     , email(other.email)
+     , loader(other.loader)
+@@ -64,12 +64,15 @@ void ThemePrivate::setupEngine()
+ 
+ void ThemePrivate::setupLoader()
+ {
+-    // Get the parent dir with themes, we set the theme directory separately
+-    QDir dir(absolutePath);
+-    dir.cdUp();
++    QStringList templateDirs;
++    for (const QString& path : absolutePaths) {
++        QDir dir(path);
++        dir.cdUp();
++        templateDirs << dir.absolutePath();
++    }
+ 
+     loader = QSharedPointer<GrantleeTheme::QtResourceTemplateLoader>::create();
+-    loader->setTemplateDirs({ dir.absolutePath() });
++    loader->setTemplateDirs(templateDirs);
+     loader->setTheme(dirName);
+ 
+     if (!sEngine) {
+@@ -121,7 +124,7 @@ Theme::Theme(const QString &themePath, const QString &dirName, const QString &de
+     KConfigGroup group(&config, QStringLiteral("Desktop Entry"));
+     if (group.isValid()) {
+         d->dirName = dirName;
+-        d->absolutePath = themePath;
++        d->absolutePaths = QStringList(themePath);
+         d->name = group.readEntry("Name", QString());
+         d->description = group.readEntry("Description", QString());
+         d->themeFileName = group.readEntry("FileName", QString());
+@@ -140,7 +143,7 @@ Theme::~Theme()
+ 
+ bool Theme::operator==(const Theme &other) const
+ {
+-    return isValid() && other.isValid() && d->absolutePath == other.absolutePath();
++    return isValid() && other.isValid() && d->absolutePaths == other.absolutePaths();
+ }
+ 
+ Theme &Theme::operator=(const Theme &other)
+@@ -184,7 +187,12 @@ QString Theme::dirName() const
+ 
+ QString Theme::absolutePath() const
+ {
+-    return d->absolutePath;
++    return d->absolutePaths.first();
++}
++
++QStringList Theme::absolutePaths() const
++{
++    return d->absolutePaths;
+ }
+ 
+ QString Theme::author() const
+@@ -223,6 +231,13 @@ QString Theme::render(const QString &templateName, const QVariantHash &data, con
+     return result;
+ }
+ 
++void Theme::addThemeDir(const QString& path)
++{
++    QDir dir(path);
++    dir.cdUp();
++    d->absolutePaths << dir.absolutePath();
++}
++
+ void Theme::addPluginPath(const QString &path)
+ {
+     if (!ThemePrivate::sEngine) {
+diff --git a/src/grantleetheme.h b/src/grantleetheme.h
+index a25c27b..be38299 100644
+--- a/src/grantleetheme.h
++++ b/src/grantleetheme.h
+@@ -48,11 +48,14 @@ public:
+     Q_REQUIRED_RESULT QStringList displayExtraVariables() const;
+     Q_REQUIRED_RESULT QString dirName() const;
+     Q_REQUIRED_RESULT QString absolutePath() const;
++    Q_REQUIRED_RESULT QStringList absolutePaths() const;
+     Q_REQUIRED_RESULT QString author() const;
+     Q_REQUIRED_RESULT QString authorEmail() const;
+ 
+     Q_REQUIRED_RESULT QString render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain = QByteArray());
+ 
++    void addThemeDir(const QString&);
++
+     static void addPluginPath(const QString &path);
+ 
+ private:
+diff --git a/src/grantleetheme_p.h b/src/grantleetheme_p.h
+index eb73dcb..00510e9 100644
+--- a/src/grantleetheme_p.h
++++ b/src/grantleetheme_p.h
+@@ -43,7 +43,7 @@ public:
+     QString description;
+     QString name;
+     QString dirName;
+-    QString absolutePath;
++    QStringList absolutePaths;
+     QString author;
+     QString email;
+ 
+diff --git a/src/grantleethememanager.cpp b/src/grantleethememanager.cpp
+index 606d717..dc99041 100644
+--- a/src/grantleethememanager.cpp
++++ b/src/grantleethememanager.cpp
+@@ -125,25 +125,18 @@ public:
+ 
+         for (const QString &directory : qAsConst(themesDirectories)) {
+             QDirIterator dirIt(directory, QStringList(), QDir::AllDirs | QDir::NoDotAndDotDot);
+-            QStringList alreadyLoadedThemeName;
+             while (dirIt.hasNext()) {
+                 dirIt.next();
+                 const QString dirName = dirIt.fileName();
+                 GrantleeTheme::Theme theme = q->loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName);
+                 if (theme.isValid()) {
+                     QString themeName = theme.name();
+-                    if (alreadyLoadedThemeName.contains(themeName)) {
+-                        int i = 2;
+-                        const QString originalName(theme.name());
+-                        while (alreadyLoadedThemeName.contains(themeName)) {
+-                            themeName = originalName + QStringLiteral(" (%1)").arg(i);
+-                            ++i;
+-                        }
+-                        theme.d->name = themeName;
++                    QMap<QString, GrantleeTheme::Theme>::iterator i = themes.find(dirName);
++                    if (i != themes.end()) {
++                        i.value().addThemeDir(dirIt.filePath());
++                    } else {
++                        themes.insert(dirName, theme);
+                     }
+-                    alreadyLoadedThemeName << themeName;
+-                    themes.insert(dirName, theme);
+-                    //qDebug()<<" theme.name()"<<theme.name();
+                 }
+             }
+             watch->addDir(directory);
+@@ -366,7 +359,7 @@ QString ThemeManager::pathFromThemes(const QString &themesRelativePath, const QS
+                 GrantleeTheme::Theme theme = loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName);
+                 if (theme.isValid()) {
+                     if (dirName == themeName) {
+-                        return theme.absolutePath();
++                        return theme.absolutePaths().first();
+                     }
+                 }
+             }
diff --git a/nixpkgs/pkgs/applications/kde/grantleetheme/series b/nixpkgs/pkgs/applications/kde/grantleetheme/series
new file mode 100644
index 000000000000..9095599ea56b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/grantleetheme/series
@@ -0,0 +1 @@
+grantlee-merge-theme-dirs.patch
diff --git a/nixpkgs/pkgs/applications/kde/gwenview.nix b/nixpkgs/pkgs/applications/kde/gwenview.nix
new file mode 100644
index 000000000000..3d03d1dea3e7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/incidenceeditor.nix b/nixpkgs/pkgs/applications/kde/incidenceeditor.nix
new file mode 100644
index 000000000000..8224b98253b6
--- /dev/null
+++ b/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, 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 qtbase
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/k3b.nix b/nixpkgs/pkgs/applications/kde/k3b.nix
new file mode 100644
index 000000000000..9b16485cfa77
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/k3b.nix
@@ -0,0 +1,48 @@
+{ mkDerivation, lib
+, extra-cmake-modules, kdoctools, makeWrapper, shared-mime-info
+, qtwebkit
+, 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, 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 = [
+    # qt
+    qtwebkit
+    # 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 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/nixpkgs/pkgs/applications/kde/kaddressbook.nix b/nixpkgs/pkgs/applications/kde/kaddressbook.nix
new file mode 100644
index 000000000000..b4b0450e78bf
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kalarm.nix b/nixpkgs/pkgs/applications/kde/kalarm.nix
new file mode 100644
index 000000000000..9978e7ff6674
--- /dev/null
+++ b/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, kcalcore, 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 kcalcore kcalutils
+    kholidays kidentitymanagement libkdepim mailcommon kmailtransport kmime
+    pimcommon kpimtextedit kdepim-apps-libs messagelib
+
+    qtx11extras
+  ];
+  propagatedUserEnvPkgs = [ kdepim-runtime ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kalarmcal.nix b/nixpkgs/pkgs/applications/kde/kalarmcal.nix
new file mode 100644
index 000000000000..46832477cc60
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kalarmcal.nix
@@ -0,0 +1,19 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  akonadi, kcalcore, 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 kcalcore kdelibs4support kholidays kidentitymanagement kpimtextedit kcalutils
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kate.nix b/nixpkgs/pkgs/applications/kde/kate.nix
new file mode 100644
index 000000000000..e6b4f6b6bdd4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kate.nix
@@ -0,0 +1,25 @@
+{
+  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 ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ libgit2 ];
+  propagatedBuildInputs = [
+    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/nixpkgs/pkgs/applications/kde/kcachegrind.nix b/nixpkgs/pkgs/applications/kde/kcachegrind.nix
new file mode 100644
index 000000000000..91faaef623a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kcachegrind.nix
@@ -0,0 +1,15 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools,
+  karchive, ki18n, kio, perl, python, php, qttools,
+}:
+
+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 ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kcalc.nix b/nixpkgs/pkgs/applications/kde/kcalc.nix
new file mode 100644
index 000000000000..2d902c220afc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kcalc.nix
@@ -0,0 +1,18 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools,
+  gmp, kconfig, kconfigwidgets, kguiaddons, ki18n, kinit, knotifications,
+  kxmlgui,
+}:
+
+mkDerivation {
+  name = "kcalc";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = [ lib.maintainers.fridh ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    gmp kconfig kconfigwidgets kguiaddons ki18n kinit knotifications kxmlgui
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kcalcore.nix b/nixpkgs/pkgs/applications/kde/kcalcore.nix
new file mode 100644
index 000000000000..4ac9c9b925af
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kcalcore.nix
@@ -0,0 +1,16 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  kdelibs4support, libical
+}:
+
+mkDerivation {
+  name = "kcalcore";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = kdepimTeam;
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [ kdelibs4support libical ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kcalutils.nix b/nixpkgs/pkgs/applications/kde/kcalutils.nix
new file mode 100644
index 000000000000..1628af7e2202
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kcalutils.nix
@@ -0,0 +1,20 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  grantlee, kcalcore, 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 kcalcore kconfig kontactinterface kcoreaddons kdelibs4support
+    kidentitymanagement kpimtextedit
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kcolorchooser.nix b/nixpkgs/pkgs/applications/kde/kcolorchooser.nix
new file mode 100644
index 000000000000..45b32fbe832c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kcontacts.nix b/nixpkgs/pkgs/applications/kde/kcontacts.nix
new file mode 100644
index 000000000000..12b3198a26b2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kcontacts.nix
@@ -0,0 +1,16 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules,
+  kcoreaddons, kconfig, kcodecs, ki18n, qtbase,
+}:
+
+mkDerivation {
+  name = "kcontacts";
+  meta = {
+    license = [ lib.licenses.lgpl21 ];
+    maintainers = kdepimTeam;
+  };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kcoreaddons kconfig kcodecs ki18n qtbase ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kdav.nix b/nixpkgs/pkgs/applications/kde/kdav.nix
new file mode 100644
index 000000000000..800c92511de2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kdav.nix
@@ -0,0 +1,16 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  kcoreaddons, kio, qtxmlpatterns,
+}:
+
+mkDerivation {
+  name = "kdav";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = kdepimTeam;
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ kcoreaddons kio qtxmlpatterns ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kdebugsettings.nix b/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
new file mode 100644
index 000000000000..a58e1b25a2ee
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kdegraphics-mobipocket.nix b/nixpkgs/pkgs/applications/kde/kdegraphics-mobipocket.nix
new file mode 100644
index 000000000000..e5f5b88ec440
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix b/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix
new file mode 100644
index 000000000000..2e43e946d7ff
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix
@@ -0,0 +1,14 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules, kio, libkexiv2, libkdcraw
+}:
+
+mkDerivation {
+  name = "kdegraphics-thumbnailers";
+  meta = {
+    license = [ lib.licenses.lgpl21 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kio libkexiv2 libkdcraw ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix b/nixpkgs/pkgs/applications/kde/kdenetwork-filesharing.nix
new file mode 100644
index 000000000000..d251eb74f274
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kdenlive.nix b/nixpkgs/pkgs/applications/kde/kdenlive.nix
new file mode 100644
index 000000000000..9da12b248c56
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kdenlive.nix
@@ -0,0 +1,69 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, kdoctools
+, kconfig
+, kcrash
+, kguiaddons
+, kiconthemes
+, ki18n
+, kinit
+, kdbusaddons
+, knotifications
+, knewstuff
+, karchive
+, knotifyconfig
+, kplotting
+, ktextwidgets
+, mlt
+, shared-mime-info
+, libv4l
+, kfilemetadata
+, ffmpeg
+, phonon-backend-gstreamer
+, qtdeclarative
+, qtquickcontrols
+, qtscript
+, qtwebkit
+}:
+
+mkDerivation {
+  name = "kdenlive";
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+  ];
+  buildInputs = [
+    kconfig
+    kcrash
+    kdbusaddons
+    kfilemetadata
+    kguiaddons
+    ki18n
+    kiconthemes
+    kinit
+    knotifications
+    knewstuff
+    karchive
+    knotifyconfig
+    kplotting
+    ktextwidgets
+    mlt
+    phonon-backend-gstreamer
+    qtdeclarative
+    qtquickcontrols
+    qtscript
+    qtwebkit
+    shared-mime-info
+    libv4l
+    ffmpeg
+  ];
+  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)|'
+    '';
+  meta = {
+    license = with lib.licenses; [ gpl2Plus ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-addons.nix b/nixpkgs/pkgs/applications/kde/kdepim-addons.nix
new file mode 100644
index 000000000000..75c1bf5be8bf
--- /dev/null
+++ b/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, kcalcore, kcalutils, kconfig, kdbusaddons, kdeclarative,
+  kdepim-apps-libs, kholidays, ki18n, kmime, ktexteditor, ktnef, libgravatar,
+  libksieve, mailcommon, mailimporter, messagelib, poppler, prison, kpkpass,
+  kitinerary
+}:
+
+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 kcalcore kcalutils kconfig kdbusaddons kdeclarative
+    kdepim-apps-libs kholidays ki18n kmime ktexteditor ktnef libgravatar
+    libksieve mailcommon mailimporter messagelib poppler prison kpkpass
+    kitinerary
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix
new file mode 100644
index 000000000000..6189e8706db0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix
@@ -0,0 +1,21 @@
+{
+  mkDerivation, copyPathsToStore, 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;
+  };
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  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/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch
new file mode 100644
index 000000000000..02c369cc4ee8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch
@@ -0,0 +1,62 @@
+Index: kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp
+===================================================================
+--- kdepim-apps-libs-17.04.0.orig/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp
++++ kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp
+@@ -50,9 +50,9 @@ public:
+         mTemplateLoader.clear();
+     }
+ 
+-    void changeGrantleePath(const QString &path)
++    void changeGrantleePath(const QStringList &paths)
+     {
+-        mTemplateLoader->setTemplateDirs(QStringList() << path);
++        mTemplateLoader->setTemplateDirs(paths);
+         mEngine->addTemplateLoader(mTemplateLoader);
+ 
+         mSelfcontainedTemplate = mEngine->loadByName(QStringLiteral("contactgroup.html"));
+@@ -86,12 +86,12 @@ GrantleeContactGroupFormatter::~Grantlee
+ 
+ void GrantleeContactGroupFormatter::setAbsoluteThemePath(const QString &path)
+ {
+-    d->changeGrantleePath(path);
++    d->changeGrantleePath(QStringList(path));
+ }
+ 
+ void GrantleeContactGroupFormatter::setGrantleeTheme(const GrantleeTheme::Theme &theme)
+ {
+-    d->changeGrantleePath(theme.absolutePath());
++    d->changeGrantleePath(theme.absolutePaths());
+ }
+ 
+ inline static void setHashField(QVariantHash &hash, const QString &name, const QString &value)
+Index: kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp
+===================================================================
+--- kdepim-apps-libs-17.04.0.orig/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp
++++ kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp
+@@ -74,9 +74,9 @@ public:
+         mTemplateLoader.clear();
+     }
+ 
+-    void changeGrantleePath(const QString &path)
++    void changeGrantleePath(const QStringList &paths)
+     {
+-        mTemplateLoader->setTemplateDirs(QStringList() << path);
++        mTemplateLoader->setTemplateDirs(paths);
+         mEngine->addTemplateLoader(mTemplateLoader);
+ 
+         mSelfcontainedTemplate = mEngine->loadByName(QStringLiteral("contact.html"));
+@@ -112,12 +112,12 @@ GrantleeContactFormatter::~GrantleeConta
+ 
+ void GrantleeContactFormatter::setAbsoluteThemePath(const QString &path)
+ {
+-    d->changeGrantleePath(path);
++    d->changeGrantleePath(QStringList(path));
+ }
+ 
+ void GrantleeContactFormatter::setGrantleeTheme(const GrantleeTheme::Theme &theme)
+ {
+-    d->changeGrantleePath(theme.absolutePath());
++    d->changeGrantleePath(theme.absolutePaths());
+ }
+ 
+ void GrantleeContactFormatter::setForceDisableQRCode(bool b)
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/series b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/series
new file mode 100644
index 000000000000..1e8a52b55e96
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/series
@@ -0,0 +1 @@
+kdepim-apps-libs-grantlee-merge-theme-dirs.patch
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-runtime.nix b/nixpkgs/pkgs/applications/kde/kdepim-runtime.nix
new file mode 100644
index 000000000000..201930c53d6f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kdepim-runtime.nix
@@ -0,0 +1,26 @@
+{
+  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, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
+  pimcommon, qtwebengine, libkgapi, qtspeech
+}:
+
+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
+    kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine
+    pimcommon libkgapi qtspeech
+  ];
+  # Attempts to build some files before dependencies have been generated
+  enableParallelBuilding = false;
+}
diff --git a/nixpkgs/pkgs/applications/kde/kdf.nix b/nixpkgs/pkgs/applications/kde/kdf.nix
new file mode 100644
index 000000000000..eef94fd5eb24
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kdialog.nix b/nixpkgs/pkgs/applications/kde/kdialog.nix
new file mode 100644
index 000000000000..df301af0cbac
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/keditbookmarks.nix b/nixpkgs/pkgs/applications/kde/keditbookmarks.nix
new file mode 100644
index 000000000000..57741c03ad54
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kget.nix b/nixpkgs/pkgs/applications/kde/kget.nix
new file mode 100644
index 000000000000..6a50f1d08d1c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kgpg.nix b/nixpkgs/pkgs/applications/kde/kgpg.nix
new file mode 100644
index 000000000000..33813f376a54
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kgpg.nix
@@ -0,0 +1,24 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, ki18n, makeWrapper,
+  akonadi-contacts, gnupg1, 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 gnupg1 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 [ gnupg1 ]}"
+  '';
+  meta = {
+    license = [ lib.licenses.gpl2 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/kde/khelpcenter.nix b/nixpkgs/pkgs/applications/kde/khelpcenter.nix
new file mode 100644
index 000000000000..69b629bbeb90
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kidentitymanagement.nix b/nixpkgs/pkgs/applications/kde/kidentitymanagement.nix
new file mode 100644
index 000000000000..92fcc2387797
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kig.nix b/nixpkgs/pkgs/applications/kde/kig.nix
new file mode 100644
index 000000000000..7b8589077952
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kimap.nix b/nixpkgs/pkgs/applications/kde/kimap.nix
new file mode 100644
index 000000000000..9e42c5710583
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kio-extras.nix b/nixpkgs/pkgs/applications/kde/kio-extras.nix
new file mode 100644
index 000000000000..13585848317b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kio-extras.nix
@@ -0,0 +1,22 @@
+{
+  mkDerivation, lib, extra-cmake-modules, kdoctools, shared-mime-info,
+  exiv2, kactivities, karchive, kbookmarks, kconfig, kconfigwidgets,
+  kcoreaddons, kdbusaddons, kguiaddons, kdnssd, kiconthemes, ki18n, kio, khtml,
+  kdelibs4support, kpty, libmtp, libssh, openexr, ilmbase, openslp, phonon,
+  qtsvg, samba, solid
+}:
+
+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 kguiaddons kdnssd kiconthemes ki18n kio khtml kdelibs4support
+    kpty libmtp libssh openexr openslp phonon qtsvg samba solid
+  ];
+  CXXFLAGS = [ "-I${ilmbase.dev}/include/OpenEXR" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kitinerary.nix b/nixpkgs/pkgs/applications/kde/kitinerary.nix
new file mode 100644
index 000000000000..8112460549b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kitinerary.nix
@@ -0,0 +1,19 @@
+{
+  mkDerivation, lib, extra-cmake-modules
+, qtbase, qtdeclarative, ki18n, kmime, kpkpass
+, poppler, kcontacts, kcalcore
+}:
+
+mkDerivation {
+  name = "kitinerary";
+  meta = {
+    license = with lib.licenses; [ lgpl21 ];
+    maintainers = [ lib.maintainers.bkchr ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    qtbase qtdeclarative ki18n kmime kpkpass poppler
+    kcontacts kcalcore
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kldap.nix b/nixpkgs/pkgs/applications/kde/kldap.nix
new file mode 100644
index 000000000000..14a8aea5e67a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kleopatra.nix b/nixpkgs/pkgs/applications/kde/kleopatra.nix
new file mode 100644
index 000000000000..c15c6eb78d69
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kmail-account-wizard.nix b/nixpkgs/pkgs/applications/kde/kmail-account-wizard.nix
new file mode 100644
index 000000000000..f380315cce90
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kmail.nix b/nixpkgs/pkgs/applications/kde/kmail.nix
new file mode 100644
index 000000000000..acb200c59708
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kmail.nix
@@ -0,0 +1,29 @@
+{
+  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,
+}:
+
+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
+  ];
+  propagatedUserEnvPkgs = [ kdepim-runtime kwallet ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kmailtransport.nix b/nixpkgs/pkgs/applications/kde/kmailtransport.nix
new file mode 100644
index 000000000000..703f62aa72c0
--- /dev/null
+++ b/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,
+  kcalcore, 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 kcalcore kcontacts ];
+  propagatedBuildInputs = [ akonadi-mime cyrus_sasl kmime kwallet ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kmbox.nix b/nixpkgs/pkgs/applications/kde/kmbox.nix
new file mode 100644
index 000000000000..c1348edf3f6f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kmime.nix b/nixpkgs/pkgs/applications/kde/kmime.nix
new file mode 100644
index 000000000000..4523a69fc1be
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kmix.nix b/nixpkgs/pkgs/applications/kde/kmix.nix
new file mode 100644
index 000000000000..8010c57d9278
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kolourpaint.nix b/nixpkgs/pkgs/applications/kde/kolourpaint.nix
new file mode 100644
index 000000000000..4501324a8717
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kompare.nix b/nixpkgs/pkgs/applications/kde/kompare.nix
new file mode 100644
index 000000000000..bbaad3a02f83
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/konqueror.nix b/nixpkgs/pkgs/applications/kde/konqueror.nix
new file mode 100644
index 000000000000..e6442fea2f9d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/konqueror.nix
@@ -0,0 +1,20 @@
+{ 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
+  ];
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/kde/konquest.nix b/nixpkgs/pkgs/applications/kde/konquest.nix
new file mode 100644
index 000000000000..cfef018de6cc
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/konsole.nix b/nixpkgs/pkgs/applications/kde/konsole.nix
new file mode 100644
index 000000000000..2847e312d00a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/konsole.nix
@@ -0,0 +1,23 @@
+{
+  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 = [ lib.maintainers.ttuegel ];
+  };
+  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/nixpkgs/pkgs/applications/kde/kontact.nix b/nixpkgs/pkgs/applications/kde/kontact.nix
new file mode 100644
index 000000000000..bb44762e65c5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kontact.nix
@@ -0,0 +1,23 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  qtwebengine,
+  kcmutils, kcrash, kdbusaddons, kwindowsystem,
+  akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit,
+  mailcommon, libkdepim
+}:
+
+mkDerivation {
+  name = "kontact";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = kdepimTeam;
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    qtwebengine
+    kcmutils kcrash kdbusaddons kwindowsystem
+    akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit
+    mailcommon libkdepim
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kontactinterface.nix b/nixpkgs/pkgs/applications/kde/kontactinterface.nix
new file mode 100644
index 000000000000..f2df628f3018
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/korganizer.nix b/nixpkgs/pkgs/applications/kde/korganizer.nix
new file mode 100644
index 000000000000..2f37a1bac0fd
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kpimtextedit.nix b/nixpkgs/pkgs/applications/kde/kpimtextedit.nix
new file mode 100644
index 000000000000..4ede854d5460
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kpkpass.nix b/nixpkgs/pkgs/applications/kde/kpkpass.nix
new file mode 100644
index 000000000000..e9505a72e85e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kpkpass.nix
@@ -0,0 +1,15 @@
+{
+  mkDerivation, lib, extra-cmake-modules
+, qtbase, karchive, shared-mime-info
+}:
+
+mkDerivation {
+  name = "kpkpass";
+  meta = {
+    license = with lib.licenses; [ lgpl21 ];
+    maintainers = [ lib.maintainers.bkchr ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
+  buildInputs = [ qtbase karchive ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kqtquickcharts.nix b/nixpkgs/pkgs/applications/kde/kqtquickcharts.nix
new file mode 100644
index 000000000000..2b3dc5313d9a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/krdc.nix b/nixpkgs/pkgs/applications/kde/krdc.nix
new file mode 100644
index 000000000000..87204c1fe9fc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/krdc.nix
@@ -0,0 +1,25 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, makeWrapper,
+  kcmutils, kcompletion, kconfig, kdnssd, knotifyconfig, kwallet, kwidgetsaddons,
+  libvncserver, freerdp
+}:
+
+mkDerivation {
+  name = "krdc";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+  buildInputs = [
+    kcmutils kcompletion kconfig kdnssd knotifyconfig kwallet kwidgetsaddons
+    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/nixpkgs/pkgs/applications/kde/krfb.nix b/nixpkgs/pkgs/applications/kde/krfb.nix
new file mode 100644
index 000000000000..d2b96bf6100e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/kruler.nix b/nixpkgs/pkgs/applications/kde/kruler.nix
new file mode 100644
index 000000000000..2018245cfcb2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/ksmtp/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch b/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/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/nixpkgs/pkgs/applications/kde/ksmtp/default.nix b/nixpkgs/pkgs/applications/kde/ksmtp/default.nix
new file mode 100644
index 000000000000..6a5f51a17bfe
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/ksystemlog.nix b/nixpkgs/pkgs/applications/kde/ksystemlog.nix
new file mode 100644
index 000000000000..bec92d55966d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/ktnef.nix b/nixpkgs/pkgs/applications/kde/ktnef.nix
new file mode 100644
index 000000000000..b5a3834869db
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/ktnef.nix
@@ -0,0 +1,18 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  kcalcore, kcalutils, kcontacts, kdelibs4support
+}:
+
+mkDerivation {
+  name = "ktnef";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = kdepimTeam;
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    kcalcore kcalutils kcontacts kdelibs4support
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kwalletmanager.nix b/nixpkgs/pkgs/applications/kde/kwalletmanager.nix
new file mode 100644
index 000000000000..e39e7e5157d2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libgravatar.nix b/nixpkgs/pkgs/applications/kde/libgravatar.nix
new file mode 100644
index 000000000000..69a1b9e99cbb
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libkcddb.nix b/nixpkgs/pkgs/applications/kde/libkcddb.nix
new file mode 100644
index 000000000000..3fd486056542
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libkdcraw.nix b/nixpkgs/pkgs/applications/kde/libkdcraw.nix
new file mode 100644
index 000000000000..70e3cb0e1956
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libkdegames.nix b/nixpkgs/pkgs/applications/kde/libkdegames.nix
new file mode 100644
index 000000000000..494b193b8326
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libkdepim.nix b/nixpkgs/pkgs/applications/kde/libkdepim.nix
new file mode 100644
index 000000000000..92716e40a34f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libkexiv2.nix b/nixpkgs/pkgs/applications/kde/libkexiv2.nix
new file mode 100644
index 000000000000..8c8d244d6f6e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libkgapi.nix b/nixpkgs/pkgs/applications/kde/libkgapi.nix
new file mode 100644
index 000000000000..998e65f28347
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/libkgapi.nix
@@ -0,0 +1,16 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  qtwebengine, kio, kcalcore, kcontacts,
+  cyrus_sasl
+}:
+
+mkDerivation {
+  name = "libkgapi";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = kdepimTeam;
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [ qtwebengine kio kcalcore kcontacts cyrus_sasl ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/libkipi.nix b/nixpkgs/pkgs/applications/kde/libkipi.nix
new file mode 100644
index 000000000000..c70d8407fc74
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libkleo.nix b/nixpkgs/pkgs/applications/kde/libkleo.nix
new file mode 100644
index 000000000000..0958a0e605f7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libkomparediff2.nix b/nixpkgs/pkgs/applications/kde/libkomparediff2.nix
new file mode 100644
index 000000000000..cae2aec5668d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libksane.nix b/nixpkgs/pkgs/applications/kde/libksane.nix
new file mode 100644
index 000000000000..f92f21de7fb8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/libksieve.nix b/nixpkgs/pkgs/applications/kde/libksieve.nix
new file mode 100644
index 000000000000..dd33f759c313
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/mailcommon.nix b/nixpkgs/pkgs/applications/kde/mailcommon.nix
new file mode 100644
index 000000000000..44edea8f55e9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/mailimporter.nix b/nixpkgs/pkgs/applications/kde/mailimporter.nix
new file mode 100644
index 000000000000..f002ff0f3403
--- /dev/null
+++ b/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
+}:
+
+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
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/marble.nix b/nixpkgs/pkgs/applications/kde/marble.nix
new file mode 100644
index 000000000000..b02e29e33513
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/marble.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib
+, extra-cmake-modules, kdoctools
+, qtscript, qtsvg, qtquickcontrols, qtwebkit
+, 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 qtwebkit shared-mime-info krunner kparts
+    knewstuff gpsd
+  ];
+  preConfigure = ''
+    cmakeFlags+=" -DINCLUDE_INSTALL_DIR=''${!outputDev}/include"
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/kde/mbox-importer.nix b/nixpkgs/pkgs/applications/kde/mbox-importer.nix
new file mode 100644
index 000000000000..0704003353ae
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/messagelib.nix b/nixpkgs/pkgs/applications/kde/messagelib.nix
new file mode 100644
index 000000000000..23920a081c06
--- /dev/null
+++ b/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, qtwebengine, qtwebkit, 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 qtwebkit
+    syntax-highlighting
+  ];
+  propagatedBuildInputs = [
+    akonadi akonadi-mime kcontacts kidentitymanagement kmime libkleo pimcommon
+    qtwebengine
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/minuet.nix b/nixpkgs/pkgs/applications/kde/minuet.nix
new file mode 100644
index 000000000000..efe850ab414d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/minuet.nix
@@ -0,0 +1,24 @@
+{ mkDerivation
+, lib, extra-cmake-modules, gettext, python
+, drumstick, fluidsynth
+, kcoreaddons, kcrash, kdoctools
+, qtquickcontrols2, qtsvg, qttools
+}:
+
+mkDerivation {
+  name = "minuet";
+  meta = with lib; {
+    license = with licenses; [ lgpl21 gpl3 ];
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
+
+  propagatedBuildInputs = [
+    drumstick fluidsynth
+    kcoreaddons kcrash
+    qtquickcontrols2 qtsvg qttools
+  ];
+
+  enableParallelBuilding = true;
+}
diff --git a/nixpkgs/pkgs/applications/kde/okular.nix b/nixpkgs/pkgs/applications/kde/okular.nix
new file mode 100644
index 000000000000..39fb232b3421
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/okular.nix
@@ -0,0 +1,27 @@
+{
+  stdenv, mkDerivation, lib,
+  extra-cmake-modules, kdoctools,
+  chmlib ? null, discount, djvulibre, ebook_tools, kactivities, karchive, kbookmarks,
+  kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
+  kdegraphics-mobipocket, kiconthemes, kjs, khtml, kio, kparts, kpty, kwallet,
+  kwindowsystem, libkexiv2, libspectre, libzip, phonon, poppler, qca-qt5,
+  qtdeclarative, qtsvg, threadweaver, kcrash
+}:
+
+mkDerivation {
+  name = "okular";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    discount djvulibre ebook_tools kactivities karchive kbookmarks
+    kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
+    kdegraphics-mobipocket kiconthemes kjs khtml kio kparts kpty kwallet
+    kwindowsystem libkexiv2 libspectre libzip phonon poppler qca-qt5
+    qtdeclarative qtsvg threadweaver kcrash
+  ] ++ lib.optional (!stdenv.isAarch64) chmlib;
+  meta = with lib; {
+    homepage = http://www.kde.org;
+    license = with licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
+    maintainers = with maintainers; [ ttuegel ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/kde/pim-data-exporter.nix b/nixpkgs/pkgs/applications/kde/pim-data-exporter.nix
new file mode 100644
index 000000000000..d17ffb3c0444
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/pim-data-exporter.nix
@@ -0,0 +1,22 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  akonadi, 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 kcmutils kcrash kdbusaddons kidentitymanagement kldap kmailtransport
+    knewstuff knotifications knotifyconfig kparts kross ktexteditor kwallet libkdepim
+    libkleo pimcommon qttools karchive mailcommon messagelib
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix b/nixpkgs/pkgs/applications/kde/pim-sieve-editor.nix
new file mode 100644
index 000000000000..c83df2e0e498
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/kde/pimcommon.nix b/nixpkgs/pkgs/applications/kde/pimcommon.nix
new file mode 100644
index 000000000000..bbbcca13d980
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/pimcommon.nix
@@ -0,0 +1,26 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  akonadi, akonadi-contacts, akonadi-mime, grantlee, karchive, kcodecs,
+  kcompletion, kconfig, kconfigwidgets, kcontacts, kdbusaddons,
+  kiconthemes, kimap, kio, kitemmodels, kjobwidgets, knewstuff, kpimtextedit,
+  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 kcodecs kcompletion kconfigwidgets
+    kdbusaddons kiconthemes kio kitemmodels kjobwidgets knewstuff kpimtextedit
+    kwallet kwindowsystem libkdepim qtwebengine
+  ];
+  propagatedBuildInputs = [
+    akonadi akonadi-contacts kconfig kcontacts kimap
+  ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/print-manager.nix b/nixpkgs/pkgs/applications/kde/print-manager.nix
new file mode 100644
index 000000000000..8ace4562cbd7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/print-manager.nix
@@ -0,0 +1,23 @@
+{
+  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" ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/spectacle.nix b/nixpkgs/pkgs/applications/kde/spectacle.nix
new file mode 100644
index 000000000000..f036e8cf632c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/spectacle.nix
@@ -0,0 +1,20 @@
+{
+  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
+}:
+
+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
+  ];
+  propagatedUserEnvPkgs = [ kipi-plugins libkipi ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/srcs.nix b/nixpkgs/pkgs/applications/kde/srcs.nix
new file mode 100644
index 000000000000..b691902e1333
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/srcs.nix
@@ -0,0 +1,1725 @@
+# DO NOT EDIT! This file is generated automatically by fetch-kde-qt.sh
+{ fetchurl, mirror }:
+
+{
+  akonadi = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akonadi-18.12.0.tar.xz";
+      sha256 = "1c3frrfkcpr01684c1fkrwxbnzb7ipvwncm0jf5nb4d0waiv8q08";
+      name = "akonadi-18.12.0.tar.xz";
+    };
+  };
+  akonadi-calendar = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akonadi-calendar-18.12.0.tar.xz";
+      sha256 = "0amp79x3jwib7f0a8ksv96prb1mhfhpp475k09ryz7c054lmj1ys";
+      name = "akonadi-calendar-18.12.0.tar.xz";
+    };
+  };
+  akonadi-calendar-tools = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akonadi-calendar-tools-18.12.0.tar.xz";
+      sha256 = "0w2ng8lfy3cib49c0warqh0k43q17bfmkq3g4rjkwri9cqdqrahp";
+      name = "akonadi-calendar-tools-18.12.0.tar.xz";
+    };
+  };
+  akonadiconsole = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akonadiconsole-18.12.0.tar.xz";
+      sha256 = "1qg889g1a1c5iwvwdwz8ygkj59v46yfk5cwpkf8q1jldjdxkrib5";
+      name = "akonadiconsole-18.12.0.tar.xz";
+    };
+  };
+  akonadi-contacts = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akonadi-contacts-18.12.0.tar.xz";
+      sha256 = "0cn50nyrahb6pzshd35pc0issgiwg0r7j96xkmaxdigg9agjz9rn";
+      name = "akonadi-contacts-18.12.0.tar.xz";
+    };
+  };
+  akonadi-import-wizard = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akonadi-import-wizard-18.12.0.tar.xz";
+      sha256 = "1s477z6vb9qqz4q8bwprznn11fjjq0a6xfdmif6x0z30qrddllfd";
+      name = "akonadi-import-wizard-18.12.0.tar.xz";
+    };
+  };
+  akonadi-mime = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akonadi-mime-18.12.0.tar.xz";
+      sha256 = "1w974gn81gyrp3m5r2l8jx7xrq610mhmmn005wqfl7ac1n3s65ln";
+      name = "akonadi-mime-18.12.0.tar.xz";
+    };
+  };
+  akonadi-notes = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akonadi-notes-18.12.0.tar.xz";
+      sha256 = "0b233nw7jcr4dnlfnnymwrm9my47a4mdmdbp9qsp2rmlzwddplvw";
+      name = "akonadi-notes-18.12.0.tar.xz";
+    };
+  };
+  akonadi-search = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akonadi-search-18.12.0.tar.xz";
+      sha256 = "1kg8q5jkzcc4vndc8l2q7hvkjkdw2v5500pjw8pszwifzmi5klln";
+      name = "akonadi-search-18.12.0.tar.xz";
+    };
+  };
+  akregator = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/akregator-18.12.0.tar.xz";
+      sha256 = "03968pcpvggn19721x89wn7d1n757xdk22f4rvxqq4d6qqh2myhd";
+      name = "akregator-18.12.0.tar.xz";
+    };
+  };
+  analitza = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/analitza-18.12.0.tar.xz";
+      sha256 = "0g8iz69cq2gc0qsraaqji8h7z1wcqq1baic4x7158q3xkrc7hg1f";
+      name = "analitza-18.12.0.tar.xz";
+    };
+  };
+  ark = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ark-18.12.0.tar.xz";
+      sha256 = "16nmi8a9j4s00m4dnh4l7kcz1vjaqpcq1ilr0iv6wglpn3sycl1g";
+      name = "ark-18.12.0.tar.xz";
+    };
+  };
+  artikulate = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/artikulate-18.12.0.tar.xz";
+      sha256 = "187qwl9adrggbkf6dyw12pmmxxxbjcp2swxbyvmqx10dca2pgbgn";
+      name = "artikulate-18.12.0.tar.xz";
+    };
+  };
+  audiocd-kio = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/audiocd-kio-18.12.0.tar.xz";
+      sha256 = "044ksczgc5k6ai1inmxqpibvcigjvxbqpf6n6irgl1jgavmxdpim";
+      name = "audiocd-kio-18.12.0.tar.xz";
+    };
+  };
+  baloo-widgets = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/baloo-widgets-18.12.0.tar.xz";
+      sha256 = "1sq70l529dg2ww8pcksnbbmgh1wi1baj69adakqiacxi5v893clg";
+      name = "baloo-widgets-18.12.0.tar.xz";
+    };
+  };
+  blinken = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/blinken-18.12.0.tar.xz";
+      sha256 = "1dnp14g20a7gqy3zcysa7pxrj38zqxhgpyd4nxpdj6lzjgh2p7hx";
+      name = "blinken-18.12.0.tar.xz";
+    };
+  };
+  bomber = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/bomber-18.12.0.tar.xz";
+      sha256 = "1vjvajbra1m4zjbijn1nxj5x66hyv8q65874b3ajshb3lmv7rklj";
+      name = "bomber-18.12.0.tar.xz";
+    };
+  };
+  bovo = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/bovo-18.12.0.tar.xz";
+      sha256 = "1fslwk3zbxi16b1m7w7rbf8bgdhflnqrd6k90lpbwvlnxy6839iw";
+      name = "bovo-18.12.0.tar.xz";
+    };
+  };
+  calendarsupport = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/calendarsupport-18.12.0.tar.xz";
+      sha256 = "180qzjlx0y4cfasmrf06ah8jdckbym1wrbmqlpyzjfy55mkwyf40";
+      name = "calendarsupport-18.12.0.tar.xz";
+    };
+  };
+  cantor = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/cantor-18.12.0.tar.xz";
+      sha256 = "0isddvdd8gvaasigyj3njyl7ckcqc8ciqp82awlland3avll6rby";
+      name = "cantor-18.12.0.tar.xz";
+    };
+  };
+  cervisia = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/cervisia-18.12.0.tar.xz";
+      sha256 = "1r55zjfvlh5by9cv6pzcsbz71igbjr1pvyiyjkdhc36sbaiv0r3x";
+      name = "cervisia-18.12.0.tar.xz";
+    };
+  };
+  dolphin = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/dolphin-18.12.0.tar.xz";
+      sha256 = "10mzdk9i5x4kmsrpamm5q9ihy8ymii9w3iaccd7fgw4yy11qlzw3";
+      name = "dolphin-18.12.0.tar.xz";
+    };
+  };
+  dolphin-plugins = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/dolphin-plugins-18.12.0.tar.xz";
+      sha256 = "07pkslxhawl03030zjy889zjbym13d94nllg9fxvmd3402y2djiw";
+      name = "dolphin-plugins-18.12.0.tar.xz";
+    };
+  };
+  dragon = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/dragon-18.12.0.tar.xz";
+      sha256 = "0j3d8a97ymh9lm6al0vv3abxalfw3wnf689i3mzkg7bdqkaaxz24";
+      name = "dragon-18.12.0.tar.xz";
+    };
+  };
+  eventviews = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/eventviews-18.12.0.tar.xz";
+      sha256 = "0r3y3z8zzzs1154wqi16kwb7vjijphscsnna76hpxcllw23cnb7v";
+      name = "eventviews-18.12.0.tar.xz";
+    };
+  };
+  ffmpegthumbs = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ffmpegthumbs-18.12.0.tar.xz";
+      sha256 = "0wwrhj6xblz96g1rpqds4m0savp9n08w1xlwlhrm9xq81kajpw5x";
+      name = "ffmpegthumbs-18.12.0.tar.xz";
+    };
+  };
+  filelight = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/filelight-18.12.0.tar.xz";
+      sha256 = "1vayrsgs5q1ky34kx5a8fi198b57478w68641xwhxmzwllssd9sx";
+      name = "filelight-18.12.0.tar.xz";
+    };
+  };
+  granatier = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/granatier-18.12.0.tar.xz";
+      sha256 = "145z4h7vwmg2zlvncp5dijm06m1d0z20hlmlz2zd69nfvs8w1lmz";
+      name = "granatier-18.12.0.tar.xz";
+    };
+  };
+  grantlee-editor = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/grantlee-editor-18.12.0.tar.xz";
+      sha256 = "0h5hcsnkh8gkqcnn620zs4kni5k8cpr65nbkkxybgxjf3kljapin";
+      name = "grantlee-editor-18.12.0.tar.xz";
+    };
+  };
+  grantleetheme = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/grantleetheme-18.12.0.tar.xz";
+      sha256 = "1k5q30viyvwx4c8nl5gxk2sqxd9l703n6fnxw5dz5q7hzsxykzzx";
+      name = "grantleetheme-18.12.0.tar.xz";
+    };
+  };
+  gwenview = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/gwenview-18.12.0.tar.xz";
+      sha256 = "1p9g6q5bfaxbk60k91wbjhbv0wwzin5ai3hyasl7rg3c6hisp2rf";
+      name = "gwenview-18.12.0.tar.xz";
+    };
+  };
+  incidenceeditor = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/incidenceeditor-18.12.0.tar.xz";
+      sha256 = "0f313zw1n4dgaianmxnmd5d5bqad40izli20ab08lqhv9d03sdkh";
+      name = "incidenceeditor-18.12.0.tar.xz";
+    };
+  };
+  juk = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/juk-18.12.0.tar.xz";
+      sha256 = "1jsxvcqpj87n6yv2v0a7rvmg832ayrk0fknmch04gc8bkb7w52az";
+      name = "juk-18.12.0.tar.xz";
+    };
+  };
+  k3b = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/k3b-18.12.0.tar.xz";
+      sha256 = "1fmy94cda1nsqv5g4w3bnypx9c8ngrndbzf6l7l2pv5q889p73x1";
+      name = "k3b-18.12.0.tar.xz";
+    };
+  };
+  kaccounts-integration = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kaccounts-integration-18.12.0.tar.xz";
+      sha256 = "1wyjd7iv0z8q9adbgnkvwmz4zrhrz3wgkz0lp52i8j0511xby93r";
+      name = "kaccounts-integration-18.12.0.tar.xz";
+    };
+  };
+  kaccounts-providers = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kaccounts-providers-18.12.0.tar.xz";
+      sha256 = "03kjjshbxgj1mj8vv60rbssn3kdf3gx9kqmgsbbwybxg46277w1r";
+      name = "kaccounts-providers-18.12.0.tar.xz";
+    };
+  };
+  kaddressbook = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kaddressbook-18.12.0.tar.xz";
+      sha256 = "0dfmwn6swa6m11ih52aj2r8zfma6jffy8gsqhaph4xg4ba58nmpj";
+      name = "kaddressbook-18.12.0.tar.xz";
+    };
+  };
+  kajongg = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kajongg-18.12.0.tar.xz";
+      sha256 = "0k9nxcr2fpkrmckzc5fxani4l304fxj7kp80y2nrv1p5cagn2x7l";
+      name = "kajongg-18.12.0.tar.xz";
+    };
+  };
+  kalarm = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kalarm-18.12.0.tar.xz";
+      sha256 = "1cmk6l8450sz3rfdk25p9dn26zcbhcrdwz9v242cpsndyvnl13i2";
+      name = "kalarm-18.12.0.tar.xz";
+    };
+  };
+  kalarmcal = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kalarmcal-18.12.0.tar.xz";
+      sha256 = "0l90yxfkjwybff80z7zhgx4sbw7xz8nx0acg56avgrkh3230fv3i";
+      name = "kalarmcal-18.12.0.tar.xz";
+    };
+  };
+  kalgebra = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kalgebra-18.12.0.tar.xz";
+      sha256 = "0hc3k4zm50n39nvw6fki6997vzz56fwjkn61q48fkbzd4jvcfqni";
+      name = "kalgebra-18.12.0.tar.xz";
+    };
+  };
+  kalzium = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kalzium-18.12.0.tar.xz";
+      sha256 = "0j3a3r1j4vc0ssdw60lvgkdwmh02zz07xakdgxr5jrys4fix23ci";
+      name = "kalzium-18.12.0.tar.xz";
+    };
+  };
+  kamera = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kamera-18.12.0.tar.xz";
+      sha256 = "098gg2v8bina5famp2bk0x8dakzz66zd0dxh8vjczjycvzac6hzd";
+      name = "kamera-18.12.0.tar.xz";
+    };
+  };
+  kamoso = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kamoso-18.12.0.tar.xz";
+      sha256 = "0f4hvbw216xmyavgakvydplcspqcyv1v9bv0pqvwdk1swk1jp0r3";
+      name = "kamoso-18.12.0.tar.xz";
+    };
+  };
+  kanagram = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kanagram-18.12.0.tar.xz";
+      sha256 = "1xbb04i06qrffb6pxk05ksn8h1n08r9pyaf9nkhrymgv90l62739";
+      name = "kanagram-18.12.0.tar.xz";
+    };
+  };
+  kapman = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kapman-18.12.0.tar.xz";
+      sha256 = "0shq8bjfixjx9gqid27cgiybx0anwgbm69gsrvlczmragswcqxwi";
+      name = "kapman-18.12.0.tar.xz";
+    };
+  };
+  kapptemplate = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kapptemplate-18.12.0.tar.xz";
+      sha256 = "18q7lxkfim41lhzqwvv4ir2c45fhf9pxxajfwibg9a462b1jxk4a";
+      name = "kapptemplate-18.12.0.tar.xz";
+    };
+  };
+  kate = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kate-18.12.0.tar.xz";
+      sha256 = "15k66vipm1lqcmk73a44niz1279rkab3g23p9jqyvvbw41j1368l";
+      name = "kate-18.12.0.tar.xz";
+    };
+  };
+  katomic = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/katomic-18.12.0.tar.xz";
+      sha256 = "183pgb7pphzmi3lgza4lm5crzf9rs6l2d6fl1xwzvvb3ik77ccqz";
+      name = "katomic-18.12.0.tar.xz";
+    };
+  };
+  kbackup = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kbackup-18.12.0.tar.xz";
+      sha256 = "1qwrgrrd408y7ipqfhajqfwcicn7pb32akvbls3rby17b2nwn16x";
+      name = "kbackup-18.12.0.tar.xz";
+    };
+  };
+  kblackbox = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kblackbox-18.12.0.tar.xz";
+      sha256 = "0hx5bd97k1k4hdyal6g7r7y1xk70sf0779vxfqnin1dpzhgnq2dq";
+      name = "kblackbox-18.12.0.tar.xz";
+    };
+  };
+  kblocks = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kblocks-18.12.0.tar.xz";
+      sha256 = "0f0mapx67gxiy5s9k60qhgc9sfr21hwy62wzdiw4ssbxfhhqv7fa";
+      name = "kblocks-18.12.0.tar.xz";
+    };
+  };
+  kblog = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kblog-18.12.0.tar.xz";
+      sha256 = "1slrwablxhsjzl3vj714rzm7rp59vnd9d0ri0k7yvc1ykc4aj8v6";
+      name = "kblog-18.12.0.tar.xz";
+    };
+  };
+  kbounce = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kbounce-18.12.0.tar.xz";
+      sha256 = "1r5rhlra9p89wn4mmjn81v7lgh78k53xfzhr0sz08dhg7qk2rb48";
+      name = "kbounce-18.12.0.tar.xz";
+    };
+  };
+  kbreakout = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kbreakout-18.12.0.tar.xz";
+      sha256 = "0bw84bl2r9am69zv0ik1rhqwcjzazfzwnwjg0zqzzwlyhww0ya5f";
+      name = "kbreakout-18.12.0.tar.xz";
+    };
+  };
+  kbruch = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kbruch-18.12.0.tar.xz";
+      sha256 = "156varmig28a3swk099k2c2l0hn8kbr1khz5cd9c9wdy46ln6w8n";
+      name = "kbruch-18.12.0.tar.xz";
+    };
+  };
+  kcachegrind = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kcachegrind-18.12.0.tar.xz";
+      sha256 = "1jvpn2ly2pn9pnv6zx7i8z0zn91lb2kf6q9linqmpag47qbg0p7y";
+      name = "kcachegrind-18.12.0.tar.xz";
+    };
+  };
+  kcalc = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kcalc-18.12.0.tar.xz";
+      sha256 = "15wdyv5sgnd9amar41k14mgyz8p4d1aba0kw7gphzl7c9gms0y70";
+      name = "kcalc-18.12.0.tar.xz";
+    };
+  };
+  kcalcore = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kcalcore-18.12.0.tar.xz";
+      sha256 = "04y7bdrdcbz98waydi9r5hw25mdzy8a0pzzdsmp2ky2lj4shph4h";
+      name = "kcalcore-18.12.0.tar.xz";
+    };
+  };
+  kcalutils = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kcalutils-18.12.0.tar.xz";
+      sha256 = "1w10np6g02f3hh3bn3zksbj335mrzy0a5wg4lk2hny06rakk0hh0";
+      name = "kcalutils-18.12.0.tar.xz";
+    };
+  };
+  kcharselect = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kcharselect-18.12.0.tar.xz";
+      sha256 = "0s4yqylc5jhgl7s3cs8gf8bb4r7n8nhxhl502sbnamss11lx7gqw";
+      name = "kcharselect-18.12.0.tar.xz";
+    };
+  };
+  kcolorchooser = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kcolorchooser-18.12.0.tar.xz";
+      sha256 = "0za9isapgmbafmn5v6fwdw1vaafszwnia1iim9k4ga7bs9aakfhb";
+      name = "kcolorchooser-18.12.0.tar.xz";
+    };
+  };
+  kcontacts = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kcontacts-18.12.0.tar.xz";
+      sha256 = "1drp0rzhjbb9nqqjl9cmwpyqk8dgvnaw42rmn0cwla8l8qas5xs5";
+      name = "kcontacts-18.12.0.tar.xz";
+    };
+  };
+  kcron = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kcron-18.12.0.tar.xz";
+      sha256 = "02fxsnka3d3456j99nsrgvkxpjd677xl0z7hmqwsr0zx3bx0krk7";
+      name = "kcron-18.12.0.tar.xz";
+    };
+  };
+  kdav = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdav-18.12.0.tar.xz";
+      sha256 = "0fbw65yiskygbhhagsc48yrhdslg951fd13b6mzwf2ab55fw6vmf";
+      name = "kdav-18.12.0.tar.xz";
+    };
+  };
+  kdebugsettings = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdebugsettings-18.12.0.tar.xz";
+      sha256 = "1gdrc1x5bavdi6ljqv5wh1hwvys1r2v00xi555dfyijjryr7kd27";
+      name = "kdebugsettings-18.12.0.tar.xz";
+    };
+  };
+  kde-dev-scripts = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kde-dev-scripts-18.12.0.tar.xz";
+      sha256 = "03wmki422lw1r5i51gh17ha3w2gpdjv4ix7bndjakwq315iivlxi";
+      name = "kde-dev-scripts-18.12.0.tar.xz";
+    };
+  };
+  kde-dev-utils = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kde-dev-utils-18.12.0.tar.xz";
+      sha256 = "0x2ji7jd12b1blww2jz0709yl79pb3slglx7mp4yyfi66c5ngl1q";
+      name = "kde-dev-utils-18.12.0.tar.xz";
+    };
+  };
+  kdeedu-data = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdeedu-data-18.12.0.tar.xz";
+      sha256 = "1p3rjsdhf4hy9468515vkbihkj69s2gpz6fxk3rqvi03ksmpdi5x";
+      name = "kdeedu-data-18.12.0.tar.xz";
+    };
+  };
+  kdegraphics-mobipocket = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdegraphics-mobipocket-18.12.0.tar.xz";
+      sha256 = "05gxnbrl4p1s6mccvp0482as4r41rhqsrfd84v57sqyd93mgzsji";
+      name = "kdegraphics-mobipocket-18.12.0.tar.xz";
+    };
+  };
+  kdegraphics-thumbnailers = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdegraphics-thumbnailers-18.12.0.tar.xz";
+      sha256 = "096acsz560k238sfa54nyjydx5wlc0b92khi4ahmvaqmllzjc9p4";
+      name = "kdegraphics-thumbnailers-18.12.0.tar.xz";
+    };
+  };
+  kdenetwork-filesharing = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdenetwork-filesharing-18.12.0.tar.xz";
+      sha256 = "183f8fir8rx7jr35gyj074k852s51gjsd2q7hp1bgkj7g5avql4i";
+      name = "kdenetwork-filesharing-18.12.0.tar.xz";
+    };
+  };
+  kdenlive = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdenlive-18.12.0.tar.xz";
+      sha256 = "0jknpfs7gql527pbj0nb1bxvhxpbk0gnyjx4g6wdhlmk87w2g0wp";
+      name = "kdenlive-18.12.0.tar.xz";
+    };
+  };
+  kdepim-addons = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdepim-addons-18.12.0.tar.xz";
+      sha256 = "0dbys45cn00xism83x2j1ypidg5dp8zv29wx18a4bga4y8mfnrkp";
+      name = "kdepim-addons-18.12.0.tar.xz";
+    };
+  };
+  kdepim-apps-libs = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdepim-apps-libs-18.12.0.tar.xz";
+      sha256 = "18y3n602b6v1jyl18lvqalasf2v795ln31nn79ih1z4y49j1s67x";
+      name = "kdepim-apps-libs-18.12.0.tar.xz";
+    };
+  };
+  kdepim-runtime = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdepim-runtime-18.12.0.tar.xz";
+      sha256 = "0vmwgbbnwipi62aciy52pdd4ygrgx3l87i5g5nspkb03wlb5jl51";
+      name = "kdepim-runtime-18.12.0.tar.xz";
+    };
+  };
+  kdesdk-kioslaves = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdesdk-kioslaves-18.12.0.tar.xz";
+      sha256 = "0ca9cwxv836jl9crqik9s1v3dgk5z9jhvzxvbcvrbalvs1cyxg8b";
+      name = "kdesdk-kioslaves-18.12.0.tar.xz";
+    };
+  };
+  kdesdk-thumbnailers = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdesdk-thumbnailers-18.12.0.tar.xz";
+      sha256 = "1q57c5i7pnrpd7g1dwrahac9lji9ljqyb60qkj9qx3v3fnr11v7f";
+      name = "kdesdk-thumbnailers-18.12.0.tar.xz";
+    };
+  };
+  kdf = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdf-18.12.0.tar.xz";
+      sha256 = "1ds4z4adyaazmhbybq2f361qq02a8l73a9g2hwcrh95w0dcisyvp";
+      name = "kdf-18.12.0.tar.xz";
+    };
+  };
+  kdialog = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdialog-18.12.0.tar.xz";
+      sha256 = "04v2s3wlaihcm4c64kzcxmxs9niw6ghid0vdl4pw8h0ks1s8xz0g";
+      name = "kdialog-18.12.0.tar.xz";
+    };
+  };
+  kdiamond = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kdiamond-18.12.0.tar.xz";
+      sha256 = "0c11v3c7hxllg15h8mq18jl5lqprwwpnz04rjjggwzz8c4iz2kjs";
+      name = "kdiamond-18.12.0.tar.xz";
+    };
+  };
+  keditbookmarks = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/keditbookmarks-18.12.0.tar.xz";
+      sha256 = "1ia69amq6dfidfgxq297xa10f3812spibb00wsv9dj4cp36y89mm";
+      name = "keditbookmarks-18.12.0.tar.xz";
+    };
+  };
+  kfind = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kfind-18.12.0.tar.xz";
+      sha256 = "0km2f88pw9ynqbxsl3pwfkk120ni0by2rsaldqp2h3a26kyc5gzk";
+      name = "kfind-18.12.0.tar.xz";
+    };
+  };
+  kfloppy = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kfloppy-18.12.0.tar.xz";
+      sha256 = "0ng0d18dnnrdp9xccald0jn8hl40v2kshgmy8pnr4agl20aagh61";
+      name = "kfloppy-18.12.0.tar.xz";
+    };
+  };
+  kfourinline = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kfourinline-18.12.0.tar.xz";
+      sha256 = "01wjqyg7aw2wi7nrrqri3znb545hr1qcanzibjiakhb2pbx5db3z";
+      name = "kfourinline-18.12.0.tar.xz";
+    };
+  };
+  kgeography = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kgeography-18.12.0.tar.xz";
+      sha256 = "1fa2333xmxswlfjzl7d3ssl7s2hgwszhqxkdyi9db9lqxq0m3ckv";
+      name = "kgeography-18.12.0.tar.xz";
+    };
+  };
+  kget = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kget-18.12.0.tar.xz";
+      sha256 = "1f3ahslqcicgkhgdpdrvy9ydlsl1hwnnym7fw2v2k07h5mprw8hp";
+      name = "kget-18.12.0.tar.xz";
+    };
+  };
+  kgoldrunner = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kgoldrunner-18.12.0.tar.xz";
+      sha256 = "0cmcjmfhair649nbfx74qdmsf67lx4j53qkj0xsr7bijv52pi4br";
+      name = "kgoldrunner-18.12.0.tar.xz";
+    };
+  };
+  kgpg = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kgpg-18.12.0.tar.xz";
+      sha256 = "1hlcpgfcwpiyf1xfy62mris60cnws1mcgpni5nvvwdzdi4scad3g";
+      name = "kgpg-18.12.0.tar.xz";
+    };
+  };
+  khangman = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/khangman-18.12.0.tar.xz";
+      sha256 = "0y05jjacnw2h70hjn5jbpnmcj53xgcx8304s39aa8zc1ry9jvsqq";
+      name = "khangman-18.12.0.tar.xz";
+    };
+  };
+  khelpcenter = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/khelpcenter-18.12.0.tar.xz";
+      sha256 = "0cwxf6m3f6md4y51zpscxh89p9p9jzzsfslxh04y92p9g0l1qvwm";
+      name = "khelpcenter-18.12.0.tar.xz";
+    };
+  };
+  kidentitymanagement = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kidentitymanagement-18.12.0.tar.xz";
+      sha256 = "1i0amb9m2vc00zaawv2wdyw7gzwz8lfw4bvz0mlnad4nrcmkvjyk";
+      name = "kidentitymanagement-18.12.0.tar.xz";
+    };
+  };
+  kig = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kig-18.12.0.tar.xz";
+      sha256 = "0zq7z4jj8bsmhjggjh7byjv74ry6caps9pviwqqcsrdrl5357kzi";
+      name = "kig-18.12.0.tar.xz";
+    };
+  };
+  kigo = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kigo-18.12.0.tar.xz";
+      sha256 = "03kl5hn8b2qbbv436rd8slqwr5w4034wz7vvm9z9cmjbpxavls2q";
+      name = "kigo-18.12.0.tar.xz";
+    };
+  };
+  killbots = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/killbots-18.12.0.tar.xz";
+      sha256 = "0w8xl73ir9a3zxvsj3027gdlh7mskns3f0bk4mspirwg761zn1hf";
+      name = "killbots-18.12.0.tar.xz";
+    };
+  };
+  kimagemapeditor = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kimagemapeditor-18.12.0.tar.xz";
+      sha256 = "0l17biqkq8jkc2vnnw51a6g13y29rnsfn9dx3afv88bdf2a52x1m";
+      name = "kimagemapeditor-18.12.0.tar.xz";
+    };
+  };
+  kimap = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kimap-18.12.0.tar.xz";
+      sha256 = "04m6sd36k6w4iiqanxy49v06am11p5xcb253gk99pyfrssb596m5";
+      name = "kimap-18.12.0.tar.xz";
+    };
+  };
+  kio-extras = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kio-extras-18.12.0.tar.xz";
+      sha256 = "1sbl7m8c4fy63389bv19ck89nzxjpf0l2855sc81fzy3zig89b65";
+      name = "kio-extras-18.12.0.tar.xz";
+    };
+  };
+  kirigami-gallery = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kirigami-gallery-18.12.0.tar.xz";
+      sha256 = "008ixa0kvqjjk98aq9mcapxd8d8svkjpz04v4ka64zwks8qyzdrk";
+      name = "kirigami-gallery-18.12.0.tar.xz";
+    };
+  };
+  kiriki = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kiriki-18.12.0.tar.xz";
+      sha256 = "098gsl6pj8bdm29qa1w6pnyg7m25m0m2f97f7cwgqi1h4asyz9h8";
+      name = "kiriki-18.12.0.tar.xz";
+    };
+  };
+  kiten = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kiten-18.12.0.tar.xz";
+      sha256 = "1lkaicfc5z59g6gvcgmkdwpfl2i622s26w3pf1w0cmlw1hnspblc";
+      name = "kiten-18.12.0.tar.xz";
+    };
+  };
+  kitinerary = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kitinerary-18.12.0.tar.xz";
+      sha256 = "0q4fhfckvzlcza7r2gddygfn7f3dfj4kl82m644givb4394hjapd";
+      name = "kitinerary-18.12.0.tar.xz";
+    };
+  };
+  kjumpingcube = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kjumpingcube-18.12.0.tar.xz";
+      sha256 = "0j022vr1dj06s21cwxhsiv8xb1000l2yz2jz128rnkpr63b8darr";
+      name = "kjumpingcube-18.12.0.tar.xz";
+    };
+  };
+  kldap = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kldap-18.12.0.tar.xz";
+      sha256 = "0359vzfhscqlha2vyaygqpai7qi924ircw290prwrmhn9jqzms5x";
+      name = "kldap-18.12.0.tar.xz";
+    };
+  };
+  kleopatra = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kleopatra-18.12.0.tar.xz";
+      sha256 = "1j1s7dmg5wadfd8z76i5l81drii0sjdynahkcm8jdz3gvrsd773k";
+      name = "kleopatra-18.12.0.tar.xz";
+    };
+  };
+  klettres = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/klettres-18.12.0.tar.xz";
+      sha256 = "0gyd7vnm6mq7wy398h9nrny611pc6v4kksmdbhhsrkagvj4rvywq";
+      name = "klettres-18.12.0.tar.xz";
+    };
+  };
+  klickety = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/klickety-18.12.0.tar.xz";
+      sha256 = "083w9lj6h6yxxk6vgmf72651vb423gakppbi7z7ii5i546miilyn";
+      name = "klickety-18.12.0.tar.xz";
+    };
+  };
+  klines = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/klines-18.12.0.tar.xz";
+      sha256 = "1v05ssjrb6x81c5nj9c8dpfqj9wr2m4mz9c883pnc5pjbc33fh0x";
+      name = "klines-18.12.0.tar.xz";
+    };
+  };
+  kmag = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmag-18.12.0.tar.xz";
+      sha256 = "0micbc4wqi23jc2bpf1kjzy8xafqkd8gp70hg83id7mlncq12pm7";
+      name = "kmag-18.12.0.tar.xz";
+    };
+  };
+  kmahjongg = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmahjongg-18.12.0.tar.xz";
+      sha256 = "1zv4dljkj1i4hxmy1cnyzpnipvdh6dmp6msmivgbsaz7yra1zqlx";
+      name = "kmahjongg-18.12.0.tar.xz";
+    };
+  };
+  kmail = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmail-18.12.0.tar.xz";
+      sha256 = "0ivzl7cpjcavqybbd5jfd9gk7qfvnfrly8gi20lwg97s07cih42x";
+      name = "kmail-18.12.0.tar.xz";
+    };
+  };
+  kmail-account-wizard = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmail-account-wizard-18.12.0.tar.xz";
+      sha256 = "04q3yrbarqqw5wd8waaacd4kb409y8k6rbwk0lsrr4gvs7b5h4jg";
+      name = "kmail-account-wizard-18.12.0.tar.xz";
+    };
+  };
+  kmailtransport = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmailtransport-18.12.0.tar.xz";
+      sha256 = "0i3rgw4pf143jnkxnds84j8yg7smhgf2c5qkc1vk37i05vg81r76";
+      name = "kmailtransport-18.12.0.tar.xz";
+    };
+  };
+  kmbox = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmbox-18.12.0.tar.xz";
+      sha256 = "03krrgzbvvhn0xcmbhx4whk347pxr26gqhnxh7mg82w5pzx7y6gm";
+      name = "kmbox-18.12.0.tar.xz";
+    };
+  };
+  kmime = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmime-18.12.0.tar.xz";
+      sha256 = "0kh1v62xxca6i6g48xznqrxfw4wfwqcbv338m0ybqr06w0kgcfr2";
+      name = "kmime-18.12.0.tar.xz";
+    };
+  };
+  kmines = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmines-18.12.0.tar.xz";
+      sha256 = "0lgzh1pa9g807jdq16k0a9n2akqgad0vgpx1zms6ldnaqvr7mm6w";
+      name = "kmines-18.12.0.tar.xz";
+    };
+  };
+  kmix = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmix-18.12.0.tar.xz";
+      sha256 = "09m1d62w912ly6r8874b6ccimwdf6i9p2fyfb3pa5axc8d01lca9";
+      name = "kmix-18.12.0.tar.xz";
+    };
+  };
+  kmousetool = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmousetool-18.12.0.tar.xz";
+      sha256 = "00nwk11w7ljn22bfh06l109gw8yhl9vccgwimqhyplq0p8c3cnb0";
+      name = "kmousetool-18.12.0.tar.xz";
+    };
+  };
+  kmouth = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmouth-18.12.0.tar.xz";
+      sha256 = "0ig1wxaxwjj6qv7k2djdzhlnbbx74yk5f1sk42qx6csprl2bgp39";
+      name = "kmouth-18.12.0.tar.xz";
+    };
+  };
+  kmplot = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kmplot-18.12.0.tar.xz";
+      sha256 = "1mn7qrqwhwna9znprhb6fb2h127lcgjkx6m9csi8g11kklj95zi0";
+      name = "kmplot-18.12.0.tar.xz";
+    };
+  };
+  knavalbattle = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/knavalbattle-18.12.0.tar.xz";
+      sha256 = "16v4q2hn4d2d8iqj9mim0y8azx4nraja9a6fhym2h5nzqsz253gk";
+      name = "knavalbattle-18.12.0.tar.xz";
+    };
+  };
+  knetwalk = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/knetwalk-18.12.0.tar.xz";
+      sha256 = "1pgk7wnll793hmjmc0r416vvrgpicyyf88g459a5ybmj28hi5xqi";
+      name = "knetwalk-18.12.0.tar.xz";
+    };
+  };
+  knights = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/knights-18.12.0.tar.xz";
+      sha256 = "10p994q5rycs3p5yn6r0gn8fjj3m8gsrx2gdvzdavizbsp5xv0qb";
+      name = "knights-18.12.0.tar.xz";
+    };
+  };
+  knotes = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/knotes-18.12.0.tar.xz";
+      sha256 = "1r0p5k66gadglm329dcmr6x93wr56z32r03v8zd2r4ffbvp2hvqr";
+      name = "knotes-18.12.0.tar.xz";
+    };
+  };
+  kolf = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kolf-18.12.0.tar.xz";
+      sha256 = "0j5scf9ynq71z5pcbiqm13a3asz62man5nirjxr9fcj4mb1zirfk";
+      name = "kolf-18.12.0.tar.xz";
+    };
+  };
+  kollision = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kollision-18.12.0.tar.xz";
+      sha256 = "1zifm52q8yc2l5mqrc7wnddz9a0r1yz4dnk85c9dj2cndk8jz05p";
+      name = "kollision-18.12.0.tar.xz";
+    };
+  };
+  kolourpaint = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kolourpaint-18.12.0.tar.xz";
+      sha256 = "1m0j0bdcrhhk8k1imnz7xm33yi8dcbsx432866ikh31l68i44wgc";
+      name = "kolourpaint-18.12.0.tar.xz";
+    };
+  };
+  kompare = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kompare-18.12.0.tar.xz";
+      sha256 = "02f4laclz3vhgbyzfxhi3f79k62z27fwa5qhdwwsvbn1xlgzbpx4";
+      name = "kompare-18.12.0.tar.xz";
+    };
+  };
+  konqueror = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/konqueror-18.12.0.tar.xz";
+      sha256 = "0yzldqi0i1hiw33ppiccn8vpvy5ygf2vf4m3awfcj2376bzz7d4r";
+      name = "konqueror-18.12.0.tar.xz";
+    };
+  };
+  konquest = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/konquest-18.12.0.tar.xz";
+      sha256 = "1w7r1a7ilakz9k0f1z4jrfsjscf9z8l18rdfry5b1h8zz70j5j0z";
+      name = "konquest-18.12.0.tar.xz";
+    };
+  };
+  konsole = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/konsole-18.12.0.tar.xz";
+      sha256 = "04qmldzfb0qjwddz56nv20gffi8z6vhm0vsvqd59q5nhkj9shnr3";
+      name = "konsole-18.12.0.tar.xz";
+    };
+  };
+  kontact = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kontact-18.12.0.tar.xz";
+      sha256 = "0i9hj2rrwa5vzzh7p586d7vkzgk69inq3c7bvvjr6lhy0xrcy9cb";
+      name = "kontact-18.12.0.tar.xz";
+    };
+  };
+  kontactinterface = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kontactinterface-18.12.0.tar.xz";
+      sha256 = "05kx0jrxh13f42az6p9kj90wyqjl3ansqni9pa06fd1klq0ssncz";
+      name = "kontactinterface-18.12.0.tar.xz";
+    };
+  };
+  kopete = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kopete-18.12.0.tar.xz";
+      sha256 = "1xzriv2zqpf7vzny2k7qn39slx0b6cls8414c757ppd9ai4yh32a";
+      name = "kopete-18.12.0.tar.xz";
+    };
+  };
+  korganizer = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/korganizer-18.12.0.tar.xz";
+      sha256 = "0pk8psl90xmb06y0h87ar35kbqr9pjl31l05h01ig32w1vr0rw8c";
+      name = "korganizer-18.12.0.tar.xz";
+    };
+  };
+  kpat = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kpat-18.12.0.tar.xz";
+      sha256 = "18q0pa4aijjkgjcg3v1v7ap2nvyavqsgh4s672v74jrxijd353gw";
+      name = "kpat-18.12.0.tar.xz";
+    };
+  };
+  kpimtextedit = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kpimtextedit-18.12.0.tar.xz";
+      sha256 = "0fg3cfh6v2hkhca9yb2kcvc9rq7f94a2wxkyi6cx88r3k3plh212";
+      name = "kpimtextedit-18.12.0.tar.xz";
+    };
+  };
+  kpkpass = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kpkpass-18.12.0.tar.xz";
+      sha256 = "07rmjzgkww405f0f16w3fgd5kwz335xbl9gjlc1lkh6lhddmbjc6";
+      name = "kpkpass-18.12.0.tar.xz";
+    };
+  };
+  kqtquickcharts = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kqtquickcharts-18.12.0.tar.xz";
+      sha256 = "01vdg2l48521pgkkx7h1vkgbrjl7gpzzinldk3aa7ki0997rff6h";
+      name = "kqtquickcharts-18.12.0.tar.xz";
+    };
+  };
+  krdc = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/krdc-18.12.0.tar.xz";
+      sha256 = "0yvk15grdk82flf7s9zsfgfhrmcy9wvcjhgdqjng2m9hd9sviix4";
+      name = "krdc-18.12.0.tar.xz";
+    };
+  };
+  kreversi = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kreversi-18.12.0.tar.xz";
+      sha256 = "04mpkpa8lar7l8blrgkz9n5xzq0br15qxxginh3hgp9vcp83njpb";
+      name = "kreversi-18.12.0.tar.xz";
+    };
+  };
+  krfb = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/krfb-18.12.0.tar.xz";
+      sha256 = "107z3bwq5xb2l4p88qpv9zibjzbgdbhf3d13bp220vnpwkwaxhpm";
+      name = "krfb-18.12.0.tar.xz";
+    };
+  };
+  kross-interpreters = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kross-interpreters-18.12.0.tar.xz";
+      sha256 = "1xr7cb3v40lm2wh78vhzxw3v34g52ngrd1baf4g4yi00y85y42bf";
+      name = "kross-interpreters-18.12.0.tar.xz";
+    };
+  };
+  kruler = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kruler-18.12.0.tar.xz";
+      sha256 = "0ms875n8rr19lvvbmq7jjbbgd4l4p4k8fqxhay7wil2mgdpkd087";
+      name = "kruler-18.12.0.tar.xz";
+    };
+  };
+  kshisen = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kshisen-18.12.0.tar.xz";
+      sha256 = "0bd9wbn343glgsf6qnyqqdhqrkw61lywgnjslsmc4bb1parka8ww";
+      name = "kshisen-18.12.0.tar.xz";
+    };
+  };
+  ksirk = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ksirk-18.12.0.tar.xz";
+      sha256 = "1nm8y05im0h6vdkdqlbh21ci68dalan7qmjiiwamrzc5dsvh9lwi";
+      name = "ksirk-18.12.0.tar.xz";
+    };
+  };
+  ksmtp = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ksmtp-18.12.0.tar.xz";
+      sha256 = "1caqqml7q41rk49mxq0wj439h87ln827jvxsbiv11qphkp6041y4";
+      name = "ksmtp-18.12.0.tar.xz";
+    };
+  };
+  ksnakeduel = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ksnakeduel-18.12.0.tar.xz";
+      sha256 = "06acl0bc87fcixkj67l4n4csa060lnaqkh8p3s7r3zccsy660ya4";
+      name = "ksnakeduel-18.12.0.tar.xz";
+    };
+  };
+  kspaceduel = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kspaceduel-18.12.0.tar.xz";
+      sha256 = "08dbmwbjqy8d0xidxipadndi0lxm1n2h0dxksjk8imsprz5r4j2l";
+      name = "kspaceduel-18.12.0.tar.xz";
+    };
+  };
+  ksquares = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ksquares-18.12.0.tar.xz";
+      sha256 = "0a6kf3arxvakd7mcr6xxasls8gmgc16gsnm0bjvviaxfc9f3wx8x";
+      name = "ksquares-18.12.0.tar.xz";
+    };
+  };
+  ksudoku = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ksudoku-18.12.0.tar.xz";
+      sha256 = "1bm4lx5w4d3drgydqz2wxi3gh2778q8nl3k6ac4pm4iq8amgmgi6";
+      name = "ksudoku-18.12.0.tar.xz";
+    };
+  };
+  ksystemlog = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ksystemlog-18.12.0.tar.xz";
+      sha256 = "0gh83ih9y0ydhm4g2drbcjkqh58g5a1flg1zqxr7rak8kf1pchnm";
+      name = "ksystemlog-18.12.0.tar.xz";
+    };
+  };
+  kteatime = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kteatime-18.12.0.tar.xz";
+      sha256 = "1p4a3kahsjgfw9f6mw16bzz1bzk1jnssgvhzqh9ragqyp5qpn3s3";
+      name = "kteatime-18.12.0.tar.xz";
+    };
+  };
+  ktimer = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktimer-18.12.0.tar.xz";
+      sha256 = "1lv64bk64k7nb2y9qahc45cg3n51qrb4ahk5l9mrbj9q5yvm1acs";
+      name = "ktimer-18.12.0.tar.xz";
+    };
+  };
+  ktnef = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktnef-18.12.0.tar.xz";
+      sha256 = "1ca9gga65h9kygfcsr1yvy50ccq3587scml36p740iwrxms8lrcb";
+      name = "ktnef-18.12.0.tar.xz";
+    };
+  };
+  ktouch = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktouch-18.12.0.tar.xz";
+      sha256 = "1221xagypm1j56lx2g4845wrw0w01f2s4x8r3jwr32wzxvi8bxs3";
+      name = "ktouch-18.12.0.tar.xz";
+    };
+  };
+  ktp-accounts-kcm = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-accounts-kcm-18.12.0.tar.xz";
+      sha256 = "0bx97zalwk78340klgh87rb5fadma8flg6q0bg436j01dsld0s0p";
+      name = "ktp-accounts-kcm-18.12.0.tar.xz";
+    };
+  };
+  ktp-approver = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-approver-18.12.0.tar.xz";
+      sha256 = "1cvixdcws126x7wll57dv6w78p3fb06lgd411i9jf7n02sx3l09q";
+      name = "ktp-approver-18.12.0.tar.xz";
+    };
+  };
+  ktp-auth-handler = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-auth-handler-18.12.0.tar.xz";
+      sha256 = "0zfdq7q1v48vcaj4raz5r6l400xhz7ngjylg3kd7jabarljjv2gs";
+      name = "ktp-auth-handler-18.12.0.tar.xz";
+    };
+  };
+  ktp-call-ui = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-call-ui-18.12.0.tar.xz";
+      sha256 = "1q9z6g0djk7mszy48bwrw4mvja15xkcg6x88391sw1lvanps9hmk";
+      name = "ktp-call-ui-18.12.0.tar.xz";
+    };
+  };
+  ktp-common-internals = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-common-internals-18.12.0.tar.xz";
+      sha256 = "00smq4q4m8hvvfaz0b9iyxxz3dl15qs0is6zbkh4scvxxp54n056";
+      name = "ktp-common-internals-18.12.0.tar.xz";
+    };
+  };
+  ktp-contact-list = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-contact-list-18.12.0.tar.xz";
+      sha256 = "0kyllg9f0kj1w00jhk2khmsfdqqixnz8s74jvg5fjw8bbibjbn3y";
+      name = "ktp-contact-list-18.12.0.tar.xz";
+    };
+  };
+  ktp-contact-runner = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-contact-runner-18.12.0.tar.xz";
+      sha256 = "1hpapg3fnmwsgai7jb9kbh5f71hp8qfzphgczcmf6h5151g2l6jj";
+      name = "ktp-contact-runner-18.12.0.tar.xz";
+    };
+  };
+  ktp-desktop-applets = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-desktop-applets-18.12.0.tar.xz";
+      sha256 = "1dfcjjmbplgx7b45q9vklq8kvc0ajclzy6cmyq3maj577747h5xz";
+      name = "ktp-desktop-applets-18.12.0.tar.xz";
+    };
+  };
+  ktp-filetransfer-handler = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-filetransfer-handler-18.12.0.tar.xz";
+      sha256 = "1dzrzv6nmv6ighiqq8hi9crasnqdbqimg3qdssyryxrqs64m9h29";
+      name = "ktp-filetransfer-handler-18.12.0.tar.xz";
+    };
+  };
+  ktp-kded-module = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-kded-module-18.12.0.tar.xz";
+      sha256 = "0720yayzz4rwrmplwjpq6bfb86k0jhmxc5k25yqj9fg7n6w2qsx3";
+      name = "ktp-kded-module-18.12.0.tar.xz";
+    };
+  };
+  ktp-send-file = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-send-file-18.12.0.tar.xz";
+      sha256 = "0jfy8qqm6n5pm2s24pbvxmmcibxxq71gggg4xf0miqkhdvx5b9kw";
+      name = "ktp-send-file-18.12.0.tar.xz";
+    };
+  };
+  ktp-text-ui = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktp-text-ui-18.12.0.tar.xz";
+      sha256 = "14ln91srqfkk0fgp197wvlqxgagw23x4h94j1v1m51pia0v6226b";
+      name = "ktp-text-ui-18.12.0.tar.xz";
+    };
+  };
+  ktuberling = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/ktuberling-18.12.0.tar.xz";
+      sha256 = "0ms20qffd5mwlrxbd8ajb0lx3ny7mhlx25n59w2paq2x313qcsfk";
+      name = "ktuberling-18.12.0.tar.xz";
+    };
+  };
+  kturtle = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kturtle-18.12.0.tar.xz";
+      sha256 = "0ik44282gc6rmzsg6xv4fvpx1yzb4y4gv7jmslxgwi6rwc1q0m5v";
+      name = "kturtle-18.12.0.tar.xz";
+    };
+  };
+  kubrick = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kubrick-18.12.0.tar.xz";
+      sha256 = "0h4jx41wawbifdx7mzqbsx9nfrn2r9rkb01y0d63f5s2835hs2yc";
+      name = "kubrick-18.12.0.tar.xz";
+    };
+  };
+  kwalletmanager = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kwalletmanager-18.12.0.tar.xz";
+      sha256 = "0znbrp1hk7jky9y3p9bc47sqn8mqd54x5j8kw52sg9v4428aag09";
+      name = "kwalletmanager-18.12.0.tar.xz";
+    };
+  };
+  kwave = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kwave-18.12.0.tar.xz";
+      sha256 = "00h5i0iax9hd79pw71wvv4p75rv6z61zpfg2s4n6zqjx8c312rhh";
+      name = "kwave-18.12.0.tar.xz";
+    };
+  };
+  kwordquiz = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/kwordquiz-18.12.0.tar.xz";
+      sha256 = "0a0i7khsvn68rxwwm3q5h4ymf6j3bdm3sc3q3z74rj3n0s03dnww";
+      name = "kwordquiz-18.12.0.tar.xz";
+    };
+  };
+  libgravatar = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libgravatar-18.12.0.tar.xz";
+      sha256 = "077qkpsg2v77mzg2q5jw7fr6sss07x5998f9x65pqgqlc9b6h494";
+      name = "libgravatar-18.12.0.tar.xz";
+    };
+  };
+  libkcddb = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkcddb-18.12.0.tar.xz";
+      sha256 = "15dmbb5cvr9rcaspizrc2laxkwhfrsnlczdns0biq3lysajblwfa";
+      name = "libkcddb-18.12.0.tar.xz";
+    };
+  };
+  libkcompactdisc = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkcompactdisc-18.12.0.tar.xz";
+      sha256 = "1jrw16hbp8fn48l70gqxpiy6iwpisk087sixvs3cbn94dmczgpka";
+      name = "libkcompactdisc-18.12.0.tar.xz";
+    };
+  };
+  libkdcraw = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkdcraw-18.12.0.tar.xz";
+      sha256 = "0n3b5blda31gf38hyplpb29mp6aa187adgqqyijzhnvvm1mfwa5z";
+      name = "libkdcraw-18.12.0.tar.xz";
+    };
+  };
+  libkdegames = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkdegames-18.12.0.tar.xz";
+      sha256 = "01i00n4cjpq1srag5ca8siw6rjc1gwhdzfib6cg3xf9my5sl0hbv";
+      name = "libkdegames-18.12.0.tar.xz";
+    };
+  };
+  libkdepim = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkdepim-18.12.0.tar.xz";
+      sha256 = "188jf33dihrrq0zzmdddg6sx4ck2lp5gj1br4xfsqgrc1qf9z5hd";
+      name = "libkdepim-18.12.0.tar.xz";
+    };
+  };
+  libkeduvocdocument = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkeduvocdocument-18.12.0.tar.xz";
+      sha256 = "1fa6pgpcarqabc18bph4lijsx1paf1a1arisrlf5mgkivg2yvy2k";
+      name = "libkeduvocdocument-18.12.0.tar.xz";
+    };
+  };
+  libkexiv2 = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkexiv2-18.12.0.tar.xz";
+      sha256 = "1x3pxcii60kn8c1bmgrra9h4ahblwwp5vjd6p2wg2f4jkpmjz1ha";
+      name = "libkexiv2-18.12.0.tar.xz";
+    };
+  };
+  libkgapi = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkgapi-18.12.0.tar.xz";
+      sha256 = "0d79p7f6gmb8vjbp2nmc5rz9rabj08np96jbqf4wzgcjcxxi64kp";
+      name = "libkgapi-18.12.0.tar.xz";
+    };
+  };
+  libkgeomap = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkgeomap-18.12.0.tar.xz";
+      sha256 = "1pmicj4p3d17i7nj6alns8a24ay0xrs852d1x1xrcdkv7h7y5hvi";
+      name = "libkgeomap-18.12.0.tar.xz";
+    };
+  };
+  libkipi = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkipi-18.12.0.tar.xz";
+      sha256 = "0cfn09x7splycpqwz0fy52lnkpc9dsq6i2j2q3r4fjgpblj9m86h";
+      name = "libkipi-18.12.0.tar.xz";
+    };
+  };
+  libkleo = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkleo-18.12.0.tar.xz";
+      sha256 = "14iy3wis79rfri7najbyvx94ym2aa7si8h35rx4977flhc80nzin";
+      name = "libkleo-18.12.0.tar.xz";
+    };
+  };
+  libkmahjongg = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkmahjongg-18.12.0.tar.xz";
+      sha256 = "12pki8hkcv8ihcwwdnhpcz21h4676zra5qwf56aa5cj5qpdgf4gx";
+      name = "libkmahjongg-18.12.0.tar.xz";
+    };
+  };
+  libkomparediff2 = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libkomparediff2-18.12.0.tar.xz";
+      sha256 = "0xbccawxqk29f2qvr6hcbpan4fhahzksg7bl7jnv8xsv01lbm3rs";
+      name = "libkomparediff2-18.12.0.tar.xz";
+    };
+  };
+  libksane = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libksane-18.12.0.tar.xz";
+      sha256 = "1vdxyik47fij9mm1fs6p9bn0n56wsajzqd5am03nrwkwanva25xj";
+      name = "libksane-18.12.0.tar.xz";
+    };
+  };
+  libksieve = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/libksieve-18.12.0.tar.xz";
+      sha256 = "1hwasycmfnjzqyxfh0kir1jhx002qci6dclv4cysv1ww33wsyskp";
+      name = "libksieve-18.12.0.tar.xz";
+    };
+  };
+  lokalize = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/lokalize-18.12.0.tar.xz";
+      sha256 = "07rnx40836xncndqbcvpircvgnaywmwzbkfl16665ciphxrilm6q";
+      name = "lokalize-18.12.0.tar.xz";
+    };
+  };
+  lskat = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/lskat-18.12.0.tar.xz";
+      sha256 = "1cw9z22gvyd9d44sg1qxir923q1ilmmqdgzzrh8wrb5p3m0mn0nz";
+      name = "lskat-18.12.0.tar.xz";
+    };
+  };
+  mailcommon = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/mailcommon-18.12.0.tar.xz";
+      sha256 = "0aigxd6pkw9xwy8q1kx9vqp17vljrzwv8skq6qmh9fvkjiampw84";
+      name = "mailcommon-18.12.0.tar.xz";
+    };
+  };
+  mailimporter = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/mailimporter-18.12.0.tar.xz";
+      sha256 = "06nsn7vfgrvfgrmx4qyy21rq4a8bj5vxi4hrfd7377pd1sx58qvi";
+      name = "mailimporter-18.12.0.tar.xz";
+    };
+  };
+  marble = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/marble-18.12.0.tar.xz";
+      sha256 = "0ljzv2ygpqwz4a387ja280p7cd47bkjv7m40c3yn2yijiladyffv";
+      name = "marble-18.12.0.tar.xz";
+    };
+  };
+  mbox-importer = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/mbox-importer-18.12.0.tar.xz";
+      sha256 = "08rfgf5zcp6vhd78rj2yikmzrgddhdn7cykw9pqfgmhy0nci14sm";
+      name = "mbox-importer-18.12.0.tar.xz";
+    };
+  };
+  messagelib = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/messagelib-18.12.0.tar.xz";
+      sha256 = "189bn6lblqq4vr1a2pk99pj3y3xh5q8xxdrg2hrdcc10wmjk9knv";
+      name = "messagelib-18.12.0.tar.xz";
+    };
+  };
+  minuet = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/minuet-18.12.0.tar.xz";
+      sha256 = "1hma6r3z7k382gpd0wccxdbss1a17gvkb5fvdaii5xm7c9ca63r7";
+      name = "minuet-18.12.0.tar.xz";
+    };
+  };
+  okular = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/okular-18.12.0.tar.xz";
+      sha256 = "184r6lqsyx1x63zjirn709w0pd81hyh4f5j6m37m5hr6dg8l6mli";
+      name = "okular-18.12.0.tar.xz";
+    };
+  };
+  palapeli = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/palapeli-18.12.0.tar.xz";
+      sha256 = "09fbsw0id1p81zvd7kfimjx81m3zz36kdvd40jwbsffrqi682iww";
+      name = "palapeli-18.12.0.tar.xz";
+    };
+  };
+  parley = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/parley-18.12.0.tar.xz";
+      sha256 = "1mnp835g1b7vwz5gnzl78x3s80sw1ps4gsddg4ywrdkjr5b099gk";
+      name = "parley-18.12.0.tar.xz";
+    };
+  };
+  picmi = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/picmi-18.12.0.tar.xz";
+      sha256 = "0y6fnh8629zj98ih4cwgy31gknpc6ipn4aqxcjg8hfic8jxnppyp";
+      name = "picmi-18.12.0.tar.xz";
+    };
+  };
+  pimcommon = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/pimcommon-18.12.0.tar.xz";
+      sha256 = "1rchq4clw6r08vm6cw9kw52bn7z1nfjmp2lmi0sq3pjfqlxif2zc";
+      name = "pimcommon-18.12.0.tar.xz";
+    };
+  };
+  pim-data-exporter = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/pim-data-exporter-18.12.0.tar.xz";
+      sha256 = "0ywxcd02crwjrqx8ikkc4rgx1z93zvzqadqg3sjh636iz8svv5jc";
+      name = "pim-data-exporter-18.12.0.tar.xz";
+    };
+  };
+  pim-sieve-editor = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/pim-sieve-editor-18.12.0.tar.xz";
+      sha256 = "144frbny1pq1viam527b96fxalc9iv5ppqrrvpndqsvjrlsrll45";
+      name = "pim-sieve-editor-18.12.0.tar.xz";
+    };
+  };
+  poxml = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/poxml-18.12.0.tar.xz";
+      sha256 = "1gnk9rzpa6rgff9xhawizx8cgsw84jqkpkr8aa2ki8zs4s6n9zl6";
+      name = "poxml-18.12.0.tar.xz";
+    };
+  };
+  print-manager = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/print-manager-18.12.0.tar.xz";
+      sha256 = "03jgjj7xfc57bsq3nx3l836pmpqywlchqis9109k5cpygqvgqkr5";
+      name = "print-manager-18.12.0.tar.xz";
+    };
+  };
+  rocs = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/rocs-18.12.0.tar.xz";
+      sha256 = "1gg0xg732wb9vzf1c69r5cqqhayxygv2brvbk3gvq6b201hv1q90";
+      name = "rocs-18.12.0.tar.xz";
+    };
+  };
+  signon-kwallet-extension = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/signon-kwallet-extension-18.12.0.tar.xz";
+      sha256 = "0izmwyv1bw4iqgyhjrsq85xg7m5bp1v9khy5fxh1mhvh52w9zq8s";
+      name = "signon-kwallet-extension-18.12.0.tar.xz";
+    };
+  };
+  spectacle = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/spectacle-18.12.0.tar.xz";
+      sha256 = "0nnsv0y28pxxhvf3r76nqgmn0ncixhr8d783mm3i3a3yz1z8a45c";
+      name = "spectacle-18.12.0.tar.xz";
+    };
+  };
+  step = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/step-18.12.0.tar.xz";
+      sha256 = "0gqcwvv2xb321zx7y4bg28haqpzz5h8r7cxn6z4x5qnj6ijkx0zr";
+      name = "step-18.12.0.tar.xz";
+    };
+  };
+  svgpart = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/svgpart-18.12.0.tar.xz";
+      sha256 = "1nqbbzndbyj9ikgw7fhy52621swb5blzycd5qn9if9ymsi524217";
+      name = "svgpart-18.12.0.tar.xz";
+    };
+  };
+  sweeper = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/sweeper-18.12.0.tar.xz";
+      sha256 = "0pq991zxdg1816j8dbhc3vjxj84plif17zpvp3smiscr4n6x209h";
+      name = "sweeper-18.12.0.tar.xz";
+    };
+  };
+  umbrello = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/umbrello-18.12.0.tar.xz";
+      sha256 = "15r5wv0k1dwfxp4l2mc4886s17ck390a2mpy1l08jvg93w1cbm3f";
+      name = "umbrello-18.12.0.tar.xz";
+    };
+  };
+  zeroconf-ioslave = {
+    version = "18.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/applications/18.12.0/src/zeroconf-ioslave-18.12.0.tar.xz";
+      sha256 = "1qvmsr88kl1gq3wrn5g4wf4ka24pbbhdy54c8n25bhxd8pv0rd07";
+      name = "zeroconf-ioslave-18.12.0.tar.xz";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/1password/default.nix b/nixpkgs/pkgs/applications/misc/1password/default.nix
new file mode 100644
index 000000000000..a25d40e29bd0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/1password/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "1password-${version}";
+  version = "0.5.4";
+  src =
+    if stdenv.hostPlatform.system == "i686-linux" then
+      fetchzip {
+        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
+        sha256 = "0wni2hk5b1qfr24vi24jiprpi08k3qgaw9lqp61k41a1sjp3izv0";
+        stripRoot = false;
+      }
+    else if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchzip {
+        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
+        sha256 = "169d5fl3cfw3xrlpm9nlmwbnp0xgh0la9qybzf8ragp0020nlyih";
+        stripRoot = false;
+      }
+    else if stdenv.hostPlatform.system == "x86_64-darwin" then
+      fetchzip {
+        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.zip";
+        sha256 = "1scikv7v33kzg9rqsrz97yklxaskvif84br13zg8annm43k5vlma";
+        stripRoot = false;
+      }
+    else throw "Architecture not supported";
+
+  installPhase = ''
+    install -D op $out/bin/op
+  '';
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      $out/bin/op
+  '';
+
+  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 ];
+    license      = licenses.unfree;
+    platforms    = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/abook/default.nix b/nixpkgs/pkgs/applications/misc/abook/default.nix
new file mode 100644
index 000000000000..f87bd4c11ec4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh b/nixpkgs/pkgs/applications/misc/adobe-reader/builder.sh
new file mode 100644
index 000000000000..41281385c990
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix b/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
new file mode 100644
index 000000000000..0ca12a0096ed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, libX11, cups, zlib, libxml2, pango, atk, gtk2, glib
+, gdk_pixbuf }:
+
+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 ];
+
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/airspy/default.nix b/nixpkgs/pkgs/applications/misc/airspy/default.nix
new file mode 100644
index 000000000000..2042f1047b22
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/airspy/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub
+, cmake , pkgconfig, libusb
+}:
+
+let
+  version = "1.0.9";
+in
+  stdenv.mkDerivation {
+    name = "airspy-${version}";
+
+    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 = [ libusb ];
+
+    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/nixpkgs/pkgs/applications/misc/airtame/default.nix b/nixpkgs/pkgs/applications/misc/airtame/default.nix
new file mode 100644
index 000000000000..3e5bf8df4a7b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/airtame/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
+, alsaLib, atk, cairo, cups, curl, dbus, expat, ffmpeg, 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 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";
+  name = "${pname}-${version}";
+  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 = "Application;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/nixpkgs/pkgs/applications/misc/alacritty/default.nix b/nixpkgs/pkgs/applications/misc/alacritty/default.nix
new file mode 100644
index 000000000000..5d1e43769b7e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/alacritty/default.nix
@@ -0,0 +1,121 @@
+{ stdenv,
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  cmake,
+  makeWrapper,
+  ncurses,
+  expat,
+  pkgconfig,
+  freetype,
+  fontconfig,
+  libX11,
+  gzip,
+  libXcursor,
+  libXxf86vm,
+  libXi,
+  libXrandr,
+  libGL,
+  xclip,
+  # Darwin Frameworks
+  cf-private,
+  AppKit,
+  CoreFoundation,
+  CoreGraphics,
+  CoreServices,
+  CoreText,
+  Foundation,
+  OpenGL }:
+
+with rustPlatform;
+
+let
+  rpathLibs = [
+    expat
+    freetype
+    fontconfig
+    libX11
+    libXcursor
+    libXxf86vm
+    libXrandr
+    libGL
+    libXi
+  ];
+in buildRustPackage rec {
+  name = "alacritty-${version}";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "jwilm";
+    repo = "alacritty";
+    rev = "v${version}";
+    sha256 = "1mf0x8dc196qf08lqpm0n4a5954cx9qfb09dq8ab7mp3xnyrnqzx";
+  };
+
+  cargoSha256 = "0p3bygvmpmy09h7972nhmma51lxp8q91cdlaw3s6p35i79hq3bmp";
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+    pkgconfig
+    ncurses
+    gzip
+  ];
+
+  buildInputs = rpathLibs
+    ++ lib.optionals stdenv.isDarwin [
+      AppKit CoreFoundation CoreGraphics CoreServices CoreText Foundation OpenGL
+      # Needed for CFURLResourceIsReachable symbols.
+      cf-private
+    ];
+
+  outputs = [ "out" "terminfo" ];
+
+  # https://github.com/NixOS/nixpkgs/issues/49693
+  doCheck = !stdenv.isDarwin;
+
+  postPatch = ''
+    substituteInPlace copypasta/src/x11.rs \
+      --replace Command::new\(\"xclip\"\) Command::new\(\"${xclip}/bin/xclip\"\)
+  '';
+
+  postBuild = lib.optionalString stdenv.isDarwin "make app";
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D target/release/alacritty $out/bin/alacritty
+
+  '' + (if stdenv.isDarwin then ''
+    mkdir $out/Applications
+    cp -r target/release/osx/Alacritty.app $out/Applications/Alacritty.app
+  '' else ''
+    install -D alacritty.desktop $out/share/applications/alacritty.desktop
+    patchelf --set-rpath "${stdenv.lib.makeLibraryPath rpathLibs}" $out/bin/alacritty
+  '') + ''
+
+    install -D alacritty-completions.zsh "$out/share/zsh/site-functions/_alacritty"
+    install -D alacritty-completions.bash "$out/etc/bash_completion.d/alacritty-completions.bash"
+    install -D alacritty-completions.fish "$out/share/fish/vendor_completions.d/alacritty.fish"
+
+    install -dm 755 "$out/share/man/man1"
+    gzip -c alacritty.man > "$out/share/man/man1/alacritty.1.gz"
+
+    install -dm 755 "$terminfo/share/terminfo/a/"
+    tic -x -o "$terminfo/share/terminfo" alacritty.info
+    mkdir -p $out/nix-support
+    echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
+
+    runHook postInstall
+  '';
+
+  dontPatchELF = true;
+
+  meta = with stdenv.lib; {
+    description = "GPU-accelerated terminal emulator";
+    homepage = https://github.com/jwilm/alacritty;
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ mic92 ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/albert/default.nix b/nixpkgs/pkgs/applications/misc/albert/default.nix
new file mode 100644
index 000000000000..39dae0db1250
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/albert/default.nix
@@ -0,0 +1,52 @@
+{ mkDerivation, lib, fetchFromGitHub, makeWrapper, qtbase,
+  qtdeclarative, qtsvg, qtx11extras, muparser, cmake, python3,
+  qtcharts }:
+
+mkDerivation rec {
+  pname = "albert";
+  version = "0.15.0";
+
+  src = fetchFromGitHub {
+    owner  = "albertlauncher";
+    repo   = "albert";
+    rev    = "v${version}";
+    sha256 = "063z9yq6bsxcsqsw1n93ks5dzhzv6i252mjz1d5mxhxvgmqlfk0v";
+    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\"," \
+      lib/albertcore/src/core/albert.cpp
+  '';
+
+  preBuild = ''
+    mkdir -p "$out/"
+    ln -s "$PWD/lib" "$out/lib"
+  '';
+
+  postBuild = ''
+    rm "$out/lib"
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/albert \
+      --prefix XDG_DATA_DIRS : $out/share
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/aminal/default.nix b/nixpkgs/pkgs/applications/misc/aminal/default.nix
new file mode 100644
index 000000000000..e80921f46ebd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/aminal/default.nix
@@ -0,0 +1,75 @@
+{ buildGoPackage
+, Carbon
+, Cocoa
+, Kernel
+, cf-private
+, fetchFromGitHub
+, lib
+, mesa_glu
+, stdenv
+, xorg
+}:
+
+buildGoPackage rec {
+  name = "aminal-${version}";
+  version = "0.7.12";
+
+  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
+      cf-private  /* Needed for NSDefaultRunLoopMode */
+    ];
+
+  src = fetchFromGitHub {
+    owner = "liamg";
+    repo = "aminal";
+    rev = "v${version}";
+    sha256 = "1ak5g2i4ggi00b4q7qigfwsrwb5rvswjjbr2hp9kyxd45nycb0g4";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix b/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix
new file mode 100644
index 000000000000..f21438dfcec5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  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/nixpkgs/pkgs/applications/misc/ape/apeclex.nix b/nixpkgs/pkgs/applications/misc/ape/apeclex.nix
new file mode 100644
index 000000000000..710ddfec9942
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ape/apeclex.nix
@@ -0,0 +1,8 @@
+{ stdenv, attemptoClex, callPackage }:
+
+callPackage ./. {
+  pname = "ape-clex";
+  lexicon = "${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/nixpkgs/pkgs/applications/misc/ape/clex.nix b/nixpkgs/pkgs/applications/misc/ape/clex.nix
new file mode 100644
index 000000000000..37d140e19ba3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ape/clex.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "attempto-clex-${version}";
+  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/nixpkgs/pkgs/applications/misc/ape/default.nix b/nixpkgs/pkgs/applications/misc/ape/default.nix
new file mode 100644
index 000000000000..e78ba2df9993
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ape/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, swiProlog, makeWrapper,
+  fetchFromGitHub,
+  lexicon ? "lexicon/clex_lexicon.pl",
+  pname ? "ape",
+  description ? "Parser for Attempto Controlled English (ACE)",
+  license ? with stdenv.lib; licenses.lgpl3
+  }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  version = "6.7-131003";
+
+  buildInputs = [ swiProlog makeWrapper ];
+
+  src = fetchFromGitHub {
+     owner = "Attempto";
+     repo = "APE";
+     rev = version;
+     sha256 = "0cw47qjg4896kw3vps6rfs02asvscsqvcfdiwgfmqb3hvykb1sdx";
+  };
+
+  patchPhase = ''
+    # We move the file first to avoid "same file" error in the default case
+    cp ${lexicon} new_lexicon.pl
+    rm lexicon/clex_lexicon.pl
+    cp new_lexicon.pl lexicon/clex_lexicon.pl
+  '';
+
+  buildPhase = ''
+    make 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/nixpkgs/pkgs/applications/misc/apvlv/default.nix b/nixpkgs/pkgs/applications/misc/apvlv/default.nix
new file mode 100644
index 000000000000..2d9ea5e3574b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/apvlv/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, pkgconfig, pcre, libxkbcommon, epoxy
+, gtk3, poppler, freetype, libpthreadstubs, libXdmcp, libxshmfence, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.1.5";
+  name = "apvlv-${version}";
+
+  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";
+    })
+  ];
+
+  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/nixpkgs/pkgs/applications/misc/archiver/default.nix b/nixpkgs/pkgs/applications/misc/archiver/default.nix
new file mode 100644
index 000000000000..25fafb604c33
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/archiver/default.nix
@@ -0,0 +1,28 @@
+{ buildGoPackage
+, fetchFromGitHub
+, lib
+}:
+
+buildGoPackage rec {
+  name = "archiver-${version}";
+  version = "3.0.0";
+
+  goPackagePath = "github.com/mholt/archiver";
+
+  src = fetchFromGitHub {
+    owner = "mholt";
+    repo = "archiver";
+    rev = "v${version}";
+    sha256 = "1wngv51333h907mp6nbzd9dq6r0x06mag2cij92912jcbzy0q8bk";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "Easily create and extract .zip, .tar, .tar.gz, .tar.bz2, .tar.xz, .tar.lz4, .tar.sz, and .rar (extract-only) files with Go";
+    homepage = https://github.com/mholt/archiver;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/archiver/deps.nix b/nixpkgs/pkgs/applications/misc/archiver/deps.nix
new file mode 100644
index 000000000000..4b14fd47711b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/archiver/deps.nix
@@ -0,0 +1,56 @@
+[
+  {
+    goPackagePath = "github.com/dsnet/compress";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dsnet/compress";
+      rev = "cc9eb1d7ad760af14e8f918698f745e80377af4f";
+      sha256 = "159liclywmyb6zx88ga5gn42hfl4cpk1660zss87fkx31hdq9fgx";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/snappy";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/snappy";
+      rev = "2e65f85255dbc3072edf28d6b5b8efc472979f5a";
+      sha256 = "05w6mpc4qcy0pv8a2bzng8nf4s5rf5phfang4jwy9rgf808q0nxf";
+    };
+  }
+  {
+    goPackagePath = "github.com/nwaples/rardecode";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nwaples/rardecode";
+      rev = "197ef08ef68c4454ae5970a9c2692d6056ceb8d7";
+      sha256 = "0vvijw7va283dbdvnf4bgkn7bjngxqzk1rzdpy8sl343r62bmh4g";
+    };
+  }
+  {
+    goPackagePath = "github.com/pierrec/lz4";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pierrec/lz4";
+      rev = "623b5a2f4d2a41e411730dcdfbfdaeb5c0c4564e";
+      sha256 = "1hhf7vyz5irrqs7ixdmvsvzmy9izv3ha8jbyy0cs486h61nzqkki";
+    };
+  }
+  {
+    goPackagePath = "github.com/ulikunitz/xz";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ulikunitz/xz";
+      rev = "590df8077fbcb06ad62d7714da06c00e5dd2316d";
+      sha256 = "07mivr4aiw3b8qzwajsxyjlpbkf3my4xx23lv0yryc4pciam5lhy";
+    };
+  }
+  {
+    goPackagePath = "github.com/xi2/xz";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xi2/xz";
+      rev = "48954b6210f8d154cb5f8484d3a3e1f83489309e";
+      sha256 = "178r0fa2dpzxf0sabs7dn0c8fa7vs87zlxk6spkn374ls9pir7nq";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/misc/artha/default.nix b/nixpkgs/pkgs/applications/misc/artha/default.nix
new file mode 100644
index 000000000000..f69152820e43
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/artha/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, dbus-glib, gtk2, pkgconfig, wordnet }:
+
+stdenv.mkDerivation rec {
+  name = "artha-${version}";
+  version = "1.0.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/artha/1.0.3/artha-1.0.3.tar.bz2";
+    sha256 = "0qr4ihl7ma3cq82xi1fpzvf74mm9vsg0j035xvmcp3r6rmw2fycx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ dbus-glib gtk2 wordnet ];
+
+  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/nixpkgs/pkgs/applications/misc/audio/sox/default.nix b/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
new file mode 100644
index 000000000000..2585b5545482
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/audio/sox/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchurl
+, enableAlsa ? true, alsaLib ? null
+, enableLibao ? true, libao ? null
+, enableLame ? false, lame ? null
+, enableLibmad ? true, libmad ? null
+, enableLibogg ? true, libogg ? null, libvorbis ? null
+, enableFLAC ? true, flac ? null
+, enablePNG ? true, libpng ? null
+, enableLibsndfile ? true, libsndfile ? 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";
+  };
+
+  buildInputs =
+    optional (enableAlsa && stdenv.isLinux) alsaLib ++
+    optional enableLibao libao ++
+    optional enableLame lame ++
+    optional enableLibmad libmad ++
+    optionals enableLibogg [ libogg libvorbis ] ++
+    optional enableFLAC flac ++
+    optional enablePNG libpng ++
+    optional enableLibsndfile libsndfile ++
+    optionals enableAMR [ amrnb amrwb ] ++
+    optional enableLibpulseaudio libpulseaudio;
+
+  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/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix b/nixpkgs/pkgs/applications/misc/audio/soxr/default.nix
new file mode 100644
index 000000000000..7c4e6ff8c3d7
--- /dev/null
+++ b/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:"`pwd`/build/src
+  '' else ''
+    export 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/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix b/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
new file mode 100644
index 000000000000..0add5ed78cc5
--- /dev/null
+++ b/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 = "BSD";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix b/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix
new file mode 100644
index 000000000000..09b75e27d46a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/autospotting/default.nix b/nixpkgs/pkgs/applications/misc/autospotting/default.nix
new file mode 100644
index 000000000000..2f38307ca1e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/autospotting/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "autospotting-${version}";
+  version = "unstable-2018-11-17";
+  goPackagePath = "github.com/AutoSpotting/AutoSpotting";
+
+  src = fetchFromGitHub {
+    owner = "AutoSpotting";
+    repo = "AutoSpotting";
+    rev = "122ab8f292a2f718dd85e79ec22acd455122907e";
+    sha256 = "0p48lgig9kblxvgq1kggczkn4qdbx6ciq9c8x0179i80vl4jf7v6";
+  };
+
+  goDeps = ./deps.nix;
+
+  # 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.linux;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/misc/autospotting/deps.nix b/nixpkgs/pkgs/applications/misc/autospotting/deps.nix
new file mode 100644
index 000000000000..ea744ed6648f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/autospotting/deps.nix
@@ -0,0 +1,75 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/aws/aws-lambda-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aws/aws-lambda-go";
+      rev =  "2d482ef09017ae953b1e8d5a6ddac5b696663a3c";
+      sha256 = "06v2yfvn4sn116lds0526a8mfrsng4vafrdjf1dhpalqarrbdvmz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/aws/aws-sdk-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aws/aws-sdk-go";
+      rev =  "9333060a8d957db41bff1c80603a802aa674fad8";
+      sha256 = "0fnypw6zm6k70fzhm5a8g69ag64rxbrrpdk7l3rkfqd99slyg5kz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cristim/ec2-instances-info";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cristim/ec2-instances-info";
+      rev =  "73c042a5558cd6d8b61fb82502d6f7aec334e9ed";
+      sha256 = "1xajrkxqqz5wlbi9w2wdhnk115rbmqxyga29f8v9psq8hzwgi0rg";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "d8f796af33cc11cb798c1aaeb27a4ebc5099927d";
+      sha256 = "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-ini/ini";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-ini/ini";
+      rev =  "5cf292cae48347c2490ac1a58fe36735fb78df7e";
+      sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jmespath/go-jmespath";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jmespath/go-jmespath";
+      rev =  "0b12d6b5";
+      sha256 = "1vv6hph8j6xgv7gwl9vvhlsaaqsm22sxxqmgmldi4v11783pc1ld";
+    };
+  }
+  {
+    goPackagePath  = "github.com/namsral/flag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namsral/flag";
+      rev =  "67f268f20922975c067ed799e4be6bacf152208c";
+      sha256 = "1lmxq3z276zrsggpfq9b7yklzzxdyib49zr8sznb1lcqlvxqsr47";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+]
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/avrdudess/default.nix b/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
new file mode 100644
index 000000000000..1144d5152847
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/avrdudess/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, unzip, mono, avrdude, gtk2, xdg_utils }:
+
+stdenv.mkDerivation rec {
+  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__
+    #!${stdenv.shell}
+    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/nixpkgs/pkgs/applications/misc/barrier/default.nix b/nixpkgs/pkgs/applications/misc/barrier/default.nix
new file mode 100644
index 000000000000..6151b3d55ab7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/barrier/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchpatch, fetchurl, cmake, curl, xorg, avahi, qt5,
+  avahiWithLibdnssdCompat ? avahi.override { withLibdnssdCompat = true; }
+}:
+
+stdenv.mkDerivation rec {
+  name = "barrier-${version}";
+  version = "2.1.1";
+  src = fetchurl {
+    url = "https://github.com/debauchee/barrier/archive/v${version}.tar.gz";
+    sha256 = "0x17as5ikfx2r5hawr368a9risvcavyc8zv5g724s709nr6m0pbp";
+  };
+
+  buildInputs = [ cmake curl xorg.libX11 xorg.libXext xorg.libXtst avahiWithLibdnssdCompat ];
+  propagatedBuildInputs = with qt5; [ qtbase ];
+
+  patches = [
+    # Fix compilation on Qt 5.11
+    # Patch should be removed on next version bump from 2.1.1!
+    (fetchpatch {
+      url = "https://github.com/debauchee/barrier/commit/a956cad0da23f544b874888c6c3540dc7f8f22cf.patch";
+      sha256 = "0x5045bdks1f9casp0v7svx9ml1gxhkhw5sqc7xk36h184m24a21";
+    })
+  ];
+
+  postFixup = ''
+    substituteInPlace "$out/share/applications/barrier.desktop" --replace "Exec=barrier" "Exec=$out/bin/barrier"
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix b/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix
new file mode 100644
index 000000000000..fc5fa4d03006
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/bashSnippets/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper
+, curl, python, bind, iproute, bc, gitMinimal }:
+let
+  version = "1.17.3";
+  deps = lib.makeBinPath [
+    curl
+    python
+    bind.dnsutils
+    iproute
+    bc
+    gitMinimal
+  ];
+in
+stdenv.mkDerivation {
+  name = "bashSnippets-${version}";
+
+  src = fetchFromGitHub {
+    owner = "alexanderepstein";
+    repo = "Bash-Snippets";
+    rev = "v${version}";
+    sha256 = "1xdjk8bjh7l6h7gdqrra1dh4wdq89wmd0jsirsvqa3bmcsb2wz1r";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/batti/default.nix b/nixpkgs/pkgs/applications/misc/batti/default.nix
new file mode 100644
index 000000000000..283e7f199071
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/batti/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl
+, pkgconfig, gettext, pythonPackages
+, gtk2, gdk_pixbuf, upower
+, makeWrapper }:
+
+let
+  inherit (pythonPackages) dbus-python pygtk python;
+in stdenv.mkDerivation rec {
+
+  name = "batti-${version}";
+  version = "0.3.8";
+
+  src = fetchurl {
+    url = "https://batti-gtk.googlecode.com/files/${name}.tar.gz";
+    sha256 = "072d92gpsiiin631589nj77i2w1425p6db0qxyml7myscfy9jgx6";
+  };
+
+  buildInputs = with stdenv.lib;
+  [ pkgconfig gettext python gtk2 pygtk dbus-python gdk_pixbuf upower makeWrapper ];
+
+  configurePhase = "true";
+
+  buildPhase = ''
+    python setup.py build
+  '';
+
+  installPhase = ''
+    python setup.py install --prefix $out
+    wrapProgram "$out/bin/batti" \
+      --set PYTHONPATH "$PYTHONPATH:$(toPythonPath $out)" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+
+  meta = with stdenv.lib; {
+    description = "An {UPower,GTK}-based battery monitor for the system tray";
+    longDescription = ''
+      Batti is a simple battery monitor for the system tray. Batti
+      uses UPower, and if that is missing DeviceKit.Power, for it's
+      power information.
+    '';
+    homepage = http://batti-gtk.googlecode.com/;
+    license = licenses.lgpl2Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+    broken = true;  # see https://github.com/NixOS/nixpkgs/pull/4031#issuecomment-56283520 
+  };
+}
+
+# TODO: fix the "icon not found" problems...
diff --git a/nixpkgs/pkgs/applications/misc/bb/default.nix b/nixpkgs/pkgs/applications/misc/bb/default.nix
new file mode 100644
index 000000000000..f085e4bd7dd5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/bb/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchurl, darwin, aalib, ncurses, xorg, libmikmod }:
+
+stdenv.mkDerivation rec {
+  name    = "bb-${version}";
+  version = "1.3rc1";
+
+  src = fetchurl {
+    url    = "mirror://sourceforge/aa-project/bb/${version}/${name}.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/nixpkgs/pkgs/applications/misc/bibletime/default.nix b/nixpkgs/pkgs/applications/misc/bibletime/default.nix
new file mode 100644
index 000000000000..41184d6e9492
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/bibletime/default.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchurl, cmake, sword, qt4, boost, clucene_core}:
+
+stdenv.mkDerivation rec {
+
+  version = "2.10.1";
+
+  name = "bibletime-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/bibletime/${name}.tar.xz";
+    sha256 = "14fayy5h1ffjxin669q56fflxn4ij1irgn60cygwx2y02cwxbll6";
+  };
+
+  prePatch = ''
+    patchShebangs .;
+  '';
+
+  preConfigure =  ''
+    export CLUCENE_HOME=${clucene_core};
+    export SWORD_HOME=${sword};
+  '';
+
+  buildInputs = [ cmake sword qt4 boost clucene_core ];
+
+  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/nixpkgs/pkgs/applications/misc/bitcoinarmory/default.nix b/nixpkgs/pkgs/applications/misc/bitcoinarmory/default.nix
new file mode 100644
index 000000000000..3245a56e9de3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/bitcoinarmory/default.nix
@@ -0,0 +1,88 @@
+{ stdenv, fetchFromGitHub, pythonPackages
+, pkgconfig, autoreconfHook, rsync
+, swig, qt4, fcgi
+, bitcoin, procps, utillinux
+}:
+let
+
+  version = "0.96.1";
+  inherit (pythonPackages) buildPythonApplication pyqt4 psutil twisted;
+
+in buildPythonApplication {
+
+  name = "bitcoinarmory-${version}";
+
+  src = fetchFromGitHub {
+    owner = "goatpig";
+    repo = "BitcoinArmory";
+    rev = "v${version}";
+    #sha256 = "023c7q1glhrkn4djz3pf28ckd1na52lsagv4iyfgchqvw7qm7yx2";
+    sha256 = "0pjk5qx16n3kvs9py62666qkwp2awkgd87by4karbj7vk6p1l14h"; fetchSubmodules = true;
+  };
+
+  format = "other";
+
+  # FIXME bitcoind doesn't die on shutdown. Need some sort of patch to fix that.
+  #patches = [ ./shutdown-fix.patch ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    autoreconfHook
+    swig
+    qt4
+    fcgi
+    rsync # used by silly install script (TODO patch upstream)
+  ];
+
+  propagatedBuildInputs = [
+    pyqt4
+    psutil
+    twisted
+  ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  makeWrapperArgs = [
+    "--prefix            PATH : ${bitcoin}/bin"   # for `bitcoind`
+    "--prefix            PATH : ${procps}/bin"    # for `free`
+    "--prefix            PATH : ${utillinux}/bin" # for `whereis`
+    "--suffix LD_LIBRARY_PATH : $out/lib"         # for python bindings built as .so files
+    "--run    cd\\ $out/lib/armory"               # so that GUI resources can be loaded
+  ];
+
+  # auditTmpdir runs during fixupPhase, so patchelf before that
+  preFixup = ''
+    newRpath=$(patchelf --print-rpath $out/bin/ArmoryDB | sed -r 's|(.*)(/tmp/nix-build-.*libfcgi/.libs:?)(.*)|\1\3|')
+    patchelf --set-rpath $out/lib:$newRpath $out/bin/ArmoryDB
+  '';
+
+  # fixupPhase of mkPythonDerivation wraps $out/bin/*, so this needs to come after
+  postFixup = ''
+    wrapPythonProgramsIn $out/lib/armory "$out $pythonPath"
+    ln -sf $out/lib/armory/ArmoryQt.py $out/bin/armory
+  '';
+
+  meta = {
+    description = "Bitcoin wallet with cold storage and multi-signature support";
+    longDescription = ''
+      Armory is the most secure and full featured solution available for users
+      and institutions to generate and store Bitcoin private keys. This means
+      users never have to trust the Armory team and can use it with the Glacier
+      Protocol. Satoshi would be proud!
+
+      Users are empowered with multiple encrypted Bitcoin wallets and permanent
+      one-time ‘paper backups’. Armory pioneered cold storage and distributed
+      multi-signature. Bitcoin cold storage is a system for securely storing
+      Bitcoins on a completely air-gapped offline computer.
+
+      Maintainer's note: The original authors at https://bitcoinarmory.com/
+      discontinued development. I elected instead to package GitHub user
+      @goatpig's fork, as it's the most active, at time of this writing.
+    '';
+    homepage = https://github.com/goatpig/BitcoinArmory;
+    license = stdenv.lib.licenses.agpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ elitak ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/misc/bleachbit/default.nix b/nixpkgs/pkgs/applications/misc/bleachbit/default.nix
new file mode 100644
index 000000000000..f0dce54675cd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/bleachbit/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, pythonPackages, fetchurl }:
+pythonPackages.buildPythonApplication rec {
+  name = "bleachbit-${version}";
+  version = "2.0";
+
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/bleachbit/${name}.tar.bz2";
+    sha256 = "0ps98zx4n13q92bq7ykqi6hj3i7brdqgm87i9gk6ibvljp1vxdz9";
+  };
+
+  buildInputs = [  pythonPackages.wrapPython ];
+
+  doCheck = false;
+
+  postInstall = ''
+    mkdir -p $out/bin
+    cp bleachbit.py $out/bin/bleachbit
+    chmod +x $out/bin/bleachbit
+
+    substituteInPlace $out/bin/bleachbit --replace "#!/usr/bin/env python" "#!${pythonPackages.python.interpreter}"
+  '';
+
+  propagatedBuildInputs = with pythonPackages; [ pygtk ];
+
+  meta = {
+    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 = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ leonardoce ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/blender/default.nix b/nixpkgs/pkgs/applications/misc/blender/default.nix
new file mode 100644
index 000000000000..b9d4b83e4f1f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/blender/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
+, ilmbase, libXi, libX11, libXext, libXrender
+, libjpeg, libpng, libsamplerate, libsndfile
+, libtiff, libGLU_combined, openal, opencolorio, openexr, openimageio, openjpeg_1, pythonPackages
+, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd
+, jackaudioSupport ? false, libjack2
+, cudaSupport ? false, cudatoolkit
+, colladaSupport ? true, opencollada
+, enableNumpy ? false, makeWrapper
+}:
+
+with lib;
+
+let python = pythonPackages.python; in
+
+stdenv.mkDerivation rec {
+  name = "blender-2.79b";
+
+  src = fetchurl {
+    url = "https://download.blender.org/source/${name}.tar.gz";
+    sha256 = "1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c";
+  };
+
+  buildInputs =
+    [ boost cmake ffmpeg gettext glew ilmbase
+      libXi libX11 libXext libXrender
+      freetype libjpeg libpng libsamplerate libsndfile libtiff libGLU_combined openal
+      opencolorio openexr openimageio openjpeg_1 python zlib fftw jemalloc
+      (opensubdiv.override { inherit cudaSupport; })
+      makeWrapper
+    ]
+    ++ optional jackaudioSupport libjack2
+    ++ optional cudaSupport cudatoolkit
+    ++ optional colladaSupport opencollada;
+
+  postPatch =
+    ''
+      substituteInPlace doc/manpage/blender.1.py --replace /usr/bin/python ${python}/bin/python3
+      substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
+    '';
+
+  cmakeFlags =
+    [ "-DWITH_MOD_OCEANSIM=ON"
+      "-DWITH_CODEC_FFMPEG=ON"
+      "-DWITH_CODEC_SNDFILE=ON"
+      "-DWITH_INSTALL_PORTABLE=OFF"
+      "-DWITH_FFTW3=ON"
+      #"-DWITH_SDL=ON"
+      "-DWITH_GAMEENGINE=ON"
+      "-DWITH_OPENCOLORIO=ON"
+      "-DWITH_SYSTEM_OPENJPEG=ON"
+      "-DWITH_PLAYER=ON"
+      "-DWITH_OPENSUBDIV=ON"
+      "-DPYTHON_LIBRARY=python${python.majorVersion}m"
+      "-DPYTHON_LIBPATH=${python}/lib"
+      "-DPYTHON_INCLUDE_DIR=${python}/include/python${python.majorVersion}m"
+      "-DPYTHON_VERSION=${python.majorVersion}"
+      "-DWITH_PYTHON_INSTALL=OFF"
+      "-DWITH_PYTHON_INSTALL_NUMPY=OFF"
+    ]
+    ++ optional jackaudioSupport "-DWITH_JACK=ON"
+    ++ optionals cudaSupport
+      [ "-DWITH_CYCLES_CUDA_BINARIES=ON"
+        # Disable architectures before sm_30 to support new CUDA toolkits.
+        "-DCYCLES_CUDA_BINARIES_ARCH=sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61"
+      ]
+    ++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";
+
+  NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}m";
+
+  # 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;
+
+  postInstall = optionalString enableNumpy
+    ''
+      wrapProgram $out/bin/blender \
+        --prefix PYTHONPATH : ${pythonPackages.numpy}/lib/python${python.majorVersion}/site-packages
+    '';
+
+  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" ];
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/blender/fix-include.patch b/nixpkgs/pkgs/applications/misc/blender/fix-include.patch
new file mode 100644
index 000000000000..44e2147d073c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/buku/default.nix b/nixpkgs/pkgs/applications/misc/buku/default.nix
new file mode 100644
index 000000000000..dacfa908b516
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/buku/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, python3, fetchFromGitHub, fetchpatch }:
+
+with python3.pkgs; buildPythonApplication rec {
+  version = "3.8";
+  pname = "buku";
+
+  src = fetchFromGitHub {
+    owner = "jarun";
+    repo = "buku";
+    rev = "v${version}";
+    sha256 = "0gv26c4rr1akcaiff1nrwil03sv7d58mfxr86pgsw6nwld67ns0r";
+  };
+
+  checkInputs = [
+    pytestcov
+    hypothesis
+    pytest
+    pylint
+    flake8
+    pyyaml
+  ];
+
+  propagatedBuildInputs = [
+    cryptography
+    beautifulsoup4
+    requests
+    urllib3
+    flask
+    flask-api
+    flask-bootstrap
+    flask-paginate
+    flask_wtf
+    arrow
+    werkzeug
+    click
+  ];
+
+  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')" ""
+  '';
+
+  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; [ infinisil ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/calcurse/default.nix b/nixpkgs/pkgs/applications/misc/calcurse/default.nix
new file mode 100644
index 000000000000..fd65fcd22606
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/calcurse/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, ncurses, gettext, python3, python3Packages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "calcurse-${version}";
+  version = "4.3.0";
+
+  src = fetchurl {
+    url = "https://calcurse.org/files/${name}.tar.gz";
+    sha256 = "16jzg0nasnxdlz23i121x41pq5kbxmjzk52c5d863rg117fc7v1i";
+  };
+
+  buildInputs = [ ncurses gettext python3 ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  # Build Python environment with httplib2 for calcurse-caldav
+  pythonEnv = python3Packages.python.buildEnv.override {
+    extraLibs = [ python3Packages.httplib2 ];
+  };
+  propagatedBuildInputs = [ pythonEnv ];
+
+  postInstall = ''
+    substituteInPlace $out/bin/calcurse-caldav --replace /usr/bin/python3 ${pythonEnv}/bin/python3
+  '';
+
+  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 = http://calcurse.org/;
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/calibre/default.nix b/nixpkgs/pkgs/applications/misc/calibre/default.nix
new file mode 100644
index 000000000000..6da1cdefa700
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/calibre/default.nix
@@ -0,0 +1,178 @@
+{ stdenv, fetchurl, poppler_utils, pkgconfig, libpng
+, imagemagick, libjpeg, fontconfig, podofo, qtbase, qmake, icu, sqlite
+, makeWrapper, unrarSupport ? false, chmlib, python2Packages, libusb1, libmtp
+, xdg_utils, makeDesktopItem, wrapGAppsHook, removeReferencesTo
+}:
+
+stdenv.mkDerivation rec {
+  version = "3.36.0";
+  name = "calibre-${version}";
+
+  src = fetchurl {
+    url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
+    sha256 = "0fbf4b29vkka3gg8c5n9dc7qhv43jpw6naz6w83jkz7andypikb8";
+  };
+
+  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
+  ] ++ stdenv.lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
+
+  prePatch = ''
+    sed -i "/pyqt_sip_dir/ s:=.*:= '${python2Packages.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 = [ makeWrapper pkgconfig qmake removeReferencesTo ];
+
+  buildInputs = [
+    poppler_utils libpng imagemagick libjpeg
+    fontconfig podofo qtbase chmlib icu sqlite libusb1 libmtp xdg_utils wrapGAppsHook
+  ] ++ (with python2Packages; [
+    apsw cssselect cssutils dateutil dnspython html5-parser lxml mechanize netifaces pillow
+    python pyqt5 sip
+    regex msgpack
+    # 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=${python2Packages.sip}/bin/sip
+    ${python2Packages.python.interpreter} setup.py install --prefix=$out
+
+    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
+
+    for a in $out/bin/*; do
+      wrapProgram $a --prefix PYTHONPATH : $PYTHONPATH \
+                     --prefix PATH : ${poppler_utils.out}/bin
+    done
+
+    # Replace @out@ by the output path.
+    mkdir -p $out/share/applications/
+    cp {$calibreDesktopItem,$ebookEditDesktopItem,$ebookViewerDesktopItem}/share/applications/* $out/share/applications/
+    for entry in $out/share/applications/*.desktop; do
+      substituteAllInPlace $entry
+    done
+
+    mkdir -p $out/share
+    cp -a man-pages $out/share/man
+
+    runHook postInstall
+  '';
+
+  # 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/podofo.so
+  '';
+
+  disallowedReferences = [ podofo.dev ];
+
+  calibreDesktopItem = makeDesktopItem {
+    name = "calibre";
+    desktopName = "calibre";
+    exec = "@out@/bin/calibre --detach %F";
+    genericName = "E-book library management";
+    icon = "@out@/share/calibre/images/library.png";
+    comment = "Manage, convert, edit, and read e-books";
+    mimeType = stdenv.lib.concatStringsSep ";" [
+      "application/x-mobipocket-subscription"
+      "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
+      "text/html"
+      "application/x-cbc"
+      "application/ereader"
+      "application/oebps-package+xml"
+      "image/vnd.djvu"
+      "application/x-sony-bbeb"
+      "application/vnd.ms-word.document.macroenabled.12"
+      "text/rtf"
+      "text/x-markdown"
+      "application/pdf"
+      "application/x-cbz"
+      "application/x-mobipocket-ebook"
+      "application/x-cbr"
+      "application/x-mobi8-ebook"
+      "text/fb2+xml"
+      "application/vnd.oasis.opendocument.text"
+      "application/epub+zip"
+      "text/plain"
+      "application/xhtml+xml"
+    ];
+    categories = "Office";
+    extraEntries = ''
+      Actions=Edit;Viewer;
+
+      [Desktop Action Edit]
+      Name=Edit E-book
+      Icon=@out@/share/calibre/images/tweak.png
+      Exec=@out@/bin/ebook-edit --detach %F
+
+      [Desktop Action Viewer]
+      Name=E-book Viewer
+      Icon=@out@/share/calibre/images/viewer.png
+      Exec=@out@/bin/ebook-viewer --detach %F
+    '';
+  };
+
+  ebookEditDesktopItem = makeDesktopItem {
+    name = "calibre-edit-ebook";
+    desktopName = "Edit E-book";
+    genericName = "E-book Editor";
+    comment = "Edit e-books";
+    icon = "@out@/share/calibre/images/tweak.png";
+    exec = "@out@/bin/ebook-edit --detach %F";
+    categories = "Office;Publishing";
+    mimeType = "application/epub+zip";
+    extraEntries = "NoDisplay=true";
+  };
+
+  ebookViewerDesktopItem = makeDesktopItem {
+    name = "calibre-ebook-viewer";
+    desktopName = "E-book Viewer";
+    genericName = "E-book Viewer";
+    comment = "Read e-books in all the major formats";
+    icon = "@out@/share/calibre/images/viewer.png";
+    exec = "@out@/bin/ebook-viewer --detach %F";
+    categories = "Office;Viewer";
+    mimeType = "application/epub+zip";
+    extraEntries = "NoDisplay=true";
+  };
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch b/nixpkgs/pkgs/applications/misc/calibre/disable_plugins.patch
new file mode 100644
index 000000000000..9ef1dd04251d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch b/nixpkgs/pkgs/applications/misc/calibre/dont_build_unrar_plugin.patch
new file mode 100644
index 000000000000..5164b80a0bee
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch b/nixpkgs/pkgs/applications/misc/calibre/no_updates_dialog.patch
new file mode 100644
index 000000000000..faaaf2c19949
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/cataract/build.nix b/nixpkgs/pkgs/applications/misc/cataract/build.nix
new file mode 100644
index 000000000000..f2aac4326cbf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cataract/build.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchgit
+, autoreconfHook
+, glib
+, pkgconfig
+, libxml2
+, exiv2
+, imagemagick
+, version
+, sha256
+, rev }:
+
+stdenv.mkDerivation rec {
+  inherit version;
+  name = "cataract-${version}";
+
+  src = fetchgit {
+    url = "git://git.bzatek.net/cataract";
+    inherit sha256 rev;
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ glib libxml2 exiv2 imagemagick ];
+
+  installPhase = ''
+    mkdir $out/{bin,share} -p
+    cp src/cgg{,-dirgen} $out/bin/
+  '';
+
+  meta = {
+    homepage = http://cgg.bzatek.net/;
+    description = "a simple static web photo gallery, designed to be clean and easily usable";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ ];
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
+  };
+}
+
+
diff --git a/nixpkgs/pkgs/applications/misc/cataract/default.nix b/nixpkgs/pkgs/applications/misc/cataract/default.nix
new file mode 100644
index 000000000000..3a9f20289227
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/cataract/unstable.nix b/nixpkgs/pkgs/applications/misc/cataract/unstable.nix
new file mode 100644
index 000000000000..397aed355a95
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/catclock/default.nix b/nixpkgs/pkgs/applications/misc/catclock/default.nix
new file mode 100644
index 000000000000..75f5ab406fe0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/catclock/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, xlibsWrapper, motif }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/misc/cbatticon/default.nix b/nixpkgs/pkgs/applications/misc/cbatticon/default.nix
new file mode 100644
index 000000000000..f4ba30080f71
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cbatticon/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pkgconfig, gettext, glib, gtk3, libnotify }:
+
+stdenv.mkDerivation rec {
+
+  name = "cbatticon-${version}";
+  version = "1.6.8";
+
+  src = fetchFromGitHub {
+    owner = "valr";
+    repo = "cbatticon";
+    rev = version;
+    sha256 = "16g26vin1693dbdr9qsnw36fdchx394lp79gvp7gcbw0w1ny9av6";
+  };
+
+  patchPhase = ''
+    sed -i -e 's/ -Wno-format//g' Makefile
+  '';
+
+  makeFlags = "PREFIX=$(out)";
+
+  nativeBuildInputs = [ pkgconfig gettext ];
+
+  buildInputs =  [ glib gtk3 libnotify ];
+
+  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;
+    maintainers = [ maintainers.domenkozar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cdrtools/default.nix b/nixpkgs/pkgs/applications/misc/cdrtools/default.nix
new file mode 100644
index 000000000000..a46565eb76ba
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cdrtools/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, acl, libcap }:
+
+stdenv.mkDerivation rec {
+  name = "cdrtools-${version}";
+  version = "3.02a06";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/cdrtools/${name}.tar.bz2";
+    sha256 = "1cayhfbhj5g2vgmkmq5scr23k0ka5fsn0dhn0n9yllj386csnygd";
+  };
+
+  patches = [ ./fix-paths.patch ];
+
+  buildInputs = [ acl libcap ];
+
+  postPatch = ''
+    sed "/\.mk3/d" -i libschily/Targets.man
+    substituteInPlace man/Makefile --replace "man4" ""
+  '';
+
+  configurePhase = "true";
+
+  GMAKE_NOWARN = true;
+
+  makeFlags = [ "INS_BASE=/" "INS_RBASE=/" "DESTDIR=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://sourceforge.net/projects/cdrtools/;
+    description = "Highly portable CD/DVD/BluRay command line recording software";
+    license = with licenses; [ gpl2 lgpl2 cddl ];
+    platforms = platforms.linux;
+    # Licensing issues: This package contains code licensed under CDDL, GPL2
+    # and LGPL2. There is a debate regarding the legality of distributing this
+    # package in binary form.
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cdrtools/fix-paths.patch b/nixpkgs/pkgs/applications/misc/cdrtools/fix-paths.patch
new file mode 100644
index 000000000000..f4a541210880
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cdrtools/fix-paths.patch
@@ -0,0 +1,32 @@
+diff -ru3 cdrtools-3.01-old/DEFAULTS/Defaults.linux cdrtools-3.01/DEFAULTS/Defaults.linux
+--- cdrtools-3.01-old/DEFAULTS/Defaults.linux	2015-12-11 17:37:21.505848835 +0300
++++ cdrtools-3.01/DEFAULTS/Defaults.linux	2015-12-11 17:37:32.155828925 +0300
+@@ -57,7 +57,8 @@
+ # Installation config stuff
+ #
+ ###########################################################################
+-INS_BASE=	/opt/schily
++#INS_BASE=	/opt/schily
++INS_BASE=	$(out)
+ INS_KBASE=	/
+ INS_RBASE=	/
+ #
+Only in cdrtools-3.01/DEFAULTS: Defaults.linux.orig
+diff -ru3 cdrtools-3.01-old/RULES/rules.prg cdrtools-3.01/RULES/rules.prg
+--- cdrtools-3.01-old/RULES/rules.prg	2015-12-11 17:37:21.500848844 +0300
++++ cdrtools-3.01/RULES/rules.prg	2015-12-11 17:38:29.890720987 +0300
+@@ -43,10 +43,10 @@
+ #
+ #SHELL=		/bin/sh
+ 
+-LN=		/bin/ln
+-SYMLINK=	/bin/ln -s
+-RM=		/bin/rm
+-MV=		/bin/mv
++LN=		ln
++SYMLINK=	ln -s
++RM=		rm
++MV=		mv
+ LORDER=		lorder
+ TSORT=		tsort
+ CTAGS=		vctags
diff --git a/nixpkgs/pkgs/applications/misc/cgminer/default.nix b/nixpkgs/pkgs/applications/misc/cgminer/default.nix
new file mode 100644
index 000000000000..ee3e2a955d32
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cgminer/default.nix
@@ -0,0 +1,49 @@
+{ fetchgit, stdenv, pkgconfig, libtool, autoconf, automake
+, curl, ncurses, amdappsdk, amdadlsdk, xorg, jansson }:
+
+stdenv.mkDerivation rec {
+  version = "3.7.2";
+  name = "cgminer-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/ckolivas/cgminer.git";
+    rev = "refs/tags/v3.7.2";
+    sha256  = "1xfzx91dpwjj1vmhas3v9ybs0p2i74lrhinijmpav15acfggm9fq";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    autoconf automake libtool curl ncurses amdappsdk amdadlsdk
+    xorg.libX11 xorg.libXext xorg.libXinerama jansson
+  ];
+  configureScript = "./autogen.sh";
+  configureFlags = [ "--enable-scrypt" "--enable-opencl" ];
+  NIX_LDFLAGS = "-lgcc_s -lX11 -lXext -lXinerama";
+
+  preConfigure = ''
+    ln -s ${amdadlsdk}/include/* ADL_SDK/
+  '';
+
+  postBuild = ''
+    gcc api-example.c -o cgminer-api
+  '';
+
+  postInstall = ''
+    cp cgminer-api $out/bin/
+    chmod 444 $out/bin/*.cl
+  '';
+
+  meta = with stdenv.lib; {
+    description = "CPU/GPU miner in c for bitcoin";
+    longDescription= ''
+      This is a multi-threaded multi-pool GPU, FPGA and ASIC miner with ATI GPU
+      monitoring, (over)clocking and fanspeed support for bitcoin and derivative
+      coins. Do not use on multiple block chains at the same time!
+    '';
+    homepage = https://github.com/ckolivas/cgminer;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.offline ];
+    platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cheat/default.nix b/nixpkgs/pkgs/applications/misc/cheat/default.nix
new file mode 100644
index 000000000000..1a162aca0d76
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cheat/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+with python3Packages;
+buildPythonApplication rec {
+  name = "${pname}-${version}";
+  pname = "cheat";
+  version = "2.3.1";
+
+  propagatedBuildInputs = [ docopt pygments ];
+
+  src = fetchFromGitHub {
+    owner = "chrisallenlane";
+    repo = "cheat";
+    rev = version;
+    sha256 = "1dcpjvbv648r8325qjf30m8b4cyrrjbzc2kvh40zy2mbjsa755zr";
+  };
+  # no tests available
+  doCheck = false;
+
+  postInstall = ''
+    install -D man1/cheat.1.gz $out/share/man/man1/cheat.1.gz
+  '';
+
+  meta = with stdenv.lib; {
+    description = "cheat allows you to create and view interactive cheatsheets on the command-line";
+    maintainers = with maintainers; [ mic92 ];
+    license = with licenses; [gpl3 mit];
+    homepage = https://github.com/chrisallenlane/cheat;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cherrytree/default.nix b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
new file mode 100644
index 000000000000..cf93096c7873
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, pythonPackages, gettext }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+  name = "cherrytree-${version}";
+  version = "0.38.6";
+
+  src = fetchurl {
+    url = "https://www.giuspen.com/software/${name}.tar.xz";
+    sha256 = "0b83ygv0y4lrclsyagmllkwiia62xkwij14i6z53avba191jvhma";
+  };
+
+  buildInputs = with pythonPackages;
+  [ python gettext wrapPython pygtk dbus-python pygtksourceview ];
+
+  pythonPath = with pythonPackages;
+  [ pygtk dbus-python pygtksourceview ];
+
+  patches = [ ./subprocess.patch ];
+
+  installPhase = ''
+    python setup.py install --prefix="$out"
+
+    for file in "$out"/bin/*; do
+        wrapProgram "$file" \
+            --prefix PYTHONPATH : "$(toPythonPath $out):$PYTHONPATH"
+    done
+  '';
+
+  doCheck = false;
+
+  meta = {
+    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;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cherrytree/subprocess.patch b/nixpkgs/pkgs/applications/misc/cherrytree/subprocess.patch
new file mode 100644
index 000000000000..1f80cde03b75
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/chirp/default.nix b/nixpkgs/pkgs/applications/misc/chirp/default.nix
new file mode 100644
index 000000000000..db67514cd077
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/chirp/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, libxml2Python, libxslt, makeWrapper
+, pyserial, pygtk }:
+
+stdenv.mkDerivation rec {
+  name = "chirp-daily-${version}";
+  version = "20181018";
+
+  src = fetchurl {
+    url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${name}.tar.gz";
+    sha256 = "0jd7xi6q09b3djn1k7pj1sbqvw24kn7dcp9r6abvxily4pc1xhdr";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [
+    pyserial pygtk libxml2Python libxslt pyserial
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/chirp
+    cp -r . $out/share/chirp/
+    ln -s $out/share/chirp/chirpw $out/bin/chirpw
+
+    for file in "$out"/bin/*; do
+      wrapProgram "$file" \
+        --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out")
+    done
+  '';
+
+  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;
+    maintainers = [ maintainers.the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix b/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
new file mode 100644
index 000000000000..7aecc8f823ee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, fftw, ncurses5, libpulseaudio, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  version = "1.7";
+  name = "cli-visualizer-${version}";
+
+  src = fetchFromGitHub {
+    owner = "dpayne";
+    repo = "cli-visualizer";
+    rev = version;
+    sha256 = "06z6vj87xjmacppcxvgm47wby6mv1hnbqav8lpdk9v5s1hmmp1cr";
+  };
+
+  postPatch = ''
+    sed '1i#include <cmath>' -i src/Transformer/SpectrumCircleTransformer.cpp
+  '';
+
+  buildInputs = [ fftw ncurses5 libpulseaudio makeWrapper ];
+
+  buildFlags = [ "ENABLE_PULSE=1" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp build/vis $out/bin/vis
+    # 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 = with stdenv.lib.maintainers; [ ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/clipit/default.nix b/nixpkgs/pkgs/applications/misc/clipit/default.nix
new file mode 100644
index 000000000000..4477cbbcc06a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/clipit/default.nix
@@ -0,0 +1,21 @@
+{ fetchurl, stdenv, intltool, pkgconfig, gtk2, xdotool, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "clipit-${version}";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "https://github.com/downloads/shantzu/ClipIt/${name}.tar.gz";
+    sha256 = "0jrwn8qfgb15rwspdp1p8hb1nc0ngmpvgr87d4k3lhlvqg2cfqva";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool gtk2 xdotool hicolor-icon-theme ];
+
+  meta = with stdenv.lib; {
+    description = "Lightweight GTK+ Clipboard Manager";
+    homepage    = "http://clipit.rspwn.com";
+    license     = licenses.gpl3;
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/clipmenu/default.nix b/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
new file mode 100644
index 000000000000..6dd68123b132
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
@@ -0,0 +1,33 @@
+{ clipnotify, makeWrapper, xsel, dmenu2, utillinux, gawk, stdenv, fetchFromGitHub, lib }:
+let
+  runtimePath = lib.makeBinPath [ clipnotify xsel dmenu2 utillinux gawk ];
+in
+stdenv.mkDerivation rec {
+  name = "clipmenu-${version}";
+  version = "5.5.0";
+
+  src = fetchFromGitHub {
+    owner  = "cdown";
+    repo   = "clipmenu";
+    rev    = version;
+    sha256 = "15if7bwqviyynbrcwrn04r418cfnxf2mkmq112696np24bggvljg";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp clipdel clipmenu clipmenud $out/bin
+
+    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/nixpkgs/pkgs/applications/misc/cmatrix/default.nix b/nixpkgs/pkgs/applications/misc/cmatrix/default.nix
new file mode 100644
index 000000000000..28f14cc1435f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cmatrix/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, ncurses }:
+
+let
+  version = "1.2a";
+in with stdenv.lib;
+stdenv.mkDerivation rec {
+
+  name = "cmatrix-${version}";
+
+  src = fetchurl{
+    url = "http://www.asty.org/cmatrix/dist/${name}.tar.gz";
+    sha256 = "0k06fw2n8nzp1pcdynhajp5prba03gfgsbj91bknyjr5xb5fd9hz";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ncurses ];
+
+  meta = {
+    description = "Simulates the falling characters theme from The Matrix movie";
+    longDescription = ''
+      CMatrix simulates the display from "The Matrix" and is based
+      on the screensaver from the movie's website.  
+    '';
+    homepage = http://www.asty.org/cmatrix/;
+    platforms = ncurses.meta.platforms;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cointop/default.nix b/nixpkgs/pkgs/applications/misc/cointop/default.nix
new file mode 100644
index 000000000000..23d76afff0ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cointop/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  name    = "cointop-unstable-${version}";
+  version = "2018-05-03";
+  rev     = "08acd96082682347d458cd4f861e2debd3255745";
+
+  goPackagePath = "github.com/miguelmota/cointop";
+
+  src = fetchgit {
+    inherit rev;
+    url    = "https://github.com/miguelmota/cointop";
+    sha256 = "14savz48wzrfpm12fgnnndpl3mpzx7wsch4jrnm3rmrfdabdx7mi";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = {
+    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;
+    platforms = stdenv.lib.platforms.linux; # cannot test others
+    maintainers = [ ];
+    license = stdenv.lib.licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cointop/deps.nix b/nixpkgs/pkgs/applications/misc/cointop/deps.nix
new file mode 100644
index 000000000000..3ba1d12a8048
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cointop/deps.nix
@@ -0,0 +1,3 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+]
diff --git a/nixpkgs/pkgs/applications/misc/colort/default.nix b/nixpkgs/pkgs/applications/misc/colort/default.nix
new file mode 100644
index 000000000000..554c7d8c78bb
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/confclerk/default.nix b/nixpkgs/pkgs/applications/misc/confclerk/default.nix
new file mode 100644
index 000000000000..3851730c4596
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/confclerk/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, qt4, qmake4Hook }:
+
+let version = "0.6.4"; in
+stdenv.mkDerivation {
+  name = "confclerk-${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/nixpkgs/pkgs/applications/misc/cool-retro-term/default.nix b/nixpkgs/pkgs/applications/misc/cool-retro-term/default.nix
new file mode 100644
index 000000000000..1c2045f4141e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cool-retro-term/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, qtbase, qtquick1, qmltermwidget
+, qtquickcontrols, qtgraphicaleffects, qmake }:
+
+stdenv.mkDerivation rec {
+  version = "1.0.1";
+  name = "cool-retro-term-${version}";
+
+  src = fetchFromGitHub {
+    owner = "Swordfish90";
+    repo = "cool-retro-term";
+    rev = version;
+    sha256 = "1ah54crqv13xsg9cvlwmgyhz90xjjy3vy8pbn9i0vc0ljmpgkqd5";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/copyq/default.nix b/nixpkgs/pkgs/applications/misc/copyq/default.nix
new file mode 100644
index 000000000000..fa5a9b466673
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/copyq/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake, qtbase, qtscript, qtwebkit, libXfixes, libXtst
+, qtx11extras, git
+, webkitSupport ? true
+}:
+
+stdenv.mkDerivation rec {
+  name = "CopyQ-${version}";
+  version = "3.7.1";
+
+  src  = fetchFromGitHub {
+    owner = "hluk";
+    repo = "CopyQ";
+    rev = "v${version}";
+    sha256 = "0b3lrhrffvq46n9xc0lzbxhhn1lzmq2lrijjdwizc52458d6h90y";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    git qtbase qtscript libXfixes libXtst qtx11extras
+  ] ++ stdenv.lib.optional webkitSupport qtwebkit;
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix b/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix
new file mode 100644
index 000000000000..a6afee13e47b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, glibcLocales, pandoc, python3 }:
+
+let
+  pythonPackages = python3.pkgs;
+
+in pythonPackages.buildPythonApplication rec {
+  pname = "coursera-dl";
+  version = "0.11.4";
+
+  src = fetchFromGitHub {
+    owner = "coursera-dl";
+    repo = "coursera-dl";
+    rev = version;
+    sha256 = "0dn7a6s98dwba62r0dyabq8pryzga4b2wpx88i9bmp7ja1b1f92f";
+  };
+
+  nativeBuildInputs = with pythonPackages; [ pandoc ];
+
+  buildInputs = with pythonPackages; [ glibcLocales ];
+
+  propagatedBuildInputs = with pythonPackages; [ attrs beautifulsoup4 ConfigArgParse keyring pyasn1 requests six urllib3 ];
+
+  checkInputs = with pythonPackages; [ pytest mock ];
+
+  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/nixpkgs/pkgs/applications/misc/cpp-ethereum/default.nix b/nixpkgs/pkgs/applications/misc/cpp-ethereum/default.nix
new file mode 100644
index 000000000000..4d9975192461
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cpp-ethereum/default.nix
@@ -0,0 +1,85 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, jsoncpp
+, libjson-rpc-cpp
+, curl
+, boost
+, leveldb
+, cryptopp
+, libcpuid
+, opencl-headers
+, ocl-icd
+, miniupnpc
+, libmicrohttpd
+, gmp
+, libGLU_combined
+, extraCmakeFlags ? []
+}:
+stdenv.mkDerivation rec {
+  name = "cpp-ethereum-${version}";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "ethereum";
+    repo = "cpp-ethereum";
+    rev = "62ab9522e58df9f28d2168ea27999a214b16ea96";
+    sha256 = "1fxgpqhmjhpv0zzs1m3yf9h8mh25dqpa7pmcfy7f9qiqpfdr4zq9";
+  };
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" extraCmakeFlags ];
+
+  configurePhase = ''
+    export BOOST_INCLUDEDIR=${boost.dev}/include
+    export BOOST_LIBRARYDIR=${boost.out}/lib
+
+    mkdir -p Build/Install
+    pushd Build
+
+    cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/Install $cmakeFlags
+  '';
+
+  enableParallelBuilding = true;
+
+  runPath = with stdenv.lib; makeLibraryPath ([ stdenv.cc.cc ] ++ buildInputs);
+
+  installPhase = ''
+    make install
+
+    mkdir -p $out
+
+    for f in Install/lib/*.so* $(find Install/bin -executable -type f); do
+      patchelf --set-rpath $runPath:$out/lib $f
+    done
+
+    cp -r Install/* $out
+  '';
+
+  buildInputs = [
+    cmake
+    jsoncpp
+    libjson-rpc-cpp
+    curl
+    boost
+    leveldb
+    cryptopp
+    libcpuid
+    opencl-headers
+    ocl-icd
+    miniupnpc
+    libmicrohttpd
+    gmp
+    libGLU_combined
+  ];
+
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
+    description = "Ethereum C++ client";
+    homepage = https://github.com/ethereum/cpp-ethereum;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ artuuge ];
+    platforms = platforms.linux;
+    broken = true; # 2018-04-10
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/ctodo/default.nix b/nixpkgs/pkgs/applications/misc/ctodo/default.nix
new file mode 100644
index 000000000000..f8927319a011
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ctodo/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, cmake, fetchurl, ncurses, readline }:
+
+stdenv.mkDerivation rec {
+  name = "ctodo-${version}";
+  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 = with stdenv.lib.maintainers; [ ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cura/default.nix b/nixpkgs/pkgs/applications/misc/cura/default.nix
new file mode 100644
index 000000000000..f7907746d107
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cura/default.nix
@@ -0,0 +1,53 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, qtquickcontrols2, curaengine }:
+
+mkDerivation rec {
+  name = "cura-${version}";
+  version = "3.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Ultimaker";
+    repo = "Cura";
+    rev = version;
+    sha256 = "0wzkbqdd1670smw1vnq634rkpcjwnhwcvimhvjq904gy2fylgr90";
+  };
+
+  materials = fetchFromGitHub {
+    owner = "Ultimaker";
+    repo = "fdm_materials";
+    rev = version;
+    sha256 = "0g2dkph0ll7d9109n17vmfwb4fpc8lhyb1z1q68j8vblyvg08d12";
+  };
+
+  buildInputs = [ qtbase qtquickcontrols2 ];
+  propagatedBuildInputs = with python3.pkgs; [
+    libsavitar numpy-stl pyserial requests uranium zeroconf
+  ];
+  nativeBuildInputs = [ cmake python3.pkgs.wrapPython ];
+
+  cmakeFlags = [
+    "-DURANIUM_DIR=${python3.pkgs.uranium.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
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/cura/resources/materials
+    cp ${materials}/*.fdm_material $out/share/cura/resources/materials/
+  '';
+
+  postFixup = ''
+    wrapPythonPrograms
+  '';
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cura/lulzbot.nix b/nixpkgs/pkgs/applications/misc/cura/lulzbot.nix
new file mode 100644
index 000000000000..f3f1972f6e6e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/cura/lulzbot.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, dpkg, bash, python27Packages }:
+
+let
+  py = python27Packages;
+in
+stdenv.mkDerivation rec {
+  name = "cura-lulzbot-${version}";
+  version = "15.02.1-1.03-5064";
+
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchurl {
+        url = "https://download.alephobjects.com/ao/aodeb/dists/jessie/main/binary-amd64/cura_${version}_amd64.deb";
+        sha256 = "1gsfidg3gim5pjbl82vkh0cw4ya253m4p7nirm8nr6yjrsirkzxg";
+      }
+    else if stdenv.hostPlatform.system == "i686-linux" then
+      fetchurl {
+        url = "http://download.alephobjects.com/ao/aodeb/dists/jessie/main/binary-i386/cura_${version}_i386.deb";
+        sha256 = "0xd3df6bxq4rijgvsqvps454jkc1nzhxbdzzj6j2w317ppsbhyc1";
+      }
+    else throw "${name} is not supported on ${stdenv.hostPlatform.system}";
+
+  python_deps = with py; [ pyopengl pyserial numpy wxPython30 power setuptools ];
+  pythonPath = python_deps;
+  propagatedBuildInputs = python_deps;
+  buildInputs = [ dpkg bash py.wrapPython ];
+
+  phases = [ "unpackPhase" "installPhase" ];
+  unpackPhase = "dpkg-deb -x ${src} ./";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r usr/share $out/share
+    find $out/share -type f -exec sed -i 's|/usr/share/cura|$out/share/cura|g' "{}" \;
+
+    cat <<EOT > $out/bin/cura
+    #!${bash}/bin/bash
+    PYTHONPATH=$PYTHONPATH:$out/share/cura ${py.python}/bin/python $out/share/cura/cura.py "\$@"
+    EOT
+
+    chmod 555 $out/bin/cura
+  '';
+
+  meta = with stdenv.lib; {
+    description = "3D printing host software for the Lulzbot";
+
+     longDescription = ''
+       Cura LulzBot Edition is a fork of the 3D printing/slicing
+       software from Ultimaker, with changes to support 3D printers
+       from Aleph Objects.
+     '';
+
+    homepage = https://www.lulzbot.com/cura/;
+    license = licenses.agpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ pjones ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch b/nixpkgs/pkgs/applications/misc/cura/numpy-cast.patch
new file mode 100644
index 000000000000..efb14182b3e6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/cura/stable.nix b/nixpkgs/pkgs/applications/misc/cura/stable.nix
new file mode 100644
index 000000000000..a53b001b0e98
--- /dev/null
+++ b/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 {
+  name = "cura-${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;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix b/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix
new file mode 100644
index 000000000000..439b0fc25684
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/curabydagoma/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, 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 {
+  name = "curabydagoma-${version}";
+  # 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
+    #!/bin/sh
+    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/nixpkgs/pkgs/applications/misc/curaengine/default.nix b/nixpkgs/pkgs/applications/misc/curaengine/default.nix
new file mode 100644
index 000000000000..22215a7e2c68
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/curaengine/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, libarcus, stb }:
+
+stdenv.mkDerivation rec {
+  name = "curaengine-${version}";
+  version = "3.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Ultimaker";
+    repo = "CuraEngine";
+    rev = version;
+    sha256 = "1iwmblvs3qw57698i8bbazyxha18bj9irnkcscdb0596g8q93fcm";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libarcus stb ];
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/curaengine/stable.nix b/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
new file mode 100644
index 000000000000..ce743a008798
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+let
+  version = "15.04.6";
+in
+stdenv.mkDerivation {
+  name = "curaengine-${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;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
new file mode 100644
index 000000000000..e90fccefb065
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper
+, fontconfig, freetype, glib, gtk2
+, jdk, libX11, libXrender, libXtst, zlib }:
+
+# The build process is almost like eclipse's.
+# See `pkgs/applications/editors/eclipse/*.nix`
+
+stdenv.mkDerivation rec {
+  name = "dbeaver-ce-${version}";
+  version = "5.3.0";
+
+  desktopItem = makeDesktopItem {
+    name = "dbeaver";
+    exec = "dbeaver";
+    icon = "dbeaver";
+    desktopName = "dbeaver";
+    comment = "SQL Integrated Development Environment";
+    genericName = "SQL Integrated Development Environment";
+    categories = "Application;Development;";
+  };
+
+  buildInputs = [
+    fontconfig freetype glib gtk2
+    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 = "1gn52bffjn2fw9yhi1rv4iy9dfdn5qxc51gv6qri5g0c8pblvh7m";
+  };
+
+  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 gtk2 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.samueldr ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/dbvisualizer/default.nix b/nixpkgs/pkgs/applications/misc/dbvisualizer/default.nix
new file mode 100644
index 000000000000..fbeb965df380
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dbvisualizer/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation {
+  name = "dbvisualizer-9.5.7";
+
+  src = fetchurl {
+    url = https://www.dbvis.com/product_download/dbvis-9.5.7/media/dbvis_unix_9_5_7.tar.gz;
+    sha256 = "1xv4fw7cji2ffvv7z8vjl5lap512pj60s2ynihirrqld7pmklnyr";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -a . $out
+    ln -sf $out/dbvis $out/bin
+    wrapProgram $out/bin/dbvis --set INSTALL4J_JAVA_HOME ${jre}
+  '';
+
+  meta = {
+    description = "The universal database tool";
+    homepage = https://www.dbvis.com/;
+    license = stdenv.lib.licenses.unfree;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/ddgr/default.nix b/nixpkgs/pkgs/applications/misc/ddgr/default.nix
new file mode 100644
index 000000000000..ca7e332cc286
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ddgr/default.nix
@@ -0,0 +1,46 @@
+{stdenv, fetchpatch, fetchFromGitHub, python3Packages}:
+
+stdenv.mkDerivation rec {
+  version = "1.1";
+  name = "ddgr-${version}";
+
+  src = fetchFromGitHub {
+    owner = "jarun";
+    repo = "ddgr";
+    rev = "v${version}";
+    sha256 = "1q66kwip5y0kfkfldm1x54plz85mjyvv1xpxjqrs30r2lr0najgf";
+  };
+
+  buildInputs = [
+    (python3Packages.python.withPackages (ps: with ps; [
+      requests
+    ]))
+  ];
+
+  patches = [
+    (fetchpatch {
+     sha256 = "1rxr3biq0mk4m0m7dsxr70dhz4fg5siil5x5fy9nymcmhvcm1cdc";
+     name = "Fix-zsh-completion.patch";
+     url = "https://github.com/jarun/ddgr/commit/10c1a911a3d5cbf3e96357c932b0211d3165c4b8.patch";
+    })
+  ];
+
+  makeFlags = "PREFIX=$(out)";
+
+  postInstall = ''
+    mkdir -p "$out/share/bash-completion/completions/"
+    cp "auto-completion/bash/ddgr-completion.bash" "$out/share/bash-completion/completions/"
+    mkdir -p "$out/share/fish/vendor_completions.d/"
+    cp "auto-completion/fish/ddgr.fish" "$out/share/fish/vendor_completions.d/"
+    mkdir -p "$out/share/zsh/site-functions/"
+    cp "auto-completion/zsh/_ddgr" "$out/share/zsh/site-functions/"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/jarun/ddgr;
+    description = "Search DuckDuckGo from the terminal";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ markus1189 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/deco/default.nix b/nixpkgs/pkgs/applications/misc/deco/default.nix
new file mode 100644
index 000000000000..e5dc011d5531
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/deco/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, scsh, feh, xorg }:
+
+stdenv.mkDerivation rec {
+  pname = "deco";
+  version = "0.0.1";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "ebzzry";
+    repo = pname;
+    rev = "037f473ae4bdce5d3e2f76891785f0f7479cca75";
+    sha256 = "1fv15nc9zqbn3c51vnm50yidj5ivpi61zg55cs46x3gi2x79x43q";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/devilspie2/default.nix b/nixpkgs/pkgs/applications/misc/devilspie2/default.nix
new file mode 100644
index 000000000000..4fb9ca5fa713
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/devilspie2/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, intltool, pkgconfig, glib, gtk, lua, libwnck3 }:
+
+stdenv.mkDerivation rec {
+  name = "devilspie2-${version}";
+  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 = http://www.gusnan.se/devilspie2/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.ebzzry ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix b/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix
new file mode 100644
index 000000000000..eeb7a8ccf526
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dfilemanager/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchgit, cmake, file, qtbase, qttools, solid }:
+
+let
+  version = "git-2016-01-10";
+in
+stdenv.mkDerivation {
+  name = "dfilemanager-${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/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix b/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix
new file mode 100644
index 000000000000..467c2b3c2d59
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/diff-pdf/default.nix
@@ -0,0 +1,32 @@
+{ 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 {
+  name = "diff-pdf-${version}";
+  version = "2017-12-30";
+
+  src = fetchFromGitHub {
+    owner = "vslavik";
+    repo = "diff-pdf";
+    rev = "c4d67226ec4c29b30a7399e75f80636ff8a6f9fc";
+    sha256 = "1c3ig7ckrg37p5vzvgjnsfdzdad328wwsx0r31lbs1d8pkjkgq3m";
+  };
+
+  nativeBuildInputs = [ autoconf automake pkgconfig ];
+  buildInputs = [ cairo poppler ] ++ wxInputs;
+
+  preConfigure = "./bootstrap";
+
+  meta = with stdenv.lib; {
+    homepage = http://vslavik.github.io/diff-pdf;
+    description = "Simple tool for visually comparing two PDF files";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/diffpdf/default.nix b/nixpkgs/pkgs/applications/misc/diffpdf/default.nix
new file mode 100644
index 000000000000..daea20835c8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/diffpdf/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl, fetchpatch, qmake, qttools, qtbase, poppler }:
+
+stdenv.mkDerivation rec {
+  version = "2.1.3";
+  name = "diffpdf-${version}";
+
+  src = fetchurl {
+    url = "http://www.qtrac.eu/${name}.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/${name} $out/share/licenses/${name} $out/share/icons $out/share/pixmaps $out/share/applications
+    install -Dpm644 CHANGES README help.html $out/share/doc/${name}/
+    install -Dpm644 gpl-2.0.txt $out/share/licenses/${name}/
+    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/nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch b/nixpkgs/pkgs/applications/misc/diffpdf/fix_path_poppler_qt5.patch
new file mode 100644
index 000000000000..9535ea2c6b0d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix b/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix
new file mode 100644
index 000000000000..3e6a6ab53f77
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/digitalbitbox/default.nix
@@ -0,0 +1,145 @@
+{ stdenv
+, autoreconfHook
+, curl
+, fetchFromGitHub
+, git
+, libcap
+, libevent
+, libtool
+, libqrencode
+, udev
+, libusb
+, 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 stdenv.mkDerivation rec {
+  name = "digitalbitbox-${version}";
+  version = "2.2.2";
+
+  src = fetchFromGitHub {
+    owner = "digitalbitbox";
+    repo = "dbb-app";
+    rev = "v${version}";
+    sha256 = "1r77fvqrlaryzij5dfbnigzhvg1d12g96qb2gp8dy3xph1j0k3s1";
+  };
+
+  nativeBuildInputs = with stdenv.lib; [
+    autoreconfHook
+    curl
+    git
+    makeWrapper
+    pkgconfig
+    qttools
+  ];
+
+  buildInputs = [
+    # TODO: remove libcap when pruneLibtoolFiles applies to pulseaudio.
+    libcap
+    libevent
+    libtool
+    udev
+    libusb
+    libqrencode
+
+    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"
+  ];
+
+  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
+
+    wrapProgram "$out/bin/dbb-cli" --prefix LD_LIBRARY_PATH : "$out/lib"
+    wrapProgram "$out/bin/dbb-app" --prefix LD_LIBRARY_PATH : "$out/lib"
+
+    # 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 stdenv.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/nixpkgs/pkgs/applications/misc/ding/default.nix b/nixpkgs/pkgs/applications/misc/ding/default.nix
new file mode 100644
index 000000000000..e76f95b6a50d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/ding/dict.patch b/nixpkgs/pkgs/applications/misc/ding/dict.patch
new file mode 100644
index 000000000000..70ecea10550e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/direwolf/default.nix b/nixpkgs/pkgs/applications/misc/direwolf/default.nix
new file mode 100644
index 000000000000..f1e33ea53571
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/direwolf/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub
+, espeak, alsaLib, perl
+, python }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "direwolf-${version}";
+  version = "1.4";
+
+  src = fetchFromGitHub {
+    owner = "wb2osz";
+    repo = "direwolf";
+    rev = version;
+    sha256 = "033sffjs2dz48077hc58jr4lxxs8md1fyfh4lig6ib7pyigiv1y0";
+  };
+
+  buildInputs = [
+    espeak perl python
+  ] ++ (optional stdenv.isLinux alsaLib);
+
+  postPatch = ''
+    for i in Makefile.*; do
+      substituteInPlace "$i" \
+        --replace /usr/share $out/share
+    done
+
+    substituteInPlace dwespeak.sh \
+      --replace espeak ${espeak}/bin/espeak
+  '';
+
+  preInstall = ''
+    mkdir -p $out/bin
+  '';
+  installFlags = [ "INSTALLDIR=$(out)" ];
+
+  meta = {
+    description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway";
+    homepage = https://github.com/wb2osz/direwolf/;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/djvulibre/default.nix b/nixpkgs/pkgs/applications/misc/djvulibre/default.nix
new file mode 100644
index 000000000000..0b685e04a6fc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/djvulibre/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libjpeg, libtiff, librsvg, libiconv }:
+
+stdenv.mkDerivation rec {
+  name = "djvulibre-3.5.27";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/djvu/${name}.tar.gz";
+    sha256 = "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6";
+  };
+
+  outputs = [ "bin" "dev" "out" ];
+
+  buildInputs = [ libjpeg libtiff librsvg libiconv ];
+
+  meta = with stdenv.lib; {
+    description = "A library and viewer for the DJVU file format for scanned images";
+    homepage = http://djvu.sourceforge.net;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix b/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
new file mode 100644
index 000000000000..924b95d8b6a9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, requests, dmenu }:
+
+buildPythonApplication rec {
+  name = "dmensamenu-${version}";
+  version = "1.1.1";
+
+  propagatedBuildInputs = [
+    requests
+    dmenu
+  ];
+
+  src = fetchFromGitHub {
+    owner = "dotlambda";
+    repo = "dmensamenu";
+    rev = version;
+    sha256 = "0gc23k2zbv9zfc0v27y4spiva8cizxavpzd5pch5qbawh2lak6a3";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/dmenu/default.nix b/nixpkgs/pkgs/applications/misc/dmenu/default.nix
new file mode 100644
index 000000000000..3ee2006ab0c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dmenu/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, libX11, libXinerama, libXft, zlib, patches ? null }:
+
+stdenv.mkDerivation rec {
+  name = "dmenu-4.8";
+
+  src = fetchurl {
+    url = "https://dl.suckless.org/tools/${name}.tar.gz";
+    sha256 = "0qfvfrj10xlwd9hkvb57wshryan65bl6423h0qhiw1h76rf5lqgy";
+  };
+
+  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
+  '';
+
+  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 ];
+      platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/dmenu2/default.nix b/nixpkgs/pkgs/applications/misc/dmenu2/default.nix
new file mode 100644
index 000000000000..3d5676033593
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dmenu2/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchhg, libX11, libXinerama, libXft, zlib}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "dmenu2-0.3pre-2014-07-08";
+
+  src = fetchhg {
+    url = "https://bitbucket.org/melek/dmenu2";
+    rev = "36cb94a16edf928bdaaa636123392517ed469be0";
+    sha256 = "1b17z5ypg6ij7zz3ncp3irc87raccna10y4w490c872a99lp23lv";
+  };
+
+  buildInputs = [ libX11 libXinerama zlib libXft ];
+
+  postPatch = ''
+    sed -ri -e 's!\<(dmenu|stest)\>!'"$out/bin"'/&!g' dmenu_run
+  '';
+
+  preConfigure = [ ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'' ];
+
+  meta = {
+      description = "A patched fork of the original dmenu - an efficient dynamic menu for X";
+      homepage = https://bitbucket.org/melek/dmenu2;
+      license = licenses.mit;
+      maintainers = [ maintainers.cstrahan ];
+      platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/dmrconfig/default.nix b/nixpkgs/pkgs/applications/misc/dmrconfig/default.nix
new file mode 100644
index 000000000000..7125e37f7f95
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dmrconfig/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub
+, libusb1, systemd }:
+
+stdenv.mkDerivation rec {
+  name = "dmrconfig-${version}";
+  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/nixpkgs/pkgs/applications/misc/dockbarx/default.nix b/nixpkgs/pkgs/applications/misc/dockbarx/default.nix
new file mode 100644
index 000000000000..3888c4ce0a0d
--- /dev/null
+++ b/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 = "DockBarX is a 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/nixpkgs/pkgs/applications/misc/doing/Gemfile b/nixpkgs/pkgs/applications/misc/doing/Gemfile
new file mode 100644
index 000000000000..2706a85e9d89
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/doing/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'doing', '1.0.10pre'
diff --git a/nixpkgs/pkgs/applications/misc/doing/Gemfile.lock b/nixpkgs/pkgs/applications/misc/doing/Gemfile.lock
new file mode 100644
index 000000000000..4d266827415f
--- /dev/null
+++ b/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
+   1.14.6
diff --git a/nixpkgs/pkgs/applications/misc/doing/default.nix b/nixpkgs/pkgs/applications/misc/doing/default.nix
new file mode 100644
index 000000000000..0286e38a0edf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/doing/default.nix
@@ -0,0 +1,25 @@
+{ lib, bundlerEnv, ruby
+}:
+
+# Bundix:
+# nix-shell -p bundix zlib
+bundlerEnv rec {
+  pname = "doing";
+  version = (import ./gemset.nix).doing.version;
+
+  inherit ruby;
+  gemdir = ./.;
+
+  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    = http://brettterpstra.com/projects/doing/;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ ktf ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/doing/gemset.nix b/nixpkgs/pkgs/applications/misc/doing/gemset.nix
new file mode 100644
index 000000000000..b30a124bb58b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/doomseeker/default.nix b/nixpkgs/pkgs/applications/misc/doomseeker/default.nix
new file mode 100644
index 000000000000..fd08ed9c3916
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/doomseeker/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, cmake, fetchFromBitbucket, pkgconfig, qtbase, qttools, qtmultimedia, zlib, bzip2, xxd }:
+
+stdenv.mkDerivation rec {
+  name = "doomseeker-${version}";
+  version = "2018-03-05";
+
+  src = fetchFromBitbucket {
+    owner = "Doomseeker";
+    repo = "doomseeker";
+    rev = "c2c7f37b1afb";
+    sha256 = "17fna3a604miqsvply3klnmypps4ifz8axgd3pj96z46ybxs8akw";
+  };
+
+  patches = [ ./fix_paths.patch ./qt_build_fix.patch ];
+
+  buildInputs = [ qtbase qtmultimedia zlib bzip2 ];
+
+  nativeBuildInputs = [ cmake qttools pkgconfig xxd ];
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_COMPILE = stdenv.lib.optional stdenv.cc.isClang "-Wno-error=format-security";
+
+  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/nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch b/nixpkgs/pkgs/applications/misc/doomseeker/fix_paths.patch
new file mode 100644
index 000000000000..08654c2384cb
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch b/nixpkgs/pkgs/applications/misc/doomseeker/qt_build_fix.patch
new file mode 100644
index 000000000000..e21b53b3cc53
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/dotfiles/default.nix b/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
new file mode 100644
index 000000000000..1d3c405b7038
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "dotfiles";
+  name = "${pname}-${version}";
+  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/nixpkgs/pkgs/applications/misc/dozenal/default.nix b/nixpkgs/pkgs/applications/misc/dozenal/default.nix
new file mode 100644
index 000000000000..b5ae9fb567ca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dozenal/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchFromGitHub, ncurses, hdate, lua5_2 }:
+
+stdenv.mkDerivation rec {
+  version = "12010904";
+  name = "dozenal-${version}";
+  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/nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch b/nixpkgs/pkgs/applications/misc/dozenal/lua-header.patch
new file mode 100644
index 000000000000..45b76e159a11
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/dump1090/default.nix b/nixpkgs/pkgs/applications/misc/dump1090/default.nix
new file mode 100644
index 000000000000..29f6c6085602
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dump1090/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libusb, rtl-sdr }:
+
+stdenv.mkDerivation rec {
+  name = "dump1090-${version}";
+  version = "2014-10-31";
+
+  src = fetchFromGitHub {
+    owner = "MalcolmRobb";
+    repo = "dump1090";
+    rev = "bff92c4ad772a0a8d433f788d39dae97e00e4dbe";
+    sha256 = "06aaj9gpz5v4qzvnp8xf18wdfclp0jvn3hflls79ly46gz2dh9hy";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ libusb rtl-sdr ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  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/MalcolmRobb/dump1090;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ earldouglas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/dunst/default.nix b/nixpkgs/pkgs/applications/misc/dunst/default.nix
new file mode 100644
index 000000000000..12f1f78acb9e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/dunst/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, pkgconfig, which, perl, libXrandr
+, cairo, dbus, systemd, gdk_pixbuf, glib, libX11, libXScrnSaver
+, libXinerama, libnotify, libxdg_basedir, pango, xproto, librsvg, dunstify ? false
+}:
+
+stdenv.mkDerivation rec {
+  name = "dunst-${version}";
+  version = "1.3.2";
+
+  src = fetchFromGitHub {
+    owner = "dunst-project";
+    repo = "dunst";
+    rev = "v${version}";
+    sha256 = "1kqlshaflp306yrjjmc28pghi1y5p24vdx4bxf8i4n9khdawb514";
+  };
+
+  nativeBuildInputs = [ perl pkgconfig which systemd makeWrapper ];
+
+  buildInputs = [
+    cairo dbus gdk_pixbuf glib libX11 libXScrnSaver
+    libXinerama libnotify libxdg_basedir pango xproto 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 = stdenv.lib.optionalString dunstify ''
+    install -Dm755 dunstify $out/bin
+  '' + ''
+    wrapProgram $out/bin/dunst \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
+  '';
+
+  meta = with stdenv.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 = [ maintainers.domenkozar ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/eaglemode/default.nix b/nixpkgs/pkgs/applications/misc/eaglemode/default.nix
new file mode 100644
index 000000000000..0404ef8ce220
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/eaglemode/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, perl, libX11, libjpeg, libpng, libtiff, pkgconfig,
+librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xineLib }:
+
+stdenv.mkDerivation rec {
+  name = "eaglemode-0.86.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/eaglemode/${name}.tar.bz2";
+    sha256 = "1a2hzyck95g740qg4p4wd4fjwsmlknh75i9sbx5r5v9pyr4i3m4f";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ perl libX11 libjpeg libpng libtiff
+    librsvg glib gtk2 libXxf86vm libXext poppler xineLib ];
+
+  # The program tries to dlopen both Xxf86vm and Xext, 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"
+    perl make.pl build
+  '';
+
+  dontPatchELF = true;
+
+  installPhase = ''
+    perl make.pl install dir=$out
+    # I don't like this... but it seems the way they plan to run it by now.
+    # Run 'eaglemode.sh', not 'eaglemode'.
+    ln -s $out/eaglemode.sh $out/bin/eaglemode.sh
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://eaglemode.sourceforge.net;
+    description = "Zoomable User Interface";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.linux;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/ebook2cw/configfile.patch b/nixpkgs/pkgs/applications/misc/ebook2cw/configfile.patch
new file mode 100644
index 000000000000..c7aafe5227a5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ebook2cw/configfile.patch
@@ -0,0 +1,11 @@
+--- a/ebook2cw.c	2017-11-08 19:52:58.298131348 -0700
++++ b/ebook2cw.c	2017-11-08 19:53:02.588231067 -0700
+@@ -136,7 +136,7 @@
+ 	char isomap[256][4]; 		/* by these strings */
+ 	char utf8map[256][8];
+ 
+-	char configfile[1025];
++	char configfile[2048];
+ 
+ 	char id3_author[80],
+ 		id3_title[80],
diff --git a/nixpkgs/pkgs/applications/misc/ebook2cw/default.nix b/nixpkgs/pkgs/applications/misc/ebook2cw/default.nix
new file mode 100644
index 000000000000..cce10258cf3b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ebook2cw/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchsvn, lame, libvorbis }:
+
+stdenv.mkDerivation rec {
+
+  name = "ebook2cw-${version}";
+  version = "0.8.2";
+
+  src = fetchsvn {
+    url = "svn://svn.fkurz.net/ebook2cw/tags/${name}";
+    sha256 = "1mvp3nz3k76v757792n9b7fcm5jm3jcwarl1k7cila9fi0c2rsiw";
+  };
+
+  buildInputs = [ lame libvorbis ];
+
+  patches = [ ./configfile.patch ];
+
+  postPatch = ''
+    substituteInPlace Makefile --replace gcc cc
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/electron-cash/default.nix b/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
new file mode 100644
index 000000000000..fff67b0add62
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchurl, python3Packages, qtbase, makeWrapper, lib }:
+
+let
+
+  python = python3Packages.python;
+
+in
+
+python3Packages.buildPythonApplication rec {
+  version = "3.3.2";
+  name = "electron-cash-${version}";
+
+  src = fetchurl {
+    url = "https://electroncash.org/downloads/${version}/win-linux/ElectronCash-${version}.tar.gz";
+    # Verified using official SHA-1 and signature from
+    # https://github.com/fyookball/keys-n-hashes
+    sha256 = "4538044cfaa4f87a847635849e0733f32b183ac79abbd2797689c86dc3cb0d53";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    dnspython
+    ecdsa
+    jsonrpclib-pelix
+    matplotlib
+    pbkdf2
+    pyaes
+    pycrypto
+    pyqt5
+    pysocks
+    qrcode
+    requests
+    tlslite-ng
+
+    # plugins
+    keepkey
+    trezor
+    btchip
+  ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postPatch = ''
+    # Remove pyqt5 check
+    sed -i '/pyqt5/d' setup.py
+  '';
+
+  preBuild = ''
+    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
+  '';
+
+  doCheck = false;
+
+  postInstall = ''
+    # These files are installed under $out/homeless-shelter ...
+    mv $out/${python.sitePackages}/homeless-shelter/.local/share $out
+    rm -rf $out/${python.sitePackages}/homeless-shelter
+
+    substituteInPlace $out/share/applications/electron-cash.desktop \
+      --replace "Exec=electron-cash %u" "Exec=$out/bin/electron-cash %u"
+
+    # Please remove this when #44047 is fixed
+    wrapProgram $out/bin/electron-cash \
+      --prefix QT_PLUGIN_PATH : ${qtbase}/lib/qt-5.${lib.versions.minor qtbase.version}/plugins
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/electron-cash help >/dev/null
+  '';
+
+  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://www.electroncash.org/;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ lassulus ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/electrum/dash.nix b/nixpkgs/pkgs/applications/misc/electrum/dash.nix
new file mode 100644
index 000000000000..98ed10b0c7cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/electrum/dash.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  version = "2.9.3.1";
+  name = "electrum-dash-${version}";
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/electrum/default.nix b/nixpkgs/pkgs/applications/misc/electrum/default.nix
new file mode 100644
index 000000000000..9adcea837735
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/electrum/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, python3, python3Packages, zbar }:
+
+let
+  qdarkstyle = python3Packages.buildPythonPackage rec {
+    pname = "QDarkStyle";
+    version = "2.5.4";
+    src = python3Packages.fetchPypi {
+      inherit pname version;
+      sha256 = "1w715m1i5pycfqcpkrggpn0rs9cakx6cm5v8rggcxnf4p0i0kdiy";
+    };
+    doCheck = false; # no tests
+  };
+in
+
+python3Packages.buildPythonApplication rec {
+  name = "electrum-${version}";
+  version = "3.2.3";
+
+  src = fetchurl {
+    url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
+    sha256 = "139kzapas1l61w1in9f7c6ybricid4fzryfnvsrfhpaqh83ydn2c";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    dnspython
+    ecdsa
+    jsonrpclib-pelix
+    matplotlib
+    pbkdf2
+    protobuf
+    pyaes
+    pycryptodomex
+    pyqt5
+    pysocks
+    qdarkstyle
+    qrcode
+    requests
+    tlslite-ng
+    typing
+
+    # plugins
+    keepkey
+    trezor
+    btchip
+
+    # TODO plugins
+    # amodem
+  ];
+
+  preBuild = ''
+    sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py
+    pyrcc5 icons.qrc -o electrum/gui/qt/icons_rc.py
+    # Recording the creation timestamps introduces indeterminism to the build
+    sed -i '/Created: .*/d' electrum/gui/qt/icons_rc.py
+    sed -i "s|name = 'libzbar.*'|name='${zbar}/lib/libzbar.so'|" electrum/qrscanner.py
+  '';
+
+  postInstall = ''
+    # 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=electrum %u" "Exec=$out/bin/electrum %u"
+  '';
+
+  doCheck = false;
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/electrum help >/dev/null
+  '';
+
+  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;
+    maintainers = with maintainers; [ ehmry joachifm np ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/electrum/ltc.nix b/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
new file mode 100644
index 000000000000..45c448804626
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchurl
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+  name = "electrum-ltc-${version}";
+  version = "3.1.3.1";
+
+  src = fetchurl {
+    url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz";
+    sha256 = "0kxcx1xf6h9z8x0k483d6ykpnmfr30n6z3r6lgqxvbl42pq75li7";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    pyaes
+    ecdsa
+    pbkdf2
+    requests
+    qrcode
+    py_scrypt
+    pyqt5
+    protobuf
+    dnspython
+    jsonrpclib-pelix
+    pysocks
+  ];
+
+  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
+  '';
+
+  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; [ asymmetric ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/emem/default.nix b/nixpkgs/pkgs/applications/misc/emem/default.nix
new file mode 100644
index 000000000000..d447e7f50d52
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/emem/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, jdk }:
+
+stdenv.mkDerivation rec {
+  pname = "emem";
+  version = "0.2.50";
+  name = "${pname}-${version}";
+
+  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/nixpkgs/pkgs/applications/misc/epdfview/default.nix b/nixpkgs/pkgs/applications/misc/epdfview/default.nix
new file mode 100644
index 000000000000..b6c10dbebcad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/epdfview/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, fetchpatch, pkgconfig, gtk2, poppler }:
+
+stdenv.mkDerivation rec {
+  name = "epdfview-${version}";
+  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/nixpkgs/pkgs/applications/misc/ephemeralpg/default.nix b/nixpkgs/pkgs/applications/misc/ephemeralpg/default.nix
new file mode 100644
index 000000000000..0ade32d99899
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ephemeralpg/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, postgresql, makeWrapper }:
+stdenv.mkDerivation rec {
+  name = "ephemeralpg-${version}";
+  version = "2.5";
+  src = fetchurl {
+    url = "http://ephemeralpg.org/code/${name}.tar.gz";
+    sha256 = "004fcll7248h73adkqawn9bhkqj9wsxyi3w99x64f7s37r2518wk";
+  };
+  buildInputs = [ makeWrapper ];
+  installPhase = ''
+    mkdir -p $out
+    PREFIX=$out make install
+    wrapProgram $out/bin/pg_tmp --prefix PATH : ${postgresql}/bin
+  '';
+  meta = {
+    description = ''Run tests on an isolated, temporary PostgreSQL database.'';
+    license = stdenv.lib.licenses.isc;
+    homepage = http://ephemeralpg.org/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/et/default.nix b/nixpkgs/pkgs/applications/misc/et/default.nix
new file mode 100644
index 000000000000..4aaaa3339982
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/et/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libnotify, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "et-${version}";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "geistesk";
+    repo = "et";
+    rev = "${version}";
+    sha256 = "167w9qwfpd63rgy0xmkkkh5krmd91q42c3ijy3j099krgdfbb9bc";
+  };
+
+  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/geistesk/et;
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ geistesk ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/eterm/default.nix b/nixpkgs/pkgs/applications/misc/eterm/default.nix
new file mode 100644
index 000000000000..98b47990314d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/eterm/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl
+, libX11, libXext, libXaw
+, pkgconfig, imlib2, libast }:
+
+stdenv.mkDerivation rec {
+  name = "eterm-${version}";
+  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/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix b/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix
new file mode 100644
index 000000000000..b8bd0a59bea2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/eureka-editor/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchzip, fltk, zlib, xdg_utils, xorg, libjpeg, libGL }:
+
+stdenv.mkDerivation rec {
+  name = "eureka-editor-${version}";
+  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;
+    maintainers = with maintainers; [ neonfuz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/evilvte/default.nix b/nixpkgs/pkgs/applications/misc/evilvte/default.nix
new file mode 100644
index 000000000000..b72fcde4a9ee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/evilvte/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, makeWrapper, pkgconfig,
+  gnome2, glib, pango, cairo, gdk_pixbuf, atk, freetype, xorg,
+  configH
+}:
+
+stdenv.mkDerivation rec {
+  name = "evilvte-${version}";
+  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.xproto xorg.kbproto xorg.libXext xorg.xextproto 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/nixpkgs/pkgs/applications/misc/evopedia/default.nix b/nixpkgs/pkgs/applications/misc/evopedia/default.nix
new file mode 100644
index 000000000000..69767c11d6aa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/evopedia/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, bzip2, qt4, qmake4Hook, libX11 }:
+
+stdenv.mkDerivation rec {
+  name = "evopedia-${version}";
+  version = "0.4.4";
+
+  src = fetchFromGitHub {
+    owner = "evopedia";
+    repo = "evopedia_qt";
+    rev = "v${version}";
+    sha256 = "0snp5qiywj306kfaywvkl7j34fivgxcb8dids1lzmbqq5xcpqqvc";
+  };
+
+  buildInputs = [ bzip2 qt4 libX11 ];
+  nativeBuildInputs = [ qmake4Hook ];
+
+  postInstall = ''
+    # Patch the `evopedia.desktop' file.
+    substituteInPlace $out/share/applications/evopedia.desktop \
+        --replace '/usr/bin/evopedia' $out/bin/evopedia
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Offline Wikipedia Viewer";
+    homepage = http://www.evopedia.info;
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.qknight ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/evtest/default.nix b/nixpkgs/pkgs/applications/misc/evtest/default.nix
new file mode 100644
index 000000000000..3d715a1d16bd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/evtest/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchgit, autoreconfHook, pkgconfig, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "evtest-1.33";
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ libxml2 ];
+
+  src = fetchgit {
+    url = "git://anongit.freedesktop.org/evtest";
+    rev = "refs/tags/evtest-1.33";
+    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/nixpkgs/pkgs/applications/misc/exercism/default.nix b/nixpkgs/pkgs/applications/misc/exercism/default.nix
new file mode 100644
index 000000000000..946f3695f166
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/exercism/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name    = "exercism-${version}";
+  version = "3.0.9";
+
+  goPackagePath = "github.com/exercism/cli";
+
+  src = fetchFromGitHub {
+    owner  = "exercism";
+    repo   = "cli";
+    rev    = "v${version}";
+    sha256 = "0nr3dzipylicrbplh25dw0w84qklr0xcyq442i9aswzibqrb2vc6";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with stdenv.lib; {
+   inherit (src.meta) homepage;
+   description = "A Go based command line tool for exercism.io";
+   license     = licenses.mit;
+   maintainers = [ maintainers.rbasso ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/exercism/deps.nix b/nixpkgs/pkgs/applications/misc/exercism/deps.nix
new file mode 100644
index 000000000000..10a6baa2241b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/exercism/deps.nix
@@ -0,0 +1,201 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/blang/semver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/blang/semver";
+      rev =  "2ee87856327ba09384cabd113bc6b5d174e9ec0f";
+      sha256 = "13ws259bwcibkclbr82ilhk6zadm63kxklxhk12wayklj8ghhsmy";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "346938d642f2ec3594ed81d874461961cd0faa76";
+      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
+    };
+  }
+  {
+    goPackagePath  = "github.com/fsnotify/fsnotify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fsnotify/fsnotify";
+      rev =  "629574ca2a5df945712d3079857300b5e4da0236";
+      sha256 = "06wfg1mmzjj04z7d0q1x2fai9k6hm957brngsaf02fa9a3qqanv3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/hashicorp/hcl";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/hcl";
+      rev =  "392dba7d905ed5d04a5794ba89f558b27e2ba1ca";
+      sha256 = "1rfm67kma2hpakabf7hxlj196jags4rpjpcirwg4kan4g9b6j0kb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/inconshreveable/go-update";
+    fetch = {
+      type = "git";
+      url = "https://github.com/inconshreveable/go-update";
+      rev =  "8152e7eb6ccf8679a64582a66b78519688d156ad";
+      sha256 = "07czhspakpi7al004rm669cmf4h5l0vnygsm11280nkfn2zxqdi3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/inconshreveable/mousetrap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/inconshreveable/mousetrap";
+      rev =  "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
+      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
+    };
+  }
+  {
+    goPackagePath  = "github.com/magiconair/properties";
+    fetch = {
+      type = "git";
+      url = "https://github.com/magiconair/properties";
+      rev =  "be5ece7dd465ab0765a9682137865547526d1dfb";
+      sha256 = "0spk58x9b0hj29cw6wy6rlvc6s9xk4r0gmlxgsc194pkzqcg1my8";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/mapstructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/mapstructure";
+      rev =  "d0303fe809921458f417bcf828397a65db30a7e4";
+      sha256 = "1fjwi5ghc1ibyx93apz31n4hj6gcq1hzismpdfbg2qxwshyg0ya8";
+    };
+  }
+  {
+    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 =  "5ccdfb18c776b740aecaf085c4d9a2779199c279";
+      sha256 = "1jl44j58y62rhnwkzw3mvcj725gdyzs45pq4ga81qqxwqxs3czsq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    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 =  "b26b538f693051ac6518e65672de3144ce3fbedc";
+      sha256 = "0pm3qlw35xygz9zz7hizlmin76wrfac8vsxvsd9i0zpnijbkmjv6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/jwalterweatherman";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/jwalterweatherman";
+      rev =  "0efa5202c04663c757d84f90f5219c1250baf94f";
+      sha256 = "1sfd72zvw9lrzfc8haswhqf93bzm20q4yhbynm6n5fnnc56zn4gs";
+    };
+  }
+  {
+    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 =  "15738813a09db5c8e5b60a19d67d3f9bd38da3a4";
+      sha256 = "1mjfzg8zvnxckaq6l8gw99i2msrfqn9yr04dc3b7kd5bpxi6zr4v";
+    };
+  }
+  {
+    goPackagePath  = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev =  "69483b4bd14f5845b5a1e55bca19e954e827f1d0";
+      sha256 = "11lzrwkdzdd8yyag92akncc008h2f9d1bpc489mxiwp0jrmz4ivb";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "f5079bd7f6f74e23c4d65efa0f4ce14cbd6a3c0f";
+      sha256 = "0sck2mq4bwyh5iv51jpbywzwhc47ci1q5yd7pqr68xnsz7b3b55k";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "d8f5ea21b9295e315e612b4bcf4bedea93454d4d";
+      sha256 = "1gy2y20glqqqcmmrcx2wrvk4h74h8im1nxvzi91i1mxjk7p185mv";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev =  "3bd178b88a8180be2df394a1fbb81313916f0e7b";
+      sha256 = "137pp3gz8ll08q0q434dn6472bbkv81h72qqqm9idhf7cc6f51w9";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "25c4ec802a7d637f88d584ab26798e94ad14c13b";
+      sha256 = "053mknsl3xhjscmd552005xnwbfcg0z2iphvbvj3wi0w3pvmlw44";
+    };
+  }
+]
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/extract_url/default.nix b/nixpkgs/pkgs/applications/misc/extract_url/default.nix
new file mode 100644
index 000000000000..389ac7dfb1fc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/extract_url/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, perl
+, MIMEtools, HTMLParser
+, cursesSupport ? true, CursesUI
+, uriFindSupport ? true, URIFind
+}:
+
+let
+  perlDeps =
+    [ MIMEtools HTMLParser ]
+    ++ lib.optional cursesSupport CursesUI
+    ++ lib.optional uriFindSupport URIFind;
+
+in stdenv.mkDerivation rec {
+  name = "extract_url-${version}";
+  version = "1.6.2";
+
+  src = fetchFromGitHub {
+    owner = "m3m0ryh0l3";
+    repo = "extracturl";
+    rev = "v${version}";
+    sha256 = "05589lp15jmcpbj4y9a3hmf6n2gsqrm4ybcyh3hd4j6pc7hmnhny";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ] ++ perlDeps;
+
+  makeFlags = [ "prefix=$(out)" ];
+  installFlags = [ "INSTALL=install" ];
+
+  postFixup = ''
+    wrapProgram "$out/bin/extract_url" \
+      --set PERL5LIB "${lib.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/nixpkgs/pkgs/applications/misc/far2l/default.nix b/nixpkgs/pkgs/applications/misc/far2l/default.nix
new file mode 100644
index 000000000000..51e9c4371b5b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/far2l/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, fetchFromGitHub, fetchpatch, makeWrapper, cmake, pkgconfig, wxGTK30, glib, pcre, m4, bash,
+  xdg_utils, gvfs, zip, unzip, gzip, bzip2, gnutar, p7zip, xz, imagemagick, darwin }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  build = "unstable-2018-07-19.git${builtins.substring 0 7 src.rev}";
+  name = "far2l-2.1.${build}";
+
+  src = fetchFromGitHub {
+    owner = "elfmz";
+    repo = "far2l";
+    rev = "dceaa3918ea2c5e43600bad3fc63f861b8d26fc4";
+    sha256 = "1ssd3hwz4b7vl4r858d9whl61cn23pgcamcjmvfa6ysf4x2b7sgi";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig m4 makeWrapper imagemagick ];
+
+  buildInputs = [ wxGTK30 glib pcre ]
+    ++ optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa;
+
+  postPatch = optionalString stdenv.isLinux ''
+    substituteInPlace far2l/bootstrap/trash.sh \
+      --replace 'gvfs-trash'  '${gvfs}/bin/gvfs-trash'
+  '' + optionalString stdenv.isDarwin ''
+    substituteInPlace far2l/CMakeLists.txt \
+      --replace "-framework System" -lSystem
+  '' + ''
+    echo 'echo ${build}' > 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 '
+
+    ( cd colorer/configs/base
+      patch -p2 <  ${ fetchpatch {
+                        name   = "nix-language-highlighting.patch";
+                        url    = https://github.com/colorer/Colorer-schemes/commit/64bd06de0a63224b431cd8fc42cd9fa84b8ba7c0.patch;
+                        sha256 = "1mrj1wyxmk7sll9j1jzw6miwi0sfavf654klms24wngnh6hadsch";
+                      }
+                    }
+    )
+  '';
+
+  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
+
+    sed "s,/usr/bin/,$out/bin/," ../far2l/DE/far2l.desktop > $out/share/applications/far2l.desktop
+
+    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 = {
+    description = "An orthodox file manager";
+    homepage = https://github.com/elfmz/far2l;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.volth ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/fbreader/default.nix b/nixpkgs/pkgs/applications/misc/fbreader/default.nix
new file mode 100644
index 000000000000..e7d0e6a63a59
--- /dev/null
+++ b/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" ]; # since gcc-6
+
+  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/nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch b/nixpkgs/pkgs/applications/misc/fbreader/typecheck.patch
new file mode 100644
index 000000000000..cbac290e69c2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/fehlstart/default.nix b/nixpkgs/pkgs/applications/misc/fehlstart/default.nix
new file mode 100644
index 000000000000..db78f2ec9204
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch b/nixpkgs/pkgs/applications/misc/fehlstart/use-nix-profiles.patch
new file mode 100644
index 000000000000..0c06e53f9814
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/fetchmail/default.nix b/nixpkgs/pkgs/applications/misc/fetchmail/default.nix
new file mode 100644
index 000000000000..e9d194666094
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/fetchmail/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, openssl }:
+
+let
+  version = "6.3.26";
+in
+stdenv.mkDerivation {
+  name="fetchmail-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fetchmail.berlios/fetchmail-${version}.tar.bz2";
+    sha256 = "08rafrs1dlr11myr0p99kg4k80qyy0fa63gg3ac88zn49174lwhw";
+  };
+
+  buildInputs = [ openssl ];
+
+  configureFlags = [ "--with-ssl=${openssl.dev}" ];
+
+  meta = {
+    homepage = http://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/nixpkgs/pkgs/applications/misc/flamerobin/default.nix b/nixpkgs/pkgs/applications/misc/flamerobin/default.nix
new file mode 100644
index 000000000000..f70042884a8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/flamerobin/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, wxGTK30, boost, firebird }:
+
+stdenv.mkDerivation rec {
+  version = "0.9.3.1";
+  name = "flamerobin-${version}";
+
+  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/nixpkgs/pkgs/applications/misc/fllog/default.nix b/nixpkgs/pkgs/applications/misc/fllog/default.nix
new file mode 100644
index 000000000000..348b1155e41e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/fllog/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.2.5";
+  pname = "fllog";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fldigi/${name}.tar.gz";
+    sha256 = "042j1g035338vfbl4i9laai8af8iakavar05xn2m4p7ww6x76zzl";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/flmsg/default.nix b/nixpkgs/pkgs/applications/misc/flmsg/default.nix
new file mode 100644
index 000000000000..afdf0f91a910
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/flmsg/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  version = "4.0.7";
+  pname = "flmsg";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fldigi/${name}.tar.gz";
+    sha256 = "1kdlwhxsw02pas9d0kakkq2713wj1m4q881f6am5aq4x8n01f4xw";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/flrig/default.nix b/nixpkgs/pkgs/applications/misc/flrig/default.nix
new file mode 100644
index 000000000000..64d2677d4e13
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/flrig/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.3.41";
+  pname = "flrig";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fldigi/${name}.tar.gz";
+    sha256 = "0vh14azg3pppyg3fb7kf6q3ighw1ka9m60jf2dzsd77f4hidhqx4";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/flwrap/default.nix b/nixpkgs/pkgs/applications/misc/flwrap/default.nix
new file mode 100644
index 000000000000..b96f3c2b3278
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/flwrap/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchurl
+, fltk13
+, libjpeg
+, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.3.5";
+  pname = "flwrap";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fldigi/${name}.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/nixpkgs/pkgs/applications/misc/fme/default.nix b/nixpkgs/pkgs/applications/misc/fme/default.nix
new file mode 100644
index 000000000000..4e786bfb36f8
--- /dev/null
+++ b/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{
+
+  name = "fme-${version}";
+  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/nixpkgs/pkgs/applications/misc/font-manager/default.nix b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
new file mode 100644
index 000000000000..998074e8aa0f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchFromGitHub, automake, autoconf, libtool,
+  pkgconfig, file, intltool, libxml2, json-glib , sqlite, itstool,
+  librsvg, vala, gnome3, wrapGAppsHook, gobject-introspection
+}:
+
+stdenv.mkDerivation rec {
+  name = "font-manager-${version}";
+  version = "0.7.3.1";
+
+  src = fetchFromGitHub {
+    owner = "FontManager";
+    repo = "master";
+    rev = version;
+    sha256 = "0i65br0bk3r6x8wcl8jhc0v0agl0k6fy5g60ss1bnw4md7ldpgyi";
+    };
+
+  nativeBuildInputs = [
+    pkgconfig
+    automake autoconf libtool
+    file
+    intltool
+    itstool
+    vala
+    gnome3.yelp-tools
+    wrapGAppsHook
+    # For setup hook
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    libxml2
+    json-glib
+    sqlite
+    librsvg
+    gnome3.gtk
+    gnome3.libgee
+    gnome3.defaultIconTheme
+  ];
+
+  enableParallelBuilding = true;
+
+  preConfigure = ''
+    NOCONFIGURE=true ./autogen.sh
+    substituteInPlace configure --replace "/usr/bin/file" "${file}/bin/file"
+  '';
+
+  configureFlags = [
+    "--with-file-roller"
+    "--disable-pycompile"
+  ];
+
+  meta = {
+    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 = stdenv.lib.licenses.gpl3;
+    repositories.git = https://github.com/FontManager/master;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/freemind/default.nix b/nixpkgs/pkgs/applications/misc/freemind/default.nix
new file mode 100644
index 000000000000..eeb269e580c3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/freemind/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, jdk, jre, ant }:
+
+stdenv.mkDerivation rec {
+  name = "freemind-${version}";
+  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
+    #! /bin/sh
+    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/nixpkgs/pkgs/applications/misc/gImageReader/default.nix b/nixpkgs/pkgs/applications/misc/gImageReader/default.nix
new file mode 100644
index 000000000000..75783805fa3b
--- /dev/null
+++ b/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
+, gtk3, gobject-introspection, wrapGAppsHook
+, gnome3, gtkspell3, gtkspellmm, cairomm
+}:
+
+let
+  variant = "gtk";
+  pythonEnv = python3.withPackages( ps: with ps;[ pygobject3 ] );
+in
+stdenv.mkDerivation rec {
+  name = "gImageReader-${version}";
+  version = "3.3.0";
+
+  src = fetchFromGitHub {
+    owner= "manisandro";
+    repo = "gImageReader";
+    rev = "v${version}";
+    sha256 = "0pjk4kr7bc5q4hi1xf7na2zln9fyqdazgzq62r3bg41nzy7fakcz";
+  };
+
+  nativeBuildInputs = [
+    cmake ninja
+    intltool
+    pkgconfig
+    pythonEnv
+
+    # Gtk specific
+    wrapGAppsHook
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    libxmlxx3
+    libzip
+    libuuid
+    sane-backends
+    podofo
+    libjpeg
+    djvulibre
+    tesseract
+    poppler
+
+    # Gtk specific
+    gnome3.gtkmm
+    gtkspell3
+    gtkspellmm
+    gnome3.gtksourceview
+    gnome3.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/nixpkgs/pkgs/applications/misc/galculator/default.nix b/nixpkgs/pkgs/applications/misc/galculator/default.nix
new file mode 100644
index 000000000000..44071b328758
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/galculator/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub
+, autoreconfHook, intltool
+, gtk, pkgconfig, flex }:
+
+stdenv.mkDerivation rec {
+  name = "galculator-${version}";
+  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/nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch b/nixpkgs/pkgs/applications/misc/gammu/bashcomp-dir.patch
new file mode 100644
index 000000000000..d41aa432cf35
--- /dev/null
+++ b/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}/etc/bash_completion.d" CACHE PATH "Location of bash_completion.d")
+     endif (NOT BASH_COMPLETION_FOUND)
+     install (
+         FILES bash-completion/gammu
diff --git a/nixpkgs/pkgs/applications/misc/gammu/default.nix b/nixpkgs/pkgs/applications/misc/gammu/default.nix
new file mode 100644
index 000000000000..f05514f3fc58
--- /dev/null
+++ b/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 {
+  name = "gammu-${version}";
+  version = "1.39.0";
+
+  src = fetchFromGitHub {
+    owner = "gammu";
+    repo = "gammu";
+    rev = version;
+    sha256 = "1hr053z2l5mjgip83fsxnd1rqsp5gwywzagzrgdg243apn1nz0gs";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/gammu/systemd.patch b/nixpkgs/pkgs/applications/misc/gammu/systemd.patch
new file mode 100644
index 000000000000..22b49a5a2ffe
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix b/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix
new file mode 100644
index 000000000000..2257b2a98fb7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchzip, makeDesktopItem, makeWrapper
+, jre }:
+
+stdenv.mkDerivation rec {
+  name = "ganttproject-bin-${version}";
+  version = "2.7.2";
+
+  src = let build = "r1954"; in fetchzip {
+    sha256 = "0l655w6n88j7klz56af8xkpiv1pwlkfl5x1d33sqv9dnyisyw2hc";
+    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;Application;";
+    };
+
+  in ''
+    mkdir -pv "$out/share/ganttproject"
+    cp -rv *  "$out/share/ganttproject"
+
+    mkdir -pv "$out/bin"
+    wrapProgram "$out/share/ganttproject/ganttproject" \
+      --set JAVA_HOME "${jre}"
+    mv -v "$out/share/ganttproject/ganttproject" "$out/bin"
+
+    install -v -Dm644 \
+      plugins/net.sourceforge.ganttproject/data/resources/icons/ganttproject.png \
+      "$out/share/pixmaps/ganttproject.png"
+    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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix b/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix
new file mode 100644
index 000000000000..b97b079ab663
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/garmin-plugin/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, garmintools, libgcrypt, libusb, 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 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/nixpkgs/pkgs/applications/misc/gcal/default.nix b/nixpkgs/pkgs/applications/misc/gcal/default.nix
new file mode 100644
index 000000000000..a3aebf227339
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gcal/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, ncurses  }:
+
+stdenv.mkDerivation rec {
+  name = "gcal-${version}";
+  version = "4.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/gcal/${name}.tar.xz";
+    sha256 = "1av11zkfirbixn05hyq4xvilin0ncddfjqzc4zd9pviyp506rdci";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/gcalcli/default.nix b/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
new file mode 100644
index 000000000000..ac8d082513b2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub, python3
+, libnotify ? null }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+  version = "4.0.0a4";
+  name = "gcalcli-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "insanum";
+    repo   = "gcalcli";
+    rev    = "v${version}";
+    sha256 = "00giq5cdigidzv5bz4wgzi1yp6xlf2rdcy6ynmsc6bcf0cl5x64d";
+  };
+
+  propagatedBuildInputs = [
+    dateutil gflags httplib2 parsedatetime six vobject
+    google_api_python_client oauth2client uritemplate
+  ] ++ lib.optional (!isPy3k) futures;
+
+  postInstall = lib.optionalString stdenv.isLinux ''
+    substituteInPlace $out/bin/gcalcli --replace \
+      "command = 'notify-send -u critical -a gcalcli %s'" \
+      "command = '${libnotify}/bin/notify-send -i view-calendar-upcoming-events -u critical -a Calendar %s'"
+  '';
+
+  # 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/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix b/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
new file mode 100644
index 000000000000..5e8bb629ce2a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}:
+
+with stdenv.lib;
+
+perlPackages.buildPerlPackage rec {
+  name = "get_iplayer-${version}";
+  version = "2.99";
+
+  src = fetchFromGitHub {
+    owner = "get-iplayer";
+    repo = "get_iplayer";
+    rev = "v${version}";
+    sha256 = "085bgwkjnaqp96gvd2s8qmkw69rz91si1sgzqdqbplkzj9bk2qii";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ];
+  propagatedBuildInputs = with perlPackages; [HTMLParser HTTPCookies LWP 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 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;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/misc/getxbook/default.nix b/nixpkgs/pkgs/applications/misc/getxbook/default.nix
new file mode 100644
index 000000000000..a77f87f6f1f1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/getxbook/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, openssl }:
+
+stdenv.mkDerivation rec {
+  name    = "getxbook-${version}";
+  version = "1.2";
+
+  src = fetchurl {
+    url    = "https://njw.me.uk/getxbook/${name}.tar.xz";
+    sha256 = "0ihwrx4gspj8l7fc8vxch6dpjrw1lvv9z3c19f0wxnmnxhv1cjvs";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/girara/default.nix b/nixpkgs/pkgs/applications/misc/girara/default.nix
new file mode 100644
index 000000000000..919f20f13983
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/girara/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, meson, ninja, pkgconfig, glib, gtk, gettext, libiconv, libintl
+}:
+
+stdenv.mkDerivation rec {
+  name = "girara-${version}";
+  version = "0.3.2";
+
+  src = fetchurl {
+    url = "https://pwmt.org/projects/girara/download/${name}.tar.xz";
+    sha256 = "1kc6n1mxjxa7wvwnqy94qfg8l9jvx9qrvrr2kc7m4g0z20x3a00p";
+  };
+
+  nativeBuildInputs = [ meson ninja pkgconfig gettext ];
+  buildInputs = [ libintl libiconv ];
+  propagatedBuildInputs = [ glib gtk ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pwmt.org/projects/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 = [ maintainers.garbas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gkrellm/default.nix b/nixpkgs/pkgs/applications/misc/gkrellm/default.nix
new file mode 100644
index 000000000000..b4fac899f66f
--- /dev/null
+++ b/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.10";
+
+  src = fetchurl {
+    url = "http://gkrellm.srcbox.net/releases/${name}.tar.bz2";
+    sha256 = "0rnpzjr0ys0ypm078y63q4aplcgdr5nshjzhmz330n6dmnxci7lb";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/gksu/default.nix b/nixpkgs/pkgs/applications/misc/gksu/default.nix
new file mode 100644
index 000000000000..4af776674e63
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gksu/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, pkgconfig, gtk2, gnome2, gnome3, libgksu,
+  intltool, libstartup_notification, gtk-doc, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.0.2";
+  pname = "gksu";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://people.debian.org/~kov/gksu/${name}.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/nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch b/nixpkgs/pkgs/applications/misc/gksu/gksu-2.0.2-glib-2.31.patch
new file mode 100644
index 000000000000..fd711a321acf
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/glava/default.nix b/nixpkgs/pkgs/applications/misc/glava/default.nix
new file mode 100644
index 000000000000..0cac0e6fd3f5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/glava/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, writeScript, fetchFromGitHub
+, libGL, libX11, libXext, python3, libXrandr, libXrender, libpulseaudio, libXcomposite
+, enableGlfw ? false, glfw }:
+
+let
+  inherit (stdenv.lib) optional makeLibraryPath;
+
+  wrapperScript = writeScript "glava" ''
+    #!${stdenv.shell}
+    case "$1" in
+      --copy-config)
+        # 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 {
+    name = "glava-${version}";
+    version = "1.5.8";
+
+    src = fetchFromGitHub {
+      owner = "wacossusca34";
+      repo = "glava";
+      rev = "v${version}";
+      sha256 = "0mps82qw2mhxx8069jvqz1v8n4x7ybrrjv92ij6cms8xi1y8v0fm";
+    };
+
+    buildInputs = [
+      libX11
+      libXext
+      libXrandr
+      libXrender
+      libpulseaudio
+      libXcomposite
+    ] ++ optional enableGlfw glfw;
+
+    nativeBuildInputs = [
+      python3
+    ];
+
+    preConfigure = ''
+      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/nixpkgs/pkgs/applications/misc/glom/default.nix b/nixpkgs/pkgs/applications/misc/glom/default.nix
new file mode 100644
index 000000000000..9e71837c0f5d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/glom/default.nix
@@ -0,0 +1,132 @@
+{ stdenv
+, fetchFromGitLab
+, 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
+, gtksourceviewmm4
+, postgresql
+, gnome3
+, gobject-introspection
+, 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 = "unstable-2018-12-16";
+
+  outputs = [ "out" "lib" "dev" "doc" "devdoc" ];
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = pname;
+    rev = "fa5ff04f209f35bf3e97bc1c3eb1d1138d6172ce";
+    sha256 = "145hnk96xa4v35i3a3mbf3fnx4nlk8cksc0qhm7nrh8cnnrbdfgn";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    autoconf
+    automake
+    libtool
+    mm-common
+    intltool
+    gnome3.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
+    gtksourceviewmm4
+    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 = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gmrun/default.nix b/nixpkgs/pkgs/applications/misc/gmrun/default.nix
new file mode 100644
index 000000000000..053da375ab15
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gmrun/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, glib, gtk2, pkgconfig, popt }:
+
+let
+  version = "0.9.2";
+in
+
+stdenv.mkDerivation rec {
+  name = "gmrun-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gmrun/${name}.tar.gz";
+    sha256 = "180z6hbax1qypy5cyy2z6nn7fzxla4ib47ck8mqwr714ag77na8p";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib gtk2 popt ];
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  patches = [
+      ./gcc43.patch
+      ./gmrun-0.9.2-xdg.patch
+    ];
+
+  meta = {
+    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 = "GPL";
+    maintainers = [];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch b/nixpkgs/pkgs/applications/misc/gmrun/gcc43.patch
new file mode 100644
index 000000000000..60e4338e893d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch b/nixpkgs/pkgs/applications/misc/gmrun/gmrun-0.9.2-xdg.patch
new file mode 100644
index 000000000000..b5cd41a3c5b4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/gmtp/default.nix b/nixpkgs/pkgs/applications/misc/gmtp/default.nix
new file mode 100644
index 000000000000..bb1556c7c4dc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gmtp/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, libmtp, libid3tag, flac, libvorbis, gtk3
+, gsettings-desktop-schemas, wrapGAppsHook
+}:
+
+let version = "1.3.11"; in
+
+stdenv.mkDerivation {
+  name = "gmtp-${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 = [ stdenv.lib.maintainers.pbogdan ];
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix b/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
new file mode 100644
index 000000000000..154af4efc9b7
--- /dev/null
+++ b/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
+, rest
+, 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
+    rest
+    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${gnome3.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 = gnome3.maintainers;
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix b/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
new file mode 100644
index 000000000000..f5420a0c9449
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, meson, ninja, pkgconfig, vala, gettext
+, libxml2, desktop-file-utils, wrapGAppsHook
+, glib, gtk3, libgtop, gnome3 }:
+
+let
+  pname = "gnome-usage";
+  version = "3.30.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0f1vccw916az8hzsqmx6f57jvl68s3sbd3qk4rpwn42ks1v7nmsh";
+  };
+
+  nativeBuildInputs = [ meson ninja pkgconfig vala gettext libxml2 desktop-file-utils wrapGAppsHook ];
+
+  buildInputs = [ glib gtk3 libgtop gnome3.defaultIconTheme ];
+
+  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 = "";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = gnome3.maintainers;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gnome15/default.nix b/nixpkgs/pkgs/applications/misc/gnome15/default.nix
new file mode 100644
index 000000000000..e2cf8245ce67
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnome15/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, python2, gnome_python, gnome_python_desktop }:
+
+stdenv.mkDerivation rec {
+  name = "gnome15-2016-06-10";
+
+  src = fetchFromGitHub {
+    owner = "achilleas-k";
+    repo = "gnome15";
+    rev = "1077c890d9ba8ef7a5e448e70a792de5c7443c84";
+    sha256 = "0z5k2rgvv5zyi3lbbk6svncypidj44qzfchivb4vlr7clmh16m95";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig python2.pkgs.wrapPython ];
+  buildInputs = [ python2 ];
+  propagatedBuildInputs = with python2.pkgs; [
+    pygtk keyring virtkey pillow dbus-python pyinotify lxml pyxdg pyusb gnome_python gnome_python_desktop
+    python-uinput xlib pyudev pyinputevent
+  ];
+
+  postPatch = ''
+    touch README
+    export UDEV_RULES_PATH="$out/lib/udev/rules.d"
+  '';
+
+  postFixup = ''
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A set of tools for configuring the Logitech G15 keyboard";
+    license = licenses.gpl3;
+    homepage = https://gnome15.org/;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gnss-sdr/default.nix b/nixpkgs/pkgs/applications/misc/gnss-sdr/default.nix
new file mode 100644
index 000000000000..6cbdea8c6867
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnss-sdr/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub
+, armadillo
+, boost
+, cmake
+, glog
+, gmock
+, openssl
+, google-gflags
+, gnuradio
+, orc
+, pkgconfig
+, pythonPackages
+, uhd
+}:
+
+stdenv.mkDerivation rec {
+  name = "gnss-sdr-${version}";
+  version = "0.0.9";
+
+  src = fetchFromGitHub {
+    owner = "gnss-sdr";
+    repo = "gnss-sdr";
+    rev = "v${version}";
+    sha256 = "0gis932ly3vk7d5qvznffp54pkmbw3m6v60mxjfdj5dd3r7vf975";
+  };
+
+  buildInputs = [
+    armadillo
+    boost.dev
+    cmake
+    glog
+    gmock
+    openssl.dev
+    google-gflags
+    gnuradio
+    orc
+    pkgconfig
+    pythonPackages.Mako
+
+    # UHD support is optional, but gnuradio is built with it, so there's
+    # nothing to be gained by leaving it out.
+    uhd
+  ];
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = [
+    "-DGFlags_ROOT_DIR=${google-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"
+
+    # 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/nixpkgs/pkgs/applications/misc/gnuradio/ais.nix b/nixpkgs/pkgs/applications/misc/gnuradio/ais.nix
new file mode 100644
index 000000000000..dfb8415219c7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnuradio/ais.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio
+, makeWrapper, cppunit, gnuradio-osmosdr
+, pythonSupport ? true, python, swig
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation rec {
+  name = "gnuradio-ais-${version}";
+  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 gnuradio-osmosdr
+  ] ++ 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/nixpkgs/pkgs/applications/misc/gnuradio/default.nix b/nixpkgs/pkgs/applications/misc/gnuradio/default.nix
new file mode 100644
index 000000000000..a7c00cceaa72
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnuradio/default.nix
@@ -0,0 +1,122 @@
+{ stdenv, fetchFromGitHub, writeText, makeWrapper
+# Dependencies documented @ https://gnuradio.org/doc/doxygen/build_guide.html
+# => core dependencies
+, cmake, pkgconfig, git, boost, cppunit, fftw
+# => python wrappers
+# May be able to upgrade to swig3
+, python, swig2, numpy, scipy, matplotlib
+# => grc - the gnu radio companion
+, Mako, cheetah, pygtk # Note: GR is migrating to Mako. Cheetah should be removed for GR3.8
+# => gr-wavelet: collection of wavelet blocks
+, gsl
+# => gr-qtgui: the Qt-based GUI
+, qt4, qwt, pyqt4
+# => gr-wxgui: the Wx-based GUI
+, wxPython, lxml
+# => gr-audio: audio subsystems (system/OS dependent)
+, alsaLib   # linux   'audio-alsa'
+, CoreAudio # darwin  'audio-osx'
+# => uhd: the Ettus USRP Hardware Driver Interface
+, uhd
+# => gr-video-sdl: PAL and NTSC display
+, SDL
+# Other
+, libusb1, orc, pyopengl
+}:
+
+stdenv.mkDerivation rec {
+  name = "gnuradio-${version}";
+  version = "3.7.13.4";
+
+  src = fetchFromGitHub {
+    owner = "gnuradio";
+    repo = "gnuradio";
+    rev = "v${version}";
+    sha256 = "0ybfn2zfr9lc1bi3c794l4bzpj8y6vas9c4rbcj4nqlx0zf3p8fn";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    cmake pkgconfig git makeWrapper cppunit orc
+  ];
+
+  buildInputs = [
+    boost fftw python swig2 lxml qt4
+    qwt SDL libusb1 uhd gsl
+  ] ++ stdenv.lib.optionals stdenv.isLinux  [ alsaLib   ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ CoreAudio ];
+
+  propagatedBuildInputs = [
+    Mako cheetah numpy scipy matplotlib pyqt4 pygtk wxPython pyopengl
+  ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    substituteInPlace \
+        gr-fec/include/gnuradio/fec/polar_decoder_common.h \
+        --replace BOOST_CONSTEXPR_OR_CONST const
+  '';
+
+  # Enables composition with nix-shell
+  grcSetupHook = writeText "grcSetupHook.sh" ''
+    addGRCBlocksPath() {
+      addToSearchPath GRC_BLOCKS_PATH $1/share/gnuradio/grc/blocks
+    }
+    addEnvHooks "$targetOffset" addGRCBlocksPath
+  '';
+
+  setupHook = [ grcSetupHook ];
+
+  # patch wxgui and pygtk check due to python importerror in a headless environment
+  # wxgtk gui will be removed in GR3.8
+  # c++11 hack may not be necessary anymore
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-unused-variable ${stdenv.lib.optionalString (!stdenv.isDarwin) "-std=c++11"}"
+    sed -i 's/.*wx\.version.*/set(WX_FOUND TRUE)/g' gr-wxgui/CMakeLists.txt
+    sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
+    find . -name "CMakeLists.txt" -exec sed -i '1iadd_compile_options($<$<COMPILE_LANGUAGE:CXX>:-std=c++11>)' "{}" ";"
+  '';
+
+  # Framework path needed for qwt6_qt4 but not qwt5
+  cmakeFlags =
+    stdenv.lib.optionals stdenv.isDarwin [ "-DCMAKE_FRAMEWORK_PATH=${qwt}/lib" ];
+
+  # - Ensure we get an interactive backend for matplotlib. If not the gr_plot_*
+  #   programs will not display anything. Yes, $MATPLOTLIBRC must point to the
+  #   *dirname* where matplotlibrc is located, not the file itself.
+  # - GNU Radio core is C++ but the user interface (GUI and API) is Python, so
+  #   we must wrap the stuff in bin/.
+  # Notes:
+  # - May want to use makeWrapper instead of wrapProgram
+  # - may want to change interpreter path on Python examples instead of wrapping
+  # - see https://github.com/NixOS/nixpkgs/issues/22688 regarding use of --prefix / python.withPackages
+  # - see https://github.com/NixOS/nixpkgs/issues/24693 regarding use of DYLD_FRAMEWORK_PATH on Darwin
+  postInstall = ''
+    printf "backend : Qt4Agg\n" > "$out/share/gnuradio/matplotlibrc"
+
+    for file in $(find $out/bin $out/share/gnuradio/examples -type f -executable); do
+        wrapProgram "$file" \
+            --prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \
+            --set MATPLOTLIBRC "$out/share/gnuradio" \
+            ${stdenv.lib.optionalString stdenv.isDarwin "--set DYLD_FRAMEWORK_PATH /System/Library/Frameworks"}
+    done
+  '';
+
+  meta = with stdenv.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.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ bjornfor fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gnuradio/gsm.nix b/nixpkgs/pkgs/applications/misc/gnuradio/gsm.nix
new file mode 100644
index 000000000000..dcb50df70520
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnuradio/gsm.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio
+, makeWrapper, cppunit, libosmocore, gnuradio-osmosdr
+, pythonSupport ? true, python, swig
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation rec {
+  name = "gnuradio-gsm-${version}";
+  version = "2016-08-25";
+
+  src = fetchFromGitHub {
+    owner = "ptrkrysik";
+    repo = "gr-gsm";
+    rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
+    sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    cmake boost gnuradio makeWrapper cppunit libosmocore gnuradio-osmosdr
+  ] ++ stdenv.lib.optionals pythonSupport [ python swig ];
+
+  postInstall = ''
+    for prog in "$out"/bin/*; do
+        wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:${gnuradio-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/nixpkgs/pkgs/applications/misc/gnuradio/limesdr.nix b/nixpkgs/pkgs/applications/misc/gnuradio/limesdr.nix
new file mode 100644
index 000000000000..0a5d4f56d278
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnuradio/limesdr.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, cmake, boost, gnuradio
+, pythonSupport ? true, python, swig, limesuite
+} :
+
+assert pythonSupport -> python != null && swig != null;
+
+let
+  version = "1.0.0-RC";
+
+in stdenv.mkDerivation rec {
+  name = "gnuradio-limesdr-${version}";
+
+  src = fetchFromGitHub {
+    owner = "myriadrf";
+    repo = "gr-limesdr";
+    rev = "v${version}";
+    sha256 = "0b34mg9nfar2gcir98004ixrxmxi8p3p2hrvvi1razd869x2a0lf";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ] ++ stdenv.lib.optionals pythonSupport [ swig ];
+
+  buildInputs = [
+    boost gnuradio limesuite
+  ] ++ 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/nixpkgs/pkgs/applications/misc/gnuradio/nacl.nix b/nixpkgs/pkgs/applications/misc/gnuradio/nacl.nix
new file mode 100644
index 000000000000..2f4b0e4e3eb6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnuradio/nacl.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio, uhd
+, makeWrapper, libsodium, cppunit
+, pythonSupport ? true, python, swig
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation rec {
+  name = "gnuradio-nacl-${version}";
+  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
+  ] ++ 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/nixpkgs/pkgs/applications/misc/gnuradio/osmosdr.nix b/nixpkgs/pkgs/applications/misc/gnuradio/osmosdr.nix
new file mode 100644
index 000000000000..355ca0e95449
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnuradio/osmosdr.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, cmake, pkgconfig, boost, gnuradio, rtl-sdr, uhd
+, makeWrapper, hackrf, airspy
+, pythonSupport ? true, python, swig
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation rec {
+  name = "gnuradio-osmosdr-${version}";
+  version = "0.1.4";
+
+  src = fetchgit {
+    url = "git://git.osmocom.org/gr-osmosdr";
+    rev = "refs/tags/v${version}";
+    sha256 = "0vyzr4fhkblf2v3d7m0ch5hws4c493jw3ydl4y6b2dfbfzchhsz8";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    cmake boost gnuradio rtl-sdr uhd makeWrapper hackrf airspy
+  ] ++ 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 OsmoSDR and rtl-sdr";
+    homepage = https://sdr.osmocom.org/trac/wiki/GrOsmoSDR;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ bjornfor the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gnuradio/rds.nix b/nixpkgs/pkgs/applications/misc/gnuradio/rds.nix
new file mode 100644
index 000000000000..5d9670ba3072
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnuradio/rds.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, gnuradio
+, makeWrapper, pythonSupport ? true, python, swig
+}:
+
+assert pythonSupport -> python != null && swig != null;
+
+stdenv.mkDerivation rec {
+  name = "gnuradio-rds-${version}";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "bastibl";
+    repo = "gr-rds";
+    rev = "v${version}";
+    sha256 = "008284ya464q4h4fd0zvcn6g7bym231p8fl3kdxncz9ks4zsbsxs";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    cmake boost gnuradio makeWrapper
+  ] ++ 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/nixpkgs/pkgs/applications/misc/gnuradio/wrapper.nix b/nixpkgs/pkgs/applications/misc/gnuradio/wrapper.nix
new file mode 100644
index 000000000000..ffed3da03187
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gnuradio/wrapper.nix
@@ -0,0 +1,24 @@
+{ stdenv, gnuradio, makeWrapper, python, extraPackages ? [] }:
+
+with { inherit (stdenv.lib) appendToName makeSearchPath; };
+
+stdenv.mkDerivation {
+  name = (appendToName "with-packages" gnuradio).name;
+  buildInputs = [ makeWrapper python ];
+
+  buildCommand = ''
+    mkdir -p $out/bin
+    ln -s "${gnuradio}"/bin/* $out/bin/
+
+    for file in $(find -L $out/bin -type f); do
+        if test -x "$(readlink -f "$file")"; then
+            wrapProgram "$file" \
+                --prefix PYTHONPATH : ${stdenv.lib.concatStringsSep ":"
+                                         (map (path: "$(toPythonPath ${path})") extraPackages)} \
+                --prefix GRC_BLOCKS_PATH : ${makeSearchPath "share/gnuradio/grc/blocks" extraPackages}
+        fi
+    done
+  '';
+
+  inherit (gnuradio) meta;
+}
diff --git a/nixpkgs/pkgs/applications/misc/go-jira/default.nix b/nixpkgs/pkgs/applications/misc/go-jira/default.nix
new file mode 100644
index 000000000000..b80ddb8f303f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/go-jira/default.nix
@@ -0,0 +1,22 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  name = "go-jira-${version}";
+  version = "1.0.17";
+
+  goPackagePath = "gopkg.in/Netflix-Skunkworks/go-jira.v1";
+
+  src = fetchgit {
+    rev = "v${version}";
+    url = "https://gopkg.in/Netflix-Skunkworks/go-jira.v1";
+    sha256 = "0ap5dzikp934mawigmv7ighajr5yxpck2gpnb2cmkc1p6qa6gn4v";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Simple command line client for Atlassian's Jira service written in Go";
+    homepage = "https://github.com/Netflix-Skunkworks/go-jira";
+    license = licenses.asl20;
+    maintainers = [ maintainers.carlosdagos ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
new file mode 100644
index 000000000000..01447281fe76
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl
+, qtbase, qtsvg, qtserialport, qtwebkit, qtmultimedia, qttools, qtconnectivity
+, 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 = "Application;Utility;";
+  };
+in stdenv.mkDerivation rec {
+  name = "golden-cheetah-${version}";
+  version = "3.4";
+  src = fetchurl {
+    name = "${name}.tar.gz";
+    url = "https://github.com/GoldenCheetah/GoldenCheetah/archive/V${version}.tar.gz";
+    sha256 = "0fiz2pj155cd357kph50lc6rjyzwp045glfv4y68qls9j7m9ayaf";
+  };
+  buildInputs = [
+    qtbase qtsvg qtserialport qtwebkit qtmultimedia qttools zlib
+    qtconnectivity
+  ];
+  nativeBuildInputs = [ flex makeWrapper qmake yacc ];
+  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
+    sed -i -e '21,23d' qwt/qwtconfig.pri # Removed forced installation to /usr/local
+  '';
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp src/GoldenCheetah $out/bin
+    wrapProgram $out/bin/GoldenCheetah --set LD_LIBRARY_PATH "${zlib.out}/lib"
+    install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/
+    install -Dm644 src/Resources/images/gc.png $out/share/pixmaps/goldencheetah.png
+
+    runHook postInstall
+  '';
+
+  # RCC: Error in 'Resources/application.qrc': Cannot find file 'translations/gc_fr.qm'
+  enableParallelBuilding = false;
+
+  meta = with stdenv.lib; {
+    description = "Performance software for cyclists, runners and triathletes";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.ocharles ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/goldendict/default.nix b/nixpkgs/pkgs/applications/misc/goldendict/default.nix
new file mode 100644
index 000000000000..42d5d83f7bdb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/goldendict/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libXtst, libvorbis, hunspell
+, libao, ffmpeg, libeb, lzo, xz, libtiff
+, qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmake }:
+stdenv.mkDerivation rec {
+
+  name = "goldendict-2018-06-13";
+  src = fetchFromGitHub {
+    owner = "goldendict";
+    repo = "goldendict";
+    rev = "48e850c7ec11d83cba7499f7fdce377ef3849bbb";
+    sha256 = "0i4q4waqjv45hgwillvjik97pg26kwlmz4925djjkx8s6hxgjlq9";
+  };
+
+  nativeBuildInputs = [ pkgconfig qmake ];
+  buildInputs = [
+    qtbase qtsvg qtwebkit qtx11extras qttools
+    libXtst libvorbis hunspell libao ffmpeg libeb lzo xz libtiff
+  ];
+
+  qmakeFlags = [ "CONFIG+=zim_support" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://goldendict.org/;
+    description = "A feature-rich dictionary lookup program";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ gebner astsmtl ];
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gollum/Gemfile b/nixpkgs/pkgs/applications/misc/gollum/Gemfile
new file mode 100644
index 000000000000..525f54838b75
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gollum/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'gollum'
diff --git a/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock b/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
new file mode 100644
index 000000000000..e6c66cba1e06
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
@@ -0,0 +1,68 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    charlock_holmes (0.7.6)
+    diff-lcs (1.3)
+    gemojione (3.3.0)
+      json
+    github-markup (1.7.0)
+    gitlab-grit (2.8.2)
+      charlock_holmes (~> 0.6)
+      diff-lcs (~> 1.1)
+      mime-types (>= 1.16)
+      posix-spawn (~> 0.3)
+    gollum (4.1.4)
+      gemojione (~> 3.2)
+      gollum-lib (~> 4.2, >= 4.2.10)
+      kramdown (~> 1.9.0)
+      mustache (>= 0.99.5, < 1.0.0)
+      sinatra (~> 1.4, >= 1.4.4)
+      useragent (~> 0.16.2)
+    gollum-grit_adapter (1.0.1)
+      gitlab-grit (~> 2.7, >= 2.7.1)
+    gollum-lib (4.2.10)
+      gemojione (~> 3.2)
+      github-markup (~> 1.6)
+      gollum-grit_adapter (~> 1.0)
+      nokogiri (>= 1.6.1, < 2.0)
+      rouge (~> 2.1)
+      sanitize (~> 2.1.1, >= 2.1.1)
+      stringex (~> 2.6)
+      twitter-text (= 1.14.7)
+    json (2.1.0)
+    kramdown (1.9.0)
+    mime-types (3.2.2)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2018.0812)
+    mini_portile2 (2.3.0)
+    mustache (0.99.8)
+    nokogiri (1.8.4)
+      mini_portile2 (~> 2.3.0)
+    posix-spawn (0.3.13)
+    rack (1.6.11)
+    rack-protection (1.5.5)
+      rack
+    rouge (2.2.1)
+    sanitize (2.1.1)
+      nokogiri (>= 1.4.4)
+    sinatra (1.4.8)
+      rack (~> 1.5)
+      rack-protection (~> 1.4)
+      tilt (>= 1.3, < 3)
+    stringex (2.8.4)
+    tilt (2.0.8)
+    twitter-text (1.14.7)
+      unf (~> 0.1.0)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.5)
+    useragent (0.16.10)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  gollum
+
+BUNDLED WITH
+   1.16.4
diff --git a/nixpkgs/pkgs/applications/misc/gollum/default.nix b/nixpkgs/pkgs/applications/misc/gollum/default.nix
new file mode 100644
index 000000000000..4a0a4e38a61b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gollum/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, bundlerEnv, ruby, makeWrapper
+, git }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "gollum";
+  # nix-shell -p bundix icu zlib
+  version = (import ./gemset.nix).gollum.version;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  env = bundlerEnv {
+    name = "${name}-gems";
+    inherit pname ruby;
+    gemdir = ./.;
+  };
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    makeWrapper ${env}/bin/gollum $out/bin/gollum \
+      --prefix PATH ":" ${stdenv.lib.makeBinPath [ git ]}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A simple, Git-powered wiki";
+    homepage = https://github.com/gollum/gollum;
+    license = licenses.mit;
+    maintainers = with maintainers; [ jgillich primeos ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gollum/gemset.nix b/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
new file mode 100644
index 000000000000..bb105805ca8e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
@@ -0,0 +1,230 @@
+{
+  charlock_holmes = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  diff-lcs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      type = "gem";
+    };
+    version = "1.3";
+  };
+  gemojione = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  github-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  gitlab-grit = {
+    dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xgs3l81ghlc5nm75n0pz7b2cj3hpscfq5iy27c483nnjn2v5mc4";
+      type = "gem";
+    };
+    version = "2.8.2";
+  };
+  gollum = {
+    dependencies = ["gemojione" "gollum-lib" "kramdown" "mustache" "sinatra" "useragent"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ik1b0f73lcxfwfml1h84dp6br79g0z9v6x54wvl46n9d1ndrhl7";
+      type = "gem";
+    };
+    version = "4.1.4";
+  };
+  gollum-grit_adapter = {
+    dependencies = ["gitlab-grit"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fcibm63v1afc0fj5rki0mm51m7nndil4cjcjjvkh3yigfn4nr4b";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  gollum-lib = {
+    dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex" "twitter-text"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1699wiir6f2a8yawk3qg0xn3zdc10mz783v53ri1ivfnzdrm3dvf";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  kramdown = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12sral2xli39mnr4b9m2sxdlgam4ni0a1mkxawc5311z107zj3p0";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  mime-types-data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+      type = "gem";
+    };
+    version = "3.2018.0812";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  mustache = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
+      type = "gem";
+    };
+    version = "0.99.8";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h9nml9h3m0mpvmh8jfnqvblnz5n5y3mmhgfc38avfmfzdrq9bgc";
+      type = "gem";
+    };
+    version = "1.8.4";
+  };
+  posix-spawn = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw";
+      type = "gem";
+    };
+    version = "0.3.13";
+  };
+  rack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g9926ln2lw12lfxm4ylq1h6nl0rafl10za3xvjzc87qvnqic87f";
+      type = "gem";
+    };
+    version = "1.6.11";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0my0wlw4a5l3hs79jkx2xzv7djhajgf8d28k8ai1ddlnxxb0v7ss";
+      type = "gem";
+    };
+    version = "1.5.5";
+  };
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02kpahk5nkc33yxnn75649kzxaz073wvazr2zyg491nndykgnvcs";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  sanitize = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12ip1d80r0dgc621qn7c32bk12xxgkkg3w6q21s1ckxivcd7r898";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  sinatra = {
+    dependencies = ["rack" "rack-protection" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0byxzl7rx3ki0xd7aiv1x8mbah7hzd8f81l65nq8857kmgzj1jqq";
+      type = "gem";
+    };
+    version = "1.4.8";
+  };
+  stringex = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c5dfrjzkskzfsdvwsviq4111rwwpbk9022nxwdidz014mky5vi1";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  tilt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
+      type = "gem";
+    };
+    version = "2.0.8";
+  };
+  twitter-text = {
+    dependencies = ["unf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1732h7hy1k152w8wfvjsx7b79alk45i5imwd37ia4qcx8hfm3gvg";
+      type = "gem";
+    };
+    version = "1.14.7";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
+      type = "gem";
+    };
+    version = "0.0.7.5";
+  };
+  useragent = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fv5kvq494swy0p17h9qya9r50w15xsi9zmvhzb8gh55kq6ki50p";
+      type = "gem";
+    };
+    version = "0.16.10";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/googleearth/default.nix b/nixpkgs/pkgs/applications/misc/googleearth/default.nix
new file mode 100644
index 000000000000..96f8cb116143
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/googleearth/default.nix
@@ -0,0 +1,97 @@
+{ stdenv, fetchurl, glibc, libGLU_combined, freetype, glib, libSM, libICE, libXi, libXv
+, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11
+, zlib, fontconfig, dpkg, libproxy, libxml2, gstreamer, 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_combined
+    libXrender
+    libXrandr
+    libXfixes
+    libXcursor
+    libXinerama
+    freetype
+    libXext
+    libX11
+    zlib
+    fontconfig
+    libproxy
+    libxml2
+    gstreamer
+    dbus
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+  ];
+in
+stdenv.mkDerivation rec {
+  name = "googleearth-${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
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/googler/default.nix b/nixpkgs/pkgs/applications/misc/googler/default.nix
new file mode 100644
index 000000000000..4b5c17d8e51b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/googler/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchFromGitHub, python}:
+
+stdenv.mkDerivation rec {
+  version = "3.7.1";
+  name = "googler-${version}";
+
+  src = fetchFromGitHub {
+    owner = "jarun";
+    repo = "googler";
+    rev = "v${version}";
+    sha256 = "0dcszpz85h3yjnr55ixf8mzsdv46w3g27frhgcsl5zlsgk6vl8kw";
+  };
+
+  propagatedBuildInputs = [ python ];
+
+  makeFlags = "PREFIX=$(out)";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/jarun/googler;
+    description = "Google Search, Google Site Search, Google News from the terminal";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ koral ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gosmore/default.nix b/nixpkgs/pkgs/applications/misc/gosmore/default.nix
new file mode 100644
index 000000000000..464e0ba53346
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gosmore/default.nix
@@ -0,0 +1,37 @@
+{ 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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch b/nixpkgs/pkgs/applications/misc/gosmore/pointer_int_comparison.patch
new file mode 100644
index 000000000000..4a715b6d8591
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/gpa/default.nix b/nixpkgs/pkgs/applications/misc/gpa/default.nix
new file mode 100644
index 000000000000..a48890144127
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix b/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix
new file mode 100644
index 000000000000..4143f6fde559
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gpg-mdp/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv, ncurses, gnupg }:
+
+let version = "0.7.4";
+in stdenv.mkDerivation {
+  # mdp renamed to gpg-mdp because there is a mdp package already.
+  name = "gpg-mdp-${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/nixpkgs/pkgs/applications/misc/gphoto2/default.nix b/nixpkgs/pkgs/applications/misc/gphoto2/default.nix
new file mode 100644
index 000000000000..5131e0739e73
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gphoto2/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, libgphoto2, libexif, popt, gettext
+, libjpeg, readline, libtool
+}:
+
+stdenv.mkDerivation rec {
+  name = "gphoto2-2.5.17";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gphoto/${name}.tar.bz2";
+    sha256 = "0kslwclyyzvnxjw3gdzhlagj7l5f8lba833ipr9s0s0c4hwi0mxa";
+  };
+
+  nativeBuildInputs = [ pkgconfig gettext libtool ];
+  buildInputs = [ libgphoto2 libexif popt libjpeg 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/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix b/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix
new file mode 100644
index 000000000000..7b23fca2121e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libtool, pkgconfig, libgphoto2, fuse, glib }:
+
+stdenv.mkDerivation rec {
+  name = "gphoto2fs-${version}";
+  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/nixpkgs/pkgs/applications/misc/gpsbabel/clang-4.patch b/nixpkgs/pkgs/applications/misc/gpsbabel/clang-4.patch
new file mode 100644
index 000000000000..6bd19ae60440
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gpsbabel/clang-4.patch
@@ -0,0 +1,22 @@
+diff --git a/bushnell.cc b/bushnell.cc
+index 8fa844d..40707c4 100644
+--- a/bushnell.cc
++++ b/bushnell.cc
+@@ -135,7 +135,7 @@ bushnell_get_icon_from_name(QString name)
+     name = "Waypoint";
+   }
+
+-  for (t = bushnell_icons; t->icon > 0; t++) {
++  for (t = bushnell_icons; t->icon != 0; t++) {
+     if (0 == name.compare(t->icon, Qt::CaseInsensitive)) {
+       return t->symbol;
+     }
+@@ -147,7 +147,7 @@ static const char*
+ bushnell_get_name_from_symbol(signed int s)
+ {
+   icon_mapping_t* t;
+-  for (t = bushnell_icons; t->icon > 0; t++) {
++  for (t = bushnell_icons; t->icon != 0; t++) {
+     if (s == t->symbol) {
+       return t->icon;
+     }
diff --git a/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix b/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
new file mode 100644
index 000000000000..0911fbace449
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
@@ -0,0 +1,78 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, which, IOKit, qtbase }:
+
+stdenv.mkDerivation rec {
+  name = "gpsbabel-${version}";
+  version = "1.5.4";
+
+  src = fetchFromGitHub {
+    owner = "gpsbabel";
+    repo = "gpsbabel";
+    rev = "gpsbabel_${lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "0v6wpp14zkfbarmksf9dn3wmpj1araxd7xi5xp7gpl7kafb9aiwi";
+  };
+
+  patches = [
+    ./clang-4.patch
+    (fetchpatch {
+      url = https://sources.debian.net/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip;
+      sha256 = "03fpsmlx1wc48d1j405zkzp8j64hcp0z72islf4mk1immql3ibcr";
+    })
+  ];
+
+  buildInputs = [ zlib qtbase which ]
+    ++ 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/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix b/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix
new file mode 100644
index 000000000000..e691c79d85c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gpscorrelate/default.nix
@@ -0,0 +1,50 @@
+{ fetchFromGitHub, stdenv, pkgconfig, exiv2, libxml2, gtk2
+, libxslt, docbook_xsl, docbook_xml_dtd_42 }:
+
+stdenv.mkDerivation rec {
+  name = "gpscorrelate-${version}";
+  version = "1.6.1";
+
+  src = fetchFromGitHub {
+    owner = "freefoote";
+    repo = "gpscorrelate";
+    rev = version;
+    sha256 = "1z0fc75rx7dl6nnydksa578qv116j2c2xs1czfiijzxjghx8njdj";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    exiv2 libxml2 gtk2
+    libxslt docbook_xsl 
+    docbook_xml_dtd_42
+  ];
+
+  patchPhase = ''
+    sed -i "Makefile" \
+        -es",^[[:blank:]]*prefix[[:blank:]]*=.*$,prefix = $out,g"
+  '';
+
+  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://github.com/freefoote/gpscorrelate;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gpsprune/default.nix b/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
new file mode 100644
index 000000000000..4f0c1864677c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
@@ -0,0 +1,43 @@
+{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jre8 }:
+
+stdenv.mkDerivation rec {
+  name = "gpsprune-${version}";
+  version = "19.2";
+
+  src = fetchurl {
+    url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
+    sha256 = "1q2kpkkh75b9l1x7fkmv88s8k84gzcdnrg5sgf8ih0zrp49lawg9";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre8 ];
+
+  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 ${jre8}/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/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix b/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
new file mode 100644
index 000000000000..1810d6d5c476
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, shared-mime-info, desktop-file-utils, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "gpx-viewer-${version}";
+  version = "0.4.0";
+
+  src = fetchurl {
+    url = "https://launchpad.net/gpx-viewer/trunk/${version}/+download/${name}.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" ];
+
+  nativeBuildInputs = [
+    intltool pkgconfig
+    shared-mime-info # For update-mime-database
+    desktop-file-utils # For update-desktop-database
+    wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
+  ];
+  buildInputs = with gnome3; [ gdl libchamplain defaultIconTheme ];
+
+  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/nixpkgs/pkgs/applications/misc/gpx/default.nix b/nixpkgs/pkgs/applications/misc/gpx/default.nix
new file mode 100644
index 000000000000..9fef93819492
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gpx/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "gpx-${version}";
+  version = "2.5.2";
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  src = fetchFromGitHub {
+    owner = "markwal";
+    repo = "GPX";
+    rev = version;
+    sha256 = "1yab269x8qyf7rd04vaxyqyjv4pzz9lp4sc4dwh927k23avr3rw5";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/gpxsee/default.nix b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
new file mode 100644
index 000000000000..50a81890789a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, qmake, qttools }:
+
+stdenv.mkDerivation rec {
+  name = "gpxsee-${version}";
+  version = "6.3";
+
+  src = fetchFromGitHub {
+    owner = "tumic0";
+    repo = "GPXSee";
+    rev = version;
+    sha256 = "0kbnmcis04kjqkd0msfjd8rdmdf23c71dpzx9wcpf2yadc9rv4c9";
+  };
+
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ qttools ];
+
+  preConfigure = ''
+    substituteInPlace src/config.h --replace /usr/share/gpxsee $out/share/gpxsee
+    lrelease lang/*.ts
+  '';
+
+  installPhase = ''
+    install -Dm755 GPXSee $out/bin/GPXSee
+    mkdir -p $out/share/gpxsee
+    cp -r pkg/csv $out/share/gpxsee/
+    cp -r pkg/maps $out/share/gpxsee/
+    mkdir -p $out/share/gpxsee/translations
+    cp -r lang/*.qm $out/share/gpxsee/translations
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gpxsee.org/;
+    description = "GPX viewer and analyzer";
+    longDescription = ''
+      GPXSee is a Qt-based GPS log file viewer and analyzer that supports GPX,
+      TCX, KML, FIT, IGC and NMEA files.
+    '';
+    license = licenses.gpl3;
+    maintainers = [ maintainers.womfoo ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gqrx/default.nix b/nixpkgs/pkgs/applications/misc/gqrx/default.nix
new file mode 100644
index 000000000000..f7c7ca5472e0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gqrx/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, cmake, qtbase, qtsvg, gnuradio, boost, gnuradio-osmosdr
+# drivers (optional):
+, rtl-sdr, hackrf
+, pulseaudioSupport ? true, libpulseaudio
+}:
+
+assert pulseaudioSupport -> libpulseaudio != null;
+
+stdenv.mkDerivation rec {
+  name = "gqrx-${version}";
+  version = "2.11.5";
+
+  src = fetchFromGitHub {
+    owner = "csete";
+    repo = "gqrx";
+    rev = "v${version}";
+    sha256 = "0q9i0dhd6blagxzk84pzqjq8n4ym3jc1mkkhygg8yncr4vq2saaf";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [
+    qtbase qtsvg gnuradio boost gnuradio-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 = http://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 the-kenny fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gramps/default.nix b/nixpkgs/pkgs/applications/misc/gramps/default.nix
new file mode 100644
index 000000000000..920bec56a9bc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gramps/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, gtk3, pythonPackages, intltool, gnome3,
+  pango, gobject-introspection, wrapGAppsHook,
+# Optional packages:
+ enableOSM ? true, osm-gps-map,
+ enableGraphviz ? true, graphviz,
+ enableGhostscript ? true, ghostscript
+ }:
+
+let
+  inherit (pythonPackages) python buildPythonApplication;
+in buildPythonApplication rec {
+  version = "5.0.0";
+  name = "gramps-${version}";
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+  buildInputs = [ intltool gtk3 gobject-introspection pango gnome3.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 = "056l4ihmd3gdsiv6wwv4ckgh8bfzd5nii6z4afsdn2nmjbj4hw9m";
+  };
+
+  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")/${name}.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;
+    maintainers = with maintainers; [ joncojonathan ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix b/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix
new file mode 100644
index 000000000000..00421a2e0334
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/green-pdfviewer/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, poppler, pkgconfig, gdk_pixbuf, SDL, gtk2 }:
+
+stdenv.mkDerivation rec {
+  name = "green-pdfviewer-${version}";
+  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/nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch b/nixpkgs/pkgs/applications/misc/green-pdfviewer/gdk-libs.patch
new file mode 100644
index 000000000000..cfcab32aac99
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix b/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
new file mode 100644
index 000000000000..a35079e91517
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gremlin-console/default.nix
@@ -0,0 +1,29 @@
+{ pkgs, fetchzip, stdenv, makeWrapper, openjdk }:
+
+stdenv.mkDerivation rec {
+  name = "gremlin-console-${version}";
+  version = "3.3.4";
+  src = fetchzip {
+    url = "http://www-eu.apache.org/dist/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
+    sha256 = "14xr0yqklmm4jvj1hnkj89lj83zzs2l1375ni0jbf12gy31jlb2w";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/grip/default.nix b/nixpkgs/pkgs/applications/misc/grip/default.nix
new file mode 100644
index 000000000000..cb407fca66cb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/grip/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, gtk2, glib, pkgconfig, libgnome, libgnomeui, vte
+, curl, cdparanoia, libid3tag, ncurses, libtool }:
+
+stdenv.mkDerivation rec {
+  name = "grip-3.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/grip/${name}.tar.gz";
+    sha256 = "1zb6zpq7qmn6bflbgfwisyg3vrjr23yi1c1kqvwndl1f0shr8qyl";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 glib libgnome libgnomeui vte curl cdparanoia
+    libid3tag ncurses libtool ];
+
+  hardeningDisable = [ "format" ];
+
+  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/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix b/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix
new file mode 100644
index 000000000000..7f3b3a8d6dc5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gsimplecal/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, automake, autoconf, pkgconfig, gtk3 }:
+
+stdenv.mkDerivation rec {
+  name = "gsimplecal-${version}";
+  version = "2.1";
+
+  src = fetchurl {
+    url = "https://github.com/dmedvinsky/gsimplecal/archive/v${version}.tar.gz";
+    sha256 = "1sa05ifjp41xipfspk5n6l3wzpzmp3i45q88l01p4l6k6drsq336";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix b/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix
new file mode 100644
index 000000000000..cf409b4c185f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gtk2fontsel/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, pkgconfig, gtk }:
+
+stdenv.mkDerivation rec {
+  version = "0.1";
+  name = "gtk2fontsel-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gtk2fontsel/${name}.tar.gz";
+    sha256 = "0s2sj19n8ys92q9832hkn36ld91bb4qavicc6nygkry6qdpkkmjw";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ stdenv gtk ];
+
+  preferLocalBuild = true;
+
+  meta = with stdenv.lib; {
+    description = "A font selection program for X11 using the GTK2 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/nixpkgs/pkgs/applications/misc/guake/default.nix b/nixpkgs/pkgs/applications/misc/guake/default.nix
new file mode 100644
index 000000000000..0541468345e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/guake/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, python3, gettext, gobject-introspection, wrapGAppsHook, glibcLocales
+, gtk3, keybinder3, libnotify, libutempter, vte }:
+
+let
+  version = "3.4.0";
+in python3.pkgs.buildPythonApplication rec {
+  name = "guake-${version}";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "Guake";
+    repo = "guake";
+    rev = version;
+    sha256 = "1j38z968ha8ij6wrgbwvr8ad930nvhybm9g7pf4s4zv6d3vln0vm";
+  };
+
+  nativeBuildInputs = [ gettext gobject-introspection wrapGAppsHook python3.pkgs.pip glibcLocales ];
+
+  buildInputs = [ gtk3 keybinder3 libnotify python3 vte ];
+
+  propagatedBuildInputs = with python3.pkgs; [ dbus-python pbr pycairo pygobject3 ];
+
+  LC_ALL = "en_US.UTF-8"; # fixes weird encoding error, see https://github.com/NixOS/nixpkgs/pull/38642#issuecomment-379727699
+
+  PBR_VERSION = version; # pbr needs either .git directory, sdist, or env var
+
+  postPatch = ''
+    # unnecessary /usr/bin/env in Makefile
+    # https://github.com/Guake/guake/pull/1285
+    substituteInPlace "Makefile" --replace "/usr/bin/env python3" "python3"
+  '';
+
+  makeFlags = [
+    "prefix=$(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;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.msteen ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gummi/default.nix b/nixpkgs/pkgs/applications/misc/gummi/default.nix
new file mode 100644
index 000000000000..6c84f3cbd326
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gummi/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, pkgs, makeWrapper
+, glib, gnome2, gnome3, gtk2-x11, gtkspell2, poppler
+, pkgconfig, intltool, autoreconfHook, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.6.6";
+  name = "gummi-${version}";
+
+  src = pkgs.fetchFromGitHub {
+    owner = "alexandervdm";
+    repo = "gummi";
+    rev = "${version}";
+    sha256 = "1vw8rhv8qj82l6l22kpysgm9mxilnki2kjmvxsnajbqcagr6s7cn";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig intltool autoreconfHook makeWrapper wrapGAppsHook
+  ];
+  buildInputs = [
+    glib gnome2.gtksourceview gnome2.pango gtk2-x11 gtkspell2 poppler
+    gnome3.defaultIconTheme
+  ];
+
+  preConfigure = ''
+    gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${pkgs.gnome2.gtksourceview}/share")
+  '';
+
+  postInstall = ''
+    install -Dpm644 COPYING $out/share/licenses/$name/COPYING
+  '';
+
+  meta = {
+    homepage = http://gummi.midnightcoding.org/;
+    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/nixpkgs/pkgs/applications/misc/gv/default.nix b/nixpkgs/pkgs/applications/misc/gv/default.nix
new file mode 100644
index 000000000000..f94f8f5dd707
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/gxmessage/default.nix b/nixpkgs/pkgs/applications/misc/gxmessage/default.nix
new file mode 100644
index 000000000000..8401386ead49
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gxmessage/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, gnome3, intltool, pkgconfig, texinfo, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "gxmessage-${version}";
+  version = "3.4.3";
+
+  src = fetchurl {
+    url = "http://homepages.ihug.co.nz/~trmusson/stuff/${name}.tar.gz";
+    sha256 = "db4e1655fc58f31e5770a17dfca4e6c89028ad8b2c8e043febc87a0beedeef05";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool gnome3.gtk texinfo hicolor-icon-theme ];
+
+  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/nixpkgs/pkgs/applications/misc/gxneur/default.nix b/nixpkgs/pkgs/applications/misc/gxneur/default.nix
new file mode 100644
index 000000000000..7d19a9cb1108
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gxneur/default.nix
@@ -0,0 +1,24 @@
+{ 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";
+  };
+
+  NIX_CFLAGS_COMPILE = "-Wno-deprecated-declarations";
+
+  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/nixpkgs/pkgs/applications/misc/hackrf/default.nix b/nixpkgs/pkgs/applications/misc/hackrf/default.nix
new file mode 100644
index 000000000000..81a66bf503c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hackrf/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, libusb, fftwSinglePrec }:
+
+stdenv.mkDerivation rec {
+  name = "hackrf-${version}";
+  version = "2018.01.1";
+
+  src = fetchFromGitHub {
+    owner = "mossmann";
+    repo = "hackrf";
+    rev = "v${version}";
+    sha256 = "0idh983xh6gndk9kdgx5nzz76x3mxb42b02c5xvdqahadsfx3b9w";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    cmake libusb 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 = http://greatscottgadgets.com/hackrf/;
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ sjmackenzie the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/hamster-time-tracker/default.nix b/nixpkgs/pkgs/applications/misc/hamster-time-tracker/default.nix
new file mode 100644
index 000000000000..453d95694eb0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hamster-time-tracker/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchzip, pythonPackages, docbook2x, libxslt, gnome-doc-utils
+, intltool, dbus-glib, gnome_python
+, hicolor-icon-theme
+, wafHook
+}:
+
+# TODO: Add optional dependency 'wnck', for "workspace tracking" support. Fixes
+# this message:
+#
+#   WARNING:root:Could not import wnck - workspace tracking will be disabled
+
+pythonPackages.buildPythonApplication rec {
+  name = "hamster-time-tracker-1.04";
+
+  src = fetchzip {
+    name = "${name}-src";
+    url = "https://github.com/projecthamster/hamster/archive/${name}.tar.gz";
+    sha256 = "1a85rcg561792kdyv744cgzw7mmpmgv6d6li1sijfdpqa1ninf8g";
+  };
+
+  nativeBuildInputs = [ wafHook ];
+  buildInputs = [
+    docbook2x libxslt gnome-doc-utils intltool dbus-glib hicolor-icon-theme
+  ];
+
+  propagatedBuildInputs = with pythonPackages; [ pygobject2 pygtk pyxdg gnome_python dbus-python ];
+
+  postFixup = ''
+    wrapPythonProgramsIn $out/lib/hamster-time-tracker "$out $pythonPath"
+  '';
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Time tracking application";
+    homepage = https://projecthamster.wordpress.com/;
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/haxor-news/default.nix b/nixpkgs/pkgs/applications/misc/haxor-news/default.nix
new file mode 100644
index 000000000000..1fa016627d4e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/haxor-news/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, python }:
+
+with python.pkgs;
+
+buildPythonApplication rec {
+  pname = "haxor-news";
+  version = "0.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5b9af8338a0f8b95a8133b66ef106553823813ac171c0aefa3f3f2dbeb4d7f88";
+  };
+
+  propagatedBuildInputs = [
+    click
+    colorama
+    requests
+    pygments
+    prompt_toolkit
+    six
+  ];
+
+  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; [ ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/misc/hdate/default.nix b/nixpkgs/pkgs/applications/misc/hdate/default.nix
new file mode 100644
index 000000000000..e2f5f653d47c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hdate/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "1.6.02";
+  name = "hdate-${version}";
+  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/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix b/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix
new file mode 100644
index 000000000000..ef378b2c5ffb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hello-unfree/default.nix
@@ -0,0 +1,23 @@
+{ stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "example-unfree-package-${version}";
+  version = "1.0";
+
+  phases = [ "installPhase" "fixupPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cat > $out/bin/hello-unfree << EOF
+    #!/bin/sh
+    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/nixpkgs/pkgs/applications/misc/hello/default.nix b/nixpkgs/pkgs/applications/misc/hello/default.nix
new file mode 100644
index 000000000000..c0a39d2d91d3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hello/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "hello-${version}";
+  version = "2.10";
+
+  src = fetchurl {
+    url = "mirror://gnu/hello/${name}.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/;
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.eelco ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/hivemind/default.nix b/nixpkgs/pkgs/applications/misc/hivemind/default.nix
new file mode 100644
index 000000000000..0431f35057be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hivemind/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "hivemind-${version}";
+  version = "1.0.4";
+  goPackagePath = "github.com/DarthSim/hivemind";
+
+  src = fetchFromGitHub {
+    owner = "DarthSim";
+    repo = "hivemind";
+    rev = "v${version}";
+    sha256 = "1z2izvyf0j3gi0cas5v22kkmkls03sg67182k8v3p6kwhzn0jw67";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/houdini/default.nix b/nixpkgs/pkgs/applications/misc/houdini/default.nix
new file mode 100644
index 000000000000..607dff293189
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/houdini/default.nix
@@ -0,0 +1,14 @@
+{ callPackage, buildFHSUserEnv, undaemonize }:
+
+let
+  houdini-runtime = callPackage ./runtime.nix { };
+in buildFHSUserEnv rec {
+  name = "houdini-${houdini-runtime.version}";
+
+  extraBuildCommands = ''
+    mkdir -p $out/usr/lib/sesi
+  '';
+
+  runScript = "${undaemonize}/bin/undaemonize ${houdini-runtime}/bin/houdini";
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/houdini/runtime.nix b/nixpkgs/pkgs/applications/misc/houdini/runtime.nix
new file mode 100644
index 000000000000..500f1df36a0c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/houdini/runtime.nix
@@ -0,0 +1,86 @@
+{ stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, libGL, alsaLib, dbus, xkeyboardconfig, bc }:
+
+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
+    ])
+  ];
+  license_dir = "~/.config/houdini";
+in
+stdenv.mkDerivation rec {
+  version = "17.0.352";
+  name = "houdini-runtime-${version}";
+  src = requireFile rec {
+    name = "houdini-${version}-linux_x86_64_gcc6.3.tar.gz";
+    sha256 = "0cl5fkgaplb0cvv7mli06ffc9j4ngpy8hl5zqabj3d645gcgafjg";
+    message = ''
+      This nix expression requires that ${name} is already part of the store.
+      Download it from https://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://sidefx.com;
+    license = stdenv.lib.licenses.unfree;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.canndrew ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/hovercraft/default.nix b/nixpkgs/pkgs/applications/misc/hovercraft/default.nix
new file mode 100644
index 000000000000..ba23078bba93
--- /dev/null
+++ b/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.6";
+  disabled = ! isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "regebro";
+    repo = "hovercraft";
+    rev = version;
+    sha256 = "150sn6kvqi2s89di1akl5i0g81fasji2ipr12zq5s4dcnhw4r5wp";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/hr/default.nix b/nixpkgs/pkgs/applications/misc/hr/default.nix
new file mode 100644
index 000000000000..6b0926db0476
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "hr-${version}";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "LuRsT";
+    repo = "hr";
+    rev = version;
+    sha256 = "162vkip2772jl59lschpinimpg4ssiyg7fq0va5cx4d7wldpqmks";
+  };
+
+  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 = [ ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/hstr/default.nix b/nixpkgs/pkgs/applications/misc/hstr/default.nix
new file mode 100644
index 000000000000..026cf9ecc14a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hstr/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, readline, ncurses }:
+
+stdenv.mkDerivation rec {
+  name    = "hstr-${version}";
+  version = "1.25";
+
+  src = fetchurl {
+    url = "https://github.com/dvorka/hstr/releases/download/${version}/hh-${version}-src.tgz";
+    sha256 = "10njj0a3s5czv497wk3whka3gxr7vmhabs12vaw7kgb07h4ssnhg";
+  };
+
+  buildInputs = [ readline ncurses ];
+
+  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 = with stdenv.lib.maintainers; [ ];
+    platforms = with stdenv.lib.platforms; linux; # Cannot test others
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/misc/hubstaff/default.nix b/nixpkgs/pkgs/applications/misc/hubstaff/default.nix
new file mode 100644
index 000000000000..2b6e58a6ab36
--- /dev/null
+++ b/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
+
+  version = "1.3.1-ff75f26";
+
+  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 {
+  name = "hubstaff-${version}";
+
+  src = fetchurl {
+    url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/${version}/Hubstaff-${version}.sh";
+    sha256 = "0jm5l34r6lkfkg8vsdfqbr0axngxznhagwcl9y184lnyji91fmdl";
+  };
+
+  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 = [ maintainers.michalrus ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/hugo/default.nix b/nixpkgs/pkgs/applications/misc/hugo/default.nix
new file mode 100644
index 000000000000..22badfc8cdd1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hugo/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "hugo-${version}";
+  version = "0.50";
+
+  goPackagePath = "github.com/gohugoio/hugo";
+
+  src = fetchFromGitHub {
+    owner  = "gohugoio";
+    repo   = "hugo";
+    rev    = "v${version}";
+    sha256 = "1shrw7pxwrz9g5x9bq6k5qvhn3fqmwznadpw7i07msh97p8b3dyn";
+  };
+
+  goDeps = ./deps.nix;
+
+  buildFlags = "-tags extended";
+
+  postInstall = ''
+    rm $bin/bin/generate
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A fast and modern static website engine.";
+    homepage = https://gohugo.io;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ schneefux ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/hugo/deps.nix b/nixpkgs/pkgs/applications/misc/hugo/deps.nix
new file mode 100644
index 000000000000..d5c24d69048a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/hugo/deps.nix
@@ -0,0 +1,722 @@
+[
+
+  {
+    goPackagePath = "github.com/BurntSushi/locker";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/locker";
+      rev = "a6e239ea1c69";
+      sha256 = "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev = "a368813c5e64";
+      sha256 = "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/PuerkitoBio/purell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/PuerkitoBio/purell";
+      rev = "v1.1.0";
+      sha256 = "0vsxyn1fbm7g873b8kf3hcsgqgncb5nmfq3zfsc35a9yhzarka91";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/PuerkitoBio/urlesc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/PuerkitoBio/urlesc";
+      rev = "de5bf2ad4578";
+      sha256 = "0n0srpqwbaan1wrhh2b7ysz543pjs1xw2rghvqyffg9l0g8kzgcw";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/alecthomas/assert";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/assert";
+      rev = "405dbfeb8e38";
+      sha256 = "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/alecthomas/chroma";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/chroma";
+      rev = "v0.5.0";
+      sha256 = "150jv4vhsdi1gj3liwkgicdrwnzgv5qkq2fwznlnzf64vmfb0b9f";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/alecthomas/colour";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/colour";
+      rev = "60882d9e2721";
+      sha256 = "0iq566534gbzkd16ixg7fk298wd766821vvs80838yifx9yml5vs";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/alecthomas/repr";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/repr";
+      rev = "117648cd9897";
+      sha256 = "05v1rgzdqc8razf702laagrvhvx68xd9yxxmzd3dyz0d6425pdrp";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/bep/debounce";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bep/debounce";
+      rev = "v1.1.0";
+      sha256 = "1sh4zv0hv7f454mhzpl2mbv7ar5rm00wyy5qr78x1h84bgph87wy";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/bep/gitmap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bep/gitmap";
+      rev = "v1.0.0";
+      sha256 = "0zqdl5h4ayi2gi5aqf35f1sjszhbcriksm2bf84fkrg7ngr48jn6";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/bep/go-tocss";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bep/go-tocss";
+      rev = "v0.5.0";
+      sha256 = "12q7h6nydklq4kg65kcgd85209rx7zf64ba6nf3k7y16knj4233q";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/chaseadamsio/goorgeous";
+    fetch = {
+      type = "git";
+      url = "https://github.com/chaseadamsio/goorgeous";
+      rev = "v1.1.0";
+      sha256 = "07qdqi46klizq3wigxqbiksnlgbrdc8hvmizgzg0aas5iqy88dcb";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/cpuguy83/go-md2man";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cpuguy83/go-md2man";
+      rev = "v1.0.8";
+      sha256 = "1w22dfdamsq63b5rvalh9k2y7rbwfkkjs7vm9vd4a13h2ql70lg2";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/danwakefield/fnmatch";
+    fetch = {
+      type = "git";
+      url = "https://github.com/danwakefield/fnmatch";
+      rev = "cbb64ac3d964";
+      sha256 = "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz";
+    };
+  }
+
+  {
+    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/disintegration/imaging";
+    fetch = {
+      type = "git";
+      url = "https://github.com/disintegration/imaging";
+      rev = "v1.5.0";
+      sha256 = "1laxccmzi7q51zxn81ringmdwp8iaipivrl375yc3gq56d70sp0r";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/dlclark/regexp2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dlclark/regexp2";
+      rev = "v1.1.6";
+      sha256 = "144s81ndviwhyy20ipxvvfvap8phv5p762glxrz6aqxprkxfarj5";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/eknkc/amber";
+    fetch = {
+      type = "git";
+      url = "https://github.com/eknkc/amber";
+      rev = "cdade1c07385";
+      sha256 = "152w97yckwncgw7lwjvgd8d00wy6y0nxzlvx72kl7nqqxs9vhxd9";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/fortytw2/leaktest";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fortytw2/leaktest";
+      rev = "v1.2.0";
+      sha256 = "1lf9l6zgzjbcc7hmcjhhg3blx0y8icyxvjmjqqwfbwdk502803ra";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/fsnotify/fsnotify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fsnotify/fsnotify";
+      rev = "v1.4.7";
+      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/gobwas/glob";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gobwas/glob";
+      rev = "v0.2.3";
+      sha256 = "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/gorilla/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/websocket";
+      rev = "v1.4.0";
+      sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/hashicorp/go-immutable-radix";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-immutable-radix";
+      rev = "v1.0.0";
+      sha256 = "1v3nmsnk1s8bzpclrhirz7iq0g5xxbw9q5gvrg9ss6w9crs72qr6";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/hashicorp/go-uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-uuid";
+      rev = "v1.0.0";
+      sha256 = "1jflywlani7583qm4ysph40hsgx3n66n5zr2k84i057fmwa1ypfy";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/hashicorp/golang-lru";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/golang-lru";
+      rev = "v0.5.0";
+      sha256 = "12k2cp2k615fjvfa5hyb9k2alian77wivds8s65diwshwv41939f";
+    };
+  }
+
+  {
+    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/jdkato/prose";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jdkato/prose";
+      rev = "v1.1.0";
+      sha256 = "1gjqgrpc7wbqvnhgwyfhxng24qvx37qjy0x2mbikiw1vaygxqsmy";
+    };
+  }
+
+  {
+    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/kyokomi/emoji";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kyokomi/emoji";
+      rev = "v1.5.1";
+      sha256 = "005rxyxlqcd2sfjn686xb52l11wn2w0g5jv042ka6pnsx24r812a";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/magefile/mage";
+    fetch = {
+      type = "git";
+      url = "https://github.com/magefile/mage";
+      rev = "v1.4.0";
+      sha256 = "177hzmmzhk7bcm3jj2cj6d5l9h5ql3cikvndhk4agkslrhwr3xka";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/magiconair/properties";
+    fetch = {
+      type = "git";
+      url = "https://github.com/magiconair/properties";
+      rev = "v1.8.0";
+      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/markbates/inflect";
+    fetch = {
+      type = "git";
+      url = "https://github.com/markbates/inflect";
+      rev = "a12c3aec81a6";
+      sha256 = "0mawr6z9nav4f5j0nmjdxg9lbfhr7wz8zi34g7b6wndmzyf8jbsd";
+    };
+  }
+
+  {
+    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/miekg/mmark";
+    fetch = {
+      type = "git";
+      url = "https://github.com/miekg/mmark";
+      rev = "v1.3.6";
+      sha256 = "0q2zrwa2vwk7a0zhmi000zpqrc01zssrj9c5n3573rg68fksg77m";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/mitchellh/hashstructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/hashstructure";
+      rev = "v1.0.0";
+      sha256 = "0zgl5c03ip2yzkb9b7fq9ml08i7j8prgd46ha1fcg8c6r7k9xl3i";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/mitchellh/mapstructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/mapstructure";
+      rev = "v1.0.0";
+      sha256 = "0f06q4fpzg0c370cvmpsl0iq2apl5nkbz5cd3nba5x5ysmshv1lm";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/muesli/smartcrop";
+    fetch = {
+      type = "git";
+      url = "https://github.com/muesli/smartcrop";
+      rev = "f6ebaa786a12";
+      sha256 = "0xbv5wbn0z36nkw9ay3ly6z23lpsrs0khryl1w54fz85lvwh66gp";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/nfnt/resize";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nfnt/resize";
+      rev = "83c6a9932646";
+      sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/nicksnyder/go-i18n";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nicksnyder/go-i18n";
+      rev = "v1.10.0";
+      sha256 = "1nlvq85c232z5yjs86pxpmkv7hk6gb5pa6j4hhzgdz85adk2ma04";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/olekukonko/tablewriter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/olekukonko/tablewriter";
+      rev = "d4647c9c7a84";
+      sha256 = "1274k5r9ardh1f6gsmadxmdds7zy8rkr55fb9swvnm0vazr3y01l";
+    };
+  }
+
+  {
+    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/russross/blackfriday";
+    fetch = {
+      type = "git";
+      url = "https://github.com/russross/blackfriday";
+      rev = "46c73eb196ba";
+      sha256 = "01z1jsdkac09cw95lqq4pahkw9xnini2mb956lvb772bby2x3dmj";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/sanity-io/litter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sanity-io/litter";
+      rev = "v1.1.0";
+      sha256 = "09nywwxxd6rmhxc7rsvs96ynjszmnvmhwr7dvh1n35hb6h9y7s2r";
+    };
+  }
+
+  {
+    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/shurcooL/sanitized_anchor_name";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/sanitized_anchor_name";
+      rev = "86672fcb3f95";
+      sha256 = "142m507s9971cl8qdmbcw7sqxnkgi3xqd8wzvfq15p0w7w8i4a3h";
+    };
+  }
+
+  {
+    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.3";
+      sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/spf13/fsync";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/fsync";
+      rev = "12a01e648f05";
+      sha256 = "1vvbgxbbsc4mvi1axgqgn9pzjz1p495dsmwpc7mr8qxh8f6s0nhv";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/spf13/jwalterweatherman";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/jwalterweatherman";
+      rev = "94f6ae3ed3bc";
+      sha256 = "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/spf13/nitro";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/nitro";
+      rev = "24d7ef30a12d";
+      sha256 = "143sbpx0jdgf8f8ayv51x6l4jg6cnv6nps6n60qxhx4vd90s6mib";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/spf13/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/pflag";
+      rev = "v1.0.2";
+      sha256 = "005598piihl3l83a71ahj10cpq9pbhjck4xishx1b4dzc02r9xr2";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/spf13/viper";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/viper";
+      rev = "v1.2.0";
+      sha256 = "0klv7dyllvv9jkyspy4ww5nrz24ngb3adlh884cbdjn7562bhi47";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev = "f2347ac6c9c9";
+      sha256 = "0ns8zc2n8gpcsd1fdaqbq7a8d939lnaxraqx5nr2fi2zdxqyh7hm";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/tdewolff/minify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/tdewolff/minify";
+      rev = "v2.3.6";
+      sha256 = "0p4v4ab49lm5y438k5aks06fpiagbjw2j2x7i8jaa273mkgicrbb";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/tdewolff/parse";
+    fetch = {
+      type = "git";
+      url = "https://github.com/tdewolff/parse";
+      rev = "fced451e0bed";
+      sha256 = "1n6wcapk8xbck2zjxd4l5cgfn1v12rr7znrdpd5y2xp1nc3739c3";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/tdewolff/test";
+    fetch = {
+      type = "git";
+      url = "https://github.com/tdewolff/test";
+      rev = "v1.0.0";
+      sha256 = "10vyp4bhanzg3yl9k8zqfdrxpsmx8yc53xv4lqxfymd7jjyqgssj";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/wellington/go-libsass";
+    fetch = {
+      type = "git";
+      url = "https://github.com/wellington/go-libsass";
+      rev = "615eaa47ef79";
+      sha256 = "0imjiskn4vq7nml5jwb1scgl61jg53cfpkjnb9rsc6m8gsd8s16s";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/yosssi/ace";
+    fetch = {
+      type = "git";
+      url = "https://github.com/yosssi/ace";
+      rev = "v0.0.5";
+      sha256 = "1kbvbc56grrpnl65grygd23gyn3nkkhxdg8awhzkjmd0cvki8w1f";
+    };
+  }
+
+  {
+    goPackagePath = "golang.org/x/image";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/image";
+      rev = "c73c2afc3b81";
+      sha256 = "1kkafy29vz5xf6r29ghbvvbwrgjxwxvzk6dsa2qhyp1ddk6l2vkz";
+    };
+  }
+
+  {
+    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 = "d0be0721c37e";
+      sha256 = "081wyvfnlf842dqg03raxfz6lldlxpmyh1prix9lmrrm65arxb12";
+    };
+  }
+
+  {
+    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 = "788fd7840127";
+      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
+    };
+  }
+
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "v2.2.1";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/misc/hyper/default.nix b/nixpkgs/pkgs/applications/misc/hyper/default.nix
new file mode 100644
index 000000000000..5e1626e12c57
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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 = "2.0.0";
+  name = "hyper-${version}";
+  src = fetchurl {
+    url = "https://github.com/zeit/hyper/releases/download/${version}/hyper_${version}_amd64.deb";
+    sha256 = "04241kjy65pnp5q9z901910rmvcx18x0qaqfl31i0l4c2xj83ws0";
+  };
+  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/nixpkgs/pkgs/applications/misc/icesl/default.nix b/nixpkgs/pkgs/applications/misc/icesl/default.nix
new file mode 100644
index 000000000000..c0c1faef09d2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/icesl/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchzip, freeglut, libXmu, libXi, libX11, libICE, libGLU_combined, libSM, libXext, dialog, makeWrapper }:
+let
+  lpath = stdenv.lib.makeLibraryPath [ libXmu libXi libX11 freeglut libICE libGLU_combined libSM libXext ];
+in
+stdenv.mkDerivation rec {
+  name = "iceSL-${version}";
+  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 = "IceSL is a 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/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix b/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix
new file mode 100644
index 000000000000..6e4fc2065885
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ikiwiki/default.nix
@@ -0,0 +1,91 @@
+{ stdenv, fetchurl, perl, gettext, makeWrapper, PerlMagick, YAML
+, TextMarkdown, URI, HTMLParser, HTMLScrubber, HTMLTemplate, TimeDate
+, CGISession, CGIFormBuilder, DBFile, LocaleGettext, RpcXML, XMLSimple
+, YAMLLibYAML, which, HTMLTree, AuthenPassphrase, NetOpenIDConsumer
+, LWPxParanoidAgent, CryptSSLeay
+, gitSupport ? false, git ? null
+, docutilsSupport ? false, python ? null, docutils ? null
+, monotoneSupport ? false, monotone ? null
+, bazaarSupport ? false, bazaar ? null
+, cvsSupport ? false, cvs ? null, cvsps ? null, Filechdir ? 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 -> (bazaar != null);
+assert cvsSupport -> (cvs != null && cvsps != null && Filechdir != null);
+assert subversionSupport -> (subversion != null);
+assert mercurialSupport -> (mercurial != null);
+
+let
+  name = "ikiwiki";
+  version = "3.20170111";
+
+  lib = stdenv.lib;
+in
+stdenv.mkDerivation {
+  name = "${name}-${version}";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/i/ikiwiki/${name}_${version}.tar.xz";
+    sha256 = "00d7yzv426fvqbhvzyafddv7fa6b4j2647b0wi371wd5yjj9j3sz";
+  };
+
+  buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
+    TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext
+    RpcXML XMLSimple PerlMagick YAML YAMLLibYAML which HTMLTree AuthenPassphrase
+    NetOpenIDConsumer LWPxParanoidAgent CryptSSLeay ]
+    ++ lib.optionals docutilsSupport [python docutils]
+    ++ lib.optionals gitSupport [git]
+    ++ lib.optionals monotoneSupport [monotone]
+    ++ lib.optionals bazaarSupport [bazaar]
+    ++ lib.optionals cvsSupport [cvs cvsps Filechdir]
+    ++ lib.optionals subversionSupport [subversion]
+    ++ lib.optionals mercurialSupport [mercurial];
+
+  patchPhase = ''
+    sed -i s@/usr/bin/perl@${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 : ${perl}/bin:$out/bin \
+      ${lib.optionalString gitSupport ''--prefix PATH : ${git}/bin \''}
+      ${lib.optionalString monotoneSupport ''--prefix PATH : ${monotone}/bin \''}
+      ${lib.optionalString bazaarSupport ''--prefix PATH : ${bazaar}/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.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 ];
+    broken = true; # https://ikiwiki.info/bugs/imagemagick_6.9.8_test_suite_failure/
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/img2pdf/default.nix b/nixpkgs/pkgs/applications/misc/img2pdf/default.nix
new file mode 100644
index 000000000000..c718d6c7bfd5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/img2pdf/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, python3Packages }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+  pname = "img2pdf";
+  version = "0.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07wxgn5khmy94zqqv8l84q9b3yy84ddvwr2f7j4pjycrj2gg7si8";
+  };
+
+  doCheck = false; # needs pdfrw
+
+  propagatedBuildInputs = [
+    pillow
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Convert images to PDF via direct JPEG inclusion";
+    homepage = https://gitlab.mister-muffin.de/josch/img2pdf;
+    license = licenses.lgpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.veprbl ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/inspectrum/default.nix b/nixpkgs/pkgs/applications/misc/inspectrum/default.nix
new file mode 100644
index 000000000000..e2232c4b2ec8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/inspectrum/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, cmake
+, boost
+, fftwFloat
+, qt5
+, gnuradio
+, liquid-dsp
+}:
+
+stdenv.mkDerivation rec {
+  name = "inspectrum-unstable-2017-05-31";
+
+  src = fetchFromGitHub {
+    owner = "miek";
+    repo = "inspectrum";
+    rev = "a89d1337efb31673ccb6a6681bb89c21894c76f7";
+    sha256 = "1fvnr8gca25i6s9mg9b2hyqs0zzr4jicw13mimc9dhrgxklrr1yv";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    cmake
+    qt5.qtbase
+    fftwFloat
+    boost
+    gnuradio
+    liquid-dsp
+  ];
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix b/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix
new file mode 100644
index 000000000000..d9bccee889ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ipmicfg/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "ipmicfg-${version}";
+  version = "1.29.0";
+  buildVersion = "181029";
+
+  src = fetchzip {
+    url = "ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_${version}_build.${buildVersion}.zip";
+    sha256 = "18nljs4xg6hffahyd0d5zlg1jhbwl7zr9ym925bkzwcnrkgqs2v3";
+    extraPostFetch = "chmod u+rwX,go-rwx+X $out/";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/ipmiview/default.nix b/nixpkgs/pkgs/applications/misc/ipmiview/default.nix
new file mode 100644
index 000000000000..b5fa9143ddbb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ipmiview/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, patchelf, makeWrapper, xorg, gcc, gcc-unwrapped }:
+
+stdenv.mkDerivation rec {
+   name = "IPMIView-${version}";
+   version = "2.14.0";
+   buildVersion = "180213";
+
+   src = fetchurl {
+    url = "ftp://ftp.supermicro.com/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
+    sha256 = "1wp22wm7smlsb25x0cck4p660cycfczxj381930crd1qrf68mw4h";
+  };
+
+   nativeBuildInputs = [ patchelf makeWrapper ];
+
+   buildPhase = with xorg; ''
+     patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/xawt/libmawt.so
+     patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM64.so
+     patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libXcursor libX11 libXext libXrender libXtst libXi ]}" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/javaws
+     patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java
+   '';
+
+   installPhase = ''
+     mkdir -p $out/bin
+     cp -R . $out/
+     makeWrapper $out/jre/bin/java $out/bin/IPMIView \
+       --prefix PATH : "$out/jre/bin" \
+       --add-flags "-jar $out/IPMIView20.jar"
+   '';
+
+   meta = with stdenv.lib; {
+    license = licenses.unfree;
+   };
+  }
diff --git a/nixpkgs/pkgs/applications/misc/iterm2/default.nix b/nixpkgs/pkgs/applications/misc/iterm2/default.nix
new file mode 100644
index 000000000000..fa2ac38d383b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/iterm2/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "iterm2-${version}";
+  version = "3.0.14";
+
+  src = fetchFromGitHub {
+    owner = "gnachman";
+    repo = "iTerm2";
+    rev = "v${version}";
+    sha256 = "03m0ja11w9910z96yi8fzq3436y8xl14q031rdb2w3sapjd54qrj";
+  };
+
+  patches = [ ./disable_updates.patch ];
+  postPatch = ''
+    sed -i -e 's/CODE_SIGN_IDENTITY = "Developer ID Application"/CODE_SIGN_IDENTITY = ""/g' ./iTerm2.xcodeproj/project.pbxproj
+  '';
+  makeFlagsArray = ["Deployment"];
+  installPhase = ''
+    mkdir -p "$out/Applications"
+    mv "build/Deployment/iTerm2.app" "$out/Applications/iTerm.app"
+  '';
+
+  meta = {
+    description = "A replacement for Terminal and the successor to iTerm";
+    homepage = https://www.iterm2.com/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/iterm2/disable_updates.patch b/nixpkgs/pkgs/applications/misc/iterm2/disable_updates.patch
new file mode 100644
index 000000000000..e717c58f30f1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix b/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix
new file mode 100644
index 000000000000..f24951624c58
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/j4-dmenu-desktop/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, dmenu }:
+
+stdenv.mkDerivation rec {
+  name    = "j4-dmenu-desktop-${version}";
+  version = "2.16";
+
+  src = fetchFromGitHub {
+    owner  = "enkore";
+    repo   = "j4-dmenu-desktop";
+    rev    = "r${version}";
+    sha256 = "0714cri8bwpimmiirhzrkbri4xi24k0za6i1aw94d3fnblk2dg9f";
+  };
+
+  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 = [ "-DNO_TESTS:BOOL=ON" ];
+
+  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   = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix b/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix
new file mode 100644
index 000000000000..ed8573b88507
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jbidwatcher/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, java }:
+
+stdenv.mkDerivation rec {
+  pname = "jbidwatcher";
+  version = "2.5.6";
+
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www.jbidwatcher.com/download/JBidwatcher-${version}.jar";
+    sha256 = "1cw59wh72w1zzibs8x64dma3jc4hry64wjksqs52nc3vpnf0fzfr";
+  };
+
+  buildInputs = [ java ];
+
+  jarfile = "$out/share/java/${pname}/JBidwatcher.jar";
+
+  unpackPhase = "true";
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    echo > "$out/bin/${pname}" "#!/bin/sh"
+    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/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile
new file mode 100644
index 000000000000..2d3446a81134
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile
@@ -0,0 +1,10 @@
+source "https://rubygems.org"
+gem "jekyll"
+# jekyll alone might be enough for most use-cases
+gem "rouge"
+gem "activesupport", "~> 4.2"
+gem "jekyll-avatar"
+gem "jekyll-mentions"
+gem "jekyll-seo-tag"
+gem "jekyll-sitemap"
+gem "jemoji"
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
new file mode 100644
index 000000000000..6841bc14c384
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
@@ -0,0 +1,99 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    activesupport (4.2.10)
+      i18n (~> 0.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
+      tzinfo (~> 1.1)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    colorator (1.1.0)
+    concurrent-ruby (1.1.1)
+    em-websocket (0.5.1)
+      eventmachine (>= 0.12.9)
+      http_parser.rb (~> 0.6.0)
+    eventmachine (1.2.7)
+    ffi (1.9.25)
+    forwardable-extended (2.6.0)
+    gemoji (3.0.0)
+    html-pipeline (2.8.4)
+      activesupport (>= 2)
+      nokogiri (>= 1.4)
+    http_parser.rb (0.6.0)
+    i18n (0.9.5)
+      concurrent-ruby (~> 1.0)
+    jekyll (3.8.5)
+      addressable (~> 2.4)
+      colorator (~> 1.0)
+      em-websocket (~> 0.5)
+      i18n (~> 0.7)
+      jekyll-sass-converter (~> 1.0)
+      jekyll-watch (~> 2.0)
+      kramdown (~> 1.14)
+      liquid (~> 4.0)
+      mercenary (~> 0.3.3)
+      pathutil (~> 0.9)
+      rouge (>= 1.7, < 4)
+      safe_yaml (~> 1.0)
+    jekyll-avatar (0.6.0)
+      jekyll (~> 3.0)
+    jekyll-mentions (1.4.1)
+      html-pipeline (~> 2.3)
+      jekyll (~> 3.0)
+    jekyll-sass-converter (1.5.2)
+      sass (~> 3.4)
+    jekyll-seo-tag (2.5.0)
+      jekyll (~> 3.3)
+    jekyll-sitemap (1.2.0)
+      jekyll (~> 3.3)
+    jekyll-watch (2.1.2)
+      listen (~> 3.0)
+    jemoji (0.10.1)
+      gemoji (~> 3.0)
+      html-pipeline (~> 2.2)
+      jekyll (~> 3.0)
+    kramdown (1.17.0)
+    liquid (4.0.1)
+    listen (3.1.5)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+      ruby_dep (~> 1.2)
+    mercenary (0.3.6)
+    mini_portile2 (2.3.0)
+    minitest (5.11.3)
+    nokogiri (1.8.5)
+      mini_portile2 (~> 2.3.0)
+    pathutil (0.16.2)
+      forwardable-extended (~> 2.6)
+    public_suffix (3.0.3)
+    rb-fsevent (0.10.3)
+    rb-inotify (0.9.10)
+      ffi (>= 0.5.0, < 2)
+    rouge (3.3.0)
+    ruby_dep (1.5.0)
+    safe_yaml (1.0.4)
+    sass (3.6.0)
+      sass-listen (~> 4.0.0)
+    sass-listen (4.0.0)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+    thread_safe (0.3.6)
+    tzinfo (1.2.5)
+      thread_safe (~> 0.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  activesupport (~> 4.2)
+  jekyll
+  jekyll-avatar
+  jekyll-mentions
+  jekyll-seo-tag
+  jekyll-sitemap
+  jemoji
+  rouge
+
+BUNDLED WITH
+   1.16.4
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix b/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
new file mode 100644
index 000000000000..d680f9255905
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -0,0 +1,326 @@
+{
+  activesupport = {
+    dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s12j8vl8vrxfngkdlz9g8bpz9akq1z42d57mx5r537b2pji8nr7";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  colorator = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bnr2dlj2a11qy3rwh6m1mv5419vy32j2axk3ln7bphyvwn7pli0";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  em-websocket = {
+    dependencies = ["eventmachine" "http_parser.rb"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  eventmachine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  ffi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+      type = "gem";
+    };
+    version = "1.9.25";
+  };
+  forwardable-extended = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  gemoji = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h85qpn2xbmsn8ssf2fqzlqg181j000m5z4l3g26r7vblncg162d";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  html-pipeline = {
+    dependencies = ["activesupport" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  "http_parser.rb" = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+      type = "gem";
+    };
+    version = "0.9.5";
+  };
+  jekyll = {
+    dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nn2sc308l2mz0yiall4r90l6vy67qp4sy9zapi73a948nd4a5k3";
+      type = "gem";
+    };
+    version = "3.8.5";
+  };
+  jekyll-avatar = {
+    dependencies = ["jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "124624r83pmn7sp2idnsph9m1bbdiha5jnza4ypna8w2inpih51p";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  jekyll-mentions = {
+    dependencies = ["html-pipeline" "jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hg1rlra12im62z5yml4rlll3icz1146hkcv98mk2a96fsgniwqf";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  jekyll-sass-converter = {
+    dependencies = ["sass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "008ikh5fk0n6ri54mylcl8jn0mq8p2nfyfqif2q3pp0lwilkcxsk";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  jekyll-seo-tag = {
+    dependencies = ["jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19yfr5i04gm50swbc6xxf4090z5z1v0kjfnvh695ydq1dkyx1csl";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  jekyll-sitemap = {
+    dependencies = ["jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xy93ysl1q8r4xhbnffycvsslja0dskh2z2pl1jnykwsy27dc89n";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  jekyll-watch = {
+    dependencies = ["listen"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s9ly83sp8albvgdff12xy2h4xd8lm6z2fah4lzmk2yvp85jzdzv";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  jemoji = {
+    dependencies = ["gemoji" "html-pipeline" "jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yjbgawzmlcppmlhz5sdhjim6ki0vh0vh07mbyf05qa4994ckihs";
+      type = "gem";
+    };
+    version = "0.10.1";
+  };
+  kramdown = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq";
+      type = "gem";
+    };
+    version = "1.17.0";
+  };
+  liquid = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bs9smxgj29s4k76zfj09f7mhd35qwm9zki1yqa4jfwiki8v97nw";
+      type = "gem";
+    };
+    version = "4.0.1";
+  };
+  listen = {
+    dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+      type = "gem";
+    };
+    version = "3.1.5";
+  };
+  mercenary = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+      type = "gem";
+    };
+    version = "5.11.3";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  pathutil = {
+    dependencies = ["forwardable-extended"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4";
+      type = "gem";
+    };
+    version = "0.16.2";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  rb-fsevent = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+      type = "gem";
+    };
+    version = "0.10.3";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+      type = "gem";
+    };
+    version = "0.9.10";
+  };
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  ruby_dep = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  safe_yaml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sass = {
+    dependencies = ["sass-listen"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18c6prbw9wl8bqhb2435pd9s0lzarl3g7xf8pmyla28zblvwxmyh";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  sass-listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/default.nix b/nixpkgs/pkgs/applications/misc/jekyll/default.nix
new file mode 100644
index 000000000000..ce3c318f6780
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jekyll/default.nix
@@ -0,0 +1,36 @@
+{ lib, bundlerEnv, ruby
+, withOptionalDependencies ? false
+}:
+
+# Bundix:
+# nix-shell -p bundix zlib
+bundlerEnv rec {
+  name = pname + "-" + version;
+  pname = "jekyll";
+  version = (import
+    (if withOptionalDependencies
+      then ./full/gemset.nix
+      else ./basic/gemset.nix))
+    .jekyll.version;
+
+  inherit ruby;
+  gemdir = if withOptionalDependencies
+    then ./full
+    else ./basic;
+
+  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/;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ primeos pesterhazy ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile
new file mode 100644
index 000000000000..aba5e06e3769
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile
@@ -0,0 +1,30 @@
+source "https://rubygems.org"
+gem "jekyll"
+gem "rouge"
+gem "activesupport", "~> 4.2"
+gem "jekyll-avatar"
+gem "jekyll-mentions"
+gem "jekyll-seo-tag"
+gem "jekyll-sitemap"
+gem "jemoji"
+# Optional dependencies:
+gem "coderay", "~> 1.1.0"
+gem "jekyll-coffeescript"
+#gem "jekyll-docs"
+gem "jekyll-feed", "~> 0.9"
+gem "jekyll-gist"
+gem "jekyll-paginate"
+gem "jekyll-redirect-from"
+gem "kramdown", "~> 1.14"
+gem "mime-types", "~> 3.0"
+gem "rdoc", RUBY_VERSION >= "2.2.2" ? "~> 6.0" : "~> 5.1"
+gem "tomlrb", "~> 1.2"
+
+platform :ruby, :mswin, :mingw, :x64_mingw do
+  gem "classifier-reborn", "~> 2.2.0"
+  gem "liquid-c", "~> 3.0"
+  gem "pygments.rb", "~> 1.0"
+  gem "rdiscount", "~> 2.0"
+  gem "redcarpet", "~> 3.2", ">= 3.2.3"
+  gem "yajl-ruby", "~> 1.3.1"
+end
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
new file mode 100644
index 000000000000..5fe2d1085001
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -0,0 +1,155 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    activesupport (4.2.10)
+      i18n (~> 0.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
+      tzinfo (~> 1.1)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    classifier-reborn (2.2.0)
+      fast-stemmer (~> 1.0)
+    coderay (1.1.2)
+    coffee-script (2.4.1)
+      coffee-script-source
+      execjs
+    coffee-script-source (1.11.1)
+    colorator (1.1.0)
+    concurrent-ruby (1.1.1)
+    em-websocket (0.5.1)
+      eventmachine (>= 0.12.9)
+      http_parser.rb (~> 0.6.0)
+    eventmachine (1.2.7)
+    execjs (2.7.0)
+    faraday (0.15.3)
+      multipart-post (>= 1.2, < 3)
+    fast-stemmer (1.0.2)
+    ffi (1.9.25)
+    forwardable-extended (2.6.0)
+    gemoji (3.0.0)
+    html-pipeline (2.8.4)
+      activesupport (>= 2)
+      nokogiri (>= 1.4)
+    http_parser.rb (0.6.0)
+    i18n (0.9.5)
+      concurrent-ruby (~> 1.0)
+    jekyll (3.8.5)
+      addressable (~> 2.4)
+      colorator (~> 1.0)
+      em-websocket (~> 0.5)
+      i18n (~> 0.7)
+      jekyll-sass-converter (~> 1.0)
+      jekyll-watch (~> 2.0)
+      kramdown (~> 1.14)
+      liquid (~> 4.0)
+      mercenary (~> 0.3.3)
+      pathutil (~> 0.9)
+      rouge (>= 1.7, < 4)
+      safe_yaml (~> 1.0)
+    jekyll-avatar (0.6.0)
+      jekyll (~> 3.0)
+    jekyll-coffeescript (1.1.1)
+      coffee-script (~> 2.2)
+      coffee-script-source (~> 1.11.1)
+    jekyll-feed (0.11.0)
+      jekyll (~> 3.3)
+    jekyll-gist (1.5.0)
+      octokit (~> 4.2)
+    jekyll-mentions (1.4.1)
+      html-pipeline (~> 2.3)
+      jekyll (~> 3.0)
+    jekyll-paginate (1.1.0)
+    jekyll-redirect-from (0.14.0)
+      jekyll (~> 3.3)
+    jekyll-sass-converter (1.5.2)
+      sass (~> 3.4)
+    jekyll-seo-tag (2.5.0)
+      jekyll (~> 3.3)
+    jekyll-sitemap (1.2.0)
+      jekyll (~> 3.3)
+    jekyll-watch (2.1.2)
+      listen (~> 3.0)
+    jemoji (0.10.1)
+      gemoji (~> 3.0)
+      html-pipeline (~> 2.2)
+      jekyll (~> 3.0)
+    kramdown (1.17.0)
+    liquid (4.0.1)
+    liquid-c (3.0.0)
+      liquid (>= 3.0.0)
+    listen (3.1.5)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+      ruby_dep (~> 1.2)
+    mercenary (0.3.6)
+    mime-types (3.2.2)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2018.0812)
+    mini_portile2 (2.3.0)
+    minitest (5.11.3)
+    multi_json (1.13.1)
+    multipart-post (2.0.0)
+    nokogiri (1.8.5)
+      mini_portile2 (~> 2.3.0)
+    octokit (4.13.0)
+      sawyer (~> 0.8.0, >= 0.5.3)
+    pathutil (0.16.2)
+      forwardable-extended (~> 2.6)
+    public_suffix (3.0.3)
+    pygments.rb (1.2.1)
+      multi_json (>= 1.0.0)
+    rb-fsevent (0.10.3)
+    rb-inotify (0.9.10)
+      ffi (>= 0.5.0, < 2)
+    rdiscount (2.2.0.1)
+    rdoc (6.0.4)
+    redcarpet (3.4.0)
+    rouge (3.3.0)
+    ruby_dep (1.5.0)
+    safe_yaml (1.0.4)
+    sass (3.6.0)
+      sass-listen (~> 4.0.0)
+    sass-listen (4.0.0)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+    sawyer (0.8.1)
+      addressable (>= 2.3.5, < 2.6)
+      faraday (~> 0.8, < 1.0)
+    thread_safe (0.3.6)
+    tomlrb (1.2.7)
+    tzinfo (1.2.5)
+      thread_safe (~> 0.1)
+    yajl-ruby (1.3.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  activesupport (~> 4.2)
+  classifier-reborn (~> 2.2.0)
+  coderay (~> 1.1.0)
+  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 (~> 1.14)
+  liquid-c (~> 3.0)
+  mime-types (~> 3.0)
+  pygments.rb (~> 1.0)
+  rdiscount (~> 2.0)
+  rdoc (~> 6.0)
+  redcarpet (~> 3.2, >= 3.2.3)
+  rouge
+  tomlrb (~> 1.2)
+  yajl-ruby (~> 1.3.1)
+
+BUNDLED WITH
+   1.16.4
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix b/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
new file mode 100644
index 000000000000..4e33cd6ccdcf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -0,0 +1,538 @@
+{
+  activesupport = {
+    dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s12j8vl8vrxfngkdlz9g8bpz9akq1z42d57mx5r537b2pji8nr7";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  classifier-reborn = {
+    dependencies = ["fast-stemmer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04nxmm5b7j7r0ij9pcpdr7xqpig559gfzrw042ycxcfyav2pv6ij";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  coderay = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  coffee-script = {
+    dependencies = ["coffee-script-source" "execjs"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  coffee-script-source = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xfshhlz808f8639wc88wgls1mww35sid8rd55vn0a4yqajf4vh9";
+      type = "gem";
+    };
+    version = "1.11.1";
+  };
+  colorator = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bnr2dlj2a11qy3rwh6m1mv5419vy32j2axk3ln7bphyvwn7pli0";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  em-websocket = {
+    dependencies = ["eventmachine" "http_parser.rb"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  eventmachine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  execjs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16hwxc8v0z6gkanckjhx0ffgqmzpc4ywz4dfhxpjlz2mbz8d5m52";
+      type = "gem";
+    };
+    version = "0.15.3";
+  };
+  fast-stemmer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0688clyk4xxh3kdb18vi089k90mca8ji5fwaknh3da5wrzcrzanh";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  ffi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+      type = "gem";
+    };
+    version = "1.9.25";
+  };
+  forwardable-extended = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  gemoji = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h85qpn2xbmsn8ssf2fqzlqg181j000m5z4l3g26r7vblncg162d";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  html-pipeline = {
+    dependencies = ["activesupport" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  "http_parser.rb" = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+      type = "gem";
+    };
+    version = "0.9.5";
+  };
+  jekyll = {
+    dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nn2sc308l2mz0yiall4r90l6vy67qp4sy9zapi73a948nd4a5k3";
+      type = "gem";
+    };
+    version = "3.8.5";
+  };
+  jekyll-avatar = {
+    dependencies = ["jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "124624r83pmn7sp2idnsph9m1bbdiha5jnza4ypna8w2inpih51p";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  jekyll-coffeescript = {
+    dependencies = ["coffee-script" "coffee-script-source"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06qf4j9f6ysjb4bq6gsdaiz2ksmhc5yb484v458ra3s6ybccqvvy";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  jekyll-feed = {
+    dependencies = ["jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11mlqqbkmddnyh8xfjv5k6v7c73bbi92w7vw4x1c9xvggxrjzicp";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  jekyll-gist = {
+    dependencies = ["octokit"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03wz9j6yq3552nzf4g71qrdm9pfdgbm68abml9sjjgiaan1n8ns9";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  jekyll-mentions = {
+    dependencies = ["html-pipeline" "jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hg1rlra12im62z5yml4rlll3icz1146hkcv98mk2a96fsgniwqf";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  jekyll-paginate = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  jekyll-redirect-from = {
+    dependencies = ["jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08xfd7fvqcq6skybxsn4d60rqn4ws2y9hkhl71wz9zrc55xhgxa4";
+      type = "gem";
+    };
+    version = "0.14.0";
+  };
+  jekyll-sass-converter = {
+    dependencies = ["sass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "008ikh5fk0n6ri54mylcl8jn0mq8p2nfyfqif2q3pp0lwilkcxsk";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  jekyll-seo-tag = {
+    dependencies = ["jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19yfr5i04gm50swbc6xxf4090z5z1v0kjfnvh695ydq1dkyx1csl";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  jekyll-sitemap = {
+    dependencies = ["jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xy93ysl1q8r4xhbnffycvsslja0dskh2z2pl1jnykwsy27dc89n";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  jekyll-watch = {
+    dependencies = ["listen"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s9ly83sp8albvgdff12xy2h4xd8lm6z2fah4lzmk2yvp85jzdzv";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  jemoji = {
+    dependencies = ["gemoji" "html-pipeline" "jekyll"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yjbgawzmlcppmlhz5sdhjim6ki0vh0vh07mbyf05qa4994ckihs";
+      type = "gem";
+    };
+    version = "0.10.1";
+  };
+  kramdown = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq";
+      type = "gem";
+    };
+    version = "1.17.0";
+  };
+  liquid = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bs9smxgj29s4k76zfj09f7mhd35qwm9zki1yqa4jfwiki8v97nw";
+      type = "gem";
+    };
+    version = "4.0.1";
+  };
+  liquid-c = {
+    dependencies = ["liquid"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a5n7q314ma32y7v9a1g6ps60b14zfn2q4nip4j5aknblz51v7gi";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  listen = {
+    dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+      type = "gem";
+    };
+    version = "3.1.5";
+  };
+  mercenary = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  mime-types-data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+      type = "gem";
+    };
+    version = "3.2018.0812";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+      type = "gem";
+    };
+    version = "5.11.3";
+  };
+  multi_json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  multipart-post = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  octokit = {
+    dependencies = ["sawyer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yh0yzzqg575ix3y2l2261b9ag82gv2v4f1wczdhcmfbxcz755x6";
+      type = "gem";
+    };
+    version = "4.13.0";
+  };
+  pathutil = {
+    dependencies = ["forwardable-extended"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4";
+      type = "gem";
+    };
+    version = "0.16.2";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  "pygments.rb" = {
+    dependencies = ["multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lbvnwvz770ambm4d6lxgc2097rydn5rcc5d6986bnkzyxfqqjnv";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  rb-fsevent = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+      type = "gem";
+    };
+    version = "0.10.3";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+      type = "gem";
+    };
+    version = "0.9.10";
+  };
+  rdiscount = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1arvk3k06prxasq1djbj065ixar4zl171340g7wr1ww4gj9makx3";
+      type = "gem";
+    };
+    version = "2.2.0.1";
+  };
+  rdoc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7";
+      type = "gem";
+    };
+    version = "6.0.4";
+  };
+  redcarpet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  ruby_dep = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  safe_yaml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sass = {
+    dependencies = ["sass-listen"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18c6prbw9wl8bqhb2435pd9s0lzarl3g7xf8pmyla28zblvwxmyh";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  sass-listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tomlrb = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x3bg9mmma1gsl5j5kc9m8m77w6qwcq6ix2d0kwi5rcwpr7siyx6";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  yajl-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rn4kc9fha990yd252wglh6rcyh35cavm1vpyfj8krlcwph09g30";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/update.sh b/nixpkgs/pkgs/applications/misc/jekyll/update.sh
new file mode 100755
index 000000000000..528f1062c733
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/jgmenu/default.nix b/nixpkgs/pkgs/applications/misc/jgmenu/default.nix
new file mode 100644
index 000000000000..b868808ec3dc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jgmenu/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, pkgconfig, python3Packages, pango, librsvg, libxml2, menu-cache, xorg }:
+
+stdenv.mkDerivation rec {
+  name = "jgmenu-${version}";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "johanmalm";
+    repo = "jgmenu";
+    rev = "v${version}";
+    sha256 = "0hnxzy5mm5z6r9gaimfsf7kbpr23khck2fhh3j8bk2lkp53420fz";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    python3Packages.wrapPython
+  ];
+
+  buildInputs = [
+    pango
+    librsvg
+    libxml2
+    menu-cache
+    xorg.libXinerama
+  ];
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  postFixup = ''
+    wrapPythonProgramsIn "$out/lib/jgmenu"
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/jigdo/default.nix b/nixpkgs/pkgs/applications/misc/jigdo/default.nix
new file mode 100644
index 000000000000..3561fcde839d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch b/nixpkgs/pkgs/applications/misc/jigdo/sizewidth.patch
new file mode 100644
index 000000000000..17b1749fcf77
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/josm/default.nix b/nixpkgs/pkgs/applications/misc/josm/default.nix
new file mode 100644
index 000000000000..847ac3e299c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/josm/default.nix
@@ -0,0 +1,44 @@
+{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jdk11 }:
+
+stdenv.mkDerivation rec {
+  name = "josm-${version}";
+  version = "14460";
+
+  src = fetchurl {
+    url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
+    sha256 = "1j95319dvj4cwi1af94n1p8m1z1191j1jx6x06l4vz8bcjxaaqf5";
+  };
+
+  buildInputs = [ jdk11 makeWrapper ];
+
+  desktopItem = makeDesktopItem {
+    name = "josm";
+    exec = "josm";
+    icon = "josm";
+    desktopName = "JOSM";
+    genericName = "OpenStreetMap Editor";
+    comment = meta.description;
+    categories = "Education;Geoscience;Maps;";
+  };
+
+  buildCommand = ''
+    mkdir -p $out/bin $out/share/java
+    cp -v $src $out/share/java/josm.jar
+
+    makeWrapper ${jdk11}/bin/java $out/bin/josm \
+      --add-flags "-jar $out/share/java/josm.jar"
+
+    mkdir -p $out/share/applications
+    cp $desktopItem/share/applications"/"* $out/share/applications
+    mkdir -p $out/share/pixmaps
+    ${unzip}/bin/unzip -p $src images/logo_48x48x32.png > $out/share/pixmaps/josm.png
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An extensible editor for OpenStreetMap";
+    homepage = https://josm.openstreetmap.de/;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.rycee ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/jp2a/default.nix b/nixpkgs/pkgs/applications/misc/jp2a/default.nix
new file mode 100644
index 000000000000..138ee397d3fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/jp2a/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libjpeg, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  version = "1.0.7";
+  name = "jp2a-${version}";
+
+  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/nixpkgs/pkgs/applications/misc/jrnl/default.nix b/nixpkgs/pkgs/applications/misc/jrnl/default.nix
new file mode 100644
index 000000000000..30e36c3dcf0f
--- /dev/null
+++ b/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 argparse 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/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix b/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix
new file mode 100644
index 000000000000..8f69abd3a987
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix
@@ -0,0 +1,119 @@
+{ stdenv, fetchzip, fetchurl, fetchpatch, cmake, pkgconfig
+, zlib, libpng, openjpeg
+, enableGSL ? true, gsl
+, enableGhostScript ? true, ghostscript
+, enableMuPDF ? true, mupdf
+, enableJPEG2K ? true, jasper
+, enableDJVU ? true, djvulibre
+, enableGOCR ? false, gocr # Disabled by default due to crashes
+, enableTesseract ? true, leptonica, tesseract
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "k2pdfopt-${version}";
+  version = "2.42";
+
+  src = fetchzip {
+    url = "http://www.willus.com/k2pdfopt/src/k2pdfopt_v${version}_src.zip";
+    sha256 = "1zag4jmkr0qrcpqqb5davmvdrabhdyz87q4zz0xpfkl6xw2dn9bk";
+  };
+
+  patches = [ ./k2pdfopt.patch ];
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs =
+  let
+    mupdf_modded = mupdf.overrideAttrs (attrs: {
+      name = "mupdf-1.10a";
+      version = "1.10a";
+      src = fetchurl {
+        url = "https://mupdf.com/downloads/archive/mupdf-1.10a-source.tar.gz";
+        sha256 = "0dm8wcs8i29aibzkqkrn8kcnk4q0kd1v66pg48h5c3qqp4v1zk5a";
+      };
+      # Excluded the pdf-*.c files, since they mostly just broke the #includes
+      prePatch = ''
+        cp ${src}/mupdf_mod/{font,stext-device,string}.c source/fitz/
+        cp ${src}/mupdf_mod/font-win32.c source/pdf/
+      '';
+      # Patches from previous 1.10a version in nixpkgs
+      patches = [
+        # Compatibility with new openjpeg
+        ./load-jpx.patch
+
+        (fetchurl {
+         name = "CVE-2017-5896.patch";
+         url = "http://git.ghostscript.com/?p=mupdf.git;a=patch;h=2c4e5867ee699b1081527bc6c6ea0e99a35a5c27";
+         sha256 = "14k7x47ifx82sds1c06ibzbmcparfg80719jhgwjk6w1vkh4r693";
+        })
+
+        (fetchpatch {
+          name = "mupdf-1.10a-shared_libs-1.patch";
+          url = "https://ftp.osuosl.org/pub/blfs/conglomeration/mupdf/mupdf-1.10a-shared_libs-1.patch";
+          sha256 = "0kg4vahp7hlyyj5hl18brk8s8xcbqrx19pqjzkfq6ha8mqa3k4ab";
+        })
+      ];
+
+      # Override this since the jpeg directory was renamed libjpeg in mupdf 1.11
+      preConfigure = ''
+        # Don't remove mujs because upstream version is incompatible
+        rm -rf thirdparty/{curl,freetype,glfw,harfbuzz,jbig2dec,jpeg,openjpeg,zlib}
+      '';
+      postPatch = let
+        # OpenJPEG version is hardcoded in package source
+        openJpegVersion = with stdenv;
+          lib.concatStringsSep "." (lib.lists.take 2
+          (lib.splitString "." (lib.getVersion openjpeg)));
+        in ''
+          sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
+        '';
+    });
+    leptonica_modded = leptonica.overrideAttrs (attrs: {
+      prePatch = ''
+        cp ${src}/leptonica_mod/* src/
+      '';
+    });
+    tesseract_modded = tesseract.override {
+      tesseractBase = tesseract.tesseractBase.overrideAttrs (_: {
+        prePatch = ''
+          cp ${src}/tesseract_mod/{ambigs.cpp,ccutil.h,ccutil.cpp} ccutil/
+          cp ${src}/tesseract_mod/dawg.cpp api/
+          cp ${src}/tesseract_mod/{imagedata.cpp,tessdatamanager.cpp} ccstruct/
+          cp ${src}/tesseract_mod/openclwrapper.h opencl/
+          cp ${src}/tesseract_mod/{tessedit.cpp,thresholder.cpp} ccmain/
+          cp ${src}/tesseract_mod/tess_lang_mod_edge.h cube/
+          cp ${src}/tesseract_mod/tesscapi.cpp api/
+          cp ${src}/include_mod/{tesseract.h,leptonica.h} api/
+        '';
+        patches = [ ./tesseract.patch ];
+      });
+    };
+  in
+    [ zlib libpng ] ++
+    optional enableGSL gsl ++
+    optional enableGhostScript ghostscript ++
+    optional enableMuPDF mupdf_modded ++
+    optional enableJPEG2K jasper ++
+    optional enableDJVU djvulibre ++
+    optional enableGOCR gocr ++
+    optionals enableTesseract [ leptonica_modded tesseract_modded ];
+
+  dontUseCmakeBuildDir = true;
+
+  cmakeFlags = [ "-DCMAKE_C_FLAGS=-I${src}/include_mod" ];
+
+  installPhase = ''
+    install -D -m 755 k2pdfopt $out/bin/k2pdfopt
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
new file mode 100644
index 000000000000..cf7e4896b803
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
@@ -0,0 +1,99 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4a2378b..502c477 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -52,6 +52,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
+@@ -66,8 +67,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)
+@@ -80,7 +85,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)
+ 
+@@ -91,9 +96,25 @@ if(DJVU_FOUND)
+   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${DJVU_LDFLAGS})
+ endif(DJVU_FOUND)
+ 
+-# HAVE_GOCR_LIB
+-# HAVE_LEPTONICA_LIB
+-# HAVE_TESSERACT_LIB
++find_library(GOCR_LIB NAMES Pgm2asc)
++if(GOCR_LIB)
++  set(HAVE_GOCR_LIB 1)
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GOCR_LIB})
++endif(GOCR_LIB)
++
++pkg_check_modules(LEPTONICA lept)
++if(LEPTONICA_FOUND)
++  set(HAVE_LEPTONICA_LIB 1)
++  include_directories(SYSTEM ${LEPTONICA_INCLUDEDIR})
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${LEPTONICA_LDFLAGS})
++endif(LEPTONICA_FOUND)
++
++pkg_check_modules(TESSERACT tesseract)
++if(TESSERACT_FOUND)
++  set(HAVE_TESSERACT_LIB 1)
++  include_directories(SYSTEM ${TESSERACT_INCLUDEDIR})
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${TESSERACT_LDFLAGS})
++endif(TESSERACT_FOUND)
+ 
+ # ---- Describe project
+ 
+diff --git a/willuslib/CMakeLists.txt b/willuslib/CMakeLists.txt
+index 463bbc9..8043db5 100644
+--- a/willuslib/CMakeLists.txt
++++ b/willuslib/CMakeLists.txt
+@@ -6,7 +6,7 @@ include_directories(..)
+ set(WILLUSLIB_SRC
+     ansi.c array.c bmp.c bmpdjvu.c bmpmupdf.c dtcompress.c filelist.c
+     fontdata.c fontrender.c gslpolyfit.c linux.c math.c mem.c ocr.c
+-    ocrjocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
++    ocrgocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
+     token.c wfile.c wgs.c wgui.c willusversion.c win.c winbmp.c
+     wincomdlg.c winmbox.c winshell.c wmupdf.c wmupdfinfo.c wpdf.c wsys.c
+     wzfile.c wleptonica.c
+diff --git a/willuslib/ocrgocr.c b/willuslib/ocrgocr.c
+index 6027e9a..fbe10f0 100644
+--- a/willuslib/ocrgocr.c
++++ b/willuslib/ocrgocr.c
+@@ -29,6 +29,8 @@
+ #ifdef HAVE_GOCR_LIB
+ #include <gocr.h>
+ 
++job_t *OCR_JOB;
++
+ /*
+ ** bmp8 must be grayscale
+ ** (x1,y1) and (x2,y2) from top left of bitmap
+@@ -63,6 +65,7 @@ void gocr_single_word_from_bmp8(char *text,int maxlen,WILLUSBITMAP *bmp8,
+     h=y2-y1+1;
+     dh=h+bw*2;
+     job=&_job;
++    OCR_JOB=job;
+     job_init(job);
+     job_init_image(job);
+     // willus_mem_alloc_warn((void **)&job->src.p.p,w*h,funcname,10);
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/load-jpx.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/load-jpx.patch
new file mode 100644
index 000000000000..02a3799d040a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/k2pdfopt/load-jpx.patch
@@ -0,0 +1,29 @@
+--- a/source/fitz/load-jpx.c
++++ b/source/fitz/load-jpx.c
+@@ -484,12 +484,16 @@
+ /* Without the definition of OPJ_STATIC, compilation fails on windows
+  * due to the use of __stdcall. We believe it is required on some
+  * linux toolchains too. */
++#ifdef __cplusplus
++extern "C"
++{
+ #define OPJ_STATIC
+ #ifndef _MSC_VER
+ #define OPJ_HAVE_STDINT_H
+ #endif
++#endif
+ 
+-#include <openjpeg.h>
++#include <openjpeg-__OPENJPEG__VERSION__/openjpeg.h>
+ 
+ /* OpenJPEG does not provide a safe mechanism to intercept
+  * allocations. In the latest version all allocations go
+@@ -971,4 +975,8 @@
+ 	fz_drop_pixmap(ctx, img);
+ }
+ 
++#ifdef __cplusplus
++}
++#endif
++
+ #endif /* HAVE_LURATECH */
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/tesseract.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/tesseract.patch
new file mode 100644
index 000000000000..4827daa1a905
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/k2pdfopt/tesseract.patch
@@ -0,0 +1,13 @@
+diff --git a/api/Makefile.am b/api/Makefile.am
+index d8c1e54..46ead13 100644
+--- a/api/Makefile.am
++++ b/api/Makefile.am
+@@ -42,7 +42,7 @@ libtesseract_api_la_CPPFLAGS = $(AM_CPPFLAGS)
+ if VISIBILITY
+ libtesseract_api_la_CPPFLAGS += -DTESS_EXPORTS
+ endif
+-libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp
++libtesseract_api_la_SOURCES = baseapi.cpp capi.cpp renderer.cpp pdfrenderer.cpp tesscapi.cpp
+ 
+ lib_LTLIBRARIES += libtesseract.la
+ libtesseract_la_LDFLAGS = 
diff --git a/nixpkgs/pkgs/applications/misc/kanboard/default.nix b/nixpkgs/pkgs/applications/misc/kanboard/default.nix
new file mode 100644
index 000000000000..7995c8875b82
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kanboard/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "kanboard-${version}";
+  version = "1.0.48";
+
+  src = fetchzip {
+    url = "https://github.com/kanboard/kanboard/releases/download/v${version}/${name}.zip";
+    sha256 = "0ipyijlfcnfqlz9n20wcnaf9pw404a675x404pm9h2n4ld8x6m5v";
+  };
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/kdbplus/default.nix b/nixpkgs/pkgs/applications/misc/kdbplus/default.nix
new file mode 100644
index 000000000000..b518481e29ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kdbplus/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, requireFile, unzip, rlwrap, bash }:
+
+assert (stdenv.hostPlatform.system == "i686-linux");
+
+let
+  libPath = stdenv.lib.makeLibraryPath
+    [ stdenv.cc.libc stdenv.cc.cc ];
+in
+stdenv.mkDerivation rec {
+  name    = "kdbplus-${version}";
+  version = "3.3";
+
+  src = requireFile {
+    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/linux.zip" in
+      the directory where you saved it. Note you need version 3.3.
+    '';
+    name   = "linux.zip";
+    sha256 = "5fd0837599e24f0f437a8314510888a86ab0787684120a8fcf592299800aa940";
+  };
+
+  dontStrip = true;
+  buildInputs = [ unzip ];
+
+  phases = "unpackPhase installPhase";
+  unpackPhase = "mkdir ${name} && cd ${name} && 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/nixpkgs/pkgs/applications/misc/kdeconnect/default.nix b/nixpkgs/pkgs/applications/misc/kdeconnect/default.nix
new file mode 100644
index 000000000000..d15926ba6fb7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kdeconnect/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, lib
+, fetchurl
+, extra-cmake-modules
+, kcmutils
+, kconfigwidgets
+, kdbusaddons
+, kdoctools
+, kiconthemes
+, ki18n
+, knotifications
+, qca-qt5
+, libfakekey
+, libXtst
+, qtx11extras
+, sshfs
+, makeWrapper
+, kwayland
+}:
+
+stdenv.mkDerivation rec {
+  pname = "kdeconnect";
+  version = "1.3.3";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/src/${pname}-kde-${version}.tar.xz";
+    sha256 = "1vac0mw1myrswr61adv7lgif0c4wzw5wnsj0sqxj6msp4l4pfgsg";
+  };
+
+  buildInputs = [
+    libfakekey libXtst
+    ki18n kiconthemes kcmutils kconfigwidgets kdbusaddons knotifications
+    qca-qt5 qtx11extras makeWrapper kwayland
+  ];
+
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+
+  postInstall = ''
+    wrapProgram $out/lib/libexec/kdeconnectd --prefix PATH : ${lib.makeBinPath [ sshfs ]}
+  '';
+
+  enableParallelBuilding = true;
+
+  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/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix b/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
new file mode 100644
index 000000000000..80bf5deceb16
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepass-plugins/keeagent/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildEnv, fetchzip, mono }:
+
+let
+  version = "0.10.1";
+  drv = stdenv.mkDerivation {
+    name = "keeagent-${version}";
+
+    src = fetchzip {
+      url = "https://lechnology.com/wp-content/uploads/2018/04/KeeAgent_v0.10.1.zip";
+      sha256 = "0j7az6l9wcr8z66mfplkxwydd4bgz2p2vd69xncf0nxlfb0lshh7";
+      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/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix b/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix
new file mode 100644
index 000000000000..e64632d529b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepass-plugins/keepasshttp/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildEnv, fetchFromGitHub, mono }:
+
+let
+  version = "1.8.4.2";
+  drv = stdenv.mkDerivation {
+    name = "keepasshttp-${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/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix b/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
new file mode 100644
index 000000000000..b45cb24b1b51
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepass-plugins/keepassrpc/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildEnv, fetchurl, mono }:
+
+let
+  version = "1.8.0";
+  drv = stdenv.mkDerivation {
+    name = "keepassrpc-${version}";
+    src = fetchurl {
+      url    = "https://github.com/kee-org/keepassrpc/releases/download/v${version}/KeePassRPC.plgx";
+      sha256 = "1dclfpia559cqf78qw29zz235h1df5md4kgjv3bbi8y41wwmx7cd";
+    };
+
+    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/nixpkgs/pkgs/applications/misc/keepass/default.nix b/nixpkgs/pkgs/applications/misc/keepass/default.nix
new file mode 100644
index 000000000000..b954d2d3cdb8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepass/default.nix
@@ -0,0 +1,115 @@
+{ stdenv, lib, fetchurl, buildDotnetPackage, substituteAll, makeWrapper, makeDesktopItem,
+  unzip, icoutils, gtk2, xorg, xdotool, xsel, plugins ? [] }:
+
+with builtins; buildDotnetPackage rec {
+  baseName = "keepass";
+  version = "2.40";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip";
+    sha256 = "1gldl74wz2lvsci6rn71d6q1zmnhr52z6fjib9nsragsazq5byz9";
+  };
+
+  sourceRoot = ".";
+
+  buildInputs = [ unzip makeWrapper icoutils ];
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      xsel = "${xsel}/bin/xsel";
+      xprop = "${xorg.xprop}/bin/xprop";
+      xdotool = "${xdotool}/bin/xdotool";
+    })
+  ];
+
+  # 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 = "Application;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 joncojonathan jraygauthier ];
+    platforms = with stdenv.lib.platforms; all;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh b/nixpkgs/pkgs/applications/misc/keepass/extractWinRscIconsToStdFreeDesktopDir.sh
new file mode 100755
index 000000000000..04485b146a04
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch b/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch
new file mode 100644
index 000000000000..318f8a358985
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepass/fix-paths.patch
@@ -0,0 +1,87 @@
+diff --git a/KeePass/Native/NativeMethods.Unix.cs b/KeePass/Native/NativeMethods.Unix.cs
+index 7495a1c..4ef4727 100644
+--- a/KeePass/Native/NativeMethods.Unix.cs
++++ b/KeePass/Native/NativeMethods.Unix.cs
+@@ -128,7 +128,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/Util/ClipboardUtil.Unix.cs b/KeePass/Util/ClipboardUtil.Unix.cs
+index e93a22a..3fd9a2b 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 ddd8f57..150eb82 100644
+--- a/KeePassLib/Native/ClipboardU.cs
++++ b/KeePassLib/Native/ClipboardU.cs
+@@ -27,7 +27,7 @@ namespace KeePassLib.Native
+ {

+ 	internal static class ClipboardU

+ 	{

+-		private const string XSel = "xsel";

++		private 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/Utility/MonoWorkarounds.cs b/KeePassLib/Utility/MonoWorkarounds.cs
+index 0da7019..f6a1022 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;

+@@ -303,7 +303,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 + "\"",

diff --git a/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch b/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch
new file mode 100644
index 000000000000..ca52e7ef191a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins-load.patch
@@ -0,0 +1 @@
++			m_pluginManager.LoadAllPlugins("$PATH$/lib/dotnet/keepass", SearchOption.TopDirectoryOnly, new string[] {});
diff --git a/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch b/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch
new file mode 100644
index 000000000000..cde6e7252bc3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepass/keepass-plugins.patch
@@ -0,0 +1,13 @@
+diff --git a/KeePass/Forms/MainForm.cs b/KeePass/Forms/MainForm.cs
+index 3d5fca0..4c3f3d4 100644
+--- a/KeePass/Forms/MainForm.cs
++++ b/KeePass/Forms/MainForm.cs
+@@ -406,7 +406,$OUTPUT_LC$ @@ namespace KeePass.Forms
+ 			m_pluginManager.Initialize(m_pluginDefaultHost);
+ 
+ 			m_pluginManager.UnloadAllPlugins();
+-			if(AppPolicy.Current.Plugins) m_pluginManager.LoadAllPlugins();
+$DO_LOADS$+
+ 
+ 			// Delete old files *after* loading plugins (when timestamps
+ 			// of loaded plugins have been updated already)
diff --git a/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix b/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix
new file mode 100644
index 000000000000..f6814119b5a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepassx/2.0.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, cmake, libgcrypt, qt4, xorg, ... }:
+
+stdenv.mkDerivation rec {
+  name = "keepassx2-${version}";
+  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 jgeerds ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/keepassx/community.nix b/nixpkgs/pkgs/applications/misc/keepassx/community.nix
new file mode 100644
index 000000000000..b6258491a8c3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepassx/community.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, qttools
+
+, curl
+, libargon2
+, libgcrypt
+, libsodium
+, zlib
+, libmicrohttpd
+, libXtst
+, qtbase
+, libgpgerror
+, glibcLocales
+, libyubikey
+, yubikey-personalization
+, libXi
+, qtx11extras
+, qtmacextras
+
+, withKeePassBrowser ? true
+, withKeePassSSHAgent ? true
+, withKeePassHTTP ? false
+, withKeePassNetworking ? false
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "keepassxc-${version}";
+  version = "2.3.4";
+
+  src = fetchFromGitHub {
+    owner = "keepassxreboot";
+    repo = "keepassxc";
+    rev = "${version}";
+    sha256 = "1gja402dsbws4z8ybnhqbw7rc9svgqnshqjgf7158d6x0ni386m3";
+  };
+
+  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
+    ./qt511.patch
+  ];
+
+  cmakeFlags = [
+    "-DKEEPASSXC_BUILD_TYPE=Release"
+    "-DWITH_GUI_TESTS=ON"
+    "-DWITH_XC_AUTOTYPE=ON"
+    "-DWITH_XC_YUBIKEY=ON"
+  ]
+  ++ (optional withKeePassBrowser "-DWITH_XC_BROWSER=ON")
+  ++ (optional withKeePassHTTP "-DWITH_XC_HTTP=ON")
+  ++ (optional withKeePassNetworking "-DWITH_XC_NETWORKING=ON")
+  ++ (optional withKeePassSSHAgent "-DWITH_XC_SSHAGENT=ON");
+
+  doCheck = true;
+  checkPhase = ''
+    export LC_ALL="en_US.UTF-8"
+    make test ARGS+="-E testgui --output-on-failure"
+  '';
+
+  nativeBuildInputs = [ cmake makeWrapper qttools ];
+
+  buildInputs = [
+    curl
+    glibcLocales
+    libXi
+    libXtst
+    libargon2
+    libgcrypt
+    libgpgerror
+    libmicrohttpd
+    libsodium
+    libyubikey
+    qtbase
+    qtx11extras
+    yubikey-personalization
+    zlib
+  ] ++ stdenv.lib.optional stdenv.isDarwin qtmacextras;
+
+  postInstall = optionalString stdenv.isDarwin ''
+    # Make it work without Qt in PATH.
+    wrapProgram $out/Applications/KeePassXC.app/Contents/MacOS/KeePassXC \
+      --set QT_PLUGIN_PATH ${qtbase.bin}/${qtbase.qtPluginPrefix}
+  '';
+
+  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 and via CLI. Includes optional http-interface to allow browser-integration with plugins like PassIFox (https://github.com/pfn/passifox).";
+    homepage = https://keepassxc.org/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ s1lvester jonafato ];
+    platforms = with platforms; linux ++ darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch b/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch
new file mode 100644
index 000000000000..1edf0a573a31
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepassx/darwin.patch
@@ -0,0 +1,52 @@
+Remove the use of macdeployqt to avoid copying dependencies and
+reduce installation size from 90 MB to 9 MB.
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -250,8 +250,8 @@ else()
+   set(PROGNAME keepassxc)
+ endif()
+ 
+-if(APPLE AND WITH_APP_BUNDLE AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local")
+-  set(CMAKE_INSTALL_PREFIX "/Applications")
++if(APPLE AND WITH_APP_BUNDLE)
++  set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications")
+   set(CMAKE_INSTALL_MANDIR "/usr/local/share/man")
+ endif()
+ 
+@@ -262,7 +262,7 @@ if(MINGW)
+   set(PLUGIN_INSTALL_DIR ".")
+   set(DATA_INSTALL_DIR   "share")
+ elseif(APPLE AND WITH_APP_BUNDLE)
+-  set(CLI_INSTALL_DIR    "/usr/local/bin")
++  set(CLI_INSTALL_DIR    "../bin")
+   set(PROXY_INSTALL_DIR  "/usr/local/bin")
+   set(BIN_INSTALL_DIR    ".")
+   set(PLUGIN_INSTALL_DIR "${PROGNAME}.app/Contents/PlugIns")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 69526967..38f7c5d4 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -319,11 +319,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 08c53278..b833b692 100644
+--- a/src/autotype/mac/CMakeLists.txt
++++ b/src/autotype/mac/CMakeLists.txt
+@@ -14,7 +14,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/nixpkgs/pkgs/applications/misc/keepassx/default.nix b/nixpkgs/pkgs/applications/misc/keepassx/default.nix
new file mode 100644
index 000000000000..ed706b138cc5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepassx/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, bzip2, qt4, qmake4Hook, libX11, xextproto, libXtst }:
+
+stdenv.mkDerivation rec {
+  name = "keepassx-${version}";
+  version = "0.4.4";
+
+  src = fetchurl {
+    url = "https://www.keepassx.org/releases/${version}/${name}.tar.gz";
+    sha256 = "1i5dq10x28mg7m4c0yacm32xfj4j7imir4ph8x9p0s2ym260c9ry";
+  };
+
+  patches = [ ./random.patch ];
+
+  buildInputs = [ bzip2 qt4 libX11 xextproto 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 jgeerds ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/keepassx/qt511.patch b/nixpkgs/pkgs/applications/misc/keepassx/qt511.patch
new file mode 100644
index 000000000000..b4d312c8c263
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/keepassx/qt511.patch
@@ -0,0 +1,15 @@
+diff --git a/src/gui/entry/EditEntryWidget.cpp b/src/gui/entry/EditEntryWidget.cpp
+index 6fd65c1a..e99275b0 100644
+--- a/src/gui/entry/EditEntryWidget.cpp
++++ b/src/gui/entry/EditEntryWidget.cpp
+@@ -29,6 +29,7 @@
+ #include <QMenu>
+ #include <QSortFilterProxyModel>
+ #include <QTemporaryFile>
++#include <QButtonGroup>
+ #include <QMimeData>
+ #include <QEvent>
+ #include <QColorDialog>
+-- 
+2.17.1
+
diff --git a/nixpkgs/pkgs/applications/misc/keepassx/random.patch b/nixpkgs/pkgs/applications/misc/keepassx/random.patch
new file mode 100644
index 000000000000..0a0b26f6e8c9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/khal/default.nix b/nixpkgs/pkgs/applications/misc/khal/default.nix
new file mode 100644
index 000000000000..bc2c8978a67e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/khal/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, pkgs, python3 }:
+
+with python3.pkgs; buildPythonApplication rec {
+  pname = "khal";
+  version = "0.9.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "03h0j0d3xyqh98x5v2gv63wv3g91hip3vsaxvybsn5iz331d23h4";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+
+  propagatedBuildInputs = [
+    atomicwrites
+    click
+    configobj
+    dateutil
+    icalendar
+    lxml
+    pkgs.vdirsyncer
+    pytz
+    pyxdg
+    requests_toolbelt
+    tzlocal
+    urwid
+    pkginfo
+    freezegun
+  ];
+  nativeBuildInputs = [ setuptools_scm pkgs.glibcLocales ];
+  checkInputs = [ pytest ];
+
+  postInstall = ''
+    install -D misc/__khal $out/share/zsh/site-functions/__khal
+  '';
+
+  # One test fails as of 0.9.10 due to the upgrade to icalendar 4.0.3
+  doCheck = false;
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://lostpackets.de/khal/;
+    description = "CLI calendar application";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jgeerds gebner ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/khard/default.nix b/nixpkgs/pkgs/applications/misc/khard/default.nix
new file mode 100644
index 000000000000..8ec4e7f06d16
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/khard/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, glibcLocales, python3 }:
+
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+
+      # https://github.com/pimutils/khal/issues/780
+      python-dateutil = super.python-dateutil.overridePythonAttrs (oldAttrs: rec {
+        version = "2.6.1";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "891c38b2a02f5bb1be3e4793866c8df49c7d19baabf9c1bad62547e0b4866aca";
+        };
+      });
+
+    };
+  };
+
+in with python.pkgs; buildPythonApplication rec {
+  version = "0.12.2";
+  name = "khard-${version}";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "https://github.com/scheibler/khard/archive/v${version}.tar.gz";
+    sha256 = "0lxcvzmafpvqcifgq2xjh1ca07z0vhihn5jnw8zrpmsqdc9p6b4j";
+  };
+
+  # setup.py reads the UTF-8 encoded readme.
+  LC_ALL = "en_US.UTF-8";
+  buildInputs = [ glibcLocales ];
+
+  propagatedBuildInputs = [
+    atomicwrites
+    configobj
+    vobject
+    argparse
+    ruamel_yaml
+    ruamel_base
+    unidecode
+  ];
+
+  postInstall = ''
+    install -D misc/zsh/_khard $out/share/zsh/site-functions/_khard
+  '';
+
+  # Fails; but there are no tests anyway.
+  doCheck = false;
+
+  meta = {
+    homepage = https://github.com/scheibler/khard;
+    description = "Console carddav client";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/kitty/default.nix b/nixpkgs/pkgs/applications/misc/kitty/default.nix
new file mode 100644
index 000000000000..d3f20f0282f7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kitty/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, substituteAll, fetchFromGitHub, python3Packages, glfw, libunistring,
+  harfbuzz, fontconfig, pkgconfig, ncurses, imagemagick, xsel,
+  libstartup_notification, libX11, libXrandr, libXinerama, libXcursor,
+  libxkbcommon, libXi, libXext, wayland-protocols, wayland,
+  which, dbus
+}:
+
+with python3Packages;
+buildPythonApplication rec {
+  version = "0.13.1";
+  name = "kitty-${version}";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "kovidgoyal";
+    repo = "kitty";
+    rev = "v${version}";
+    sha256 = "1j24zjasdh48z7majfpqr71n1wn5a9688wsmmqn26v8kfb68pqs4";
+  };
+
+  buildInputs = [
+    fontconfig glfw ncurses libunistring harfbuzz libX11
+    libXrandr libXinerama libXcursor libxkbcommon libXi libXext
+    wayland-protocols wayland dbus
+  ];
+
+  nativeBuildInputs = [ pkgconfig which sphinx ];
+
+  outputs = [ "out" "terminfo" ];
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      libstartup_notification = "${libstartup_notification}/lib/libstartup-notification-1.so";
+    })
+  ];
+
+  buildPhase = ''
+    python3 setup.py linux-package
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    cp -r linux-package/{bin,share,lib} $out
+    wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick xsel ]}"
+    runHook postInstall
+  '';
+
+  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; {
+    homepage = https://github.com/kovidgoyal/kitty;
+    description = "A modern, hackable, featureful, OpenGL based terminal emulator";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ tex rvolosatovs ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/kitty/fix-paths.patch b/nixpkgs/pkgs/applications/misc/kitty/fix-paths.patch
new file mode 100644
index 000000000000..e22f4570a4b7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kitty/fix-paths.patch
@@ -0,0 +1,27 @@
+--- a/kitty/desktop.c
++++ b/kitty/desktop.c
+@@ -30,7 +30,7 @@
+ static PyObject*
+ init_x11_startup_notification(PyObject UNUSED *self, PyObject *args) {
+     static bool done = false;
+-    static const char* libname = "libstartup-notification-1.so";
++    static const char* libname = "@libstartup_notification@";
+     if (!done) {
+         done = true;
+
+--- a/docs/Makefile
++++ b/docs/Makefile
+@@ -3,7 +3,7 @@
+# Patching is needed here for the following reasons:
+# * `sphinx-build` in nixpkgs is not a Python file but a wrapper shell script
+# * 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    = -T $(FAIL_WARN)
+-SPHINXBUILD   = python3 .. +launch :sphinx-build
++SPHINXBUILD   = PYTHONPATH=${PYTHONPATH}:.. HOME=${TMPDIR}/kitty-build-home sphinx-build
+ SPHINXPROJ    = kitty
+ SOURCEDIR     = .
+ BUILDDIR      = _build
diff --git a/nixpkgs/pkgs/applications/misc/kiwix/default.nix b/nixpkgs/pkgs/applications/misc/kiwix/default.nix
new file mode 100644
index 000000000000..9ea8210e67e7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kiwix/default.nix
@@ -0,0 +1,110 @@
+{ 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";
+    name = "pugixml-${version}";
+
+    src = fetchurl {
+      url = "http://download.kiwix.org/dev/${name}.tar.gz";
+      sha256 = "0sqk0vdwjq44jxbbkj1cy8qykrmafs1sickzldb2w2nshsnjshhg";
+    };
+
+    buildInputs = [ cmake ];
+
+    unpackPhase = ''
+      # not a nice src archive: all the files are in the root :(
+      mkdir ${name}
+      cd ${name}
+      tar -xf ${src}
+
+      # and the build scripts are in there :'(
+      cd scripts
+    '';
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "kiwix-${version}";
+  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-static"
+    "--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 = http://kiwix.org;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ robbinch ];
+    knownVulnerabilities = [
+      "CVE-2015-1032"
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/krename/default.nix b/nixpkgs/pkgs/applications/misc/krename/default.nix
new file mode 100644
index 000000000000..52233ad2f2f4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/krename/default.nix
@@ -0,0 +1,31 @@
+{
+  mkDerivation, fetchurl, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
+  kconfig, kinit, kjsembed, taglib, exiv2, podofo,
+  kcrash
+}:
+
+let
+  pname = "krename";
+  version = "5.0.0";
+
+in mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    sha256 = "136j1dkqrhv458rjh5v3vzjhvq6dhz7k79zk6mmx8zvqacc7cq8a";
+  };
+
+  meta = with lib; {
+    homepage = http://www.krename.net;
+    description = "A powerful batch renamer for KDE";
+    license = licenses.gpl2;
+    inherit (kconfig.meta) platforms;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+
+  buildInputs = [ taglib exiv2 podofo ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kconfig kcrash kinit kjsembed ];
+}
diff --git a/nixpkgs/pkgs/applications/misc/krusader/default.nix b/nixpkgs/pkgs/applications/misc/krusader/default.nix
new file mode 100644
index 000000000000..70915ca87073
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/krusader/default.nix
@@ -0,0 +1,27 @@
+{
+  mkDerivation, fetchurl, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
+  karchive, kconfig, kcrash, kguiaddons, kinit, kparts, kwindowsystem
+}:
+
+let
+  pname = "krusader";
+  version = "2.7.1";
+in mkDerivation rec {
+  name = "krusader-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/${name}.tar.xz";
+    sha256 = "1svxj1qygyr3a4dkx0nh2d6r4q7pfj00brzghl94mf4q0rz4vhfm";
+  };
+
+  meta = with lib; {
+    description = "Norton/Total Commander clone for KDE";
+    license = licenses.gpl2;
+    homepage = http://www.krusader.org;
+    maintainers = with maintainers; [ sander ];
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ karchive kconfig kcrash kguiaddons kinit kparts kwindowsystem ];
+}
diff --git a/nixpkgs/pkgs/applications/misc/kupfer/default.nix b/nixpkgs/pkgs/applications/misc/kupfer/default.nix
new file mode 100644
index 000000000000..33a2cf932095
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/kupfer/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, fetchurl
+, intltool
+, python3Packages
+, gobject-introspection
+, gtk3
+, libwnck3
+, keybinder3
+, hicolor-icon-theme
+, wrapGAppsHook
+, wafHook
+}:
+
+with python3Packages;
+
+buildPythonApplication rec {
+  name = "kupfer-${version}";
+  version = "319";
+
+  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 = [ hicolor-icon-theme docutils libwnck3 keybinder3 ];
+  propagatedBuildInputs = [ pygobject3 gtk3 pyxdg dbus-python pycairo ];
+
+  postInstall = let
+    pythonPath = (stdenv.lib.concatMapStringsSep ":"
+      (m: "${m}/lib/${python.libPrefix}/site-packages")
+      propagatedBuildInputs);
+  in ''
+    gappsWrapperArgs+=(
+      "--prefix" "PYTHONPATH" : "${pythonPath}"
+      "--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/nixpkgs/pkgs/applications/misc/latte-dock/default.nix b/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
new file mode 100644
index 000000000000..a00a85b7a81c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchurl
+, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash, knewstuff }:
+
+mkDerivation rec {
+  pname = "latte-dock";
+  version = "0.8.3";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://download.kde.org/stable/${pname}/${name}.tar.xz";
+    sha256 = "1jgg1ag8sxrkif1bqgz5pizn1xmiljas00rqcskszx10j0595mnk";
+    name = "${name}.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/nixpkgs/pkgs/applications/misc/lenmus/default.nix b/nixpkgs/pkgs/applications/misc/lenmus/default.nix
new file mode 100644
index 000000000000..9018a5926424
--- /dev/null
+++ b/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 {
+  name = "lenmus-${version}";
+  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/nixpkgs/pkgs/applications/misc/libosmocore/default.nix b/nixpkgs/pkgs/applications/misc/libosmocore/default.nix
new file mode 100644
index 000000000000..13e7e4f98011
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/libosmocore/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, pcsclite, talloc, python2, gnutls
+}:
+
+stdenv.mkDerivation rec {
+  name = "libosmocore-${version}";
+  version = "0.12.1";
+
+  src = fetchFromGitHub {
+    owner = "osmocom";
+    repo = "libosmocore";
+    rev = version;
+    sha256 = "140c9jii0qs00s50kji1znc2339s22x8sz259x4pj35rrjzyyjgp";
+  };
+
+  propagatedBuildInputs = [
+    talloc
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook pkgconfig
+  ];
+
+  buildInputs = [
+    pcsclite python2 gnutls
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "libosmocore";
+    homepage = https://github.com/osmocom/libosmocore;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mog ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/librecad/default.nix b/nixpkgs/pkgs/applications/misc/librecad/default.nix
new file mode 100644
index 000000000000..ca9a90777e33
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/librecad/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, qt4, qmake4Hook, muparser, which, boost, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  version = "2.1.3";
+  name = "librecad-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/LibreCAD/LibreCAD/tarball/${version}";
+    name = name + ".tar.gz";
+    sha256 = "1czp8bja61hfav2m7184cq1np1n76w3w6vn0hlkp81hhz9zc62sx";
+  };
+
+  patchPhase = ''
+    sed -i -e s,/bin/bash,`type -P bash`, scripts/postprocess-unix.sh
+    sed -i -e s,/usr/share,$out/share, librecad/src/lib/engine/rs_system.cpp
+  '';
+
+  qmakeFlags = [ "MUPARSER_DIR=${muparser}" "BOOST_DIR=${boost.dev}" ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share
+    cp -R unix/librecad $out/bin
+    cp -R unix/resources $out/share/librecad
+  '';
+
+  buildInputs = [ qt4 muparser which boost ];
+  nativeBuildInputs = [ pkgconfig qmake4Hook ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A 2D CAD package based upon Qt";
+    homepage = https://librecad.org;
+    repositories.git = git://github.com/LibreCAD/LibreCAD.git;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/lighthouse/default.nix b/nixpkgs/pkgs/applications/misc/lighthouse/default.nix
new file mode 100644
index 000000000000..7b5b40d65a36
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/lilyterm/default.nix b/nixpkgs/pkgs/applications/misc/lilyterm/default.nix
new file mode 100644
index 000000000000..948ae7b14a11
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/lilyterm/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, lib, fetchurl, fetchFromGitHub
+, pkgconfig
+, autoconf, automake, intltool, gettext
+, gtk, vte
+
+, flavour ? "stable"
+}:
+
+assert lib.assertOneOf "flavour" flavour [ "stable"  "git" ];
+
+let
+  stuff =
+    if flavour == "stable"
+    then rec {
+        version = "0.9.9.4";
+        src = fetchurl {
+          url = "https://lilyterm.luna.com.tw/file/lilyterm-${version}.tar.gz";
+          sha256 = "0x2x59qsxq6d6xg5sd5lxbsbwsdvkwqlk17iw3h4amjg3m1jc9mp";
+        };
+      }
+    else {
+        version = "2017-01-06";
+        src = fetchFromGitHub {
+          owner = "Tetralet";
+          repo = "lilyterm";
+          rev = "20cce75d34fd24901c9828469d4881968183c389";
+          sha256 = "0am0y65674rfqy69q4qz8izb8cq0isylr4w5ychi40jxyp68rkv2";
+        };
+      };
+
+in
+stdenv.mkDerivation rec {
+  name = "lilyterm-${version}";
+
+  inherit (stuff) src version;
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake intltool gettext 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/nixpkgs/pkgs/applications/misc/limesuite/default.nix b/nixpkgs/pkgs/applications/misc/limesuite/default.nix
new file mode 100644
index 000000000000..e1cdc4a0f863
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/limesuite/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, cmake
+, sqlite, wxGTK30, libusb1, soapysdr
+, mesa_glu, libX11, gnuplot, fltk
+} :
+
+let
+  version = "18.10.0";
+
+in stdenv.mkDerivation {
+  name = "limesuite-${version}";
+
+  src = fetchFromGitHub {
+    owner = "myriadrf";
+    repo = "LimeSuite";
+    rev = "v${version}";
+    sha256 = "0nbyvcdwvfvln1wic9qwb7y221v3jv454gp5v6ms9112a41zj46h";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    libusb1
+    sqlite
+    wxGTK30
+    fltk
+    gnuplot
+    libusb1
+    soapysdr
+    mesa_glu
+    libX11
+  ];
+
+  postInstall = ''
+    mkdir -p $out/lib/udev/rules.d
+    cp ../udev-rules/64-limesuite.rules $out/lib/udev/rules.d
+
+    mkdir -p $out/share/limesuite
+    cp bin/Release/lms7suite_mcu/* $out/share/limesuite
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/llpp/default.nix b/nixpkgs/pkgs/applications/misc/llpp/default.nix
new file mode 100644
index 000000000000..ed3aca996e15
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/llpp/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11,
+libGLU_combined, freetype, xclip }:
+
+assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
+
+stdenv.mkDerivation rec {
+  name = "llpp-${version}";
+  version = "30";
+
+  src = fetchgit {
+    url = "git://repo.or.cz/llpp.git";
+    rev = "v${version}";
+    sha256 = "0iilpzf12hs0zky58j55l4y5dvzv7fc53nsrg324n9vka92mppvd";
+    fetchSubmodules = false;
+  };
+
+  patches = (substituteAll {
+    inherit version;
+    src = ./fix-build-bash.patch;
+  });
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ocaml mupdf libX11 libGLU_combined freetype ];
+
+  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 $out/lib
+    install build/llpp $out/bin
+    wrapProgram $out/bin/llpp \
+        --prefix CAML_LD_LIBRARY_PATH ":" "$out/lib" \
+        --prefix PATH ":" "${xclip}/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/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch b/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch
new file mode 100644
index 000000000000..25d503290ce8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/llpp/fix-build-bash.patch
@@ -0,0 +1,88 @@
+From cccadedfbcb6764a38382154838113a6b2fd4dee Mon Sep 17 00:00:00 2001
+From: Michael Hoang <enzime@users.noreply.github.com>
+Date: Mon, 10 Dec 2018 15:08:01 +1100
+Subject: [PATCH] Patch build.bash for nixpkgs
+
+---
+ build.bash | 37 ++-----------------------------------
+ 1 file changed, 2 insertions(+), 35 deletions(-)
+
+diff --git a/build.bash b/build.bash
+index 1588011..72117d9 100755
+--- a/build.bash
++++ b/build.bash
+@@ -29,7 +29,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
+@@ -39,12 +38,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; }
+ mbt=native
+ mulibs="$mudir/build/$mbt/libmupdf.a" # $mudir/build/$mbt/libmupdf-third.a
+ 
+-keycmd="(cd $mudir && git describe --tags --dirty); digest $mulibs"
+-isfresh "$mulibs" "$(eval $keycmd)" || (
+-    make -C "$mudir" build=$mbt -j $mjobs libs
+-    echo "k='$(eval $keycmd)'" >$mudir/build/$mbt/libmupdf.a.past
+-) && vecho "fresh mupdf"
+-
+ oincs() {
+     local i=
+     local incs1=
+@@ -90,32 +83,6 @@ mflags() {
+ }
+ 
+ overs="$(ocamlc -vnum 2>/dev/null)" || overs=""
+-test "$overs" = "4.07.0" || {
+-    url=https://caml.inria.fr/pub/distrib/ocaml-4.07/ocaml-4.07.0.tar.xz
+-    txz=$outd/$(basename $url)
+-    isfresh $txz $url || {
+-        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
+-        echo "k=$url" >$txz.past
+-    } && vecho "fresh $txz"
+-    absprefix=$(cd $outd &>/dev/null; pwd -P)
+-    export PATH=$absprefix/bin:$PATH
+-    isfresh $absprefix/bin/ocamlc "$url" || (
+-        tar xf $txz -C $outd
+-        bn=$(basename $url)
+-        cd $outd/${bn%.tar.xz}
+-        ./configure -prefix $absprefix                                      \
+-                    -no-graph -no-debugger -no-ocamldoc -no-native-compiler
+-        make -j $mjobs world
+-        make install
+-        echo "k='$url'" >$absprefix/bin/ocamlc.past
+-    ) && vecho "fresh ocamlc"
+-    overs=$(ocamlc -vnum 2>/dev/null)
+-}
+ 
+ bocaml1() {
+     grep -q "$3" $outd/ordered || {
+@@ -224,7 +191,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"
+@@ -278,7 +245,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 -lfreetype -lpthread"
+ if $darwin; then
+     mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; })
+     clibs="$clibs -framework Cocoa -framework OpenGL"
+-- 
+2.19.2
+
diff --git a/nixpkgs/pkgs/applications/misc/loxodo/default.nix b/nixpkgs/pkgs/applications/misc/loxodo/default.nix
new file mode 100644
index 000000000000..291e225d6c4f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/loxodo/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, python27Packages, fetchgit }:
+let
+  py = python27Packages;
+  python = py.python;
+in
+py.buildPythonApplication rec {
+  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 = http://www.christoph-sommer.de/loxodo/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix b/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix
new file mode 100644
index 000000000000..4972aa28e589
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ltwheelconf/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, libusb1, pkgconfig, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "ltwheelconf";
+  version = "0.2.7";
+  name = "${pname}-${version}";
+
+  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/nixpkgs/pkgs/applications/misc/lxterminal/default.nix b/nixpkgs/pkgs/applications/misc/lxterminal/default.nix
new file mode 100644
index 000000000000..4fd86a5a4f52
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/lxterminal/default.nix
@@ -0,0 +1,49 @@
+{ 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 rec {
+  name = "lxterminal-${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/nixpkgs/pkgs/applications/misc/lxterminal/respect-xml-catalog-files-var.patch b/nixpkgs/pkgs/applications/misc/lxterminal/respect-xml-catalog-files-var.patch
new file mode 100644
index 000000000000..598f506118f2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/lyx/default.nix b/nixpkgs/pkgs/applications/misc/lyx/default.nix
new file mode 100644
index 000000000000..ad3bd499cde9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/lyx/default.nix
@@ -0,0 +1,53 @@
+{ fetchurl, stdenv, pkgconfig, python, file, bc, fetchpatch
+, qtbase, qtsvg, hunspell, makeWrapper #, mythes, boost
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.3.0";
+  name = "lyx-${version}";
+
+  src = fetchurl {
+    url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${name}.tar.xz";
+    sha256 = "0axri2h8xkna4mkfchfyyysbjl7s486vx80p5hzj9zgsvdm5a3ri";
+  };
+
+  # 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
+  postFixup = ''
+    wrapProgram "$out/bin/lyx" \
+      --prefix PATH : '${python}/bin'
+  '';
+
+  patches = [
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-office/lyx/files/lyx-2.3.0-qt-5.11.patch?id=07e82fd1fc07bf055c78b81eaa128f8f837da80d";
+      sha256 = "1bnx0il2iv36lnrnyb370wyvww0rd8bphcy6z8d7zmvd3pwhyfql";
+    })
+  ];
+
+  meta = with stdenv.lib; {
+    description = "WYSIWYM frontend for LaTeX, DocBook";
+    homepage = http://www.lyx.org;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.vcunat ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/madonctl/default.nix b/nixpkgs/pkgs/applications/misc/madonctl/default.nix
new file mode 100644
index 000000000000..f2dacb7890f0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/madonctl/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "madonctl-${version}";
+  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/nixpkgs/pkgs/applications/misc/madonctl/deps.nix b/nixpkgs/pkgs/applications/misc/madonctl/deps.nix
new file mode 100644
index 000000000000..9f94bb09ce4e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/makeself/Use-rm-from-PATH.patch b/nixpkgs/pkgs/applications/misc/makeself/Use-rm-from-PATH.patch
new file mode 100644
index 000000000000..80b9ebf4d571
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/makeself/Use-rm-from-PATH.patch
@@ -0,0 +1,43 @@
+From 81cf57e4653360af7f1718391e424fa05d8ea000 Mon Sep 17 00:00:00 2001
+From: Keshav Kini <keshav.kini@gmail.com>
+Date: Thu, 9 Aug 2018 18:36:15 -0700
+Subject: [PATCH] Use `rm` from PATH
+
+On NixOS (a Linux distribution), there is no `/bin/rm`, but an `rm`
+command will generally be available in one's path when running shell
+scripts. Here, I change a couple of invocations of `/bin/rm` into
+invocations of `rm` to deal with this issue.
+
+Since `rm` is already called elsewhere in the script without an
+absolute path, I assume this change will not cause any
+regressions. Still, I've tested this on a CentOS machine and a NixOS
+machine, though not other platforms.
+---
+ makeself-header.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/makeself-header.sh b/makeself-header.sh
+index 4d2c005..2babf34 100755
+--- a/makeself-header.sh
++++ b/makeself-header.sh
+@@ -515,7 +515,7 @@ if test x"\$quiet" = xn; then
+ fi
+ res=3
+ if test x"\$keep" = xn; then
+-    trap 'echo Signal caught, cleaning up >&2; cd \$TMPROOT; /bin/rm -rf "\$tmpdir"; eval \$finish; exit 15' 1 2 3 15
++    trap 'echo Signal caught, cleaning up >&2; cd \$TMPROOT; rm -rf "\$tmpdir"; eval \$finish; exit 15' 1 2 3 15
+ fi
+ 
+ if test x"\$nodiskspace" = xn; then
+@@ -581,7 +581,7 @@ if test x"\$script" != x; then
+ fi
+ if test x"\$keep" = xn; then
+     cd "\$TMPROOT"
+-    /bin/rm -rf "\$tmpdir"
++    rm -rf "\$tmpdir"
+ fi
+ eval \$finish; exit \$res
+ EOF
+-- 
+2.14.1
+
diff --git a/nixpkgs/pkgs/applications/misc/makeself/default.nix b/nixpkgs/pkgs/applications/misc/makeself/default.nix
new file mode 100644
index 000000000000..a6af1762e289
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/makeself/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "2.4.0";
+  name = "makeself-${version}";
+
+  src = fetchFromGitHub {
+    owner = "megastep";
+    repo = "makeself";
+    rev = "release-${version}";
+    sha256 = "1lw3gx1zpzp2wmzrw5v7k31vfsrdzadqha9ni309fp07g8inrr9n";
+  };
+
+  # backported from https://github.com/megastep/makeself/commit/77156e28ff21231c400423facc7049d9c60fd1bd
+  patches = [ ./Use-rm-from-PATH.patch ];
+
+  postPatch = ''
+    sed -e "s|^HEADER=.*|HEADER=$out/share/${name}/makeself-header.sh|" -i makeself.sh
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,share/{${name},man/man1}}
+    cp makeself.lsm README.md $out/share/${name}
+    cp makeself.sh $out/bin/makeself
+    cp makeself.1  $out/share/man/man1/
+    cp makeself-header.sh $out/share/${name}
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/mako/default.nix b/nixpkgs/pkgs/applications/misc/mako/default.nix
new file mode 100644
index 000000000000..3d8ed3627f2a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mako/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, scdoc, systemd, pango, cairo
+, wayland, wayland-protocols }:
+
+stdenv.mkDerivation rec {
+  name = "mako-${version}";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "emersion";
+    repo = "mako";
+    rev = "v${version}";
+    sha256 = "112b7s5bkvwlgsm2kng2vh8mn6wr3a6c7n1arl9adxlghdym449h";
+  };
+
+  nativeBuildInputs = [ meson ninja pkgconfig scdoc ];
+  buildInputs = [ systemd pango cairo wayland wayland-protocols ];
+
+  meta = with stdenv.lib; {
+    description = "A lightweight Wayland notification daemon";
+    homepage = https://wayland.emersion.fr/mako/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ dywedir ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix b/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix
new file mode 100644
index 000000000000..2928d271efcf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, sane-backends, qtbase, qtsvg, nss, autoPatchelfHook, lib, makeWrapper }:
+
+let
+  version = "5.2.20";
+
+in stdenv.mkDerivation {
+  name = "masterpdfeditor-${version}";
+
+  src = fetchurl {
+    url = "https://code-industry.net/public/master-pdf-editor-${version}_qt5.amd64.tar.gz";
+    sha256 = "1399zv3m7a2rxvmy213f5yii3krsqyahpwdzsw8j535xrb9f3z1m";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+
+  buildInputs = [ nss qtbase qtsvg sane-backends stdenv.cc.cc ];
+
+  dontStrip = true;
+
+  # Please remove this when #44047 is fixed
+  postInstall = ''
+    wrapProgram $out/bin/masterpdfeditor5 --prefix QT_PLUGIN_PATH : ${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/mdp/default.nix b/nixpkgs/pkgs/applications/misc/mdp/default.nix
new file mode 100644
index 000000000000..cd7bdd1fe7e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mdp/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  version = "1.0.15";
+  name = "mdp-${version}";
+
+  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; [ vrthra ];
+    license = licenses.gpl3;
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
new file mode 100644
index 000000000000..904fb95ca6c6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, wxGTK
+, desktop-file-utils, libSM, imagemagick }:
+
+stdenv.mkDerivation rec {
+  version = "18.12";
+  name = "mediainfo-gui-${version}";
+  src = fetchurl {
+    url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
+    sha256 = "01pk57ff297lifm3g2hrbmfmchgyy5rir8103n2j3l0dkn2i0g3d";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ libzen libmediainfo wxGTK 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/nixpkgs/pkgs/applications/misc/mediainfo/default.nix b/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
new file mode 100644
index 000000000000..69e33fbfc184
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, zlib }:
+
+stdenv.mkDerivation rec {
+  version = "18.08.1";
+  name = "mediainfo-${version}";
+  src = fetchurl {
+    url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
+    sha256 = "0rq2dczjq26g5i0ac8px7xmxjvqq4h0rzd97fy5824yb2c5ksxs9";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/memo/default.nix b/nixpkgs/pkgs/applications/misc/memo/default.nix
new file mode 100644
index 000000000000..c112cf0c928f
--- /dev/null
+++ b/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 {
+
+  name = "memo-${version}";
+
+  version = "0.6";
+
+  src = fetchFromGitHub {
+    owner  = "mrVanDalo";
+    repo   = "memo";
+    rev    = "${version}";
+    sha256 = "1cvjs36f6vxzfz5d63yhyw8j7gdw5hn6cfzccf7ag08lamjhfhbr";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/mencal/default.nix b/nixpkgs/pkgs/applications/misc/mencal/default.nix
new file mode 100644
index 000000000000..df0a4db7fc70
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/menumaker/default.nix b/nixpkgs/pkgs/applications/misc/menumaker/default.nix
new file mode 100644
index 000000000000..56854e7863fe
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/menumaker/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+  name = "menumaker-${version}";
+  version = "0.99.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/menumaker/${name}.tar.gz";
+    sha256 = "1mm4cvg3kphkkd8nwrhcg6d9nm5ar7mgc0wf6fxk6zck1l7xn8ky";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/merkaartor/default.nix b/nixpkgs/pkgs/applications/misc/merkaartor/default.nix
new file mode 100644
index 000000000000..70a6efb90ddc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/merkaartor/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, qmake, pkgconfig, boost, gdal, proj
+, qtbase, qtsvg, qtwebkit }:
+
+stdenv.mkDerivation rec {
+  name = "merkaartor-${version}";
+  version = "0.18.3";
+
+  src = fetchFromGitHub {
+    owner = "openstreetmap";
+    repo = "merkaartor";
+    rev = version;
+    sha256 = "0ls3q8m1hxiwyrypy6qca8wczhl4969ncl0sszfdwfv70rzxjk88";
+  };
+
+  nativeBuildInputs = [ qmake pkgconfig ];
+
+  buildInputs = [ boost gdal proj qtbase qtsvg qtwebkit ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "OpenStreetMap editor";
+    homepage = http://merkaartor.be/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix b/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix
new file mode 100644
index 000000000000..602d4a032efd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/metamorphose2/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchgit, makeWrapper, gettext
+, python27, python2Packages
+}:
+
+stdenv.mkDerivation rec {
+  name    = "metamorphose2-${version}";
+  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/nixpkgs/pkgs/applications/misc/metar/default.nix b/nixpkgs/pkgs/applications/misc/metar/default.nix
new file mode 100644
index 000000000000..ca4f91533ecf
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/milu/default.nix b/nixpkgs/pkgs/applications/misc/milu/default.nix
new file mode 100644
index 000000000000..09c4d1db2904
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/milu/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, unzip, pkgconfig, glib, llvmPackages }:
+
+stdenv.mkDerivation rec {
+  name = "milu-nightly-${version}";
+  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/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix b/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix
new file mode 100644
index 000000000000..6aa7eea3d7e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/minergate-cli/default.nix
@@ -0,0 +1,36 @@
+{ fetchurl, stdenv, dpkg, makeWrapper, openssl }:
+
+stdenv.mkDerivation rec {
+  version = "8.2";
+  name = "minergate-cli-${version}";
+  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/nixpkgs/pkgs/applications/misc/minergate/default.nix b/nixpkgs/pkgs/applications/misc/minergate/default.nix
new file mode 100644
index 000000000000..d11e889e932c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/minergate/default.nix
@@ -0,0 +1,36 @@
+{ fetchurl, stdenv, dpkg, makeWrapper, fontconfig, freetype, openssl, xorg, xkeyboard_config }:
+
+stdenv.mkDerivation rec {
+  version = "8.1";
+  name = "minergate-${version}";
+  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/nixpkgs/pkgs/applications/misc/mlterm/default.nix b/nixpkgs/pkgs/applications/misc/mlterm/default.nix
new file mode 100644
index 000000000000..c872af68cef7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mlterm/default.nix
@@ -0,0 +1,94 @@
+{ stdenv, fetchurl, 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
+}:
+
+stdenv.mkDerivation rec {
+  name = "mlterm-${version}";
+  version = "3.8.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/mlterm/01release/${name}/${name}.tar.gz";
+    sha256 = "10j7q7rk6ck86xl1898maxhgkp1h7vy7nliv9sk5bqgs7rdwn4kl";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoconf ];
+  buildInputs = [
+    libX11 gdk_pixbuf.dev cairo libXft gtk3 vte
+    harfbuzz fribidi m17n_lib openssl libssh2
+  ];
+
+  #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 = "
+    -L${stdenv.cc.cc.lib}/lib
+    -lX11 -lgdk_pixbuf-2.0 -lcairo -lfontconfig -lfreetype -lXft
+    -lvte-2.91 -lgtk-3 -lharfbuzz -lfribidi -lm17n
+  " + stdenv.lib.optionalString (openssl != null) "
+    -lcrypto
+  " + stdenv.lib.optionalString (libssh2 != null) "
+    -lssh2
+  ";
+
+  configureFlags = [
+    "--with-x=yes"
+    "--with-gui=xlib,fb"
+    "--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
+    "--enable-m17nlib" #character encodings
+    "--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.
+ ] ++ stdenv.lib.optional (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/*
+  '';
+
+  desktopItem = makeDesktopItem rec {
+    name = "mlterm";
+    exec = "mlterm %U";
+    icon = "mlterm";
+    type = "Application";
+    comment = "Terminal emulator";
+    desktopName = "mlterm";
+    genericName = "Terminal emulator";
+    categories = stdenv.lib.concatStringsSep ";" [
+      "Application" "System" "TerminalEmulator"
+    ];
+    startupNotify = "false";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://mlterm.sourceforge.net/;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ vrthra ramkromberg ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix b/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix
new file mode 100644
index 000000000000..76c2ba69d35b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/moonlight-embedded/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, perl
+, alsaLib, libevdev, libopus, udev, SDL2
+, ffmpeg, pkgconfig, xorg, libvdpau, libpulseaudio, libcec
+, curl, expat, avahi, enet, libuuid
+}:
+
+stdenv.mkDerivation rec {
+  name = "moonlight-embedded-${version}";
+  version = "2.4.7";
+
+  src = fetchFromGitHub {
+    owner = "irtimmer";
+    repo = "moonlight-embedded";
+    rev = "v${version}";
+    sha256 = "0ihgb0kh4rhbgn55s25rfbs8063zqvcyqn137jn3nsc0is1595a9";
+    fetchSubmodules = true;
+  };
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [
+    alsaLib libevdev libopus udev SDL2
+    ffmpeg pkgconfig xorg.libxcb libvdpau libpulseaudio libcec
+    xorg.libpthreadstubs curl expat avahi enet libuuid
+  ];
+
+  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/nixpkgs/pkgs/applications/misc/mop/default.nix b/nixpkgs/pkgs/applications/misc/mop/default.nix
new file mode 100644
index 000000000000..b9179bbe5463
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mop/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  name = "mop-${version}";
+  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;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/mop/deps.nix b/nixpkgs/pkgs/applications/misc/mop/deps.nix
new file mode 100644
index 000000000000..4081cd1ddaa2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/mpvc/default.nix b/nixpkgs/pkgs/applications/misc/mpvc/default.nix
new file mode 100644
index 000000000000..fffa95952622
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mpvc/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, socat, fetchFromGitHub, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix b/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix
new file mode 100644
index 000000000000..eea166d8df75
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mqtt-bench/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch }:
+
+buildGoPackage rec {
+  name = "mqtt-bench-${version}";
+  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/nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix b/nixpkgs/pkgs/applications/misc/mqtt-bench/deps.nix
new file mode 100644
index 000000000000..d93d3c468145
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/mrxvt/default.nix b/nixpkgs/pkgs/applications/misc/mrxvt/default.nix
new file mode 100644
index 000000000000..3f7ce3cc5d5b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mrxvt/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, libX11, libXft, libXi, inputproto, libSM, libICE
+, freetype, pkgconfig, which }:
+
+stdenv.mkDerivation {
+  name = "mrxvt-0.5.4";
+
+  buildInputs =
+    [ libX11 libXft libXi inputproto 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 = { 
+    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 = "GPL";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/mucommander/default.nix b/nixpkgs/pkgs/applications/misc/mucommander/default.nix
new file mode 100644
index 000000000000..d6153d2268b6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mucommander/default.nix
@@ -0,0 +1,84 @@
+{ stdenv, fetchFromGitHub, gradle_3_5, perl, makeWrapper, jre, gsettings-desktop-schemas }:
+
+let
+  version = "0.9.2";
+  name = "mucommander-${version}";
+
+  src = fetchFromGitHub {
+    owner = "mucommander";
+    repo = "mucommander";
+    rev = version;
+    sha256 = "1fvij0yjjz56hsyddznx7mdgq1zm25fkng3axl03iyrij976z7b8";
+  };
+
+  postPatch = ''
+    # there is no .git anyway
+    substituteInPlace build.gradle \
+      --replace "git = org.ajoberstar.grgit.Grgit.open(file('.'))"  "" \
+      --replace "revision = git.head().id"                          "revision = 'abcdefgh'"
+
+    # 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_3_5 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 = "199a9rc1pp9jjwpy83743qhjczfz0d1mkbic6si9bh8l62nw8qc7";
+  };
+
+in stdenv.mkDerivation {
+  inherit name src postPatch;
+  nativeBuildInputs = [ gradle_3_5 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 build
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/multibootusb/default.nix b/nixpkgs/pkgs/applications/misc/multibootusb/default.nix
new file mode 100644
index 000000000000..02541842c36e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/multibootusb/default.nix
@@ -0,0 +1,59 @@
+{ lib, python36Packages, fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, utillinux, qt5 }:
+python36Packages.buildPythonApplication rec {
+  pname = "multibootusb";
+  name = "${pname}-${version}";
+  version = "9.2.0";
+
+  buildInputs = [
+    python36Packages.dbus-python
+    python36Packages.pyqt5
+    python36Packages.pytest-shutil
+    python36Packages.python
+    python36Packages.pyudev
+    python36Packages.six
+    libxcb
+    mtools
+    p7zip
+    parted
+    procps
+    qt5.full
+    utillinux
+  ];
+
+  src = fetchFromGitHub {
+    owner = "mbusb";
+    repo = pname;
+    rev = "v${version}";
+
+    sha256 = "0wlan0cp6c2i0nahixgpmkm0h4n518gj8rc515d579pqqp91p2h3";
+  };
+
+  # Skip the fixup stage where stuff is shrinked (can't shrink text files)
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    share="$out/share/${pname}"
+    mkdir -p "$share"
+    cp -r data "$share/data"
+    cp -r scripts "$share/scripts"
+    cp "${pname}" "$share/${pname}"
+
+    mkdir "$out/bin"
+    cat > "$out/bin/${pname}" <<EOF
+      #!/bin/sh
+      cd "$share"
+      export PYTHONPATH="$PYTHONPATH:$share"
+      export PATH="$PATH:${parted}/bin:${procps}/bin"
+
+      "${python36Packages.python}/bin/python" "${pname}"
+    EOF
+    chmod +x "$out/bin/${pname}"
+  '';
+
+  meta = with lib; {
+    description = "Multiboot USB creator for Linux live disks";
+    homepage = http://multibootusb.org/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ jD91mZM2 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/multimon-ng/default.nix b/nixpkgs/pkgs/applications/misc/multimon-ng/default.nix
new file mode 100644
index 000000000000..3fb268017750
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/multimon-ng/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, qt4, qmake4Hook, libpulseaudio }:
+let
+  version = "1.1.6";
+in
+stdenv.mkDerivation {
+  name = "multimon-ng-${version}";
+
+  src = fetchFromGitHub {
+    owner = "EliasOenal";
+    repo = "multimon-ng";
+    rev = "${version}";
+    sha256 = "1a166mh73x77yrrnhhhzk44qrkgwav26vpidv1547zj3x3m8p0bm";
+  };
+
+  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;
+    maintainers = with maintainers; [ the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/mupdf/darwin.patch b/nixpkgs/pkgs/applications/misc/mupdf/darwin.patch
new file mode 100644
index 000000000000..be1b84b0012f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/mupdf/default.nix b/nixpkgs/pkgs/applications/misc/mupdf/default.nix
new file mode 100644
index 000000000000..d4f59272c9c9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mupdf/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, lib, fetchurl, 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.concatStringsSep "." (lib.lists.take 2
+      (lib.splitString "." (lib.getVersion openjpeg)));
+
+
+in stdenv.mkDerivation rec {
+  version = "1.14.0";
+  name = "mupdf-${version}";
+
+  src = fetchurl {
+    url = "https://mupdf.com/downloads/archive/${name}-source.tar.gz";
+    sha256 = "093p7lv6pgyymagn28n58fs0np928r0i5p2az9cc4gwccwx4hhy4";
+  };
+
+  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 -lmupdfthird
+    Cflags: -I$dev/include
+    EOF
+
+    moveToOutput "bin" "$bin"
+    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
+    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/nixpkgs/pkgs/applications/misc/mupdf/default.upstream b/nixpkgs/pkgs/applications/misc/mupdf/default.upstream
new file mode 100644
index 000000000000..852233633ca5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch b/nixpkgs/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch
new file mode 100644
index 000000000000..131a1bbbf6bd
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/mwic/default.nix b/nixpkgs/pkgs/applications/misc/mwic/default.nix
new file mode 100644
index 000000000000..d15382619397
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mwic/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+stdenv.mkDerivation rec {
+  version = "0.7.7";
+  name = "mwic-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/jwilk/mwic/releases/download/${version}/${name}.tar.gz";
+    sha256 = "0l4anwiiqclymx0awwn4hzaj8n26ycg8nz76wjphsyscn7z2awad";
+  };
+
+  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; [ ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix b/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
new file mode 100644
index 000000000000..daeb8b159f7a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
@@ -0,0 +1,109 @@
+{ stdenv, fetchurl, substituteAll, cmake, ninja, pkgconfig
+, glibc, gtk3, gtkmm3, pcre, swig, antlr4_7, sudo
+, mysql, libxml2, libmysqlconnectorcpp
+, vsqlite, gdal, libiodbc, libpthreadstubs
+, libXdmcp, libuuid, libzip, libsecret, libssh
+, python2, jre
+, boost, libsigcxx, libX11, openssl
+, 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.13";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-${version}-src.tar.gz";
+    sha256 = "1p4xy2a5cin1l06j4ixpgp1ynhjdj5gax4fjhznspch3c63jp9hj";
+  };
+
+  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";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cmake ninja pkgconfig jre swig wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3 gtkmm3 libX11 antlr4_7.runtime.cpp python2 mysql libxml2
+    libmysqlconnectorcpp vsqlite gdal boost libssh openssl
+    libiodbc pcre cairo libuuid libzip libsecret
+    libsigcxx proj
+    # python dependencies:
+    paramiko pycairo pyodbc # sqlanydb
+    # transitive dependencies:
+    libpthreadstubs libXdmcp libxkbcommon epoxy at-spi2-core dbus
+  ];
+
+  postPatch = ''
+    patchShebangs tools/get_wb_version.sh
+  '';
+
+  NIX_CFLAGS_COMPILE = [
+    # error: 'OGRErr OGRSpatialReference::importFromWkt(char**)' is deprecated
+    "-Wno-error=deprecated-declarations"
+  ];
+
+  cmakeFlags = [
+    "-DMySQL_CONFIG_PATH=${mysql}/bin/mysql_config"
+    "-DIODBC_CONFIG_PATH=${libiodbc}/bin/iodbc-config"
+    "-DWITH_ANTLR_JAR=${antlr4_7.jarLocation}"
+  ];
+
+  # 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}"
+        wrapProgram "''${file}" "''${gappsWrapperArgs[@]}"
+      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/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch b/nixpkgs/pkgs/applications/misc/mysql-workbench/fix-gdal-includes.patch
new file mode 100644
index 000000000000..0a5c31fd40a2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch b/nixpkgs/pkgs/applications/misc/mysql-workbench/hardcode-paths.patch
new file mode 100644
index 000000000000..dddf992e4c12
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix b/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix
new file mode 100644
index 000000000000..022829040b81
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/nanoblogger/default.nix
@@ -0,0 +1,30 @@
+{ fetchurl, stdenv, bash }:
+
+stdenv.mkDerivation rec {
+  version = "3.5-rc1";
+  name = "nanoblogger-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/nanoblogger/${name}.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/nixpkgs/pkgs/applications/misc/navipowm/default.nix b/nixpkgs/pkgs/applications/misc/navipowm/default.nix
new file mode 100644
index 000000000000..9a40e3bc1053
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch b/nixpkgs/pkgs/applications/misc/navit/CMakeLists.txt.patch
new file mode 100644
index 000000000000..7f8a75f319be
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/navit/default.nix b/nixpkgs/pkgs/applications/misc/navit/default.nix
new file mode 100644
index 000000000000..3e763f157985
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/navit/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, fetchFromGitHub, pkgconfig, gtk2, fontconfig, freetype, imlib2
+, SDL_image, libGLU_combined, 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 {
+  name = "navit-${version}";
+  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 = 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_combined 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 = http://www.navit-project.org;
+    description = "Car navigation system with routing engine using OSM maps";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.genesis ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/neap/default.nix b/nixpkgs/pkgs/applications/misc/neap/default.nix
new file mode 100644
index 000000000000..21a5ab0cd0f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/neap/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, python2Packages }:
+
+stdenv.mkDerivation rec {
+  name = "neap-${version}";
+  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/nixpkgs/pkgs/applications/misc/netsurf/browser/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/browser/default.nix
new file mode 100644
index 000000000000..1b800f654340
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/browser/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchurl, pkgconfig, libpng, openssl, curl, gtk2, check, SDL
+, libxml2, libidn, perl, nettools, perlPackages
+, libXcursor, libXrandr, makeWrapper
+, uilib ? "framebuffer"
+, buildsystem
+, nsgenbind
+, libnsfb
+, libwapcaplet
+, libparserutils
+, libcss
+, libhubbub
+, libdom
+, libnsbmp
+, libnsgif
+, libnsutils
+, libutf8proc
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${version}";
+  version = "3.5";
+
+  # UI libs incldue Framebuffer, and gtk
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/netsurf/releases/source/netsurf-${version}-src.tar.gz";
+    sha256 = "1k0x8mzgavfy7q9kywl6kzsc084g1xlymcnsxi5v6jp279nsdwwq";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libpng openssl curl gtk2 check libxml2 libidn perl
+    nettools perlPackages.HTMLParser libXcursor libXrandr makeWrapper SDL
+    buildsystem
+    nsgenbind
+    libnsfb
+    libwapcaplet
+    libparserutils
+    libcss
+    libhubbub
+    libdom
+    libnsbmp
+    libnsgif
+    libnsutils
+    libutf8proc
+ ];
+
+  preConfigure = ''
+    cat <<EOF > Makefile.conf
+    override NETSURF_GTK_RESOURCES := $out/share/Netsurf/${uilib}/res
+    override NETSURF_USE_GRESOURCE := YES
+    EOF
+  '';
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+    "TARGET=${uilib}"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/Netsurf/${uilib}
+    cmd=$(case "${uilib}" in framebuffer) echo nsfb;; gtk) echo nsgtk;; esac)
+    cp $cmd $out/bin/netsurf
+    wrapProgram $out/bin/netsurf --set NETSURFRES $out/share/Netsurf/${uilib}/res
+    tar -hcf - ${uilib}/res | (cd $out/share/Netsurf/ && tar -xvpf -)
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "Free opensource web browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/buildsystem/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/buildsystem/default.nix
new file mode 100644
index 000000000000..882bb75219d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/buildsystem/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-buildsystem-${version}";
+  version = "1.7";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/buildsystem-${version}.tar.gz";
+    sha256 = "1q23aaycv35ma5471l1gxib8lfq2s9kprrkaqgfc926d04rlbmhw";
+  };
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "Build system for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libcss/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libcss/default.nix
new file mode 100644
index 000000000000..e97452249bcf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libcss/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig, perl
+, buildsystem
+, libwapcaplet
+, libparserutils
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libcss";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "0qp4p1q1dwgdra4pkrzd081zjzisxkgwx650ijx323j8bj725daf";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ perl
+    buildsystem
+    libwapcaplet
+    libparserutils
+  ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  NIX_CFLAGS_COMPILE=[ "-Wno-error=implicit-fallthrough" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "Cascading Style Sheets library for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libdom/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libdom/default.nix
new file mode 100644
index 000000000000..50a6dadadb5c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libdom/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig, expat
+, buildsystem
+, libparserutils
+, libwapcaplet
+, libhubbub
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libdom";
+  version = "0.3.0";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "1kk6qbqagx5ypiy9kf0059iqdzyz8fqaw336vzhb5gnrzjw3wv4a";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ expat
+    buildsystem
+    libparserutils
+    libwapcaplet
+    libhubbub
+  ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "Document Object Model library for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libhubbub/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libhubbub/default.nix
new file mode 100644
index 000000000000..715196871512
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libhubbub/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, perl
+, buildsystem
+, libparserutils
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libhubbub";
+  version = "0.3.3";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "101781iw32p47386fxqr01nrkywi12w17ajh02k2vlga4z8zyv86";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ perl
+    buildsystem
+    libparserutils
+  ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "HTML5 parser library for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libnsbmp/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libnsbmp/default.nix
new file mode 100644
index 000000000000..7e99f8f5b86a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libnsbmp/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libnsbmp";
+  version = "0.1.3";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "0gmvzw1whh7553d6s98vr4ri2whjwrgggcq1z5b160gwjw20mzyy";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    buildsystem
+  ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "BMP Decoder for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libnsfb/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libnsfb/default.nix
new file mode 100644
index 000000000000..24235f43a114
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libnsfb/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, uilib? "framebuffer", SDL
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libnsfb";
+  version = "0.1.4";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "176f8why9gzbaca9nnxjqasl02qzc6g507z5w3dzkcjifnkz4mzl";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ buildsystem SDL ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+    "TARGET=${uilib}"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "CSS parser and selection library for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libnsgif/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libnsgif/default.nix
new file mode 100644
index 000000000000..836bfd5f3e0a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libnsgif/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libnsgif";
+  version = "0.1.3";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "1a4z45gh0fw4iybf34fig725av25h31ffk0azi0snzh4130cklnk";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ buildsystem];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "GIF Decoder for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libnsutils/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libnsutils/default.nix
new file mode 100644
index 000000000000..1e8dbe271370
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libnsutils/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libnsutils";
+  version = "0.0.2";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "03p4xmd08yhj70nyj7acjccmmshs59lv4n4zsqpsn5lgkwa23lzy";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ buildsystem];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "Generalised utility library for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libparserutils/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libparserutils/default.nix
new file mode 100644
index 000000000000..ed9433b9f570
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libparserutils/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, perl
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libparserutils";
+  version = "0.2.3";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "01gzlsabgl6x0icd8758d9jqs8rrf9574bdkjainn04w3fs3znf5";
+  };
+
+  buildInputs = [ buildsystem perl ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "Parser building library for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libutf8proc/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libutf8proc/default.nix
new file mode 100644
index 000000000000..a905f3a12a8f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libutf8proc/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libutf8proc";
+  version = "1.3.1";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "0xf659y3c6ikjnip47r30wv796a34d71p6qhc4xjs64iqszm1sbq";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ buildsystem];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "UTF8 Processing library for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libwapcaplet/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libwapcaplet/default.nix
new file mode 100644
index 000000000000..509cbeb4503f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libwapcaplet/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-${libname}-${version}";
+  libname = "libwapcaplet";
+  version = "0.3.0";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
+    sha256 = "0cs1dd2afjgc3wf5gqg434hv6jdabrp9qvlpl4dp53nhkyfywna3";
+  };
+
+  buildInputs = [ buildsystem ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "String internment library for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/nsgenbind/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/nsgenbind/default.nix
new file mode 100644
index 000000000000..971e16848ae7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/netsurf/nsgenbind/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl
+, flex, bison
+, buildsystem
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "netsurf-nsgenbind-${version}";
+  version = "0.3";
+
+  src = fetchurl {
+    url = "http://download.netsurf-browser.org/libs/releases/nsgenbind-${version}-src.tar.gz";
+    sha256 = "16xsazly7gxwywmlkf2xix9b924sj3skhgdak7218l0nc62a08gg";
+  };
+
+  buildInputs = [ buildsystem flex bison ];
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "NSSHARED=${buildsystem}/share/netsurf-buildsystem"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.netsurf-browser.org/;
+    description = "Generator for JavaScript bindings for netsurf browser";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/nix-tour/default.nix b/nixpkgs/pkgs/applications/misc/nix-tour/default.nix
new file mode 100644
index 000000000000..7e5a3a7840d7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/nix-tour/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, electron } :
+
+stdenv.mkDerivation rec {
+  name = "nix-tour-${version}";
+  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 "#!${stdenv.shell}" > $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/nixpkgs/pkgs/applications/misc/nixnote2/default.nix b/nixpkgs/pkgs/applications/misc/nixnote2/default.nix
new file mode 100644
index 000000000000..145abfba5d5c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/nixnote2/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, mkDerivation, fetchFromGitHub, boost
+, qtbase, qtwebkit, poppler, qmake, hunspell, html-tidy}:
+
+mkDerivation rec {
+  name = "nixnote2-${version}";
+  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/nixpkgs/pkgs/applications/misc/nnn/default.nix b/nixpkgs/pkgs/applications/misc/nnn/default.nix
new file mode 100644
index 000000000000..0e60c2bfa16e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/nnn/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, pkgconfig, ncurses, readline, conf ? null }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "nnn-${version}";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "jarun";
+    repo = "nnn";
+    rev = "v${version}";
+    sha256 = "1vkrhsdwgacln335rjywdf7nj7fg1x55szmm8xrvwda8y2qjqhc4";
+  };
+
+  configFile = optionalString (conf!=null) (builtins.toFile "nnn.h" conf);
+  preBuild = optionalString (conf!=null) "cp ${configFile} nnn.h";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ncurses readline ];
+
+  installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/noice/default.nix b/nixpkgs/pkgs/applications/misc/noice/default.nix
new file mode 100644
index 000000000000..bcf2edd8f2f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/noice/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, ncurses, conf ? null }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "noice-${version}";
+  version = "0.6";
+
+  src = fetchgit {
+    url = "git://git.2f30.org/noice.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "03rwglcy47fh6rb630vws10m95bxpcfv47nxrlws2li2ljam8prw";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/notejot/default.nix b/nixpkgs/pkgs/applications/misc/notejot/default.nix
new file mode 100644
index 000000000000..a687e1046050
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/notejot/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, vala_0_40, pkgconfig, meson, ninja, python3, granite
+, gtk3, gnome3, gtksourceview, json-glib, gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "notejot";
+  version = "1.5.2";
+
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "lainsce";
+    repo = pname;
+    rev = version;
+    sha256 = "17rqyckq7z5cxj3mbfrar1zzgwbzhrx87ps7mm6bf798hwflm9qk";
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
+    gnome3.libgee
+    granite
+    gtk3
+    gtksourceview
+    json-glib
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix b/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
new file mode 100644
index 000000000000..828c39d5ed87
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, dbus-glib
+, fetchurl
+, glib
+, gnome3
+, libnotify
+, libtool
+, libwnck3
+, makeWrapper
+, pkgconfig
+}:
+
+let baseURI = "https://launchpad.net/~leolik/+archive/leolik";
+in stdenv.mkDerivation rec {
+  name = "notify-osd-${version}";
+  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
+    gnome3.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/nixpkgs/pkgs/applications/misc/notify-osd/default.nix b/nixpkgs/pkgs/applications/misc/notify-osd/default.nix
new file mode 100644
index 000000000000..f602ce9db66a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/notify-osd/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, glib, libwnck3, libnotify, dbus-glib, makeWrapper, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "notify-osd-${version}";
+  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
+    gnome3.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/nixpkgs/pkgs/applications/misc/nrsc5/default.nix b/nixpkgs/pkgs/applications/misc/nrsc5/default.nix
new file mode 100644
index 000000000000..69f74d66dd01
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/nrsc5/default.nix
@@ -0,0 +1,52 @@
+{ 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 {
+  name = "nrsc5-${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/nixpkgs/pkgs/applications/misc/nut/default.nix b/nixpkgs/pkgs/applications/misc/nut/default.nix
new file mode 100644
index 000000000000..816918ca0638
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/nut/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, pkgconfig, neon, libusb, openssl, udev, avahi, freeipmi
+, libtool, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "nut-2.7.4";
+
+  src = fetchurl {
+    url = "http://www.networkupstools.org/source/2.7/${name}.tar.gz";
+    sha256 = "19r5dm07sfz495ckcgbfy0pasx0zy3faa0q7bih69lsjij8q43lq";
+  };
+
+  buildInputs = [ neon libusb openssl udev avahi freeipmi libtool ];
+
+  nativeBuildInputs = [ 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.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 = http://www.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/nixpkgs/pkgs/applications/misc/ocropus/default.nix b/nixpkgs/pkgs/applications/misc/ocropus/default.nix
new file mode 100644
index 000000000000..40432c18aa38
--- /dev/null
+++ b/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 {
+  name = "ocropus-${version}";
+  version = "20170811";
+
+  src = fetchFromGitHub {
+    sha256 = "0qx0d8yj0w66qglkrmfavp5dh1sky72njfaqii7bnrpv5n4j3q39";
+    rev = "ae84a8edaf0b76135f749ba66fc30c272d0726d0";
+    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/nixpkgs/pkgs/applications/misc/octoprint/default.nix b/nixpkgs/pkgs/applications/misc/octoprint/default.nix
new file mode 100644
index 000000000000..9622689199a8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/octoprint/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, lib, fetchFromGitHub, python2 }:
+
+let
+  mkOverride = attrname: version: sha256:
+    self: super: {
+      ${attrname} = super.${attrname}.overridePythonAttrs (oldAttrs: {
+        inherit version;
+        src = oldAttrs.src.override {
+          inherit version sha256;
+        };
+      });
+    };
+
+  py = python2.override {
+    packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ([
+      (mkOverride "flask"       "0.10.1" "0wrkavjdjndknhp8ya8j850jq7a1cli4g5a93mg8nh1xz2gq50sc")
+      (mkOverride "flask_login" "0.2.11" "1rg3rsjs1gwi2pw6vr9jmhaqm9b3vc9c4hfcsvp4y8agbh7g3mc3")
+      (mkOverride "jinja2"      "2.8.1"  "14aqmhkc9rw5w0v311jhixdm6ym8vsm29dhyxyrjfqxljwx1yd1m")
+      (mkOverride "pylru"       "1.0.9"  "0b0pq0l7xv83dfsajsc49jcxzc99kb9jfx1a1dlx22hzcy962dvi")
+      (mkOverride "sarge"       "0.1.4"  "08s8896973bz1gg0pkr592w6g4p6v47bkfvws5i91p9xf8b35yar")
+      (mkOverride "tornado"     "4.5.3"  "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d")
+    ]);
+  };
+
+  ignoreVersionConstraints = [
+    "Click"
+    "Flask-Assets"
+    "Flask-Babel"
+    "Flask-Principal"
+    "PyYAML"
+    "emoji"
+    "flask"
+    "future"
+    "futures"
+    "pkginfo"
+    "psutil"
+    "pyserial"
+    "python-dateutil"
+    "requests"
+    "rsa"
+    "scandir"
+    "semantic_version"
+    "websocket-client"
+    "werkzeug"
+    "wrapt"
+  ];
+
+in py.pkgs.buildPythonApplication rec {
+  pname = "OctoPrint";
+  version = "1.3.9";
+
+  src = fetchFromGitHub {
+    owner  = "foosel";
+    repo   = "OctoPrint";
+    rev    = version;
+    sha256 = "1yqbsfmkx4wiykjrh66a05lhn15qhpc9ay67l37kv8bhdqf2xkj4";
+  };
+
+  propagatedBuildInputs = with py.pkgs; [
+    awesome-slugify flask_assets rsa requests pkginfo watchdog
+    semantic-version flask_principal werkzeug flaskbabel tornado
+    psutil pyserial flask_login netaddr markdown sockjs-tornado
+    pylru pyyaml sarge feedparser netifaces click websocket_client
+    scandir chainmap future dateutil futures wrapt monotonic emoji
+    frozendict
+  ];
+
+  checkInputs = with py.pkgs; [ nose mock ddt ];
+
+  postPatch = ''
+    sed -r -i \
+      ${lib.concatStringsSep "\n" (map (e:
+        ''-e 's@${e}[<>=]+.*@${e}",@g' \''
+      ) ignoreVersionConstraints)}
+      setup.py
+  '';
+
+  checkPhase = "nosetests";
+
+  meta = with stdenv.lib; {
+    homepage = https://octoprint.org/;
+    description = "The snappy web interface for your 3D printer";
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/octoprint/m33-fio-one-library.patch b/nixpkgs/pkgs/applications/misc/octoprint/m33-fio-one-library.patch
new file mode 100644
index 000000000000..24c9c4a80f5d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/octoprint/m33-fio-one-library.patch
@@ -0,0 +1,175 @@
+From 314bcebfcd1759981ce12255be29d8ae68cd400b Mon Sep 17 00:00:00 2001
+From: Nikolay Amiantov <ab@fmap.me>
+Date: Wed, 23 Nov 2016 00:40:48 +0300
+Subject: [PATCH] Build and use one version of preprocessor library
+
+---
+ octoprint_m33fio/__init__.py   | 73 ++----------------------------------------
+ shared library source/Makefile | 62 +++--------------------------------
+ 2 files changed, 6 insertions(+), 129 deletions(-)
+
+diff --git a/octoprint_m33fio/__init__.py b/octoprint_m33fio/__init__.py
+index 054870a..4d5ecc1 100755
+--- a/octoprint_m33fio/__init__.py
++++ b/octoprint_m33fio/__init__.py
+@@ -1189,78 +1189,9 @@ class M33FioPlugin(
+ 		# Check if using shared library or checking if it is usable
+ 		if self._settings.get_boolean(["UseSharedLibrary"]) or isUsable :
+ 	
+-			# Check if running on Linux
+-			if platform.uname()[0].startswith("Linux") :
+-
+-				# Check if running on a Raspberry Pi 1
+-				if platform.uname()[4].startswith("armv6l") and self.getCpuHardware() == "BCM2708" :
+-	
+-					# Set shared library
+-					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_arm1176jzf-s.so")
+-	
+-				# Otherwise check if running on a Raspberry Pi 2 or Raspberry Pi 3
+-				elif platform.uname()[4].startswith("armv7l") and self.getCpuHardware() == "BCM2709" :
+-	
+-					# Set shared library
+-					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_arm_cortex-a7.so")
+-	
+-				# Otherwise check if running on an ARM7 device
+-				elif platform.uname()[4].startswith("armv7") :
+-	
+-					# Set shared library
+-					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_arm7.so")
+-	
+-				# Otherwise check if using an i386 or x86-64 device
+-				elif platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64") :
+-
+-					# Check if Python is running as 32-bit
+-					if platform.architecture()[0].startswith("32") :
+-		
+-						# Set shared library
+-						self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_i386.so")
+-	
+-					# Otherwise check if Python is running as 64-bit
+-					elif platform.architecture()[0].startswith("64") :
+-		
+-						# Set shared library
+-						self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_x86-64.so")
+-
+-			# Otherwise check if running on Windows and using an i386 or x86-64 device
+-			elif platform.uname()[0].startswith("Windows") and (platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64")) :
++			# Set shared library
++			self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/libpreprocessor.so")
+ 
+-				# Check if Python is running as 32-bit
+-				if platform.architecture()[0].startswith("32") :
+-	
+-					# Set shared library
+-					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_i386.dll")
+-
+-				# Otherwise check if Python is running as 64-bit
+-				elif platform.architecture()[0].startswith("64") :
+-	
+-					# Set shared library
+-					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_x86-64.dll")
+-
+-			# Otherwise check if running on macOS and using an i386 or x86-64 device
+-			elif platform.uname()[0].startswith("Darwin") and (platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64")) :
+-
+-				# Check if Python is running as 32-bit
+-				if platform.architecture()[0].startswith("32") :
+-	
+-					# Set shared library
+-					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_i386.dylib")
+-
+-				# Otherwise check if Python is running as 64-bit
+-				elif platform.architecture()[0].startswith("64") :
+-	
+-					# Set shared library
+-					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_x86-64.dylib")
+-			
+-			# Otherwise check if running FreeBSD
+-			elif platform.uname()[0].startswith("FreeBSD") :
+-			
+-				# TODO: Compile FreeBSD shared library pre-processors
+-				pass
+-			
+ 			# Check if shared library was set
+ 			if self.sharedLibrary :
+ 
+diff --git a/shared library source/Makefile b/shared library source/Makefile
+index 792b4f4..4c74f5c 100755
+--- a/shared library source/Makefile	
++++ b/shared library source/Makefile	
+@@ -1,68 +1,14 @@
+-# Target platform options: LINUX32, LINUX64, WINDOWS32, WINDOWS64, PI, PI2, ARM7, MACOS32, MACOS64
+-LIBRARY_NAME = preprocessor
+-TARGET_PLATFORM = LINUX64
++LIBRARY_NAME = libpreprocessor
+ VER = .1
+ 
+-ifeq ($(TARGET_PLATFORM), LINUX32)
+-	PROG = $(LIBRARY_NAME)_i386.so
+-	CC = g++
+-	CFLAGS = -fPIC -m32 -static-libgcc -O3 -Wl,-soname,$(PROG)$(VER) -static-libstdc++
+-endif
+-
+-ifeq ($(TARGET_PLATFORM), LINUX64)
+-	PROG = $(LIBRARY_NAME)_x86-64.so
+-	CC = g++
+-	CFLAGS = -fPIC -m64 -static-libgcc -O3 -Wl,-soname,$(PROG)$(VER) -static-libstdc++
+-endif
+-
+-ifeq ($(TARGET_PLATFORM), WINDOWS32)
+-	PROG = $(LIBRARY_NAME)_i386.dll
+-	CC = i686-w64-mingw32-g++
+-	CFLAGS = -static-libgcc -O3 -Wl,-soname,$(PROG)$(VER) -static-libstdc++
+-endif
+-
+-ifeq ($(TARGET_PLATFORM), WINDOWS64)
+-	PROG = $(LIBRARY_NAME)_x86-64.dll
+-	CC = x86_64-w64-mingw32-g++
+-	CFLAGS = -static-libgcc -O3 -Wl,-soname,$(PROG)$(VER) -static-libstdc++
+-endif
+-
+-ifeq ($(TARGET_PLATFORM), PI)
+-	PROG = $(LIBRARY_NAME)_arm1176jzf-s.so
+-	CC = /opt/arm-toolchain/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
+-	CFLAGS = -fPIC -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -static-libgcc -O3 -Wl,-soname,$(PROG)$(VER) -static-libstdc++
+-endif
+-
+-ifeq ($(TARGET_PLATFORM), PI2)
+-	PROG = $(LIBRARY_NAME)_arm_cortex-a7.so
+-	CC = /opt/arm-toolchain/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
+-	CFLAGS = -fPIC -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -static-libgcc -O3 -Wl,-soname,$(PROG)$(VER) -static-libstdc++
+-endif
+-
+-ifeq ($(TARGET_PLATFORM), ARM7)
+-	PROG = $(LIBRARY_NAME)_arm7.so
+-	CC = /opt/arm-toolchain/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++
+-	CFLAGS = -fPIC -mcpu=generic-armv7-a -mfpu=vfp -mfloat-abi=hard -static-libgcc -O3 -Wl,-soname,$(PROG)$(VER) -static-libstdc++
+-endif
+-
+-ifeq ($(TARGET_PLATFORM), MACOS32)
+-	PROG = $(LIBRARY_NAME)_i386.dylib
+-	CC = clang++
+-	CFLAGS = -fPIC -m32 -stdlib=libc++ -O3 -Wl,-install_name,$(PROG)$(VER)
+-
+-endif
+-
+-ifeq ($(TARGET_PLATFORM), MACOS64)
+-	PROG = $(LIBRARY_NAME)_x86-64.dylib
+-	CC = clang++
+-	CFLAGS = -fPIC -m64 -stdlib=libc++ -O3 -Wl,-install_name,$(PROG)$(VER)
+-endif
++PROG = $(LIBRARY_NAME).so
++CFLAGS = -fPIC -O3 -Wl,-soname,$(PROG)$(VER)
+ 
+ SRCS = preprocessor.cpp gcode.cpp vector.cpp
+ CFLAGS += -Wall -std=c++11 -fvisibility=hidden -shared
+ 
+ all:
+-	$(CC) $(CFLAGS) -o ../octoprint_m33fio/static/libraries/$(PROG) $(SRCS)
++	$(CXX) $(CFLAGS) -o ../octoprint_m33fio/static/libraries/$(PROG) $(SRCS)
+ 
+ clean:
+ 	rm -f ../octoprint_m33fio/static/libraries/$(PROG)
+-- 
+2.14.1
+
diff --git a/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix b/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
new file mode 100644
index 000000000000..2e3bc058280a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
@@ -0,0 +1,111 @@
+{ stdenv, fetchFromGitHub, octoprint, python2Packages }:
+
+let
+  buildPlugin = args: python2Packages.buildPythonPackage (args // {
+    propagatedBuildInputs = (args.propagatedBuildInputs or []) ++ [ octoprint ];
+    # none of the following have tests
+    doCheck = false;
+  });
+
+  self = {
+
+    # Deprecated alias
+    m3d-fio = self.m33-fio; # added 2016-08-13
+
+    m33-fio = buildPlugin rec {
+      name = "M33-Fio-${version}";
+      version = "1.21";
+
+      src = fetchFromGitHub {
+        owner = "donovan6000";
+        repo = "M33-Fio";
+        rev = "V${version}";
+        sha256 = "1la3611kkqn8yiwjn6cizc45ri8pnk6ckld1na4nk6mqk88jvjq7";
+      };
+
+      patches = [
+        ./m33-fio-one-library.patch
+      ];
+
+      postPatch = ''
+        rm -rf octoprint_m33fio/static/libraries/*
+        (
+          cd 'shared library source'
+          make
+        )
+      '';
+
+      meta = with stdenv.lib; {
+        homepage = https://github.com/donovan6000/M33-Fio;
+        description = "OctoPrint plugin for the Micro 3D printer";
+        platforms = platforms.all;
+        license = licenses.gpl3;
+        maintainers = with maintainers; [ abbradar ];
+      };
+    };
+
+    mqtt = buildPlugin rec {
+      name = "OctoPrint-MQTT-${version}";
+      version = "0.8.0";
+
+      src = fetchFromGitHub {
+        owner = "OctoPrint";
+        repo = "OctoPrint-MQTT";
+        rev = version;
+        sha256 = "1318pgwy39gkdqgll3q5lwm7avslgdwyiwb5v8m23cgyh5w8cjq7";
+      };
+
+      propagatedBuildInputs = with python2Packages; [ paho-mqtt ];
+
+      meta = with stdenv.lib; {
+        homepage = https://github.com/OctoPrint/OctoPrint-MQTT;
+        description = "Publish printer status MQTT";
+        platforms = platforms.all;
+        license = licenses.agpl3;
+        maintainers = with maintainers; [ peterhoeg ];
+      };
+    };
+
+    titlestatus = buildPlugin rec {
+      name = "OctoPrint-TitleStatus-${version}";
+      version = "0.0.4";
+
+      src = fetchFromGitHub {
+        owner = "MoonshineSG";
+        repo = "OctoPrint-TitleStatus";
+        rev = version;
+        sha256 = "1l78xrabn5hcly2mgxwi17nwgnp2s6jxi9iy4wnw8k8icv74ag7k";
+      };
+
+      meta = with stdenv.lib; {
+        homepage = https://github.com/MoonshineSG/OctoPrint-TitleStatus;
+        description = "Show printers status in window title";
+        platforms = platforms.all;
+        license = licenses.agpl3;
+        maintainers = with maintainers; [ abbradar ];
+      };
+    };
+
+    stlviewer = buildPlugin rec {
+      name = "OctoPrint-STLViewer-${version}";
+      version = "0.4.1";
+
+      src = fetchFromGitHub {
+        owner = "jneilliii";
+        repo = "OctoPrint-STLViewer";
+        rev = "v${version}";
+        sha256 = "1f64s37g2d79g76v0vjnjrc2jp2gwrsnfgx7w3n0hkf1lz1pjkm0";
+      };
+
+      meta = with stdenv.lib; {
+        homepage = https://github.com/jneilliii/Octoprint-STLViewer;
+        description = "A simple stl viewer tab for OctoPrint";
+        platforms = platforms.all;
+        license = licenses.agpl3;
+        maintainers = with maintainers; [ abbradar ];
+      };
+    };
+
+  };
+
+in self
diff --git a/nixpkgs/pkgs/applications/misc/ola/default.nix b/nixpkgs/pkgs/applications/misc/ola/default.nix
new file mode 100644
index 000000000000..e16d9354bb43
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ola/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, bison, flex, pkgconfig
+, libuuid, cppunit, protobuf3_1, zlib, avahi, libmicrohttpd
+, perl, python36 # Replace by python3 after the next update
+}:
+
+stdenv.mkDerivation rec {
+  name = "ola-${version}";
+  version = "0.10.7";
+
+  src = fetchFromGitHub {
+    owner = "OpenLightingProject";
+    repo = "ola";
+    rev = version;
+    sha256 = "18krwrw7w1qzwih8gnmv7r4sah5ppvq7ax65r7l5yjxn3ihwp2kf";
+  };
+
+  nativeBuildInputs = [ autoreconfHook bison flex pkgconfig perl ];
+  buildInputs = [ libuuid cppunit protobuf3_1 zlib avahi libmicrohttpd python36 ];
+  propagatedBuildInputs = [
+    (python36.pkgs.protobuf.override { protobuf = protobuf3_1; })
+    python36.pkgs.numpy
+  ];
+
+  configureFlags = [ "--enable-python-libs" ];
+
+  meta = with stdenv.lib; {
+    description = "A framework for controlling entertainment lighting equipment.";
+    maintainers = [ maintainers.globin ];
+    license = with licenses; [ lgpl21 gpl2Plus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/omegat.nix b/nixpkgs/pkgs/applications/misc/omegat.nix
new file mode 100644
index 000000000000..660b5db61058
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/omegat.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, unzip, jdk, makeWrapper}:
+
+stdenv.mkDerivation rec {
+  version = "4.1.5.2";
+  pname = "omegat";
+
+  src = fetchurl {  # their zip has repeated files or something, so no fetchzip
+    url = mirror://sourceforge/project/omegat/OmegaT%20-%20Latest/OmegaT%204.1.5%20update%202/OmegaT_4.1.5_02_Beta_Without_JRE.zip;
+    sha256 = "1mdnsvjgsccpd5xwpqzgva5jjp8yd1akq9aqpild4v6k70lqql2b";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/onboard/default.nix b/nixpkgs/pkgs/applications/misc/onboard/default.nix
new file mode 100644
index 000000000000..dbd79ba3e1b3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/onboard/default.nix
@@ -0,0 +1,157 @@
+{ fetchurl
+, stdenv
+, aspellWithDicts
+, at-spi2-core ? null
+, atspiSupport ? true
+, bash
+, glib
+, glibcLocales
+, gnome3
+, gobject-introspection
+, gsettings-desktop-schemas
+, gtk3
+, hunspell
+, hunspellDicts
+, hunspellWithDicts
+, intltool
+, isocodes
+, libcanberra-gtk3
+, udev
+, libxkbcommon
+, pkgconfig
+, procps
+, python3
+, wrapGAppsHook
+, xorg
+, yelp
+}:
+
+let
+  customHunspell = hunspellWithDicts [hunspellDicts.en-us];
+  majorVersion = "1.4";
+  version = "${majorVersion}.1";
+in python3.pkgs.buildPythonApplication rec {
+  name = "onboard-${version}";
+  src = fetchurl {
+    url = "https://launchpad.net/onboard/${majorVersion}/${version}/+download/${name}.tar.gz";
+    sha256 = "01cae1ac5b1ef1ab985bd2d2d79ded6fc99ee04b1535cc1bb191e43a231a3865";
+  };
+
+  patches = [
+    # Allow loading hunspell dictionaries installed in NixOS system path
+    ./hunspell-use-xdg-datadirs.patch
+  ];
+
+  # For tests
+  LC_ALL = "en_US.UTF-8";
+  doCheck = false;
+  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
+  ];
+
+  propagatedBuildInputs = [
+    glib
+    python3
+    python3.pkgs.dbus-python
+    python3.pkgs.distutils_extra
+    python3.pkgs.pyatspi
+    python3.pkgs.pycairo
+    python3.pkgs.pygobject3
+    python3.pkgs.systemd
+  ];
+
+  buildInputs = [
+    bash
+    gnome3.dconf
+    gsettings-desktop-schemas
+    gtk3
+    hunspell
+    isocodes
+    libcanberra-gtk3
+    udev
+    libxkbcommon
+    wrapGAppsHook
+    xorg.libXtst
+    xorg.libxkbfile
+  ] ++ stdenv.lib.optional atspiSupport at-spi2-core;
+
+  nativeBuildInputs = [
+    glibcLocales
+    gobject-introspection # populate GI_TYPELIB_PATH
+    intltool
+    pkgconfig
+  ];
+
+  propagatedUserEnvPkgs = [
+    gnome3.dconf
+  ];
+
+  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  ./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",'
+  '';
+
+  postInstall = ''
+    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/
+  '';
+
+  meta = {
+    homepage = https://launchpad.net/onboard;
+    description = "An onscreen keyboard useful for tablet PC users and for mobility impaired users.";
+    maintainers = with stdenv.lib.maintainers; [ johnramsden ];
+    license = stdenv.lib.licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch b/nixpkgs/pkgs/applications/misc/onboard/hunspell-use-xdg-datadirs.patch
new file mode 100644
index 000000000000..2463c8d5f5ac
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/oneko/default.nix b/nixpkgs/pkgs/applications/misc/oneko/default.nix
new file mode 100644
index 000000000000..b87f11d7b05d
--- /dev/null
+++ b/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";
+  name = "oneko-${version}";
+  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/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix b/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix
new file mode 100644
index 000000000000..8ff9a2f44d55
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/openbox-menu/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, glib, gtk2, menu-cache }:
+
+stdenv.mkDerivation rec {
+  name = "openbox-menu-${version}";
+  version = "0.8.0";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/fabriceT/openbox-menu/downloads/${name}.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/nixpkgs/pkgs/applications/misc/openbox-menu/with-svg.patch b/nixpkgs/pkgs/applications/misc/openbox-menu/with-svg.patch
new file mode 100644
index 000000000000..dd6710f5cfc9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/openbrf/default.nix b/nixpkgs/pkgs/applications/misc/openbrf/default.nix
new file mode 100644
index 000000000000..b8b6e42d5cf5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/openbrf/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, qtbase, vcg, glew, qmake, libGLU_combined }:
+
+
+stdenv.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_combined ]}" \
+      $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/nixpkgs/pkgs/applications/misc/opencpn/default.nix b/nixpkgs/pkgs/applications/misc/opencpn/default.nix
new file mode 100644
index 000000000000..120d3a82b5e9
--- /dev/null
+++ b/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 {
+  name = "opencpn-${version}";
+  version = "4.8.8";
+
+  src = fetchFromGitHub {
+    owner = "OpenCPN";
+    repo = "OpenCPN";
+    rev = "v${version}";
+    sha256 = "1z9xfc5fgbdslzak3iqg9nx6wggxwv8qwfxfhvfblkyg6kjw30dg";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/openjump/default.nix b/nixpkgs/pkgs/applications/misc/openjump/default.nix
new file mode 100644
index 000000000000..fdc4cd5b6d93
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/openjump/default.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation {
+  name = "openjump-1.3.1";
+
+  src = fetchurl {
+    url = mirror://sourceforge/jump-pilot/OpenJUMP/1.3.1/openjump-1.3.1.zip;
+    sha256 = "0y4z53yx0x7rp3c8rnj028ni3gr47r35apgcpqp3jl7r2di6zgqm";
+  };
+
+  # ln jump.log hack: a different user will probably get a permission denied
+  # error. Still this is better than getting it always.
+  # TODO: build from source and patch this
+  unpackPhase = ''
+    mkdir -p $out/bin;
+    cd $out; unzip $src
+    s=$out/bin/OpenJump
+    dir=$(echo $out/openjump-*)
+    cat >> $s << EOF
+    #!/bin/sh
+    cd $dir/bin
+    exec /bin/sh openjump.sh
+    EOF
+    chmod +x $s
+    ln -s /tmp/openjump.log $dir/bin/jump.log
+  '';
+
+  installPhase = ":";
+
+  buildInputs = [unzip];
+
+  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/nixpkgs/pkgs/applications/misc/opentx/default.nix b/nixpkgs/pkgs/applications/misc/opentx/default.nix
new file mode 100644
index 000000000000..cd9a86e7fac7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/opentx/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub
+, cmake, gcc-arm-embedded, binutils-arm-embedded, python
+, qt5, SDL, gtest
+, dfu-util, avrdude
+}:
+
+let
+
+  version = "2.2.1";
+
+in stdenv.mkDerivation {
+
+  name = "opentx-${version}";
+
+  src = fetchFromGitHub {
+    owner = "opentx";
+    repo = "opentx";
+    rev = version;
+    sha256 = "01lnnkrxach21aivnx1k1iqhih02nixh8c4nk6rpw408p13him9g";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    cmake
+    gcc-arm-embedded binutils-arm-embedded
+  ];
+
+  buildInputs = with qt5; [
+    python python.pkgs.pyqt4
+    qtbase qtmultimedia qttranslations
+    SDL
+  ];
+
+  postPatch = ''
+    sed -i companion/src/burnconfigdialog.cpp -e 's|/usr/.*bin/dfu-util|${dfu-util}/bin/dfu-util|'
+    sed -i companion/src/burnconfigdialog.cpp -e 's|/usr/.*bin/avrdude|${avrdude}/bin/avrdude|'
+  '';
+
+  cmakeFlags = [
+    "-DGTEST_ROOT=${gtest.src}/googletest"
+    "-DQT_TRANSLATIONS_DIR=${qt5.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"
+    "-DNANO=NO"
+  ];
+
+  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://open-tx.org/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    maintainers = with maintainers; [ elitak ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/misc/orca/default.nix b/nixpkgs/pkgs/applications/misc/orca/default.nix
new file mode 100644
index 000000000000..f52215fa4a26
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/orca/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, pkgconfig, fetchurl, buildPythonApplication
+, autoreconfHook, wrapGAppsHook, gobject-introspection
+, intltool, 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, setproctitle, gst_all_1, gst-python
+}:
+
+let
+  pname = "orca";
+  version = "3.30.1";
+in buildPythonApplication rec {
+  name = "${pname}-${version}";
+
+  format = "other";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "1b9s69frjmghjm1p9a4rrvknl9m0qlwr7mr4lsxkvjnblhsnw0g7";
+  };
+
+  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
+    intltool yelp-tools itstool gobject-introspection
+  ];
+
+  propagatedBuildInputs = [
+    # TODO: re-add liblouis when it is fixed
+    pygobject3 pyatspi dbus-python pyxdg brltty speechd gst-python setproctitle
+  ];
+
+  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
+  ];
+
+  # Run intltoolize to create po/Makefile.in.in
+  preConfigure = ''
+    intltoolize
+  '';
+
+  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 ] ++ gnome3.maintainers;
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch b/nixpkgs/pkgs/applications/misc/orca/fix-paths.patch
new file mode 100644
index 000000000000..ffb56dbe239c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/orpie/default.nix b/nixpkgs/pkgs/applications/misc/orpie/default.nix
new file mode 100644
index 000000000000..bc6aa242f338
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/orpie/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ocamlPackages, ncurses, gsl }:
+
+stdenv.mkDerivation rec {
+  name = "orpie-${version}";
+  version = "1.5.2";
+
+  src = fetchurl {
+    url = "http://pessimization.com/software/orpie/${name}.tar.gz";
+    sha256 = "0v9xgpcf186ni55rkmx008msyszw0ypd6rd98hgwpih8yv3pymfy";
+  };
+
+  buildInputs = [ ncurses gsl ] ++ (with ocamlPackages; [ ocaml camlp4 ]);
+
+  meta = {
+    homepage = https://github.com/pelzlpj/orpie;
+    description = "A fullscreen RPN calculator for the console";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ obadz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix b/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix
new file mode 100644
index 000000000000..5787adef2a3e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/osm2xmap/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, libroxml, proj, libyamlcpp, boost } :
+
+stdenv.mkDerivation rec {
+  name = "osm2xmap-${version}";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    sha256 = "1d3f18wzk240yp0q8i2vskhcfj5ar61s4hw83vgps0wr2aglph3w";
+    repo = "osm2xmap";
+    owner = "sembruk";
+    rev = "v${version}";
+  };
+
+  makeFlags = [
+    "GIT_VERSION=$(version)"
+    "GIT_TIMESTAMP="
+    "SHAREDIR=$(out)/share/"
+    "INSTALL_BINDIR=$(out)/bin"
+    "INSTALL_MANDIR=$(out)/share/man/man1"
+    "INSTALL_SHAREDIR=$(out)/share/"
+  ];
+
+  installFlags = [ "DESTDIR=$(out)" ];
+
+  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/nixpkgs/pkgs/applications/misc/osmctools/default.nix b/nixpkgs/pkgs/applications/misc/osmctools/default.nix
new file mode 100644
index 000000000000..bb53782fb7d2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/osmctools/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, zlib } :
+
+let
+
+  convert_src = fetchurl {
+    url = http://m.m.i24.cc/osmconvert.c;
+    sha256 = "1mvmb171c1jqxrm80jc7qicwk4kgg7yq694n7ci65g6i284r984x";
+    # version = 0.8.5
+  };
+
+  filter_src = fetchurl {
+    url = http://m.m.i24.cc/osmfilter.c;
+    sha256 = "0vm3bls9jb2cb5b11dn82sxnc22qzkf4ghmnkivycigrwa74i6xl";
+    # version = 1.4.0
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "osmctools-${version}";
+  version = "0.8.5plus1.4.0";
+
+  buildInputs = [ zlib ];
+
+  phases = [ "buildPhase" "installPhase" ];
+
+  buildPhase = ''
+    cc ${convert_src} -lz -O3 -o osmconvert
+    cc ${filter_src} -O3 -o osmfilter
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv osmconvert $out/bin
+    mv osmfilter $out/bin
+  '';
+
+  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
+    ];
+    platforms = platforms.unix;
+    license = licenses.agpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix b/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix
new file mode 100644
index 000000000000..2b35cb770389
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake, libosmium, protozero, boost, bzip2, zlib, expat }:
+
+stdenv.mkDerivation rec {
+  name = "osmium-tool-${version}";
+  version = "1.10.0";
+
+  src = fetchFromGitHub {
+    owner = "osmcode";
+    repo = "osmium-tool";
+    rev = "v${version}";
+    sha256 = "1balhz78nva0agmbp8n9vg8fhmdssnd9fjxj20bpw7b45mxhjc20";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libosmium protozero boost bzip2 zlib expat ];
+
+  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/nixpkgs/pkgs/applications/misc/overmind/default.nix b/nixpkgs/pkgs/applications/misc/overmind/default.nix
new file mode 100644
index 000000000000..d7f601b50cd8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/overmind/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, tmux, which, makeWrapper }:
+
+buildGoPackage rec {
+  name = "overmind-${version}";
+  version = "1.2.1";
+  goPackagePath = "github.com/DarthSim/overmind";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$bin/bin/overmind" --prefix PATH : "${stdenv.lib.makeBinPath [ tmux which ]}"
+  '';
+
+  src = fetchFromGitHub {
+    owner = "DarthSim";
+    repo = "overmind";
+    rev = "v${version}";
+    sha256 = "11ws9rsy8ladjp1y3b6vva9sjmw4s24xc1w18lyhfz63xc908nfw";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/DarthSim/;
+    description = "Process manager for Procfile-based applications and tmux";
+    license = with licenses; [ mit ];
+    maintainers = [ maintainers.adisbladis ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pbpst/default.nix b/nixpkgs/pkgs/applications/misc/pbpst/default.nix
new file mode 100644
index 000000000000..fcf88200133c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pbpst/default.nix
@@ -0,0 +1,49 @@
+{ 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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix b/nixpkgs/pkgs/applications/misc/pcmanfm/default.nix
new file mode 100644
index 000000000000..2649c7cbd6a9
--- /dev/null
+++ b/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.defaultIconTheme ];
+  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/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix b/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix
new file mode 100644
index 000000000000..7fdfbd84d2f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pcmanx-gtk2/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, gtk2, libXft, intltool, automake, autoconf, libtool, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "pcmanx-gtk2-${version}";
+  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/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix b/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix
new file mode 100644
index 000000000000..f604684b19a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, pkgs, pythonPackages, wrapGAppsHook}:
+
+pythonPackages.buildPythonApplication rec {
+  name = "pdf-quench-${version}";
+  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 pythonPackages; [ 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/nixpkgs/pkgs/applications/misc/pdfdiff/default.nix b/nixpkgs/pkgs/applications/misc/pdfdiff/default.nix
new file mode 100644
index 000000000000..ee54904bfd66
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/pdfmod/default.nix b/nixpkgs/pkgs/applications/misc/pdfmod/default.nix
new file mode 100644
index 000000000000..45d83b5872fa
--- /dev/null
+++ b/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 {
+  name = "pdfmod-${version}";
+  version = "0.9.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/pdfmod/0.9/pdfmod-${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/Apps/PdfMod;
+    description = "A simple application for modifying PDF documents";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ obadz ];
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pdfpc/default.nix b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
new file mode 100644
index 000000000000..232184c1976c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig, vala, gtk3, libgee
+, poppler, libpthreadstubs, gstreamer, gst-plugins-base, librsvg, pcre, gobject-introspection }:
+
+stdenv.mkDerivation rec {
+  name = "${product}-${version}";
+  product = "pdfpc";
+  version = "4.3.0";
+
+  src = fetchFromGitHub {
+    repo = "pdfpc";
+    owner = "pdfpc";
+    rev = "v${version}";
+    sha256 = "1ild2p2lv89yj74fbbdsg3jb8dxpzdamsw0l0xs5h20fd2lsrwcd";
+  };
+
+  nativeBuildInputs = [
+    cmake pkgconfig vala
+    # For setup hook
+    gobject-introspection
+  ];
+  buildInputs = [ gstreamer gst-plugins-base gtk3 libgee poppler
+    libpthreadstubs makeWrapper librsvg pcre ];
+
+  cmakeFlags = stdenv.lib.optionalString stdenv.isDarwin "-DMOVIES=OFF";
+
+  postInstall = ''
+    wrapProgram $out/bin/pdfpc \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/pell/default.nix b/nixpkgs/pkgs/applications/misc/pell/default.nix
new file mode 100644
index 000000000000..d55c7a2af12b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pell/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, scsh, sox, libnotify }:
+
+stdenv.mkDerivation rec {
+  pname = "pell";
+  version = "0.0.4";
+  name = "${pname}-${version}";
+
+  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/nixpkgs/pkgs/applications/misc/perkeep/default.nix b/nixpkgs/pkgs/applications/misc/perkeep/default.nix
new file mode 100644
index 000000000000..8804e438b7e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/perkeep/default.nix
@@ -0,0 +1,32 @@
+{ buildGo110Package, fetchzip, lib }:
+
+buildGo110Package rec {
+  name = "perkeep-${version}";
+  version = "0.10.1";
+
+  src = fetchzip {
+    url = "https://perkeep.org/dl/perkeep-${version}-src.zip";
+    sha256 = "0rqibc6w4m1r50i2pjcgz1k9dxh18v7jwj4s29y470bc526wv422";
+  };
+
+  goPackagePath = "perkeep.org";
+
+  buildPhase = ''
+    cd "$NIX_BUILD_TOP/go/src/$goPackagePath"
+    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/nixpkgs/pkgs/applications/misc/pgadmin/default.nix b/nixpkgs/pkgs/applications/misc/pgadmin/default.nix
new file mode 100644
index 000000000000..7e7850668b84
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pgadmin/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, fetchpatch, postgresql, wxGTK, libxml2, libxslt, openssl, zlib, makeDesktopItem }:
+
+stdenv.mkDerivation rec {
+  name = "pgadmin3-${version}";
+  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 = "Application;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/nixpkgs/pkgs/applications/misc/pgmanage/default.nix b/nixpkgs/pkgs/applications/misc/pgmanage/default.nix
new file mode 100644
index 000000000000..113a63f7fe18
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pgmanage/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, postgresql, openssl } :
+
+stdenv.mkDerivation rec {
+  name = "pgmanage-${version}";
+  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/nixpkgs/pkgs/applications/misc/phwmon/default.nix b/nixpkgs/pkgs/applications/misc/phwmon/default.nix
new file mode 100644
index 000000000000..0cee74522ab2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/phwmon/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitLab, pythonPackages }:
+
+stdenv.mkDerivation rec {
+  name = "phwmon-${version}";
+  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/nixpkgs/pkgs/applications/misc/pinfo/default.nix b/nixpkgs/pkgs/applications/misc/pinfo/default.nix
new file mode 100644
index 000000000000..55093b21f950
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/plank/default.nix b/nixpkgs/pkgs/applications/misc/plank/default.nix
new file mode 100644
index 000000000000..626e400eac4b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/plank/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, vala, atk, cairo, glib, gnome3, gtk3, libwnck3
+, libX11, libXfixes, libXi, pango, intltool, pkgconfig, libxml2
+, bamf, gdk_pixbuf, libdbusmenu-gtk3, file
+, wrapGAppsHook, autoreconfHook, gobject-introspection }:
+
+stdenv.mkDerivation rec {
+  pname = "plank";
+  version = "0.11.4";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://launchpad.net/${pname}/1.0/${version}/+download/${name}.tar.xz";
+    sha256 = "1f41i45xpqhjxql9nl4a1sz30s0j46aqdhbwbvgrawz6himcvdc8";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+    libxml2 # xmllint
+    wrapGAppsHook
+    gobject-introspection
+    autoreconfHook
+  ];
+
+  buildInputs = [ vala atk cairo glib gnome3.gnome-menus
+                  gtk3 gnome3.libgee libwnck3 libX11 libXfixes
+                  libXi pango gnome3.gnome-common bamf gdk_pixbuf
+                  libdbusmenu-gtk3 gnome3.dconf ];
+
+  # fix paths
+  makeFlags = [
+    "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/"
+    "INTROSPECTION_TYPELIBDIR=$(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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch b/nixpkgs/pkgs/applications/misc/plank/hide-in-pantheon.patch
new file mode 100644
index 000000000000..ab8a4c723897
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/cmake.patch
new file mode 100644
index 000000000000..b33a3e174bc4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
new file mode 100644
index 000000000000..6c23d160f47c
--- /dev/null
+++ b/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 {
+  name = "plasma-applet-volumewin7mixer-${version}";
+  version = "23";
+
+  src = fetchFromGitHub {
+    owner = "Zren";
+    repo = "plasma-applet-volumewin7mixer";
+    rev = "v${version}";
+    sha256 = "1j2bq343lnhwqz26qfsvg7vjxv84ibzbc4y86rjkh07nqjwb3xsc";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/playonlinux/default.nix b/nixpkgs/pkgs/applications/misc/playonlinux/default.nix
new file mode 100644
index 000000000000..e1b6b7fcc464
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/playonlinux/default.nix
@@ -0,0 +1,104 @@
+{ stdenv
+, makeWrapper
+, fetchurl
+, cabextract
+, gettext
+, glxinfo
+, gnupg1compat
+, icoutils
+, imagemagick
+, netcat-gnu
+, p7zip
+, python2Packages
+, unzip
+, wget
+, wine
+, xdg-user-dirs
+, xterm
+, pkgs
+, pkgsi686Linux
+, which
+, curl
+}:
+
+let
+  version = "4.3.3";
+
+  binpath = stdenv.lib.makeBinPath
+    [ cabextract
+      python2Packages.python
+      gettext
+      glxinfo
+      gnupg1compat
+      icoutils
+      imagemagick
+      netcat-gnu
+      p7zip
+      unzip
+      wget
+      wine
+      xdg-user-dirs
+      xterm
+      which
+      curl
+    ];
+
+  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 [ pkgs.xorg.libX11 ];
+
+in stdenv.mkDerivation {
+  name = "playonlinux-${version}";
+
+  src = fetchurl {
+    url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz";
+    sha256 = "117xivwa87i2w66klplmwd5q7pfxcbrj2rjm11wl8iy5h3xpqkak";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs =
+    [ python2Packages.python
+      python2Packages.wxPython
+      python2Packages.setuptools
+    ];
+
+  patchPhase = ''
+    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 PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \
+      --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/nixpkgs/pkgs/applications/misc/plover/default.nix b/nixpkgs/pkgs/applications/misc/plover/default.nix
new file mode 100644
index 000000000000..b9323ece1f44
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/plover/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, python27Packages, python36Packages, wmctrl }:
+
+{
+  stable = with python27Packages; buildPythonPackage rec {
+    name    = "plover-${version}";
+    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";
+    };
+
+    buildInputs           = [ pytest mock ];
+    propagatedBuildInputs = [
+      six setuptools pyserial appdirs hidapi wxPython xlib wmctrl
+    ];
+  };
+
+  dev = with python36Packages; buildPythonPackage rec {
+    name    = "plover-${version}";
+    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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pmenu/default.nix b/nixpkgs/pkgs/applications/misc/pmenu/default.nix
new file mode 100644
index 000000000000..b14bb445b5d1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pmenu/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitLab, python2Packages, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "pmenu-${version}";
+  version = "2018-01-01";
+
+  src = fetchFromGitLab {
+    owner = "o9000";
+    repo = "pmenu";
+    rev = "f98a5bdf20deb0b7f0543e5ce6a8f5574f695e07";
+    sha256 = "131nqafbmbfpgsgss27pz4cyb9fb29m5h1ai1fyvcn286rr9dnp2";
+  };
+
+  nativeBuildInputs = [ python2Packages.wrapPython ];
+
+  buildInputs = [ python2Packages.pygtk gnome3.gnome-menus ];
+
+  pythonPath = [ python2Packages.pygtk ];
+    
+  installPhase = ''
+    mkdir -p $out/bin $out/share/applications
+    ./install.sh $out
+  '';
+
+  postFixup = ''
+    wrapPythonPrograms
+  '';
+
+  meta = {
+    homepage = https://gitlab.com/o9000/pmenu;
+    description = "Start menu for Linux/BSD";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix b/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
new file mode 100644
index 000000000000..bcff0db65ab1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
@@ -0,0 +1,91 @@
+{ stdenv, lib, makeWrapper, fetchurl
+, dpkg, wrapGAppsHook, autoPatchelfHook
+, gtk3, cairo, gnome2, 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, gnome3 }:
+
+
+stdenv.mkDerivation rec {
+  name = "polar-bookshelf-${version}";
+  version = "1.5.1";
+
+  # 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-bookshelf-${version}-amd64.deb";
+    sha256 = "1nnbybrzk1ms83490gbw5gakfim0j2c8gp83d9iaqwl4590qgwlg";
+  };
+
+  buildInputs = [
+    gnome3.gsettings_desktop_schemas
+    glib
+    gtk3
+    cairo
+    gnome2.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\ Bookshelf/* $out/share/polar-bookshelf
+    mv $out/share/polar-bookshelf/*.so $out/lib
+
+    mv usr/share/* $out/share/
+
+    ln -s $out/share/polar-bookshelf/polar-bookshelf $out/bin/polar-bookshelf
+    
+    # Correct desktop file `Exec`
+    substituteInPlace $out/share/applications/polar-bookshelf.desktop \
+      --replace "/opt/Polar Bookshelf/polar-bookshelf" "$out/bin/polar-bookshelf"
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/polybar/default.nix b/nixpkgs/pkgs/applications/misc/polybar/default.nix
new file mode 100644
index 000000000000..0310b1a2f748
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/polybar/default.nix
@@ -0,0 +1,80 @@
+{ cairo, cmake, fetchgit, libXdmcp, libpthreadstubs, libxcb, pcre, pkgconfig
+, python2, stdenv, xcbproto, xcbutil, xcbutilcursor, xcbutilimage
+, xcbutilrenderutil, xcbutilwm, xcbutilxrm, makeWrapper
+
+# 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 {
+    name = "polybar-${version}";
+    version = "3.2.1";
+    src = fetchgit {
+      url = "https://github.com/jaagr/polybar";
+      rev = version;
+      sha256 = "1z45swj2l0h8x8li7prl963cgl6zm3birsswpij8qwcmjaj5l8vz";
+    };
+
+    meta = with stdenv.lib; {
+      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 = [ maintainers.afldcr ];
+      platforms = platforms.unix;
+    };
+
+    buildInputs = [
+      cairo libXdmcp libpthreadstubs libxcb pcre python2 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)
+    ];
+
+    postConfigure = ''
+      substituteInPlace ../include/settings.hpp --replace \
+        "${stdenv.cc}" "${stdenv.cc.name}"
+    '';
+
+    postInstall = if (i3Support || i3GapsSupport) then ''
+      wrapProgram $out/bin/polybar \
+        --prefix PATH : "${if i3Support then i3 else i3-gaps}/bin"
+    '' else "";
+
+    nativeBuildInputs = [
+      cmake pkgconfig
+    ];
+}
diff --git a/nixpkgs/pkgs/applications/misc/posterazor/default.nix b/nixpkgs/pkgs/applications/misc/posterazor/default.nix
new file mode 100644
index 000000000000..45db856dbb9e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/posterazor/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, cmake, unzip, pkgconfig, libXpm, fltk13, freeimage }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/misc/printrun/default.nix b/nixpkgs/pkgs/applications/misc/printrun/default.nix
new file mode 100644
index 000000000000..34144e35bd5a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch b/nixpkgs/pkgs/applications/misc/procmail/CVE-2014-3618.patch
new file mode 100644
index 000000000000..e3aa5600e40e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/procmail/default.nix b/nixpkgs/pkgs/applications/misc/procmail/default.nix
new file mode 100644
index 000000000000..cd3a46ab09ba
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/projectlibre/default.nix b/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
new file mode 100644
index 000000000000..5ba8e1b6e313
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchgit, ant, jdk, makeWrapper, jre, coreutils, which }:
+
+stdenv.mkDerivation rec {
+  name = "projectlibre-${version}";
+  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 = "http://www.projectlibre.com/";
+    description = "Project-Management Software similar to MS-Project";
+    maintainers = [ maintainers.Mogria ];
+    license = licenses.cpal10;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pstree/default.nix b/nixpkgs/pkgs/applications/misc/pstree/default.nix
new file mode 100644
index 000000000000..3cd52af6d321
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pstree/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "pstree-2.39";
+
+  src = fetchurl {
+    urls = [
+      "http://www.sfr-fresh.com/unix/misc/${name}.tar.gz"
+      "https://distfiles.macports.org/pstree/${name}.tar.gz"
+    ];
+    sha256 = "17s7v15c4gryjpi11y1xq75022nkg4ggzvjlq2dkmyg67ssc76vw";
+  };
+
+  unpackPhase = "unpackFile \$src; sourceRoot=.";
+
+  buildPhase = "pwd; $CC -o pstree pstree.c";
+  installPhase = "mkdir -p \$out/bin; cp pstree \$out/bin";
+
+  meta = {
+    description = "Show the set of running processes as a tree";
+    license = "GPL";
+    maintainers = [ ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pt/.bundle/config b/nixpkgs/pkgs/applications/misc/pt/.bundle/config
new file mode 100644
index 000000000000..88cb2d529351
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pt/.bundle/config
@@ -0,0 +1,2 @@
+---
+BUNDLE_NO_INSTALL: true
diff --git a/nixpkgs/pkgs/applications/misc/pt/Gemfile b/nixpkgs/pkgs/applications/misc/pt/Gemfile
new file mode 100644
index 000000000000..ed2136ea5b85
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pt/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem 'pt'
diff --git a/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock b/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock
new file mode 100644
index 000000000000..db023c59d7fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pt/Gemfile.lock
@@ -0,0 +1,45 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    builder (3.2.2)
+    colored (1.2)
+    crack (0.4.3)
+      safe_yaml (~> 1.0.0)
+    domain_name (0.5.25)
+      unf (>= 0.0.5, < 1.0.0)
+    highline (1.7.8)
+    hirb (0.7.3)
+    http-cookie (1.0.2)
+      domain_name (~> 0.5)
+    mime-types (2.99)
+    mini_portile2 (2.0.0)
+    netrc (0.11.0)
+    nokogiri (1.6.7.1)
+      mini_portile2 (~> 2.0.0.rc2)
+    nokogiri-happymapper (0.5.9)
+      nokogiri (~> 1.5)
+    pivotal-tracker (0.5.13)
+      builder
+      crack
+      nokogiri (>= 1.5.5)
+      nokogiri-happymapper (>= 0.5.4)
+      rest-client (>= 1.8.0)
+    pt (0.7.3)
+      colored (>= 1.2)
+      highline (>= 1.6.1)
+      hirb (>= 0.4.5)
+      pivotal-tracker (>= 0.4.1)
+    rest-client (1.8.0)
+      http-cookie (>= 1.0.2, < 2.0)
+      mime-types (>= 1.16, < 3.0)
+      netrc (~> 0.7)
+    safe_yaml (1.0.4)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  pt
diff --git a/nixpkgs/pkgs/applications/misc/pt/default.nix b/nixpkgs/pkgs/applications/misc/pt/default.nix
new file mode 100644
index 000000000000..dbda7664bde0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pt/default.nix
@@ -0,0 +1,16 @@
+{ lib, bundlerEnv, ruby }:
+
+bundlerEnv {
+  name = "pt-0.7.3";
+
+  inherit ruby;
+  gemdir = ./.;
+
+  meta = with lib; {
+    description = "Minimalist command-line Pivotal Tracker client";
+    homepage    = http://www.github.com/raul/pt;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ ebzzry ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/pt/gemset.nix b/nixpkgs/pkgs/applications/misc/pt/gemset.nix
new file mode 100644
index 000000000000..cde3c386fb5c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pt/gemset.nix
@@ -0,0 +1,164 @@
+{
+  "builder" = {
+    version = "3.2.2";
+    source = {
+      type = "gem";
+      sha256 = "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2";
+    };
+  };
+  "colored" = {
+    version = "1.2";
+    source = {
+      type = "gem";
+      sha256 = "0b0x5jmsyi0z69bm6sij1k89z7h0laag3cb4mdn7zkl9qmxb90lx";
+    };
+  };
+  "crack" = {
+    version = "0.4.3";
+    source = {
+      type = "gem";
+      sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+    };
+    dependencies = [
+      "safe_yaml"
+    ];
+  };
+  "domain_name" = {
+    version = "0.5.25";
+    source = {
+      type = "gem";
+      sha256 = "16qvfrmcwlzz073aas55mpw2nhyhjcn96s524w0g1wlml242hjav";
+    };
+    dependencies = [
+      "unf"
+    ];
+  };
+  "highline" = {
+    version = "1.7.8";
+    source = {
+      type = "gem";
+      sha256 = "1nf5lgdn6ni2lpfdn4gk3gi47fmnca2bdirabbjbz1fk9w4p8lkr";
+    };
+  };
+  "hirb" = {
+    version = "0.7.3";
+    source = {
+      type = "gem";
+      sha256 = "0mzch3c2lvmf8gskgzlx6j53d10j42ir6ik2dkrl27sblhy76cji";
+    };
+  };
+  "http-cookie" = {
+    version = "1.0.2";
+    source = {
+      type = "gem";
+      sha256 = "0cz2fdkngs3jc5w32a6xcl511hy03a7zdiy988jk1sf3bf5v3hdw";
+    };
+    dependencies = [
+      "domain_name"
+    ];
+  };
+  "mime-types" = {
+    version = "2.99";
+    source = {
+      type = "gem";
+      sha256 = "1hravghdnk9qbibxb3ggzv7mysl97djh8n0rsswy3ssjaw7cbvf2";
+    };
+  };
+  "mini_portile2" = {
+    version = "2.0.0";
+    source = {
+      type = "gem";
+      sha256 = "056drbn5m4khdxly1asmiik14nyllswr6sh3wallvsywwdiryz8l";
+    };
+  };
+  "netrc" = {
+    version = "0.11.0";
+    source = {
+      type = "gem";
+      sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+    };
+  };
+  "nokogiri" = {
+    version = "1.6.7.1";
+    source = {
+      type = "gem";
+      sha256 = "12nwv3lad5k2k73aa1d1xy4x577c143ixks6rs70yp78sinbglk2";
+    };
+    dependencies = [
+      "mini_portile2"
+    ];
+  };
+  "nokogiri-happymapper" = {
+    version = "0.5.9";
+    source = {
+      type = "gem";
+      sha256 = "0xv5crnzxdbd0ykx1ikfg1h0yw0h70lk607x1g45acsb1da97mkq";
+    };
+    dependencies = [
+      "nokogiri"
+    ];
+  };
+  "pivotal-tracker" = {
+    version = "0.5.13";
+    source = {
+      type = "gem";
+      sha256 = "0vxs69qb0k4g62250zbf5x78wpkhpj98clg2j09ncy3s8yklr0pd";
+    };
+    dependencies = [
+      "builder"
+      "crack"
+      "nokogiri"
+      "nokogiri-happymapper"
+      "rest-client"
+    ];
+  };
+  "pt" = {
+    version = "0.7.3";
+    source = {
+      type = "gem";
+      sha256 = "0bf821yf0zq5bhs65wmx339bm771lcnd6dlsljj3dnisjj068dk8";
+    };
+    dependencies = [
+      "colored"
+      "highline"
+      "hirb"
+      "pivotal-tracker"
+    ];
+  };
+  "rest-client" = {
+    version = "1.8.0";
+    source = {
+      type = "gem";
+      sha256 = "1m8z0c4yf6w47iqz6j2p7x1ip4qnnzvhdph9d5fgx081cvjly3p7";
+    };
+    dependencies = [
+      "http-cookie"
+      "mime-types"
+      "netrc"
+    ];
+  };
+  "safe_yaml" = {
+    version = "1.0.4";
+    source = {
+      type = "gem";
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+    };
+  };
+  "unf" = {
+    version = "0.1.4";
+    source = {
+      type = "gem";
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+    };
+    dependencies = [
+      "unf_ext"
+    ];
+  };
+  "unf_ext" = {
+    version = "0.0.7.1";
+    source = {
+      type = "gem";
+      sha256 = "0ly2ms6c3irmbr1575ldyh52bz2v0lzzr2gagf0p526k12ld2n5b";
+    };
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/ptask/default.nix b/nixpkgs/pkgs/applications/misc/ptask/default.nix
new file mode 100644
index 000000000000..81e316eb0ee9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch b/nixpkgs/pkgs/applications/misc/ptask/json_c_is_error.patch
new file mode 100644
index 000000000000..435c8b26e6f7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/ptask/tw-version.patch b/nixpkgs/pkgs/applications/misc/ptask/tw-version.patch
new file mode 100644
index 000000000000..995fffeda2f8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/pwsafe/default.nix b/nixpkgs/pkgs/applications/misc/pwsafe/default.nix
new file mode 100644
index 000000000000..7b0e299924cb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pwsafe/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, zip, gettext, perl
+, wxGTK31, libXi, libXt, libXtst, xercesc, xextproto
+, libqrencode, libuuid, libyubikey, yubikey-personalization
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pwsafe";
+  version = "1.06";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "${pname}";
+    repo = "${pname}";
+    rev = "${version}BETA";
+    sha256 = "1q3xi7i4r3nmz3hc79lx8l15sr1nqhwbi3lrnfqr356nv6aaf03y";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig zip ];
+  buildInputs = [
+    gettext perl libqrencode libuuid
+    libXi libXt libXtst wxGTK31 xercesc xextproto
+    libyubikey yubikey-personalization
+  ];
+  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=$(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/nixpkgs/pkgs/applications/misc/pytrainer/default.nix b/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
new file mode 100644
index 000000000000..cdeca96568df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchFromGitHub, perl, python, sqlite, gpsbabel
+, withWebKit ? false }:
+
+let
+
+  # Pytrainer needs a matplotlib with GTK backend. Also ensure we are
+  # using the pygtk with glade support as needed by pytrainer.
+  matplotlibGtk = python.pkgs.matplotlib.override {
+    enableGtk2 = true;
+    pygtk = python.pkgs.pyGtkGlade;
+  };
+
+in
+
+python.pkgs.buildPythonApplication rec {
+  name = "pytrainer-${version}";
+  version = "1.12.1";
+
+  src = fetchFromGitHub {
+    owner = "pytrainer";
+    repo = "pytrainer";
+    rev = "v${version}";
+    sha256 = "0rzf8kks96qzlknh6g3b9pjq04j7qk6rmz58scp7sck8xz9rjbwx";
+  };
+
+  namePrefix = "";
+
+  patches = [
+    # The test fails in the UTC timezone and C locale.
+    ./fix-test-tz.patch
+
+    # The existing use of pywebkitgtk shows raw HTML text instead of
+    # map. This patch solves the problems by showing the file from a
+    # string, which allows setting an explicit MIME type.
+    ./pytrainer-webkit.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace ./setup.py \
+      --replace "'mysqlclient'," ""
+  '';
+
+  propagatedBuildInputs = with python.pkgs; [
+    dateutil lxml matplotlibGtk pyGtkGlade sqlalchemy sqlalchemy_migrate psycopg2
+  ] ++ stdenv.lib.optional withWebKit [ pywebkitgtk ];
+
+  buildInputs = [ perl gpsbabel sqlite ];
+
+  # This package contains no binaries to patch or strip.
+  dontPatchELF = true;
+  dontStrip = true;
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/pytrainer/fix-test-tz.patch b/nixpkgs/pkgs/applications/misc/pytrainer/fix-test-tz.patch
new file mode 100644
index 000000000000..ca4875769013
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pytrainer/fix-test-tz.patch
@@ -0,0 +1,45 @@
+diff -Nurp source.orig/pytrainer/test/core/test_activity.py source/pytrainer/test/core/test_activity.py
+--- source.orig/pytrainer/test/core/test_activity.py	2018-02-27 22:15:32.078243354 +0100
++++ source/pytrainer/test/core/test_activity.py	2018-02-27 22:16:33.936867052 +0100
+@@ -92,7 +92,7 @@ class ActivityTest(unittest.TestCase):
+         self.assertEquals(self.activity.time, self.activity.duration)
+ 
+     def test_activity_starttime(self):
+-        self.assertEquals(self.activity.starttime, '12:58:23 PM')
++        self.assertEquals(self.activity.starttime, '12:58:23')
+ 
+     def test_activity_time_tuple(self):
+         self.assertEquals(self.activity.time_tuple, (2, 3, 46))
+diff -Nurp source.orig/pytrainer/test/imports/test_garmintcxv2.py source/pytrainer/test/imports/test_garmintcxv2.py
+--- source.orig/pytrainer/test/imports/test_garmintcxv2.py	2018-02-27 22:15:32.079243364 +0100
++++ source/pytrainer/test/imports/test_garmintcxv2.py	2018-02-27 22:17:10.778333751 +0100
+@@ -39,7 +39,7 @@ class GarminTCXv2Test(unittest.TestCase)
+             self.fail()
+ 
+     def test_workout_summary(self):
+-        summary = [(0, False, '2012-10-14T12:02:42', '10.12', '00:39:51', 'Running')]
++        summary = [(0, False, '2012-10-14T10:02:42', '10.12', '00:39:51', 'Running')]
+         try:
+             current_path = os.path.dirname(os.path.abspath(__file__))
+             data_path = os.path.dirname(os.path.dirname(os.path.dirname(current_path))) + "/"
+@@ -52,7 +52,7 @@ class GarminTCXv2Test(unittest.TestCase)
+             self.fail()
+ 
+     def test_summary_in_database(self):
+-        summary = [(0, True, '2012-10-14T12:02:42', '10.12', '00:39:51', 'Running')]
++        summary = [(0, True, '2012-10-14T10:02:42', '10.12', '00:39:51', 'Running')]
+         activity = Activity(date_time_utc='2012-10-14T10:02:42Z', sport_id='1')
+         self.ddbb.session.add(activity)
+         self.ddbb.session.commit(
+diff -Nurp source.orig/pytrainer/test/lib/test_date.py source/pytrainer/test/lib/test_date.py
+--- source.orig/pytrainer/test/lib/test_date.py	2018-05-10 21:15:22.196275555 +0200
++++ source/pytrainer/test/lib/test_date.py	2018-05-10 21:22:43.647870401 +0200
+@@ -47,7 +47,7 @@ class DateFunctionTest(unittest.TestCase
+     def test_getDateTime(self):
+         utctime, localtime = getDateTime('Tue Nov 24 17:29:05 UTC 2015')
+         self.assertEqual(datetime.datetime(2015, 11, 24, 17, 29, 5, tzinfo=tzutc()), utctime)
+-        self.assertEqual(datetime.datetime(2015, 11, 24, 19, 29, 5, tzinfo=tzlocal()), localtime)
++        self.assertEqual(datetime.datetime(2015, 11, 24, 17, 29, 5, tzinfo=tzlocal()), localtime)
+ 
+ class DateRangeTest(unittest.TestCase):
+ 
diff --git a/nixpkgs/pkgs/applications/misc/pytrainer/pytrainer-webkit.patch b/nixpkgs/pkgs/applications/misc/pytrainer/pytrainer-webkit.patch
new file mode 100644
index 000000000000..0f894c46a53b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pytrainer/pytrainer-webkit.patch
@@ -0,0 +1,14 @@
+diff -Nurp pytrainer-1.10.0-orig/pytrainer/extensions/mapviewer.py pytrainer-1.10.0/pytrainer/extensions/mapviewer.py
+--- pytrainer-1.10.0-orig/pytrainer/extensions/mapviewer.py	2013-03-31 12:28:29.000000000 +0200
++++ pytrainer-1.10.0/pytrainer/extensions/mapviewer.py	2014-12-22 11:44:44.367032126 +0100
+@@ -46,7 +46,9 @@ class MapViewer:
+ 		logging.debug(">>")
+ 		if htmlfile is None:
+ 			htmlfile = self.createErrorHtml()
+-		self.wkview.load_uri("file://%s" % (htmlfile))
++		content = open(htmlfile, 'r').read()
++		self.wkview.load_string(content, 'text/html', 'UTF-8', 'file:///')
++		#self.wkview.load_uri("file://%s" % (htmlfile))
+ 		#self.box.show_all()
+ 		logging.debug("<<")
+ 
diff --git a/nixpkgs/pkgs/applications/misc/qdirstat/default.nix b/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
new file mode 100644
index 000000000000..cbbac11424ec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchFromGitHub, qmake
+, coreutils, xdg_utils, bash
+, perl, makeWrapper, perlPackages }:
+
+let
+  version = "1.4";
+in stdenv.mkDerivation rec {
+  name = "qdirstat-${version}";
+
+  src = fetchFromGitHub {
+    owner = "shundhammer";
+    repo = "qdirstat";
+    rev = "${version}";
+    sha256 = "1ppasbr0mq301q6n3rm0bsmprs7vgkcjmmc0gbgqpgw84nmp9fqh";
+  };
+
+  nativeBuildInputs = [ qmake makeWrapper ];
+
+  buildInputs = [ perl ];
+
+  preBuild = ''
+    substituteInPlace scripts/scripts.pro \
+      --replace /bin/true ${coreutils}/bin/true \
+      --replace /usr/bin $out/bin
+    substituteInPlace src/src.pro \
+      --replace /usr/bin $out/bin \
+      --replace /usr/share $out/share
+    for i in doc/doc.pro doc/stats/stats.pro
+    do
+      substituteInPlace $i \
+        --replace /usr/share $out/share
+    done
+
+    for i in src/MainWindow.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
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/qdirstat-cache-writer \
+      --set PERL5LIB "${stdenv.lib.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/nixpkgs/pkgs/applications/misc/qlcplus/default.nix b/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
new file mode 100644
index 000000000000..eae3216c964f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qlcplus/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, mkDerivation, fetchFromGitHub, qmake, pkgconfig, udev
+, qtmultimedia, qtscript, alsaLib, ola, libftdi1, libusb
+, libsndfile, libmad
+}:
+
+mkDerivation rec {
+  name = "qlcplus-${version}";
+  version = "4.11.2";
+
+  src = fetchFromGitHub {
+    owner = "mcallegari";
+    repo = "qlcplus";
+    rev = "QLC+_${version}";
+    sha256 = "0ry7j8d5mm3h3mzd49xqlagnldmfhfr6plwk73pz62hxr4j58s6w";
+  };
+
+  nativeBuildInputs = [ qmake pkgconfig ];
+  buildInputs = [
+    udev qtmultimedia qtscript alsaLib ola libftdi1 libusb 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
+  '';
+
+  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 = "http://www.qlcplus.org/";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/qmapshack/default.nix b/nixpkgs/pkgs/applications/misc/qmapshack/default.nix
new file mode 100644
index 000000000000..7b2e8bed10e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qmapshack/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, cmake, qtscript, qtwebengine, gdal, proj, routino, quazip }:
+
+stdenv.mkDerivation rec {
+  name = "qmapshack-${version}";
+  version = "1.12.1";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/maproom/qmapshack/downloads/${name}.tar.gz";
+    sha256 = "1d6n7xk0ksxb1fw43s5lb08vgxf6h93k3rb401cbka1inpyf2232";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ qtscript qtwebengine gdal proj routino quazip ];
+
+  cmakeFlags = [
+    "-DROUTINO_XML_PATH=${routino}/share/routino"
+    "-DQUAZIP_INCLUDE_DIR=${quazip}/include/quazip"
+    "-DLIBQUAZIP_LIBRARY=${quazip}/lib/libquazip.so"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://bitbucket.org/maproom/qmapshack/wiki/Home;
+    description = "Plan your next outdoor trip";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ dotlambda ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/qmetro/default.nix b/nixpkgs/pkgs/applications/misc/qmetro/default.nix
new file mode 100644
index 000000000000..49993f2f7ea7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/qpdfview/default.nix b/nixpkgs/pkgs/applications/misc/qpdfview/default.nix
new file mode 100644
index 000000000000..263bc37660c9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qpdfview/default.nix
@@ -0,0 +1,44 @@
+{stdenv, fetchurl, qmake, qtbase, qtsvg, pkgconfig, poppler, djvulibre, libspectre, cups
+, file, ghostscript
+}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="qpdfview";
+    version = "0.4.16";
+    name="${baseName}-${version}";
+    url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
+    sha256 = "0zysjhr58nnmx7ba01q3zvgidkgcqxjdj4ld3gx5fc7wzvl1dm7s";
+  };
+  nativeBuildInputs = [ qmake pkgconfig ];
+  buildInputs = [
+    qtbase qtsvg poppler djvulibre libspectre cups file ghostscript
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit nativeBuildInputs buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  qmakeFlags = [
+    "*.pro"
+    "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/nixpkgs/pkgs/applications/misc/qradiolink/default.nix b/nixpkgs/pkgs/applications/misc/qradiolink/default.nix
new file mode 100644
index 000000000000..63906d996ba6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qradiolink/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchFromGitHub, alsaLib, boost
+, qt4, libpulseaudio, codec2, libconfig
+, gnuradio, gnuradio-osmosdr, gsm
+, libopus, libjpeg, protobuf, qwt, speex
+} :
+
+let
+  version = "0.5.0";
+
+in stdenv.mkDerivation {
+  name = "qradiolink-${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
+    gnuradio-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/nixpkgs/pkgs/applications/misc/qsstv/default.nix b/nixpkgs/pkgs/applications/misc/qsstv/default.nix
new file mode 100644
index 000000000000..c8401cdbf49e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qsstv/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, qtbase, qmake, makeDesktopItem, openjpeg, pkgconfig, fftw,
+  libpulseaudio, alsaLib, hamlib, libv4l, fftwFloat }:
+
+stdenv.mkDerivation rec {
+  version = "9.2.6";
+  name = "qsstv-${version}";
+
+  src = fetchurl {
+    url = "http://users.telenet.be/on4qz/qsstv/downloads/qsstv_${version}.tar.gz";
+    sha256 = "0sx70yk389fq5djvjwnam6ics5knmg9b5x608bk2sjbfxkila108";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    qmake
+    pkgconfig
+  ];
+
+  buildInputs = [ qtbase openjpeg fftw libpulseaudio alsaLib hamlib libv4l
+                  fftwFloat ];
+
+  desktopItem = makeDesktopItem {
+    name = "QSSTV";
+    exec = "qsstv";
+    icon = "qsstv.png";
+    comment = "Qt-based slow-scan TV and fax";
+    desktopName = "QSSTV";
+    genericName = "qsstv";
+    categories = "Application;HamRadio;";
+  };
+
+  installPhase = ''
+    # Install binary to the right location
+    make install INSTALL_ROOT=$out
+    mv $out/usr/bin $out/
+    rm -r $out/usr
+
+    # Install desktop icon
+    install -D qsstv/icons/qsstv.png $out/share/pixmaps/qsstv.png
+
+    # Install desktop item
+    cp -rv ${desktopItem}/share $out
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix b/nixpkgs/pkgs/applications/misc/qsyncthingtray/default.nix
new file mode 100644
index 000000000000..6ae8f380fe28
--- /dev/null
+++ b/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";
+  name = "qsyncthingtray-${version}";
+
+  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/nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch b/nixpkgs/pkgs/applications/misc/qsyncthingtray/qsyncthingtray-0.5.8-qt-5.6.3.patch
new file mode 100644
index 000000000000..424bbe171779
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix b/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
new file mode 100644
index 000000000000..444c72602d35
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchzip, qt5 }:
+
+let
+  version = "1.40.30";
+in
+stdenv.mkDerivation {
+  name = "qtbitcointrader-${version}";
+
+  src = fetchzip {
+    url = "https://github.com/JulyIGHOR/QtBitcoinTrader/archive/v${version}.tar.gz";
+    sha256 = "0xbgdmwb8d3lrddcnx2amfsknd3g408f5gy5mdydcm3vqqfi9a0c";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/qtpass/default.nix b/nixpkgs/pkgs/applications/misc/qtpass/default.nix
new file mode 100644
index 000000000000..e03dd65b9eb3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qtpass/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, git, gnupg, pass, qtbase, qtsvg, qttools, qmake, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "qtpass-${version}";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner  = "IJHack";
+    repo   = "QtPass";
+    rev    = "v${version}";
+    sha256 = "0pp38b3fifkfwqcb6vi194ccgb8j3zc8j8jq8ww5ib0wvhldzsg8";
+  };
+
+  patches = [ ./hidpi.patch ];
+
+  buildInputs = [ git gnupg pass qtbase qtsvg qttools ];
+
+  nativeBuildInputs = [ makeWrapper qmake ];
+
+  postPatch = ''
+    substituteInPlace qtpass.pro --replace "SUBDIRS += src tests main" "SUBDIRS += src main"
+    substituteInPlace qtpass.pro --replace "main.depends = tests" "main.depends = src"
+  '';
+
+  postInstall = ''
+    install -D qtpass.desktop $out/share/applications/qtpass.desktop
+    install -D artwork/icon.svg $out/share/icons/hicolor/scalable/apps/qtpass-icon.svg
+    wrapProgram $out/bin/qtpass \
+      --suffix PATH : ${git}/bin \
+      --suffix PATH : ${gnupg}/bin \
+      --suffix PATH : ${pass}/bin
+  '';
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/misc/qtpass/hidpi.patch b/nixpkgs/pkgs/applications/misc/qtpass/hidpi.patch
new file mode 100644
index 000000000000..629bcbb5baca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qtpass/hidpi.patch
@@ -0,0 +1,13 @@
+diff --git a/main/main.cpp b/main/main.cpp
+index 8a18409c..1cddd911 100644
+--- a/main/main.cpp
++++ b/main/main.cpp
+@@ -35,7 +35,7 @@
+  * @return
+  */
+ int main(int argc, char *argv[]) {
+-  qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1");
++  QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+   QString text = "";
+   for (int i = 1; i < argc; ++i) {
+     if (i > 1)
diff --git a/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix b/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix
new file mode 100644
index 000000000000..b2616bf7b778
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/quicksynergy/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, pkgconfig, gtk2, synergy}:
+
+stdenv.mkDerivation rec {
+  name = "quicksynergy-${version}";
+  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/nixpkgs/pkgs/applications/misc/ranger/default.nix b/nixpkgs/pkgs/applications/misc/ranger/default.nix
new file mode 100644
index 000000000000..5417a135dda4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ranger/default.nix
@@ -0,0 +1,61 @@
+{ 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.2";
+
+  src = fetchFromGitHub {
+    owner = "ranger";
+    repo = "ranger";
+    rev = "v${version}";
+    sha256= "1ws6g8z1m1hfp8bv4msvbaa9f7948p687jmc8h69yib4jkv3qyax";
+  };
+
+  checkInputs = with python3Packages; [ pytest ];
+  propagatedBuildInputs = [ file ];
+
+  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/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix b/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix
new file mode 100644
index 000000000000..bf4559e91178
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/redis-desktop-manager/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, lib, fetchgit, pkgconfig, libssh2
+, qtbase, qtdeclarative, qtgraphicaleffects, qtimageformats, qtquickcontrols
+, qtsvg, qttools, qtquick1, qtcharts
+, qmake
+}:
+
+let
+  breakpad_lss = fetchgit {
+    url = "https://chromium.googlesource.com/linux-syscall-support";
+    rev = "08056836f2b4a5747daff75435d10d649bed22f6";
+    sha256 = "1ryshs2nyxwa0kn3rlbnd5b3fhna9vqm560yviddcfgdm2jyg0hz";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "redis-desktop-manager-${version}";
+  version = "0.9.1";
+
+  src = fetchgit {
+    url = "https://github.com/uglide/RedisDesktopManager.git";
+    fetchSubmodules = true;
+    rev = "refs/tags/${version}";
+    sha256 = "0yd4i944d4blw8jky0nxl7sfkkj975q4d328rdcbhizwvf6dx81f";
+  };
+
+  nativeBuildInputs = [ pkgconfig qmake ];
+  buildInputs = [
+    libssh2 qtbase qtdeclarative qtgraphicaleffects qtimageformats
+    qtquick1 qtquickcontrols qtsvg qttools qtcharts
+  ];
+
+  dontUseQmakeConfigure = true;
+
+  # 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/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix b/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix
new file mode 100644
index 000000000000..03b8d709fce2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/redshift-plasma-applet/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, cmake, extra-cmake-modules, plasma-framework, kwindowsystem, redshift, fetchFromGitHub, }:
+
+let version = "1.0.18"; in
+
+stdenv.mkDerivation {
+  name = "redshift-plasma-applet-${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/nixpkgs/pkgs/applications/misc/redshift/575.patch b/nixpkgs/pkgs/applications/misc/redshift/575.patch
new file mode 100644
index 000000000000..d731d8ec43ad
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/redshift/default.nix b/nixpkgs/pkgs/applications/misc/redshift/default.nix
new file mode 100644
index 000000000000..d8512754f6a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/redshift/default.nix
@@ -0,0 +1,93 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, gettext, intltool
+, libtool, pkgconfig, wrapGAppsHook, wrapPython, gobject-introspection
+, gtk3, python, pygobject3, hicolor-icon-theme, 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
+}:
+
+stdenv.mkDerivation rec {
+  name = "redshift-${version}";
+  version = "1.12";
+
+  src = fetchFromGitHub {
+    owner = "jonls";
+    repo = "redshift";
+    rev = "v${version}";
+    sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6";
+  };
+
+  patches = [
+    # 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
+    hicolor-icon-theme
+  ] ++ 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 ]
+    ;
+
+  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 = ''
+    substituteInPlace $out/share/applications/redshift.desktop \
+      --replace 'Exec=redshift' "Exec=$out/bin/redshift"
+    substituteInPlace $out/share/applications/redshift.desktop \
+      --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk"
+  '';
+
+  enableParallelBuilding = true;
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/regextester/default.nix b/nixpkgs/pkgs/applications/misc/regextester/default.nix
new file mode 100644
index 000000000000..2b902d27a353
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/regextester/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, fetchFromGitHub
+, gettext
+, libxml2
+, pkgconfig
+, glib
+, granite
+, gtk3
+, gnome3
+, meson
+, ninja
+, gobject-introspection
+, gsettings-desktop-schemas
+, vala_0_40
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "regextester-${version}";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "artemanufrij";
+    repo = "regextester";
+    rev = version;
+    sha256 = "1xwwv1hccni1mrbl58f7ly4qfq6738vn24bcbl2q346633cd7kx3";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    meson
+    ninja
+    gettext
+    gobject-introspection
+    libxml2
+    vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
+    wrapGAppsHook
+  ];
+  buildInputs = [
+    glib
+    granite
+    gtk3
+    gnome3.defaultIconTheme
+    gnome3.libgee
+    gsettings-desktop-schemas
+  ];
+
+  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/nixpkgs/pkgs/applications/misc/rescuetime/default.nix b/nixpkgs/pkgs/applications/misc/rescuetime/default.nix
new file mode 100644
index 000000000000..d9cd85d5098a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rescuetime/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, fetchurl, dpkg, patchelf, qt4, libXtst, libXext, libX11, makeWrapper, libXScrnSaver }:
+
+let
+  src =
+    if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
+      name = "rescuetime-installer.deb";
+      url = "https://www.rescuetime.com/installers/rescuetime_current_i386.deb";
+      sha256 = "06q1jwqsrjvlj820dd4vl80jznwafsqshsg0p6si8qx4721blryz";
+    } else fetchurl {
+      name = "rescuetime-installer.deb";
+      url = "https://www.rescuetime.com/installers/rescuetime_current_amd64.deb";
+      sha256 = "0b56iglg8g45biddwsdn1hmx9gsz4kxr64civwyy7f69f022ppab";
+    };
+in stdenv.mkDerivation {
+  # https://www.rescuetime.com/updates/linux_release_notes.html
+  name = "rescuetime-2.10.0.1322";
+  inherit src;
+  buildInputs = [ dpkg makeWrapper ];
+  # 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 [ qt4 libXtst libXext libX11 libXScrnSaver ]}" \
+      $out/bin/rescuetime
+  '';
+  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/nixpkgs/pkgs/applications/misc/robo3t/default.nix b/nixpkgs/pkgs/applications/misc/robo3t/default.nix
new file mode 100644
index 000000000000..be365cb94e4e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/robo3t/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, fetchurl, zlib, glib, xorg, dbus, fontconfig, libGL,
+  freetype, xkeyboard_config, makeDesktopItem, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "robo3t-${version}";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "https://download.robomongo.org/1.1.1/linux/robo3t-${version}-linux-x86_64-c93c6b0.tar.gz";
+    sha256 = "140cn80vg7c8vpdjasqi4b3kyqj4n033lcm3ikz5674x3jr7r5zs";
+  };
+
+  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;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
+    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/nixpkgs/pkgs/applications/misc/robomongo/default.nix b/nixpkgs/pkgs/applications/misc/robomongo/default.nix
new file mode 100644
index 000000000000..76593eba5fc4
--- /dev/null
+++ b/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 {
+  name = "robomongo-${version}";
+  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/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix b/nixpkgs/pkgs/applications/misc/rofi-menugen/default.nix
new file mode 100644
index 000000000000..9b1b01577697
--- /dev/null
+++ b/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; [ garbas ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/rofi/config.patch b/nixpkgs/pkgs/applications/misc/rofi/config.patch
new file mode 100644
index 000000000000..46982d51e00c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rofi/config.patch
@@ -0,0 +1,54 @@
+diff --git a/script/rofi-theme-selector b/script/rofi-theme-selector
+index 0646e4bc..f827dbfe 100755
+--- a/script/rofi-theme-selector
++++ b/script/rofi-theme-selector
+@@ -42,34 +42,7 @@ function find_themes()
+     DIRS=${XDG_DATA_DIRS}
+     OLDIFS=${IFS}
+     IFS=:
+-    if [ -z "${XDG_DATA_DIRS}" ]
+-    then
+-        echo "XDG_DATA_DIRS needs to be set for this script to function correctly."
+-        echo -n "Using dirs from \$PATH: "
+-        DIRS=
+-        # Iterate over items in $PATH
+-        for p in ${PATH}; do
+-            # Remove trailing / if exists.
+-            x=${p%/}
+-            # remove both /bin and /sbin and /games from end
+-            x=${x%/bin}
+-            x=${x%/sbin}
+-            x=${x%/games}
+-            # Add /share
+-            x=${x}/share
+-            # Check if entry exists Prepend : so :${x}: matches nicely
+-            case ":${DIRS}" in
+-                *$x:*);;
+-                *) DIRS+="$x:";;
+-            esac
+-        done
+-        # Remove trailing :
+-        DIRS=${DIRS%:}
+-        echo "${DIRS}"
+-    fi
+-    # Add user dir.
+-    DIRS+=":${HOME}/.local/share/"
+-    DIRS+=":${HOME}/.config/"
++    DIRS+=":%ROFIOUT%/"
+     for p in ${DIRS}; do 
+     	p=${p%/}
+         TD=${p}/rofi/themes
+@@ -164,7 +137,12 @@ Current theme: <b>${CUR}</b>"""
+ ###
+ function set_theme()
+ {
+-    CDIR="${HOME}/.config/rofi/"
++    if [ -d "${XDG_CONFIG_HOME}" ]; then
++      CDIR="${XDG_CONFIG_HOME}/rofi/"
++    else
++      CDIR="${HOME}/.config/rofi/"
++    fi
++
+     if [ ! -d "${CDIR}" ]
+     then
+         mkdir -p ${CDIR}
diff --git a/nixpkgs/pkgs/applications/misc/rofi/default.nix b/nixpkgs/pkgs/applications/misc/rofi/default.nix
new file mode 100644
index 000000000000..63b047976b3d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rofi/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, libxkbcommon, pango, which, git
+, cairo, libxcb, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification
+, bison, flex, librsvg, check
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.5.1";
+  name = "rofi-unwrapped-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/DaveDavenport/rofi/releases/download/${version}/rofi-${version}.tar.gz";
+    sha256 = "1dc33zf33z38jcxb0lxpyd31waalpf6d4cd9z5f9m5qphdk1g679";
+  };
+
+  # config.patch may be removed in the future - https://github.com/DaveDavenport/rofi/pull/781
+  patches = [ ./config.patch ];
+
+  preConfigure = ''
+    patchShebangs "script"
+    # root not present in build /etc/passwd
+    sed -i 's/~root/~nobody/g' test/helper-expand.c
+  '';
+
+  postFixup = ''
+    substituteInPlace "$out"/bin/rofi-theme-selector \
+        --replace "%ROFIOUT%" "$out/share"
+  '';
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ libxkbcommon pango cairo git bison flex librsvg check
+    libstartup_notification libxcb xcbutil xcbutilwm xcbutilxrm which
+  ];
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Window switcher, run dialog and dmenu replacement";
+    homepage = https://davedavenport.github.io/rofi;
+    license = licenses.mit;
+    maintainers = with maintainers; [ mbakke garbas ma27 ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix b/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix
new file mode 100644
index 000000000000..c2384f56faa1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rofi/wrapper.nix
@@ -0,0 +1,22 @@
+{ stdenv, rofi-unwrapped, makeWrapper, theme ? null }:
+
+if theme == null then rofi-unwrapped else
+stdenv.mkDerivation {
+  name = "rofi-${rofi-unwrapped.version}";
+  buildInputs = [ makeWrapper ];
+  preferLocalBuild = true;
+  passthru.unwrapped = rofi-unwrapped;
+  buildCommand = ''
+    mkdir $out
+    ln -s ${rofi-unwrapped}/* $out
+    rm $out/bin
+    mkdir $out/bin
+    ln -s ${rofi-unwrapped}/bin/* $out/bin
+    rm $out/bin/rofi
+    makeWrapper ${rofi-unwrapped}/bin/rofi $out/bin/rofi --add-flags "-theme ${theme}"
+  '';
+
+  meta = rofi-unwrapped.meta // {
+    priority = (rofi-unwrapped.meta.priority or 0) - 1;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/roxterm/default.nix b/nixpkgs/pkgs/applications/misc/roxterm/default.nix
new file mode 100644
index 000000000000..11a75e4064f4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/roxterm/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, docbook_xsl, dbus, dbus-glib, expat
+, gsettings-desktop-schemas, gdk_pixbuf, gtk3, hicolor-icon-theme
+, imagemagick, itstool, librsvg, libtool, libxslt, makeWrapper
+, pkgconfig, python, pythonPackages, vte
+, wrapGAppsHook}:
+
+# TODO: Still getting following warning.
+# WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
+# Seems related to this:
+# https://forums.gentoo.org/viewtopic-t-947210-start-0.html
+
+let version = "3.3.2";
+in stdenv.mkDerivation rec {
+  name = "roxterm-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/roxterm/${name}.tar.xz";
+    sha256 = "0vjh7k4jm4bd01j88w9bmvq27zqsajjzy131fpi81zkii5lisl1k";
+  };
+
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+
+  buildInputs =
+    [ docbook_xsl expat imagemagick itstool librsvg libtool libxslt
+      makeWrapper python pythonPackages.lockfile dbus dbus-glib
+      gdk_pixbuf gsettings-desktop-schemas gtk3
+      hicolor-icon-theme vte ];
+
+  NIX_CFLAGS_COMPILE = [ "-I${dbus-glib.dev}/include/dbus-1.0"
+                         "-I${dbus.dev}/include/dbus-1.0"
+                         "-I${dbus.lib}/lib/dbus-1.0/include" ];
+
+  # Fix up python path so the lockfile library is on it.
+  PYTHONPATH = stdenv.lib.makeSearchPathOutput "lib" python.sitePackages [
+    pythonPackages.lockfile
+  ];
+
+  buildPhase = ''
+    # Fix up the LD_LIBRARY_PATH so that expat is on it
+    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${expat.out}/lib"
+
+    python mscript.py configure --prefix="$out" --disable-nls --disable-translations
+    python mscript.py build
+  '';
+
+  installPhase = ''
+    python mscript.py install
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://roxterm.sourceforge.net/;
+    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/nixpkgs/pkgs/applications/misc/rsibreak/default.nix b/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
new file mode 100644
index 000000000000..6ee9966401b5
--- /dev/null
+++ b/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 = ".8";
+in mkDerivation rec {
+  name = "rsibreak-${version}${revision}";
+
+  src = fetchurl {
+    url = "https://download.kde.org/stable/${pname}/${version}/${name}.tar.xz";
+    sha256 = "1qn9xdjx9zzw47jsj7f4nkqmrangfhdgafm2jxm7cm6z6kcvzr28";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [ knotifyconfig kidletime kwindowsystem ktextwidgets kcrash ];
+
+  meta = with lib; {
+    description = "RSIBreak 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/nixpkgs/pkgs/applications/misc/rtl-sdr/default.nix b/nixpkgs/pkgs/applications/misc/rtl-sdr/default.nix
new file mode 100644
index 000000000000..aedc847ee69f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rtl-sdr/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchpatch, fetchgit, cmake, pkgconfig, libusb1 }:
+
+stdenv.mkDerivation rec {
+  name = "rtl-sdr-${version}";
+  version = "0.6.0";
+
+  src = fetchgit {
+    url = "git://git.osmocom.org/rtl-sdr.git";
+    rev = "refs/tags/${version}";
+    sha256 = "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake 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/nixpkgs/pkgs/applications/misc/rtl_433/default.nix b/nixpkgs/pkgs/applications/misc/rtl_433/default.nix
new file mode 100644
index 000000000000..5d012437e6ee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rtl_433/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libusb1, rtl-sdr }:
+stdenv.mkDerivation rec {
+
+  version = "18.12";
+  name = "rtl_433-${version}";
+
+  src = fetchFromGitHub {
+    owner = "merbanan";
+    repo = "rtl_433";
+    rev = "18.12";
+    sha256 = "0y73g9ffpsgnmfk8lbihyl9d1fd9v91wsn8k8xhsdmgmn4ra1jk5";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  buildInputs = [ libusb1 rtl-sdr ];
+
+  meta = with stdenv.lib; {
+    description = "Decode traffic from devices that broadcast on 433.9 MHz";
+    homepage = https://github.com/merbanan/rtl_433;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ earldouglas ];
+    platforms = platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/misc/rtv/default.nix b/nixpkgs/pkgs/applications/misc/rtv/default.nix
new file mode 100644
index 000000000000..05b19bbbff9c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rtv/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+with python3Packages;
+buildPythonApplication rec {
+  version = "1.24.0";
+  pname = "rtv";
+
+  src = fetchFromGitHub {
+    owner = "michael-lazar";
+    repo = "rtv";
+    rev = "v${version}";
+    sha256 = "0vzhnqys8nr6ymsi1mnv092z3i7nwyhgnj4jv6mjifak9j3164fw";
+  };
+
+  # 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; [ jgeerds wedens ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/rxvt/default.nix b/nixpkgs/pkgs/applications/misc/rxvt/default.nix
new file mode 100644
index 000000000000..8e63cdb6d16c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl
+, pkgconfig, libtool
+, libX11, libXt, libXpm }:
+
+stdenv.mkDerivation rec {
+  name = "rxvt-${version}";
+  version = "2.7.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/rxvt/${name}.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/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-autocomplete-all-the-things/default.nix b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-autocomplete-all-the-things/default.nix
new file mode 100644
index 000000000000..f872e8008363
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-autocomplete-all-the-things/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "urxvt-autocomplete-all-the-things-${version}";
+  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/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-font-size/default.nix b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-font-size/default.nix
new file mode 100644
index 000000000000..4f4319af6cbd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perl/default.nix b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perl/default.nix
new file mode 100644
index 000000000000..13e005014f10
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perls/default.nix b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perls/default.nix
new file mode 100644
index 000000000000..544789e865b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-perls/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "urxvt-perls-${version}";
+  version = "2.2";
+
+  src = fetchFromGitHub {
+    owner = "muennich";
+    repo = "urxvt-perls";
+    rev = version;
+    sha256 = "1cb0jbjmwfy2dlq2ny8wpc04k79jp3pz9qhbmgagsxs3sp1jg2hz";
+  };
+
+  installPhase = ''
+    mkdir -p $out/lib/urxvt/perl
+    cp clipboard \
+       keyboard-select \
+       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/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-tabbedex/default.nix b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-tabbedex/default.nix
new file mode 100644
index 000000000000..68be8b738de6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-tabbedex/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, perl }:
+
+stdenv.mkDerivation {
+  name = "urxvt-tabbedex-2016-08-17";
+
+  src = fetchFromGitHub {
+    owner = "mina86";
+    repo = "urxvt-tabbedex";
+    rev = "089d0cb724eeb62fa8a5dfcb00ced7761e794149";
+    sha256 = "0a5jrb7ryafj55fgi8fhpy3gmb1xh5j7pbn8p5j5k6s2fnh0g0hq";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix
new file mode 100644
index 000000000000..f4a41a89e1c4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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; [ garbas ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-vtwheel.nix b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-vtwheel.nix
new file mode 100644
index 000000000000..2f2c20558031
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-vtwheel.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;
+  };
+  
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/rxvt_unicode/default.nix b/nixpkgs/pkgs/applications/misc/rxvt_unicode/default.nix
new file mode 100644
index 000000000000..0e59ef5512d8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt_unicode/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, makeDesktopItem, perlSupport, libX11, libXt, libXft,
+  ncurses, perl, fontconfig, freetype, pkgconfig, libXrender,
+  gdkPixbufSupport, gdk_pixbuf, unicode3Support }:
+
+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
+
+stdenv.mkDerivation (rec {
+
+  name = "${pname}${if perlSupport then "-with-perl" else ""}${if unicode3Support then "-with-unicode3" else ""}-${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 ]
+    ++ stdenv.lib.optional perlSupport perl
+    ++ stdenv.lib.optional gdkPixbufSupport gdk_pixbuf;
+
+  outputs = [ "out" "terminfo" ];
+
+  patches = [
+    ./rxvt-unicode-9.06-font-width.patch
+    ./rxvt-unicode-256-color-resources.patch
+  ]
+  ++ stdenv.lib.optional stdenv.isDarwin ./rxvt-unicode-makefile-phony.patch;
+
+  preConfigure =
+    ''
+      mkdir -p $terminfo/share/terminfo
+      configureFlags="--with-terminfo=$terminfo/share/terminfo --enable-256-color ${if perlSupport then "--enable-perl" else "--disable-perl"} ${if unicode3Support then "--enable-unicode3" else "--disable-unicode3"}";
+      export TERMINFO=$terminfo/share/terminfo # without this the terminfo won't be compiled by tic, see man tic
+      NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype.dev}/include/freetype2"
+      NIX_LDFLAGS="$NIX_LDFLAGS -lfontconfig -lXrender "
+    ''
+    # make urxvt find its perl file lib/perl5/site_perl is added to PERL5LIB automatically
+    + stdenv.lib.optionalString perlSupport ''
+      mkdir -p $out/lib/perl5
+      ln -s $out/{lib/urxvt,lib/perl5/site_perl}
+    '';
+
+  postInstall = ''
+    mkdir -p $out/nix-support
+    echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
+    cp -r ${desktopItem}/share/applications/ $out/share/
+  '';
+
+  meta = with stdenv.lib; {
+    inherit description;
+    homepage = http://software.schmorp.de/pkg/rxvt-unicode.html;
+    downloadPage = "http://dist.schmorp.de/rxvt-unicode/Attic/";
+    maintainers = [ ];
+    platforms = platforms.unix;
+    license = licenses.gpl3;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-256-color-resources.patch b/nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-256-color-resources.patch
new file mode 100644
index 000000000000..c8d2acfbdc51
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-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/nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch b/nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch
new file mode 100644
index 000000000000..636083218fa5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-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/nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-makefile-phony.patch b/nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-makefile-phony.patch
new file mode 100644
index 000000000000..5e42e17c156a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-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/nixpkgs/pkgs/applications/misc/rxvt_unicode/wrapper.nix b/nixpkgs/pkgs/applications/misc/rxvt_unicode/wrapper.nix
new file mode 100644
index 000000000000..909c267def82
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/rxvt_unicode/wrapper.nix
@@ -0,0 +1,21 @@
+{ symlinkJoin, rxvt_unicode, makeWrapper, plugins }:
+
+let
+  rxvt_name = builtins.parseDrvName rxvt_unicode.name;
+
+in symlinkJoin {
+  name = "${rxvt_name.name}-with-plugins-${rxvt_name.version}";
+
+  paths = [ rxvt_unicode ] ++ plugins;
+
+  buildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    wrapProgram $out/bin/urxvt \
+      --suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl"
+    wrapProgram $out/bin/urxvtd \
+      --suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl"
+  '';
+
+  passthru.plugins = plugins;
+}
diff --git a/nixpkgs/pkgs/applications/misc/safeeyes/default.nix b/nixpkgs/pkgs/applications/misc/safeeyes/default.nix
new file mode 100644
index 000000000000..54c2a68fd597
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/safeeyes/default.nix
@@ -0,0 +1,71 @@
+{ 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 {
+  name = "${pname}-${version}";
+  pname = "safeeyes";
+  version = "2.0.6";
+  namePrefix = "";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s14pxicgq33srvhf6bvfq48wv3z4rlsmzkccz4ky9vh3gfx7zka";
+  };
+
+  buildInputs = [
+    gtk3
+    gobject-introspection
+    gnome3.defaultIconTheme
+    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/nixpkgs/pkgs/applications/misc/sakura/default.nix b/nixpkgs/pkgs/applications/misc/sakura/default.nix
new file mode 100644
index 000000000000..33df8e8f0a27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sakura/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, cmake, pkgconfig, gtk3, perl, vte, pcre, glib , makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "sakura-${version}";
+  version = "3.6.0";
+
+  src = fetchurl {
+    url = "https://launchpad.net/sakura/trunk/${version}/+download/${name}.tar.bz2";
+    sha256 = "1q463qm41ym7jb3kbzjz7b6x549vmgkb70arpkhsf86yxly1y5m1";
+  };
+
+  nativeBuildInputs = [ cmake perl pkgconfig ];
+
+  buildInputs = [ makeWrapper gtk3 vte pcre glib ];
+
+  # Wrapper sets path to gsettings-schemata so sakura knows where to find colorchooser, fontchooser ...
+  postInstall = "wrapProgram $out/bin/sakura --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/";
+
+  meta = with stdenv.lib; {
+    description = "A terminal emulator based on GTK and VTE";
+    homepage    = http://www.pleyades.net/david/projects/sakura;
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ astsmtl codyopel ];
+    platforms   = platforms.linux;
+    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.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/sbagen/default.nix b/nixpkgs/pkgs/applications/misc/sbagen/default.nix
new file mode 100644
index 000000000000..6f38ba5662b5
--- /dev/null
+++ b/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 = "GPL";
+    platforms = [ "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/sc-im/default.nix b/nixpkgs/pkgs/applications/misc/sc-im/default.nix
new file mode 100644
index 000000000000..280a42fde14c
--- /dev/null
+++ b/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";
+  name = "sc-im-${version}";
+
+  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/nixpkgs/pkgs/applications/misc/sdcv/default.nix b/nixpkgs/pkgs/applications/misc/sdcv/default.nix
new file mode 100644
index 000000000000..cc8c30043b29
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sdcv/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, glib, gettext, readline }:
+
+stdenv.mkDerivation rec {
+  name = "sdcv-${version}";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "Dushistov";
+    repo = "sdcv";
+    rev = "v${version}";
+    sha256 = "1b67s4nj0s5fh3cjk7858qvhiisc557xx72xwzrb8hq6ijpwx5k0";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/sent/default.nix b/nixpkgs/pkgs/applications/misc/sent/default.nix
new file mode 100644
index 000000000000..9bbae33b3e41
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/sequeler/default.nix b/nixpkgs/pkgs/applications/misc/sequeler/default.nix
new file mode 100644
index 000000000000..670e2be47164
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sequeler/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkgconfig, vala, gobject-introspection, gettext, wrapGAppsHook, python3, desktop-file-utils
+, gtk3, glib, granite, libgee, libgda, gtksourceview, libxml2, libsecret }:
+
+
+let
+  version = "0.6.5";
+  sqlGda = libgda.override {
+    mysqlSupport = true;
+    postgresSupport = true;
+  };
+
+in stdenv.mkDerivation rec {
+  name = "sequeler-${version}";
+
+  src = fetchFromGitHub {
+    owner = "Alecaddd";
+    repo = "sequeler";
+    rev = "v${version}";
+    sha256 = "18d0dwrsn69fx1lwm6ihhk2r4996pxiy4hfv608gc1kl4s4f4sqp";
+  };
+
+  nativeBuildInputs = [ meson ninja pkgconfig vala gobject-introspection gettext wrapGAppsHook python3 desktop-file-utils ];
+
+  buildInputs = [ gtk3 glib granite libgee sqlGda gtksourceview libxml2 libsecret ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  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 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/sequelpro/default.nix b/nixpkgs/pkgs/applications/misc/sequelpro/default.nix
new file mode 100644
index 000000000000..fc63745ebb84
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sequelpro/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, undmg }:
+
+stdenv.mkDerivation rec {
+  name = "sequel-pro-${version}";
+  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/nixpkgs/pkgs/applications/misc/sigal/default.nix b/nixpkgs/pkgs/applications/misc/sigal/default.nix
new file mode 100644
index 000000000000..e57e9394c105
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sigal/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonApplication, fetchPypi, pythonPackages, ffmpeg }:
+
+buildPythonApplication rec {
+  version = "1.4.1";
+  pname   = "sigal";
+
+  src = fetchPypi {
+    inherit version pname;
+    sha256 = "1fg32ii26j3xpq3cryi212lx9z33qnicm1cszwv1wfpg6sr2rr61";
+  };
+
+  buildInputs = with pythonPackages; [ pytest ];
+  propagatedBuildInputs = with pythonPackages; [
+    jinja2
+    markdown
+    pillow
+    pilkit
+    clint
+    click
+    blinker
+  ];
+
+  makeWrapperArgs = [ "--prefix PATH : ${ffmpeg}/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 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/simplenote/default.nix b/nixpkgs/pkgs/applications/misc/simplenote/default.nix
new file mode 100644
index 000000000000..719b8d32b330
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/simplenote/default.nix
@@ -0,0 +1,64 @@
+{ fetchurl, 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 ,libXScrnSaver, gnome2 }:
+
+stdenv.mkDerivation rec {
+
+  name = "simplenote-${pkgver}";
+  pkgver = "1.1.3";
+
+  src = fetchurl {
+    url = "https://github.com/Automattic/simplenote-electron/releases/download/v${pkgver}/Simplenote-linux-${pkgver}.tar.gz";
+    sha256 = "1z92yyjmg3bgfqfdpnysf98h9hhhnqzdqqigwlmdmn3d7fy49kcf";
+  };
+
+  buildCommand = 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 libcap systemd libnotify libXScrnSaver gnome2.GConf
+      xorg.libxcb
+    ];
+
+    libPathNative = lib.makeLibraryPath packages;
+    libPath64 = lib.makeSearchPathOutput "lib" "lib64" packages;
+    libPath = "${libPathNative}:${libPath64}";
+
+  in ''
+    mkdir -p $out/share/
+    mkdir -p $out/bin
+    tar xvzf $src -C $out/share/
+    mv $out/share/Simplenote-linux-x64 $out/share/simplenote
+    mv $out/share/simplenote/Simplenote $out/share/simplenote/simplenote
+    mkdir -p $out/share/applications
+
+    cat > $out/share/applications/simplenote.desktop << EOF
+    [Desktop Entry]
+    Name=Simplenote
+    Comment=Simplenote for Linux
+    Exec=$out/bin/simplenote
+    Icon=$out/share/simplenote/Simplenote.png
+    Type=Application
+    StartupNotify=true
+    Categories=Development;
+    EOF
+
+    fixupPhase
+
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${libPath}:$out/share/simplenote" \
+      $out/share/simplenote/simplenote
+
+    ln -s $out/share/simplenote/simplenote $out/bin/simplenote
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The simplest way to keep notes";
+    homepage = https://github.com/Automattic/simplenote-electron;
+    license = licenses.lgpl2;
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/slade/default.nix b/nixpkgs/pkgs/applications/misc/slade/default.nix
new file mode 100644
index 000000000000..fc6be074a079
--- /dev/null
+++ b/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 {
+  name = "slade-${version}";
+  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/nixpkgs/pkgs/applications/misc/slade/git.nix b/nixpkgs/pkgs/applications/misc/slade/git.nix
new file mode 100644
index 000000000000..9ee30d347b0a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix b/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix
new file mode 100644
index 000000000000..cf5c4625c952
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sleepyhead/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchgit, qt5, zlib, libGLU, libX11 }:
+
+let
+  name = "sleepyhead-${version}";
+  version = "1.0.0-beta-git";
+in stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchgit {
+    url = https://gitlab.com/sleepyhead/sleepyhead-code.git;
+    rev = "9e2329d8bca45693231b5e3dae80063717c24578";
+    sha256 = "0448z8gyaxpgpnksg34lzmffj36jdpm0ir4xxa5gvzagkx0wk07h";
+  };
+
+  buildInputs = [
+    qt5.qtbase qt5.qtwebkit qt5.qtserialport
+    zlib
+    libGLU
+    libX11
+  ];
+
+  patchPhase = ''
+    patchShebangs configure
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp sleepyhead/SleepyHead $out/bin
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/slic3r/default.nix b/nixpkgs/pkgs/applications/misc/slic3r/default.nix
new file mode 100644
index 000000000000..7b28462d5527
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/slic3r/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, fetchgit, perl, makeWrapper, makeDesktopItem
+, which, perlPackages, boost
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.3.0";
+  name = "slic3r-${version}";
+
+  src = fetchgit {
+    url = "git://github.com/alexrj/Slic3r";
+    rev = version;
+    sha256 = "1pg4jxzb7f58ls5s8mygza8kqdap2c50kwlsdkf28bz1xi611zbi";
+  };
+
+  buildInputs = 
+  [boost] ++ 
+  (with perlPackages; [ perl makeWrapper which
+    EncodeLocale MathClipper ExtUtilsXSpp threads
+    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 = "Application;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
+  '';
+
+  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 = http://slic3r.org/;
+    license = licenses.agpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bjornfor the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/slic3r/prusa3d.nix b/nixpkgs/pkgs/applications/misc/slic3r/prusa3d.nix
new file mode 100644
index 000000000000..251ee4d918b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/slic3r/prusa3d.nix
@@ -0,0 +1,132 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, which, cmake, perl, perlPackages,
+  boost, tbb, wxGTK30, pkgconfig, gtk3, fetchurl, gtk2, libGLU,
+  glew, eigen, curl, gtest, nlopt, pcre, xorg }:
+let
+  AlienWxWidgets = perlPackages.buildPerlPackage rec {
+    name = "Alien-wxWidgets-0.69";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MD/MDOOTSON/${name}.tar.gz";
+      sha256 = "075m880klf66pbcfk0la2nl60vd37jljizqndrklh5y4zvzdy1nr";
+    };
+    propagatedBuildInputs = [
+      pkgconfig perlPackages.ModulePluggable perlPackages.ModuleBuild
+      gtk2 gtk3 wxGTK30
+    ];
+  };
+
+  Wx = perlPackages.Wx.overrideAttrs (oldAttrs: {
+    propagatedBuildInputs = [
+      perlPackages.ExtUtilsXSpp
+      AlienWxWidgets
+    ];
+  });
+
+  WxGLCanvas = perlPackages.buildPerlPackage rec {
+    name = "Wx-GLCanvas-0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MB/MBARBON/${name}.tar.gz";
+      sha256 = "1q4gvj4gdx4l8k4mkgiix24p9mdfy1miv7abidf0my3gy2gw5lka";
+    };
+    propagatedBuildInputs = [ Wx perlPackages.OpenGL libGLU ];
+    doCheck = false;
+  };
+in
+stdenv.mkDerivation rec {
+  name = "slic3r-prusa-edition-${version}";
+  version = "1.41.2";
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+  ];
+
+  buildInputs = [
+    curl
+    eigen
+    glew
+    pcre
+    perl
+    tbb
+    which
+    Wx
+    WxGLCanvas
+    xorg.libXdmcp
+    xorg.libpthreadstubs
+  ] ++ checkInputs ++ (with perlPackages; [
+    boost
+    ClassXSAccessor
+    EncodeLocale
+    ExtUtilsMakeMaker
+    ExtUtilsTypemapsDefault
+    ExtUtilsXSpp
+    GrowlGNTP
+    ImportInto
+    IOStringy
+    locallib
+    LWP
+    MathClipper
+    MathConvexHullMonotoneChain
+    MathGeometryVoronoi
+    MathPlanePath
+    ModuleBuildWithXSpp
+    Moo
+    NetDBus
+    OpenGL
+    threads
+    XMLSAX
+  ]);
+
+  checkInputs = [ gtest ];
+
+  # The build system uses custom logic - defined in
+  # xs/src/libnest2d/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 need to set the path via the NLOPT environment variable instead.
+  NLOPT = "${nlopt}";
+
+  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
+
+    # PERL_VENDORARCH and PERL_VENDORLIB aren't set correctly by the build
+    # system, so we have to override them. Setting them as environment variables
+    # doesn't work though, so substituting the paths directly in CMakeLists.txt
+    # seems to be the easiest way.
+    sed -i "s|\''${PERL_VENDORARCH}|$out/lib/slic3r-prusa3d|g" xs/CMakeLists.txt
+    sed -i "s|\''${PERL_VENDORLIB}|$out/lib/slic3r-prusa3d|g" xs/CMakeLists.txt
+  '' + lib.optionalString (lib.versionOlder "2.5" nlopt.version) ''
+    # 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' xs/src/libnest2d/cmake_modules/FindNLopt.cmake
+  '';
+
+  postInstall = ''
+    echo 'postInstall'
+    wrapProgram "$out/bin/slic3r-prusa3d" \
+    --prefix PERL5LIB : "$out/lib/slic3r-prusa3d:$PERL5LIB"
+
+    # it seems we need to copy the icons...
+    mkdir -p $out/bin/var
+    cp -r ../resources/icons/* $out/bin/var/
+    cp -r ../resources $out/bin/
+  '';
+
+  src = fetchFromGitHub {
+    owner = "prusa3d";
+    repo = "Slic3r";
+    sha256 = "046ircwc0wr586v7106ys557ypslmyq9p4qgi34ads1d6bgxhlyy";
+    rev = "version_${version}";
+  };
+
+  meta = with stdenv.lib; {
+    description = "G-code generator for 3D printer";
+    homepage = https://github.com/prusa3d/Slic3r;
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ tweber ];
+    broken = stdenv.hostPlatform.isAarch64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/slmenu/default.nix b/nixpkgs/pkgs/applications/misc/slmenu/default.nix
new file mode 100644
index 000000000000..193bcf205f5b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/slstatus/default.nix b/nixpkgs/pkgs/applications/misc/slstatus/default.nix
new file mode 100644
index 000000000000..f4a2e889cd43
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/slstatus/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, pkgconfig, writeText, libX11, conf ? null }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "slstatus-${version}";
+  version = "unstable-2018-04-16";
+
+  src = fetchgit {
+    url = https://git.suckless.org/slstatus;
+    rev = "97ef7c2a1d67bb2c9c379e657fbc8e35acd6aafb";
+    sha256 = "1777hgl10imk0l2sgnqgbkfchv1mpxrd82ninzwp7f1rgwchz36v";
+  };
+
+  configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+  preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+  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; [ geistesk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/soapyairspy/default.nix b/nixpkgs/pkgs/applications/misc/soapyairspy/default.nix
new file mode 100644
index 000000000000..1d8056ca1e81
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/soapyairspy/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake
+, airspy, soapysdr
+} :
+
+let
+  version = "0.1.2";
+
+in stdenv.mkDerivation {
+  name = "soapyairspy-${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/nixpkgs/pkgs/applications/misc/soapybladerf/default.nix b/nixpkgs/pkgs/applications/misc/soapybladerf/default.nix
new file mode 100644
index 000000000000..bab829e05e3a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/soapybladerf/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, libbladeRF, soapysdr
+} :
+
+let
+  version = "0.4.0";
+
+in stdenv.mkDerivation {
+  name = "soapybladerf-${version}";
+
+  src = fetchFromGitHub {
+    owner = "pothosware";
+    repo = "SoapyBladeRF";
+    rev = "soapy-bladerf-${version}";
+    sha256 = "1gf1azfydw033nlg2bgs9cbsbp9npjdrgjwlsffn0d9x0qbgxjqp";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/soapyhackrf/default.nix b/nixpkgs/pkgs/applications/misc/soapyhackrf/default.nix
new file mode 100644
index 000000000000..2c5dd058ced3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/soapyhackrf/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, hackrf, soapysdr
+} :
+
+let
+  version = "0.3.3";
+
+in stdenv.mkDerivation {
+  name = "soapyhackrf-${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/nixpkgs/pkgs/applications/misc/soapyremote/default.nix b/nixpkgs/pkgs/applications/misc/soapyremote/default.nix
new file mode 100644
index 000000000000..f6970c156b8f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/soapyremote/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, cmake, soapysdr, avahi }:
+
+let
+  version = "0.5.0";
+
+in stdenv.mkDerivation {
+  name = "soapyremote-${version}";
+
+  src = fetchFromGitHub {
+    owner = "pothosware";
+    repo = "SoapyRemote";
+    rev = "soapy-remote-${version}";
+    sha256 = "1lyjhf934zap61ky7rbk46bp8s8sjk8sgdyszhryfyf571jv9b2i";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/soapyrtlsdr/default.nix b/nixpkgs/pkgs/applications/misc/soapyrtlsdr/default.nix
new file mode 100644
index 000000000000..d85fe347cd74
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/soapyrtlsdr/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, rtl-sdr, soapysdr
+} :
+
+let
+  version = "0.3.0";
+
+in stdenv.mkDerivation {
+  name = "soapyrtlsdr-${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/nixpkgs/pkgs/applications/misc/soapysdr/default.nix b/nixpkgs/pkgs/applications/misc/soapysdr/default.nix
new file mode 100644
index 000000000000..f14b560bf52c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/soapysdr/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, lib, lndir, makeWrapper
+, fetchFromGitHub, cmake
+, libusb, pkgconfig
+, python, swig2, numpy, ncurses
+, extraPackages ? []
+} :
+
+let
+  version = "0.7.0";
+
+in stdenv.mkDerivation {
+  name = "soapysdr-${version}";
+
+  src = fetchFromGitHub {
+    owner = "pothosware";
+    repo = "SoapySDR";
+    rev = "soapy-sdr-${version}";
+    sha256 = "14fjwnfj7jz9ixvim2gy4f52y6s7d4xggzxn2ck7g4q35d879x13";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ libusb ncurses numpy swig2 python makeWrapper ];
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-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 : ${lib.makeSearchPath "lib/SoapySDR/modules0.6" extraPackages}
+    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/nixpkgs/pkgs/applications/misc/soapyuhd/default.nix b/nixpkgs/pkgs/applications/misc/soapyuhd/default.nix
new file mode 100644
index 000000000000..4f2a79c97fe2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/soapyuhd/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, uhd, boost, soapysdr
+} :
+
+let
+  version = "0.3.4";
+
+in stdenv.mkDerivation {
+  name = "soapyuhd-${version}";
+
+  src = fetchFromGitHub {
+    owner = "pothosware";
+    repo = "SoapyUHD";
+    rev = "soapy-uhd-${version}";
+    sha256 = "1da7cjcvfdqhgznm7x14s1h7lwz5lan1b48akw445ah1vxwvh4hl";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/solaar/default.nix b/nixpkgs/pkgs/applications/misc/solaar/default.nix
new file mode 100644
index 000000000000..cb64365a944f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/solaar/default.nix
@@ -0,0 +1,42 @@
+{fetchFromGitHub, stdenv, gtk3, pythonPackages, gobject-introspection}:
+pythonPackages.buildPythonApplication rec {
+  name = "solaar-unstable-${version}";
+  version = "2018-02-02";
+  namePrefix = "";
+  src = fetchFromGitHub {
+    owner = "pwr";
+    repo = "Solaar";
+    rev = "59b7285fdfc875119f0c92cfd5f5909e8a8e578c";
+    sha256 = "0zy5vmjzdybnjf0mpp8rny11sc43gmm8172svsm9s51h7x0v83y3";
+  };
+
+  propagatedBuildInputs = [pythonPackages.pygobject3 pythonPackages.pyudev gobject-introspection gtk3];
+  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"
+  '';
+
+  enableParallelBuilding = true;
+  meta = with stdenv.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.github.io/Solaar/;
+    platforms = platforms.linux;
+    maintainers = [maintainers.spinus maintainers.ysndr];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/spacefm/default.nix b/nixpkgs/pkgs/applications/misc/spacefm/default.nix
new file mode 100644
index 000000000000..9f20b20f7f3a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/spacefm/default.nix
@@ -0,0 +1,53 @@
+{ 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 {
+  name = "spacefm-${version}";
+  version = "1.0.6";
+
+  src = fetchFromGitHub {
+    owner = "IgnorantGuru";
+    repo = "spacefm";
+    rev = "${version}";
+    sha256 = "089r6i40lxcwzp60553b18f130asspnzqldlpii53smz52kvpirx";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/speedread/default.nix b/nixpkgs/pkgs/applications/misc/speedread/default.nix
new file mode 100644
index 000000000000..180b66fda8ce
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/sqliteman/default.nix b/nixpkgs/pkgs/applications/misc/sqliteman/default.nix
new file mode 100644
index 000000000000..a1d5ef153bbd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sqliteman/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, qt4, qscintilla }:
+
+stdenv.mkDerivation rec {
+  name = "sqliteman-${version}";
+  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/nixpkgs/pkgs/applications/misc/ssocr/default.nix b/nixpkgs/pkgs/applications/misc/ssocr/default.nix
new file mode 100644
index 000000000000..aee486ddf0c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ssocr/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, imlib2, libX11 }:
+
+stdenv.mkDerivation rec {
+  name = "ssocr-${version}";
+  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/nixpkgs/pkgs/applications/misc/st/default.nix b/nixpkgs/pkgs/applications/misc/st/default.nix
new file mode 100644
index 000000000000..f8340b1bd227
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/st/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, writeText, libX11, ncurses
+, libXft, conf ? null, patches ? [], extraLibs ? []}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "st-0.8.1";
+
+  src = fetchurl {
+    url = "https://dl.suckless.org/st/${name}.tar.gz";
+    sha256 = "09k94v3n20gg32xy7y68p96x9dq5msl80gknf9gbvlyjp3i0zyy4";
+  };
+
+  inherit patches;
+
+  configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+  preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/st/xst.nix b/nixpkgs/pkgs/applications/misc/st/xst.nix
new file mode 100644
index 000000000000..b63a41bb9156
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/st/xst.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libX11, ncurses, libXext, libXft, fontconfig }:
+
+with stdenv.lib;
+
+let
+  version = "0.7.1";
+  name = "xst-${version}";
+in stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchFromGitHub {
+    owner = "neeasade";
+    repo = "xst";
+    rev = "v${version}";
+    sha256 = "1fh4y2w0icaij99kihl3w8j5d5b38d72afp17c81pi57f43ss6pc";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/stag/default.nix b/nixpkgs/pkgs/applications/misc/stag/default.nix
new file mode 100644
index 000000000000..6d6382faccd4
--- /dev/null
+++ b/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 = with stdenv.lib.maintainers; [ ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/stog/default.nix b/nixpkgs/pkgs/applications/misc/stog/default.nix
new file mode 100644
index 000000000000..d3cd81f7f13a
--- /dev/null
+++ b/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 {
+  name = "stog-${version}";
+  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/nixpkgs/pkgs/applications/misc/stog/install.patch b/nixpkgs/pkgs/applications/misc/stog/install.patch
new file mode 100644
index 000000000000..a2407d3079f5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/stupidterm/default.nix b/nixpkgs/pkgs/applications/misc/stupidterm/default.nix
new file mode 100644
index 000000000000..483fb9cf95a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/stupidterm/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, pkgconfig, vte, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "stupidterm-2018-09-25";
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ vte gtk ];
+
+  src = fetchFromGitHub {
+    owner = "esmil";
+    repo = "stupidterm";
+    rev = "d1bc020797330df83d427e361d3620e346a4e792";
+    sha256 = "1yh2vhq3d0qbh0dh2h9yc7s9gkffgkb987vvwz2bdnvlskrjmmdj";
+  };
+
+  makeFlags = "PKGCONFIG=${pkgconfig}/bin/pkg-config binary=stupidterm";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/applications $out/share/stupidterm
+    cp stupidterm $out/bin
+    substituteAll ${./stupidterm.desktop} $out/share/applications/stupidterm.desktop
+    substituteAll stupidterm.ini $out/share/stupidterm/stupidterm.ini
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple wrapper around the VTE terminal emulator widget for GTK+";
+    longDescription = ''
+      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/nixpkgs/pkgs/applications/misc/stupidterm/stupidterm.desktop b/nixpkgs/pkgs/applications/misc/stupidterm/stupidterm.desktop
new file mode 100644
index 000000000000..c26d46060183
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/stupidterm/stupidterm.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=20170315
+Name=stupidterm
+Comment=VTE based terminal emulator
+Exec=stupidterm
+Icon=utilities-terminal
+Terminal=false
+Type=Application
+Categories=System;TerminalEmulator;
diff --git a/nixpkgs/pkgs/applications/misc/styx/default.nix b/nixpkgs/pkgs/applications/misc/styx/default.nix
new file mode 100644
index 000000000000..f9779beec0f4
--- /dev/null
+++ b/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 {
+  name    = "styx-${version}";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner  = "styx-static";
+    repo   = "styx";
+    rev    = "v${version}";
+    sha256 = "01lklz7l9klqmmsncikwjnk3glzyz15c30118s82yd1chwpwhpfl";
+  };
+
+  server = "${caddy.bin}/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/nixpkgs/pkgs/applications/misc/subsurface/default.nix b/nixpkgs/pkgs/applications/misc/subsurface/default.nix
new file mode 100644
index 000000000000..50bb1df2eef2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/subsurface/default.nix
@@ -0,0 +1,111 @@
+{ stdenv, fetchurl, fetchFromGitHub, autoreconfHook, cmake, makeWrapper, pkgconfig, qmake
+, curl, grantlee, libgit2, libusb, libssh2, libxml2, libxslt, libzip, zlib
+, qtbase, qtconnectivity, qtlocation, qtsvg, qttools, qtwebkit, libXcomposite
+}:
+
+let
+  version = "4.8.2";
+
+  libdc = stdenv.mkDerivation rec {
+    name = "libdivecomputer-ssrf-${version}";
+
+    src = fetchurl {
+      url = "https://subsurface-divelog.org/downloads/libdivecomputer-subsurface-branch-${version}.tgz";
+      sha256 = "167qan59raibmilkc574gdqxfjg2f5ww2frn86xzk2kn4qg8190w";
+    };
+
+    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 {
+    name = "googlemaps-${version}";
+
+    version = "2017-12-18";
+
+    src = fetchFromGitHub {
+      owner = "vladest";
+      repo = "googlemaps";
+      rev = "79f3511d60dc9640de02a5f24656094c8982b26d";
+      sha256 = "11334w0bnfb97sv23vvj2b5hcwvr0171hxldn91jms9y12l5j15d";
+    };
+
+    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 rec {
+  name = "subsurface-${version}";
+
+  src = fetchurl {
+    url = "https://subsurface-divelog.org/downloads/Subsurface-${version}.tgz";
+    sha256 = "1fzrq6rqb6pzs36wxar2453cl509dqpcy9w7nq4gw7b1v2331wfy";
+  };
+
+  buildInputs = [
+    libdc googlemaps
+    curl grantlee libgit2 libssh2 libusb libxml2 libxslt libzip
+    qtbase qtconnectivity qtsvg qttools qtwebkit
+  ];
+
+  nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
+
+  cmakeFlags = [
+    "-DLIBDC_FROM_PKGCONFIG=ON"
+    "-DNO_PRINTING=OFF"
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/subsurface \
+      --prefix QT_PLUGIN_PATH : "${googlemaps}/${googlemaps.pluginsSubdir}"
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/super_user_spark/default.nix b/nixpkgs/pkgs/applications/misc/super_user_spark/default.nix
new file mode 100644
index 000000000000..8102375479be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/super_user_spark/default.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, fetchgit, aeson, aeson-pretty, base, bytestring, directory
+, filepath, hspec, hspec-core, HUnit, mtl, optparse-applicative
+, parsec, process, pureMD5, QuickCheck, shelly, stdenv, text
+, transformers, unix
+}:
+mkDerivation {
+  pname = "super-user-spark";
+  version = "0.3.2.0-dev";
+  src = fetchgit {
+    url = "https://github.com/NorfairKing/super-user-spark";
+    sha256 = "0akyc51bghzkk8j75n0i8v8rrsklidwvljhx3aibxfbkqp33372g";
+    rev = "ab8635682d67842b9e6d909cf3c618014e4157f2";
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson aeson-pretty base bytestring directory filepath mtl
+    optparse-applicative parsec process pureMD5 shelly text
+    transformers unix
+  ];
+  executableHaskellDepends = [ base ];
+  testHaskellDepends = [
+    aeson aeson-pretty base bytestring directory filepath hspec
+    hspec-core HUnit mtl optparse-applicative parsec process pureMD5
+    QuickCheck shelly text transformers unix
+  ];
+  jailbreak = true;
+  description = "Configure your dotfile deployment with a DSL";
+  license = stdenv.lib.licenses.mit;
+  homepage = https://github.com/NorfairKing/super-user-spark;
+  maintainers = [ stdenv.lib.maintainers.badi ];
+}
diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
new file mode 100644
index 000000000000..3c56a6a046fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
@@ -0,0 +1,101 @@
+{ lib, stdenv, fetchurl, fetchcvs, makeWrapper, makeDesktopItem, jdk, jre, ant
+, gtk3, gsettings-desktop-schemas, p7zip, libXxf86vm }:
+
+let
+
+  getDesktopFileName = drvName: (builtins.parseDrvName drvName).name;
+
+  # 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 =
+  { name, module, version, src, license, description, desktopName, icons }:
+
+  stdenv.mkDerivation rec {
+    inherit name version src description;
+    exec = stdenv.lib.toLower module;
+    sweethome3dItem = makeDesktopItem {
+      inherit exec desktopName;
+      name = getDesktopFileName name;
+      icon = getDesktopFileName name;
+      comment =  description;
+      genericName = "Computer Aided (Interior) Design";
+      categories = "Application;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 jre 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 (getDesktopFileName name) icons}
+
+      cp "${sweethome3dItem}/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 -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 rec {
+
+  application = mkSweetHome3D rec {
+    version = "5.4";
+    module = "SweetHome3D";
+    name = stdenv.lib.toLower module + "-application-" + version;
+    description = "Design and visualize your future home";
+    license = stdenv.lib.licenses.gpl2Plus;
+    src = fetchcvs {
+      cvsRoot = ":pserver:anonymous@sweethome3d.cvs.sourceforge.net:/cvsroot/sweethome3d";
+      sha256 = "09sk4svmaiw8dabcya3407iq5yjwxbss8pik1rzalrlds2428vyw";
+      module = module;
+      tag = "V_" + d2u version;
+    };
+    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/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
new file mode 100644
index 000000000000..eef5185aaeed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
@@ -0,0 +1,96 @@
+{ stdenv, fetchcvs, makeWrapper, makeDesktopItem, jdk, jre, ant
+, gtk3, gsettings-desktop-schemas, sweethome3dApp }:
+
+let
+
+  sweetExec = with stdenv.lib;
+    m: "sweethome3d-"
+    + removeSuffix "libraryeditor" (toLower m)
+    + "-editor";
+  sweetName = m: v: sweetExec m + "-" + v;
+
+  getDesktopFileName = drvName: (builtins.parseDrvName drvName).name;
+
+  mkEditorProject =
+  { name, module, version, src, license, description, desktopName }:
+
+  stdenv.mkDerivation rec {
+    application = sweethome3dApp;
+    inherit name module version src description;
+    exec = sweetExec module;
+    editorItem = makeDesktopItem {
+      inherit exec desktopName;
+      name = getDesktopFileName name;
+      comment =  description;
+      genericName = "Computer Aided (Interior) Design";
+      categories = "Application;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";
+    name = sweetName module version;
+    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";
+    name = sweetName module version;
+    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/nixpkgs/pkgs/applications/misc/synapse/default.nix b/nixpkgs/pkgs/applications/misc/synapse/default.nix
new file mode 100644
index 000000000000..ebae6fd7cfed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/synapse/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, gettext, pkgconfig, glib, libnotify, gtk3, libgee
+, keybinder3, json-glib, zeitgeist, vala_0_38, hicolor-icon-theme, gobject-introspection
+}:
+
+let
+  version = "0.2.99.4";
+in stdenv.mkDerivation rec {
+  name = "synapse-${version}";
+
+  src = fetchurl {
+    url = "https://launchpad.net/synapse-project/0.3/${version}/+download/${name}.tar.xz";
+    sha256 = "1g6x9knb4jy1d8zgssjhzkgac583137pibisy9whjs8mckaj4k1j";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig gettext vala_0_38
+    # For setup hook
+    gobject-introspection
+  ];
+  buildInputs = [
+    glib libnotify gtk3 libgee keybinder3 json-glib zeitgeist
+    hicolor-icon-theme
+  ];
+
+  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/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix b/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix
new file mode 100644
index 000000000000..f16a0d29c40d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, buildGoPackage, pkgconfig, libappindicator-gtk3 }:
+
+buildGoPackage rec {
+  name = "syncthing-tray-${version}";
+  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 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix b/nixpkgs/pkgs/applications/misc/syncthing-tray/deps.nix
new file mode 100644
index 000000000000..1103146ed1b7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/synergy/default.nix b/nixpkgs/pkgs/applications/misc/synergy/default.nix
new file mode 100644
index 000000000000..5f12bdb4dfcd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/synergy/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, xlibsWrapper
+, ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver
+, libX11, libXi, libXtst, libXrandr, xinput, curl, openssl, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "synergy-${version}";
+  version = "1.8.8";
+
+  src = fetchFromGitHub {
+    owner = "symless";
+    repo = "synergy-core";
+    rev = "v${version}-stable";
+    sha256 = "0ksgr9hkf09h54572p7k7b9zkfhcdb2g2d5x7ixxn028y8i3jyp3";
+  };
+
+  patches = [./openssl-1.1.patch ./update_gtest_gmock.patch
+  ] ++ lib.optional stdenv.isDarwin ./respect_macos_arch.patch;
+
+  patch_gcc6 = fetchpatch {
+    url = https://raw.githubusercontent.com/gentoo/gentoo/20e2bff3697ebf5f291e9907b34aae3074a36b53/dev-cpp/gmock/files/gmock-1.7.0-gcc6.patch;
+    sha256 = "0j3f381x1lf8qci9pfv6mliggl8qs2w05v5lw3rs3gn7aibg174d";
+  };
+
+  # Due to the included gtest and gmock not supporting clang
+  # we replace it with 1.7.0 for synergy-1.8.8. This should
+  # become unnecessary when we update to a newer version of Synergy.
+  gmock_zip = fetchurl {
+    url = https://github.com/google/googlemock/archive/release-1.7.0.zip;
+    sha256 = "11bd04098rzamv7f9y01zaf9c8zrmzdk6g1qrlwq780pxzlr4ya0";
+  };
+
+  gtest_zip = fetchurl {
+    url = https://github.com/google/googletest/archive/release-1.7.0.zip;
+    sha256 = "1l5n6kzdypjzjrz2jh14ylzrx735lccfx2p3s4ccgci8g9abg35m";
+  };
+
+  postPatch = ''
+    ${unzip}/bin/unzip -d ext/ ${gmock_zip}
+    ${unzip}/bin/unzip -d ext/ ${gtest_zip}
+    mv ext/googlemock-release-1.7.0 ext/gmock-1.7.0
+    mv ext/googletest-release-1.7.0 ext/gtest-1.7.0
+    patch -d ext/gmock-1.7.0 -p1 -i ${patch_gcc6}
+  ''
+    # We have XRRNotifyEvent (libXrandr), but with the upstream CMakeLists.txt
+    # it's not able to find it (it's trying to search the store path of libX11
+    # instead) and we don't get XRandR support, even though the CMake output
+    # _seems_ to say so:
+    #
+    #   Looking for XRRQueryExtension in Xrandr - found
+    #
+    # The relevant part however is:
+    #
+    #   Looking for XRRNotifyEvent - not found
+    #
+    # So let's force it:
+  + lib.optionalString stdenv.isLinux ''
+    sed -i -e '/HAVE_X11_EXTENSIONS_XRANDR_H/c \
+      set(HAVE_X11_EXTENSIONS_XRANDR_H true)
+    ' CMakeLists.txt
+  '';
+
+  cmakeFlags = lib.optionals stdenv.isDarwin [ "-DOSX_TARGET_MAJOR=10" "-DOSX_TARGET_MINOR=7" ];
+
+  buildInputs = [
+    cmake curl openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    ApplicationServices Carbon Cocoa CoreServices ScreenSaver
+  ] ++ lib.optionals stdenv.isLinux [ xlibsWrapper libX11 libXi libXtst libXrandr xinput ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ../bin/synergyc $out/bin
+    cp ../bin/synergys $out/bin
+    cp ../bin/synergyd $out/bin
+  '';
+
+  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; [ aszlig enzime ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/synergy/openssl-1.1.patch b/nixpkgs/pkgs/applications/misc/synergy/openssl-1.1.patch
new file mode 100644
index 000000000000..56dc6112844e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/synergy/openssl-1.1.patch
@@ -0,0 +1,18 @@
+--- a/src/lib/net/SecureSocket.cpp	2017-07-22 19:33:22.442645291 +0200
++++ b/src/lib/net/SecureSocket.cpp	2017-07-22 19:36:25.632595581 +0200
+@@ -805,9 +805,14 @@
+ 		showCipherStackDesc(sStack);
+ 	}
+ 
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ 	// m_ssl->m_ssl->session->ciphers is not forward compatable, In future release
+-	// of OpenSSL, it's not visible, need to use SSL_get_client_ciphers() instead
++	// of OpenSSL, it's not visible
+ 	STACK_OF(SSL_CIPHER) * cStack = m_ssl->m_ssl->session->ciphers;
++#else
++	// Use SSL_get_client_ciphers() for newer versions
++	STACK_OF(SSL_CIPHER) * cStack = SSL_get_client_ciphers(m_ssl->m_ssl);
++#endif
+ 		if (cStack == NULL) {
+ 		LOG((CLOG_DEBUG1 "remote cipher list not available"));
+ 	}
diff --git a/nixpkgs/pkgs/applications/misc/synergy/respect_macos_arch.patch b/nixpkgs/pkgs/applications/misc/synergy/respect_macos_arch.patch
new file mode 100644
index 000000000000..003d7d22421a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/synergy/respect_macos_arch.patch
@@ -0,0 +1,61 @@
+From 944177c76d4c7ff5ef3460eab28286a45344a0e7 Mon Sep 17 00:00:00 2001
+From: Michael Hoang <enzime@users.noreply.github.com>
+Date: Sat, 14 Jul 2018 21:56:59 +1000
+Subject: [PATCH 2/2] Make sure CMake respects the current arch on macOS
+
+Only set the macOS architecture if not defined by the user. Use the
+OpenSSL libraries and headers from Nix on macOS to prevent architecture
+mismatches.
+---
+ CMakeLists.txt     |  2 +-
+ src/CMakeLists.txt | 14 +-------------
+ 2 files changed, 2 insertions(+), 14 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2f37424d..c7217e28 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -172,7 +172,7 @@ if (UNIX)
+ 			# <= 10.5: 32-bit Intel and PowerPC
+ 			set(CMAKE_OSX_ARCHITECTURES "ppc;i386"
+ 				CACHE STRING "" FORCE)
+-		else()
++		elseif (NOT CMAKE_OSX_ARCHITECTURES)
+ 			# >= 10.6: Intel only
+ 			set(CMAKE_OSX_ARCHITECTURES "i386"
+ 				CACHE STRING "" FORCE)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 237ba484..04428636 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -23,11 +23,6 @@ if (WIN32)
+ 	set(OPENSSL_INCLUDE ${CMAKE_SOURCE_DIR}/ext/${OPENSSL_PLAT_DIR}/inc32)
+ endif()
+ 
+-if (APPLE)
+-	set(OPENSSL_PLAT_DIR openssl-osx)
+-	set(OPENSSL_INCLUDE ${CMAKE_SOURCE_DIR}/ext/${OPENSSL_PLAT_DIR}/include)
+-endif()
+-
+ if (WIN32)
+ 	set(OPENSSL_LIBS
+ 		${CMAKE_SOURCE_DIR}/ext/${OPENSSL_PLAT_DIR}/out32dll/libeay32.lib
+@@ -36,14 +31,7 @@ if (WIN32)
+ endif()
+ 
+ if (UNIX)
+-	if (APPLE)
+-		set(OPENSSL_LIBS
+-		${CMAKE_SOURCE_DIR}/ext/${OPENSSL_PLAT_DIR}/libssl.a
+-		${CMAKE_SOURCE_DIR}/ext/${OPENSSL_PLAT_DIR}/libcrypto.a
+-		)
+-	else()
+-		set(OPENSSL_LIBS ssl crypto)
+-	endif()
++	set(OPENSSL_LIBS ssl crypto)
+ endif()
+ 
+ add_subdirectory(lib)
+-- 
+2.17.1
+
diff --git a/nixpkgs/pkgs/applications/misc/synergy/update_gtest_gmock.patch b/nixpkgs/pkgs/applications/misc/synergy/update_gtest_gmock.patch
new file mode 100644
index 000000000000..87b53e78585b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/synergy/update_gtest_gmock.patch
@@ -0,0 +1,158 @@
+From eea85dbf4bbde545d8cb07d7ee9fbdca3dcf48fd Mon Sep 17 00:00:00 2001
+From: Michael Hoang <enzime@users.noreply.github.com>
+Date: Sat, 14 Jul 2018 22:07:39 +1000
+Subject: [PATCH 1/2] Update gtest and gmock to version 1.7.0
+
+Fixes compilation under clang on macOS as <tr1/tuple> is now found under
+<tuple>.
+---
+ CMakeLists.txt                     |  2 +-
+ ext/toolchain/commands1.py         |  4 ++--
+ src/lib/platform/CMakeLists.txt    |  2 +-
+ src/lib/server/CMakeLists.txt      |  2 +-
+ src/lib/shared/CMakeLists.txt      |  2 +-
+ src/lib/synergy/CMakeLists.txt     |  2 +-
+ src/test/CMakeLists.txt            | 12 ++++++------
+ src/test/integtests/CMakeLists.txt |  4 ++--
+ src/test/unittests/CMakeLists.txt  |  4 ++--
+ 9 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 94c474e8..2f37424d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -178,7 +178,7 @@ if (UNIX)
+ 				CACHE STRING "" FORCE)
+ 		endif()
+ 		
+-		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)
+diff --git a/ext/toolchain/commands1.py b/ext/toolchain/commands1.py
+index f32ec483..bf997cf6 100644
+--- a/ext/toolchain/commands1.py
++++ b/ext/toolchain/commands1.py
+@@ -251,10 +251,10 @@ class InternalCommands:
+ 	macIdentity = None
+ 	
+ 	# gtest dir with version number
+-	gtestDir = 'gtest-1.6.0'
++	gtestDir = 'gtest-1.7.0'
+ 	
+ 	# gmock dir with version number
+-	gmockDir = 'gmock-1.6.0'
++	gmockDir = 'gmock-1.7.0'
+ 
+ 	win32_generators = {
+ 		1 : VisualStudioGenerator('10'),
+diff --git a/src/lib/platform/CMakeLists.txt b/src/lib/platform/CMakeLists.txt
+index 481d8ef9..1ce67eca 100644
+--- a/src/lib/platform/CMakeLists.txt
++++ b/src/lib/platform/CMakeLists.txt
+@@ -31,7 +31,7 @@ endif()
+ 
+ include_directories(
+ 	../
+-	../../../ext/gtest-1.6.0/include
++	../../../ext/gtest-1.7.0/include
+ )
+ 
+ if (UNIX)
+diff --git a/src/lib/server/CMakeLists.txt b/src/lib/server/CMakeLists.txt
+index 3cb582ec..0525d627 100644
+--- a/src/lib/server/CMakeLists.txt
++++ b/src/lib/server/CMakeLists.txt
+@@ -24,7 +24,7 @@ endif()
+ include_directories(
+ 	../
+ 	../../../ext
+-	../../../ext/gtest-1.6.0/include
++	../../../ext/gtest-1.7.0/include
+ )
+ 
+ if (UNIX)
+diff --git a/src/lib/shared/CMakeLists.txt b/src/lib/shared/CMakeLists.txt
+index 891f4aa7..16c8b04a 100644
+--- a/src/lib/shared/CMakeLists.txt
++++ b/src/lib/shared/CMakeLists.txt
+@@ -25,7 +25,7 @@ add_library(shared STATIC ${sources})
+ include_directories(
+ 	../
+ 	../../../ext
+-	../../../ext/gtest-1.6.0/include
++	../../../ext/gtest-1.7.0/include
+ )
+ 
+ target_link_libraries(shared arch base)
+diff --git a/src/lib/synergy/CMakeLists.txt b/src/lib/synergy/CMakeLists.txt
+index 0972be8c..e19fcce5 100644
+--- a/src/lib/synergy/CMakeLists.txt
++++ b/src/lib/synergy/CMakeLists.txt
+@@ -36,7 +36,7 @@ endif()
+ include_directories(
+ 	../
+ 	../../../ext
+-	../../../ext/gtest-1.6.0/include
++	../../../ext/gtest-1.7.0/include
+ )
+ 
+ if (UNIX)
+diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
+index 8812150a..04cdfc50 100644
+--- a/src/test/CMakeLists.txt
++++ b/src/test/CMakeLists.txt
+@@ -15,13 +15,13 @@
+ # along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ 
+ include_directories(
+-	../../ext/gtest-1.6.0
+-	../../ext/gtest-1.6.0/include
+-	../../ext/gmock-1.6.0
+-	../../ext/gmock-1.6.0/include)
++	../../ext/gtest-1.7.0
++	../../ext/gtest-1.7.0/include
++	../../ext/gmock-1.7.0
++	../../ext/gmock-1.7.0/include)
+ 	
+-add_library(gtest STATIC ../../ext/gtest-1.6.0/src/gtest-all.cc)
+-add_library(gmock STATIC ../../ext/gmock-1.6.0/src/gmock-all.cc)
++add_library(gtest STATIC ../../ext/gtest-1.7.0/src/gtest-all.cc)
++add_library(gmock STATIC ../../ext/gmock-1.7.0/src/gmock-all.cc)
+ 
+ if (UNIX)
+ 	# ignore warnings in gtest and gmock
+diff --git a/src/test/integtests/CMakeLists.txt b/src/test/integtests/CMakeLists.txt
+index 2f1ca7f3..6ddbd29a 100644
+--- a/src/test/integtests/CMakeLists.txt
++++ b/src/test/integtests/CMakeLists.txt
+@@ -56,8 +56,8 @@ endif()
+ include_directories(
+ 	../../
+ 	../../lib/
+-	../../../ext/gtest-1.6.0/include
+-	../../../ext/gmock-1.6.0/include
++	../../../ext/gtest-1.7.0/include
++	../../../ext/gmock-1.7.0/include
+ )
+ 
+ if (UNIX)
+diff --git a/src/test/unittests/CMakeLists.txt b/src/test/unittests/CMakeLists.txt
+index 3e49dc3c..5f6c4fac 100644
+--- a/src/test/unittests/CMakeLists.txt
++++ b/src/test/unittests/CMakeLists.txt
+@@ -51,8 +51,8 @@ list(APPEND headers ${platform_sources})
+ include_directories(
+ 	../../
+ 	../../lib/
+-	../../../ext/gtest-1.6.0/include
+-	../../../ext/gmock-1.6.0/include
++	../../../ext/gtest-1.7.0/include
++	../../../ext/gmock-1.7.0/include
+ 	../../../ext
+ )
+ 
+-- 
+2.17.1
+
diff --git a/nixpkgs/pkgs/applications/misc/tabula/default.nix b/nixpkgs/pkgs/applications/misc/tabula/default.nix
new file mode 100644
index 000000000000..52e39b98a3b6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tabula/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchzip, jre, makeWrapper }:
+
+
+stdenv.mkDerivation rec {
+  name = "tabula-${version}";
+  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/nixpkgs/pkgs/applications/misc/tangogps/default.nix b/nixpkgs/pkgs/applications/misc/tangogps/default.nix
new file mode 100644
index 000000000000..bde30d9041ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tangogps/default.nix
@@ -0,0 +1,45 @@
+{ fetchurl, stdenv, pkgconfig, gettext, gtk2, gconf
+, curl, libexif, sqlite, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "tangogps-0.99.2";
+
+  src = fetchurl {
+    url = "http://www.tangogps.org/downloads/${name}.tar.gz";
+    sha256 = "15q2kkrv4mfsivfdzjgpxr7s2amw7d501q2ayjl3ff4vmvfn5516";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gettext gtk2 gconf curl libexif sqlite libxml2 ];
+
+  # bogus includes fail with newer library version
+  postPatch = ''
+    sed -i -e 's,#include <glib/.*>,#include <glib.h>,g' src/*.c
+    sed -i -e 's,#include <curl/.*>,#include <curl/curl.h>,g' src/*.c src/*.h
+  '';
+
+  meta = {
+    description = "User friendly map and GPS user interface";
+
+    longDescription = ''
+      tangoGPS is an easy to use, fast and lightweight mapping
+      application for use with or without GPS.
+
+      It runs on any Linux platform from the desktop over eeePC down
+      to phones like the Openmoko Neo.
+
+      By default tangoGPS uses map data from the OpenStreetMap
+      project.  Additionally a variety of other repositories can be
+      easily added.
+
+      The maps are automagically downloaded and cached for offline use
+      while you drag or zoom the map.  Furthermore you can
+      conveniently pre-cache areas with tangoGPS.
+    '';
+
+    #homepage = http://www.tangogps.org/; # no longer valid, I couldn't find any other
+
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/taskell/default.nix b/nixpkgs/pkgs/applications/misc/taskell/default.nix
new file mode 100644
index 000000000000..6cb78e6d6bd7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/taskell/default.nix
@@ -0,0 +1,59 @@
+{ haskell, lib, haskellPackages, fetchFromGitHub }:
+
+let
+  version = "1.3.2";
+  sha256  = "0cyysvkl8m1ldlprmw9mpvch3r244nl25yv74dwcykga3g5mw4aa";
+
+in (haskellPackages.mkDerivation {
+  pname = "taskell";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "smallhadroncollider";
+    repo = "taskell";
+    rev = version;
+    inherit sha256;
+  };
+
+  postPatch = ''${haskellPackages.hpack}/bin/hpack'';
+
+  # basically justStaticExecutables; TODO: use justStaticExecutables
+  enableSharedExecutables = false;
+  enableLibraryProfiling = false;
+  isExecutable = true;
+  doHaddock = false;
+  postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
+
+  # copied from packages.yaml
+  libraryHaskellDepends = with haskellPackages; [
+    classy-prelude
+    # base <=5
+    aeson
+    brick
+    # bytestring
+    config-ini
+    # containers
+    # directory
+    file-embed
+    http-conduit
+    http-client
+    http-types
+    lens
+    # mtl
+    # template-haskell
+    # text
+    time
+    vty
+  ];
+
+  executableHaskellDepends = [];
+
+  testHaskellDepends = with haskellPackages; [
+    tasty
+    tasty-discover
+    tasty-expected-failure
+    tasty-hunit
+  ];
+
+  license = lib.licenses.bsd3;
+})
diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix
new file mode 100644
index 000000000000..6b38c3d59c29
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/default.nix
@@ -0,0 +1,76 @@
+{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/
+  '';
+
+  installFlags =
+    # kde_locale is not defined when installing without kde.
+    "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/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch b/nixpkgs/pkgs/applications/misc/taskjuggler/2.x/timezone-glibc.patch
new file mode 100644
index 000000000000..f599e8a1730c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile
new file mode 100644
index 000000000000..77cbaeeed793
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile
@@ -0,0 +1,2 @@
+source 'http://rubygems.org'
+gem 'taskjuggler'
diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/Gemfile.lock
new file mode 100644
index 000000000000..d1642e76fa65
--- /dev/null
+++ b/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
+   1.10.5
diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/default.nix
new file mode 100644
index 000000000000..23252d0c4807
--- /dev/null
+++ b/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    = http://taskjuggler.org/;
+    license     = lib.licenses.gpl2;
+    platforms   = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/3.x/gemset.nix
new file mode 100644
index 000000000000..e65ab3451a62
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile b/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile
new file mode 100644
index 000000000000..77cbaeeed793
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile
@@ -0,0 +1,2 @@
+source 'http://rubygems.org'
+gem 'taskjuggler'
diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock b/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock
new file mode 100644
index 000000000000..ebd04c20ea6d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/taskjuggler/Gemfile.lock
@@ -0,0 +1,21 @@
+GEM
+  remote: http://rubygems.org/
+  specs:
+    mail (2.7.0)
+      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.6.0)
+      tins (~> 1.0)
+    tins (1.16.3)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  taskjuggler
+
+BUNDLED WITH
+   1.14.6
diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix
new file mode 100644
index 000000000000..f3f9285b312d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/taskjuggler/default.nix
@@ -0,0 +1,21 @@
+{ lib, bundlerApp, ruby }:
+
+bundlerApp {
+  pname = "taskjuggler";
+
+  inherit ruby;
+  gemdir = ./.;
+
+  exes = [
+    "tj3" "tj3client" "tj3d" "tj3man" "tj3ss_receiver" "tj3ss_sender"
+    "tj3ts_receiver" "tj3ts_sender" "tj3ts_summary" "tj3webd"
+  ];
+
+  meta = {
+    description = "A modern and powerful project management tool";
+    homepage    = http://taskjuggler.org/;
+    license     = lib.licenses.gpl2;
+    platforms   = lib.platforms.unix;
+    maintainers = [ lib.maintainers.manveru ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix b/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix
new file mode 100644
index 000000000000..24c1e4311777
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/taskjuggler/gemset.nix
@@ -0,0 +1,55 @@
+{
+  mail = {
+    dependencies = ["mini_mime"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["http://rubygems.org"];
+      sha256 = "10dyifazss9mgdzdv08p47p344wmphp5pkh5i73s7c04ra8y6ahz";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  mini_mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["http://rubygems.org"];
+      sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  taskjuggler = {
+    dependencies = ["mail" "term-ansicolor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["http://rubygems.org"];
+      sha256 = "0ky3cydl3szhdyxsy4k6zxzjlbll7mlq025aj6xd5jmh49k3pfbp";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
+  term-ansicolor = {
+    dependencies = ["tins"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["http://rubygems.org"];
+      sha256 = "1b1wq9ljh7v3qyxkk8vik2fqx2qzwh5lval5f92llmldkw7r7k7b";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  tins = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["http://rubygems.org"];
+      sha256 = "0g95xs4nvx5n62hb4fkbkd870l9q3y9adfc4h8j21phj9mxybkb8";
+      type = "gem";
+    };
+    version = "1.16.3";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/tasknc/default.nix b/nixpkgs/pkgs/applications/misc/tasknc/default.nix
new file mode 100644
index 000000000000..bf0e964d591f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tasknc/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, makeWrapper, perl, ncurses5, taskwarrior }:
+
+stdenv.mkDerivation rec {
+  version = "2017-05-15";
+  name = "tasknc-${version}";
+
+  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; [ infinisil ];
+    platforms = platforms.linux; # Cannot test others
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/tasksh/default.nix b/nixpkgs/pkgs/applications/misc/tasksh/default.nix
new file mode 100644
index 000000000000..dac447edd7d2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tasksh/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, cmake, readline }:
+
+stdenv.mkDerivation rec {
+  name = "tasksh-${version}";
+  version = "1.2.0";
+
+  enableParallelBuilding = true;
+
+  src = fetchurl {
+    url = "https://taskwarrior.org/download/${name}.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; [ ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/taskwarrior/0001-bash-completion-quote-pattern-argument-to-grep.patch b/nixpkgs/pkgs/applications/misc/taskwarrior/0001-bash-completion-quote-pattern-argument-to-grep.patch
new file mode 100644
index 000000000000..8e5c0139e555
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix b/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix
new file mode 100644
index 000000000000..1018a53ce21d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/taskwarrior/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, cmake, libuuid, gnutls }:
+
+stdenv.mkDerivation rec {
+  name = "taskwarrior-${version}";
+  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 jgeerds ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/termdown/default.nix b/nixpkgs/pkgs/applications/misc/termdown/default.nix
new file mode 100644
index 000000000000..65963f9aa34f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/termdown/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, buildPythonApplication,
+click, pyfiglet, dateutil}:
+
+with stdenv.lib;
+
+buildPythonApplication rec {
+
+  name    = "termdown-${version}";
+  version = "1.14.1";
+
+  src = fetchFromGitHub {
+    rev    = version;
+    sha256 = "0jgjzglna0gwp0j31l48pny69szslczl13aahwjfjypkv9lx8w2a";
+    repo   = "termdown";
+    owner  = "trehn";
+  };
+
+  propagatedBuildInputs = [ dateutil click pyfiglet ];
+
+  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;
+    platforms       = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix b/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix
new file mode 100644
index 000000000000..b05c8a803996
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/terminal-notifier/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "terminal-notifier-${version}";
+
+  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
+    #!${stdenv.shell}
+    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/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix b/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix
new file mode 100644
index 000000000000..a34c5e4766ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+    name = "terminal-parrot-1.1.0";
+    version = "1.1.0";
+    goPackagePath = "github.com/jmhobbs/terminal-parrot";
+
+    src = fetchFromGitHub {
+        owner = "jmhobbs";
+        repo = "terminal-parrot";
+        rev = "22c9bde916c12d8b13cf80ab252995dbf47837d1";
+        sha256 = "1mrxmifsmndf6hdq1956p1gyrrp3abh3rmwjcmxar8x2wqbv748y";
+    };
+
+    meta = with stdenv.lib; {
+        description = "Shows colorful, animated party parrot in your terminial";
+        homepage = https://github.com/jmhobbs/terminal-parrot;
+        license = licenses.mit;
+        platforms = platforms.all;
+        maintainers = [ maintainers.heel ];
+    };
+}
diff --git a/nixpkgs/pkgs/applications/misc/terminator/default.nix b/nixpkgs/pkgs/applications/misc/terminator/default.nix
new file mode 100644
index 000000000000..f32a27b9b78d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/terminator/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, python2, keybinder3, intltool, file, gtk3, gobject-introspection
+, libnotify, wrapGAppsHook, gnome3
+}:
+
+python2.pkgs.buildPythonApplication rec {
+  name = "terminator-${version}";
+  version = "1.91";
+
+  src = fetchurl {
+    url = "https://launchpad.net/terminator/gtk3/${version}/+download/${name}.tar.gz";
+    sha256 = "95f76e3c0253956d19ceab2f8da709a496f1b9cf9b1c5b8d3cd0b6da3cc7be69";
+  };
+
+  nativeBuildInputs = [ file intltool wrapGAppsHook gobject-introspection ];
+  buildInputs = [ gtk3 gnome3.vte libnotify keybinder3 ];
+  propagatedBuildInputs = with python2.pkgs; [ pygobject3 psutil pycairo ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  checkPhase = ''
+    ./run_tests
+  '';
+
+  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://gnometerminator.blogspot.no/p/introduction.html;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ bjornfor globin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/terminus/default.nix b/nixpkgs/pkgs/applications/misc/terminus/default.nix
new file mode 100644
index 000000000000..c12a4c9f8da6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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";
+  name = "terminus-${version}";
+  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/nixpkgs/pkgs/applications/misc/termite/add_errno_header.patch b/nixpkgs/pkgs/applications/misc/termite/add_errno_header.patch
new file mode 100644
index 000000000000..81283f86a21d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/termite/default.nix b/nixpkgs/pkgs/applications/misc/termite/default.nix
new file mode 100644
index 000000000000..957b5bc0e8d5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/termite/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, pkgconfig, vte, gtk3, ncurses, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "termite-${version}";
+  version = "14";
+
+  src = fetchFromGitHub {
+    owner = "thestinger";
+    repo = "termite";
+    rev = "v${version}";
+    sha256 = "0dmz9rpc2fdvcwhcmjnhb48ixn403gxpq03g334d1hgjw2hsyx7x";
+    fetchSubmodules = true;
+  };
+
+  # https://github.com/thestinger/termite/pull/516
+  patches = [ ./url_regexp_trailing.patch ./add_errno_header.patch
+              ] ++ stdenv.lib.optional stdenv.isDarwin ./remove_ldflags_macos.patch;
+
+  makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ];
+
+  buildInputs = [ vte gtk3 ncurses ];
+
+  nativeBuildInputs = [ wrapGAppsHook pkgconfig ];
+
+  outputs = [ "out" "terminfo" ];
+
+  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 garbas ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/termite/remove_ldflags_macos.patch b/nixpkgs/pkgs/applications/misc/termite/remove_ldflags_macos.patch
new file mode 100644
index 000000000000..f8c68518bb4d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/termite/url_regexp_trailing.patch b/nixpkgs/pkgs/applications/misc/termite/url_regexp_trailing.patch
new file mode 100644
index 000000000000..96deaa073d71
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/termite/wrapper.nix b/nixpkgs/pkgs/applications/misc/termite/wrapper.nix
new file mode 100644
index 000000000000..0b12a905360c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/termite/wrapper.nix
@@ -0,0 +1,15 @@
+{  makeWrapper, wrapGAppsHook, 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/nixpkgs/pkgs/applications/misc/termonad/default.nix b/nixpkgs/pkgs/applications/misc/termonad/default.nix
new file mode 100644
index 000000000000..4388cbcfb441
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/teseq/default.nix b/nixpkgs/pkgs/applications/misc/teseq/default.nix
new file mode 100644
index 000000000000..9502b3a0abe7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/teseq/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+let
+  version = "1.1.1";
+in
+stdenv.mkDerivation {
+  name = "teseq-${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/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix b/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
new file mode 100644
index 000000000000..1229990b1ab7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl }:
+
+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
+    #!/bin/sh
+    exec $out/nix-support/tr-files/bin/tr "$@"
+    EOF
+    chmod +x $out/bin/thinkingrock
+  '';
+  
+  installPhase = ":";
+
+  meta = { 
+    description = "Task management system";
+    homepage = http://www.thinkingrock.com.au/;
+    license = "CDDL"; # Common Development and Distribution License
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/tilda/default.nix b/nixpkgs/pkgs/applications/misc/tilda/default.nix
new file mode 100644
index 000000000000..4172660182df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tilda/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchzip, pkgconfig
+, autoreconfHook, gettext, expat
+, libconfuse, vte, gtk
+, makeWrapper }:
+
+stdenv.mkDerivation rec {
+
+  name = "tilda-${version}";
+  version = "1.4.1";
+
+  src = fetchzip {
+    url = "https://github.com/lanoxx/tilda/archive/${name}.tar.gz";
+    sha256 = "154rsldqjv2m1bddisb930qicb0y35kx7bxq392n2hn68jr2pxkj";
+  };
+
+  nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
+  buildInputs = [ gettext 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 = with stdenv.lib; {
+    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/nixpkgs/pkgs/applications/misc/tilix/default.nix b/nixpkgs/pkgs/applications/misc/tilix/default.nix
new file mode 100644
index 000000000000..eb7a8e41d4b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tilix/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, dmd, gnome3, dbus
+, gsettings-desktop-schemas, desktop-file-utils, gettext, gtkd, libsecret
+, perlPackages, wrapGAppsHook, xdg_utils }:
+
+stdenv.mkDerivation rec {
+  name = "tilix-${version}";
+  version = "1.8.5";
+
+  src = fetchFromGitHub {
+    owner = "gnunn1";
+    repo = "tilix";
+    rev = "${version}";
+    sha256 = "1ixhkssz0xn3x75n2iw6gd3hka6bgmgwfgbvblbjhhx8gcpbw3s7";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook dmd desktop-file-utils perlPackages.Po4a pkgconfig xdg_utils
+    wrapGAppsHook
+  ];
+  buildInputs = [ gnome3.dconf gettext gsettings-desktop-schemas gtkd dbus libsecret ];
+
+  preBuild = ''
+    makeFlagsArray=(
+      DCFLAGS='-O -inline -release -version=StdLoggerDisableTrace'
+    )
+  '';
+
+  postInstall = with gnome3; ''
+    ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
+
+    wrapProgram $out/bin/tilix \
+      --prefix LD_LIBRARY_PATH ":" "${libsecret}/lib"
+  '';
+
+
+  preFixup = ''
+    substituteInPlace $out/share/applications/com.gexperts.Tilix.desktop \
+      --replace "Exec=tilix" "Exec=$out/bin/tilix"
+    sed -i '/^DBusActivatable=/d' $out/share/applications/com.gexperts.Tilix.desktop
+  '';
+
+  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 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/timewarrior/default.nix b/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
new file mode 100644
index 000000000000..4ca7a86e6f7f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "timewarrior-${version}";
+  version = "1.1.1";
+
+  enableParallelBuilding = true;
+
+  src = fetchurl {
+    url = "https://taskwarrior.org/download/timew-${version}.tar.gz";
+    sha256 = "1jfcfzdwk5qqhxznj1bgy0sx3lnp3z5lqr9kch9a7iazwmi9lz8z";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "A command-line time tracker";
+    homepage = https://taskwarrior.org/docs/timewarrior;
+    license = licenses.mit;
+    maintainers = with maintainers; [ mrVanDalo ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/tint2/default.nix b/nixpkgs/pkgs/applications/misc/tint2/default.nix
new file mode 100644
index 000000000000..c70503cbff2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tint2/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitLab, pkgconfig, cmake, gettext, cairo, pango, pcre
+, glib, imlib2, gtk2, libXinerama, libXrender, libXcomposite, libXdamage
+, libX11, libXrandr, librsvg, libpthreadstubs, libXdmcp
+, libstartup_notification, hicolor-icon-theme, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  name = "tint2-${version}";
+  version = "16.6.1";
+
+  src = fetchFromGitLab {
+    owner = "o9000";
+    repo = "tint2";
+    rev = version;
+    sha256 = "1h5bn4vi7gffwi4mpwpn0s6vxvl44rn3m9b23w8q9zyz9v24flz7";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ pkgconfig cmake gettext wrapGAppsHook ];
+
+  buildInputs = [ cairo pango pcre glib imlib2 gtk2 libXinerama libXrender
+    libXcomposite libXdamage libX11 libXrandr librsvg libpthreadstubs
+    libXdmcp libstartup_notification hicolor-icon-theme ];
+
+  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/nixpkgs/pkgs/applications/misc/tnef/default.nix b/nixpkgs/pkgs/applications/misc/tnef/default.nix
new file mode 100644
index 000000000000..6cf1f27a104b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tnef/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  version = "1.4.17";
+  name = "tnef-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "verdammelt";
+    repo   = "tnef";
+    rev    = version;
+    sha256 = "0cq2xh5wd74qn6k2nnw5rayxgqhjl3jbzf4zlc4babcwxrv32ldh";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/todiff/default.nix b/nixpkgs/pkgs/applications/misc/todiff/default.nix
new file mode 100644
index 000000000000..148d6b042f7b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/todiff/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  name = "todiff-${version}";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "Ekleog";
+    repo = "todiff";
+    rev = version;
+    sha256 = "1y0v8nkaqb8kn61xwarpbyrq019gxx1f5f5p1hzw73nqxadc1rcm";
+  };
+
+  cargoSha256 = "1r7l9zbw6kq8yb5cv6h0qgl2gp71bkn9xv7b2n49a5r7by98jjqr";
+
+  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;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/todolist/default.nix b/nixpkgs/pkgs/applications/misc/todolist/default.nix
new file mode 100644
index 000000000000..122567de2e1e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/todolist/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "todolist-${version}";
+  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/nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro b/nixpkgs/pkgs/applications/misc/toggldesktop/TogglDesktop.pro
new file mode 100644
index 000000000000..e86156313d1f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix b/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix
new file mode 100644
index 000000000000..bc36ffa5e101
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/toggldesktop/default.nix
@@ -0,0 +1,148 @@
+{ stdenv, fetchzip, buildEnv, makeDesktopItem, runCommand, writeText, pkgconfig
+, cmake, qmake, cacert, jsoncpp, libX11, libXScrnSaver, lua, openssl, poco
+, qtbase, qtwebkit, 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 = stdenv.mkDerivation rec {
+    name = "bugsnag-qt-${version}";
+    version = "20180522.005732";
+
+    src = fetchzip {
+      url = "https://github.com/yegortimoshenko/bugsnag-qt/archive/${version}.tar.gz";
+      sha256 = "02s6mlggh0i4a856md46dipy6mh47isap82jlwmjr7hfsk2ykgnq";
+    };
+
+    nativeBuildInputs = [ qmake ];
+    buildInputs = [ qtbase ];
+  };
+
+  qxtglobalshortcut = stdenv.mkDerivation rec {
+    name = "qxtglobalshortcut-${version}";
+    version = "f584471dada2099ba06c574bdfdd8b078c2e3550";
+
+    src = fetchzip {
+      url = "https://github.com/hluk/qxtglobalshortcut/archive/${version}.tar.gz";
+      sha256 = "1iy17gypav10z8aa62s5jb6mq9y4kb9ms4l61ydmk3xwlap7igw1";
+    };
+
+    nativeBuildInputs = [ cmake ];
+    buildInputs = [ qtbase qtx11extras ];
+  };
+
+  qt-oauth-lib = stdenv.mkDerivation rec {
+    name = "qt-oauth-lib-${version}";
+    version = "20180521.233208";
+
+    src = fetchzip {
+      url = "https://github.com/yegortimoshenko/qt-oauth-lib/archive/${version}.tar.gz";
+      sha256 = "0f46d44slzvzaqx0lksvv14lsc1jp8vd2mragxd61r820hybf5z3";
+    };
+
+    nativeBuildInputs = [ qmake ];
+    buildInputs = [ qtbase qtwebkit ];
+  };
+
+  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 = stdenv.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 = stdenv.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
+      qtwebkit
+      qt-oauth-lib
+      qtx11extras
+      libX11
+      libXScrnSaver
+    ];
+  };
+
+  toggldesktop-icons = stdenv.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 stdenv.lib; {
+    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/nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro b/nixpkgs/pkgs/applications/misc/toggldesktop/libtoggl.pro
new file mode 100644
index 000000000000..c8303440fe67
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/tomboy/default.nix b/nixpkgs/pkgs/applications/misc/tomboy/default.nix
new file mode 100644
index 000000000000..ba6e97d61fb3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tomboy/default.nix
@@ -0,0 +1,42 @@
+{ 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 {
+  name = "tomboy-${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/nixpkgs/pkgs/applications/misc/toot/default.nix b/nixpkgs/pkgs/applications/misc/toot/default.nix
new file mode 100644
index 000000000000..cb3146d4c0dd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/toot/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  version = "0.19.0";
+  name    = "toot-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "ihabunek";
+    repo   = "toot";
+    rev    = "${version}";
+    sha256 = "1z0r6yqi522d5jbpd0w3prd33l067jb1jhfnxf6hkzhnx1wddjsa";
+  };
+
+  checkInputs = with python3Packages; [ pytest ];
+
+  propagatedBuildInputs = with python3Packages;
+    [ requests beautifulsoup4 future ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Mastodon CLI interface";
+    homepage    = "https://github.com/ihabunek/toot";
+    license     = licenses.mit;
+    maintainers = [ ];
+  };
+
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/tootle/default.nix b/nixpkgs/pkgs/applications/misc/tootle/default.nix
new file mode 100644
index 000000000000..c295a8fdb688
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tootle/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkgconfig, python3
+, gnome3, vala_0_40, gobject-introspection, wrapGAppsHook
+, gtk3, granite
+, json-glib, glib, glib-networking, hicolor-icon-theme
+}:
+
+let
+  pname = "tootle";
+  version = "0.2.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "bleakgrey";
+    repo = pname;
+    rev = version;
+    sha256 = "1z3wyx316nns6gi7vlvcfmalhvxncmvcmmlgclbv6b6hwl5x2ysi";
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
+    wrapGAppsHook
+  ];
+  buildInputs = [
+    gtk3 granite json-glib glib glib-networking hicolor-icon-theme
+    gnome3.libgee gnome3.libsoup gnome3.gsettings-desktop-schemas
+  ];
+
+  postPatch = ''
+    chmod +x ./meson/post_install.py
+    patchShebangs ./meson/post_install.py
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/topydo/default.nix b/nixpkgs/pkgs/applications/misc/topydo/default.nix
new file mode 100644
index 000000000000..34952b9c0f4d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/topydo/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, python3Packages, fetchFromGitHub, glibcLocales }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+  pname = "topydo";
+  version = "0.13";
+  name  = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "bram85";
+    repo = pname;
+    rev = version;
+    sha256 = "0b3dz137lpbvpjvfy42ibqvj3yk526x4bpn819fd11lagn77w69r";
+  };
+
+  propagatedBuildInputs = [
+    arrow
+    icalendar
+    glibcLocales
+    prompt_toolkit
+    urwid
+    watchdog
+  ];
+
+  checkInputs = [ mock freezegun coverage green pylint ];
+
+  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/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix b/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix
new file mode 100644
index 000000000000..09322b47506b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchgit, qt4, qmake4Hook, trousers }:
+
+stdenv.mkDerivation rec {
+  version = "0.8.1";
+  name = "tpmmanager-${version}";
+
+  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/nixpkgs/pkgs/applications/misc/tqsl/cmake_lib_path.patch b/nixpkgs/pkgs/applications/misc/tqsl/cmake_lib_path.patch
new file mode 100644
index 000000000000..5eed93834632
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tqsl/cmake_lib_path.patch
@@ -0,0 +1,12 @@
+diff -dur tqsl-2.3.1/src/CMakeLists.txt tqsl-2.3.1b/src/CMakeLists.txt
+--- tqsl-2.3.1/src/CMakeLists.txt	2017-04-17 20:53:22.000000000 -0400
++++ tqsl-2.3.1b/src/CMakeLists.txt	2017-10-05 21:14:39.048329343 -0400
+@@ -54,7 +54,7 @@
+ if(NOT APPLE AND NOT WIN32)
+ set_source_files_properties(location.cpp PROPERTIES COMPILE_DEFINITIONS CONFDIR="${CMAKE_INSTALL_PREFIX}/share/TrustedQSL/")
+ set(HEADERS_TO_INSTALL tqsllib.h tqslerrno.h cabrillo.h adif.h tqslconvert.h)
+-install(TARGETS tqsllib DESTINATION lib$(LIB_SUFFIX))
++install(TARGETS tqsllib DESTINATION lib${LIB_SUFFIX})
+ install(FILES config.xml DESTINATION share/TrustedQSL)
+ install(FILES ${HEADERS_TO_INSTALL} DESTINATION include)
+ endif()
diff --git a/nixpkgs/pkgs/applications/misc/tqsl/default.nix b/nixpkgs/pkgs/applications/misc/tqsl/default.nix
new file mode 100644
index 000000000000..f001cbcaab92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tqsl/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, makeWrapper, cmake, expat, openssl, zlib, db, curl, wxGTK }:
+
+stdenv.mkDerivation rec {
+  name = "tqsl-${version}";
+  version = "2.3.1";
+
+  src = fetchurl {
+    url = "https://www.arrl.org/files/file/LoTW%20Instructions/${name}.tar.gz";
+    sha256 = "10cjlilampwl10hwb7m28m5z9gyrscvvc1rryfjnhj9q2x4ppgxv";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [
+    cmake
+    expat
+    openssl
+    zlib
+    db
+    curl
+    wxGTK
+  ];
+
+  patches = [ ./cmake_lib_path.patch ];
+
+  meta = with stdenv.lib; {
+    description = "Software for using the ARRL Logbook of the World";
+    homepage = https://lotw.arrl.org/;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.dpflug ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/translate-shell/default.nix b/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
new file mode 100644
index 000000000000..15c4b8185a22
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/translate-shell/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, makeWrapper, curl, fribidi, rlwrap, gawk, groff, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "translate-shell";
+  version = "0.9.6.8";
+
+  src = fetchFromGitHub {
+    owner = "soimort";
+    repo = "translate-shell";
+    rev = "v${version}";
+    sha256 = "17fc5nlc594lvmihx39h4ddmi8ja3qqsyswzxadbaz7l3zm356b8";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/tthsum/default.nix b/nixpkgs/pkgs/applications/misc/tthsum/default.nix
new file mode 100644
index 000000000000..66bfcbcf4d9a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tthsum/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "tthsum-${version}";
+  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
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix b/nixpkgs/pkgs/applications/misc/tvbrowser/bin.nix
new file mode 100644
index 000000000000..38865ca4f3d9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/twmn/default.nix b/nixpkgs/pkgs/applications/misc/twmn/default.nix
new file mode 100644
index 000000000000..0667ec49b328
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/twmn/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, qtbase, qtx11extras, qmake, pkgconfig, boost }:
+
+stdenv.mkDerivation rec {
+  name = "twmn-git-2014-09-23";
+
+  src = fetchgit {
+    url = "https://github.com/sboli/twmn.git";
+    rev = "9492a47e25547e602dd57efd807033677c90b150";
+    sha256 = "1a68gka9gyxyzhc9rn8df59rzcdwkjw90cxp1kk0rdfp6svhxhsa";
+  };
+
+  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 stdenv.lib.platforms; linux;
+    maintainers = [ stdenv.lib.maintainers.matejc ];
+    license = stdenv.lib.licenses.lgpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/tzupdate/default.nix b/nixpkgs/pkgs/applications/misc/tzupdate/default.nix
new file mode 100644
index 000000000000..a5d2f206f3a5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tzupdate/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, python }:
+
+let
+  inherit (python.pkgs) buildPythonApplication fetchPypi requests;
+in
+buildPythonApplication rec {
+  pname = "tzupdate";
+  version = "1.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "085kp4v9ijhkfvr0r5rzn4z7nrkb2qig05j0bajb0gkgynwf8wnz";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/udevil/default.nix b/nixpkgs/pkgs/applications/misc/udevil/default.nix
new file mode 100644
index 000000000000..3cc4fcc1517b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/udevil/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, intltool, glib, pkgconfig, udev, utillinux, 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=${utillinux}/bin/mount \
+      --with-umount-prog=${utillinux}/bin/umount \
+      --with-losetup-prog=${utillinux}/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/nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch b/nixpkgs/pkgs/applications/misc/udevil/device-info-sys-stat.patch
new file mode 100644
index 000000000000..554682108e39
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/udiskie/default.nix b/nixpkgs/pkgs/applications/misc/udiskie/default.nix
new file mode 100644
index 000000000000..5d96918e42da
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/udiskie/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, asciidoc-full, gettext
+, gobject-introspection, gtk3, hicolor-icon-theme, libappindicator-gtk3, libnotify, librsvg
+, udisks2, wrapGAppsHook
+, buildPythonApplication
+, docopt
+, pygobject3
+, pyyaml
+}:
+
+buildPythonApplication rec {
+  name = "udiskie-${version}";
+  version = "1.7.5";
+
+  src = fetchFromGitHub {
+    owner = "coldfix";
+    repo = "udiskie";
+    rev = version;
+    sha256 = "1mcdn8ha5d5nsmrzk6xnnsqrmk94rdrzym9sqm38zk5r8gpyl1k4";
+  };
+
+  buildInputs = [
+    asciidoc-full        # For building man page.
+    hicolor-icon-theme
+    wrapGAppsHook
+    librsvg              # required for loading svg icons (udiskie uses svg icons)
+  ];
+
+  propagatedBuildInputs = [
+    gettext gobject-introspection gtk3 libnotify docopt
+    pygobject3 pyyaml udisks2 libappindicator-gtk3
+  ];
+
+  postBuild = "make -C doc";
+
+  postInstall = ''
+    mkdir -p $out/share/man/man8
+    cp -v doc/udiskie.8 $out/share/man/man8/
+  '';
+
+  # tests require dbusmock
+  doCheck = false;
+
+  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/nixpkgs/pkgs/applications/misc/unixcw/default.nix b/nixpkgs/pkgs/applications/misc/unixcw/default.nix
new file mode 100644
index 000000000000..2aeba5fb5f4a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/unixcw/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, libpulseaudio, alsaLib , pkgconfig, qt5}:
+stdenv.mkDerivation rec {
+  name = "unixcw-${version}";
+  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/nixpkgs/pkgs/applications/misc/unixcw/remove-use-of-dlopen.patch b/nixpkgs/pkgs/applications/misc/unixcw/remove-use-of-dlopen.patch
new file mode 100644
index 000000000000..0475c008ba22
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/urh/default.nix b/nixpkgs/pkgs/applications/misc/urh/default.nix
new file mode 100644
index 000000000000..4dc8d5cfa3e7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/urh/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, python3Packages
+, hackrf, rtl-sdr, airspy, limesuite }:
+
+python3Packages.buildPythonApplication rec {
+  name = "urh-${version}";
+  version = "2.5.1";
+
+  src = fetchFromGitHub {
+    owner = "jopohl";
+    repo = "urh";
+    rev = "v${version}";
+    sha256 = "01n4swm2q2i10qvhfw1q04wxf48xwqlddfg7842ff98i2d9yxy13";
+  };
+
+  buildInputs = [ hackrf rtl-sdr airspy limesuite ];
+  propagatedBuildInputs = with python3Packages; [
+    pyqt5 numpy psutil cython pyzmq
+  ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "Universal Radio Hacker: investigate wireless protocols like a boss";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/urlscan/default.nix b/nixpkgs/pkgs/applications/misc/urlscan/default.nix
new file mode 100644
index 000000000000..a82d7792cabd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/urlscan/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "urlscan";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "firecat53";
+    repo = pname;
+    rev = version;
+    sha256 = "0np7w38wzs72kxap9fsdliafqs0xfqnfj01i7b0fh7k235bgrapz";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/urlview/default.nix b/nixpkgs/pkgs/applications/misc/urlview/default.nix
new file mode 100644
index 000000000000..8764c41c8a4c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/urlview/default.nix
@@ -0,0 +1,40 @@
+{ 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;
+
+  meta = {
+    description = "Extract URLs from text";
+    homepage = https://packages.qa.debian.org/u/urlview.html;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/usync/default.nix b/nixpkgs/pkgs/applications/misc/usync/default.nix
new file mode 100644
index 000000000000..d12120ca2f11
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/usync/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, scsh, rsync, unison }:
+
+stdenv.mkDerivation rec {
+  pname = "usync";
+  version = "0.0.3";
+  name = "${pname}-${version}";
+
+  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/nixpkgs/pkgs/applications/misc/valentina/default.nix b/nixpkgs/pkgs/applications/misc/valentina/default.nix
new file mode 100644
index 000000000000..6752b0182fea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/valentina/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchhg
+, qmake, qttools
+, qtbase, qtsvg, qtxmlpatterns
+, poppler_utils
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "valentina-${version}";
+  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/nixpkgs/pkgs/applications/misc/vcal/default.nix b/nixpkgs/pkgs/applications/misc/vcal/default.nix
new file mode 100644
index 000000000000..7649785524f1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/vcal/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  name = "vcal-${version}";
+  version = "2.8";
+
+  src = fetchurl {
+    url    = "https://waynemorrison.com/software/vcal";
+    sha256 = "0jrm0jzqxb1xjp24hwbzlxsh22gjssay9gj4zszljzdm68r5afvc";
+  };
+
+  nativeBuildInputs = [ perl ]; # for pod2man
+
+  unpackPhase = ":";
+  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/nixpkgs/pkgs/applications/misc/veracrypt/default.nix b/nixpkgs/pkgs/applications/misc/veracrypt/default.nix
new file mode 100644
index 000000000000..8b64bcca667d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/veracrypt/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig, makeself, yasm, fuse, wxGTK, lvm2 }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "veracrypt";
+  name = "${pname}-${version}";
+  version = "1.23";
+
+  src = fetchurl {
+    url = "https://launchpad.net/${pname}/trunk/${version}/+download/VeraCrypt_${version}_Source.tar.bz2";
+    sha256 = "009lqi43n2w272sxv7y7dz9sqx15qkx6lszkswr8mwmkpgkm0px1";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/verbiste/default.nix b/nixpkgs/pkgs/applications/misc/verbiste/default.nix
new file mode 100644
index 000000000000..f23862c63cd4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/verbiste/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, libgnomeui, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "verbiste-${version}";
+
+  version = "0.1.45";
+
+  src = fetchurl {
+    url = "https://perso.b2b2c.ca/~sarrazip/dev/${name}.tar.gz";
+    sha256 = "180zyhdjspp7lk2291wsqs6bm7y27r7bd00447iimmjpx372s22c";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/vifm/default.nix b/nixpkgs/pkgs/applications/misc/vifm/default.nix
new file mode 100644
index 000000000000..c568a056514f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/vifm/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl
+, pkgconfig
+, ncurses, libX11
+, utillinux, file, which, groff
+}:
+
+stdenv.mkDerivation rec {
+  name = "vifm-${version}";
+  version = "0.10";
+
+  src = fetchurl {
+    url = "https://github.com/vifm/vifm/releases/download/v${version}/vifm-${version}.tar.bz2";
+    sha256 = "1f380xcyjnm4xmcdazs6dj064bwddhywvn3mgm36k7r7b2gnjnp0";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ncurses libX11 utillinux file which groff ];
+
+  meta = with stdenv.lib; {
+    description = "A vi-like file manager";
+    maintainers = with maintainers; [ raskin garbas ];
+    platforms = platforms.linux;
+    license = licenses.gpl2;
+    downloadPage = "https://vifm.info/downloads.shtml";
+    homepage = https://vifm.info/;
+    inherit version;
+    updateWalker = true;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/viking/default.nix b/nixpkgs/pkgs/applications/misc/viking/default.nix
new file mode 100644
index 000000000000..b7d0b330e85b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/viking/default.nix
@@ -0,0 +1,49 @@
+{ fetchurl, stdenv, makeWrapper, pkgconfig, intltool, gettext, gtk2, expat, curl
+, gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper
+, docbook_xml_dtd_412, gexiv2, sqlite, gpsbabel, expect, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "viking-${version}";
+  version = "1.6.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/viking/viking/viking-${version}.tar.bz2";
+    sha256 = "09kq0sxs2czps0d6xzgkkp41746v44ip63m72qvfs7rsrnqj7qnz";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ makeWrapper intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
+    libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2 sqlite hicolor-icon-theme
+  ];
+
+  configureFlags = [ "--disable-scrollkeeper --disable-mapnik" ];
+
+  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 ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/visidata/default.nix b/nixpkgs/pkgs/applications/misc/visidata/default.nix
new file mode 100644
index 000000000000..20e3c3daccb0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/visidata/default.nix
@@ -0,0 +1,29 @@
+{ buildPythonApplication, lib, fetchFromGitHub
+, dateutil, pyyaml, openpyxl, xlrd, h5py, fonttools, lxml, pandas, pyshp
+}:
+buildPythonApplication rec {
+  name = "${pname}-${version}";
+  pname = "visidata";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "saulpw";
+    repo = "visidata";
+    rev = "v${version}";
+    sha256 = "0schpfksxddbsv0s54pv1jrf151nw9kr51m41fp0ycnw7z2jqirm";
+  };
+
+  propagatedBuildInputs = [dateutil pyyaml openpyxl xlrd h5py fonttools
+    lxml pandas pyshp ];
+
+  doCheck = false;
+
+  meta = {
+    inherit version;
+    description = "Interactive terminal multitool for tabular data";
+    license = lib.licenses.gpl3 ;
+    maintainers = [lib.maintainers.raskin];
+    platforms = lib.platforms.linux;
+    homepage = "http://visidata.org/";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/vit/default.nix b/nixpkgs/pkgs/applications/misc/vit/default.nix
new file mode 100644
index 000000000000..40a399247e90
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/vit/default.nix
@@ -0,0 +1,36 @@
+{ pkgs, fetchgit, stdenv, makeWrapper, taskwarrior, ncurses,
+perl, perlPackages }:
+
+let
+  version = "1.2";
+in
+stdenv.mkDerivation {
+  name = "vit-${version}";
+
+  src = fetchgit {
+    url = "https://git.tasktools.org/scm/ex/vit.git";
+    rev = "7d0042ca30e9d09cfbf9743b3bc72096e4a8fe1e";
+    sha256 = "92cad7169b3870145dff02256e547ae270996a314b841d3daed392ac6722827f";
+  };
+
+  preConfigure = ''
+    substituteInPlace Makefile.in \
+      --replace sudo ""
+    substituteInPlace configure \
+      --replace /usr/bin/perl ${perl}/bin/perl
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/vit --prefix PERL5LIB : $PERL5LIB
+  '';
+
+  buildInputs = [ taskwarrior ncurses perlPackages.Curses perl makeWrapper ];
+
+  meta = {
+    description = "Visual Interactive Taskwarrior";
+    maintainers = with pkgs.lib.maintainers; [ ];
+    platforms = pkgs.lib.platforms.all;
+    license = pkgs.lib.licenses.gpl3;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/volnoti/default.nix b/nixpkgs/pkgs/applications/misc/volnoti/default.nix
new file mode 100644
index 000000000000..166811fb4ae3
--- /dev/null
+++ b/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 rec {
+  name = "volnoti-unstable-${version}";
+  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/nixpkgs/pkgs/applications/misc/vp/default.nix b/nixpkgs/pkgs/applications/misc/vp/default.nix
new file mode 100644
index 000000000000..e794b82e2f6e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/vp/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, SDL, SDL_image }:
+
+stdenv.mkDerivation rec {
+  name = "vp-${version}";
+  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 = http://brlcad.org/~erik/;
+    description = "SDL based picture viewer/slideshow";
+    platforms = platforms.unix;
+    license  = licenses.gpl3;
+    maintainers = [ maintainers.vrthra ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/vue/default.nix b/nixpkgs/pkgs/applications/misc/vue/default.nix
new file mode 100644
index 000000000000..a448d35485a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/vue/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, jre }:
+
+stdenv.mkDerivation rec {
+  name = "vue-${version}";
+  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 '#!${stdenv.shell}' >> "$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/nixpkgs/pkgs/applications/misc/vym/default.nix b/nixpkgs/pkgs/applications/misc/vym/default.nix
new file mode 100644
index 000000000000..48818ca3b8b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/vym/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, qmake, qtsvg }:
+
+stdenv.mkDerivation rec {
+  name = "vym-${version}";
+  version = "2.6.11";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/vym/2.6.0/${name}.tar.bz2";
+    sha256 = "1yznlb47jahd662a2blgh1ccwpl5dp5rjz9chsxjzhj3vbkzx3nl";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  nativeBuildInputs = [ pkgconfig qmake ];
+  buildInputs = [ qtsvg ];
+
+  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/nixpkgs/pkgs/applications/misc/wcalc/default.nix b/nixpkgs/pkgs/applications/misc/wcalc/default.nix
new file mode 100644
index 000000000000..1c6dc8f63c23
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/wcalc/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, mpfr, readline }:
+
+stdenv.mkDerivation rec {
+  name = "wcalc-${version}";
+  version = "2.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/w-calc/${name}.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/nixpkgs/pkgs/applications/misc/weather/default.nix b/nixpkgs/pkgs/applications/misc/weather/default.nix
new file mode 100644
index 000000000000..544c1252ff41
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/weather/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+stdenv.mkDerivation rec {
+    version = "2.3";
+    name = "weather-${version}";
+
+    src = fetchurl {
+        url = "http://fungi.yuggoth.org/weather/src/${name}.tar.xz";
+        sha256 = "0inij30prqqcmzjwcmfzjjn0ya5klv18qmajgxipz1jr3lpqs546";
+    };
+
+    nativeBuildInputs = [ pythonPackages.wrapPython ];
+
+    buildInputs = [ pythonPackages.python ];
+
+    phases = [ "unpackPhase" "installPhase" ];
+
+    installPhase = ''
+        site_packages=$out/${pythonPackages.python.sitePackages}
+        mkdir -p $out/{share/{man,weather-util},bin,etc} $site_packages
+        cp weather $out/bin/
+        cp weather.py $site_packages/
+        chmod +x $out/bin/weather
+        cp airports overrides.{conf,log} places slist stations zctas zlist zones $out/share/weather-util/
+        cp weatherrc $out/etc
+        cp weather.1 weatherrc.5 $out/share/man/
+        sed -i \
+          -e "s|/etc|$out/etc|g" \
+          -e "s|else: default_setpath = \".:~/.weather|&:$out/share/weather-util|" \
+          $site_packages/weather.py
+        wrapPythonPrograms
+    '';
+
+    meta = {
+        homepage = http://fungi.yuggoth.org/weather;
+        description = "Quick access to current weather conditions and forecasts";
+        license = stdenv.lib.licenses.isc;
+        maintainers = with stdenv.lib.maintainers; [ ];
+        platforms = with stdenv.lib.platforms; linux; # my only platform
+    };
+}
diff --git a/nixpkgs/pkgs/applications/misc/wego/default.nix b/nixpkgs/pkgs/applications/misc/wego/default.nix
new file mode 100644
index 000000000000..a3d3ace009e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/wego/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  name = "wego-${version}";
+  version = "20170403-${stdenv.lib.strings.substring 0 7 rev}";
+  rev = "415efdfab5d5ee68300bf261a0c6f630c6c2584c";
+  
+  goPackagePath = "github.com/schachmat/wego";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://github.com/schachmat/wego";
+    sha256 = "0w8sypwg0s2mvhk9cdibqr8bz5ipiiacs60a39sdswrpc4z486hg";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = {
+    license = stdenv.lib.licenses.isc;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/wego/deps.nix b/nixpkgs/pkgs/applications/misc/wego/deps.nix
new file mode 100644
index 000000000000..74ab69a30e14
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/wego/deps.nix
@@ -0,0 +1,38 @@
+[
+  {
+    goPackagePath = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev = "v0.0.4";
+      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "v0.0.4";
+      sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-colorable";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-colorable";
+      rev = "v0.0.9";
+      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+    };
+  }
+  {
+    goPackagePath = "github.com/schachmat/ingo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/schachmat/ingo";
+      rev = "a4bdc0729a3fda62cc4069b6e490fc657fd54e33";
+      sha256 = "1gw0kddy7jh3467imsqni86cf9yq7k6vpfc0ywkbwj0zsjsdgd49";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/misc/welle-io/default.nix b/nixpkgs/pkgs/applications/misc/welle-io/default.nix
new file mode 100644
index 000000000000..fae591d7ee03
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/welle-io/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, qtbase, qtcharts, qtmultimedia, qtquickcontrols, qtquickcontrols2
+, faad2, rtl-sdr, soapysdr-with-plugins, libusb, fftwSinglePrec }:
+let
+
+  version = "1.0";
+
+in stdenv.mkDerivation {
+
+  name = "welle-io-${version}";
+
+  src = fetchFromGitHub {
+    owner = "AlbrechtL";
+    repo = "welle.io";
+    rev = "V${version}";
+    sha256 = "1fsr0c2w16z45mcr85sqmllw1xf2gn6hp6f6fmgx2zfprq8gdmcr";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    faad2
+    fftwSinglePrec
+    libusb
+    qtbase
+    qtcharts
+    qtmultimedia
+    qtquickcontrols
+    qtquickcontrols2
+    rtl-sdr
+    soapysdr-with-plugins
+  ];
+
+  cmakeFlags = [
+    "-DRTLSDR=true" "-DSOAPYSDR=true"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A DAB/DAB+ Software Radio";
+    homepage = https://www.welle.io/;
+    maintainers = with maintainers; [ ck3d ];
+    license = licenses.gpl2;
+    platforms = with platforms; [ "x86_64-linux" "i686-linux" ] ++ darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/wikicurses/default.nix b/nixpkgs/pkgs/applications/misc/wikicurses/default.nix
new file mode 100644
index 000000000000..d8628b794d71
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/wikicurses/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+  version = "1.4";
+  name = "wikicurses-${version}";
+
+  src = fetchFromGitHub {
+    owner = "ids1024";
+    repo = "wikicurses";
+    rev = "v${version}";
+    sha256 = "0f14s4qx3q5pr5vn460c34b5mbz2xs62d8ljs3kic8gmdn8x2knm";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [ urwid beautifulsoup4 lxml ];
+
+  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/nixpkgs/pkgs/applications/misc/with-shell/default.nix b/nixpkgs/pkgs/applications/misc/with-shell/default.nix
new file mode 100644
index 000000000000..6a5f7c17b208
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/wmname/default.nix b/nixpkgs/pkgs/applications/misc/wmname/default.nix
new file mode 100644
index 000000000000..68f6c4df1593
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/wordnet/default.nix b/nixpkgs/pkgs/applications/misc/wordnet/default.nix
new file mode 100644
index 000000000000..5d153a0e417f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/wordnet/default.nix
@@ -0,0 +1,52 @@
+{stdenv, fetchurl, tcl, tk, xlibsWrapper, makeWrapper}:
+
+stdenv.mkDerivation rec {
+  version = "3.0";
+  name = "wordnet-${version}";
+  src = fetchurl {
+    url = "http://wordnetcode.princeton.edu/${version}/WordNet-${version}.tar.bz2";
+    sha256 = "08pgjvd2vvmqk3h641x63nxp7wqimb9r30889mkyfh2agc62sjbc";
+  };
+
+  buildInputs = [tcl tk xlibsWrapper makeWrapper];
+
+  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/nixpkgs/pkgs/applications/misc/worker/default.nix b/nixpkgs/pkgs/applications/misc/worker/default.nix
new file mode 100644
index 000000000000..f9267411dda4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/worker/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, libX11, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "worker-${version}";
+  version = "3.15.2";
+
+  src = fetchurl {
+    url = "http://www.boomerangsworld.de/cms/worker/downloads/${name}.tar.gz";
+    sha256 = "0km17ls51vp4nxlppf58vvxxymyx6w3xlzjc8wghxpjj098v4pp8";
+  };
+
+  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 = [ maintainers.ndowens ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/workrave/default.nix b/nixpkgs/pkgs/applications/misc/workrave/default.nix
new file mode 100644
index 000000000000..7e54f943856a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/workrave/default.nix
@@ -0,0 +1,47 @@
+{ 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 {
+  name = "workrave-${version}";
+  version = "1.10.23";
+
+  src = let
+  in fetchFromGitHub {
+    sha256 = "1qhlwfhwk5agv4904d6bsf83k9k89q7bms6agg967vsca4905vcw";
+    rev = with stdenv.lib;
+      "v" + concatStringsSep "_" (splitString "." 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/nixpkgs/pkgs/applications/misc/wsjtx/default.nix b/nixpkgs/pkgs/applications/misc/wsjtx/default.nix
new file mode 100644
index 000000000000..fd6be8f59201
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/wsjtx/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, asciidoc, asciidoctor, autoconf, automake, cmake,
+  docbook_xsl, fftw, fftwFloat, gfortran, libtool, qtbase,
+  qtmultimedia, qtserialport, texinfo, libusb1 }:
+
+stdenv.mkDerivation rec {
+  name = "wsjtx-${version}";
+  version = "1.9.1";
+
+  # This is a composite source tarball containing both wsjtx and a hamlib fork
+  src = fetchurl {
+    url = "http://physics.princeton.edu/pulsar/K1JT/wsjtx-${version}.tgz";
+    sha256 = "143r17fri08mwz28g17wcfxy60h3xgfk46mln5lmdr9k6355aqqc";
+  };
+
+  # 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
+    texinfo
+  ];
+  buildInputs = [ fftw fftwFloat libusb1 qtbase qtmultimedia qtserialport ];
+
+  # Composite build has its own patch step after it extracts the inner archives
+  postPatch = "cp ${./wsjtx.patch} wsjtx.patch";
+
+  meta = with stdenv.lib; {
+    description = "Weak-signal digital communication modes for amateur radio";
+    longDescription = ''
+      WSJT-X implements communication protocols or "modes" called 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 = http://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 = [ maintainers.lasandell ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/wsjtx/wsjtx.patch b/nixpkgs/pkgs/applications/misc/wsjtx/wsjtx.patch
new file mode 100644
index 000000000000..a5bd7ec3e196
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/wsjtx/wsjtx.patch
@@ -0,0 +1,12 @@
+Index: wsjtx/CMakeLists.txt
+===================================================================
+--- wsjtx/CMakeLists.txt	(revision 8382)
++++ wsjtx/CMakeLists.txt	(working copy)
+@@ -866,6 +866,7 @@
+ find_package (Qt5Widgets 5 REQUIRED)
+ find_package (Qt5Multimedia 5 REQUIRED)
+ find_package (Qt5PrintSupport 5 REQUIRED)
++find_package (Qt5SerialPort 5 REQUIRED)
+ 
+ if (WIN32)
+   add_definitions (-DQT_NEEDS_QTMAIN)
diff --git a/nixpkgs/pkgs/applications/misc/wtf/default.nix b/nixpkgs/pkgs/applications/misc/wtf/default.nix
new file mode 100644
index 000000000000..a01cef9227bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/wtf/default.nix
@@ -0,0 +1,28 @@
+{ buildGoPackage
+, fetchFromGitHub
+, lib
+}:
+
+buildGoPackage rec {
+  name = "wtf-${version}";
+  version = "0.4.0";
+
+  goPackagePath = "github.com/senorprogrammer/wtf";
+
+  src = fetchFromGitHub {
+    owner = "senorprogrammer";
+    repo = "wtf";
+    rev = "${version}";
+    sha256 = "1vgjqmw27baiq9brmnafic3w3hw11p5qc6ahbdxi5n5n4bx7j6vn";
+  };
+
+  buildFlagsArray = [ "-ldflags=" "-X main.version=${version}" ];
+
+  meta = with lib; {
+    description = "The personal information dashboard for your terminal";
+    homepage = http://wtfutil.com/;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xastir/default.nix b/nixpkgs/pkgs/applications/misc/xastir/default.nix
new file mode 100644
index 000000000000..c677f7371fca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xastir/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, autoreconfHook
+, curl, db, gdal, libgeotiff
+, libXpm, libXt, motif, pcre
+, perl, proj, rastermagick, shapelib
+}:
+
+stdenv.mkDerivation rec {
+  name = "xastir-${version}";
+  version = "208";
+
+  src = fetchFromGitHub {
+    owner = "Xastir";
+    repo = "Xastir";
+    rev = "707f3aa8c7ca3e3fecd32d5a4af3f742437e5dce";
+    sha256 = "1mm22vn3hws7dmg9wpaj4s0zkzb77i3aqa2ay3q6kqjkdhv25brl";
+  };
+
+  buildInputs = [
+    autoreconfHook
+    curl db gdal 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/nixpkgs/pkgs/applications/misc/xautoclick/default.nix b/nixpkgs/pkgs/applications/misc/xautoclick/default.nix
new file mode 100644
index 000000000000..045354da3d60
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xautoclick/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, xorg, pkgconfig
+, gtkSupport ? true, gtk2
+, qtSupport ? true, qt4
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.31";
+  name = "xautoclick-${version}";
+  src = fetchurl {
+    url = "mirror://sourceforge/project/xautoclick/xautoclick/xautoclick-0.31/xautoclick-0.31.tar.gz";
+    sha256 = "0h522f12a7v2b89411xm51iwixmjp2mp90rnizjgiakx9ajnmqnm";
+  };
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ xorg.libX11 xorg.libXtst xorg.xinput xorg.libXi xorg.libXext ]
+    ++ stdenv.lib.optionals gtkSupport [ gtk2 ]
+    ++ stdenv.lib.optionals qtSupport [ qt4 ];
+  patchPhase = ''
+    substituteInPlace configure --replace /usr/X11R6 ${xorg.libX11.dev}
+  '';
+  preConfigure = stdenv.lib.optional qtSupport ''
+    mkdir .bin
+    ln -s ${qt4}/bin/moc .bin/moc-qt4
+    addToSearchPath PATH .bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Autoclicker application, which enables you to automatically click the left mousebutton";
+    homepage = http://xautoclick.sourceforge.net;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xca/default.nix b/nixpkgs/pkgs/applications/misc/xca/default.nix
new file mode 100644
index 000000000000..280b30128727
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xca/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, lib, fetchFromGitHub, autoreconfHook, perl, pkgconfig
+, libtool, openssl, qtbase, qttools }:
+
+mkDerivation rec {
+  name = "xca-${version}";
+  version = "2.1.2";
+
+  src = fetchFromGitHub {
+    owner  = "chris2511";
+    repo   = "xca";
+    rev    = "RELEASE.${version}";
+    sha256 = "0slfqmz0b01lwmrv4h78hmrsdrhcyc7sjzsxcw05ylgmhvdq3dw9";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/xchm/default.nix b/nixpkgs/pkgs/applications/misc/xchm/default.nix
new file mode 100644
index 000000000000..a7a6500fd22a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xchm/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, wxGTK, chmlib}:
+
+stdenv.mkDerivation {
+  name = "xchm-1.23";
+  src = fetchurl {
+    url = mirror://sourceforge/xchm/xchm-1.23.tar.gz;
+    sha256 = "0qn0fyxcrn30ndq2asx31k0qkx3grbm16fb1y580wd2gjmh5r3wg";
+  };
+  buildInputs = [wxGTK chmlib];
+
+  postConfigure = ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS $(${wxGTK}/lib/wx/config/* --libs | sed -e s@-pthread@@)"
+    echo $NIX_LDFLAGS
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A viewer for Microsoft HTML Help files";
+    homepage = http://xchm.sourceforge.net;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xcruiser/default.nix b/nixpkgs/pkgs/applications/misc/xcruiser/default.nix
new file mode 100644
index 000000000000..945072ce026e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xcruiser/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, gccmakedep, xorg, 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/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix b/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix
new file mode 100644
index 000000000000..ed7f2b27c381
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, txt2tags, python2Packages }:
+
+stdenv.mkDerivation rec {
+  name = "xdgmenumaker-${version}";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "gapan";
+    repo = "xdgmenumaker";
+    rev = version;
+    sha256 = "1vrsp5c1ah7p4dpwd6aqvinpwzd8crdimvyyr3lbm3c6cwpyjmif";
+  };
+
+  nativeBuildInputs = [
+    txt2tags
+    python2Packages.wrapPython
+  ];
+
+  pythonPath = [
+    python2Packages.pyxdg
+    python2Packages.pygtk
+  ];
+
+  installPhase = ''
+    make install PREFIX=$out DESTDIR=
+    wrapProgram "$out/bin/xdgmenumaker" \
+      --prefix XDG_DATA_DIRS : "$out/share"
+    wrapPythonPrograms
+  '';
+  
+  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/nixpkgs/pkgs/applications/misc/xfe/default.nix b/nixpkgs/pkgs/applications/misc/xfe/default.nix
new file mode 100644
index 000000000000..444ab802673e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/xfontsel/default.nix b/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
new file mode 100644
index 000000000000..5d2b70a80ee4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/xiphos/default.nix b/nixpkgs/pkgs/applications/misc/xiphos/default.nix
new file mode 100644
index 000000000000..7148caf35d34
--- /dev/null
+++ b/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 {
+  name = "xiphos-${version}";
+  version = "4.0.7";
+
+  src = fetchFromGitHub {
+    owner = "crosswire";
+    repo = "xiphos";
+    rev = "${version}";
+    sha256 = "1vwf1ps6nrajxl1qbs6v1cgykmq5wn4j09j10gbcd3b2nvrprf3g";
+  };
+
+  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};
+  '';
+
+  configureFlags= [ "--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 = http://www.xiphos.org/;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xkbd/default.nix b/nixpkgs/pkgs/applications/misc/xkbd/default.nix
new file mode 100644
index 000000000000..ccbb88bd1a8e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xkbd/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, freetype, libXrender, libXft, xextproto
+, xinput, libXi, libXext, libXtst, libXpm, libX11, xproto, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+  name = "xkbd-${version}";
+  version = "0.8.18";
+
+  src = fetchFromGitHub {
+    owner = "mahatma-kaganovich";
+    repo = "xkbd";
+    rev = name;
+    sha256 = "05ry6q75jq545kf6p20nhfywaqf2wdkfiyp6iwdpv9jh238hf7m9";
+  };
+
+  buildInputs = [
+    freetype libXrender libXft libXext libXtst libXpm libX11
+    libXi xextproto xinput xproto
+  ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mahatma-kaganovich/xkbd;
+    description = "onscreen soft keyboard for X11";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.genesis ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix b/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix
new file mode 100644
index 000000000000..3f3865d7688a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xkblayout-state/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  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/nixpkgs/pkgs/applications/misc/xkbmon/default.nix b/nixpkgs/pkgs/applications/misc/xkbmon/default.nix
new file mode 100644
index 000000000000..38bda9a8f560
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xkbmon/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libX11 }:
+
+stdenv.mkDerivation rec {
+  name = "xkbmon-${version}";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "xkbmon";
+    repo = "xkbmon";
+    rev = version;
+    sha256 = "1smyqsd9cpbzqaplm221a8mq0nham6rg6hjsm9g5gph94xmk6d67";
+  };
+
+  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.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xlog/default.nix b/nixpkgs/pkgs/applications/misc/xlog/default.nix
new file mode 100644
index 000000000000..c0b0ef63369f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xlog/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, glib, gtk2, pkgconfig, hamlib }:
+stdenv.mkDerivation rec {
+  name = "xlog-${version}";
+  version = "2.0.15";
+  
+  src = fetchurl {
+    url = "https://download.savannah.gnu.org/releases/xlog/${name}.tar.gz";
+    sha256 = "0an883wqw3zwpw8nqinm9cb17hp2xw9vf603k4l2345p61jqdw2j";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/xmind/default.nix b/nixpkgs/pkgs/applications/misc/xmind/default.nix
new file mode 100644
index 000000000000..a12f3dc304ba
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xmind/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, lib, dpkg, fetchurl, gtk2, jre, libXtst, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "xmind-${version}";
+  version = "7.5-update1";
+
+  src = if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
+    url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_i386.deb";
+    sha256 = "04kr6pw0kwy715bp9wcnqnw1k5wl65xa87lhljrskm291p402jy1";
+  } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl {
+    url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_amd64.deb";
+    sha256 = "1j2ynhk7p3m3vd6c4mjwpnlzqgfj5c4q3zydab3nfwncwx6gaqj9";
+  } else throw "platform ${stdenv.hostPlatform.system} not supported!";
+
+  nativeBuildInputs = [ dpkg makeWrapper ];
+
+  unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
+
+  dontBuild = true;
+  dontPatchELF = true;
+  dontStrip = true;
+
+  libPath = lib.makeLibraryPath [ gtk2 libXtst ];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r usr/lib/xmind $out/libexec
+    cp -r usr/bin usr/share $out
+    rm $out/libexec/XMind.ini
+    mv etc/XMind.ini $out/libexec
+
+    patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+      $out/libexec/XMind
+
+    wrapProgram $out/libexec/XMind \
+      --prefix LD_LIBRARY_PATH : "${libPath}"
+
+    substituteInPlace "$out/bin/XMind" \
+       --replace '/usr/lib/xmind' "$out/libexec"
+
+    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 = http://www.xmind.net/;
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ michalrus ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix b/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix
new file mode 100644
index 000000000000..0fb2cec29161
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xmr-stak/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, stdenvGcc6, lib
+, fetchFromGitHub, cmake, libmicrohttpd, 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.7.1";
+
+  src = fetchFromGitHub {
+    owner = "fireice-uk";
+    repo = "xmr-stak";
+    rev = "${version}";
+    sha256 = "1mlli8sx1f3922ygnwakmi2h3swccz62njxbzxfzbi4hlmvsaz0y";
+  };
+
+  NIX_CFLAGS_COMPILE = "-O3";
+
+  cmakeFlags = lib.optional (!cudaSupport) "-DCUDA_ENABLE=OFF"
+    ++ lib.optional (!openclSupport) "-DOpenCL_ENABLE=OFF";
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libmicrohttpd 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;
+    maintainers = with maintainers; [ fpletz bfortz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xmrig/default.nix b/nixpkgs/pkgs/applications/misc/xmrig/default.nix
new file mode 100644
index 000000000000..c13f8ed4f400
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xmrig/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, cmake, libuv, libmicrohttpd, openssl
+, donateLevel ? 0
+}:
+
+stdenv.mkDerivation rec {
+  name = "xmrig-${version}";
+  version = "2.8.3";
+
+  src = fetchFromGitHub {
+    owner = "xmrig";
+    repo = "xmrig";
+    rev = "v${version}";
+    sha256 = "144i24c707fja89iqcc511b4077p53q8w2cq5zd26hry2i4i3abi";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libuv libmicrohttpd openssl ];
+
+  postPatch = ''
+    substituteInPlace src/donate.h --replace "kDonateLevel = 5;" "kDonateLevel = ${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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix b/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix
new file mode 100644
index 000000000000..c013a9cc44ec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchFromGitHub, cmake, libuv, libmicrohttpd, libuuid
+, donateLevel ? 0
+}:
+
+stdenv.mkDerivation rec {
+  name = "xmrig-proxy-${version}";
+  version = "2.6.4";
+
+  src = fetchFromGitHub {
+    owner = "xmrig";
+    repo = "xmrig-proxy";
+    rev = "v${version}";
+    sha256 = "0h6ihrrkgwi8k642iqq13qx3zlxl9r8q7wm417hb7j35rnmwn8lq";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libuv libmicrohttpd libuuid ];
+
+  # Set default donation level to 0%. Can be increased at runtime via --donate-level option.
+  postPatch = ''
+    substituteInPlace src/donate.h --replace "kDonateLevel = 2;" "kDonateLevel = ${toString donateLevel};"
+  '';
+
+  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/nixpkgs/pkgs/applications/misc/xneur/default.nix b/nixpkgs/pkgs/applications/misc/xneur/default.nix
new file mode 100644
index 000000000000..c6438a21f2c3
--- /dev/null
+++ b/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 rec {
+   name = "xneur-${version}";
+   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/nixpkgs/pkgs/applications/misc/xpad/default.nix b/nixpkgs/pkgs/applications/misc/xpad/default.nix
new file mode 100644
index 000000000000..f066876f5730
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xpad/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl
+, autoreconfHook, pkgconfig, wrapGAppsHook
+, glib, intltool, gtk3, gtksourceview, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "xpad-${version}";
+  version = "5.2.0";
+
+  src = fetchurl {
+    url = "https://launchpad.net/xpad/trunk/${version}/+download/xpad-${version}.tar.bz2";
+    sha256 = "1ab33vg3fz57lz19jjwa3vp3vnln4pnh60hwlkq59la53s8lyijk";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
+
+  buildInputs = [ glib intltool gtk3 gtksourceview hicolor-icon-theme ];
+
+  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/nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch b/nixpkgs/pkgs/applications/misc/xpdf/cmake_version.patch
new file mode 100644
index 000000000000..59a51f7506d5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/xpdf/default.nix b/nixpkgs/pkgs/applications/misc/xpdf/default.nix
new file mode 100644
index 000000000000..7e0369b277d3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xpdf/default.nix
@@ -0,0 +1,51 @@
+{ enableGUI ? true, enablePDFtoPPM ? true, useT1Lib ? false
+, stdenv, fetchurl, zlib, libpng, freetype ? null, t1lib ? null
+, cmake, qtbase ? null, qtsvg ? null, makeWrapper
+}:
+
+assert enableGUI -> qtbase != null && qtsvg != null && freetype != null;
+assert enablePDFtoPPM -> freetype != null;
+assert useT1Lib -> t1lib != null;
+
+assert !useT1Lib; # t1lib has multiple unpatched security vulnerabilities
+
+stdenv.mkDerivation {
+  name = "xpdf-4.00";
+
+   src = fetchurl {
+    url = http://www.xpdfreader.com/dl/xpdf-4.00.tar.gz;
+    sha256 = "1mhn89738vjva14xr5gblc2zrdgzmpqbbjdflqdmpqv647294ggz";
+  };
+
+  # 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 makeWrapper ];
+
+  cmakeFlags = ["-DSYSTEM_XPDFRC=/etc/xpdfrc" "-DA4_PAPER=ON"];
+
+  buildInputs = [ zlib libpng ] ++
+    stdenv.lib.optional enableGUI qtbase ++
+    stdenv.lib.optional useT1Lib t1lib ++
+    stdenv.lib.optional enablePDFtoPPM freetype;
+
+  # Debian uses '-fpermissive' to bypass some errors on char* constantness.
+  CXXFLAGS = "-O2 -fpermissive";
+
+  hardeningDisable = [ "format" ];
+
+  postInstall = stdenv.lib.optionalString (stdenv.isDarwin && enableGUI) ''
+    wrapProgram $out/bin/xpdf \
+      --set QT_PLUGIN_PATH ${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.xpdfreader.com;
+    description = "Viewer for Portable Document Format (PDF) files";
+    license = with licenses; [ gpl2 gpl3 ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.peti ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix b/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
new file mode 100644
index 000000000000..cf6f5f32ee2a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
@@ -0,0 +1,52 @@
+{ 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 = {
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch b/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.patch
new file mode 100644
index 000000000000..606da76c7293
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch b/nixpkgs/pkgs/applications/misc/xpdf/xpdf-3.02-protection.patch
new file mode 100644
index 000000000000..598fc6dbd073
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix b/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix
new file mode 100644
index 000000000000..bb3385ad016a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xrandr-invert-colors/default.nix
@@ -0,0 +1,26 @@
+{ fetchurl, stdenv, libXrandr}:
+
+stdenv.mkDerivation rec {
+  version = "0.01";
+  name = "xrandr-invert-colors-${version}";
+  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/nixpkgs/pkgs/applications/misc/xrq/default.nix b/nixpkgs/pkgs/applications/misc/xrq/default.nix
new file mode 100644
index 000000000000..fe65004b32ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xrq/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libX11}:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/misc/xscope/default.nix b/nixpkgs/pkgs/applications/misc/xscope/default.nix
new file mode 100644
index 000000000000..28ce4a0d500d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xscope/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, libXt }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "xscope";
+  version = "1.4.1";
+
+  src = fetchurl {
+    url = "mirror://xorg/individual/app/${name}.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/nixpkgs/pkgs/applications/misc/xsw/default.nix b/nixpkgs/pkgs/applications/misc/xsw/default.nix
new file mode 100644
index 000000000000..3e8acff00f89
--- /dev/null
+++ b/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 {
+  name = "xsw-${version}";
+  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 = 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/nixpkgs/pkgs/applications/misc/xsw/parse.patch b/nixpkgs/pkgs/applications/misc/xsw/parse.patch
new file mode 100644
index 000000000000..6db6c14c26a7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/xterm/default.nix b/nixpkgs/pkgs/applications/misc/xterm/default.nix
new file mode 100644
index 000000000000..3a3025e7d692
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xterm/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchurl, fetchpatch, xorg, ncurses, freetype, fontconfig, pkgconfig, makeWrapper
+, enableDecLocator ? true
+}:
+
+stdenv.mkDerivation rec {
+  name = "xterm-339";
+
+  src = fetchurl {
+    urls = [
+     "ftp://ftp.invisible-island.net/xterm/${name}.tgz"
+     "https://invisible-mirror.net/archives/xterm/${name}.tgz"
+   ];
+    sha256 = "1kigkl4va1jxycqcf5dkg4d74j1fgrxhfbp8ib367crn6fqnprk5";
+  };
+
+  buildInputs =
+    [ xorg.libXaw xorg.xproto 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/cgit/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
+  '';
+
+  meta = {
+    homepage = http://invisible-island.net/xterm;
+    license = with stdenv.lib.licenses; [ mit ];
+    maintainers = with stdenv.lib.maintainers; [vrthra];
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xterm/sixel-256.support.patch b/nixpkgs/pkgs/applications/misc/xterm/sixel-256.support.patch
new file mode 100644
index 000000000000..480e67e89ca3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/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/nixpkgs/pkgs/applications/misc/xtermcontrol/default.nix b/nixpkgs/pkgs/applications/misc/xtermcontrol/default.nix
new file mode 100644
index 000000000000..f3e743b5528c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xtermcontrol/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "3.6";
+  name = "xtermcontrol-${version}";
+
+  src = fetchurl {
+    url = "https://thrysoee.dk/xtermcontrol/xtermcontrol-${version}.tar.gz";
+    sha256 = "01bwgxya6qh4br2lx3v98p7j1b99skgr6c1frw5kdkxy57qlpgkz";
+  };
+
+  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/nixpkgs/pkgs/applications/misc/xxkb/default.nix b/nixpkgs/pkgs/applications/misc/xxkb/default.nix
new file mode 100644
index 000000000000..56638d126c19
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/yaft/default.nix b/nixpkgs/pkgs/applications/misc/yaft/default.nix
new file mode 100644
index 000000000000..0794b2b6dbe9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/yaft/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  version = "0.2.9";
+  name = "yaft-${version}";
+
+  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 = with stdenv.lib.maintainers; [ ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/yakuake/default.nix b/nixpkgs/pkgs/applications/misc/yakuake/default.nix
new file mode 100644
index 000000000000..8f8494ac45b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/yakuake/default.nix
@@ -0,0 +1,70 @@
+{ mkDerivation
+, lib
+, fetchurl
+, kdoctools
+, wrapGAppsHook
+, extra-cmake-modules
+, karchive
+, kcrash
+, kdbusaddons
+, ki18n
+, kiconthemes
+, knewstuff
+, knotifications
+, knotifyconfig
+, konsole
+, kparts
+, kwindowsystem
+, qtx11extras
+}:
+
+mkDerivation rec {
+  pname = "yakuake";
+  version = "3.0.5";
+  name = "${pname}-${version}";
+
+    src = fetchurl {
+      url = "http://download.kde.org/stable/${pname}/${version}/src/${name}.tar.xz";
+      sha256 = "021a9mnghffv2mrdl987mn7wbg8bk6bnf6xz8kn2nwsqxp9kpqh8";
+    };
+
+    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 wrapGAppsHook
+  ];
+
+  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/nixpkgs/pkgs/applications/misc/yarssr/default.nix b/nixpkgs/pkgs/applications/misc/yarssr/default.nix
new file mode 100644
index 000000000000..a8ff981400a9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/yarssr/default.nix
@@ -0,0 +1,68 @@
+{
+fetchFromGitHub, stdenv, lib,
+makeWrapper, pkgs,
+perl, 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
+    pkgs.gtk2
+  ];
+in
+stdenv.mkDerivation rec {
+  version = "git-2017-12-01";
+  name = "yarssr-${version}";
+
+  src = fetchFromGitHub {
+    owner = "JGRennison";
+    repo = "yarssr";
+    rev = "e70eb9fc6563599bfb91c6de6a79654de531c18d";
+    sha256 = "0x7hz8x8qyp3i1vb22zhcnvwxm3jhmmmlr22jqc5b09vpmbw1l45";
+  };
+
+  nativeBuildInputs = [ perl pkgs.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 "${lib.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/nixpkgs/pkgs/applications/misc/yate/default.nix b/nixpkgs/pkgs/applications/misc/yate/default.nix
new file mode 100644
index 000000000000..53d427e61c2c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/yate/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, lib, qt4, openssl, autoconf, automake, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "yate-${version}";
+  version = "6.0.0-1";
+
+  src = fetchurl {
+    url = "http://voip.null.ro/tarballs/yate${lib.versions.major version}/${name}.tar.gz";
+    sha256 = "05qqdhi3rp5660gq1484jkmxkm9vq81j0yr765h0gf0xclan1dqa";
+  };
+
+  # TODO zaptel ? postgres ?
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ qt4 openssl autoconf automake ];
+
+  # /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/nixpkgs/pkgs/applications/misc/yokadi/default.nix b/nixpkgs/pkgs/applications/misc/yokadi/default.nix
new file mode 100644
index 000000000000..dec861009eb4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/yokadi/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, buildPythonApplication, dateutil,
+  sqlalchemy, setproctitle, icalendar, pycrypto }:
+
+buildPythonApplication rec {
+  pname = "yokadi";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "https://yokadi.github.io/download/${pname}-${version}.tar.bz2";
+    sha256 = "af201da66fd3a8435b2ccd932082ab9ff13f5f2e3d6cd3624f1ab81c577aaf17";
+  };
+
+  propagatedBuildInputs = [
+    dateutil
+    sqlalchemy
+    setproctitle
+    icalendar
+    pycrypto
+  ];
+
+  # 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/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix b/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix
new file mode 100644
index 000000000000..8843c821ffb4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/yubioath-desktop/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl,  python27Packages, pcsclite, yubikey-personalization }:
+
+python27Packages.buildPythonApplication rec {
+    namePrefix = "";
+    name = "yubioath-desktop-${version}";
+    version = "3.1.0";
+
+    src = fetchurl {
+      url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
+      sha256 = "0jfvllgh88g2vwd8sg6willlnn2hq05nd9d3xmv98lhl7gyy1akw";
+    };
+
+    doCheck = false;
+
+    buildInputs = [ stdenv ];
+
+    propagatedBuildInputs = [ python27Packages.pycrypto python27Packages.click python27Packages.pyscard python27Packages.pyside ];
+
+    # Need LD_PRELOAD for libykpers as the Nix cpython disables ctypes.cdll.LoadLibrary
+    # support that the yubicommon library uses to load libykpers
+    makeWrapperArgs = ''--prefix LD_LIBRARY_PATH : "${stdenv.lib.getLib pcsclite}/lib:${yubikey-personalization}/lib" --prefix LD_PRELOAD : "${yubikey-personalization}/lib/libykpers-1.so"'';
+
+    postInstall = ''
+      mkdir -p $out/share/applications
+      cp resources/yubioath.desktop $out/share/applications/yubioath.desktop
+      mkdir -p $out/share/yubioath/icons
+      cp resources/yubioath*.{icns,ico,png,xpm} $out/share/yubioath/icons
+      substituteInPlace $out/share/applications/yubioath.desktop \
+        --replace 'Exec=yubioath-gui' "Exec=$out/bin/yubioath-gui" \
+        --replace 'Icon=yubioath' "Icon=$out/share/yubioath/icons"
+
+    '';
+
+    meta = {
+      description = "Yubikey Desktop Authenticator";
+
+      homepage = https://www.yubico.com/support/knowledge-base/categories/articles/yubico-authenticator-download/;
+
+      license = stdenv.lib.licenses.gpl3;
+    };
+}
diff --git a/nixpkgs/pkgs/applications/misc/zathura/core/default.nix b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
new file mode 100644
index 000000000000..4cf05a21636a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, meson, ninja, makeWrapper, pkgconfig
+, appstream-glib, desktop-file-utils, python3
+, gtk, girara, gettext, libxml2
+, sqlite, glib, texlive, libintl, libseccomp
+, gtk-mac-integration, synctexSupport ? true
+}:
+
+assert synctexSupport -> texlive != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "zathura-core-${version}";
+  version = "0.4.1";
+
+  src = fetchurl {
+    url = "https://pwmt.org/projects/zathura/download/zathura-${version}.tar.xz";
+    sha256 = "1znr3psqda06xklzj8mn452w908llapcg1rj468jwpg0wzv6pxfn";
+  };
+
+  outputs = [ "bin" "man" "dev" "out" ];
+
+  nativeBuildInputs = [
+    meson ninja pkgconfig appstream-glib desktop-file-utils python3.pkgs.sphinx
+    gettext makeWrapper libxml2
+  ];
+
+  buildInputs = [
+    gtk girara libintl libseccomp
+    sqlite glib
+  ] ++ optional synctexSupport texlive.bin.core
+    ++ optional stdenv.isDarwin [ gtk-mac-integration ];
+
+  meta = {
+    homepage = https://pwmt.org/projects/zathura/;
+    description = "A core component for zathura PDF viewer";
+    license = licenses.zlib;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ garbas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/zathura/default.nix b/nixpkgs/pkgs/applications/misc/zathura/default.nix
new file mode 100644
index 000000000000..e67bebb37100
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/zathura/default.nix
@@ -0,0 +1,30 @@
+{ pkgs, useMupdf ? true, synctexSupport ? true }:
+
+let
+  callPackage = pkgs.newScope self;
+
+  self = rec {
+    gtk = pkgs.gtk3;
+
+    zathura_core = callPackage ./core {
+      inherit synctexSupport;
+    };
+
+    zathura_pdf_poppler = callPackage ./pdf-poppler { };
+
+    zathura_pdf_mupdf = callPackage ./pdf-mupdf { };
+
+    zathura_djvu = callPackage ./djvu { };
+
+    zathura_ps = callPackage ./ps { };
+
+    zathuraWrapper = callPackage ./wrapper.nix {
+      plugins = [
+        zathura_djvu
+        zathura_ps
+        (if useMupdf then zathura_pdf_mupdf else zathura_pdf_poppler)
+      ];
+    };
+  };
+
+in self.zathuraWrapper
diff --git a/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix b/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix
new file mode 100644
index 000000000000..58985dced425
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/zathura/djvu/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gtk, zathura_core, girara, djvulibre, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "zathura-djvu-0.2.8";
+
+  src = fetchurl {
+    url = "https://pwmt.org/projects/zathura/plugins/download/${name}.tar.xz";
+    sha256 = "0axkv1crdxn0z44whaqp2ibkdqcykhjnxk7qzms0dp1b67an9rnh";
+  };
+
+  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; [ garbas ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix b/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
new file mode 100644
index 000000000000..709c1edb0b83
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/zathura/pdf-mupdf/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, meson, ninja, fetchurl, fetchFromGitHub
+, pkgconfig, zathura_core, cairo , gtk-mac-integration, girara, mupdf }:
+
+stdenv.mkDerivation rec {
+  version = "0.3.4";
+  name = "zathura-pdf-mupdf-${version}";
+
+  # pwmt.org server was down at the time of last update
+  # src = fetchurl {
+  #   url = "https://pwmt.org/projects/zathura-pdf-mupdf/download/${name}.tar.xz";
+  #   sha256 = "1zbaqimav4wfgimpy3nfzl10qj7vyv23rdy2z5z7z93jwbp2rc2j";
+  # };
+  src = fetchFromGitHub {
+    owner = "pwmt";
+    repo = "zathura-pdf-mupdf";
+    rev = version;
+    sha256 = "1m4w4jrybpjmx6pi33a5saxzmfd8rrym2k13jpd1fv543s17d9dy";
+  };
+
+  nativeBuildInputs = [ meson ninja pkgconfig ];
+
+  buildInputs = [
+    zathura_core girara mupdf cairo
+  ] ++ stdenv.lib.optional stdenv.isDarwin [
+    gtk-mac-integration
+  ];
+
+  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/nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix b/nixpkgs/pkgs/applications/misc/zathura/pdf-poppler/default.nix
new file mode 100644
index 000000000000..663e798ee0b4
--- /dev/null
+++ b/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 {
+  version = "0.2.9";
+  name = "zathura-pdf-poppler-${version}";
+
+  src = fetchurl {
+    url = "https://pwmt.org/projects/zathura/plugins/download/${name}.tar.xz";
+    sha256 = "1p4jcny0jniygns78mcf0nlm298dszh49qpmjmackrm6dq8hc25y";
+  };
+
+  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 garbas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix b/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix
new file mode 100644
index 000000000000..07e4c5d715b7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/zathura/ps/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchurl, meson, ninja, pkgconfig, zathura_core, girara, libspectre, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "zathura-ps-0.2.6";
+
+  src = fetchurl {
+    url = "https://pwmt.org/projects/zathura/plugins/download/${name}.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 garbas ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix b/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
new file mode 100644
index 000000000000..b81d12947e41
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
@@ -0,0 +1,32 @@
+{ symlinkJoin, lib, makeWrapper, zathura_core, file, plugins ? [] }:
+
+let
+  pluginsPath = lib.makeSearchPath "lib/zathura" plugins;
+
+in symlinkJoin {
+  name = "zathura-with-plugins-${zathura_core.version}";
+
+  paths = with zathura_core; [ man dev out ];
+
+  buildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \
+      --prefix PATH ":" "${lib.makeBinPath [ file ]}" \
+      --add-flags --plugins-dir=${pluginsPath}
+  '';
+
+  meta = with lib; {
+    homepage = https://pwmt.org/projects/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;[ garbas smironov ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/zk-shell/default.nix b/nixpkgs/pkgs/applications/misc/zk-shell/default.nix
new file mode 100644
index 000000000000..ec8deadf9f54
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/misc/zola/default.nix b/nixpkgs/pkgs/applications/misc/zola/default.nix
new file mode 100644
index 000000000000..bdf6d0da1457
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/zola/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, rustPlatform, cmake, pkgconfig, openssl, CoreServices, cf-private }:
+
+rustPlatform.buildRustPackage rec {
+  name = "zola-${version}";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "getzola";
+    repo = "zola";
+    rev = "v${version}";
+    sha256 = "0as8nrzw9zz10w4xxiibgz8ylghc879b2pwaxnw8sjbji2d9qv63";
+  };
+
+  cargoSha256 = "0a14hq8d3xjr6yfg5qn5r7npqivm816f1p53bbm826igvpc9hsxa";
+
+  nativeBuildInputs = [ cmake pkgconfig openssl ];
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices cf-private ];
+
+  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 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/zscroll/default.nix b/nixpkgs/pkgs/applications/misc/zscroll/default.nix
new file mode 100644
index 000000000000..18876cf355b8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix b/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix
new file mode 100644
index 000000000000..05dee5b6154c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/apache-directory-studio/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, xorg, jre, makeWrapper, makeDesktopItem }:
+
+let
+  rpath = stdenv.lib.makeLibraryPath (with xorg; [
+    libXtst
+  ]);
+
+  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";
+  };
+
+in
+stdenv.mkDerivation rec {
+  name = "apache-directory-studio-${version}";
+  version = "2.0.0.v20170904-M13";
+
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchurl {
+        url = "mirror://apache/directory/studio/${version}/ApacheDirectoryStudio-${version}-linux.gtk.x86_64.tar.gz";
+        sha256 = "1jfnm6m0ijk31r30hhrxxnizk742dm317iny041p29v897rma7aq";
+      }
+    else if stdenv.hostPlatform.system == "i686-linux" then
+      fetchurl {
+        url = "mirror://apache/directory/studio/${version}/ApacheDirectoryStudio-${version}-linux.gtk.x86.tar.gz";
+        sha256 = "1bxmgram42qyhrqkgp5k8770f5mjjdd4c6xl4gj09smiycm1qa4n";
+      }
+    else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+  buildInputs = [ makeWrapper ];
+
+  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 : "${jre}/bin" \
+        --prefix LD_LIBRARY_PATH : "${rpath}"
+    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/nixpkgs/pkgs/applications/networking/bittorrentsync/1.4.x.nix b/nixpkgs/pkgs/applications/networking/bittorrentsync/1.4.x.nix
new file mode 100644
index 000000000000..9d57cdaaf20d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/bittorrentsync/1.4.x.nix
@@ -0,0 +1,9 @@
+{ stdenv, fetchurl, ... } @ args:
+
+import ./generic.nix (args // {
+  version = "1.4.111";
+  sha256s = {
+    "x86_64-linux" = "0bw3ds3ndcnkry5mpv645z2bfi5z387bh0f7b35blxq1yv93r83f";
+    "i686-linux"   = "1qwaj7l7nsd4afx7ksb4b1c22mki9qa40803v9x1a8bhbdfhkczk";
+  };
+})
diff --git a/nixpkgs/pkgs/applications/networking/bittorrentsync/2.0.x.nix b/nixpkgs/pkgs/applications/networking/bittorrentsync/2.0.x.nix
new file mode 100644
index 000000000000..d2db3eec26e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/bittorrentsync/2.0.x.nix
@@ -0,0 +1,9 @@
+{ stdenv, fetchurl, ... } @ args:
+
+import ./generic.nix (args // {
+  version = "2.3.8";
+  sha256s = {
+    "x86_64-linux" = "02n5s561cz3mprg682mrbmh3qai42dh64jgi05rqy9s6wgbn66ly";
+    "i686-linux"   = "118qrnxc7gvm30rsz0xfx6dlxmrr0dk5ajrvszhy06ww7xvqhzji";
+  };
+})
diff --git a/nixpkgs/pkgs/applications/networking/bittorrentsync/generic.nix b/nixpkgs/pkgs/applications/networking/bittorrentsync/generic.nix
new file mode 100644
index 000000000000..1075aea8db3a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/bittorrentsync/generic.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, version, sha256s, ... }:
+
+let
+  arch = {
+    "x86_64-linux" = "x64";
+    "i686-linux" = "i386";
+  }.${stdenv.hostPlatform.system} or throwSystem;
+  libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.libc ];
+  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
+in
+
+stdenv.mkDerivation rec {
+  name = "btsync-${version}";
+  inherit version;
+
+  src = fetchurl {
+    # annoyingly, downloads for 1.4 and 2.3 do not follow the same URL layout; this is
+    # a simple work-around, in place of overriding the url in the caller.
+    urls = [
+      "https://download-cdn.getsync.com/${version}/linux-${arch}/BitTorrent-Sync_${arch}.tar.gz"
+      "http://syncapp.bittorrent.com/${version}/btsync_${arch}-${version}.tar.gz"
+    ];
+    sha256 = sha256s.${stdenv.hostPlatform.system} or throwSystem;
+  };
+
+  dontStrip = true; # Don't strip, otherwise patching the rpaths breaks
+  sourceRoot = ".";
+
+  installPhase = ''
+    install -D btsync "$out/bin/btsync"
+    patchelf --interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" --set-rpath ${libPath} "$out/bin/btsync"
+  '';
+
+  meta = {
+    description = "Automatically sync files via secure, distributed technology";
+    homepage    = https://www.getsync.com/;
+    license     = stdenv.lib.licenses.unfreeRedistributable;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ domenkozar thoughtpolice cwoac ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/arora/default.nix b/nixpkgs/pkgs/applications/networking/browsers/arora/default.nix
new file mode 100644
index 000000000000..f9d5f01be201
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/arora/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, qt4, qmake4Hook }:
+
+stdenv.mkDerivation rec {
+  name = "arora-${version}";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "Arora";
+    repo = "arora";
+    rev = version;
+    sha256 = "0wmivgx3mw51rghi6q8fgivpkqc98z2mqmllf7c98ln0wd8rkf3c";
+  };
+
+  buildInputs = [ qt4 ];
+  nativeBuildInputs = [ qmake4Hook ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    platforms = qt4.meta.platforms;
+    maintainers = [ maintainers.phreedom ];
+    description = "A cross-platform Qt4 Webkit browser";
+    homepage = https://github.com/Arora/arora;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
new file mode 100644
index 000000000000..ec5b34da0a60
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
@@ -0,0 +1,150 @@
+{ stdenv, lib, fetchurl
+, dpkg
+, alsaLib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, dbus
+, expat
+, fontconfig
+, freetype
+, gdk_pixbuf
+, glib
+, gnome2
+, gnome3
+, gtk3
+, libuuid
+, libX11
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXrandr
+, libXrender
+, libXScrnSaver
+, libXtst
+, 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
+    libX11
+    libXScrnSaver
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXtst
+    libuuid
+    nspr
+    nss
+    pango
+    udev
+    xdg_utils
+    xorg.libxcb
+    zlib
+];
+
+
+in stdenv.mkDerivation rec {
+    pname = "brave";
+    version = "0.57.18";
+
+    src = fetchurl {
+        url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
+        sha256 = "0p5j3kkkalnyi6brgd9vfv43is00g2b6p1y3hajjr2vbm9iwpzg7";
+    };
+
+    dontConfigure = true;
+    dontBuild = true;
+    dontPatchELF = true;
+
+    nativeBuildInputs = [ dpkg wrapGAppsHook ];
+
+    buildInputs = [ glib gnome3.gsettings_desktop_schemas gnome3.defaultIconTheme ];
+
+    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 $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";
+        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 = [ maintainers.uskudnik ];
+        platforms = [ "x86_64-linux" ];
+    };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
new file mode 100644
index 000000000000..a910f1d14bdf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, buildGoPackage, fetchurl, fetchFromGitHub, go-bindata }:
+
+let
+  version = "1.4.13";
+
+  # 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 = "11477z7mva8lwfxsrfxckvgqkxrjhc80czra8cqhpakf0fih1a4g";
+  };
+
+in buildGoPackage rec {
+  inherit version;
+
+  name = "browsh-${version}";
+
+  goPackagePath = "browsh";
+
+  src = fetchFromGitHub {
+    owner = "browsh-org";
+    repo = "browsh";
+    rev = "v${version}";
+    sha256 = "0lvb20zziknlbgy509ccpvlc21sqjc53xar26blmb6sdl6yqkj0w";
+  };
+
+  buildInputs = [ 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/9abc3aaa3f575ca6ec9a483408d9fdfcf76300fa/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/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix
new file mode 100644
index 000000000000..e0eb6600c9be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/deps.nix
@@ -0,0 +1,272 @@
+[
+  {
+    goPackagePath  = "github.com/NYTimes/gziphandler";
+    fetch = {
+      type = "git";
+      url = "https://github.com/NYTimes/gziphandler";
+      rev =  "5032c8878b9dd46cfe8c625c0d9b9f258a560ee8";
+      sha256 = "1avn8xb78xmmc61fjycpc81yrkfi42fna8zgzdqba6v7g8gq8a3x";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "8991bc29aa16c548c550c7ff78260e27b9ab7c73";
+      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+    };
+  }
+  {
+    goPackagePath  = "github.com/hpcloud/tail";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hpcloud/tail";
+      rev =  "a1dbeea552b7c8df4b542c66073e393de198a800";
+      sha256 = "0nssmn8j0yavs8099gwb69qpd1k9yd2z28bii6i4y61v0grb6bc2";
+    };
+  }
+  {
+    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 =  "b23993cbb6353f0e6aa98d0ee318a34728f628b9";
+      sha256 = "0d7irqpx2fa9vkxgkhf04yiwazsm10fxh0yk86x5crflhph5fv8a";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gdamore/tcell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gdamore/tcell";
+      rev =  "de7e78efa4a71b3f36c7154989c529dbdf9ae623";
+      sha256 = "1ly3gqkziw01cb7h64k0wc4myzfcsr9hl7xznxd8k2yqzqvmhljz";
+    };
+  }
+  {
+    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 =  "5ed622c449da6d44c3c8329331ff47a9e5844f71";
+      sha256 = "1yhcwraijdk6lx7f6m9p6i1b3zfh2hq80l1nfpnckfn10gh72aw7";
+    };
+  }
+  {
+    goPackagePath  = "github.com/hashicorp/hcl";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/hcl";
+      rev =  "ef8a98b0bbce4a65b5aa4c368430a80ddc533168";
+      sha256 = "1qalfsc31fra7hcw2lc3s20aj7al62fq3j5fn5kga3mg99b82nyr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/lucasb-eyer/go-colorful";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lucasb-eyer/go-colorful";
+      rev =  "c7842319cf3ac2eff253e8b3ebe15fcc56b6414a";
+      sha256 = "00v2x6qchhi6vv09w29kcyr9i0kq4n4daaj3vk1c4nfj2z7xx5hc";
+    };
+  }
+  {
+    goPackagePath  = "github.com/magiconair/properties";
+    fetch = {
+      type = "git";
+      url = "https://github.com/magiconair/properties";
+      rev =  "c2353362d570a7bfa228149c62842019201cfb71";
+      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev =  "ce7b0b5c7b45a81508558cd1dba6bb1e4ddb51bb";
+      sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/mapstructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/mapstructure";
+      rev =  "f15292f7a699fcc1a38a80977f80a046874ba8ac";
+      sha256 = "0zm3nhdvmj3f8q0vg2sjfw1sm3pwsw0ggz501awz95w99664a8al";
+    };
+  }
+  {
+    goPackagePath  = "github.com/onsi/ginkgo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/onsi/ginkgo";
+      rev =  "3774a09d95489ccaa16032e0770d08ea77ba6184";
+      sha256 = "0x0gc89vgq38xhgmi2h22bhr73cf2gmk42g89nz89k8dgg9hhr25";
+    };
+  }
+  {
+    goPackagePath  = "github.com/onsi/gomega";
+    fetch = {
+      type = "git";
+      url = "https://github.com/onsi/gomega";
+      rev =  "b6ea1ea48f981d0f615a154a45eabb9dd466556d";
+      sha256 = "14179j7pj1h2vx60i68x2m6650ldji4xhanhc702i8a8iy7b49ja";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pelletier/go-toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pelletier/go-toml";
+      rev =  "c2dbbc24a97911339e01bda0b8cabdbd8f13b602";
+      sha256 = "0v1dsqnk5zmn6ir8jgxijx14s47jvijlqfz3aq435snfrgybd5rz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "816c9085562cd7ee03e7f8188a1cfd942858cded";
+      sha256 = "1ws5crb7c70wdicavl6qr4g03nn6m92zd6wwp9n2ygz5c8rmxh8k";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    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 =  "787d034dfe70e44075ccc060d346146ef53270ad";
+      sha256 = "0138rjiacl71h7kvhzinviwvy6qa2m6rflpv9lgqv15hnjvhwvg1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/cast";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cast";
+      rev =  "8965335b8c7107321228e3e3702cab9832751bac";
+      sha256 = "177bk7lq40jbgv9p9r80aydpaccfk8ja3a7jjhfwiwk9r1pa4rr2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/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 =  "3ebe029320b2676d667ae88da602a5f854788a8a";
+      sha256 = "11yxs0wqy70wj106fkz8r923yg4ncnc2mbw33v48zmlg4a1rasgp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/viper";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/viper";
+      rev =  "d493c32b69b8c6f2377bf30bc4d70267ffbc0793";
+      sha256 = "1jq46790rkjn6c1887wz98dqjk792ij6wnrifzk1maglmfb061hh";
+    };
+  }
+  {
+    goPackagePath  = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev =  "f35b8ab0b5a2cef36673838d662e249dd9c94686";
+      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+    };
+  }
+  {
+    goPackagePath  = "github.com/ulule/limiter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ulule/limiter";
+      rev =  "af07f8759cbc68c744a15ffbfdabf35f7aff5e3b";
+      sha256 = "1c68vz9r0442lkj206l6k03nssxx3ys8ddg7d2p2brdanfbprzrq";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "a0f8a16cb08c06df97cbdf9c47f4731ba548c33c";
+      sha256 = "1pnvrhi2minkn9mfa9p70b5jnixx8il5yqp08ad1w7kl34c21ma2";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "bd9dbc187b6e1dacfdd2722a87e83093c2d7bd6e";
+      sha256 = "0zj8s3q2fznmap1nfr8pv4hz8xqixmkyhr6slq4baf8rvcb4mvbj";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev =  "0605a8320aceb4207a5fb3521281e17ec2075476";
+      sha256 = "1pak7q9ivwxh5bnjk00pkrs9ri9vmbyccvza56fl6138w397h49j";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
new file mode 100644
index 000000000000..f31ff05a42bb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -0,0 +1,56 @@
+{ stdenv, mkChromiumDerivation, channel }:
+
+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/"*.pak "$buildPath/"*.bin "$libExecPath/"
+    cp -v "$buildPath/icudtl.dat" "$libExecPath/"
+    cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
+    cp -v "$buildPath/chrome" "$libExecPath/$packageName"
+
+    if [ -e "$buildPath/libwidevinecdmadapter.so" ]; then
+      cp -v "$buildPath/libwidevinecdmadapter.so" \
+            "$libExecPath/libwidevinecdmadapter.so"
+    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
+  '';
+
+  passthru = { inherit sandboxExecutableName; };
+
+  requiredSystemFeatures = [ "big-parallel" ];
+
+  meta = {
+    description = "An open source web browser from Google";
+    homepage = http://www.chromium.org/;
+    maintainers = with maintainers; [ chaoflow bendlas ];
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
+    timeout = 172800; # 48 hours
+  };
+})
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
new file mode 100644
index 000000000000..bcf6df7417f7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
@@ -0,0 +1,296 @@
+{ stdenv, llvmPackages, gn, ninja, which, nodejs, fetchurl, fetchpatch, gnutar
+
+# default dependencies
+, bzip2, flac, speex, libopus
+, libevent, expat, libjpeg, snappy
+, libpng, libcap
+, xdg_utils, yasm, minizip, libwebp
+, libusb1, pciutils, nss, re2, zlib
+
+, python2Packages, perl, pkgconfig
+, nspr, systemd, kerberos
+, utillinux, alsaLib
+, bison, gperf
+, glib, gtk2, gtk3, dbus-glib
+, libXScrnSaver, libXcursor, libXtst, libGLU_combined
+, protobuf, speechd, libXdamage, cups
+, ffmpeg, libxslt, libxml2, at-spi2-core
+, jdk
+
+# optional dependencies
+, libgcrypt ? null # gnomeSupport || cupsSupport
+
+# package customization
+, enableNaCl ? false
+, enableWideVine ? false
+, gnomeSupport ? false, gnome ? null
+, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
+, proprietaryCodecs ? true
+, cupsSupport ? true
+, pulseSupport ? false, libpulseaudio ? null
+
+, upstream-info
+}:
+
+buildFun:
+
+with stdenv.lib;
+
+# see http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/chromium.html
+
+let
+  # 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://chromium.googlesource.com/chromium/src/+/master/tools/gn/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));
+
+  gnSystemLibraries = [
+    "flac" "libwebp" "libxslt" "yasm" "opus" "snappy" "libpng" "zlib"
+    # "libjpeg" # fails with multiple undefined references to chromium_jpeg_*
+    # "re2" # fails with linker errors
+    # "ffmpeg" # https://crbug.com/731766
+    # "harfbuzz-ng" # in versions over 63 harfbuzz and freetype are being built together
+                    # so we can't build with one from system and other from source
+  ];
+
+  opusWithCustomModes = libopus.override {
+    withCustomModes = true;
+  };
+
+  defaultDependencies = [
+    bzip2 flac speex opusWithCustomModes
+    libevent expat libjpeg snappy
+    libpng libcap
+    xdg_utils yasm minizip libwebp
+    libusb1 re2 zlib
+    ffmpeg libxslt libxml2
+    # harfbuzz # in versions over 63 harfbuzz and freetype are being built together
+               # so we can't build with one from system and other from source
+  ];
+
+  # 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 = (import ./upstream-info.nix).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}-${version}";
+    inherit (upstream-info) version;
+    inherit packageName buildType buildPath;
+
+    src = upstream-info.main;
+
+    nativeBuildInputs = [
+      ninja which python2Packages.python perl pkgconfig
+      python2Packages.ply python2Packages.jinja2 nodejs
+      gnutar
+    ];
+
+    buildInputs = defaultDependencies ++ [
+      nspr nss systemd
+      utillinux alsaLib
+      bison gperf kerberos
+      glib gtk2 gtk3 dbus-glib
+      libXScrnSaver libXcursor libXtst libGLU_combined
+      pciutils protobuf speechd libXdamage at-spi2-core
+    ] ++ optional gnomeKeyringSupport libgnome-keyring3
+      ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
+      ++ optionals cupsSupport [ libgcrypt cups ]
+      ++ optional pulseSupport libpulseaudio
+      ++ optional (versionAtLeast version "72") jdk.jre;
+
+    patches = optional enableWideVine ./patches/widevine.patch ++ [
+      ./patches/nix_plugin_paths_68.patch
+      ./patches/remove-webp-include-69.patch
+
+      # Unfortunately, chromium regularly breaks on major updates and
+      # then needs various patches backported in order to be compiled with GCC.
+      # Good sources for such patches and other hints:
+      # - https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/
+      # - https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/chromium
+      # - https://github.com/chromium/chromium/search?q=GCC&s=committer-date&type=Commits
+      #
+      # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
+    ] ++ optionals (!stdenv.cc.isClang && (versionRange "71" "72")) [
+      ( githubPatch "65be571f6ac2f7942b4df9e50b24da517f829eec" "1sqv0aba0mpdi4x4f21zdkxz2cf8ji55ffgbfcr88c5gcg0qn2jh" )
+    ] ++ optional stdenv.isAarch64
+           (if (versionOlder version "71") then
+              fetchpatch {
+                url       = https://raw.githubusercontent.com/OSSystems/meta-browser/e4a667deaaf9a26a3a1aeb355770d1f29da549ad/recipes-browser/chromium/files/aarch64-skia-build-fix.patch;
+                sha256    = "0dkchqair8cy2f5a5p5vi24r9b4d28pgn2bfvm1568lypbjw6iab";
+              }
+            else
+              fetchpatch {
+                url       = https://raw.githubusercontent.com/OSSystems/meta-browser/e4a667deaaf9a26a3a1aeb355770d1f29da549ad/recipes-browser/chromium/files/aarch64-skia-build-fix.patch;
+                postFetch = "substituteInPlace $out --replace __aarch64__ SK_CPU_ARM64";
+                sha256    = "018fbdzyw9rvia8m0qkk5gv8q8gl7x34rrjbn7mi1fgxdsayn22s";
+              }
+            );
+
+    postPatch = ''
+      # 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());'
+
+      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\)!"${systemd.lib}/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
+
+      sed -i -re 's/([^:])\<(isnan *\()/\1std::\2/g' \
+        chrome/browser/ui/webui/engagement/site_engagement_ui.cc
+
+      sed -i -e '/#include/ {
+        i #include <algorithm>
+        :l; n; bl
+      }' gpu/config/gpu_control_list.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 $(which node) third_party/node/linux/node-linux-x64/bin/node
+
+      # remove unused third-party
+      # in third_party/crashpad third_party/zlib contains just a header-adapter
+      for lib in ${toString gnSystemLibraries}; do
+        find -type f -path "*third_party/$lib/*"     \
+            \! -path "*third_party/crashpad/crashpad/third_party/zlib/*"  \
+            \! -path "*third_party/$lib/chromium/*"  \
+            \! -path "*third_party/$lib/google/*"    \
+            \! -path "*base/third_party/icu/*"       \
+            \! -path "*base/third_party/libevent/*"  \
+            \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+            -delete
+      done
+    '' + optionalString stdenv.isAarch64 ''
+      substituteInPlace build/toolchain/linux/BUILD.gn \
+        --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
+    '' + optionalString stdenv.cc.isClang ''
+      mkdir -p third_party/llvm-build/Release+Asserts/bin
+      ln -s ${stdenv.cc}/bin/clang              third_party/llvm-build/Release+Asserts/bin/clang
+      ln -s ${stdenv.cc}/bin/clang++            third_party/llvm-build/Release+Asserts/bin/clang++
+      ln -s ${llvmPackages.llvm}/bin/llvm-ar    third_party/llvm-build/Release+Asserts/bin/llvm-ar
+    '';
+
+    gnFlags = mkGnFlags ({
+      linux_use_bundled_binutils = false;
+      use_lld = false;
+      use_gold = true;
+      gold_path = "${stdenv.cc}/bin";
+      is_debug = false;
+      # at least 2X compilation speedup
+      use_jumbo_build = true;
+
+      proprietary_codecs = false;
+      use_sysroot = false;
+      use_gnome_keyring = gnomeKeyringSupport;
+      use_gio = gnomeSupport;
+      enable_nacl = enableNaCl;
+      enable_widevine = enableWideVine;
+      use_cups = cupsSupport;
+
+      treat_warnings_as_errors = false;
+      is_clang = stdenv.cc.isClang;
+      clang_use_chrome_plugins = false;
+      remove_webcore_debug_symbols = true;
+      enable_swiftshader = false;
+      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;
+    } // (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}
+      ${gn}/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
+    '';
+
+    buildPhase = let
+      # Build paralelism: on Hydra the build was frequently running into memory
+      # exhaustion, and even other users might be running into similar issues.
+      # -j is halved to avoid memory problems, and -l is slightly increased
+      # so that the build gets slight preference before others
+      # (it will often be on "critical path" and at risk of timing out)
+      buildCommand = target: ''
+        ninja -C "${buildPath}"  \
+          -j$(( ($NIX_BUILD_CORES+1) / 2 )) -l$(( $NIX_BUILD_CORES+1 )) \
+          "${target}"
+        (
+          source chrome/installer/linux/common/installer.include
+          PACKAGE=$packageName
+          MENUNAME="Chromium"
+          process_template chrome/app/resources/manpage.1.in "${buildPath}/chrome.1"
+        )
+      '' + optionalString (target == "mksnapshot" || target == "chrome") ''
+        paxmark m "${buildPath}/${target}"
+      '';
+      targets = extraAttrs.buildTargets or [];
+      commands = map buildCommand targets;
+    in concatStringsSep "\n" commands;
+  };
+
+# Remove some extraAttrs we supplied to the base attributes already.
+in stdenv.mkDerivation (base // removeAttrs extraAttrs [
+  "name" "gnFlags" "buildTargets"
+])
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
new file mode 100644
index 000000000000..88b0a89db4b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
@@ -0,0 +1,139 @@
+{ newScope, stdenv, llvmPackages, makeWrapper, makeDesktopItem, ed
+, glib, gtk3, gnome3, gsettings-desktop-schemas
+
+# package customization
+, channel ? "stable"
+, enableNaCl ? false
+, gnomeSupport ? false, gnome ? null
+, gnomeKeyringSupport ? false
+, proprietaryCodecs ? true
+, enablePepperFlash ? false
+, enableWideVine ? false
+, cupsSupport ? true
+, pulseSupport ? false
+, commandLineArgs ? ""
+}:
+
+assert stdenv.cc.isClang -> (stdenv == llvmPackages.stdenv);
+let
+  callPackage = newScope chromium;
+
+  chromium = {
+    inherit stdenv llvmPackages;
+
+    upstream-info = (callPackage ./update.nix {}).getChannel channel;
+
+    mkChromiumDerivation = callPackage ./common.nix {
+      inherit enableNaCl gnomeSupport gnome
+              gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport
+              enableWideVine;
+    };
+
+    browser = callPackage ./browser.nix { inherit channel; };
+
+    plugins = callPackage ./plugins.nix {
+      inherit enablePepperFlash enableWideVine;
+    };
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "chromium-browser";
+    exec = "chromium %U";
+    icon = "chromium";
+    comment = "An open source web browser from Google";
+    desktopName = "Chromium";
+    genericName = "Web browser";
+    mimeType = stdenv.lib.concatStringsSep ";" [
+      "text/html"
+      "text/xml"
+      "application/xhtml+xml"
+      "x-scheme-handler/http"
+      "x-scheme-handler/https"
+      "x-scheme-handler/ftp"
+      "x-scheme-handler/mailto"
+      "x-scheme-handler/webcal"
+      "x-scheme-handler/about"
+      "x-scheme-handler/unknown"
+    ];
+    categories = "Network;WebBrowser";
+    extraEntries = ''
+      StartupWMClass=chromium-browser
+    '';
+  };
+
+  suffix = if channel != "stable" then "-" + channel else "";
+
+  sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
+
+  version = chromium.browser.version;
+
+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.defaultIconTheme
+  ];
+
+  outputs = ["out" "sandbox"];
+
+  buildCommand = let
+    browserBinary = "${chromium.browser}/libexec/chromium/chromium";
+    getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
+  in with stdenv.lib; ''
+    mkdir -p "$out/bin"
+
+    eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
+      --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \
+      ${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
+
+    # libredirect causes chromium to deadlock on startup
+    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
+
+    export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
+
+    .
+    w
+    EOF
+
+    ln -sv "${chromium.browser.sandbox}" "$sandbox"
+
+    ln -s "$out/bin/chromium" "$out/bin/chromium-browser"
+
+    mkdir -p "$out/share/applications"
+    for f in '${chromium.browser}'/share/*; do # hello emacs */
+      ln -s -t "$out/share/" "$f"
+    done
+    cp -v "${desktopItem}/share/applications/"* "$out/share/applications"
+  '';
+
+  inherit (chromium.browser) packageName;
+  meta = chromium.browser.meta // {
+    broken = if enableWideVine then
+          builtins.trace "WARNING: WideVine is not functional, please only use for testing"
+             true
+        else false;
+  };
+
+  passthru = {
+    inherit (chromium) upstream-info browser;
+    mkDerivation = chromium.mkChromiumDerivation;
+    inherit sandboxExecutableName;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch
new file mode 100644
index 000000000000..da6a4c92b460
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch
@@ -0,0 +1,61 @@
+diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
+index f4e119d..d9775bd 100644
+--- a/chrome/common/chrome_paths.cc
++++ b/chrome/common/chrome_paths.cc
+@@ -68,21 +68,14 @@ static base::LazyInstance<base::FilePath>
+     g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER;
+ 
+ // Gets the path for internal plugins.
+-bool GetInternalPluginsDirectory(base::FilePath* result) {
+-#if defined(OS_MACOSX)
+-  // If called from Chrome, get internal plugins from a subdirectory of the
+-  // framework.
+-  if (base::mac::AmIBundled()) {
+-    *result = chrome::GetFrameworkBundlePath();
+-    DCHECK(!result->empty());
+-    *result = result->Append("Internet Plug-Ins");
+-    return true;
+-  }
+-  // In tests, just look in the module directory (below).
+-#endif
+-
+-  // The rest of the world expects plugins in the module directory.
+-  return base::PathService::Get(base::DIR_MODULE, result);
++bool GetInternalPluginsDirectory(base::FilePath* result,
++                                 const std::string& ident) {
++  std::string full_env = std::string("NIX_CHROMIUM_PLUGIN_PATH_") + ident;
++  const char* value = getenv(full_env.c_str());
++  if (value == NULL)
++      return base::PathService::Get(base::DIR_MODULE, result);
++  else
++      *result = base::FilePath(value);
+ }
+ 
+ // Gets the path for bundled implementations of components. Note that these
+@@ -272,7 +265,7 @@ bool PathProvider(int key, base::FilePath* result) {
+       create_dir = true;
+       break;
+     case chrome::DIR_INTERNAL_PLUGINS:
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "ALL"))
+         return false;
+       break;
+     case chrome::DIR_COMPONENTS:
+@@ -280,7 +273,7 @@ bool PathProvider(int key, base::FilePath* result) {
+         return false;
+       break;
+     case chrome::DIR_PEPPER_FLASH_PLUGIN:
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH"))
+         return false;
+       cur = cur.Append(kPepperFlashBaseDirectory);
+       break;
+@@ -358,7 +351,7 @@ bool PathProvider(int key, base::FilePath* result) {
+         cur = cur.DirName();
+       }
+ #else
+-      if (!GetInternalPluginsDirectory(&cur))
++      if (!GetInternalPluginsDirectory(&cur, "PNACL"))
+         return false;
+ #endif
+       cur = cur.Append(FILE_PATH_LITERAL("pnacl"));
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/remove-webp-include-69.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/remove-webp-include-69.patch
new file mode 100644
index 000000000000..07572cf7ee94
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/remove-webp-include-69.patch
@@ -0,0 +1,11 @@
+--- a/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
++++ b/third_party/blink/renderer/platform/image-encoders/image_encoder.cc
+@@ -13,7 +13,7 @@
+
+ #include "jpeglib.h"  // for JPEG_MAX_DIMENSION
+
+-#include "third_party/libwebp/src/webp/encode.h"  // for WEBP_MAX_DIMENSION
++#define WEBP_MAX_DIMENSION 16383
+
+ namespace blink {
+
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine.patch
new file mode 100644
index 000000000000..90a13928e3bd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/widevine.patch
@@ -0,0 +1,16 @@
+Minimal WideVine patch from Gentoo:
+
+https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r1.patch
+
+BTS: https://bugs.gentoo.org/show_bug.cgi?id=547630
+
+--- a/third_party/widevine/cdm/stub/widevine_cdm_version.h
++++ b/third_party/widevine/cdm/stub/widevine_cdm_version.h
+@@ -10,6 +10,7 @@
+ 
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"
+ 
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
+ #define WIDEVINE_CDM_AVAILABLE
+ 
+ #endif  // WIDEVINE_CDM_VERSION_H_
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
new file mode 100644
index 000000000000..54e7216544e4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -0,0 +1,145 @@
+{ stdenv, gcc
+, jshon
+, glib
+, nspr
+, nss
+, fetchzip
+, patchelfUnstable
+, enablePepperFlash ? false
+, enableWideVine ? 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"
+  '';
+
+  widevine = stdenv.mkDerivation {
+    name = "chromium-binary-plugin-widevine";
+
+    src = upstream-info.binary;
+
+    nativeBuildInputs = [ patchelfUnstable ];
+
+    phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
+
+    unpackCmd = let
+      chan = if upstream-info.channel == "dev"    then "chrome-unstable"
+        else if upstream-info.channel == "stable" then "chrome"
+        else "chrome-${upstream-info.channel}";
+    in ''
+      mkdir -p plugins
+      ar p "$src" data.tar.xz | tar xJ -C plugins --strip-components=4 \
+        ./opt/google/${chan}/libwidevinecdm.so \
+        ./opt/google/${chan}/libwidevinecdmadapter.so
+    '';
+
+    doCheck = true;
+    checkPhase = ''
+      ! find -iname '*.so' -exec ldd {} + | grep 'not found'
+    '';
+
+    PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ];
+
+    patchPhase = ''
+      chmod +x libwidevinecdm.so libwidevinecdmadapter.so
+      patchelf --set-rpath "$PATCH_RPATH" libwidevinecdm.so
+      patchelf --set-rpath "$out/lib:$PATCH_RPATH" libwidevinecdmadapter.so
+    '';
+
+    installPhase = let
+      wvName = "Widevine Content Decryption Module";
+      wvDescription = "Playback of encrypted HTML audio/video content";
+      wvMimeTypes = "application/x-ppapi-widevine-cdm";
+      wvModule = "@out@/lib/libwidevinecdmadapter.so";
+      wvInfo = "#${wvName}#${wvDescription};${wvMimeTypes}";
+    in ''
+      install -vD libwidevinecdm.so \
+        "$out/lib/libwidevinecdm.so"
+      install -vD libwidevinecdmadapter.so \
+        "$out/lib/libwidevinecdmadapter.so"
+
+      ${mkPluginInfo {
+        flags = [ "--register-pepper-plugins=${wvModule}${wvInfo}" ];
+        envVars.NIX_CHROMIUM_PLUGIN_PATH_WIDEVINE = "@out@/lib";
+      }}
+    '';
+    
+    meta.platforms = platforms.x86_64;
+  };
+
+  flash = stdenv.mkDerivation rec {
+    name = "flashplayer-ppapi-${version}";
+    version = "32.0.0.101";
+
+    src = fetchzip {
+      url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
+      sha256 = "1bmmjraqzdz03jzbgs1l932gka1zhiyiis06r4yi4f93mdy31w72";
+      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.platforms = platforms.x86_64;
+  };
+
+in {
+  enabled = optional enableWideVine widevine
+         ++ optional enablePepperFlash flash;
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix
new file mode 100644
index 000000000000..277ad29abe29
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix
@@ -0,0 +1,237 @@
+let maybePkgs = import ../../../../../. {}; in
+
+{ stdenv     ? maybePkgs.stdenv
+, runCommand ? maybePkgs.runCommand
+, fetchurl   ? maybePkgs.fetchurl
+, writeText  ? maybePkgs.writeText
+, curl       ? maybePkgs.curl
+, cacert     ? maybePkgs.cacert
+, nix        ? maybePkgs.nix
+}:
+
+let
+  inherit (stdenv) lib;
+
+  sources = if builtins.pathExists ./upstream-info.nix
+            then import ./upstream-info.nix
+            else {};
+
+  bucketURL = "https://commondatastorage.googleapis.com/"
+            + "chromium-browser-official";
+
+  mkVerURL = version: "${bucketURL}/chromium-${version}.tar.xz";
+
+  debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g";
+
+  getDebURL = channelName: version: arch: mirror: let
+    packageSuffix = if channelName == "dev" then "unstable" else channelName;
+    packageName = "google-chrome-${packageSuffix}";
+  in "${mirror}/${packageName}/${packageName}_${version}-1_${arch}.deb";
+
+  # Untrusted mirrors, don't try to update from them!
+  debMirrors = [
+    "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"
+  ];
+
+in rec {
+  getChannel = channel: let
+    chanAttrs = builtins.getAttr channel sources;
+  in {
+    inherit channel;
+    inherit (chanAttrs) version;
+
+    main = fetchurl {
+      url = mkVerURL chanAttrs.version;
+      inherit (chanAttrs) sha256;
+    };
+
+    binary = fetchurl (let
+      mkUrls = arch: let
+        mkURLForMirror = getDebURL channel chanAttrs.version arch;
+      in map mkURLForMirror ([ debURL ] ++ debMirrors);
+    in if stdenv.is64bit && chanAttrs ? sha256bin64 then {
+      urls = mkUrls "amd64";
+      sha256 = chanAttrs.sha256bin64;
+    } else if !stdenv.is64bit && chanAttrs ? sha256bin32 then {
+      urls = mkUrls "i386";
+      sha256 = chanAttrs.sha256bin32;
+    } else throw "No Chrome plugins are available for your architecture.");
+  };
+
+  update = let
+    csv2nix = name: src: import (runCommand "${name}.nix" {
+      src = builtins.fetchurl src;
+    } ''
+      esc() { echo "\"$(echo "$1" | sed -e 's/"\\$/\\&/')\""; } # ohai emacs "
+      IFS=, read -r -a headings <<< "$(head -n1 "$src")"
+      echo "[" > "$out"
+      tail -n +2 "$src" | while IFS=, read -r -a line; do
+        echo "  {"
+        for idx in "''${!headings[@]}"; do
+          echo "    $(esc "''${headings[idx]}") = $(esc ''${line[$idx]});"
+        done
+        echo "  }"
+      done >> "$out"
+      echo "]" >> "$out"
+    '');
+
+    channels = lib.fold lib.recursiveUpdate {} (map (attrs: {
+      ${attrs.os}.${attrs.channel} = attrs // {
+        history = let
+          drvName = "omahaproxy-${attrs.os}.${attrs.channel}-info";
+          history = csv2nix drvName "http://omahaproxy.appspot.com/history";
+          cond = h: attrs.os == h.os && attrs.channel == h.channel
+                 && lib.versionOlder h.version attrs.current_version;
+          # Note that this is a *reverse* sort!
+          sorter = a: b: lib.versionOlder b.version a.version;
+          sorted = builtins.sort sorter (lib.filter cond history);
+        in map (lib.flip removeAttrs ["os" "channel"]) sorted;
+        version = attrs.current_version;
+      };
+    }) (csv2nix "omahaproxy-info" "http://omahaproxy.appspot.com/all?csv=1"));
+
+    /*
+      XXX: This is essentially the same as:
+
+        builtins.tryEval (builtins.fetchurl url)
+
+      ... except that tryEval on fetchurl isn't working and doesn't catch errors
+      for fetchurl, so we go for a different approach.
+
+      We only have fixed-output derivations that can have networking access, so
+      we abuse MD5 and its weaknesses to forge a fixed-output derivation which
+      is not so fixed, because it emits different contents that have the same
+      MD5 hash.
+
+      Using this method, we can distinguish whether the URL is available or
+      whether it's not based on the actual content.
+
+      So let's use tryEval as soon as it's working with fetchurl in Nix.
+    */
+    tryFetch = url: let
+      mkBin = b: runCommand "binary-blurb" { inherit b; } ''
+        h="$(echo "$b" | sed -e ':r;N;$!br;s/[^ \n][^ \n]/\\x&/g;s/[ \n]//g')"
+        echo -ne "$h" > "$out"
+      '';
+
+      # Both MD5 hash collision examples are from:
+      # https://en.wikipedia.org/wiki/MD5#Collision_vulnerabilities
+      hashCollTrue = mkBin ''
+        d131dd02c5e6eec4 693d9a0698aff95c 2fcab58712467eab 4004583eb8fb7f89
+        55ad340609f4b302 83e488832571415a 085125e8f7cdc99f d91dbdf280373c5b
+        d8823e3156348f5b ae6dacd436c919c6 dd53e2b487da03fd 02396306d248cda0
+        e99f33420f577ee8 ce54b67080a80d1e c69821bcb6a88393 96f9652b6ff72a70
+      '';
+
+      hashCollFalse = mkBin ''
+        d131dd02c5e6eec4 693d9a0698aff95c 2fcab50712467eab 4004583eb8fb7f89
+        55ad340609f4b302 83e4888325f1415a 085125e8f7cdc99f d91dbd7280373c5b
+        d8823e3156348f5b ae6dacd436c919c6 dd53e23487da03fd 02396306d248cda0
+        e99f33420f577ee8 ce54b67080280d1e c69821bcb6a88393 96f965ab6ff72a70
+      '';
+
+      cacheVal = let
+        urlHash = builtins.hashString "sha256" url;
+        timeSlice = builtins.currentTime / 600;
+      in "${urlHash}-${toString timeSlice}";
+
+      successBin = stdenv.mkDerivation {
+        name = "tryfetch-${cacheVal}";
+        inherit url;
+
+        outputHash = "79054025255fb1a26e4bc422aef54eb4";
+        outputHashMode = "flat";
+        outputHashAlgo = "md5";
+
+        nativeBuildInputs = [ curl ];
+        preferLocalBuild = true;
+
+        buildCommand = ''
+          if SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" \
+             curl -s -L -f -I "$url" > /dev/null; then
+            cat "${hashCollTrue}" > "$out"
+          else
+            cat "${hashCollFalse}" > "$out"
+          fi
+        '';
+
+        impureEnvVars = lib.fetchers.proxyImpureEnvVars;
+      };
+
+    in {
+      success = builtins.readFile successBin == builtins.readFile hashCollTrue;
+      value = builtins.fetchurl url;
+    };
+
+    fetchLatest = channel: let
+      result = tryFetch (mkVerURL channel.version);
+    in if result.success then result.value else fetchLatest (channel // {
+      version = if channel.history != []
+                then (lib.head channel.history).version
+                else throw "Unfortunately there's no older version than " +
+                           "${channel.version} available for channel " +
+                           "${channel.channel} on ${channel.os}.";
+      history = lib.tail channel.history;
+    });
+
+    getHash = path: import (runCommand "gethash.nix" {
+      inherit path;
+      nativeBuildInputs = [ nix ];
+    } ''
+      sha256="$(nix-hash --flat --base32 --type sha256 "$path")"
+      echo "\"$sha256\"" > "$out"
+    '');
+
+    isLatest = channel: version: let
+      ourVersion = sources.${channel}.version or null;
+    in if ourVersion == null then false
+       else lib.versionOlder version sources.${channel}.version
+         || version == sources.${channel}.version;
+
+    # We only support GNU/Linux right now.
+    linuxChannels = let
+      genLatest = channelName: channel: let
+        newUpstream = {
+          inherit (channel) version;
+          sha256 = getHash (fetchLatest channel);
+        };
+        keepOld = let
+          oldChannel = sources.${channelName};
+        in {
+          inherit (oldChannel) version sha256;
+        } // lib.optionalAttrs (oldChannel ? sha256bin32) {
+          inherit (oldChannel) sha256bin32;
+        } // lib.optionalAttrs (oldChannel ? sha256bin64) {
+          inherit (oldChannel) sha256bin64;
+        };
+      in if isLatest channelName channel.version then keepOld else newUpstream;
+    in lib.mapAttrs genLatest channels.linux;
+
+    getLinuxFlash = channelName: channel: let
+      inherit (channel) version;
+      fetchArch = arch: tryFetch (getDebURL channelName version arch debURL);
+      packages = lib.genAttrs ["i386" "amd64"] fetchArch;
+      isNew = arch: attr: !(builtins.hasAttr attr channel)
+                       && packages.${arch}.success;
+    in channel // lib.optionalAttrs (isNew "i386" "sha256bin32") {
+      sha256bin32 = getHash (packages.i386.value);
+    } // lib.optionalAttrs (isNew "amd64" "sha256bin64") {
+      sha256bin64 = getHash (packages.amd64.value);
+    };
+
+    newChannels = lib.mapAttrs getLinuxFlash linuxChannels;
+
+    dumpAttrs = indent: attrs: let
+      mkVal = val: if lib.isAttrs val then dumpAttrs (indent + 1) val
+                   else "\"${lib.escape ["$" "\\" "\""] (toString val)}\"";
+      mkIndent = level: lib.concatStrings (builtins.genList (_: "  ") level);
+      mkAttr = key: val: "${mkIndent (indent + 1)}${key} = ${mkVal val};\n";
+      attrLines = lib.mapAttrsToList mkAttr attrs;
+    in "{\n" + (lib.concatStrings attrLines) + (mkIndent indent) + "}";
+  in writeText "chromium-new-upstream-info.nix" ''
+    # This file is autogenerated from update.sh in the same directory.
+    ${dumpAttrs 0 newChannels}
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.sh b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.sh
new file mode 100755
index 000000000000..ea67a62c107a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.sh
@@ -0,0 +1,4 @@
+#!/bin/sh -e
+cd "$(dirname "$0")"
+sp="$(nix-build --builders "" -Q --no-out-link update.nix -A update)"
+cat "$sp" > upstream-info.nix
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
new file mode 100644
index 000000000000..add3cd6a4a7f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -0,0 +1,18 @@
+# This file is autogenerated from update.sh in the same directory.
+{
+  beta = {
+    sha256 = "1xcdbf5yia3xm0kil0gyd1mlj3m902w1px3lzpdqv31mr2lzaz08";
+    sha256bin64 = "0pcbz3201nyl07psdxwphb3z9shqj4crj16f97xclyvjnwpl1jnp";
+    version = "72.0.3626.28";
+  };
+  dev = {
+    sha256 = "1vlpcafg3xx6bpnf74xs6ifqjbpb5bpxp10r55w4784yr57pmhq3";
+    sha256bin64 = "02y974zbxy1gbiv9q8hp7nfl0l5frn35ggmgc44g90pbry48h8rg";
+    version = "73.0.3642.0";
+  };
+  stable = {
+    sha256 = "0icxdg4fvz30jzq0xvl11zlwc9anb3lr9lb8sn1lqxr513isjmhw";
+    sha256bin64 = "07kiqx5bpk54il0ynxl61bs5yscxb470q2bw3sx6cxjbhmnvbcn2";
+    version = "71.0.3578.98";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/conkeror/default.nix b/nixpkgs/pkgs/applications/networking/browsers/conkeror/default.nix
new file mode 100644
index 000000000000..ded2b688815c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/conkeror/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchgit, unzip, firefox-esr, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pkgname = "conkeror";
+  version = "1.0.4";
+  name = "${pkgname}-${version}";
+ 
+  src = fetchgit {
+    url = git://repo.or.cz/conkeror.git;
+    rev = "refs/tags/${version}";
+    sha256 = "10c57wqybp9kcjpkb01wxq0h3vafcdb1g5kb4k8sb2zajg59afv8";
+  };
+
+  buildInputs = [ unzip makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/libexec/conkeror
+    cp -r * $out/libexec/conkeror
+
+    makeWrapper ${firefox-esr}/bin/firefox $out/bin/conkeror \
+      --add-flags "-app $out/libexec/conkeror/application.ini"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A keyboard-oriented, customizable, extensible web browser";
+    longDescription = ''
+      Conkeror is a keyboard-oriented, highly-customizable, highly-extensible
+      web browser based on Mozilla XULRunner, written mainly in JavaScript,
+      and inspired by exceptional software such as Emacs and vi. Conkeror
+      features a sophisticated keyboard system, allowing users to run commands
+      and interact with content in powerful and novel ways. It is
+      self-documenting, featuring a powerful interactive help system.
+    '';
+    homepage = http://conkeror.org/;
+    license = with licenses; [ mpl11 gpl2 lgpl21 ];
+    maintainers = with maintainers; [ astsmtl chaoflow ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix b/nixpkgs/pkgs/applications/networking/browsers/dillo/default.nix
new file mode 100644
index 000000000000..671ab03a2e29
--- /dev/null
+++ b/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";
+  name = "dillo-${version}";
+
+  src = fetchurl {
+    url = "https://www.dillo.org/download/${name}.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/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
new file mode 100644
index 000000000000..b60454c4a42d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, ncurses, xlibsWrapper, bzip2, zlib, openssl
+, gpm
+, # Incompatible licenses, LGPLv3 - GPLv2
+  enableGuile        ? false,                                         guile ? null
+, enablePython       ? false,                                         python ? null
+, enablePerl         ? (stdenv.hostPlatform == stdenv.buildPlatform), perl ? null
+, enableSpidermonkey ? (stdenv.hostPlatform == stdenv.buildPlatform), spidermonkey_1_8_5 ? null
+}:
+
+assert enableGuile -> guile != null;
+assert enablePython -> python != null;
+
+stdenv.mkDerivation rec {
+  name = "elinks-0.12pre6";
+
+  src = fetchurl {
+    url = http://elinks.or.cz/download/elinks-0.12pre6.tar.bz2;
+    sha256 = "1nnakbi01g7yd3zqwprchh5yp45br8086b0kbbpmnclabcvlcdiq";
+  };
+
+  patches = [ ./gc-init.patch ];
+
+  buildInputs = [ ncurses xlibsWrapper bzip2 zlib openssl spidermonkey_1_8_5 gpm ]
+    ++ stdenv.lib.optional enableGuile guile
+    ++ stdenv.lib.optional enablePython python
+    ++ stdenv.lib.optional enablePerl perl
+    ;
+
+  configureFlags = [
+    "--enable-finger"
+    "--enable-html-highlight"
+    "--enable-gopher"
+    "--enable-cgi"
+    "--enable-bittorrent"
+    "--enable-nntp"
+    "--with-openssl=${openssl.dev}"
+    "--with-bzip2=${bzip2.dev}"
+  ] ++ stdenv.lib.optional enableGuile        "--with-guile"
+    ++ stdenv.lib.optional enablePython       "--with-python"
+    ++ stdenv.lib.optional enablePerl         "--with-perl"
+    ++ stdenv.lib.optional enableSpidermonkey "--with-spidermonkey=${spidermonkey_1_8_5}"
+    ;
+
+  meta = {
+    description = "Full-featured text-mode web browser";
+    homepage = http://elinks.or.cz;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch b/nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch
new file mode 100644
index 000000000000..de06f563d6e6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch
@@ -0,0 +1,17 @@
+Fix libgc initialization in the presence of Guile 2.0.
+
+--- elinks-0.12pre5/src/main/main.c	2009-07-07 14:23:17.000000000 +0200
++++ elinks-0.12pre5/src/main/main.c	2011-04-28 23:20:15.000000000 +0200
+@@ -339,6 +339,11 @@ int
+ main(int argc, char *argv[])
+ {
+ #ifdef CONFIG_GC
++	/* Guile 2.x uses libgc too and it initializes it this way, so we
++	 * must make sure to initialize it the same way, or it will just
++	 * segfault.  */
++	GC_all_interior_pointers = 0;
++
+ 	GC_INIT();
+ 	GC_set_warn_proc(gc_warning);
+ #endif
+
diff --git a/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
new file mode 100644
index 000000000000..12a6c64c7ae4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchgit, meson, ninja, pkgconfig
+, python3, gtk3, libsecret, gst_all_1, webkitgtk
+, glib-networking, gtkspell3, hunspell, desktop-file-utils
+, gobject-introspection, wrapGAppsHook }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "eolie";
+  version = "0.9.45";
+
+  format = "other";
+  doCheck = false;
+
+  src = fetchgit {
+    url = "https://gitlab.gnome.org/World/eolie";
+    rev = "refs/tags/${version}";
+    fetchSubmodules = true;
+    sha256 = "0x6f2qqqxpjf28mqxs4jlrz2z8wa9nvb9h24nf8qwmzavjjbraqg";
+  };
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    wrapGAppsHook
+  ];
+
+  buildInputs = with gst_all_1; [
+    glib-networking
+    gst-libav
+    gst-plugins-base
+    gst-plugins-ugly
+    gstreamer
+    gtk3
+    gtkspell3
+    hunspell
+    libsecret
+    webkitgtk
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    beautifulsoup4
+    pycairo
+    pygobject3
+    python-dateutil
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
+
+  preFixup = ''
+    buildPythonPath "$out $propagatedBuildInputs"
+    patchPythonScript "$out/libexec/eolie-sp"
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix
new file mode 100644
index 000000000000..ff16ddb90f69
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, fetchFromGitHub, cmake, extra-cmake-modules, pkgconfig, qmake
+, libpthreadstubs, libxcb, libXdmcp
+, qtsvg, qttools, qtwebengine, qtx11extras
+, qtwayland
+, kwallet
+}:
+
+stdenv.mkDerivation rec {
+  name = "falkon-${version}";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner  = "KDE";
+    repo   = "falkon";
+    rev    = "v${version}";
+    sha256 = "1ay1ljrdjcfqwjv4rhf4psh3dfihnvhpmpqcayd3p9lh57x7fh41";
+  };
+
+  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 ];
+
+  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/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
new file mode 100644
index 000000000000..c43b7a5075ed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -0,0 +1,995 @@
+{
+  version = "65.0b3";
+  sources = [
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ach/firefox-65.0b3.tar.bz2";
+      locale = "ach";
+      arch = "linux-x86_64";
+      sha512 = "c3ca8a9e6f4222b0dd25736d834fb8e64bc4e31c16fee9d972fbd8975ae8de216e3c35606b997be524e42b5dd303e732c78d55e99c7ee62dfc2577486c13c18b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/af/firefox-65.0b3.tar.bz2";
+      locale = "af";
+      arch = "linux-x86_64";
+      sha512 = "f6e060af2b549d0d7423947f3dc107fd4ab78ef0703eeeca61e344df169d1fb94d8fe8c3912b0cdf18923b0aa6521e5456972491ca719dc6bc82ed7a8078615b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/an/firefox-65.0b3.tar.bz2";
+      locale = "an";
+      arch = "linux-x86_64";
+      sha512 = "a0faddfd3a781996b43d3a1fe9129a51f0619885c76f305e41e4d2689b50650ef9bc03e831d78c706d5a537814f05655cdc24c0e5b59ddd86f5b4488f96959d6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ar/firefox-65.0b3.tar.bz2";
+      locale = "ar";
+      arch = "linux-x86_64";
+      sha512 = "dde1f0083defcbd8ee318d521720803995baeb1c249fdf4c3df0fd6b8f84187a8a6420fcf5a376103fa408f0949669b36430e157b530eb48d1ef9bd6111cf5d4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/as/firefox-65.0b3.tar.bz2";
+      locale = "as";
+      arch = "linux-x86_64";
+      sha512 = "dc91a71fee2719fcf608f9dfbad01bb8d87e894c46e81a3baa238ea163b9f7bdcf8da4711683419d7d2d4d3bd71bddb60be568b33cd9f59ccf7392af8cc0262d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ast/firefox-65.0b3.tar.bz2";
+      locale = "ast";
+      arch = "linux-x86_64";
+      sha512 = "9ac9ee34eb64e055c66300d6bfb0a35dae245a9f2a6a01e5fdb84a733aeab3ab7dd81eb3b459e1968d8cd235a3e5214972d0f5be93a0a9f170e7e0f9e50e6622";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/az/firefox-65.0b3.tar.bz2";
+      locale = "az";
+      arch = "linux-x86_64";
+      sha512 = "982c140b2a0b84200079520013e36fe42c1fdd2045e841365bf46b853805bf864ee088df113b7e48acb0dceada669305bb449e2ac868f49752c82e510ff77b6e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/be/firefox-65.0b3.tar.bz2";
+      locale = "be";
+      arch = "linux-x86_64";
+      sha512 = "4531eab84b8a6908aed58a6a6b3a15fd67c1611a51683d5f67bde2fc8d39a4fbfa0e17fd51099a49b15aafb5919a8df0cd5fff7b90677c7c4e0e6aea9a2207b5";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/bg/firefox-65.0b3.tar.bz2";
+      locale = "bg";
+      arch = "linux-x86_64";
+      sha512 = "3ee58c12814167a54e8492d6d2a7b0813d4cea3255dc7489fe40e4de1ed0e336347f2c6733c798db2480fa7f582586928cb6d3cfd62c86f3fd9bdfa045c36b52";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/bn-BD/firefox-65.0b3.tar.bz2";
+      locale = "bn-BD";
+      arch = "linux-x86_64";
+      sha512 = "230588540944371b9cff15ff18b32784afbda6f1df8aae3ecdeded5313ca22e79d125b17401ee56aea6be176919a66e4892f0f96dfe660a4ec15806083f84304";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/bn-IN/firefox-65.0b3.tar.bz2";
+      locale = "bn-IN";
+      arch = "linux-x86_64";
+      sha512 = "4f52fe5c31aedeaed4a9c9d8e5cac8292696921b27e28c5a4b4cf78ead1194ea71b43c7d86272bf398b3b209beec47034fe5de50f3af08c3444db8deb81381f4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/br/firefox-65.0b3.tar.bz2";
+      locale = "br";
+      arch = "linux-x86_64";
+      sha512 = "413ed5addab36e89203b685d728dbfbf53b79a1c6198eee1efd2c4127996844b50b34b18e706188abfc85ad20de4f32414dcf01c90280472e42c972750208c13";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/bs/firefox-65.0b3.tar.bz2";
+      locale = "bs";
+      arch = "linux-x86_64";
+      sha512 = "25d9c312badc08cd83f8be311f9d501239352f616400e8b433f147514fdd92146ca58aaad77eca0504119a33e1b52d4ee8a4e9fa834133f3ea6a606caaa77b0e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ca/firefox-65.0b3.tar.bz2";
+      locale = "ca";
+      arch = "linux-x86_64";
+      sha512 = "babb26ee8c76df30c166dda4bec9134d2ea807f1ba69a89c8fb10bb32ef2b9cd326a21ff8947f2461eead6fb9e1d74cadf16100aae9c9f584ca6948bc49a061d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/cak/firefox-65.0b3.tar.bz2";
+      locale = "cak";
+      arch = "linux-x86_64";
+      sha512 = "ff0a31e6d140c7aace7fedbf3a814b33176c34e5dcb2d6e1ddb30fe3e3c90567988413eef8a77ef750b23821ba8253776672800eb67eccf5f3cd0e7433a0cfc7";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/cs/firefox-65.0b3.tar.bz2";
+      locale = "cs";
+      arch = "linux-x86_64";
+      sha512 = "f3fba0c29f5dfa2eeacd105feeb549f0e202111e4997754b2bb31282023ae1d8323490ad216869e2905fe3d9c914d0349470ab0ebef0e0408fda85a44fc8214d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/cy/firefox-65.0b3.tar.bz2";
+      locale = "cy";
+      arch = "linux-x86_64";
+      sha512 = "e9ee4ade92e51b028e60ed863c92302a31ff1d4b2603f54085f0ee8aa0b691e5af87344862f4149b3ee2bed995fead659d669c3e6916411967386590a722fb08";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/da/firefox-65.0b3.tar.bz2";
+      locale = "da";
+      arch = "linux-x86_64";
+      sha512 = "d5d0e5a7b20d29392291d49bffe038ac483431da852d8a279bc4450bed25a15014d65c8b1590fe3321186f4ac4a25aa7d879dc6d61f92a051e3fee9d18464d68";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/de/firefox-65.0b3.tar.bz2";
+      locale = "de";
+      arch = "linux-x86_64";
+      sha512 = "8ed2fbcecc57105715e88117dd28b413353f6c03545ea42b25a1296a79b63c735158be461319962ca34936deedccce3f0fcff546187bcad049a03d31dd375327";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/dsb/firefox-65.0b3.tar.bz2";
+      locale = "dsb";
+      arch = "linux-x86_64";
+      sha512 = "b50478eb6cf8e8c2d91ba18551cd58f58ebfe6571405285b1958bb63a5aeca3b1fd8e4394c94f6ccbb496d4544224f454d502c2dcbb1fecd4be3b52603ebee38";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/el/firefox-65.0b3.tar.bz2";
+      locale = "el";
+      arch = "linux-x86_64";
+      sha512 = "9ad7764461b9ed1551d2198a417a80da283e5ed855eed9b8171d86655571e8bc1ccd15aab3400aa7f963a2ee4c5d9a7da9e007657707e929b70fbfcafa8dcb39";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/en-CA/firefox-65.0b3.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-x86_64";
+      sha512 = "da400fe13e80438b133dc7d85869b92143ed1b6a30922d99eaa830a2ef3519c6ae0e1fa2b51c361cf022960c3e3e3d81bdf651b8980c1f4642e7b6b7c3ab4e20";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/en-GB/firefox-65.0b3.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-x86_64";
+      sha512 = "ee0167672af62e68688bad16c38e112e52d055c2805eb62991c6a172ed135d44c3c4184032be1bcd05c1cc9056bcc3644a3fa5cf12eded4246762418adbd4674";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/en-US/firefox-65.0b3.tar.bz2";
+      locale = "en-US";
+      arch = "linux-x86_64";
+      sha512 = "35cd686e042c849bd7dca740df63b73420a8a50f01e7418b52dfc59a67070da518cac30117c956ca61907804244884c0339b360a98773b7e63600d3c2f6a12af";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/en-ZA/firefox-65.0b3.tar.bz2";
+      locale = "en-ZA";
+      arch = "linux-x86_64";
+      sha512 = "d92945c7cdc811019cd4a228b7ca0623670a26629c0f66ed2aa289d4009b41964c64ae0a90666af767181b516ca6e5076d732103fffb7314c0f054de04f3afc6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/eo/firefox-65.0b3.tar.bz2";
+      locale = "eo";
+      arch = "linux-x86_64";
+      sha512 = "829a7e30b4821b4440d85abeb08d270b9843cd819455ee80720443ac0c5aec39e0623730fbb93a26a13c8d0091fb93f35cc35133bfe921f0ac7c829b0f954df6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/es-AR/firefox-65.0b3.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-x86_64";
+      sha512 = "dd18cd4abdc7017fd8d2fce9e3b65f712a97efe00d6205976032ecad27f131e1003124ec8ffd18899eb98c84a239e0e1f8f4dec5788bd321048834c3dba4eeff";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/es-CL/firefox-65.0b3.tar.bz2";
+      locale = "es-CL";
+      arch = "linux-x86_64";
+      sha512 = "1c260a64ed2be230ad62167bece3f92838a7876781df3763685d793ad1e516e5df0e6f4d3d15fef79a1221a8faec918e2a02943ad0b89416544fc9773d0f290b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/es-ES/firefox-65.0b3.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-x86_64";
+      sha512 = "fcc3955ba9445c2ddd2c07ebbb48cb8a26dd1f83b9fa5aafafc316691e767cf7f1e7be0949836b45c441311cd34047b764eb2cbf0344f3d157b749de956ac830";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/es-MX/firefox-65.0b3.tar.bz2";
+      locale = "es-MX";
+      arch = "linux-x86_64";
+      sha512 = "7864cb16e8d20bd357664601e427f0d122bb33e21e834a4a86dfd0877baaf0b4da1c5966253fea8eea2e12becc7ffcab1c5e78801755f1e2aa0924c67710493f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/et/firefox-65.0b3.tar.bz2";
+      locale = "et";
+      arch = "linux-x86_64";
+      sha512 = "5b407aa63f302de0c16fe726f11fac04cb2a866908ac5ea0405949fe0063aedb383e309b351dffb9bc4383bbdc74d3859d536262c12e4d7245ed982b328ed598";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/eu/firefox-65.0b3.tar.bz2";
+      locale = "eu";
+      arch = "linux-x86_64";
+      sha512 = "33600da47d3d9de6222144d738fe87f4c6f1ecadbb7a7cc41eb8caf376254705d3f86bab1cb1db204b00b213451d20923017f09535a87c39a8e9da221ce1e40f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/fa/firefox-65.0b3.tar.bz2";
+      locale = "fa";
+      arch = "linux-x86_64";
+      sha512 = "bf9de12b047855573b1bf49bd50d5146fdf7ac627d95e35e6e48185f687096ac25875aaadc8af8681588b7b7756ef5886912c4be8b6e950da0b88d8a1c49e12d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ff/firefox-65.0b3.tar.bz2";
+      locale = "ff";
+      arch = "linux-x86_64";
+      sha512 = "765f65bc29b93bb7f0c393fd175f0617d8ed957206b83151076b6346d14e56e72b5de0c5285e400137dfe732fc332fb092d39159b55cd9b43916cf14af4752c5";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/fi/firefox-65.0b3.tar.bz2";
+      locale = "fi";
+      arch = "linux-x86_64";
+      sha512 = "bdf585c2d2cd5434e8c6c3c290a68389993ea87e9bb6b9cb77113fceb1651b705eabe5e5530e19f24db7eb570b3553cb19ff00ffb5e541af69253d3b8ea694d6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/fr/firefox-65.0b3.tar.bz2";
+      locale = "fr";
+      arch = "linux-x86_64";
+      sha512 = "7031400d0c9a189bd0d11b6724f6005d6be568cef47285bfe0b4689791259b290f4b65a64388ca4038f527fad099d1784e95b5459daa0d1d1e0da343df60ed1b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/fy-NL/firefox-65.0b3.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-x86_64";
+      sha512 = "4783bd67f54f0720ceb7f07589384a455fd756df320ae34e8db7ea56c2bb462d8714280e14f850f4a09c3292a5dffca850a25d01235eb8d8d22f6c9d03b41a25";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ga-IE/firefox-65.0b3.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-x86_64";
+      sha512 = "575bb6c6ce3634e5427161cd121ebb2be9e4199dece27d24c8fbc03c007fb060f5c8b74e3056a1acc232ab4acc6c0c6c178d9c9ca220f288d7ffd36fc7f687df";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/gd/firefox-65.0b3.tar.bz2";
+      locale = "gd";
+      arch = "linux-x86_64";
+      sha512 = "9d3379022566456615b684b0efbe041791ddc7488f01aec24957749cfbb847748fd96f11517796cbfd8452e5e00aa22ec605c869851b1f4f050d3b27c742f53b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/gl/firefox-65.0b3.tar.bz2";
+      locale = "gl";
+      arch = "linux-x86_64";
+      sha512 = "cf1df1f6d23e0cc866d46d74f8d80cc0e625cdbcf82a148351d96faf56d2a7f85de23c1b29d0c4aea1b9f8a02a773433f114b6ea06562de8f688fc61ef16d941";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/gn/firefox-65.0b3.tar.bz2";
+      locale = "gn";
+      arch = "linux-x86_64";
+      sha512 = "0f8c9571e6a10b73ce61657715375e374618c1c9f4354aca85e422b36279976f893d3237680a0613d1577a3727461c225f71a608e45e143fde66b9a448a72710";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/gu-IN/firefox-65.0b3.tar.bz2";
+      locale = "gu-IN";
+      arch = "linux-x86_64";
+      sha512 = "713664275a87a0f16dbffe14b98fadac71bfb60452cf63e9a2a5c362da51fde4436533260b8200da4dbd5473df991b3594a98d49ace8f93c5afd8a61778257dc";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/he/firefox-65.0b3.tar.bz2";
+      locale = "he";
+      arch = "linux-x86_64";
+      sha512 = "6e3017247e840c148f58189319d8df7d313bc1b6f644377c1bb0d57139a80d3eeecd50db72e95bec886b0e9f6fec9904ce99cfca74ac8a65789bb2d71584a97d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/hi-IN/firefox-65.0b3.tar.bz2";
+      locale = "hi-IN";
+      arch = "linux-x86_64";
+      sha512 = "620e4c490deb9a69283486c70f9b2ea05f7b22c87e1ff0d0fe403f229dcda6fff2ae693cb3e929b88974cf6c0ebb6731a4b187194c2f23fd09e9883f21cda551";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/hr/firefox-65.0b3.tar.bz2";
+      locale = "hr";
+      arch = "linux-x86_64";
+      sha512 = "fc89d4dd16e1df0fcb2133b102f1e027cce7a8553937c3e9fa0063f4a454f84604cffcbfc57de05f4c7b5a1d0e3e6d10bad46473eb028797f93974dca22006de";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/hsb/firefox-65.0b3.tar.bz2";
+      locale = "hsb";
+      arch = "linux-x86_64";
+      sha512 = "8cae98fcb9b55de22512b83fcc5ba6cd04565c05aaae7b0be6e656863206a10d10ce3f59e29aee3febfcbaa1f175db089b2ff3c9c602d7f1d570ac2b55ffc850";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/hu/firefox-65.0b3.tar.bz2";
+      locale = "hu";
+      arch = "linux-x86_64";
+      sha512 = "49456f0930cccb7bf8d54463bd9d1bf694fd57b2f962cf4adeeea0c65816edc5f3d164b93d1f43b8f9da7e9c2531d45537c34c226d64c557da1b9a4ff18ff6e7";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/hy-AM/firefox-65.0b3.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-x86_64";
+      sha512 = "702880cc7c4f1d1636ce80bd1ac0a78b2ea421d9afbc0c644c5c43a40b79e5a8a58bb537b42781bad1f19f5ef35a705be07f10485ad7f01a693f4c1c68eaaa25";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ia/firefox-65.0b3.tar.bz2";
+      locale = "ia";
+      arch = "linux-x86_64";
+      sha512 = "13d5541d5cd0c198337c563d1324b83811a684fffb78d066e4bfee76ca24af1b7ae061f94197db7f1464031b387bf40a6c5ea54d1775b6f3b6397f5b1a9da9c3";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/id/firefox-65.0b3.tar.bz2";
+      locale = "id";
+      arch = "linux-x86_64";
+      sha512 = "54ca447b0a0306139cc2063c945138cc2b1dd03e35ecc471775e58b04e62219a9e7e58ede2522b498daeac5303f5918114c85916a6b122966086b0a18c81541c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/is/firefox-65.0b3.tar.bz2";
+      locale = "is";
+      arch = "linux-x86_64";
+      sha512 = "81534b62be2a35e7044d1de5925aa006271995f65262a352262e6d4b6e1053aeb89065f681a17a824917822588933bd8d6ca5603582597bf14722e883d4e5dcd";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/it/firefox-65.0b3.tar.bz2";
+      locale = "it";
+      arch = "linux-x86_64";
+      sha512 = "257f5f6a9766a0f3b92ff63f5e081e7238a5b550ae6b7fc8185453eb47cce7b420f887def458b3bc0e3b7e538bfe29d52ea13c3bf945475b50e649786d3188ab";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ja/firefox-65.0b3.tar.bz2";
+      locale = "ja";
+      arch = "linux-x86_64";
+      sha512 = "243746a4b844e2250839a71ff45385b9993c5bee3a62211d54feab2922281b3459105113dc7eab235c148996660c10abbbe5ec4c78a261b5d3c472a657650498";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ka/firefox-65.0b3.tar.bz2";
+      locale = "ka";
+      arch = "linux-x86_64";
+      sha512 = "1529ef53cc23ca0e27c505f3039df09b72c3612a21c7e47efcb9178993ca25ab763ddb47a6181ad20ad7036b409d8351acb7594e67b4487232705deaf859ff39";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/kab/firefox-65.0b3.tar.bz2";
+      locale = "kab";
+      arch = "linux-x86_64";
+      sha512 = "5c759e1bd4a84d3ca3c0c320367d773c6b03087603bbb0ae944ebc21f2f0b01d74e979159a227d8a2c09c8153a43281be8108f58714f55639c1edf9bfcf50af2";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/kk/firefox-65.0b3.tar.bz2";
+      locale = "kk";
+      arch = "linux-x86_64";
+      sha512 = "0e824b8f762f9ac3d17654e2bb0e9389e4b9bbf8249011330c18b68a7948f9bea1ecd50aab748ceeb2a2c2350c512226d7b3aba788640e176691dcc119ee4957";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/km/firefox-65.0b3.tar.bz2";
+      locale = "km";
+      arch = "linux-x86_64";
+      sha512 = "7dc8c2ff86f8c0e6022894599c08accb38cd13e8de4c0e87a4c60ba20eae762d3995245e378edebfc67a40320ab5990894617888c62d9b76df2e402037b735af";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/kn/firefox-65.0b3.tar.bz2";
+      locale = "kn";
+      arch = "linux-x86_64";
+      sha512 = "bc1a92b84537caf6e70dc079eeb97dffb2b7b042367888c50d8f16e454b6760aea793c9e168895a5bb6cca2d32704b17a6ea9bc66917f513e56bb2df534c3cdc";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ko/firefox-65.0b3.tar.bz2";
+      locale = "ko";
+      arch = "linux-x86_64";
+      sha512 = "412bdbdc9505b65e2c8cc6609fc3c758764b213198c8b6b4c51b42f36e1e61013f449a67bf09bf200362ae1a8d7ff2ff3f2a70be719e66a8bf7e3097df6ee7f8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/lij/firefox-65.0b3.tar.bz2";
+      locale = "lij";
+      arch = "linux-x86_64";
+      sha512 = "6f85e21b41fccbd30cfd38a562b72faef4f0cfc6621cf4631c7d7d457d91636b6e742968e9ec2fc05f6fc2f77dcfc43920f52bf6277ba47c963add592f5cafb0";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/lt/firefox-65.0b3.tar.bz2";
+      locale = "lt";
+      arch = "linux-x86_64";
+      sha512 = "b9ae0727080983c12994cfb8e42513a9bd254de4f8b5569b9f8477cc2d883404bae426c31d3a8fe3f0470cdd498c3f9a6afbee73083c73604e1047a09abf0527";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/lv/firefox-65.0b3.tar.bz2";
+      locale = "lv";
+      arch = "linux-x86_64";
+      sha512 = "bec7914458d188c3dc2d7fd9966eb9fca229ca28e500c6ffed264a36bbed99dc5f7e3cbcb4c9bb29891643417c5c8eeec8abfa049ee50ee4fc2e820ccbe30c01";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/mai/firefox-65.0b3.tar.bz2";
+      locale = "mai";
+      arch = "linux-x86_64";
+      sha512 = "0b75befb3b1edc40066672eabe1a621e4e07bc3defe193053bc0b269b6b29fc812ec8366db5c14aaa23ccb695c30930755fc94f89feb3376d6170af14c5eb09d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/mk/firefox-65.0b3.tar.bz2";
+      locale = "mk";
+      arch = "linux-x86_64";
+      sha512 = "9641f97c18c54baf85150e0f5d9d563af44e175d192acadc9c61fa6a40902bae855b61a2b2139f15cb1c154d277661b0c8a1e7564c170f475fae8c0ccb2fd41f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ml/firefox-65.0b3.tar.bz2";
+      locale = "ml";
+      arch = "linux-x86_64";
+      sha512 = "205d2607d1a447bc35c4ff7cbfb3b120118acb2c98d358b128c307b186b8811c7e1b3847e4d0ab607c13bdfa6ef1fd992b0c07a20635a3d8dc9f28c439165b6e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/mr/firefox-65.0b3.tar.bz2";
+      locale = "mr";
+      arch = "linux-x86_64";
+      sha512 = "fc7730eb12aa5df40b3b9f16832628fb92b48c94cca4f744f3e66f02ba87d04316ae19ea3ec3290b052455f8cdd0cc40fdcfcd1eb6baf22d0158774a882d736e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ms/firefox-65.0b3.tar.bz2";
+      locale = "ms";
+      arch = "linux-x86_64";
+      sha512 = "d10798dfed04e76525df9f3783357dd275312af9bf1568ccf8c27652d3798f02aadf8715f198ab2a3a4d3097b3ae70fa3cb23680b6f885ff8b83bdb3e4d55182";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/my/firefox-65.0b3.tar.bz2";
+      locale = "my";
+      arch = "linux-x86_64";
+      sha512 = "e27f792f0dd2e7244d57edfe6ff01cc45ea33789df6bd45fed84b06d10b44527431bd5189ceeae3904e1f9338b82343e9012a5a1a25f8178517492b836a2f5d4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/nb-NO/firefox-65.0b3.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-x86_64";
+      sha512 = "628e520a2b12a1d5bd860defc30a33bcdfd950b03b4735eddf45e44f821b5689d0a173b80434b078651e4999e0acd6331f7be58bce84ff613e719937beef7d4d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ne-NP/firefox-65.0b3.tar.bz2";
+      locale = "ne-NP";
+      arch = "linux-x86_64";
+      sha512 = "a6e266f9e3c0ade07db2639c278feec3a644b603c53593d9af0871e6decd2dcaea4a905769443a83c6c45ff634a96bce171a410d59b262a6ddc08816883631dd";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/nl/firefox-65.0b3.tar.bz2";
+      locale = "nl";
+      arch = "linux-x86_64";
+      sha512 = "f0bb4979b49662c54d3cfbd08b1f030562e0f7c79e31ccf01a02a38b23d05ae6dbb783e796a0b3553760db9099e4adecc63665e764ca56f6fed6072a04fdd0f5";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/nn-NO/firefox-65.0b3.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-x86_64";
+      sha512 = "784ec6ee3a00683c8ba039c23b22b105c7d5ac91ef8d2ea813aea7e66f59a8b838ee04a77dd51eae420310eeb4441f0286a462d0aba3035922e875e6322b494c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/oc/firefox-65.0b3.tar.bz2";
+      locale = "oc";
+      arch = "linux-x86_64";
+      sha512 = "bcd016f27d33e1bfad50f74cd40a25befc28874418edf32d0068b227b7054751ec3fd067e13dce6a128b3c1b636a5d932340b31641e2dc7c1047963ae08eac6e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/or/firefox-65.0b3.tar.bz2";
+      locale = "or";
+      arch = "linux-x86_64";
+      sha512 = "ba4f0c2ae5bebeb24f373a7e62b3a9030820e39c2e6482d52fbc587903ad76b9206c14954047390d9324bd1d3df9a0b3eaee4712c507f501c313f70ccfccd5ee";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/pa-IN/firefox-65.0b3.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-x86_64";
+      sha512 = "a8a3357e4f8078fb3af234cf2fa813b5c11fccf058f5599bc7039d32fe905170dc3f397bf7e454c38b85180a8e38ccc3f44ddd3493b7d869b6d6bee8f6094b0d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/pl/firefox-65.0b3.tar.bz2";
+      locale = "pl";
+      arch = "linux-x86_64";
+      sha512 = "d54afb1d80ca96bd536f25f658eb8b1d368af65acac5ffa09334210528dafb9366c4d438d2547930755513f8d09d7068011cc26d4ad1d7d2cd2355157fa26bce";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/pt-BR/firefox-65.0b3.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-x86_64";
+      sha512 = "08385f674c13e98541d56314983f5dbbc9591430a8f031ad9b44db35e355529b4a4202e1b7b95fdce134026d57abaa62b308344d44730f81b27c162c0999726a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/pt-PT/firefox-65.0b3.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-x86_64";
+      sha512 = "b5daf4827e691871e59c2f9e213ab78fed0256575ec93c7faa0f8e92676c98d306509aa81cb2116b9b0656ca08f3778a12a32de3222f705b7e0dc8fa44fd2333";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/rm/firefox-65.0b3.tar.bz2";
+      locale = "rm";
+      arch = "linux-x86_64";
+      sha512 = "72b56a0f0d48621ad516a9ce58c0f430045bbe5700e59998dba0f73bfa51b55c77a6b68ccabb2b27a093497e1009af9bcfa68c590ab9fec895a5bea5ee612311";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ro/firefox-65.0b3.tar.bz2";
+      locale = "ro";
+      arch = "linux-x86_64";
+      sha512 = "2e133e10e9c59d0a31509c7be34bcda54a90c3078b3800d76ad1d3fa004ac387ea6ddf6bcba8ccb1d88195a85a1854b1e83790882bc691eb4cc006c38a391e11";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ru/firefox-65.0b3.tar.bz2";
+      locale = "ru";
+      arch = "linux-x86_64";
+      sha512 = "def5e6b670e1dd0bcb0d67d17d500a204062722a52b3b3d1dca18bba9ebce193304426480ed62c32a7864c50fa5087c1d6f5d6a542f1683849bbcb1aefdaf205";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/si/firefox-65.0b3.tar.bz2";
+      locale = "si";
+      arch = "linux-x86_64";
+      sha512 = "edc45fab751736bdbbda1de5064a772a08758208e8e0174c5729f8be77a96c2f79e5ab9b9e3513eced3a6e4502e62c1903ac4bd9ed9afd8612dd246841663e22";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/sk/firefox-65.0b3.tar.bz2";
+      locale = "sk";
+      arch = "linux-x86_64";
+      sha512 = "19fc814a7c599a27dc570327f8a2d54f6537c83ffcc21cd50b146fcc2f42f6e34ca2c400d91124d9be010742e2e93f1d92ee42234650071489cfe145edb2368c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/sl/firefox-65.0b3.tar.bz2";
+      locale = "sl";
+      arch = "linux-x86_64";
+      sha512 = "d17f4960c8a1498219ed92e9c857c4123c8ef648b95b3c09f4b0d021a37dab85ec238947c8804767a43aa13200abc95bce6da8ab1672aad75327138f5c137871";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/son/firefox-65.0b3.tar.bz2";
+      locale = "son";
+      arch = "linux-x86_64";
+      sha512 = "ae545a39c0b181c87cb188d278a453af1c0a944a02f5b86fab8b02a4d78e37588c4ff7971bec6e18268b8515b68b97ddabcb3e8239ef4d0c068bc7a49e10cd06";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/sq/firefox-65.0b3.tar.bz2";
+      locale = "sq";
+      arch = "linux-x86_64";
+      sha512 = "0cdd78ba4c3ed8b7c5f9ef06fdb363dd293b2db88e088af7abdc33ae0d101a378386662c802c9d48ffdde455f730d3ceff494b6b0c32c97347302fa63dcb10e5";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/sr/firefox-65.0b3.tar.bz2";
+      locale = "sr";
+      arch = "linux-x86_64";
+      sha512 = "f3895cb4aef2f47881ff2ff73198d844cdc8b6e7e3204f2b2cbf85e42fb217b7c3e852ccbbf30999f8938d40c796d5d4d89b4cf02ccf6f4297b1d8a68f200ac7";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/sv-SE/firefox-65.0b3.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-x86_64";
+      sha512 = "18033c2ebdbf57300a50ab1922d16465455190bec076007f478c08a4bc3be8f3fcc3863d8fcf4b5668e8f1ddaf6865d74cecb4bdb1d4c70183096d2f2d7fa933";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ta/firefox-65.0b3.tar.bz2";
+      locale = "ta";
+      arch = "linux-x86_64";
+      sha512 = "b40cc87ee812e6241735ee50cca4af19b49fc7bce4ad3f7fc44f92ca843200864dbab38df8ca3b37293b688ed958bea462b9af07e1e4462435a5700476ac09b4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/te/firefox-65.0b3.tar.bz2";
+      locale = "te";
+      arch = "linux-x86_64";
+      sha512 = "2b37cd97cf51db8b0c2e46609dd92717f225db51ca1bed25110e02587309fc55026e5bcdf5967ebeb35289157d274708f86a74c268db3dceb4c2d4e1e1038169";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/th/firefox-65.0b3.tar.bz2";
+      locale = "th";
+      arch = "linux-x86_64";
+      sha512 = "d8a8f4d6efa83cae4387eb25cc3114e86d2e97ab9c8f73f72ffced20dd066a32bcb63485caa39e766a54fc36ee8d86c57e1ecce3798cf719759278dbee2ea714";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/tr/firefox-65.0b3.tar.bz2";
+      locale = "tr";
+      arch = "linux-x86_64";
+      sha512 = "573055336b0f4e61bac4736f0727b145eb0b19b84b74a4f6f2bbe4650c1f8e3bf9125a4c387c9cee0644667a3d0baa9d9aaa1159add268191a97558364435720";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/uk/firefox-65.0b3.tar.bz2";
+      locale = "uk";
+      arch = "linux-x86_64";
+      sha512 = "f86f6fa2d81ac6911e91ff0d4e5b909d79d3ce22dd43ef4af630c65614b01e584b0a9bd2e9c0face4af8150d13dd3309b18f9c2d17ce7f973eafefa71c9302ab";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/ur/firefox-65.0b3.tar.bz2";
+      locale = "ur";
+      arch = "linux-x86_64";
+      sha512 = "ff7f2523653b01bbde16229f58ad02d42ec9218a5b0118ecd1e30232b7968c29c90c135018a37eed017d87e68d57b745b542ddd891e7db98dc5c97b09f0cd68b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/uz/firefox-65.0b3.tar.bz2";
+      locale = "uz";
+      arch = "linux-x86_64";
+      sha512 = "c1d1b9ba8708f9e97a0fe8cf817eed98496f0d17973b5f30cdeea37c11ec88526c560e43ac8d18e58acc61826dbc67fa22417e80ebbcecd42fb73df86441f481";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/vi/firefox-65.0b3.tar.bz2";
+      locale = "vi";
+      arch = "linux-x86_64";
+      sha512 = "97f59a2619d2f28f986c0dd17bd3c2d3e9189203b797febb22bd3696b1937053530983d377fd9e0f904ab072cb38f93f59ed1a5cbc724877cb36125c58ccb428";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/xh/firefox-65.0b3.tar.bz2";
+      locale = "xh";
+      arch = "linux-x86_64";
+      sha512 = "76062b907b81ec7d8db5e51caee62ed69fc0e043c1e03deed88f9293807fba5a0f4f78fa5e91bbe711f18911c0cb7c8776648f7bb3c01d164d9319d05488083a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/zh-CN/firefox-65.0b3.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-x86_64";
+      sha512 = "f414e32528ee9f81d0676adb888ab8d76f14aa1c706ce8cda4f5a6399aebbafb012f4d63116f5deb12abab0be99fc8d8779e8df80c12609be7c28a4d5c080dc1";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-x86_64/zh-TW/firefox-65.0b3.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-x86_64";
+      sha512 = "3cafaaaec4c44ff52159ecf03dd355999ec721d59663abe3c0f728643b903696065cd69cb1608783a2655695f32317d84252a6f8093a73e9609e6a98f60c193d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ach/firefox-65.0b3.tar.bz2";
+      locale = "ach";
+      arch = "linux-i686";
+      sha512 = "6f7a9e9c82ebdabf568e69b9ea4ac75fdcbc223b929775f0b2db52ce794611450bdb419b5d74fc32c40b8d318ea58eba55e4947b43385eff80250aeef12c925a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/af/firefox-65.0b3.tar.bz2";
+      locale = "af";
+      arch = "linux-i686";
+      sha512 = "cd3a417a4268e15f60ced9f7cb2e6f15452c46ede29b0e5a85ee736f478a97c5614c28a4014939c07f0fc67222349b510ac60408a6fe0a47c2484e8eb9730602";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/an/firefox-65.0b3.tar.bz2";
+      locale = "an";
+      arch = "linux-i686";
+      sha512 = "4cf2b1d11f0acbbb8c4b664847a4976579b5343dd6230a2e831d2f7b0807af64abcea5ffb31715bb015a84f521b6070c1ce29d2923576276f151180ca72abf36";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ar/firefox-65.0b3.tar.bz2";
+      locale = "ar";
+      arch = "linux-i686";
+      sha512 = "641e78c0c11248f78e073d9cbf8d763b9666e13ec1c56317300b9605af55fe95a14b3266f50a01a3666e50a1bbe3eec2c00943a12991738a5becef44a64adcce";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/as/firefox-65.0b3.tar.bz2";
+      locale = "as";
+      arch = "linux-i686";
+      sha512 = "0be7f3b427fba36bb4a03c929aa7bb657c6241e74468254dd967a85a2d4c802f771be0ee41563209c70126e466401f0deb836e2ecd29ae1529b72c15f116d5ea";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ast/firefox-65.0b3.tar.bz2";
+      locale = "ast";
+      arch = "linux-i686";
+      sha512 = "4f6041cf36681d98820ff7aa4e2da8f7a619ca918e962f1102be24a29c59a0591687ca50cc0b71c446cf9dc79e0a2e710c70a77ef9d521644ec2333e01efe9f6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/az/firefox-65.0b3.tar.bz2";
+      locale = "az";
+      arch = "linux-i686";
+      sha512 = "aeecd4090255b2585c687186df4e4aa204d9569a7aece03d880a346bc2c536aafdfa3dc69e3633aaa8ea900436a8728d1439f55bbe4a1a98204ce8a8f563df93";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/be/firefox-65.0b3.tar.bz2";
+      locale = "be";
+      arch = "linux-i686";
+      sha512 = "7b1eec7ffb765b2adfe544149f20fc8c865a0780b57d3e4b492e6f1e4c22ee2e3f0b68bbeda66f53d368126119f087c875a9731aaebf566d35aa6ba1932fa930";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/bg/firefox-65.0b3.tar.bz2";
+      locale = "bg";
+      arch = "linux-i686";
+      sha512 = "fbede800b71409da82a4e349af50107e6640c709c6bcabc876c0abe8bd2ddfd8a947f4f6162f9622bef415d7b3a76af20de0b3587c9881d26a785faaf19a26bc";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/bn-BD/firefox-65.0b3.tar.bz2";
+      locale = "bn-BD";
+      arch = "linux-i686";
+      sha512 = "ea0132f3debd87b4e45b27974096032817aa82ca707e54a66e5ee027cbe97fb67ae67df05cb37fbf89e37361f992e2a6d7264d394da6043e50f5bfd3b7d96dcb";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/bn-IN/firefox-65.0b3.tar.bz2";
+      locale = "bn-IN";
+      arch = "linux-i686";
+      sha512 = "b4522cf32ec1ff6ad1b0d95071a6c503e6262a3e91796acbc69cfb6b111a5ed715f9b4a109268e8c6a7296c086e2e0a97e315bbbf273f801bde57a84e574ccd3";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/br/firefox-65.0b3.tar.bz2";
+      locale = "br";
+      arch = "linux-i686";
+      sha512 = "f97b6dd2469672ee3e4fedef01903e17e0806a1f4aa20a573a2469f6f5ab815253f7ac7641f069e0943054a42088663672fd66f22b080c60dfc239da9d79768f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/bs/firefox-65.0b3.tar.bz2";
+      locale = "bs";
+      arch = "linux-i686";
+      sha512 = "3f9d5dc367d537999ec3b44c85d3d07554ea9055470424d00e3965863d8abde8570398c8642888f10bad061e5b9c5bf694344b8f120132b3cb7a0d2fe6143eea";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ca/firefox-65.0b3.tar.bz2";
+      locale = "ca";
+      arch = "linux-i686";
+      sha512 = "5f41377ed76cc675b319d335d31642bacdfb8b04a99cd9ea92c93ea252d20dbb8968281cf9d15c3e1414402c17bf0f569000569166ced9540128ed5d800586e6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/cak/firefox-65.0b3.tar.bz2";
+      locale = "cak";
+      arch = "linux-i686";
+      sha512 = "36258bd28f8392c90810926eea55164c6410ed9375d3e12b8c59e690ae8d1c3702714caac85bdc2d183bbca9ce09c23965e55450b7941cd840f32aaae6523a9a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/cs/firefox-65.0b3.tar.bz2";
+      locale = "cs";
+      arch = "linux-i686";
+      sha512 = "6d7c10cb6fad9cf222c29f5787cb496f6c5dea07faf7768f4933c870ad9cc301b1ce4ed4b223a5f02010971fa0bc62b4de150bdfff0718da4fb64b4590d5a03d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/cy/firefox-65.0b3.tar.bz2";
+      locale = "cy";
+      arch = "linux-i686";
+      sha512 = "5e54876e06411296f4528b378e5ea2fe4b40666d062eb642b56fcc4c6293f4509bbcee7daf22f843016178ecfb0a6115507a1e152a2ff57632f77d9fcc287d2b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/da/firefox-65.0b3.tar.bz2";
+      locale = "da";
+      arch = "linux-i686";
+      sha512 = "de9dfbb3bc7d2166b2e0fa8693dc4f9b249bb2531a478c378e51f2e4e964a7e510c0c304f914a6ba13f6307294e7c45e98383a2a20d7ae233cc2cb16aea21821";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/de/firefox-65.0b3.tar.bz2";
+      locale = "de";
+      arch = "linux-i686";
+      sha512 = "bba9fd9788a4406e98eab6141e89ab6ec932269007e5ddfba331b7e6e9b2177eb8f3f4ea6e07ea51b669575ca23606e150dd55fbc60805e133bbcfd870a63174";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/dsb/firefox-65.0b3.tar.bz2";
+      locale = "dsb";
+      arch = "linux-i686";
+      sha512 = "f6386eb3ed2a71049781b1c07cf426eec1c4ea0fa277cf34a6d7b73c43e29f4b6b1cc57d644f1ca6ebae9825be0bf594c30f06b5ddffce7bf019ec396d2869ff";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/el/firefox-65.0b3.tar.bz2";
+      locale = "el";
+      arch = "linux-i686";
+      sha512 = "063ad5a297d86644eee93bcd5760a6d4951ca8abf700e7c48b97b2262320d1d25deb5674ed034d3bef47aa729cdafce1249e9fa7f60b779fc833e92f962e39d0";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/en-CA/firefox-65.0b3.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-i686";
+      sha512 = "bf0233a0c437ce01cc94ba82f44d3900c44883eeb53ea0d1b0dda146fa99ee19b2777af1dac761659b74675ed08b8e4d33f9e30dbc8007a068f4f352737522eb";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/en-GB/firefox-65.0b3.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-i686";
+      sha512 = "b23f6adb06c58c79960afe92b314c6f7b3be7b90321c05fc332fea16e0931104543d6bb9c31a76ff1679cd10552237a7a0646a4a3dc50214aee58b8396286711";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/en-US/firefox-65.0b3.tar.bz2";
+      locale = "en-US";
+      arch = "linux-i686";
+      sha512 = "6caf8cecc6a4d29cef7316286361bfaa2cd01236e4dc5c1299f6f7c1ad3704a4fa465549baffbd780eeff2fb3a11e7cddfee0d635e362f58ee2ed617bc658212";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/en-ZA/firefox-65.0b3.tar.bz2";
+      locale = "en-ZA";
+      arch = "linux-i686";
+      sha512 = "db838770a12bd551c9b6420966685c66d5b333ae6472028a0fe599b7a2d0a240c48ee3d303f64b8b87a67f140c08e0ffa1209f8fa28fd12988f4460a757a5ac2";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/eo/firefox-65.0b3.tar.bz2";
+      locale = "eo";
+      arch = "linux-i686";
+      sha512 = "020c9c91c1a41aad6aa0af8b135f9ddb966145ef146a722ceb4ca3eadd798b3afda34e7c69c7fcbaae357ab7084b3a8aff4b756c2cd45011a1a898610b9ca953";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/es-AR/firefox-65.0b3.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-i686";
+      sha512 = "18a733fcc7a16b2ea1fa0a823b684c6c74c2337f866a64f363a7740fa26dd4253398123e153490229e15eedfe13691f8951e35bdf688564f5470aad8cbb42915";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/es-CL/firefox-65.0b3.tar.bz2";
+      locale = "es-CL";
+      arch = "linux-i686";
+      sha512 = "82c6588038fa7a0ca6be588839469875adc9f2aa4e08251f1250439a4978746ef7bfe0773ad910a808242918125c4e5cd57ee821a1ad572e1dfd962b9deb6ca9";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/es-ES/firefox-65.0b3.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-i686";
+      sha512 = "7b2b243a57add9f1a0634ecb33735fbd2f20cf67f5d81d04ebc102ec59e3fdfa107b2dbe2cb4dddce2d2db050698ee5cb5402f86949ca8994525f674fc723a77";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/es-MX/firefox-65.0b3.tar.bz2";
+      locale = "es-MX";
+      arch = "linux-i686";
+      sha512 = "c5277ef412dcd775ca1ec19169118e6fab1814f9fdb7f5cb16bfe242ea8e045145974fc66f68815e995f62ac908225edbf4825de0501c519c9cc1071fff51142";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/et/firefox-65.0b3.tar.bz2";
+      locale = "et";
+      arch = "linux-i686";
+      sha512 = "ac17ba466858caf07b16edad71cff9b0cfb87d3ce83d81278ca288934482d7da32737e3f963456b49cb9e0d1e8e52b8bf1206b0df9e4377e09d0dfc2dc6647e4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/eu/firefox-65.0b3.tar.bz2";
+      locale = "eu";
+      arch = "linux-i686";
+      sha512 = "62fcaf64cbd52606cb5b0060b09d8d8d50bdda62c8573aa488529a3e5d300c4524fe0b8aa3e36f021072854bb4edb44996ffc1b1ed04d1736b9f8813dc51cf4f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/fa/firefox-65.0b3.tar.bz2";
+      locale = "fa";
+      arch = "linux-i686";
+      sha512 = "2989c357ec22595dbc141920dc02a10414874a5e5344bee1990767d9b5a352704a3fcf6aba61f35d6cc9899dabba64566d3e9e4633fa02e661500c948a5659e5";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ff/firefox-65.0b3.tar.bz2";
+      locale = "ff";
+      arch = "linux-i686";
+      sha512 = "331be00eb5aff5b51e9640e56754da7ccb548e57bfe58ee25a0f049312f5b017ee13cc37f5339940ecef509cb8978d7004c56eef2efce7686b592f68dd08d99b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/fi/firefox-65.0b3.tar.bz2";
+      locale = "fi";
+      arch = "linux-i686";
+      sha512 = "e3cfad672fb01682db26bf8c83d7e53392d2f83367efa768c02fbd8264887a63e86ad4a7a4702003710d89921d04634ba6b89301506119c52b1e30f2c6084c8a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/fr/firefox-65.0b3.tar.bz2";
+      locale = "fr";
+      arch = "linux-i686";
+      sha512 = "226be01ca09c318ea36153f2bb77651b023a1d3b2cc9e6af92f22d9f9d875ee6a9e0c34c9c06002b7c54fdf3f9567b34f96dab4b225974f786776d938da55ed4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/fy-NL/firefox-65.0b3.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-i686";
+      sha512 = "0886306996a18bd8dbea6a689305b84decd8d71ce45d646d18cf883f4bac756d37f5a905c6fef072a06b8acdb3726944effd6e65e677d12ad67e5474e64bd40b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ga-IE/firefox-65.0b3.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-i686";
+      sha512 = "177e7ae71668057cfd05e758b77f4f95ab34ec3560d6a0005c0c7155091d686a61b49e9d3ce49dad34eea125830c5216c0b02102d4373a5cbcaf81a6e2e3e034";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/gd/firefox-65.0b3.tar.bz2";
+      locale = "gd";
+      arch = "linux-i686";
+      sha512 = "d7120744d401cf7d4a073c494a200062ce4bd4a67235a7c33587060bba5b9b5d199c77a213bb13fdeb76c1f846667f4dc0a6e1010fcbdd5541b12936ceee1408";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/gl/firefox-65.0b3.tar.bz2";
+      locale = "gl";
+      arch = "linux-i686";
+      sha512 = "af9bcd6f404a4d0ca5d2e322b42fa532b29ed0fafbe48640ddff2408276cff41b9a3d2f699aaf9eb43e957e383c304ac220da2ecb8be3697dc6bd1b3bc7316ec";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/gn/firefox-65.0b3.tar.bz2";
+      locale = "gn";
+      arch = "linux-i686";
+      sha512 = "4e3dafcf312467437f61c2c04cd85ef2aefd3b0d406bbcd61c3f712137d0ba854df3e91bf39c4b6211ddbeace4edc41e048c6a0ca6401732ec17afbefb2340ca";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/gu-IN/firefox-65.0b3.tar.bz2";
+      locale = "gu-IN";
+      arch = "linux-i686";
+      sha512 = "729de77c2acf760c7f68383db7a8781443691a19eed32ffa66f20f3dc89c73beaea6fb5c25b83679ef550c50faece28c4bbd65d37f41d6bc3db83c81c4034248";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/he/firefox-65.0b3.tar.bz2";
+      locale = "he";
+      arch = "linux-i686";
+      sha512 = "a8c2180fcd6ad167b0ed6d552f13256feee590a59219c17018b13ff2068051e9378f6fd5209cbac0aea3a8e7ea43473d9bc7846d8a32a2043e6c653cb8464546";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/hi-IN/firefox-65.0b3.tar.bz2";
+      locale = "hi-IN";
+      arch = "linux-i686";
+      sha512 = "3e288185a75f93e43fcc8b29780bb09a2f5cb97e415b30ba7b8a626266aaaf8826c6be46d762306bffbd54c448ddebad86557414681756d8d3421b5c8f901c37";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/hr/firefox-65.0b3.tar.bz2";
+      locale = "hr";
+      arch = "linux-i686";
+      sha512 = "3b5aa386b3328941ae77ccff52e9d47d9205253baf9e697d33fe9625c675946d4b1da881ba2bfb2d541df55be4632726b0a291a907ff1716ff0b1d514217fc10";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/hsb/firefox-65.0b3.tar.bz2";
+      locale = "hsb";
+      arch = "linux-i686";
+      sha512 = "4c78cd967303f8a516071d9a4f042d11a2a5637213799611382da83026a7f1eb3e6904d071b26f1e95a7d4f6eae73ff83a32269430e448494e6135a59682b3e8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/hu/firefox-65.0b3.tar.bz2";
+      locale = "hu";
+      arch = "linux-i686";
+      sha512 = "8393c00d7c2d9e50b71293004d24666b2726aacbe774fa762d803a15266f950733f6b74f6fc7c062068b9c78701db5a42dc91f7028a147ea07cf3d6dd982c755";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/hy-AM/firefox-65.0b3.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-i686";
+      sha512 = "5a049b59b5a4f3c8d23428dca6e0c3ceb0d4cbb256c2e7436dc7ce2ba6c5f8b9ff2242ec720e09e4fee77ffecfaabe16937d5a7cacd398369eab714f40541260";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ia/firefox-65.0b3.tar.bz2";
+      locale = "ia";
+      arch = "linux-i686";
+      sha512 = "614aeb76d8a2af4119c36aefd84bfe379bc39c064779649a6b8fcfd5c7819b5ac477270f849fb032a97e60d4164b690b7ad1919165d99b685cfa287499bc45d1";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/id/firefox-65.0b3.tar.bz2";
+      locale = "id";
+      arch = "linux-i686";
+      sha512 = "8d3e19ce0adac49c1ae8a28b459f08649fd97f8ec03c47b33cba8b5f349a03c2475bed30c43f2247420d07dfa27d667ee2b48b7007969313ffa628fecbc1c5e1";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/is/firefox-65.0b3.tar.bz2";
+      locale = "is";
+      arch = "linux-i686";
+      sha512 = "b33e586abd24bcebf073b65d71d24a55bc8d2d3c49b3ed79a4f2e6d28b515b41e3bee0a9c2552b993fa02aa73d233d234dd243dab117306de5c404968094bfa9";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/it/firefox-65.0b3.tar.bz2";
+      locale = "it";
+      arch = "linux-i686";
+      sha512 = "b00fb4668b7ed4893911230ceaabadfd2bc102aa62ef95007955422b521efa42f866cb2bec9aa22ad9dddbdf21a74dd2a16db2f0ca8a6f14bf98bf6044436fac";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ja/firefox-65.0b3.tar.bz2";
+      locale = "ja";
+      arch = "linux-i686";
+      sha512 = "9f52ed2a670cd2015061cab17e45ed7a573f8fc84cc3efabefddec36356c1355d459e4647a8113f17482f1409ecf17a9337a87f44b565e824e333f699fc4e890";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ka/firefox-65.0b3.tar.bz2";
+      locale = "ka";
+      arch = "linux-i686";
+      sha512 = "721fd201f69e7619eea9836686dd5f08a2e0fcaf137f20110e6e453ba018db8beefbae4b4cd3eb6ddda2ba25d937ae89a06420c8e14dd4a576fa9db4eece9c01";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/kab/firefox-65.0b3.tar.bz2";
+      locale = "kab";
+      arch = "linux-i686";
+      sha512 = "66d6784a81034d404562f263b54356a456e1de3eff85cf727069444736a155a9b65a611a0e13535b0a125f765d266df667637b4a76186a3ea7742419cfd80309";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/kk/firefox-65.0b3.tar.bz2";
+      locale = "kk";
+      arch = "linux-i686";
+      sha512 = "1fde1bbf36d5ea2b00d60246e588d813c6cc40be09428f92eae1f6050656f5f4c185cce887acccd16a7afab25612c0f4a5310cf4e368890c6b73ba688667798a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/km/firefox-65.0b3.tar.bz2";
+      locale = "km";
+      arch = "linux-i686";
+      sha512 = "eba4b8a6d6744be24618d4e78d6aad5c55dea4f139b052d1491c7bc6d507a27e04eabaa58a37757ab75d1c82dd4cb2d9c54fee896a085d9922f4f8669207cb4e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/kn/firefox-65.0b3.tar.bz2";
+      locale = "kn";
+      arch = "linux-i686";
+      sha512 = "6e5b7cde50d28ab525bcfd37fe369f99d2cb1bd794d9a63739eefb2307b128c67152cdf717fa4ea6c0d89eb6aef3bb2a93f907e0dd9edf870f9f1ad7c816e1fc";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ko/firefox-65.0b3.tar.bz2";
+      locale = "ko";
+      arch = "linux-i686";
+      sha512 = "a53be695e30b53891941a0243bfafd108ed2eaf0d6d0946d060c996f593e46b6791b789ca20789d80efb8252f9e7eccbddc836cf74bd1eb11c22ce30616bc92d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/lij/firefox-65.0b3.tar.bz2";
+      locale = "lij";
+      arch = "linux-i686";
+      sha512 = "0a3a2dbc75a4085f8fa2a7e571db500b6452763aac9352e1f5bf0145fab4a846305b1eadbe75dc60b540d6d020767dfe3d50d2fa7c9b754c48e29d39d54124c6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/lt/firefox-65.0b3.tar.bz2";
+      locale = "lt";
+      arch = "linux-i686";
+      sha512 = "fad914388e477853fc1367f5f851ce8c6803536c18be830ad3f32462a895158f426f6942f4fdd65579f8faad579ea1fa3a08e7b4dfb07e77c1181cc2fdf088bf";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/lv/firefox-65.0b3.tar.bz2";
+      locale = "lv";
+      arch = "linux-i686";
+      sha512 = "56d56416e786a232b1fdd438a221f122e69f8288402ddf8e8721798deb8a488b0843b79957de2085a4826211414e6ceb1bf26679b8c413d90a631342bfcc23f6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/mai/firefox-65.0b3.tar.bz2";
+      locale = "mai";
+      arch = "linux-i686";
+      sha512 = "1211fabeea52a3d7f88cf8d9a7e228a20fee1917744bd114c871736f912db16c35b0ef99330b02b01b1d89d60db100bbaabc06346aeeddaf834c9e404527b91a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/mk/firefox-65.0b3.tar.bz2";
+      locale = "mk";
+      arch = "linux-i686";
+      sha512 = "e8a1af648c22b404d7a123575cb59d0898cd6c2ae3413a1419c2eff8015921acfe33e7b8b4449380346818a3fb322f6029b7ecac4d73a3ae667795e2066e9848";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ml/firefox-65.0b3.tar.bz2";
+      locale = "ml";
+      arch = "linux-i686";
+      sha512 = "5e352473dba2aa04eabb9a08ae127a2f1e5b9273f7bb0f4bc35139208f967f775aeb22a1506b379164a44726c74f4391bf70dee3ca2a5005d6d7ba091ef844c0";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/mr/firefox-65.0b3.tar.bz2";
+      locale = "mr";
+      arch = "linux-i686";
+      sha512 = "8d476c7b23e37c541ecf785e08e8a2620dbf6607a7cda5fcdf8e70915b40e47d63f45f670acb047c66e5b7be8d4dfe7d8f0fb70c4eeade62c3cd07add72c616c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ms/firefox-65.0b3.tar.bz2";
+      locale = "ms";
+      arch = "linux-i686";
+      sha512 = "e98e074b9bba5a80d22ffa2679eee289ea6f49030d276f83e1d50b27dee1d1b0f86723e2dac22c4207b5aeaaa08ec0b1cb103e103fbaa68bc320514461e2cecb";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/my/firefox-65.0b3.tar.bz2";
+      locale = "my";
+      arch = "linux-i686";
+      sha512 = "8bf7997f77a957dd3e372c78f3b8659ceaa5ebce2553faa6895ddc25adfe63f60abff50ac0349d081f42c46f550feaa9527b32d9a7e0f3b05a2afd7cb73b2fff";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/nb-NO/firefox-65.0b3.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-i686";
+      sha512 = "645f5ce73732f71aa52afd47c9aa48e95dd6cf2317c09dccf8e5dfe338e5bc3648a515bb314d6089fa8c7b236a7ab84b21867fe93b27ff1ed21a144cd605753e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ne-NP/firefox-65.0b3.tar.bz2";
+      locale = "ne-NP";
+      arch = "linux-i686";
+      sha512 = "339baf1a95bb2a6fbf426877a7d1c8b8db49b6d8d1ba90decc6456cdaf3137c6ebed647e2b6e45814b7338f8d4859e9de1d2111d49ea4591df500bcedec2631b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/nl/firefox-65.0b3.tar.bz2";
+      locale = "nl";
+      arch = "linux-i686";
+      sha512 = "af442cd871f8abf576def2663998d202d43eda8fb2a2b9bbf1a045a80469d8d63c4b747bc4acfdd7c8a20207f0b32eb7bbf583b30e13d42df90dc76b994874b8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/nn-NO/firefox-65.0b3.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-i686";
+      sha512 = "5f87903a7ad4618b471ef48fc38da9a4ce88cea5232459eeca24ffed5dc7e75da8125f3957ae8464cd7d51e263f696d03c8cb7cd93101bc9749769e39a71f0da";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/oc/firefox-65.0b3.tar.bz2";
+      locale = "oc";
+      arch = "linux-i686";
+      sha512 = "af95c64411a4ddb47fc8de18e2d673741a74ae0646a022b7afde1de2a295248d322ffcc6efee397fe07bd709262c4199d5c5cbeda45f3bf2ad7b9a0e5a937e1f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/or/firefox-65.0b3.tar.bz2";
+      locale = "or";
+      arch = "linux-i686";
+      sha512 = "7dad8c5b9fe7c8f1a8912d6348f69110998cef062703c87c43d6f200a5a5d6c46d136563f1c5d6214ce727a3566ce9ec71457f329880cad7ea7acb9ce634b7c4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/pa-IN/firefox-65.0b3.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-i686";
+      sha512 = "deb0834ef70c26bcbec884a5aef99351b04bb3ce3b74d9afd4d4c36ad8ca76d3cf4b295ef4b1a851289bf34183f228d992c91a9d946f7eb1d32389c4d447032f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/pl/firefox-65.0b3.tar.bz2";
+      locale = "pl";
+      arch = "linux-i686";
+      sha512 = "bb03b34014875779cc4402b0898eccaa8be105bc1f77671017daa358952afd53d7811da81cd1d39f71726ba5227bd599440263cacd19efee0c01bfc3399a8a20";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/pt-BR/firefox-65.0b3.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-i686";
+      sha512 = "d3d173f12de1db9f3b477fd22dbc8265b4420aabd5968d9f72846d396a51412ec9aec7e062e4e33f8d95af648ce88e806c426abbe3eb153125ba9cc548258d42";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/pt-PT/firefox-65.0b3.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-i686";
+      sha512 = "75a9a5aae496955998e58d74ad4b6ba01113b6f59a4be2f175c7e58f7c0ffed59165b2c7e4a36f6788bc9909a19e4eccf1f6680ad6512c0369e191793643236b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/rm/firefox-65.0b3.tar.bz2";
+      locale = "rm";
+      arch = "linux-i686";
+      sha512 = "dfbd24ab731bc042b391fd24938db717a6bec78678606fa54b89ccbb02a0b13b7e9720d9f6351368234e249dfff37bb8705e283a7cd6009df1184ec2cee606fd";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ro/firefox-65.0b3.tar.bz2";
+      locale = "ro";
+      arch = "linux-i686";
+      sha512 = "d80954ee5b19b5adc629001a0a12a3110c3eaa459d3323407544c1ced7880ef942978155e546e6f51ef8105512cb3321c09b6ac9e4546876394068ad4d8a2f0a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ru/firefox-65.0b3.tar.bz2";
+      locale = "ru";
+      arch = "linux-i686";
+      sha512 = "1d765367feabe6fbc4ccf9b399642da29d27ebad26fda9d269c56e5c1674daf259ad39cd56a7b7d8f6fe7edf56d2d4a8f6b4eaa0a701089d51d9376308eb4bc6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/si/firefox-65.0b3.tar.bz2";
+      locale = "si";
+      arch = "linux-i686";
+      sha512 = "ddaeade085d4a162d61cfbabd299cccb0aac8642cc9734bff6e280a234fe5168f6151ace77e6e96d22d738833fbb237cdb4bb9dff293135f5c2fc77de5d4d8e2";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/sk/firefox-65.0b3.tar.bz2";
+      locale = "sk";
+      arch = "linux-i686";
+      sha512 = "31ae2e80a1b1ebf997e5e9adc189319bb4edc35ba9aa79f1dfb7d70d6d2d344edcbe729cd3a076fabb34c2c98b9adc31c648e90f8dffc81ea1175cb77c12204a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/sl/firefox-65.0b3.tar.bz2";
+      locale = "sl";
+      arch = "linux-i686";
+      sha512 = "3351368e5046a527a322e7a19ba24946c56e5c73e882910c15dfde903f489aae316e95c44fd36113b67a296f3f01f42ebd2ae3dc7bf1fa3d50f8d24ef98df8cb";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/son/firefox-65.0b3.tar.bz2";
+      locale = "son";
+      arch = "linux-i686";
+      sha512 = "952b4a7f29715a37cd19f108c01b52f2682dbd596dc2fe6a110ead84b07e078dd2efc87ac0d523668968568286d4c506a23ffba7fc052c5d593bb63a3502b9ae";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/sq/firefox-65.0b3.tar.bz2";
+      locale = "sq";
+      arch = "linux-i686";
+      sha512 = "52c3ef9998c5ff84c79c2bbb99a09037f7359c117736b53593ea1de948b458adcc4236ded2f7ec703a026e7a4d76d8b872c7d080d0a2c38c51980f4facfe2e35";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/sr/firefox-65.0b3.tar.bz2";
+      locale = "sr";
+      arch = "linux-i686";
+      sha512 = "85f778bc5991b28310466e592d54bdf0d32b2bf18bd24db266e57a3887f3930525a100d48493d763980baa01b2e721842f8b3fabc3b0a7b6aaa95758f29ba1af";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/sv-SE/firefox-65.0b3.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-i686";
+      sha512 = "d703bdd3a955260d5710aae47cfb4b41126339cfe9b43a7f693df0bee0591d390aca8b5555af61362433f7480ed5f2eb8e5f1736d25a6986dc7ad4f15fa8b89c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ta/firefox-65.0b3.tar.bz2";
+      locale = "ta";
+      arch = "linux-i686";
+      sha512 = "d3bea278c0e995d764e842721cf7a0726932684883425b323fa3310b509eacd85b99bd7b7b76725ac2df94b89740862a84e247d0df5fe0e9189ab57a29b653be";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/te/firefox-65.0b3.tar.bz2";
+      locale = "te";
+      arch = "linux-i686";
+      sha512 = "83140dc032b41032e8d10ef75c9fb0b27b73598d5d795034205ded3ba969c3da5f86cd14d558f0196bf3f37f0d7f91ed2e62fb70de8756947e658c5b818e6b56";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/th/firefox-65.0b3.tar.bz2";
+      locale = "th";
+      arch = "linux-i686";
+      sha512 = "033b20f9f81cc730b263424ee03bc10441660602d46437ca349aaf2c5295b23111a0c52e5a15ee7a88f0047b78c42f2e83ec73d5062074465f79268ca8fb3715";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/tr/firefox-65.0b3.tar.bz2";
+      locale = "tr";
+      arch = "linux-i686";
+      sha512 = "e9d7ad31dd29353f024e49e933b3449d78623ac135de7f5229342c63755faba37638a79a09ad50ccd2113002addd73dbea166460fd35ee4c1390d68aeb9abcd2";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/uk/firefox-65.0b3.tar.bz2";
+      locale = "uk";
+      arch = "linux-i686";
+      sha512 = "afcb57a46a1be3bf6f6759e66eafbf7a443663bbaa77f278041bc27a49713426921846409ec539ba59eefd415d800bf04041c370d58385e8b39fc7ce5f53ff7a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/ur/firefox-65.0b3.tar.bz2";
+      locale = "ur";
+      arch = "linux-i686";
+      sha512 = "fe35a351875a992b9a2f7c53c868fc59823d82cfb300cc86a9d4879cf1c8e690d54525344965a08d3871ddc198b2a4c5793be39af9e6279e979c422a06a9ab5b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/uz/firefox-65.0b3.tar.bz2";
+      locale = "uz";
+      arch = "linux-i686";
+      sha512 = "cad3c41ccda3edbf915becaddab241cd6c4b242f869eaf2392b8d9be736affe534c98c90095152c12228e444744859347d3c2cdb43b6cff07fec58f675947654";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/vi/firefox-65.0b3.tar.bz2";
+      locale = "vi";
+      arch = "linux-i686";
+      sha512 = "d587e5c090a1cf934f592caba98dc12c139064f944376d66344bd0f23958d1a3ba75fd0d498f0b729d876cf7d425ece259391c81f119be62bfee10c0c717ee31";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/xh/firefox-65.0b3.tar.bz2";
+      locale = "xh";
+      arch = "linux-i686";
+      sha512 = "b22d3631e9eaf79301c0291700db2ebe8d45eff64783574a8a3f05a4af3ca37162f4d8fdfe783a0eefe4795513ba20717274d943a591a041161e0c283efc5f1a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/zh-CN/firefox-65.0b3.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-i686";
+      sha512 = "d108c643313557ba00a9cd39200e21994a74b2298f72ebc8b7aa44da20697d44a5dcf9fa42e2cc58caca2467fda7849e13bd899627e35de7dbef138495e6da5f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/65.0b3/linux-i686/zh-TW/firefox-65.0b3.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-i686";
+      sha512 = "6ab99674dcf65af13dbe11dcf57483bbba2de20ecbd23c83cada4954cf171e05ff65f39f1689a6fa15a3ce4ffdd937851cb88e76ced01d1fa2832f95b0cc7810";
+    }
+    ];
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
new file mode 100644
index 000000000000..2d9692c0528e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -0,0 +1,210 @@
+{ lib, stdenv, fetchurl, config, wrapGAppsHook
+, alsaLib
+, atk
+, cairo
+, curl
+, cups
+, dbus-glib
+, dbus
+, fontconfig
+, freetype
+, gconf
+, gdk_pixbuf
+, glib
+, glibc
+, gtk2
+, gtk3
+, kerberos
+, libX11
+, libXScrnSaver
+, libxcb
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrender
+, libXt
+, libcanberra-gtk2
+, libgnome
+, libgnomeui
+, libnotify
+, defaultIconTheme
+, libGLU_combined
+, nspr
+, nss
+, pango
+, libheimdal
+, libpulseaudio
+, systemd
+, channel
+, generated
+, writeScript
+, writeText
+, xidel
+, coreutils
+, gnused
+, gnugrep
+, gnupg
+, ffmpeg
+}:
+
+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;
+
+  systemLocale = config.i18n.defaultLocale or "en-US";
+
+  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 sha512; };
+
+  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
+      gconf
+      gdk_pixbuf
+      glib
+      glibc
+      gtk2
+      gtk3
+      kerberos
+      libX11
+      libXScrnSaver
+      libXcomposite
+      libXcursor
+      libxcb
+      libXdamage
+      libXext
+      libXfixes
+      libXi
+      libXinerama
+      libXrender
+      libXt
+      libcanberra-gtk2
+      libgnome
+      libgnomeui
+      libnotify
+      libGLU_combined
+      nspr
+      nss
+      pango
+      libheimdal
+      libpulseaudio
+      (lib.getDev libpulseaudio)
+      systemd
+      ffmpeg
+    ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
+      stdenv.cc.cc
+    ];
+
+  inherit gtk3;
+
+  buildInputs = [ wrapGAppsHook gtk3 defaultIconTheme ];
+
+  # "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 stdenv name channel writeScript xidel coreutils gnused gnugrep gnupg curl;
+    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; [ garbas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
new file mode 100644
index 000000000000..eb4d163d4ae6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -0,0 +1,995 @@
+{
+  version = "65.0b3";
+  sources = [
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ach/firefox-65.0b3.tar.bz2";
+      locale = "ach";
+      arch = "linux-x86_64";
+      sha512 = "3aa5439e7ad47441829aea92cedbd0c1752fe37a9f62c0f12c798759991968a7efbd5d0d431367d861642f069b439de5bcc8b4d14c4ddc9d92185b3caa012a12";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/af/firefox-65.0b3.tar.bz2";
+      locale = "af";
+      arch = "linux-x86_64";
+      sha512 = "e0f1e577945d5fb2e7a71d94012c7a3283a2c1edd8336308790d5aa3f4a41ec8d14afc5f62f9f5d396c1946eb0fa288be59e7b14d446f90b81ed61002f28bd3a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/an/firefox-65.0b3.tar.bz2";
+      locale = "an";
+      arch = "linux-x86_64";
+      sha512 = "6aacfbe4543bacbc47d8967871e25770f21290ef1af41d2705ff5bf46cbe3d299d98e32505f9978675bd73b36ef8f6e758c57f8d99c808790d7060f57094025d";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ar/firefox-65.0b3.tar.bz2";
+      locale = "ar";
+      arch = "linux-x86_64";
+      sha512 = "3c4870634f51668e21314d91995328c855bab7652cd4ad50068da258450ea7419bc0dc7cf629276aaaea379489a102068bfd3019b82ea75d321b1e2009b375ad";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/as/firefox-65.0b3.tar.bz2";
+      locale = "as";
+      arch = "linux-x86_64";
+      sha512 = "533996de7c7174c625beb5ac55e237f7740e2e5524a26dc58c4a1074d6bd8e5224ef972592dc00e1839286eee020c0eea6c88f007a4f4cff92b0aa50238c1991";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ast/firefox-65.0b3.tar.bz2";
+      locale = "ast";
+      arch = "linux-x86_64";
+      sha512 = "2ad54d678986f7d1b72e31248fe7ce466d56b32156639175d408e2dad1f880150404a0092635eb833980d53ba4bae2d5e79b5394b8ed23f4f2dd68fbc2307e68";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/az/firefox-65.0b3.tar.bz2";
+      locale = "az";
+      arch = "linux-x86_64";
+      sha512 = "f0a2e11f7f7ccccabc31b20c4fc47e7bdee0f5c6c406080db9bcda7c782bed771f53448b0226b3314d0b5093c87cb49fdf6c08ad0365b16149ec5dd553aa9c3f";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/be/firefox-65.0b3.tar.bz2";
+      locale = "be";
+      arch = "linux-x86_64";
+      sha512 = "28651ba3acc73a0736e889a51b8b25a8c900eae946f1dcaf6518ae9d3335332bc0489c63e71c14d45285925f69a9fec01322fec3e9c5b27d724b02b77c4dc5c0";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/bg/firefox-65.0b3.tar.bz2";
+      locale = "bg";
+      arch = "linux-x86_64";
+      sha512 = "b632b7ecfc470ccebf913f9d94143c2252374e010f6c0c0f056cd2dd9b2ca5ea642bc222128478dd410c5d434ed412428c5ffd2dd5ee793e499c0a7442994cdf";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/bn-BD/firefox-65.0b3.tar.bz2";
+      locale = "bn-BD";
+      arch = "linux-x86_64";
+      sha512 = "58ad674b45837ca4cafd42dabc299b017f4048f759f71b768b4485b036bd76d17ad04ea30ce9315e17abad3448cace0d212043e32c4b676ebb6a6e3ed90cb904";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/bn-IN/firefox-65.0b3.tar.bz2";
+      locale = "bn-IN";
+      arch = "linux-x86_64";
+      sha512 = "0a09785b10a2230a7fec2e8cc86b7e5ec7e7dd7b21e4135f8bdadc019679855c57fe2eb35677e52744c6aa0f77ac56d2d7d8574de28c1ab56f30c8d2d3279700";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/br/firefox-65.0b3.tar.bz2";
+      locale = "br";
+      arch = "linux-x86_64";
+      sha512 = "7eb6e634114cd06e69ef6bcc6cc90620a64beb8428a817ed6af9d7e4458ec8a356e908bb7371fa8b7fba309e57af97ada2b2091ef43a82dd08b984fbfac9c445";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/bs/firefox-65.0b3.tar.bz2";
+      locale = "bs";
+      arch = "linux-x86_64";
+      sha512 = "0e92d50db1f7b09a72eaa9c05efe7231def8bcdba1c8bcf32d09d1c465dc7f20d0b274d54a9f5d5b8ea78cb25267efd3e40d6888d58d4400a9db6f492428c637";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ca/firefox-65.0b3.tar.bz2";
+      locale = "ca";
+      arch = "linux-x86_64";
+      sha512 = "ab5fd6fcdfb68cff391a41eb3fafc5f2441443e2e8e5885c56e6487893b87944b97534dd35bc961589f16a47dce8ca383fe5100ed4871643f46f8bfa8c429d5a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/cak/firefox-65.0b3.tar.bz2";
+      locale = "cak";
+      arch = "linux-x86_64";
+      sha512 = "919c8bd41c73730103ab32392056fe5fb2720a4d1f946b9c74cf4167e777009b002caceeab7af7fcc892f149d60a52bae3fbe7e57a16222a4e27413b4c5bdb82";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/cs/firefox-65.0b3.tar.bz2";
+      locale = "cs";
+      arch = "linux-x86_64";
+      sha512 = "e105db62289d2fb85edfa2d51084221fdeddd43b8ed74d78c427f3293b43b5babe6f994b61752578816883dd6932481a37798c58f00b1087715d150263d597d1";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/cy/firefox-65.0b3.tar.bz2";
+      locale = "cy";
+      arch = "linux-x86_64";
+      sha512 = "45b0ded47574b185326a76039b40eeb99b288aba39a5621cd4ed65f9ae3fbbe362d95450cef60fccb6358fb961db61d7ebfc46652249923d99d5614d0f1bd22d";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/da/firefox-65.0b3.tar.bz2";
+      locale = "da";
+      arch = "linux-x86_64";
+      sha512 = "46723016e1760dbcabb43867ee85bcc3f78e1a417df73c444d2c2579ba9122ab2690c3fc96a5c563515d6f53f4f12ddca10cf0bf9868624e0b2e6248c6d3e184";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/de/firefox-65.0b3.tar.bz2";
+      locale = "de";
+      arch = "linux-x86_64";
+      sha512 = "543087fa053dd5f1b239034af4f74d52756c61cfa223e736cc38ba886b0df707533301330a7fed921628f82dee00d919f909fcc2c28695fa0f35c1f84793bb0c";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/dsb/firefox-65.0b3.tar.bz2";
+      locale = "dsb";
+      arch = "linux-x86_64";
+      sha512 = "338c36a61edbdda57477a8505cd58e9d14510c9fa52ed2dbc3ba955effeb1629648a8a2eae10419e136e861704cc592ac58f61c0c3f16c0b805cb2d5096288c5";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/el/firefox-65.0b3.tar.bz2";
+      locale = "el";
+      arch = "linux-x86_64";
+      sha512 = "33be0fcbb337b1695f6d11ffa483cf34602cfb338f1bb1f3cee0e340b4b3368a78df45c4ce5bbb6475ba42ea0562647d8914f5981b9607734eba7622ad316d2d";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/en-CA/firefox-65.0b3.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-x86_64";
+      sha512 = "61d585d5c7f92eea06a2b3b4d792fa4dd7928343072972983d3a4137bf95b6567097c792597fee4eb7a6de83a7102543496b9fec29267b52fafac95a79f6a99f";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/en-GB/firefox-65.0b3.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-x86_64";
+      sha512 = "c7ff1736b0bf2d088fb9aac2cb88ba16135189847e6b15db3854e86d4068a7e9473a5ded175e4334930e967a83af1087777540b9575051cc81c2448449ee7249";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/en-US/firefox-65.0b3.tar.bz2";
+      locale = "en-US";
+      arch = "linux-x86_64";
+      sha512 = "ef8f4546d944cec5caf53fb80cdca07f790befded785abcb38084231a396ac4fd2aaadba7a385eed6fd195036244c61265b495def25dc168a089207e2b972825";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/en-ZA/firefox-65.0b3.tar.bz2";
+      locale = "en-ZA";
+      arch = "linux-x86_64";
+      sha512 = "08e5bebb32f2d0e29700cc36588d6b684560b31a6357459aa59c51e236ddc1216c6ad2b66e2440b243119f013b8dd924b6ca0ae7747239d9d35df486c2c4de66";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/eo/firefox-65.0b3.tar.bz2";
+      locale = "eo";
+      arch = "linux-x86_64";
+      sha512 = "70b68785eaff8fef237cebfa817fccd6b0ede7628630cf719cbbc155860c6ae8befbc1ff0b25b47a3a3ecfed2d43510beb64dea2569ddbe3ddf5709b2602411f";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/es-AR/firefox-65.0b3.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-x86_64";
+      sha512 = "1597f16eef402d1eb4a04dc605bb4b5fa4a9ddfee24eff8643c3daafca13f99e84aa865311d660dd88c19927f6175679992d6572f33efe24523a13916a6fb3bc";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/es-CL/firefox-65.0b3.tar.bz2";
+      locale = "es-CL";
+      arch = "linux-x86_64";
+      sha512 = "ee14a1ff4ebba53eab209c1bb8d140a918aa392fe91c50ece378338bb0277867ce624adcf8ee67868c654fe8421772c9e8fd0b59d1e0ffe773b57ff3e9c93850";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/es-ES/firefox-65.0b3.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-x86_64";
+      sha512 = "45a7542c064a1faac52f5691e4cbee997e895b3aa102b7b485fa9f0f8e63876a646c86558c48f1c06ebc322793cc54fdffd5faec45b6a4fc731e28b08e82e644";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/es-MX/firefox-65.0b3.tar.bz2";
+      locale = "es-MX";
+      arch = "linux-x86_64";
+      sha512 = "6d6668a13b42ecf21a36515252024a8698585cab7053960a3c5f521d2d01bc349c03ddbc7038f5e3476ecfac94ce598d8158525f4916882faccb4a2282ddc564";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/et/firefox-65.0b3.tar.bz2";
+      locale = "et";
+      arch = "linux-x86_64";
+      sha512 = "f55e56a6091b08a953c12aab6c2c0bb00c086192081a6047d3bdac02966156e8d419acf1a1510fc4effcaae3eac52f81211627a187639ae64a8217f02a1c1ae3";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/eu/firefox-65.0b3.tar.bz2";
+      locale = "eu";
+      arch = "linux-x86_64";
+      sha512 = "f06ed33998a7762a715fc1faa8ea7057b4cb0a13fe8df61170e746866dfa1eac6e0f1bdbc2c58f827287d6dd44312a378f03ed84983fd50ebbf98c3767d7975f";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/fa/firefox-65.0b3.tar.bz2";
+      locale = "fa";
+      arch = "linux-x86_64";
+      sha512 = "954eb387583e99e56736b760fc47ee7e7930728add9c600e1ef89c7cc3f106016116a267ca64f59138a9ce7d0945f5954588527c6d25a64da15a8cb29f5128dc";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ff/firefox-65.0b3.tar.bz2";
+      locale = "ff";
+      arch = "linux-x86_64";
+      sha512 = "174d87ff82c6a1320b78700a1fb22212559fb79cde45720c371bf0e4edce7a6e3eec7cc67934d29349096d30f2754e389ec3dd28611ddd0ee13cb68b9b26ea56";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/fi/firefox-65.0b3.tar.bz2";
+      locale = "fi";
+      arch = "linux-x86_64";
+      sha512 = "b874a5b6bb31f3be67e82f120ea2895bd97792f66487f9f6bdd0b04869f6d23600f4d64a62c465b9b2e69d3e0849f92337bdbe9b5b2413ca2c99a0c3ef22677c";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/fr/firefox-65.0b3.tar.bz2";
+      locale = "fr";
+      arch = "linux-x86_64";
+      sha512 = "6a3c5868a0572d4eff75cf58130cbde61145fb839c84b5d91f3487ff8127381a7fe73c8a1199e30a41e43271bf9160988689b47efccfd59c116d2c452d5d1ef6";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/fy-NL/firefox-65.0b3.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-x86_64";
+      sha512 = "2a1743e63e89afe2dd5306b2355d1846ac6fc53d430f967003b7e1563242922eff3fd6937953e8c7b3a339f005abc0167b429d118a685406d045178e9025b46b";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ga-IE/firefox-65.0b3.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-x86_64";
+      sha512 = "19f1904a8669cb82203fd4e281213dec248739e759a0bf9d15dcd224b12f3933e46ffdd0f0ae690e690d245b19d392b24324cd5e62326711d5496572c4b82f03";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/gd/firefox-65.0b3.tar.bz2";
+      locale = "gd";
+      arch = "linux-x86_64";
+      sha512 = "e21bf30311b642e1115510ce355032261576d0db4c895f96775326993d3b5091a9008a0c6c87bdc67b1ca30f2cd3c98dc911d6d1b710abbd0ca0c32c524a4793";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/gl/firefox-65.0b3.tar.bz2";
+      locale = "gl";
+      arch = "linux-x86_64";
+      sha512 = "09a41973b51590c83de0b7b85ee19ab1c9c4d40e9624cbc5241a24d54299fc21da705ef085be5f2de834b2d7c81471fd697aeaad4c67cbdae7a4f4825a5e7135";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/gn/firefox-65.0b3.tar.bz2";
+      locale = "gn";
+      arch = "linux-x86_64";
+      sha512 = "4672432bda6e1a52f2a4103f81b871b00a10ada6841162653c3fcc5d1527bc93d2aa76bce5f905b4ebebff7b2df0358cea046ef5c55ff92a9b409b8250c8001a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/gu-IN/firefox-65.0b3.tar.bz2";
+      locale = "gu-IN";
+      arch = "linux-x86_64";
+      sha512 = "09523e6bd2933cba6fc3006d8397b3c27056f971996f71a8dd02c3b1488b9498f7810f13b72d7761866127ccf2655015e874058e1a025e418c2e4b14c6444bf2";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/he/firefox-65.0b3.tar.bz2";
+      locale = "he";
+      arch = "linux-x86_64";
+      sha512 = "c781597491bd387a1131f3ca77981338e3e82c98477f3c1232a1e5b036ee1a879a0cce1bebe6163ae40bc36b106db580adf593b83911b580e9370319eb1d14ed";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/hi-IN/firefox-65.0b3.tar.bz2";
+      locale = "hi-IN";
+      arch = "linux-x86_64";
+      sha512 = "221beae00d178ce8760d50d3d574aac49054fa7f64c2d70acea604c180b9837bb46e018930075a67c492db87170070f381df1707762f2986d035715c4b128c86";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/hr/firefox-65.0b3.tar.bz2";
+      locale = "hr";
+      arch = "linux-x86_64";
+      sha512 = "a5fe87e93f385a3eed5b79f4023e21edcd0f0dc8621e8806e53c12459fc433849adac3119e7be7555f30e18b0c74d6134a0458b370e01a1befd546fb94b94b49";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/hsb/firefox-65.0b3.tar.bz2";
+      locale = "hsb";
+      arch = "linux-x86_64";
+      sha512 = "e207628a4ddd04cf149a2cc106e5465e609fe48613fe97125d2fd976552955482d34995f831e6db59d21628acaf20725ed436d1fcf6d896536ba2dcaacbf5d4c";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/hu/firefox-65.0b3.tar.bz2";
+      locale = "hu";
+      arch = "linux-x86_64";
+      sha512 = "035752b88f754fce44877a696e0de7ba228d3fdb1af46e78b1616ca8c21be1d7f382985f82538b32dd36a7c50d7c01ef55c6de50ae64c87813e308953168b2b2";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/hy-AM/firefox-65.0b3.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-x86_64";
+      sha512 = "86454db0cac982948ef32434ded1c33b51496d872a5cbd2d2bb02a77e7ffc0276e2a3f2de30a1f22cb7842ff688a7292e4785c194abd791e529dfe63d1eec787";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ia/firefox-65.0b3.tar.bz2";
+      locale = "ia";
+      arch = "linux-x86_64";
+      sha512 = "013ef16b3f3cee11281e86081f3e2e729d2cdaf36863e15c4e55f0c34a434791c764e0bdd3e62c81072e2694180be37af90bc9b7e3ad87f25055a9d5e05f9d36";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/id/firefox-65.0b3.tar.bz2";
+      locale = "id";
+      arch = "linux-x86_64";
+      sha512 = "ca4a6773af2bc254e363bd4502ddf288445d9a0a1b7a08b2a7a2082b14878dcbb00293d390d3e8352c384a225801ee8fa3eb13c3424fb212e6ae404641f38659";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/is/firefox-65.0b3.tar.bz2";
+      locale = "is";
+      arch = "linux-x86_64";
+      sha512 = "29dd0e49485d368371d451305e1204e19c3cf94e9355dba7119dc838b2701f5ac9b7f613f55b62e6f60dbec1e2b1aa02302c9153166072c008ce66a42bb6958a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/it/firefox-65.0b3.tar.bz2";
+      locale = "it";
+      arch = "linux-x86_64";
+      sha512 = "db5e4da51f12df493ce59a6a66ccda699e28be3356f3888202ebae6eedbf496f0ad83e3307a5d44d68015d6dbd858f4a10a32539b4b1fdc74b23d14921285162";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ja/firefox-65.0b3.tar.bz2";
+      locale = "ja";
+      arch = "linux-x86_64";
+      sha512 = "3369a7bbf0199323adb5a63f7c79cdbff7448c623d01be098d1ecdfd72922b9dceef4400f0c2ba56c0553f5bb26571c9f9f71baff3333a372c1063e041300272";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ka/firefox-65.0b3.tar.bz2";
+      locale = "ka";
+      arch = "linux-x86_64";
+      sha512 = "26a46881d195c81dfb7e4f77b42d9de1866f08656067bda117bdf37c831d7b3c7c402adc53d4cd3804f98800d97322690a881f468181ddbf5194c6e2a7a6fda3";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/kab/firefox-65.0b3.tar.bz2";
+      locale = "kab";
+      arch = "linux-x86_64";
+      sha512 = "eed0639bb72a7ef16207bf9c4cbc6e1db7d59a197d569014fc8a28c4962a32303eb16b1294c57312b3935ca7fc4b17f757415f8c89ec51979ea4a266c96b76b8";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/kk/firefox-65.0b3.tar.bz2";
+      locale = "kk";
+      arch = "linux-x86_64";
+      sha512 = "ac5289eba4de254ea32bc2fd0d457b50c7c2a20e8a5c23f6375000ba1f636bdbb40aa4db89aef895a375db8be7e606fdc339bf08d8b0ec56a8685bec4ecec0c0";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/km/firefox-65.0b3.tar.bz2";
+      locale = "km";
+      arch = "linux-x86_64";
+      sha512 = "832d71243316f8ca38049eba22d70e889f9cc149a61a9af6a67bfb0b639452aa52b42c02360d57fa1ab6a5737b21e1d728f8c84d6a99898856546bafe8301ea3";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/kn/firefox-65.0b3.tar.bz2";
+      locale = "kn";
+      arch = "linux-x86_64";
+      sha512 = "666dac64d56e91a08c4852ba02570930b3245ea818d2621d78cc1c032d8ef6bf6fc37e8be053b86437ca218a59667df0d877b7faa7ffe91edebb78bbe5cfc73b";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ko/firefox-65.0b3.tar.bz2";
+      locale = "ko";
+      arch = "linux-x86_64";
+      sha512 = "31e36b14a9f53b41df176754af57db01a06d00f028f72de8d2a75e6f020026194ba25713e0d53855677332b14a24167e1b01550c4f6a6e4ee641b28ebca070af";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/lij/firefox-65.0b3.tar.bz2";
+      locale = "lij";
+      arch = "linux-x86_64";
+      sha512 = "4a2c417f4bc9d177b1363d4d694ffafdd5bf31b6736ffafbd8d3a8c53e27f21f59fb54fdcd44b1bdc80f5c04c693219b2dd43b815e3adddc2c637d7fef5c8cb6";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/lt/firefox-65.0b3.tar.bz2";
+      locale = "lt";
+      arch = "linux-x86_64";
+      sha512 = "7c6b9734ac11bc47cfbd375c0474a991ef809653f9d96600f4473f190c4f42324dd203cb38007f4a434a2fcde4434ccca2b0de2947987a280cb827d1a3dd8bbe";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/lv/firefox-65.0b3.tar.bz2";
+      locale = "lv";
+      arch = "linux-x86_64";
+      sha512 = "f11fb42d0ac7d0f7b463205cca27f558f2b3021d32df314e50b6f900d15ca56bb5d9e3014d2d34294c1340c32e9f6903e4b561d703c50c5576a22492f351270b";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/mai/firefox-65.0b3.tar.bz2";
+      locale = "mai";
+      arch = "linux-x86_64";
+      sha512 = "d8cdd21785a93cb7b6b69ebda4727e51100ae02d7aec97792fdda09daa04daa1faa9d6beac7e2de59623af3361d4613d43cc2e8c3d95678377b64b1d25669a36";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/mk/firefox-65.0b3.tar.bz2";
+      locale = "mk";
+      arch = "linux-x86_64";
+      sha512 = "a79bd5974ddf5ff45a7e9504f59cee50d5f4daf3422f8cbc39f513b0c13112eb6812a634357e31617f0526c02399d07288fee677aeed5ba40af5aa66f01a7ab2";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ml/firefox-65.0b3.tar.bz2";
+      locale = "ml";
+      arch = "linux-x86_64";
+      sha512 = "e62bb49de980f96b39943f186bf043eacc69eb207cacc7f5f528b16b115a2afd88a9668876d8257223797ef71d560980a3d6b9441df640d9fa67ad8238d48cf2";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/mr/firefox-65.0b3.tar.bz2";
+      locale = "mr";
+      arch = "linux-x86_64";
+      sha512 = "66261f86c46d6594e12d72cacab12c193246d8d41d0bd912630cfd19cdbc71bb1369462f3e7639050f28613ba22e8fe0ff555ccbeb4163b2526970e678cdb0b8";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ms/firefox-65.0b3.tar.bz2";
+      locale = "ms";
+      arch = "linux-x86_64";
+      sha512 = "4ec3c6b220789e259b1bc6a5fb997e939d38664125f6ea29bdba2d17a037a7e7c14048af026889042f3931751ba5a820e216fe3625ededde45dabd259645eae9";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/my/firefox-65.0b3.tar.bz2";
+      locale = "my";
+      arch = "linux-x86_64";
+      sha512 = "fad5efb344dd39700634d4a47bb2a1a3415eb779ba8bec9af9b70d852ccd8e93d5ca352e6cde3f0b8b86ad97191bba4e0b294ea5c995a1d38985188016279e5a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/nb-NO/firefox-65.0b3.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-x86_64";
+      sha512 = "dde5f0e2fb7a88b3cb45055885ea9cf1086bb649644007fbd456437c8ee139fb8e0ce1def492c7cad27977651029e95fa60c7627aaa5e353b1b39c6003aae911";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ne-NP/firefox-65.0b3.tar.bz2";
+      locale = "ne-NP";
+      arch = "linux-x86_64";
+      sha512 = "dbc44521b07a9ef296d9b858dc26a4115641d954c5fb14c403945c401fbf39b6d13419cc55d507c0e2d1ec6445174b31985dc0f5216bd0b6ec62dea8d652f88f";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/nl/firefox-65.0b3.tar.bz2";
+      locale = "nl";
+      arch = "linux-x86_64";
+      sha512 = "a79eab0fe62d723e54371b492b88696da8f06f60db726d573006352546b0127a94100ba43e46ed2e76c4da581b8013b23bb8b81eebd91e26a128d92cd72c9d90";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/nn-NO/firefox-65.0b3.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-x86_64";
+      sha512 = "14a43e2ab6f2ae1242a914f1a0812238fe6ee0e1986e14c9a3cfeda0e57b5a700c762537a3053ddcbf0b0384089c7eb6d8fde550c23bb10f84bf4728b7cad069";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/oc/firefox-65.0b3.tar.bz2";
+      locale = "oc";
+      arch = "linux-x86_64";
+      sha512 = "d84cd184512e3b6525e2ac3fcbee18631bd2116ba54ccbb8f52f3fc6fc93d52a69026b71525ef9627c53e5894862ad53840ff7a8f3565fdd6b8cad3b2a896148";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/or/firefox-65.0b3.tar.bz2";
+      locale = "or";
+      arch = "linux-x86_64";
+      sha512 = "6d44cb74de926c8a3806254905f251b893de88de4b33f253e782ca8697355a85c5c33e95bb410923bcc9a2eb34c801d7fe404fefb183bcd0c6a57eea269e3a75";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/pa-IN/firefox-65.0b3.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-x86_64";
+      sha512 = "a60dc4d9a1489ee6b5ddce71c06a350d494fbc4a0e5c0b04b503f2bfb81b098cd7088c68afd1ed8c8ddc559908b1ef018adbb55f2f1fce09c95c80b6aa2ddcb0";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/pl/firefox-65.0b3.tar.bz2";
+      locale = "pl";
+      arch = "linux-x86_64";
+      sha512 = "5a65070ad3c2ad98758390bc5bb580742d8f15477367036a53052f1e630ddbe1a93050c2e6aa07f946d571ce13b41db57ceadf052c1180561846544aa8475011";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/pt-BR/firefox-65.0b3.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-x86_64";
+      sha512 = "dee79457c96e19d15784b5bad5b9c70b4df72b3d05d1f5e4314e9ec5dc8369acd529ce260b4cefe7703e49b7ecbb9551d3dd386252a5fb09d8e85790faeafdf2";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/pt-PT/firefox-65.0b3.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-x86_64";
+      sha512 = "6752d8b8824dad84a2e3b4be8f1c171a1e242f2528b42abaf6565bcfe3244903b4e521dc746aff6f208e32cac41a261d7e58105e3963cbdc1c4124ac8c8f7fc4";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/rm/firefox-65.0b3.tar.bz2";
+      locale = "rm";
+      arch = "linux-x86_64";
+      sha512 = "ada8f83d251c413e4867344bf0da08ec98fb95c8085e7e5165b836b594431482c5889d79746bbc45ace815b7cf07caf467fe1cce6ee4b3abdf0278607a15d0ad";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ro/firefox-65.0b3.tar.bz2";
+      locale = "ro";
+      arch = "linux-x86_64";
+      sha512 = "0cfc6985fe8c9a18a1e7697de4012662dd5a8825dd1753e26231c15492e144380390a6d58e96f1cbe441f24b87ea6b100ef4a405716bb22bcd9cdd8f08e4fe99";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ru/firefox-65.0b3.tar.bz2";
+      locale = "ru";
+      arch = "linux-x86_64";
+      sha512 = "82ba07c65818c59ac8dcebc282d310f6ebd4449bc57d2244e5412d500c5e0ceeae627ab7c78ea4dea3e9617d674c415b586657b4db8091212529f0eafda2b49b";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/si/firefox-65.0b3.tar.bz2";
+      locale = "si";
+      arch = "linux-x86_64";
+      sha512 = "7fd14db5bd7f02633a5c761f7bd12906ee13154385f20f6d118a3428b856a519162f340016e3ca70cb406d5a7505781545c6e33b17902c5bc7b74b4a14154945";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/sk/firefox-65.0b3.tar.bz2";
+      locale = "sk";
+      arch = "linux-x86_64";
+      sha512 = "481f3a49a92a2a565288a3b0ae2a619d966bf139acf81c41d3da4f17b0a8cbb30ac88e8c587b10f8d7ac9ef251d331398014c8fe73bb06438a73090123de1103";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/sl/firefox-65.0b3.tar.bz2";
+      locale = "sl";
+      arch = "linux-x86_64";
+      sha512 = "a05d0a6b3ff60a707fb972368742276eb1ec8e3eda3e96305a5df54026308be34a92e6b5b508b87e85f0c2d0daa8c9bc96f0a554354825da4bd83ffabd377ebd";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/son/firefox-65.0b3.tar.bz2";
+      locale = "son";
+      arch = "linux-x86_64";
+      sha512 = "e44ab3aa15480f9e375b7936692489b19e25865488d3c9e848bf0a209587fb2d38dd92c528516eee087f277627143a78f451f3848a619261614dabe74836dedc";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/sq/firefox-65.0b3.tar.bz2";
+      locale = "sq";
+      arch = "linux-x86_64";
+      sha512 = "820dc20dad5ceb6f0e5922bfe6ea2992ad8784a10ea61d230a8bdad0cca3cfbd0c15655a2d4f1ed068ffa48084af45d641b62e651af9e330580db07c6be99422";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/sr/firefox-65.0b3.tar.bz2";
+      locale = "sr";
+      arch = "linux-x86_64";
+      sha512 = "38cfb013518f48ff34bd268190ecc906f80fb731b96993afaaef953380b7f120ad3d17afa9f54f70a1bca506925ac2d30eeaf779f3b38465213b985c9caa0c74";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/sv-SE/firefox-65.0b3.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-x86_64";
+      sha512 = "df8e43823fd8e818b203849f292c489c941257f6649d9a55c9c3392895c35539f75053ea0c01d9849ccf3b4f5c2d8a400a68750608cbbf3b21a3b07ce31c9d90";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ta/firefox-65.0b3.tar.bz2";
+      locale = "ta";
+      arch = "linux-x86_64";
+      sha512 = "130d634aeb828ee0b0330237e86be3b0788a9ac5b3b78a76e6e3bdf0fff4dad131c814c979a4616472beaa2c267438b91e40c047f538450e70e53d71258839a5";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/te/firefox-65.0b3.tar.bz2";
+      locale = "te";
+      arch = "linux-x86_64";
+      sha512 = "63cc747a190674980844f095c56065e16165bdfc1ffc823008438e76071e8eee7a0ec0e6cf328d5e85add4fcc9a1fa719fa7fd5e5b4ae0949393783c0e79ebd1";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/th/firefox-65.0b3.tar.bz2";
+      locale = "th";
+      arch = "linux-x86_64";
+      sha512 = "1175bf3d44e60cc74817848163963ab70cb2e1327eda3f91e1a595c5ea83e2793bab257f26d7de352c2bbb060b13984de2770b1c3b8313647214e2d2b6b979c4";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/tr/firefox-65.0b3.tar.bz2";
+      locale = "tr";
+      arch = "linux-x86_64";
+      sha512 = "a786dbc3bf3ce23ef9b28800b6629a516110a97a5ec016a31d0368e4723632638c897fb866a715f15c34302b3924ca422408b235cb1161d58f40306b2235f98e";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/uk/firefox-65.0b3.tar.bz2";
+      locale = "uk";
+      arch = "linux-x86_64";
+      sha512 = "fa41614fe46908bfc930cb829314ba905fe8cca4ca42d28cd4de96942fddf51e702ff1d1e93c91a6c279b6b9e31bb61df4c1e7d628b7c0db1d73af4726a4408a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/ur/firefox-65.0b3.tar.bz2";
+      locale = "ur";
+      arch = "linux-x86_64";
+      sha512 = "40654ccec7453f998a07c94881fcd75876ba9bf0688b84b05169a0278aea2cdbb8467561dbe3ffab7f9e81655501bd22d182f03e52cf12f8cab6593112dc51d2";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/uz/firefox-65.0b3.tar.bz2";
+      locale = "uz";
+      arch = "linux-x86_64";
+      sha512 = "c4e6d61a417e8528a9964d9bb7de159d981b3b5fd8d0a21ebe88906a9e88966e696a5ea20bb5b49bac209646d6663ee3f6b5b1833139c286f5bcfc63d079e3eb";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/vi/firefox-65.0b3.tar.bz2";
+      locale = "vi";
+      arch = "linux-x86_64";
+      sha512 = "f69b71a19c7e2c3ec4361281a83035ced75c4920e1a908c3a625672f515aa00f322ffbef04a7a180e28dd99e85f1ad13991cd2bd0e202756c5199614441cb0b2";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/xh/firefox-65.0b3.tar.bz2";
+      locale = "xh";
+      arch = "linux-x86_64";
+      sha512 = "1412f0c6130abc56813a6837507295e20281d795690688100b586c3c55e2f3904cc1f6b7c2f36dad56fb352e1435f3d9038c2beec5a875151695fdacd54e5f9d";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/zh-CN/firefox-65.0b3.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-x86_64";
+      sha512 = "f80ed3ced90e643df92cf920da4a178dcdec9d9f71841b72d74d6d87725f04db888a7f7d7a3b0f8f924e8461a2154c3db03757d1f038d649143079fdb956ef93";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-x86_64/zh-TW/firefox-65.0b3.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-x86_64";
+      sha512 = "0437cf6416d3c80d05dddbb3a959a0ad1a10cdda0103e2035408943d4050c35d82d77865d9ca12711c5f0aab6e3a502beab5f32c07ffd6879050ebd113ffc223";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ach/firefox-65.0b3.tar.bz2";
+      locale = "ach";
+      arch = "linux-i686";
+      sha512 = "35631c33abc53fdb9e68beae5dbdfe690ce2df64a2782e8834aea623831d1df6612f16db468475f58af7d5ef9476619ec47cd4162073a43d3776b37568b7cf37";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/af/firefox-65.0b3.tar.bz2";
+      locale = "af";
+      arch = "linux-i686";
+      sha512 = "10b669c53733f97b5580b4a58ce8ba4103168c75452942e8a64d2f9841f136d8506578f87e39cf39f6d020c2bed10e626d63535417fcca53852bdb65724154b7";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/an/firefox-65.0b3.tar.bz2";
+      locale = "an";
+      arch = "linux-i686";
+      sha512 = "61d792aa47c688044924fa8907631be382fe69889554a41da66ee259ffb1ff4e6307ce5b65fce9bc85f3d3e948017b932d942964e18ac8ed15eeab4d0d43e6c3";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ar/firefox-65.0b3.tar.bz2";
+      locale = "ar";
+      arch = "linux-i686";
+      sha512 = "86f4b1f1f1c50cdf0794562e44af09be901fe5e839493f1f9f8c51cd744ab282186f6db916bf07bfb7421a90133f0a13e2425137b48396ac2c0a2d9573485365";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/as/firefox-65.0b3.tar.bz2";
+      locale = "as";
+      arch = "linux-i686";
+      sha512 = "9a5b0d0cc356060b492da18364ee122c89067d8f133eec1b6d320ee8e0f2f7fcbc83fecdab2a93b54a19c4b23873025214092e443bb89b8b2150fe85b7424ecf";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ast/firefox-65.0b3.tar.bz2";
+      locale = "ast";
+      arch = "linux-i686";
+      sha512 = "c1d0149ff3fd5e2fe046c28b4ed9bf629e7cba97b64da9864ae924b9516e3cd114bd457a163ba0d2bad8ba66ad8f631cfe5614f12506122c2c1c22dd11d6a651";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/az/firefox-65.0b3.tar.bz2";
+      locale = "az";
+      arch = "linux-i686";
+      sha512 = "4f006d504cb5fdc68628f1fb376d6db1e0e9753fe805c0bc7857ab22a7ababf7650a10ee6fad5b5ce485749a4445ccdc0001a2041918211aee0cbeda29e44701";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/be/firefox-65.0b3.tar.bz2";
+      locale = "be";
+      arch = "linux-i686";
+      sha512 = "7a4117de4066be8390f335a852c400c68e522ddcf4892d669bb3168a81cceb661f695f16f334bebea22fadcc55f241af5129e7a65a435054d784719d48391d31";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/bg/firefox-65.0b3.tar.bz2";
+      locale = "bg";
+      arch = "linux-i686";
+      sha512 = "f4752e7e2cace8a2b4fbd5e5b57acb967e699fe7055c5f169ce6330a1d00d55b5e1d21f78f6e42a21c68e78ffe833aa843c0237f38e61f8d5ad9496a8710a34d";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/bn-BD/firefox-65.0b3.tar.bz2";
+      locale = "bn-BD";
+      arch = "linux-i686";
+      sha512 = "6f2ed15d31bc9a4c0b53778f854ec452568eb25344f46ffe4865e74d3cd5e33240fb928a5024bbad7ee270ca0cde730056afac8c8c914df5c137e720dd2c51cf";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/bn-IN/firefox-65.0b3.tar.bz2";
+      locale = "bn-IN";
+      arch = "linux-i686";
+      sha512 = "0c84dd59a4934f2764c80a008c6858802e6a2c9c9c0dea90c1f7bf682b986461d92d3e27ad6b3ffd80c614179df882540ba487eb599246428e89741ad2e517e7";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/br/firefox-65.0b3.tar.bz2";
+      locale = "br";
+      arch = "linux-i686";
+      sha512 = "2f945808cd0b4728c315496c3eba43844ac33f4cce04cec054fd999b25e78924af88b2b6bbe933bde86d9af026f12f5b6459ec2e5c5a0a781b1651f77892ebe0";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/bs/firefox-65.0b3.tar.bz2";
+      locale = "bs";
+      arch = "linux-i686";
+      sha512 = "eed143b25aabe9eab7ee736494d36aeb68f0d48b92087d40e236a5bfabf71416fe34108ec5ccd4278e457a892f76010f41b36951c6d833bd17c56fd06cdb5b30";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ca/firefox-65.0b3.tar.bz2";
+      locale = "ca";
+      arch = "linux-i686";
+      sha512 = "78b30c33e94e1de22c9853942ab7f7ca004c7773b423479d7ead80024241eb623063810f8e404a1e0abb4151366e7957d9fb9c218f1e426c802de9f4620fd69f";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/cak/firefox-65.0b3.tar.bz2";
+      locale = "cak";
+      arch = "linux-i686";
+      sha512 = "551ec0c7b56d04b412a062c05ee4e7da693edd74597ca9a4bf1fa053ea3258ac11ba223042f8bf82156229ff1249ef4b1413030ca5a0a366c9987a3db3a25c95";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/cs/firefox-65.0b3.tar.bz2";
+      locale = "cs";
+      arch = "linux-i686";
+      sha512 = "a3ad7a658ecefda2cee15ddfa6e57589eac6fb5a0e5c1012917b856fefc702128501c1c4991319d7e2565327b613377c7d260db51433223728516ba304a058cc";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/cy/firefox-65.0b3.tar.bz2";
+      locale = "cy";
+      arch = "linux-i686";
+      sha512 = "9878923fc9caaa29867f4d15ac42c3907c1d15abf7b038d6050722800f6674d49816b1d61eb5091744e2e5c06d5e150c04974496f48c11dae9f93f24a7fb82bc";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/da/firefox-65.0b3.tar.bz2";
+      locale = "da";
+      arch = "linux-i686";
+      sha512 = "4918572d72235545b12ffc848def5264be07ddc484c9ed894a9603293bcfcccf08f8364b91acb9a5f60de4e6c9ac70fd75f1ca9cac1102564f96b21a8aa6c02a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/de/firefox-65.0b3.tar.bz2";
+      locale = "de";
+      arch = "linux-i686";
+      sha512 = "d8a30f5656814a6178c75558cdab0dd43fa47572f41090fcef9cd54809efbf2ffa66c16950c4cccfbd64c2271bdf22d12e99dcd4f871ef2e27f7c0dcd43c491a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/dsb/firefox-65.0b3.tar.bz2";
+      locale = "dsb";
+      arch = "linux-i686";
+      sha512 = "de68c4335af973b311a0768707fe4767582996d4742e5c33e47f24b33ad657ee02d2338d09f1dcbbccc92274e9d32fa82ad22f34e3089d28ec8338d315a85f5e";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/el/firefox-65.0b3.tar.bz2";
+      locale = "el";
+      arch = "linux-i686";
+      sha512 = "848d0fe411e96a83f76a0796af13737fc83ac96324168eec2ce815d22d61274115e01160439db9dc2125ef80edca564aa9cde751e77a0f2e0bc2890f9e37a8b5";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/en-CA/firefox-65.0b3.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-i686";
+      sha512 = "81c4b888a459d372154370b737aa4ca83372bbdfdd6b9e376578e63b80cc6a43e28ec35dfa1724a4a83ba5bb27347ea7b9a0c5048f994d1b0151e3af59018d3c";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/en-GB/firefox-65.0b3.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-i686";
+      sha512 = "add4ca507f49d0ffea8ffe66786786ea0f18a3cbdda28e145d6547a3afa3d19b20c68a6db2a9b78f6d5a781153890538963da3a4efd919ffaef6e1d864ef54ca";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/en-US/firefox-65.0b3.tar.bz2";
+      locale = "en-US";
+      arch = "linux-i686";
+      sha512 = "71c68e18f15bc5d4a9f285064fd066751f1475a9872c653f3aed1ce16cede4b72925378840ffd2c6c1917bb5d1e6e2238a47b37c37bab3b56e84814424f9ca55";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/en-ZA/firefox-65.0b3.tar.bz2";
+      locale = "en-ZA";
+      arch = "linux-i686";
+      sha512 = "69049234d9853eedb130fa02b0a52910bbf94d711bb1ae6a84dd79b6a8fddaaeae7a9b9ee014dc55fd97fb62c6e1b06f76f3885c4af67683136f3dda9dee16c5";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/eo/firefox-65.0b3.tar.bz2";
+      locale = "eo";
+      arch = "linux-i686";
+      sha512 = "6c4ee23f917beb0bfe6e3d89f30322bcc6b2e8ea657236b2d7ace5a500b00ec666431ed4dc9aa21c7f680b03017d5283cac17f657d52044a6092310809a0cedb";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/es-AR/firefox-65.0b3.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-i686";
+      sha512 = "68a44f4f540a4a9bb69906dd9b7749f210406b1bdcd619bb767c091d957b0160d8a25737f390ef3627ae9bd900e5af29a338c91868c853c3d169933555c0d09f";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/es-CL/firefox-65.0b3.tar.bz2";
+      locale = "es-CL";
+      arch = "linux-i686";
+      sha512 = "1fa133133483fb7100463dfbf0d7569189c2a296584bcd8d1247cd2a887e7d2a675641c437bf7efa0bdfa4ef866f2fe7b96574794a1b1c230c2b1f347ce2353e";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/es-ES/firefox-65.0b3.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-i686";
+      sha512 = "2775cb8ce21d72b08288683e28f7bcb427adcd6dce8ac076e1b76183cd2c150729decd30756834eb87563c43dc7a360f6ea255085490c4c724e1bd3257c53294";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/es-MX/firefox-65.0b3.tar.bz2";
+      locale = "es-MX";
+      arch = "linux-i686";
+      sha512 = "070d7a5f90fb0715451dcde764827a9a15a2d3898f9f659bd4e9ed783e49b41b5f7e051b256bf3bf73ad33f149a94828ee9d0778e820ad6114b1eaf87eab8dc9";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/et/firefox-65.0b3.tar.bz2";
+      locale = "et";
+      arch = "linux-i686";
+      sha512 = "17b97ad64bfaffd3282cc380f2387504a1369b2ce5666e34117303e7aefe1ffe9487d44b573b7fc06772db9a61b14aabd5b7e4e59e4003aa022fbe51525284fd";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/eu/firefox-65.0b3.tar.bz2";
+      locale = "eu";
+      arch = "linux-i686";
+      sha512 = "300b1f12763eb0b62a8c949883062b745f2e06512187d726bca4cf9b317f26c40bcd95630619f060822ab1418abad91886bfdfcac21020323678dcb492d52af2";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/fa/firefox-65.0b3.tar.bz2";
+      locale = "fa";
+      arch = "linux-i686";
+      sha512 = "ff70f4ae1c3d8a7557e55787a535be8a853644e7f4c47d85863f08b55244ab053f9f8a924ea13e977495dfa72d9c8557f95d75c0694da719e5e301bb87de7cac";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ff/firefox-65.0b3.tar.bz2";
+      locale = "ff";
+      arch = "linux-i686";
+      sha512 = "f886001325ce020d20821b8e604aa945319549751c00ba172d3c357f01c8a4f20ab57df928ca4e4f7e3aa6db78628d03262140200444bdd6b7a5058f8e97544d";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/fi/firefox-65.0b3.tar.bz2";
+      locale = "fi";
+      arch = "linux-i686";
+      sha512 = "6fa009bf937c28a184b8a1128c6ffdf152eb91034640e6c994d08066fb76384f94187d93a678fe4e89ca4b7db7cdc4d81ac007c8d4ba0c46ca908e9994f0ee65";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/fr/firefox-65.0b3.tar.bz2";
+      locale = "fr";
+      arch = "linux-i686";
+      sha512 = "8ef2778391a2621d93427166be291e1ba9e2c8b9540c2c1c72ca6a6e21abc1ee15f833d2ec30c0184c410c99e04e9b3c4a34b6bd5ce46bdf8db61cc69684937a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/fy-NL/firefox-65.0b3.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-i686";
+      sha512 = "29325985c5456c711669e71367c381de833a019936def1ee26fee02040672de1d0dbd98d060344e29d38efd6266ce66738237592e732609df38ebc51413bd25f";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ga-IE/firefox-65.0b3.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-i686";
+      sha512 = "d993da38e3b916c2866c50c6e97d8afd31af9b3095e240883b4800aa400b7f8c11ad7b627827cab52542511002f1f386d56d2e1cab4e1a1db4e58041ecbf4155";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/gd/firefox-65.0b3.tar.bz2";
+      locale = "gd";
+      arch = "linux-i686";
+      sha512 = "84fa9bae997cce30ba08a8ded6b73f22911365303e44d3025d8d3a402f32c6fc377e577aa7f0766de1de56b2b971e7bbd7cfced23066f173ae03eac4f01d6b67";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/gl/firefox-65.0b3.tar.bz2";
+      locale = "gl";
+      arch = "linux-i686";
+      sha512 = "4739f90c60a288dd7df121a2f794345a7da4243900e307dda935c063dcb4068b8e59a7d6e2d8925a8c7401c5177f52203179f73c615dd92ceaa07a1e3b5f547a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/gn/firefox-65.0b3.tar.bz2";
+      locale = "gn";
+      arch = "linux-i686";
+      sha512 = "cca61f9bcf7000e01c77ccc59a6f8e62a4ab61f7a03d8a864b183b87f306bd08fc6a373404154301b89ef25d35de212bfc10d5a92a65dacdda04175c1f63555c";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/gu-IN/firefox-65.0b3.tar.bz2";
+      locale = "gu-IN";
+      arch = "linux-i686";
+      sha512 = "61e74f6b728cd984492db6f38281cd298ee4d08759f656aed3c6fe89097a71d7a99c9f42f6f1c3c5ff0ed8cf9d756856e3417b36b41c3bfcac7c83fbcb1a808e";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/he/firefox-65.0b3.tar.bz2";
+      locale = "he";
+      arch = "linux-i686";
+      sha512 = "0e9000a64c40f63e6108142668906875f30bb0c61a42e2ad61b7055251037035c802e4c8bf3367550aef47d94089d366e557c22dc426bd5471176e6f6123dd3b";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/hi-IN/firefox-65.0b3.tar.bz2";
+      locale = "hi-IN";
+      arch = "linux-i686";
+      sha512 = "1f1a7cdee25287fd1688151bd823da3d2dea9f1f509f4f66b25c326773933c45a0768f2d713f7e7dda7e6973581105672af8036c93e89f581fda30873ff3b46d";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/hr/firefox-65.0b3.tar.bz2";
+      locale = "hr";
+      arch = "linux-i686";
+      sha512 = "e4fb7b936ff13e048d168f3a8e8340e337b954432fd1340b5c2d8003eda47214c46167e08e19cbea90cdc6519e1ed197cc253add6d9f057073c31fb4f7360677";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/hsb/firefox-65.0b3.tar.bz2";
+      locale = "hsb";
+      arch = "linux-i686";
+      sha512 = "007fc2d797080e04ea7c5e6f430ff4549476b4f9fcff8261bd10e43fa5f592cf62d730f6d48180e9e1347a0868f8de0e427b192b16c312dbc79922bfe1b8f340";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/hu/firefox-65.0b3.tar.bz2";
+      locale = "hu";
+      arch = "linux-i686";
+      sha512 = "ee8d85071818aea552489af24403b18fcdc3edd86431bcda5f4d6e2ce6824cb067e08e5525b3f239a4e99889480e43d879c187ab88a6a236fdc126db6cf6f9cb";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/hy-AM/firefox-65.0b3.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-i686";
+      sha512 = "f1b1228257e198bd59addd4470e3fa05b46cc419e53cb6e79f6156ded3935f45e757ef02aef9fb5acdbcae268847fef23160ef11b628c5035d1d13ecd8a3d767";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ia/firefox-65.0b3.tar.bz2";
+      locale = "ia";
+      arch = "linux-i686";
+      sha512 = "38d1859fe3d4de2667e43dd1c039a933f9808568c1b85f76bc4aa56a3c16ca08fdfc44970b48d9cefad3e343865aab43934f717f6ddb5fdffd21fc019bfbe9de";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/id/firefox-65.0b3.tar.bz2";
+      locale = "id";
+      arch = "linux-i686";
+      sha512 = "f7a63cf9aaefcfb58ab3f464003c32e2e8dc834f734f679271f11df80cfcbabdc650f49d578ef19bd2f2555ce8a7535db03fd921bdf2aa1085d6c7fec33cb421";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/is/firefox-65.0b3.tar.bz2";
+      locale = "is";
+      arch = "linux-i686";
+      sha512 = "d6a17493a6060b52531fb01305b6bebfff43750d66e3846c5577b1dc8e71af34bfc8bbe2900fee1f64657bc15f9316559d96c4a1305034678616527aaad594a7";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/it/firefox-65.0b3.tar.bz2";
+      locale = "it";
+      arch = "linux-i686";
+      sha512 = "eb38ef3de0d0a8f910674964040c362bff29434ece8384cdebb95d2ae67a4eb8895b10ce0aa764dea10ce881a6980d9665d71133d9a1b77287f18a9a83b47399";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ja/firefox-65.0b3.tar.bz2";
+      locale = "ja";
+      arch = "linux-i686";
+      sha512 = "a593e8e8a5da55cd545c457e8a710c3137de2702f751e2d1076af1655a519bb787e9ff9435e072cbe6d5b631227e740209adf8834928826c2c194f1d4161ee68";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ka/firefox-65.0b3.tar.bz2";
+      locale = "ka";
+      arch = "linux-i686";
+      sha512 = "41bbbfc2c6a81b1a6506a8ed52610f0297c4885ecda08536d4e0d6c218a559cbce8d90e9803c62a9ec1adc10f01691207a9be07f421b1d7ad3b51438a39233e8";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/kab/firefox-65.0b3.tar.bz2";
+      locale = "kab";
+      arch = "linux-i686";
+      sha512 = "07ef286419dbbb9334d48794474e3784080ab1fa60b208ddfd46c45943d5c3cdbddba2316cb47a6fe89b9607e859c0b5d7d25bd0756abaea5cd5cec4d52efa0d";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/kk/firefox-65.0b3.tar.bz2";
+      locale = "kk";
+      arch = "linux-i686";
+      sha512 = "13b9cbea87cc563fb57befdb2b0edf9af57f7aa8283b3fb0dd7233e3ec13c99883b189302dafd3101c66cba065db98b97f996c068c02f8e27502b9a38f8f8d5d";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/km/firefox-65.0b3.tar.bz2";
+      locale = "km";
+      arch = "linux-i686";
+      sha512 = "b45684b567e3b4cde034493ad0ff808c87ea3094bf7cc7621934e073637b30f2a812e056017e8c1d9604db7075dc36b33d7063e0dd7914a0e06559900128f8b5";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/kn/firefox-65.0b3.tar.bz2";
+      locale = "kn";
+      arch = "linux-i686";
+      sha512 = "2e011eb656439285e70731bae9dc30fe9e2fc06e50657f71037c20221c8673ff31b43d9851800a084347b8340e3caec980c98840869c84369820a7b3f85fedc8";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ko/firefox-65.0b3.tar.bz2";
+      locale = "ko";
+      arch = "linux-i686";
+      sha512 = "354b2309da4222931786767c1297eee81eab21cf59e9d655dcf5b7ba7a5ccef754881a86a908f08c206f72af9171e548fff97cfd53a249fd3db7d20ac74aa795";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/lij/firefox-65.0b3.tar.bz2";
+      locale = "lij";
+      arch = "linux-i686";
+      sha512 = "6664d0bd118ffaf52630e21e361d2354c480bec3774e1ef8e20a4a4e50b88d2729e6ceb4c5252c025973d699d7d8914a8fb1251590692df16fb4c7550685d907";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/lt/firefox-65.0b3.tar.bz2";
+      locale = "lt";
+      arch = "linux-i686";
+      sha512 = "eeb4a5710ffa88f31537e39ff7f6e885f09b3064b577eb9cc34dd03703a66251aaf69dcd4b0325c31a0fcfe4e8735998224eb6fd46cdff46b91d80a70ad61f18";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/lv/firefox-65.0b3.tar.bz2";
+      locale = "lv";
+      arch = "linux-i686";
+      sha512 = "e90aacbcc6b4884996e80a038d7996cbd08a12d46ad3fcb49bd7db4e52f2d5c4b1565be82beff806ecb3b16935d281fdf84ec5c6aa731f6b75f435f8584a1f1b";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/mai/firefox-65.0b3.tar.bz2";
+      locale = "mai";
+      arch = "linux-i686";
+      sha512 = "e9f7d43cc2d67e38fd560f765f9779c5f77e868260a05287add23bc1acadec9e57a302f84f95a3e7243a5cd960b4c4a8fdb44b6b308d09b0c3c7e515bde97aa9";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/mk/firefox-65.0b3.tar.bz2";
+      locale = "mk";
+      arch = "linux-i686";
+      sha512 = "90b9dec499e6d2b3d00cfcfbcbcc11a2ac8463a21f299e21847ab6376b41327a1c79e1d5bc9eedf691683083aafddd566e87ed8e38fc080442204e8cd516c771";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ml/firefox-65.0b3.tar.bz2";
+      locale = "ml";
+      arch = "linux-i686";
+      sha512 = "f750e4b133095231ae45465d896288ad278c3ffbb8c1eb2ba3722d1995d76a7eb4c7058a26af01f52e131fe9f1dd05a907a2f1e50ea8b48613d124f293ee4a71";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/mr/firefox-65.0b3.tar.bz2";
+      locale = "mr";
+      arch = "linux-i686";
+      sha512 = "db2edf0c78b251074b4fe561e69696c9c2583bdebb64c03f82d32b223439400adc046c06982af6af5dd161ad46fb7d2c73b5eca64716d8d102ba60a2eac66c58";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ms/firefox-65.0b3.tar.bz2";
+      locale = "ms";
+      arch = "linux-i686";
+      sha512 = "049456cc866a610bfe0628f48c8b2e8973c4b7445f9be343bf94a586399788939e23d2d8c8fecd42957b597f6044581015a5b2b12cc2f81d5e070c6ec9055f08";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/my/firefox-65.0b3.tar.bz2";
+      locale = "my";
+      arch = "linux-i686";
+      sha512 = "6c5e41611c8ae6835b9d40d293f5a89d8af21fcd70cf41c6a91d5801b64c735850378456b7cd063e472ce8d53dee3ec34dd01dd06801069b7f1bba9f707d54fb";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/nb-NO/firefox-65.0b3.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-i686";
+      sha512 = "b3a3c105c9cda51d30cc010a70e6415160b685c4f17f7da9d2778e146ca18c85ea604013cc85116f324164641ac7e6a3870694ece1fb9d20e0f803abafd6765b";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ne-NP/firefox-65.0b3.tar.bz2";
+      locale = "ne-NP";
+      arch = "linux-i686";
+      sha512 = "877ccadeedb22df1dfde0238c06c966a351bd7f6ed3a0125728addeb6caeef1f86c495279e3c697cf42780c3798b082742dcd4893c98eaf7631336a1861e7e2a";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/nl/firefox-65.0b3.tar.bz2";
+      locale = "nl";
+      arch = "linux-i686";
+      sha512 = "ca467db0ec0f7d81e1dc24a8f4a2a8d91e4e84b5bf713848896dc8ce8d6efd257747ca2e45bff2631ea7db74b52eb204f2f9e72dacf3f246086b324828274221";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/nn-NO/firefox-65.0b3.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-i686";
+      sha512 = "295515821faee96f622088cc3c09fd846705314d81349484df6ca7e8ee8b13751c851cce195da33fad99a602713468959112fc1900c72fe3bf36c23cf4500ede";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/oc/firefox-65.0b3.tar.bz2";
+      locale = "oc";
+      arch = "linux-i686";
+      sha512 = "a6baf7df53118c4961ed61790c6c3fca4fd1a085f1e70b1c6be1c235442d59d52e50f6cb8324c284b04ac41999da6bd4afb13b1239706784b9d5f94d546de031";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/or/firefox-65.0b3.tar.bz2";
+      locale = "or";
+      arch = "linux-i686";
+      sha512 = "a20d2bf4a07eba0c9f0d381b969fd306d24e9b0143a75ecad0c47530f4b000ad5dc02706f6b1943c01f660aeb0770037ab46331cb79634bee5e0e219e4f07052";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/pa-IN/firefox-65.0b3.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-i686";
+      sha512 = "2a2eea08c493e9b815cb1b3067e0a190a0511822612f7bf3173ab1ad63ef1eddd47a9852c759a59e2ed056ff17430ba7a981dcf7f2a4a1c2762ebb2d7db3212c";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/pl/firefox-65.0b3.tar.bz2";
+      locale = "pl";
+      arch = "linux-i686";
+      sha512 = "9f13479337e88faeaa5ec277a434738e30898295f70d89b687d24fea044fb5f0809aea7a323ffa0bd6e5943609a2701fa22d9e40930cbc727df6d6db39c98820";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/pt-BR/firefox-65.0b3.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-i686";
+      sha512 = "e5eb4373fb9d549678e22d83d0d4fe80857fca3f0d1fd4df3e7fe6d6b7a87d56e5f4ae25fb678be591d79a50018c108c16272b0e100ef7e91705563bfc7f4a39";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/pt-PT/firefox-65.0b3.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-i686";
+      sha512 = "18d7bb2b6514e9a057546476bd671b8fb1e5572119b7ce13837374c16fd3b0b7aa05674bceb2bd68a8abdca35e7c9f5e3962e8f4120f646e8a543014a6bc82f6";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/rm/firefox-65.0b3.tar.bz2";
+      locale = "rm";
+      arch = "linux-i686";
+      sha512 = "f9b170baea3b86c9473ecc0d1e0928627272d5e579ba1784fed1ab89155967fa941b1b185579bde1d064f962f312af18df0ee307da85141cdf5596bf37934224";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ro/firefox-65.0b3.tar.bz2";
+      locale = "ro";
+      arch = "linux-i686";
+      sha512 = "39f03910b2dbdff9989b422af91bc658c44c4df2c33a0c27670c4f2801b1a58f316de7121cd094adeb83ab76e59cd1b0e537f9bea51d28d812041cb28e8cbc65";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ru/firefox-65.0b3.tar.bz2";
+      locale = "ru";
+      arch = "linux-i686";
+      sha512 = "19c6501d7f7e0d9a024c8a6959f5d8fa940ff4e86cacb0cc5c521abb4b126a3d46eb33304d13683f907e539f02b74551ad4e4b375a3be9e22905bd0e99df62ee";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/si/firefox-65.0b3.tar.bz2";
+      locale = "si";
+      arch = "linux-i686";
+      sha512 = "5c326b2570f33772212ce362ba77117827c779c61fc7639fb2395a5ed24634e63938da4c28612cda1b15604f2b5dc6012265ded2ff1825c5f4f04e946c99f718";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/sk/firefox-65.0b3.tar.bz2";
+      locale = "sk";
+      arch = "linux-i686";
+      sha512 = "23e73244f1083248c95dbf8126388e9b04ad73f22a612f73dad31080360dd4fba307d40fc866ab6efc98b039f3d35d6c50bb972213ebcf911983bd0d0c5db0c9";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/sl/firefox-65.0b3.tar.bz2";
+      locale = "sl";
+      arch = "linux-i686";
+      sha512 = "4d5c95bf2a0093858fe96b161b678bfd438a48d4f28944aa8cc9cdec2b81acc6a5e08b46b28314d8c2b050145f5c01375d5d7e4a2ca8e24bb92670378de71d82";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/son/firefox-65.0b3.tar.bz2";
+      locale = "son";
+      arch = "linux-i686";
+      sha512 = "d86957c2e439f103c893bc07a6489f287b0729f0fafb2e22dd1377e57f81c4040561026f293809b9b87358f6a8869fadc435286d29964a3493743df4b5731cc9";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/sq/firefox-65.0b3.tar.bz2";
+      locale = "sq";
+      arch = "linux-i686";
+      sha512 = "4de95c18336abfcf08d527c85ffa3ef1d2372e277d0396b8cca65f65dbdc2e26da9d5fd7822e085dd5276542c64dfcd9f3e9625683c794b7ddf66f7e24a28c96";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/sr/firefox-65.0b3.tar.bz2";
+      locale = "sr";
+      arch = "linux-i686";
+      sha512 = "77c58de80a2ac7e2cfd27fd456c26e8375feb22bd38ef0bf63a99a58243503252320f7b98985aa108db7f98620d24e43bc05f75262e05aa56c9496026ff169d9";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/sv-SE/firefox-65.0b3.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-i686";
+      sha512 = "f41bd371238c0b63b5f6b34db8e13d1720806b021cd1587d1a5b54b09e25a050bf76152542433cba4b654ff02174fcb0b67d582996d86c4cdb02186c02da0d02";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ta/firefox-65.0b3.tar.bz2";
+      locale = "ta";
+      arch = "linux-i686";
+      sha512 = "5b2260994251215cdbff0e269c866a8bf9d4919334ea89ad3bc6c917d5777455ea9033d40ea28e2d348ed7a13c9138735d9db0319d7ed2f99e9cba887ed2cbc1";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/te/firefox-65.0b3.tar.bz2";
+      locale = "te";
+      arch = "linux-i686";
+      sha512 = "be84f90d6085fb86abcff4a27973e3396b8a85d226283f2b186b4dd2c6644f701757430119cc97e8092f77a86a40e6ec594b11379313d3bbfb02e1c970333193";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/th/firefox-65.0b3.tar.bz2";
+      locale = "th";
+      arch = "linux-i686";
+      sha512 = "cbbb63636a3ccf8d22ee417aa2b93fc75b18e463ee808da1884b5e24e624bde194c05b9e6c42926c43bc99d3629621e6cc9678950b95f0baee998dea34a03215";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/tr/firefox-65.0b3.tar.bz2";
+      locale = "tr";
+      arch = "linux-i686";
+      sha512 = "c047aa406bbebd370a2734ddb890db59103afce3ad2d6d1a3304fa0bf7582cfc92b1a82df254c08cee44e3813bae19cd4478e84f582b5eeea013ea905f7ce3bf";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/uk/firefox-65.0b3.tar.bz2";
+      locale = "uk";
+      arch = "linux-i686";
+      sha512 = "f68c878fd0b2f7beaaeca9ad136a1de3f638be44cc3bcdea9e8400e53ffeaef4f8c8680461646fb43ccfad6b196f55362dc264aa6bd3a9f5f3585a7195b84bd5";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/ur/firefox-65.0b3.tar.bz2";
+      locale = "ur";
+      arch = "linux-i686";
+      sha512 = "2005fd2d144c2b27e7e337b6dd7f5f69674b26ce4efca694bcdddcd70ab7359dcc506b878107500bd925d1011b29e78722c03178dba7046205e17a4ae64efe0b";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/uz/firefox-65.0b3.tar.bz2";
+      locale = "uz";
+      arch = "linux-i686";
+      sha512 = "691661c527dc6b1af71bbb2fdb8b4c58b145dd287124d88ed93adb55fc8b1d692ef6e09817d6beb99d77df4b12b19252d8893b15181f9b071caee72a84fcf8c2";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/vi/firefox-65.0b3.tar.bz2";
+      locale = "vi";
+      arch = "linux-i686";
+      sha512 = "68fb1ab0a828c862521d17ab83eabbaae20643ee9d51c5b44ecc558df810aa69db5126996adb9ce718dc5228e270cfdeddee67380510947ad10c2ec9426f4d2f";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/xh/firefox-65.0b3.tar.bz2";
+      locale = "xh";
+      arch = "linux-i686";
+      sha512 = "95aa29065774170934aeef544d9307861b8cc67ef9bbbfd3a325a6e3d2b0b3b455d8e2380c034741517dd923aa4e69867a043d25ec608e0235f7d2b7d3a63537";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/zh-CN/firefox-65.0b3.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-i686";
+      sha512 = "24b28934b65f86c18c63846873f2199b5b9777b24049a38b1b635cb93808909e8f65b09562d9870cc93fa9e11b0116bdd87b13a38fa550cc3831eb4bad9fc0a7";
+    }
+    { url = "http://archive.mozilla.org/pub/devedition/releases/65.0b3/linux-i686/zh-TW/firefox-65.0b3.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-i686";
+      sha512 = "72c10bb2f0fae9a2b5494b4ce082436a46744775c269d3ab72c5d90d28b2ca1c153e07ce0b32f1542be4c1750e40ed38af42202aad6e4222c432f431a4cb5f79";
+    }
+    ];
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/firefox.key b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/firefox.key
new file mode 100644
index 000000000000..bd27ce85c94f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/firefox.key
@@ -0,0 +1,254 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----

+Version: SKS 1.1.5

+Comment: Hostname: keyserver.mozilla.org

+

+mQINBFWpQAQBEAC+9wVlwGLy8ILCybLesuB3KkHHK+Yt1F1PJaI30X448ttGzxCzPQpH6BoA

+73uzcTReVjfCFGvM4ij6qVV2SNaTxmNBrL1uVeEUsCuGduDUQMQYRGxRtWq5rCH48LnltKPa

+mPiEBzrgFL3i5bYEUHO7M0lATEknG7Iaz697K/ssHREZfuucB4GNxXMgswZ7GTZO3VBDVEw5

+GwU3sUvww93TwMC29lIPCux445AxZPKr5sOVEsEndUB2oDMsSAoS/dZcl8F4otqfR1pXg618

+cU06omvq5yguWLDRV327BLmezYK0prD3P+7qwEp8MTVmxlbkrClS5j5pR47FrJGdyupNKqLz

+K+7hok5kBxhsdMsdTZLd4tVRjXf04isVO3iFFf/GKuwscOi1+ZYeB3l3sAqgFUWnjbpbHxfs

+lTmo7BgvmjZvAH5ZasaewF3wA06biCDJdcSkC9GmFPmN5DS5/Dkjwfj8+dZAttuSKfmQQnyp

+UPaJ2sBublnJ6INpvYgsEZjV6CFG1EiDJDPu2Zxap8ep0iRMbBBZnpfZTn7SKAcurDJptxin

+CRclTcdOdi1iSZ35LZW0R2FKNnGL33u1IhxU9HRLw3XuljXCOZ84RLn6M+PBc1eZsuv1TA+M

+n111yD3uDv/u/edZ/xeJccF6bYcMvUgRRZh0sgZ0ZT4b0Q6YcQARAQABtC9Nb3ppbGxhIFNv

+ZnR3YXJlIFJlbGVhc2VzIDxyZWxlYXNlQG1vemlsbGEuY29tPohGBBARAgAGBQJVrP9LAAoJ

+EHYlQD1/DRWxU2QAoOOFRbkbIU1zKP2i3jy/6VKHkYEgAJ9N6f9Gmjm1/vtSrvjjlxWzzQQr

+kIhGBBARAgAGBQJVrTrjAAoJEMNOV0fiPdZ3BbkAoJUNHEqNv9dioaGMEIpiFtDjEm44AJ9U

+inMTfAYsL9yb15SdJWe/56VCcoheBBARCAAGBQJWBldjAAoJEAJasBBrF+oerNYA/13MQehk

+3AfkljGi252/cU6i1VOFpCuOeT7lK2c5unGcAP0WZjIDJgaHijtrF4MKCZbUnz37Vxm0OcU8

+qcGkYUwHi4heBBARCgAGBQJVrSz+AAoJEPCp59zTnkUulAYA/31nYhIpb7sVigone8OvFO19

+xtkR9/vy5+iKeYCVlvZtAP9rZ85ymuNYNqX06t+ruDqG2RfdUhJ6aD5IND+KD5ve7IkBHAQQ

+AQIABgUCVaz9fgAKCRCzxalYUIpD8muMB/sH58bMSzzF9zTXRropldw7Vbj9VrRD7NyoX4Ol

+DArtvdLqgPm0JUoP2gXINeSuVPpOfC676yVnBEMjIfqEjq09vcbwayS+Ncx4vQh2BmzDUNLE

+3SlnRn2bEWr9SQL/pOYUDUgmY5a0UIf/WKtBapsPE+Zan51ezYSEfxDNfUpA4T2/9iWwJ2ZO

+y0yIfLdHyvumuyiekJrfrMaF4L9Q0OnJwp1PwkvN4IVwhZeYDtIJN4nRcJK5LrwU7B97uef2

+hqBBll7/qCHl5y4Khb0csFanIg+pQLPUJdIiYtzoFtlgykB61pxqtU9rqGKW02JzEUT8DdPU

+XxmMBy6A8oGeBRH/iQEcBBABAgAGBQJVrRdcAAoJEGVzgtv/JREKQJgH/3nD/3/SumL7nG2g

+7Y1HQqWphUbn40XWvjZcHq3uBUn1QYXeZ5X56SANLM2t+uirGnNaZXW3cxEl5IyZVLbmcLWE

+BlVAcp2Bf3FXFbdJK59f+M+y2+jZT9feTyrw+EtLoiGTxgkLdJyMyI0xGmQhMx5V1ex1CxhZ

+K2JPjzCVYriBI0wIbmKi90YNMQoSsdMhYmX9bHl6XWS9TCDWsqj25FLYJL+WeVXpjO0NjRwE

+E6pc/qldeJYG5Vbf0snGxIerXe+l5D8Yd4PEAnpj58+5pXeoGYZn3WjX8eTFMAEU+QhLKWQ+

+j/Y8Kijge7fUxnSNBZ2KEnuDN/4Hv/DrCFLv14CJARwEEAECAAYFAlWtZVoACgkQ5DJ8bD4C

+mcBzsAf/RMqDdVHggQHc0/YLt1f/vY9Y7QQ6HwnDrtcNxxErSVcMguD8K6Oxir0TMSh+/YuZ

+AW8K4KSgEURwZqz4na8/eOxj8bluNmlcAseQDHswqU6CyB95Woy3BocihH7L0eDXZOMzsa33

+vRQHBMioLxIbpnVtVbFR1z7tmyfjcOrzP32xo5QoPoczKX26luMBjAvbw1FC0is2INnmUSYM

+4uH7iFZuXGPFYxcAqODqy5ys3MoPa4oZ71d0HoiRil1+s0Y+2ByddZ19pE2TXp4ZXNYNUj/2

+aRj8b4sTjR4rqhHIx/vfoK+VCNy/skFUZOyPdbbymE0stTRSJ1gr9CZLcBWYF4kBHAQQAQIA

+BgUCVcFZcAAKCRCJFz+VfFX5XqApB/938p+CJiDRnh2o7eDWnjSyAu7FWmWGkOQnjI/kraKx

+1vojsYnKRXD6mjq1QJ8Hsp4taJnLQjcokNTUiST4m/e4ZJExPWuJKkwlralWGH6NpqYcgWPa

+jSYb0eYQC4YqS0kfyzolrHdKI8Y4NGEU7yy5zsHwWkHt/mpNQMrYnXwyWdIrc03X/OXo51dJ

+yshJDRw3InREyBblFJcLvArNHz219wMrXAicPytw4wfPpVrmDx6GrZcI8q8ECWCjwSXXv7hR

+pEuFLSy5XPhMc+wYBJjNlUoiFBAF/7zENd3rMn9SCQLiIFYe0ubmO+bpeGy7TizbxOaCIfgU

+ouyy0BQXNuJBiQEcBBABAgAGBQJV0hrqAAoJEK18uZ+CSLoPzEIH/1D6sJMNAJtZCRGhJXvv

+6SYhv4pUVNyDF9FnUvRsovliojoe4IkuBTWKhPGrxbiD5IO/izr38shqNhhm9JE2/SQZHObY

+Pi+lyfDKbJgImTNxmS4F7JHnRLr37VxK1sVvuNkynJnqvCcp1g5xwNIx1rKcka3iuqJj6toM

+8XQfgsTHH1rUkWHbUV3QwNzXm+yhFm2s6QzxBooPzmFn8AY7CXD4pvcMR+M0Zy+e42nngd8l

+zRnmTBVig4pRq0GCMulFG+XjeVQZFpoIIxo2k1lczbRmGttONdGWSjxBUxReoTbSwM3C/50N

+robycGQgY0gd6LGtWtU8/uEfklEy2NluxYWJARwEEAEIAAYFAlWtAUYACgkQVu5xjc4OFUs0

+OAf+LM0dyyvUFGdXfJDpP2xMknXzsHAXWFEtH5jein58mv6dD3fTVcCouo1vMQH3WFFSLYZv

+wtNnHGrSBqFbNKqZ0ATQ5tcYaWsSZ+MVJJMXJDXFG/Oihg1nNOM33VdfV0RGPKP1I4cEROxm

+s3TUFkHW3cSCgMzs8I1OxfSoLrm6da8EN+2ct2InqzdQL2yisyTyrdmXoNpwXDxApKYkvVHQ

+4+9eJI5m0ZAr0mBjIeJdATcw4/lIVKTrV7UhrChxiffYJcz4SSC1crmr+2Fzw53CyAsAmYal

+UHep3Yr05oQ4oJRX9X3VrY/yELHwwxXaxCAdwwHbbXAMhZsPk9Mc20J6BokBHAQQAQgABgUC

+Va0isQAKCRCj1lIXO3Y+j6ZeB/91Q9/qr5oMWgOMsix8kflBLw2f/t+tRR0SWDw90bG1npJB

+6nq5Hl+Bz4/A4SWFTFrrrlZi1Enjn1FYBiZuHaSQ/+loYF/2dbQDbBKShfIk3J0lxqfKPAfK

+opRsEuxckC8YW1thGxt5eQQ8zkJoqBFTBzwiXOj3/ncJkX9q9krgUlfTSVmrT9nx0hjyNQQX

+rghsmBtpR7WCS7G7vNRGCNUorhtviUvL+ze1F7TTSGspVsVxo2ghmz5WT/cD9MV1gcVjojYm

+ksh5JIl39jCHr9hl8aRId/OfzsN+TKuBcpAxDkm9BCAps7oY8FlLKDFZTtHa000AkodKHT88

+nwnvKuqPiQEcBBABCAAGBQJVrTkDAAoJEPbQ92HczOykK9YH/0MARo3HlYXeS2bDqM/lwK/r

+QcPCCyYke6wbICjncbCOjgXHqG/lBhClNs7hp/7gqkUaR7H5tmeI4lalP40mSHHnnFvMD3Tc

+yhn350igK0bgrjWQDaYxhKlHT3vIXd/C24/vRSAxmqIKbP+IoXOyt2GMTQq8GOm2dgYRaTkw

+yHnGWnMaibctX8D4oCYR0/D4YJqPkfqobf8+1ZfP5GaMbSxE/Jwdo0kJa4vPjEzFXbygAbnc

+apzdwN6zgel2zh885rz7B7vIpMr/Y7eV85Q68qdyyhLe8cL8Y18YPzpFf+/PZNbgYxouafvn

+FwBhPQwg0gUF/+1eM3UE2ua+saSTGduJARwEEAEKAAYFAlWtCVsACgkQM0LhtmejiGMovwf8

+CfYJHNbwiwSMUoP4n7FrmElhBtxvlbnCMZKz08v+lFsfS3wU1LUN69GqirfF0vkQRSlSBp7n

+iCLHQCfSoqHMLgxF0P2xgXLjaYM/t/rxXDawJmW18G04dqFrtCPZTbwMT2PsPHTiWQdaN0e5

+0lXk9Vo+l6VbwQMg4zH7icZadeJgQooxFalHYFVXUVeex9t8/YdanFVrHFa3tao6azBTSUkJ

+vZtIu14SfxigDWIIwsx0xpVfJf3a/xC6HY3Q1a3NeBz3i6DwaK5wYqijZKl0WVdULKyqU98o

+F6y0mUv3d2o/p07Cqgeo6xxMkHqu83OLa2a0C7tYPLgL4EFc2FtikYkCHAQQAQIABgUCVaz7

+KAAKCRCWO3gxCjexfKxrD/4npm1rB7+pPlotbqK37Mur7egPbVSAzVNU/zUKPAuGUeP3C64Y

+N77ETx1kDuS+meAqMDHFc9Bf8HivPbtj6QcK96U5KstbmSh1Ow9YiQtxJgxGjg/CzREgZAFc

+jy0MhoklyPsFhv07s6MLOJMSM/krEN5nqjifQ0WdmTk02FLoHVWcLdjfgMiPiSjGbU3k7luv

+jPyRNzk831szE5mfa74rEYh4TBklse+2uB4DFQ/3oHZ1Sj6OBK6ujmNKQjIP7Cl+jmjr7+QK

+0OJcRaj/8AckDA5qXTZACh1S2syCDDMnX0V+dTxGCIoWOK+tt9mLohMzpEeD4NIX4qdpbbCR

+zeYZMHSomyBIsbA6B+/ftDE7W1N0/FtJ9adkkCynKULvh2CH5c5hgOOL22M+2spnywRoeJRU

+WU7hBM5OUH3JjA4Tu4j/cwp7dD7QzZrzmC9f5LQJ3OelejvVowWPQd3/tky4o1q6wlmFqAcA

+gtu97UwgBOSR9sJPGDlt1iC91UYAiBQQAA7ya8uXUS84mCQwTlr8j+YrowvEHK4IxpPREytT

+1LzzV/4Am4ndDFtujy83QjL0qaIIim1xIwoEosd4yidhpczw7f3b9dQpuBIFeQuhM7JsxP4t

+mE7S6k6GlEmqa3INPVaPGnsUGS7+xSMlcJXLtimPCSQvFma9YiGV5vtLy4kCHAQQAQIABgUC

+Vaz8uAAKCRASy06X4H5n0dg0D/9QoxIh9LRt1jor7OHG4xKUjKiXxn/KeQNlJnxI55dlWIvJ

+EJGheFjaDomzKBYuxmm2Ejx+eV5CHDLUYsLFYwWf8+JGOP75Ueglgr8A0/bdsL63KX6NP2DC

+g8XR4Z1aeei3WMY7p/qMWpqbQoAv9c3p49Ss2jSNuthWsRR6vbQ9iwze2oaUaA44WKQyhhbC

+wBU4SHYjlKCLqIBh/HXZFhZ4rDfuWgPBKvYU1nnOPF0jJRCco3Vgx3T9F+LZ3zo5UPt1Xapr

+3hMVS9iaJyl1w4z2miApUaZuHPuWKuO4CJ1GF1mS5T6vG8gB3Ts5zdtBF2xQIkCz+SM7vW/2

+i/82oq6P8EuLHEhrQPR4oTjXIvXdEJ9kgbjqcj8Xk+8teEOnuwh6iEhay9i/bf0D3Jd+roFN

+5dnWPxhOVjzrI3fwlK1/ylsZYqUYBEzt7Wj0MdhjeKssI5YICcqYXXjBttMw4B7DZXPFXzz3

+kHB56jZ/II4YUjpLO85Jo5A9SV+aIqa0mvCt6DvVWy/rhfxfoUdqNlhX11gkVLaA7xxgn/Nq

+POf+h5hVO2mwWkmart9YHKMZ3ukCdke65ITL/nsYSm2ZhG7OYjaCfu9jPWtkBstOEWyT9q4J

+TdViR7wN3eMefEG6rb49rxOYvGJu+cTVkp3SCpl0w1j+tPj4tkj7ENzPMXdnuYkCHAQQAQIA

+BgUCVa0s4gAKCRCKsTKWOgZTeuMyEACKOySKAd/xDcPcHg7Prvdws04Z8DIR0dY2qUlbRVx2

+jTmIXyry63CqbOJFbDg9uk5x0+lSotvrWtZ+NKSrg9VM6vyV4cc2P9rhqIBi3wO2elzAmpOa

+S2KKOjQ+2fS/xqh91ElJUu09xXQXJ0vMrqgui+zN1YBDiJV0WOmm90Mm2NPiihcWZmBmDorO

+qMQabwbjBLi0yUVHgAlkilY3mAB4tmEKDeN+4pYSAAhXAll9U+nyoVMgwMJscZyazOp4MqMb

+mFjyr4p5AGzv+OOJtjtCNKT6oW9Y+URLY0YKeOsPk0v5PlbQCVBlLeSBsNZudKav/Gvo7Mvz

+5uLTcneBFb+haYIiXO/FQm4uBHkzdNFLgaph81Wzh62AhbtBlfBOj/lbzN3k/xRwo64QU+2Z

+9GOhFlhjfROquY70FCQcspwNuqCdZybnkdpF2Qrr6Pi0qKR/Xb9Vd7PW0/gKQdwwlYTiDemg

+A21mYeJrYw873/7U/+kLFRvmPAEX4IOIOEN6XVjxvu78REi6CmXxOoYnH4aRSXDRyi1nsGjB

+43AtfAMMNCUigDgFP4sUsZAG1RAoxBhOsO/g9S5wx8H3rKITCXDjQh2SYeBwHFcU03EMcyzE

+QhbZNighN+aRKGIibteRxISiKU+kcWaHolemeo6wGF87QXEpJaQ2OwIoIxQYvDDmQokCHAQQ

+AQgABgUCVaz/8QAKCRA/8xuvEEv54t06D/9n1Nyn2QSUN1mXd7pomoaka+I2ogDbQpu9iuFq

+bkqfcH3UuG8yTKlPp9lYDBs0IEfG85Js6iVxJIultocrcDmOyDkyEsnYbdel/tn3X4yqD8eI

+6ImRoCE+gnQ3LoEIHuODfJoosM/jAHANs4fsla4/u5CZDXaaq7pYXGiTt7ndsfmLiCa7dAg7

+bVFfJagsnL/VjlfeWM9nW01rDL9LPxSN4tq7ZKXWZDonFZYJ4unsK/Cn6Pqco4Wb+FUOWCcW

+t8in1pgeNHZ9WnAgXG999/3iCbbQTLB6uVwY4Ax5P7VApnLVXV6QFVf7bN1DxE8kZk+pfLGc

+uD1LJSF0skE80M17kAt+iV+fam8EYzeGdG6cY6w+srndaMaq9ddiHIiQkR35SjJAGnrNRj8o

+oUr/vKOBnFfuwJLA2MOUVPZ8HWB+WXW8qhihw9CXa38Hdt4o5knMGRIyTWEF0TQDtRGQ6his

+VBN3OxJRXBj7/QgCG/GoYpweGKcsMU43p57TzbnXVVUytJsLFyexOGNzrUIxgDVPEvTUnNvd

+AihNZPdbW3YdFkP9pdwOyDpQwebXELUx1kp4ql0laueex4L1v+0a6rDYQeK1gOq5UGY+THRS

+gB2xsHl5zeryfgnjlUkUlxKuumz+9FI2fRtSpxmWllJkRF2oFMGRuLPGAWe8nHvfgkuGVokC

+HAQQAQgABgUCVa0bowAKCRCVY0f2+/OkFWKREACZ9TOmzvY6mrfWVEdldcYPj8cU/1LJhGdb

+No5YYMx+A72nchxGXepHA65OEK+f6rFMeZFPwpQPy6Sj3MhT623H/PECfeG87WcLOyJbfc3i

+9T5jvxS+ztG6abYI2J/50oMvjUWdWkDX3VvdPc0ZZ+KC+oHvx9a/9Yki48m4CEKglgVsrRW/

+b9AXZQCj07bB0GjQQtkqY/m1Z8m4ttzxfO7OBo/jHNF2An4/4gUDirXNDj0UdB5FYFJaTEUC

+neIj2x0fk1r4u6na8tINhiZ0M7IgjnDlBD5jwzvwG+3kYE6TnYp9Mfeg2MPC13tp7jrJatLL

+utrOzvmSVLGLXbkh9w+v+vx7qO3TxZUNlFqTmYs+vI2V/9j7KYV7Ttoind6Io7X9ImnYrvd8

+JOyVcO3867MplKnrnqHJvFStE+JcHEcw5aRw+WVmoFd/obGc34V3K62T977QQGOkrTYDEdje

+KADfjXXZkZMZc0IvzLBOJ1XB45+PKqJYCcJJS8Xr55+NGCDaaUPWDpkNGIqmX2n9kYROMKG6

+uWkZIqG0JlZkga3THSJIvLiy6uoOvDC4GoQ9JnTwpGv6r1Hwcg+4DCOrYKOoPKMMU24vHx2F

+tRRUgCXtr2cmi2ymHlUrtz8EXS4tblic8lixcbvPUqLEvbJ2gfWQvjXNd1whYE/wfvI9WBTE

+IokCHAQQAQgABgUCVa0b3wAKCRC8FzAbSRs/IQhXEADiKbCnsN/+Plllxn6SQHACEU75ackx

++Q02XiD/u+wUptYUGmJi4aaW9f6mgzedOxYK4S+/dCiFtkcYlL+FjaR0C7G6tMjrDgW+8nQC

+TPUNQA0gX2B8n06a7Zmdv3EbV/PIJJwTNSBp/dqKbvPKnRquOOpH+ayZ3awKOq/LlWBErbW1

+gB+FabN0lCe0iUIQTF9OH3GC4QsMtIrePueBmVrVPcHATV2Vw9UPqX1uX/tlXm5eai06oVT7

+V0FwUbg0o1eacblNXvHciHpe33zZIKkGBWwSjDVcU9/SN+U8GfoMYmyCma4iN3KaCklpzBkJ

+iQZtNKPAB5KJti8LDUxFi2sJd3sqWaZDGFhO+/PKhBKpqIhAzx1ppd11zLgh0eg6gQlXN8D8

+ELISRvQqGGNNZdChEFdzGElg5SMfmeEd37OaX4wceLLV0v7EA0doHMVo0enFhSwU3Ywtwxbi

+ukKc7H/ylG7+jvntjY+z7KktRsY/FkklrbrNhddMBQMMSAQUUz1GJ+6NUKmzXjqxFuuh3OAh

+qNzhJyABZWQcNMph+rogEslkenwoHV9gWRWtS3CMybJkKkbsWpYhMZNY6hFtgCwida7NPs83

+69v+yTTE6TU/NIlXUKYIf2LMqtOpEBTjaN3jKpUi5DeE3zBeh6iVKUrfCXbt8O0rYQPNWGSW

++MZ2t4kCHAQQAQgABgUCVvA4GwAKCRBE9G4UbQI5XfS9D/9XPK7jg0lmsNZ2sDIyeAw5n6oh

+SR5F20ocTMAVeXqN7VkvJdNpIqHJa13EP408DgTy9BsSptym/OQGE6B82BU7FZTEL6eMHnGG

+Dg+5ktx9+b73xLedzK75ti6ED+QuA4kDYcvW8hASht0zRcmFUzwbtuEopJ1Lk1R3oFLwCAov

+lhduC45nANWrTK5U+D1U2obl5PAvx+9mEfgvojlGH/C/WD74W+cQZFH7t4+muRzamckLyPft

+nTxjNF/lpYIm7z0QOwvzBYj+PJ09wYueK00RE5+i9Ff8DrjtVSXsziQvSjJuUlv0kVvM8r3t

+h4zBBNRhA4cinwqxhgqO4G+r2r9Gv0M2nKKOnWmyF+MSIRnhgONOQZe5a7kQxKVWkLicS2IG

+UpPeQyTWaqZzYXsD+Dm6DXD57vYTURtUkwO0CDONzT5XiS1HG1MZrw+V/Jai4HAvpF5WkTJX

+Pc1Lv75BxJj3wOAw4MzEWCCdr/N/dt5/+ULpEaSQfIg4L4iEj6rvabQyN0KbOxIDx+pPQ81i

+zfj36wIrDqhyCNIdmVH/yARltkL4XDEl/pt7Y3t6jqFhy057lektowClWcPeq3DoL0LFYnjN

+PpYvIjRIAXdhaYiAu2ViF8WdGzQ5tFeI7u3PQUG5NcPe+WOPOru3wMMrUhLgLHkCdNkjivP7

+9qIPSTkCGYkCHAQQAQgABgUCVvA48gAKCRC3hu8lqKOJoLRMEACmlyePsyE5CH7JALOWPDjT

+f+ERbn+JUTKF+QS0XyWclA/BIK8qmGWfgH38T9nocFnkw17D3GP8msv8ll+T4TzW9Kz9+GCU

+JcHzdsWj99npyeqG5tw+VfJctIBjsnX3mf4N0idvNrkAG5olbpR5UdsYYz62HstLqxibOg4z

+WhTyYvO6CjnszZrRJk0TYZON4cXN14WYq2OTrMaElx0My8o1qVBnK58pIRzv72PmvQqUk5Zj

+hUyp9gxjqqCJDz0hVK61ZuGP6iKK8KCLTfSxeat05LAbz8aC58qlg5DVktevHOjBgnTa8B7B

+gJ7bQ9PLMa3lF4H1eSiR9+8ecpzEfGHILoeIDIYH7z7J/S0mTgV3u5brOMYO+mE9CEfps85t

+VVoyJrIR8mGEdtE2YmdQpdFzYIYvRfq9tnXZjVsAAsC20Smw0LnjhYzAt9QJwZ9pFMXUTg6l

+C5xT+6LNrEY+JR3wC16q36bcbCNj0cBv1A3x6OI5OQfpexhLPDgoDiI+qozJIdj8MzJ8W6KU

+1Z3yb3dqACk77yv37rGO6uduSHnSti26c/cUIy6XZBbXBdobE9O3tr8hwvTQ1FXBmYnBrdiz

+U6tgxEA5czRC9HOkdk6y6ocbjmONpF6MxkpJAvTMk7IqC2/hisbV9x4utla+7tmNZU137QGc

+aK2AGQablVAy4YkCHAQQAQgABgUCVvCMigAKCRCkhaDtUbi3xAU7D/9gUPZSJ8pbZV9TLaKD

+57Bc7B78HNV/B438ib4dI33iihMTBHnCB1giPE9X54QoV8ASxrO/xveS1kkj78jERqUcED6Z

+HhMLb9SWs6CxUKdMdgovnIlFUc+t05D5mb6STi+zNihwO0JI+n79qhETy73WLpC7RR0aMx7z

+Ycbqp3NWPptcf1kVGJZGx+QbEHfVye98T5pkH5Wp+7LSlup6AldQT/oifxdGxLXbECTnwozR

+vyMpAaphoEHrET1YOmKnmw/Jyi6DLpTb3XvSf5Tntzr7HklCEcL9FvYCoHxiXWawLhuPhSyr

+FYeYtF1ypmzTgaJWyuTZ8sN9J+y7Tbchk/I6FpX+3YoTgPCcC7hv1Krs803N/3KuyBEvhzg7

+NYRikzO3fxXlBG0RMm+662E7KlERU24izbWhGiYwl34+MaxrIO4oDvF79LEN7y0+SjL4V0B9

+689d+HI1ZfS9O1xkOlW6y0QyagOzsTOUF12s2mWydFmipbYnIwsSsu6Nzk3yO4M+qYABJXJ3

+tIFQPTd7xqmPNlJ8mFtmzHDhb3Pv6sRNFLLujYM9cJpuNMbAHWdohz1bjBT9pZQ3zWpll5wo

+tUvGmJd6hTAXdUgmZ7lh7Uq6axClMmiLe1WYntcNpb04PyyEm2+GU5x123UTiSX2LGKa4t+H

+NSM8nJL8BJiGk80xVIkCHAQQAQoABgUCVa0OAwAKCRDDvTXkbdRdpVR+D/4/37e8WqKOHNPt

+eQu42sj0ZOfcqyVMA9TQ578F0s9MwoQuqfVhXGSWevOctuMv2qTBjBfFjkdPrKR5L4LNAgMs

+u1epHU0DPcRZUCbh1P7GpolmZ8KgnjT5Wpl1AcuOCaP08VMrt/e/JndTHp6btn6HsLVtryNh

+lL7oaeYbDr6/ovHNGHVIVSZgGP9f4Y8FiDpyfKav71vYLBMxtzM7lc3eFT1S10XhSW6k+8S5

+XldYWkLDriRXDE85C+9QndpOoQaIICp3ye3JVnUxa1qhvsYj9uPt1M6hKiBSoXdplrB+hQc+

+nqLNN3jxpGdmGmwrjtjqMhocMIguEqgARJOek3XKOppEhu+IcnJgU4edARJNLsBauiVBWY/6

+mZOFlZq6H48tVyziS2n/oIpi+aCc/fQeGs9zMTtFUohPfYtTcy9PecXMOYpSu4p4tQ07oucn

+xfBkRUgTdM5VwX7YwTcRwp9XhHACUEGBhrwMH8Iz+sK2jLF3FhJGkef1vFs0vqSf4I8DBFkY

+AKF848YyEcGHeINQloi3v0Kr2PpBxlRh+GPWwi++QPKXQFzlTiyVtMzoo/lpmAWUJwj0dbAb

+H/mohtvWtA1WPHC2JRZ52JLThhpDrK3t//Jdt2WHE91cMx7/2B0PK4O8/j7UVlsOJXpVPsGX

+5SFCeTB/iS4JtIwWN275zIkCMwQQAQgAHRYhBFnKni0qMx3iUaokJ18Dx2fCR6TVBQJZDvZC

+AAoJEF8Dx2fCR6TVoGkQAIjqaQ7tpdhDJ6ORNtLIt0TsWg0jg2rpoq+9Au36+UYBMuBJ3Py/

+tAsZ3cqQlig7lJiQqOuQZkbg1vcY4Kdad7AGa8Kq3sLn8h2XUlNU90X0KAwdCTA/YXxODlfU

+CD2hl4vJEoH/FZtfUsaLNHLmz0brKGrWvChq00j5bPfp90KYKqamGb3a4/LG4DHL4lmEBtP+

++YA0YqUQ3laOvKune2YwSGe4nKRarZnFiIn2OnH9w0vKN/x9IMGEtc5MbQVgGtmT5km3DUuX

+MDforshue6c7ao4nMOC96ajkWYZhybqHJgLOrEGPVUkOaEe7s1kx4ye9Ph3w/LXEE8Y8VFiZ

+orkA/8PTtx0M9hrCVkDp0w8YTzFJ9DFutrImuPT6+mNIk+0NQeuDsv492m/JXGLw/LRl97Tm

+HpKME+vDd5NBLo4OShlDKHwPszYcpSJTG9+5++csR95al3tWnuGX9V0/dO1s7Mv0f/z07nLB

+/tL+hEpqqA5aRiGzdx/KOrPZuhCTyfA3b2wvOblwf4A/E1yO7uzPTuSWnx1E14iZuaCPyZPX

+Eh3XSYCLEnQ05jy50uGXCDVR+xiE/5i/L3IxyhJk6zn5GOW5b8Taq5s/dFS3zWiFS6l0zQ1V

+QmJH8jdGLoBFvdVLZoAa1bihLo+nJVPR2RauWnxWoWk1NQoT3l02Lk6DiQI4BBMBAgAiBQJV

+qUAEAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBht7Um2Y8DU1CqD/9Gvr9Xu4uq

+sjDHRQWSfI0lqxElmFSRjF0awsPXzM7Q1rxV7dCxik4LeiOmpoVTOmqboo2/x5d938q7uPdY

+av2Q+RuNk2CG/LpXku9rgmTE7oszEqQliqKoXajUZ91rw19wrTwYXLgLQvzM3CUAO+Z0yjjf

+za2Yc0ZtNN+3sF5VpGsT3Fb14aYZDaNg6yPFvkyxp0B1lS4rwgL3lkeVQNHeAf0qqF9tBank

+Gj3bgqK/5/YlTM2usb3x46bVBvwX2t4/NnYM5hEnI57inwamX6SiMJc2e2QmBzAnVrXJETrD

+L1HOl4GUJ6hC4tL3Yw2d7515BlSyRNkWhhdRp1/q9t1+ovSe48Ip2X2WF5/VA3ATfQhHKa3p

++EkIV98VCMZ14x9KIIeBwjyJyFBuvOEEIYZHdsAdqf1zYRtD6m6obcBrRiNfoNsYmNY4joDr

+VupI96ksIxVpepXaZkQhplZ1mQ4eOdGtToIl1cb/4PibVgFnBgzrR4mQ27h4wzAwWdGweJZ/

+tuGoqm3C6TwfIganajiPyKqsVFUkRsr9y12EDcfUCUq6D182t/AJ+qE0JIGO73tXTdTbqPTg

+kyf2etnZQQZum3L7w41NvfxZfn+gLrUGDBXwqLjovDJvt8iZTPPyMTzemOHuzf40Iq+9sf5V

+9PXZ/5X9+ymE3cTAbAk9MLd9fbkCDQRVqUD0ARAAr/Prvt+mhVSPjNDPSDrTBVZ/7XLaUZvy

+IVggKa+snJoStrlJGTKKFgDVaYTOE3hP/+0fDdQh97rjr4aRjd4hBbaNj0MzZdoSWYw3yT+/

+nidufmgPus0TIJMVO8I6rl3vgcfW/D3ovNrLW/LjkTuM9a+p+D1J7woCfMSWiFMmOLPKFT7R

+BuY8edCVjyA6RP9K9Gj1sURSeqNaHR9Gr4rW10s+FwUHWxxzbmIWqH0gApQYO6vyND5IMcKO

+BCWQU6Detuq1pQ6dUc+iF+sEz3Rk3C6d4WBBjtkVJSJ0KKan8Q3gJefOCMNhdRQDjZLwbzr4

+bgoAkLbaBFCjiZxWZ6HAdMfSCV8uZQrtMS7b0DUpY0vdH9Htl3JqOOkK9RorYDQBuPdkTYFI

+NsmtWVsFV/LmR891mOF3fBRaoVoMeJVwiZyNlFY+dyWWFzLp+GoTLcQtmuR7OkmOcBGxWSKP

+cZfPqhf4dVQud7bDR2RNfJ1Hqa5kj8Z422sseYDwHf/T9OWWYvLwKGZhlUgpnzO3WCGrd/6E

+VNeC1mKXt4F7BmADov4Rdcrp1mPXiVt7oIxLaS6eBNf2y1TWzjYj5ZFuKqIukDEJfqpwsE5a

+snCw56nae+7luGs8em1J9GEXhWzXG15UVyQJaFwuB1iL8l7VcEQz4ABVrSTUWLLAKDsyqUbq

+2gsAEQEAAYkERAQYAQIADwUCValA9AIbAgUJA8JnAAIpCRBht7Um2Y8DU8FdIAQZAQIABgUC

+ValA9AAKCRAcacTlXpkF2y/FD/oDrZm143Rv9NV9InnVJ0brpqbB7aulFfhR1LDuJ/GjeqGA

+QgJCZdHlzT2pfCXXswUlYzcWEatvGcDkoaB5Ya2qs+6nhBk8pT6XYRrZAtIlKIGrlCqoSBm9

+HXguGv+EIaEECr2z/Funx9so0mP+5aJn65M9u3lPmuAonj6DcHoM07WsfsXvQ4ut3fabFmzi

+lLGeAdEDKIw8Hn3JBUOxUyFrQlOoL4/3qK1TO+cidz/2bATQQyIG2kNOSgHBslU+e6/7sWOQ

+4ufmzm7dEsf197zPXGdXR88LT+d2uU2K4GkCffNUKxZqy9bXxXPwr4JBjxLDQnDvl50GAWjP

+ZAwXEd8Okwl5+8xp0HuZ217WUqT8ib0oUUfwh2H1vrMPRr/46i6O6THpCkV8BWF7axPYIiba

+eYwC4BkjZwK3tIL5ESf2f0xK4hbE3xhMTeqABQHoXd5rQ7SEaUuX7PlQ59fRs0Cz55vH8/o9

+zMm0PN6qmZFvRBeqjnklZcu+ZdP9+CMXt81NMuzIK1X7EfpkUoam8YkYkwcCkRvPZrSHLXZF

+kfnx4jW543dPOfycjnv6hhKyoXD9CBx0ZcOicsYmw9XMilBGD3b8ZdK6RYX4ywKNU6KUdFJj

+XB88+Ynv6QxDit1emMCHA1glzV9/k36iYLEIqgWBiwJeUUIcUqzgnBFtN13cyS6oEACUGUiP

+Kbw3IkgGW19ZyS6FBNfgGIGW0Y82Br0KlCyaXnX0R4+4u2h7kfR9NSnhRhsvRnPIkiZATa7D

++Ew1nfpsDTnti0c6g/gVw9TC/rCyXkkLztRHVcWEBdvnFJTSp2LeFaHSGbvvZfoIGUzyUzoa

+1P98NmRIY1cxBoizVf8729/zAaD4fAslxoK/JsjjDvDUrRHtaNZmUle60Jl/yFFzR3zxb+pJ

+liigoP2rZLt+ipomHJIhoXXWwfkRO9U/egJ8ZUhWEpZvROnaNc9eVct5EBADxL7gHWjlceIz

+4ndI1eE9AdEZDdUZwOfjmK2DcXjFBfZC+jhJXjY0xh3pPKQz90h9DIkM5WDcJPf6ep+MKSd/

+3hI2/JmmscQ+alwN6x6g8zDySMo3APA9cUvEFGe0+CepVcNw03jU4faSrHiMXsUuVGbA2kHa

+YVUfzF5W5GbuHZZlGxoSiq+K+HNG0RJUDa6bkSDvrcJVNw1iUrowP+LLwnNsy5kGuU4evnwc

+oN1w7LVbTPaq4RIaiqvAD33kiA9q//UNKnK4k81z+hRNaWGliyGpgqh+V7MDIqPfT5TMLdH+

+ZjTeuLrNS8KBcc2BmUpSwzdUReTqHmgO5peeIcsvO7GNMFWsgucZiAdIVE/zQv+SfP6jhS+r

+jCPs0eeu5zl8/V+gXFE2wy3jTJEl9bkCDQRZS9m1ARAAvh1Nh4GgjpTFZy7uQRFz5PPXdZTB

+I+Y4hTpF2heoFzZDI6SLyz64Ooglum3ZglQ9ac+ChTSsO36aw4b22kCM9WDmkcl7wf21fG9o

+8gJDVjFjDWbwTWREaKjgS6s/Yb8f9gje/BGySojxynTi3zyTUN94q9dhVjfiQ79UzXZdN9Fy

+yIx2YO5tOo09hTWSZg16oxP47Mj1ATaS6UIrQMcMnOp0kuc6SufXPSWsUA+g2lW0dmHgPvIH

+wUfcjWqT2elF01e9KOFe7im29G6zOS2MRx8cr6KRg/eNWpHh5aI4quRUhYk4Kw4ohQTbs9ed

+0YttS4PMK+sq6xHpb28X6ZgrWnelPY9hfwcR4m7Ot3VQUG8JY9/aTlFCoeTgkhop+MCUI+dJ

+eY8depIa0PTzdEmEWRvPhTTv+CUdZ6v4z5LD6FhP+/5c6FCbcIb89Rp5fa53oYV5/KZf+0DU

+VgmpXFU7J7ZrGgDeU7vIzmwr8kcx0vtsVm1dVwYLACpTaaQPbISQUDM8sEcqKAqD7hWKaxNs

+b2M85L6q2/rnHq4g46yJzdR3b8EH+V9u+mUi9DIljDwcpvw7ReRQ9wPdDWLynnglIeGImbjY

+fr324yaIl4vNORAkbsoCkS/qc5v6MvKvYNle5fzb9S9kCbNZmD9c5/bHPjj9ENeQvzrl2pFh

+6dc1o5cAEQEAAYkEcgQYAQgAJhYhBBTyZoLQkWzdgeN7bWG3tSbZjwNTBQJZS9m1AhsCBQkD

+wmcAAkAJEGG3tSbZjwNTwXQgBBkBCAAdFiEE3OrF2WE1uRxOpnKru769uyTG81UFAllL2bUA

+CgkQu769uyTG81UFUw//bW5T7w2k8ukGfpIcm0gB98VgxKenSCmU6N+Ii0DwcNtzW+pmVWl2

+TbHIXDpvuD69ODWBDMXu6gBkrVzNEsK3uhzGe0tWA+5I7Vke3iEkbll7VRQlIOrw+n5NMvje

+uDqKsMt1gMEEdgRKddYApEAi49vV7XnqkB2lLKfAnf6o/KqPm8MuQ+u0xYanupZCldwdpcx5

+rybj79Es0iO9Gh/+3qOtR6ubOz3Vn78Lc3y6AP9pmtdOI2QX8foGK4hNmgHSP6uPLh/ERC9N

+ir0Lc2hoEhHEkQ8CnEaccp70r03VkEQuMJQJPUyRsGZ/gIm0SAm9JJxWHXJk2/5NUN83pHAX

+0LA4zxtWs4fVW5f8v9eIhFFPTZ4au+/cS9D4GFx4mlY34awcpAzrny2tntGEejY9HSJv4PuF

+ZCmtyS2q61N9EU8yuBwVM9cp5HntzG+OT4HYugtI6ibehM0S1Roy4ETwT+Ns41ffhCwdYMp8

+tzdeksQ35s7rkB9OJHj+q2dkGaV0FQb3FutbSpxbP4zk/dLqyxuivdUPHGtf4W/qklxzCWBg

+0VDFA7PwatmEXRxTjx77RelTY0V7K54dDyVv3Jh2+FzuaQZzzuIhv4gtqHntaqLnYl3h/QNL

+bOTE3ppvn9RUSR983Bd+M3QhbbwZrgG1m+hdUZUmji+wbK0wV0xHNEH+4BAAjbVzdNOs7hMv

+jY1wVDRFjvICVorNdNdU3ELy/9BAoiwOs2+zjDXmsX+3YtdzwKvdpQ24O0TvH4Vo3BkvKkJ7

+5EU7LroAbYQ2423m1MY3eaBslmX7TUJ3XE+k7OZF8AmcftgP4nhC4IQSCtoBc9+ncyGN4da1

+BpYO7b19tO0/HST8GHSrEcU9bGGdimS2eNkSgybA8wF6K0K9yvrpTNSZ7OBVlzQfEn8s70Gy

+zs/d6C/rTA+defnv3AMaciuINSEdFyfYq4wjt5PikvgceMAAkH/z69xTNg+6q3FQt/lyK7xX

+5qPMe2oFyDA1H+Cb/uL7ioo+jXh9gF+0fk8OP2IPzxYhBfulpVtgclmOuaekzaKeIv8NFW7G

+oA9OghziExePxg95OpL/VyQ7PJiAUj1pFovFk5HS6ejVZNEGJ/A5zLc1PBIcr/phu0luqhXA

+hImsZS6858GWQllWULNWw8bX5Blo8AvcfFVdq9iAK7aHN7g45ZR7Ze6qKHDyFv4XWuE/rj9C

+2mM/GAstvU0gGmbo6B1mNGMJuX3Gd3dG8fqFjE77OB2feJyfZ8UeF1nvG1hxlmuD1A5e6/os

+O9V7kjhXKzM2zSO11zHQ/5PlUisoUBjJ/QIK4v9RBNGtbRKso5X9Fke692lVgrdggDJ3j2Qq

+MuTo71rAVDLtxerc+GNq0GI=

+=YjV6

+-----END PGP PUBLIC KEY BLOCK-----

diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
new file mode 100644
index 000000000000..9d4de4bb60e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -0,0 +1,995 @@
+{
+  version = "64.0";
+  sources = [
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ach/firefox-64.0.tar.bz2";
+      locale = "ach";
+      arch = "linux-x86_64";
+      sha512 = "3710c5a03f3ac8a5c741c3e580d512130f961b2065f9ff5dcea0d4a9586e0c28e6521b694e3bb4d540cd34d4c44a8bfbfabec5bce986ad75abdf473bfe0580e1";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/af/firefox-64.0.tar.bz2";
+      locale = "af";
+      arch = "linux-x86_64";
+      sha512 = "e1fef7ea27463eda862cb88b16f69ca672d1f020b4b7d6f1e629df734bf5b2f320b23d18c203fe0ecaf84299450769460905600ae73b36f6c33081fd7d110cee";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/an/firefox-64.0.tar.bz2";
+      locale = "an";
+      arch = "linux-x86_64";
+      sha512 = "09c40a75c4659ae65c6e52e17975ce96e940acecf6da47bc335cea943a810dd2be6650db2cf459301b0bba7eae683dd58a7482f21df9adf75f4cf07d158fc038";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ar/firefox-64.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-x86_64";
+      sha512 = "7c1831c1f35df13ddf6a72e858e5c8b2461975278274d078858d88dad4f7fa07030c5833f1bdb9c82d1e2aed7d85d9d0f127981488b62bf9c8277401c6ccaf56";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/as/firefox-64.0.tar.bz2";
+      locale = "as";
+      arch = "linux-x86_64";
+      sha512 = "fe9f71632a8a5cfd01590e9e8fa2d20680f32d94265f670609609599f790f741ca0b55341f86f471962139faebbccd29db0ebdfafb900f0434c7a059297456fc";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ast/firefox-64.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-x86_64";
+      sha512 = "ee925e8e8e73e05ff3a4ca13cf461130a924c297ff72f304c35969d15dbe75cec2255b6ad9e5338d4c26b0e978f0f7769ea963b349b176c20fc506e5d76e9ad7";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/az/firefox-64.0.tar.bz2";
+      locale = "az";
+      arch = "linux-x86_64";
+      sha512 = "d8feaf6685d7844dda3168da899cb01f9749b284c70f3d61567f7ebc62a407ed14c271001090499b3a6d86f59824438bd7c62dee745cf727e3381c71e6f5fa6b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/be/firefox-64.0.tar.bz2";
+      locale = "be";
+      arch = "linux-x86_64";
+      sha512 = "a10e5e467d4709b8ad099b257b56319da95cb8990a88b82859057d93a82bdc44167ba89b25d3bd25f2c73873603fe86ac15851592f60ca3a69ea6176e13e4a83";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/bg/firefox-64.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-x86_64";
+      sha512 = "697fc3f302bfc4f68fcbc87e9a5b030599260f16375abe0b3f5c5a7617dd6a869b4d7f8f4e7e828e0080104a9e026eeb83c10f7d0a70c77fe0fd95196f2a4d86";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/bn-BD/firefox-64.0.tar.bz2";
+      locale = "bn-BD";
+      arch = "linux-x86_64";
+      sha512 = "c91cf6e80527c714d174913e7b650f448bef8c79a413ff711094a0224717466e899f7a21dae9d4ac1abf48ba091d27f172781dfb9aa44a26d22dabd1bc125465";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/bn-IN/firefox-64.0.tar.bz2";
+      locale = "bn-IN";
+      arch = "linux-x86_64";
+      sha512 = "fe8aa202cab31f76413f048c21bdb1d5bb38c0a8d65fdf682bde34aefc12aeaf1ee18814c17022abc6c75941fa3a983d1c4c13c89dd22a94352e950bdd37401a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/br/firefox-64.0.tar.bz2";
+      locale = "br";
+      arch = "linux-x86_64";
+      sha512 = "6784b2b452469f4b505028c1060bb76dd2048e9220f2aebdc38b071551a7c41406111287bb450dd2cb9a860cbc686149072d2b2e330d4420c5d0d4d30a64c10b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/bs/firefox-64.0.tar.bz2";
+      locale = "bs";
+      arch = "linux-x86_64";
+      sha512 = "30fce8473040ef957675a0125411584047a5978ae35a897478d33dbc11b7d08fb61b25a6b4bc1f1d9e7ad729f3ae84ae27c5267684068e9e0753cecef784ba0c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ca/firefox-64.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-x86_64";
+      sha512 = "d209b95b471871a2771e2ad8f027996fc181471b9620f6468123f5f2f35b19c1f90b28d31c9ae8ec18d3fea66df53da5618812744b4403ee12357c9fbce69249";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/cak/firefox-64.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-x86_64";
+      sha512 = "313f627b01a2627e924fcdaf57030455d0b36493fefd2e7373957a6c7064b61a9b40b466f72c0d14f509c1d13771134b179954f8d8ac2986aad7da288a42e4b8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/cs/firefox-64.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-x86_64";
+      sha512 = "85f17519c6c49dfcbe6f2da41aa95b20c53b6491b7a10958e0ee72b1da4b3b0f59f473ce33c72774438d96a0814c7542a5cf79159840d551abf7b3df77c31ca9";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/cy/firefox-64.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-x86_64";
+      sha512 = "bfcdea53243eda98567e769f3662054c84c4b43a38e83639babeb72ff4bf4ccfa36390bc9b6eb247bb8a8afbe2b9c79a91b96134e0f6222c9df14921d2c14f5e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/da/firefox-64.0.tar.bz2";
+      locale = "da";
+      arch = "linux-x86_64";
+      sha512 = "128e4e3f5aa74f299beb9480079f32ca093307f1f49a89873f37b824bd223f1436918734f8f171607b36c3de80b6e92a758d3175a687f5017c56448528da181e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/de/firefox-64.0.tar.bz2";
+      locale = "de";
+      arch = "linux-x86_64";
+      sha512 = "4dce77e64190483c25469f1a55fa80865f3030fbc1f0c2f1cdde0c023a540b96f40b85f12ba7e4ff66ca4e9cbc5dda3eed849d0480aea6c76e9e5a461534d425";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/dsb/firefox-64.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-x86_64";
+      sha512 = "a544f615cd0c79d677f669e1a62a79e685f831315a5139a3271ddca8501ecb80c6744d19faf369df41edfd11590436e5086b0696d84d2bd842482978988ed2d0";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/el/firefox-64.0.tar.bz2";
+      locale = "el";
+      arch = "linux-x86_64";
+      sha512 = "2d7f9da2285951320e0cd3e8317f7e8031dd229215ef8d83af90c7d158e3292588c65f29976576d4c0f70780dca739d1c1d20301dc5ea248fce46a30389cd04f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/en-CA/firefox-64.0.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-x86_64";
+      sha512 = "3b74adbdb2ce8bae0e488228e016fb663229b1be7c0e6808b4d80b0156d9d98c98d3afcc019c120be6dc8c07a70fc82e1b3dc6a399f2e73473e1b7b76092d922";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/en-GB/firefox-64.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-x86_64";
+      sha512 = "4e3e6217a8c7b0c51e5a956dade6d2b346b7ce4b802af7c2a1be7a89d4458c8e7b3fbfdc4f3c38c20d425ce7b8095b9365693a781b81932f4f4445348c5a8ec8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/en-US/firefox-64.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-x86_64";
+      sha512 = "47a6a77ad478c4c87c408657f060bf60e0a646e7083cef9d7820c03b1be4e050d83054499a79445de993d1b9f5582c3dbcc023589a5ac7fd0742ea08b8564a26";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/en-ZA/firefox-64.0.tar.bz2";
+      locale = "en-ZA";
+      arch = "linux-x86_64";
+      sha512 = "e9696651669db18f36bac1d06ca415946e850d6822b14ee51451cc02ea5651e8c66d2a73ba9b2b826ca6246a19bd6bd2ce00fe5111320e9365a2385accbfb480";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/eo/firefox-64.0.tar.bz2";
+      locale = "eo";
+      arch = "linux-x86_64";
+      sha512 = "1cb62e90c767171079c999c6e13916286e69c7e70c2977ce857b3c8d756d7aaa61ac1404089dbfea27b5b110f1ab51a3cb4faeb690709a933d927da1fca98dc6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/es-AR/firefox-64.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-x86_64";
+      sha512 = "4d2b5365e97d6b49847aed1e86076dd74b840c703f0d5b206d8e076934dc465155e8998af204cd78c17ea0f19d5ce51f08273d51dbed55494c1e2b405b61b753";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/es-CL/firefox-64.0.tar.bz2";
+      locale = "es-CL";
+      arch = "linux-x86_64";
+      sha512 = "23fef30ab7c2d43529be5000381c799e7cf6f72ca4fad1e06a0f94f69e995649296907c6004c4db65d939035d2cd7ae130eaa563a42df9ac5539503ce6fea9f3";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/es-ES/firefox-64.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-x86_64";
+      sha512 = "6c6f8f7f6b7e7ffcc6eddccbc6513a7f024e8bf00107581088121ea8e4bf931719074ebb74f26e87a37ec92b6ea2a655156c2c67f30c505894b750d80443a9f2";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/es-MX/firefox-64.0.tar.bz2";
+      locale = "es-MX";
+      arch = "linux-x86_64";
+      sha512 = "b0afd492026015f062b15c6442ae65815704b8b7d42e92b05c1448c381ead2adfdd171db51fcd9cf1a6b7df1ad96f92b692e0143faf7f06abb2f46fa29ede834";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/et/firefox-64.0.tar.bz2";
+      locale = "et";
+      arch = "linux-x86_64";
+      sha512 = "76f3252c84540c159c08859652f4f70a742d015cdf80275f4cef02eff6b292b9f07babd001418fe7cdf46d357f79eaba12844c33665c8964471ffe02bdfa14ce";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/eu/firefox-64.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-x86_64";
+      sha512 = "40d1bdebfca7d50cf9b5ca52d330b4e57fd38d8b84788b48992be85a771dc911bb7b7ea34a6dd32c26c3ec2416e917bb4e1a19a2dcf30045a69fcfe44493246f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/fa/firefox-64.0.tar.bz2";
+      locale = "fa";
+      arch = "linux-x86_64";
+      sha512 = "8164523a87b88c6acd243c0835debe472f81ec14fcfe099ec4744c543415ba54466142e4245a38a759ed14230e70bf4be0d086b46cf39a32b7fa874bf1553acb";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ff/firefox-64.0.tar.bz2";
+      locale = "ff";
+      arch = "linux-x86_64";
+      sha512 = "7d470198e655e78a5b48e127063d55e33e6be01a5134c98b82045f1b4bb750bce8915db151a15da0ec7b175c7b76cbb9c9d051d5ef6b61628b0325bd434d9cd0";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/fi/firefox-64.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-x86_64";
+      sha512 = "4010c8510ac35e35b1d9c9b79cd64316b9de2ba82fb751653713871623d49b2f5cc795ed093398a739dca2d2c7f837f83db61b49dcf34405c5d3ae0950e92375";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/fr/firefox-64.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-x86_64";
+      sha512 = "65b16a2d493957ef51b6e36e2dd1bd9c5176571edbc8262b458296915be599fb5b8651114734939ce366f0c017567732f4a540ce5bc6500bc7400be6368e7c39";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/fy-NL/firefox-64.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-x86_64";
+      sha512 = "153177aa8fef00a967d09d015dbb2e03d4f73b04abda15146d9729f520fcbaac6f07eaa5fa88c723bde659c701c07f0f2de0436761a1a5c42e4a02cc5255ec9b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ga-IE/firefox-64.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-x86_64";
+      sha512 = "39f6ee1e0d55966c80a13a7a15995af68bccaf6ee8b8a067254b0cdc6ed95751c4f8125231155f327d2093fc598076f0ef6aa8d15385b70a6e0e9f0773c5b791";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/gd/firefox-64.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-x86_64";
+      sha512 = "585830e055d7c89f53fd49a57c58879ba83707c70b3566cd5178a66e204e29525c0dee621bd9806d260e2cab440147aa7f150693af199545f6744aaa8340b93a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/gl/firefox-64.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-x86_64";
+      sha512 = "48531324d321c466c65b094313e441d70e8c34adf3e741f3b2f133e4bf01c7a57a1f30b5851fa954bec373124692b85c452740fd927eba61f1fe7f149a5e132e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/gn/firefox-64.0.tar.bz2";
+      locale = "gn";
+      arch = "linux-x86_64";
+      sha512 = "2c18c606d321d889cf9618b49d284cf4c8b547a0db47f1defbc4060aa7b7620f73cb6f8eb015491d166c782c197b5c72d2c6f2fb34fbf4da3793eaeeec101185";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/gu-IN/firefox-64.0.tar.bz2";
+      locale = "gu-IN";
+      arch = "linux-x86_64";
+      sha512 = "402aee6067b960e3f03daac299fd7377ca7e6cfa458b4d9e344d96c3b30bf6635e600be1e28663200fe699b57eafc444307768be1f004d1fe494ff8447ebe5c3";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/he/firefox-64.0.tar.bz2";
+      locale = "he";
+      arch = "linux-x86_64";
+      sha512 = "31a99a521b35e2e4a15ad6794fc10441969b8de79969e405438f9a30fda42ad09fe002628ee5f2a402791d889db9a557e8e651602f9513ffb834cdfe2ac215e9";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/hi-IN/firefox-64.0.tar.bz2";
+      locale = "hi-IN";
+      arch = "linux-x86_64";
+      sha512 = "6e31a76ba7269d963d8737478ce3228fe32e39c43432cc3ba738d3ec5b2c2c6caa77b5bb064b21ad3d354ad7a672e83e5817718c2dd51145b509c56079370473";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/hr/firefox-64.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-x86_64";
+      sha512 = "4bde8bd44a7827a88185be243eca333bcd23d478d4f0ada062add6257da1c849d03087d1f1faa553d0e03a66667c50d3127c789ca238268345351b29181d85ea";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/hsb/firefox-64.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-x86_64";
+      sha512 = "96915b58a3867641b8412e2ae6c664dca3a6b42bce7b7a08c7647be1e30308d2e43730d21ed9c7af264a0b835d08f7fd86b10491b44d7309ccf5e88b9527231a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/hu/firefox-64.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-x86_64";
+      sha512 = "f3e5931ef224e4e839dde1955b14ecad25f9c0a85b4c1e1f69aa37038129a0ea96807c4676a2daded45bf94448152557818de060ed8fc0f40828870fb0e5ddd6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/hy-AM/firefox-64.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-x86_64";
+      sha512 = "f7efd18f70b525c3372dbb2f91f54b1c6ff248d87984c6d510942514e3cf57c07a1d5af9a46270f2b42c835f95a874bd085c7d131b432bd176ca72463ede4b92";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ia/firefox-64.0.tar.bz2";
+      locale = "ia";
+      arch = "linux-x86_64";
+      sha512 = "1daa9025c4efff34c968747d9799799616efb37bc313bd178b1b90c39dce3e3f7a9792648983ee44f6b65478cc35bb84343a08d7a5a68d03ce34feb5f1e9ecdc";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/id/firefox-64.0.tar.bz2";
+      locale = "id";
+      arch = "linux-x86_64";
+      sha512 = "e1b5b5447132a03eff6c5003cd5c23c64c221f74f2510cb990e61047df47d59b1ba06751eb91ef332e930e2fd4f0ff2fcd751680684886976bae295cf8e5a168";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/is/firefox-64.0.tar.bz2";
+      locale = "is";
+      arch = "linux-x86_64";
+      sha512 = "d18f78338dd41befe97210800208cfe0a56f394f0eaf21f8025f9b643d6cbf5370ca0c7c56539e2bdd54b96357f1c27423333824551825351b5135aaa6f4b873";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/it/firefox-64.0.tar.bz2";
+      locale = "it";
+      arch = "linux-x86_64";
+      sha512 = "38c49e1424e458d09437fbbb03facfe9352b48e9bbde99f7033c8bc246347b93f66f86ae7daf960a414fcf316990fb9500d06a346baf53acbf0cfc5ddb15590a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ja/firefox-64.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-x86_64";
+      sha512 = "9f45fa365052807b015868cb14e687a49d5843d529c3ddce22099730e172ac4d5896fe68992453a146bb35263d41f0fb9a51bd839cb8f887b469dbe055c93979";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ka/firefox-64.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-x86_64";
+      sha512 = "c6affb4239c752497a766ddf26e1ddcd86378cbece94d41c01ed381c569d6124bf9657451598915c41517174229eb8ce33eed622685ac362cbd28a014eed9f60";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/kab/firefox-64.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-x86_64";
+      sha512 = "759ec0854401ada26a0393ee9a8dc79edeff2f7bdd8ccfb1a68e430e5c0c4a20ebb5971048cb1ab1ea735a2ce15b477074122210363b364fb79fd44b08ccb443";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/kk/firefox-64.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-x86_64";
+      sha512 = "6c0c587b62b0b68114cb7ea5eb78366cd473112602862baa16a1a374997a45a3ac1ab1a95d190fbcf0b8ae47deca4289cfedd328a4b9fbade2a64476a9bbbc61";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/km/firefox-64.0.tar.bz2";
+      locale = "km";
+      arch = "linux-x86_64";
+      sha512 = "47bb7c459514d8a1c7f6e02dcd2bff0d6cce4a0ec0537bc5214547ac9a8744d9c8c6a4e789999de8aaf01f4815373bd4130251cff13ff58b49254b18deb78539";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/kn/firefox-64.0.tar.bz2";
+      locale = "kn";
+      arch = "linux-x86_64";
+      sha512 = "5559d5361b25fc0d9d2c5dd9bb62909d4fd3bfb79c5801fac80e5c9eeb9ea214c1e748dab78b0c54715b624d64d5f54b541f49bd2c665185adba75f46d62e145";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ko/firefox-64.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-x86_64";
+      sha512 = "06ad114dffe1741796cdde8ec6172c1642d04a25d9ba922a74f3be5c70e7046012286ff73ba41f4543ac92df3068a7a1879f2782d934eef1ac90fbf1cdbaa9aa";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/lij/firefox-64.0.tar.bz2";
+      locale = "lij";
+      arch = "linux-x86_64";
+      sha512 = "3be90a0864e83ffec4ca0f1e453468b79b157ca99a4937154eff24924b959ecf0abe4b80cc76f2711be8e1addcfa2df7f3036e1addeb963c9581c9bc7f966e8c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/lt/firefox-64.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-x86_64";
+      sha512 = "f394a4fbf6c105a84a18342ee655d532901e1249ed0965a0513f1e8490f064c0a3be2163acd16ceabb286a1e67d9633d0a67d6b4b77d5918c9ec8a22cfaeacb8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/lv/firefox-64.0.tar.bz2";
+      locale = "lv";
+      arch = "linux-x86_64";
+      sha512 = "faa71e843c9b8bc4137edb2cf4f44bf7570f5f45c456a8cc45c5ac0b9df45f5d4080570f40f5ef29ac8697a7d79f32736a56f7fdcba8366ef531d3f67c4b5e76";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/mai/firefox-64.0.tar.bz2";
+      locale = "mai";
+      arch = "linux-x86_64";
+      sha512 = "5f49ffe83b61c125ec9f1036244dd3e4777c4e6988547eaa8abce53fa1222f691ef2a41278be31d68c667bae2155833a214ccf15a4c64d938f89db95a2b9271a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/mk/firefox-64.0.tar.bz2";
+      locale = "mk";
+      arch = "linux-x86_64";
+      sha512 = "2660b36cd91efd31d4e33896c204821e164bc30f1befeacb4677fc2a95332ceba0b84e4e963b501acafd3278ee7f7f0002c61ede46405cc307e3425525880252";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ml/firefox-64.0.tar.bz2";
+      locale = "ml";
+      arch = "linux-x86_64";
+      sha512 = "9b617992699691484dbe5922fc67e740b7fded722286b56a2c0da624ffc3cec7aca366437b83b67008145c0c06f7fe1c1a39a05a10ff1ce456602d8484be2a52";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/mr/firefox-64.0.tar.bz2";
+      locale = "mr";
+      arch = "linux-x86_64";
+      sha512 = "b173140ccbb5fb1976eb07011bd6611851ffae5629a449b9b25999c72c3bd505e6f1b57d62bb0576c4383fa034cb2a114b981fcbb0d7800e506ca814a73d5530";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ms/firefox-64.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-x86_64";
+      sha512 = "475ea5fc3b594fc0c79303399ea780a95ad434980e5a76004620d2fa2062a72b31f3982b5f8649cce83ee6c74d4c9ce30b17952e2120d655eab4f43a325a571d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/my/firefox-64.0.tar.bz2";
+      locale = "my";
+      arch = "linux-x86_64";
+      sha512 = "d488d6b8d49aecc8fb390c56717b8761ac41cec26f579ca980df04b21ae0fbb0f2154d4dd7a110c7e6ca4cc460fa657071860dc02b56a8cee9ba09f031791e42";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/nb-NO/firefox-64.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-x86_64";
+      sha512 = "f44745f0b7781899d0fa9640ab1a6edba97bac28c924237ed70be56b1a257f6c96cec586f931077755ecc7ac6424bd5b9b844ca451c9db66b2b453f21f201579";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ne-NP/firefox-64.0.tar.bz2";
+      locale = "ne-NP";
+      arch = "linux-x86_64";
+      sha512 = "9134ebf12468513fa2ca9a5975d990ad7fb9ced38f6166567875e56f429fe22c0214d901e601f5a9b0513f2ba1e3e4153f0e52b2c97ec7a5e70bc0519ba6b548";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/nl/firefox-64.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-x86_64";
+      sha512 = "195788d10dc728d58aa29e1272030bbf7663759f639c34e7a62472a8876f3ee2bf03b2fbe9ec14d681de5304e3e822a270a2d2f8ac55f9d3b50d9cebc8bc11c8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/nn-NO/firefox-64.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-x86_64";
+      sha512 = "d734daa50ef51045c5b7c3a938291d32b416a41550e0d1ecbb526f5aacc67815874cdcdfe8623588f1edb4eac4d6abf8bec7809ce6c8b963752a87035d9f9249";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/oc/firefox-64.0.tar.bz2";
+      locale = "oc";
+      arch = "linux-x86_64";
+      sha512 = "dfb14e36caec916aa0df46b566fd2247ee68d14e9e76745c58a51a6e947fc67d585cc2f9d77267665e7339d6c53997b757be5b807f8fe7bd5c0c3f2f6f7c975c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/or/firefox-64.0.tar.bz2";
+      locale = "or";
+      arch = "linux-x86_64";
+      sha512 = "7a094b0695b5f81630112c6a7022f316f06aeaa420b5416c4227cd949ca35efc3e542077d02f8d88b055e3f37e4d62dc5bdb8525db944cc5a51ff124502a742f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/pa-IN/firefox-64.0.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-x86_64";
+      sha512 = "8e586213da95006801244f9529a3917bef7cf5b9ffe482329135ded1411f72edcfb92b1f3d4e8699ead671b0a3161f7e4ff32f8baa6a29aad22e8bdca4e77899";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/pl/firefox-64.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-x86_64";
+      sha512 = "60132298bc587af9e122b7d6f55ef57b8a870859c2d550c3b6dcd538dc4ef32171757f5658586646386e87ea9f92a46dd434237b67d7e19beed7ebd8fb16337b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/pt-BR/firefox-64.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-x86_64";
+      sha512 = "4be8301b834b29834d2b6c369341e1b7a106838c79921d720d62a9d624d672dcee2ddac9d4cd1a3bf37da4fdbc9d9b80799c19f8b0cf29935b9dd304999ea33c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/pt-PT/firefox-64.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-x86_64";
+      sha512 = "2fbd9e199043b266903892303332396b138621606e51a460dc45f3caa4d9bf8e48c955293ddfd0a85cb5fe2294111fb155417245771c792472e3567384231902";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/rm/firefox-64.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-x86_64";
+      sha512 = "02aaaa30bfaa6b149c304bbd82df7238073168ad49692fb03413d811d69858e738207fdd52718f10d16075ce660cd04124e4fac43f57910f52aed3006d1fa6a0";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ro/firefox-64.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-x86_64";
+      sha512 = "63803eda091f187cb65d0e765b778a957f46bc20ed49a4ea07bb0be15c662307d2858ca9ee9797ad8c4dee97e5e63e11e8be0695a530664984652884edc75f60";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ru/firefox-64.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-x86_64";
+      sha512 = "0630ee2da0e981649a2cd95c940af62a1e99362a836efefab151a3d0395d2b6c1b5eb31a2ba96f24a7e4b718af5215d0d911d3967d6bbd53718c6bae0077fb13";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/si/firefox-64.0.tar.bz2";
+      locale = "si";
+      arch = "linux-x86_64";
+      sha512 = "bbff1c3b7040285f5b7188f967d96f1593af7b12cc75845af1ec3ad965199a5b05890f9f70aaa30ff6f32f2a89f0b56e41bbdfd7b926630ea96303d82904fb3c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/sk/firefox-64.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-x86_64";
+      sha512 = "5ff341dcf32ff25e2cc53ddea76a6581fc4efab6e37582dcf64c8714d40269908cdf615b5435d34416bd6e027664726d34a364d2ea09f6cd5252825885812bc1";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/sl/firefox-64.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-x86_64";
+      sha512 = "c2305c0a97b1b8c62453efe2ed0a24023637202f493eda44d34a64fabcd1573866bdeb488c2795b5f9ed2372d7189b57dc8b8d9a7f8e51b53ff2d85530ac5515";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/son/firefox-64.0.tar.bz2";
+      locale = "son";
+      arch = "linux-x86_64";
+      sha512 = "250de55bab9ead2d7c9a24e293c69e6d1e0a06bf228c418dddf6083fccee13ed469b8c2a72c3c1cc2328706ffd54602d205347e50d6adaec34ebdae10ed0dd90";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/sq/firefox-64.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-x86_64";
+      sha512 = "240bbd1adb3b4415b58ee58971c5d138894b7f8590b9ac26140385c62564ceab82470fe327b36c19b19774645a9dfbc9b24f64986c906269ff0a5c538c1508a7";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/sr/firefox-64.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-x86_64";
+      sha512 = "92026ae2c63827c660231d32bf8923953e61c3f687ee6965e215b807371baa439910561a4506f9484c0a14f0ece7271b11d6d43594171c56566c6a827cf35e7f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/sv-SE/firefox-64.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-x86_64";
+      sha512 = "cecd3fa7f9253d2b0ed368520d72d01d054e856d3a7fe7caaf8f53ca710fbd9aa5c69057a71875cdb6dbfc6b58add8ed1538b9e9e9dfb50853e25e51987642b4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ta/firefox-64.0.tar.bz2";
+      locale = "ta";
+      arch = "linux-x86_64";
+      sha512 = "0ecd2d6c2bfa048b126a6a3b71b543a89a234f7088f5440d2a5b73752ddf1895fdd7ac3629619e4b2ad14443b51cd8077df7f7b1e8c816f61217ffd3383bd477";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/te/firefox-64.0.tar.bz2";
+      locale = "te";
+      arch = "linux-x86_64";
+      sha512 = "ae919a5beb3906b7e32b9929388fe1252beed1a495af4a8708c7fe71c1278036c390f52e10eff5d2541de069df41e6114d236a75553949054ce2fa960dedd3dd";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/th/firefox-64.0.tar.bz2";
+      locale = "th";
+      arch = "linux-x86_64";
+      sha512 = "b0c6758783d2873efc20cad1ae4d5ab4adb6d179e98f307d7b07763b5bcb1e8feb6f31c68b890c746574902ff408b6a7eccde2a74d9399714414c317235669ed";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/tr/firefox-64.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-x86_64";
+      sha512 = "d081a793fa41b369a640e5ba637ad377a04eb2089de9c979c564e8f09be7ccaa8dfd02eef218bf911921d1a0f97eba4da281f5504d3d971f712ab15c59e79737";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/uk/firefox-64.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-x86_64";
+      sha512 = "6fb2758391aa6995c4988ec0c04e7557137953ce0dd89429d074c99d04b5bd4283ced47f7f7c93534700f5d3a9c6b7b602f50e7729c3095a6406accf8eb1f6bd";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/ur/firefox-64.0.tar.bz2";
+      locale = "ur";
+      arch = "linux-x86_64";
+      sha512 = "a253a28cd903372d80cd5506b756fcd437c443eb638051dc1051f39366cf355c8454495633a1cdfd8b384cbc697eb654845ef97467fa06d9aa94dda26b489c28";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/uz/firefox-64.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-x86_64";
+      sha512 = "c386894ffa93a17ab7456b392a485338deb1980289f1331bab635bad60527ca764a6e7a495b192103a6ab70181433260260e76e82993e4564ca6f542d8326cb1";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/vi/firefox-64.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-x86_64";
+      sha512 = "e15d48bc479134d2c50df8e5ef4ae356ca1e91144d16ef19c853f1da5567d60ba037c6df72c253be3a02f60e33eaa0b7fe573d1b2777bff114e770198f241f43";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/xh/firefox-64.0.tar.bz2";
+      locale = "xh";
+      arch = "linux-x86_64";
+      sha512 = "4f2275c4761d9b8cf9caa61e89fc57bde5ab4372177b9647fbf250969d8a76dbba5640f85003c53eb7523f8dd9ef6fc46db5ca191afe8071fd08705eacc906ce";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/zh-CN/firefox-64.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-x86_64";
+      sha512 = "d81fb2e3e4fcedce4b6754e4d6964f95e766b7de3e917f90be2555ea6b69f11ad0e1809195221e06956e2de2aa971cf9c37b10839b42b393345e7ac472495b2b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-x86_64/zh-TW/firefox-64.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-x86_64";
+      sha512 = "8ec43ee30d086eb663c2fe3e88479be672e2ae9eaeb555c6414d06556598e7df61189a0fa3db5379c01cc8d6fa11cd6e3fc3426145f956bb1e9b44a44ece9b43";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ach/firefox-64.0.tar.bz2";
+      locale = "ach";
+      arch = "linux-i686";
+      sha512 = "8b382d8356f16695c8677e1a7f93c5bcfee12ff0854a498e28eab155c9cccde49f5c7f2e877dbc2cd8af61039187604818d86afcfada106976ae3c0010d4677f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/af/firefox-64.0.tar.bz2";
+      locale = "af";
+      arch = "linux-i686";
+      sha512 = "7cbe6843ff38fc5c717f846224a34610f5bb3e9a597420eb634a28d0e84e987d162d2a96a8fcfb3fc7cb9777f4e48a8d4424783663882b89c2f46679707188f6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/an/firefox-64.0.tar.bz2";
+      locale = "an";
+      arch = "linux-i686";
+      sha512 = "63ebe2dce50e884b3a7e76ea8b0a4bce8b1c2a69167f5a5ede5b51499824c620ec0d086365c312a9edd3fae2bd777eed4d44d606c1593d3227af9fd13aff3005";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ar/firefox-64.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-i686";
+      sha512 = "e69e50709c540ebabcae287f410063e716ad58366aab7d9773c566c97b751b3459d72825c0e9398ee8ff146429b943bd30274ceb96f4bffe3945c83af93c37c3";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/as/firefox-64.0.tar.bz2";
+      locale = "as";
+      arch = "linux-i686";
+      sha512 = "65dfb87c5542a3375b1af1ab0d01da7a17e3df22cd56a35198579c4fef43e8f0e5fd6a678a0650a737d01a32f0263ea71019b0f17d6d8805b3b286f1325bd04d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ast/firefox-64.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-i686";
+      sha512 = "a746102d8d5a3abe4e7fd75fa3eeeb4281e5c7fadcbc0fe59f05d33108fd37785f5ab53350307ea4bebd93c7d15e32a59148b09179482dae413125990d18de2a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/az/firefox-64.0.tar.bz2";
+      locale = "az";
+      arch = "linux-i686";
+      sha512 = "d4b9f5f97dd3542ebdc4f971b734f4ef2987c15ea356c899cc77d3962edefedf5d1579e49e3c4a9f4428f524856fd55b3b1f55eb372f6b98faf24069b3a0337f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/be/firefox-64.0.tar.bz2";
+      locale = "be";
+      arch = "linux-i686";
+      sha512 = "d880b29a40a04ce9e89ff5edf6391c6e4cf10e70aa19916f19af6f071482f82be4484224dba91620d205d693feb5396367e73ccc99c8cdfbf856809990e1d7a8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/bg/firefox-64.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-i686";
+      sha512 = "f294a256d1135dfb9a6a6cfa0727540cd13228c07e4a8643d585d240c6e7f2fa96991bdc2ca32e167b1efc5c6f245daa634d56e9321ec15723bf04aea783d756";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/bn-BD/firefox-64.0.tar.bz2";
+      locale = "bn-BD";
+      arch = "linux-i686";
+      sha512 = "91182fe1d7cbf24fcc189471176834d955cd929520e4ebc7b325bda58e22f8ce79313fce6b2d36bf17ad8ed447104650f8c40413e057b6605894e4148a69c2d3";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/bn-IN/firefox-64.0.tar.bz2";
+      locale = "bn-IN";
+      arch = "linux-i686";
+      sha512 = "cfa4224f07743723af2b8a14bb48d7538c340752f9d02baf7801cdacc368bcadf5168d213a77bcd3b5b7cb25eb279ea1fc64ecbcd34e55a4a9c2e412bb6faaf8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/br/firefox-64.0.tar.bz2";
+      locale = "br";
+      arch = "linux-i686";
+      sha512 = "b3bda92511ba516996ab2be3d7556c84c504cc11a0a1482fdaabd3afb6d997d332d65e2ce5fe915c11f268b500b972bd1e7c3a869926b2c4e6f324cdd2f485f2";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/bs/firefox-64.0.tar.bz2";
+      locale = "bs";
+      arch = "linux-i686";
+      sha512 = "a46f31956ddffe5736f0aa4ba66ac71d15a392275ceb1b87e40f369b95366f2f8939d4c6f661692775a91b4d9ba16350cd8f634ddfbe8283537e66fb007c000f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ca/firefox-64.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-i686";
+      sha512 = "c096b01c5deb62941e430dc74ab2e130e99c6c979e4e0cf50abce96398ad1ccf7e0a5d4a5e4d40adc594ccb18b50cfe6c32eed060565878d9d84cef25d8daa98";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/cak/firefox-64.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-i686";
+      sha512 = "94f30cd5a693186d0790c6e5ff0e39d5708a055ef95e00afc20556736ddc05d5956cdd5ca783b063714c850f392a1ee602d3d3b2fa93f5e5b43224c72ea14cf1";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/cs/firefox-64.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-i686";
+      sha512 = "dee18af4ef0f849742c223e136be3580acc11c1727f0360e551c39322ec59266591814dad29887ea267f16af9bace4f4cb04777b3ec18c49b979e21fb1038147";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/cy/firefox-64.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-i686";
+      sha512 = "044d878806797314f51e419d2641072e22ea3a94aaf9f469f0a0d23e76173345d40ca337f40eeba05c18632f7b7b78b93c39c850ecaf24f0a206f063202576ae";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/da/firefox-64.0.tar.bz2";
+      locale = "da";
+      arch = "linux-i686";
+      sha512 = "40694d162b6f156a845e853bf6ea8cb13db1da8f02ed5da2e640169986557d5521836e1a4dfe0a54ad1c822decadbc9551608001d245990c5e134ed1d8c73ff9";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/de/firefox-64.0.tar.bz2";
+      locale = "de";
+      arch = "linux-i686";
+      sha512 = "496482af47cc88149feb1f2a850cff0ec7c78292635e9b8b9ed61c966e7d1f8596364e6169c669de204c481e510473e97a70812c0afdfe13a2fa2567ed6e6746";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/dsb/firefox-64.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-i686";
+      sha512 = "d6b471a9629ce8c387ac195eab1fba4f255ec18b3fe0868fd32ec89604f117693b8069f8ea2b7f3b07bcbb502e38e7702ac54e7944ba1c06471701b0e6cda113";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/el/firefox-64.0.tar.bz2";
+      locale = "el";
+      arch = "linux-i686";
+      sha512 = "bd2967a225cc10281368a5fa3fb42ccbed74da18f0b64fa4bfe3da8e62c883872db0da05b9271cd541a28c4c19abcf6787d7576a4ab06c840f9e8ab82c7d4b1f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/en-CA/firefox-64.0.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-i686";
+      sha512 = "61c3dbb80d8af02d41569a2054bc3727f14717505c6bb67769ed4de3455054b5e390107f6f7f85a4d21054c69452cf6be4cb5a6593c155354f3878139a247bb0";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/en-GB/firefox-64.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-i686";
+      sha512 = "4c153a00edccccf1ba23194e61ec2b559155563d07d2b04465454c4ca7128026e0fb4b6b45d0173a0088671a83ee64591f441f08bdb4bc760303f29625df3e22";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/en-US/firefox-64.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-i686";
+      sha512 = "09651679e1c7966e4df1285ee6d3b5ed99b4f91e32ffe430d75122224eb303b80673aebec524b7cf27ad15699a0c4ff908e694f54689d0e4a6c0352438be4704";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/en-ZA/firefox-64.0.tar.bz2";
+      locale = "en-ZA";
+      arch = "linux-i686";
+      sha512 = "3b6b8d16dded7bf308017fcadace078258d1e7e365a1adea676b8882161beb5f4cf7aad8e804e82f388738d1a6b2cdc192ce740342b0f79b6f6ae3c02f5b7c08";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/eo/firefox-64.0.tar.bz2";
+      locale = "eo";
+      arch = "linux-i686";
+      sha512 = "2c1921f9f19f1abf9f2940f88f705664a2277dc55493f51136da1ec9efcb0bf49510d18bc4ed13e0c32e8331081156627cf18610d0b9fc909a04e63ec7834dc8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/es-AR/firefox-64.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-i686";
+      sha512 = "be80f220a86ceaaa3045472c7e5a15b631ebd9bf55a10152164f99d151e96fc599e25f7eebb4a670f122fb6aebe5097650b12611e595fc9b749af60320d01d5b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/es-CL/firefox-64.0.tar.bz2";
+      locale = "es-CL";
+      arch = "linux-i686";
+      sha512 = "bc52fc5433a43b275918c45e96584e29e048a46ca0db7c2cedd851e3a763500a04f2696871aae132ac07f5a44b67b5a604b6b142d92f49e67ed33d17ff7f9d96";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/es-ES/firefox-64.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-i686";
+      sha512 = "c2e022ce5672bf1e1a825535acc8968b5a538fe3cd2cbf7d11896b6a1fd77422d92114d855dc79caeff620278e092d6c2510f82e55fd316c6dce05b1e3ffad09";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/es-MX/firefox-64.0.tar.bz2";
+      locale = "es-MX";
+      arch = "linux-i686";
+      sha512 = "3363c5e6c198490ee2600778b931d44a0abb86baab887d8ba3bec70d4a025a7f9d840492b8644ad6ab32f24a0f9e4d403b9ba0d6349d8a99bbbdcd0e180701f9";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/et/firefox-64.0.tar.bz2";
+      locale = "et";
+      arch = "linux-i686";
+      sha512 = "04f472440779ba04a6cdc1aab9e86418ce7ac6a042921e2ad8afe9a2ac7d931dfb15a771bf7120130c0fea3f894dc35a1167f8b8dc246f133f95be8deafb9e8b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/eu/firefox-64.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-i686";
+      sha512 = "e9db84be9fe224641ed11414c07ff6d23b583711e25253f602bdf57a5dc249151c700e65722dab103b3d9448a3930ba73c4d4ae223ef935ae38f85488a68ae86";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/fa/firefox-64.0.tar.bz2";
+      locale = "fa";
+      arch = "linux-i686";
+      sha512 = "06d6a28c780cd39412463cc55b5afc3c4eb29fd22a4b5a916456820a871c7f150c84beddd24d69a5ed1c2c0392a0b69a5d89771be929afbb46995499bfac24a7";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ff/firefox-64.0.tar.bz2";
+      locale = "ff";
+      arch = "linux-i686";
+      sha512 = "e8c54e872c63d0b5f814a31e9d8f98b6d53f94ca471e9728c21b8f7374b85a235ac4f6fddf7811333d71a1094cbb5b4dea20c1035b9438d4db8bd4b0ea47aa4e";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/fi/firefox-64.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-i686";
+      sha512 = "29b90160fd55a3e7bdbb9eafd52e052a9e4138591d21ef52f4cb097496494a3dec44e359a299c358f242704437817af4e1b55771035b34e7126307ddca312f13";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/fr/firefox-64.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-i686";
+      sha512 = "7ce7f12c11ce2cd212648639f34cbc6c0b161e69b6082f41a4ba6a8609502d034b9865f542dfecb683dea9da374cbe617c28771ab8867b207fb6d31413898143";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/fy-NL/firefox-64.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-i686";
+      sha512 = "2d074fd18ddb80b18e24d1ea2868b0bbc0575e173740827ae849110f98c2467c4f401622d2099287b5f536c97dfeefa65f89b6c9601ad2ff90689a0f92c0878a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ga-IE/firefox-64.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-i686";
+      sha512 = "051f416c6ca3a0a42f8da96098c17c8188af2e55d585ab5c9f2eb54fc25c1f3bb35810e39ce51968e35f528959b6249284b29ebf1aa660b26cbeebffa3d628d6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/gd/firefox-64.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-i686";
+      sha512 = "795f6ab4835f9e2f84277072d67ea29f9d5ce25ae913007ff04f839fd38301ea161ed825d53ac4d9d444245cd48161392ff868c162fece5e77c40c1e2330463a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/gl/firefox-64.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-i686";
+      sha512 = "3419ff231fb3705aba5ad6d20e18fee2f271a489248644ab5da197a27d3079ea27db82c4a19e64cb7709df79e323c0b7575072321a4484a20aba88f2da9948c8";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/gn/firefox-64.0.tar.bz2";
+      locale = "gn";
+      arch = "linux-i686";
+      sha512 = "0d4d54c3f79b1e3cf7ea8df71067d4e2f654f2b1c1895db72476bdd55acd861a5a4bcdf60ce4d70bb21af4b3295981a086b348fcf85495dde0b1b2045e60b47d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/gu-IN/firefox-64.0.tar.bz2";
+      locale = "gu-IN";
+      arch = "linux-i686";
+      sha512 = "269ec2149865fca892c0e1b402af3e737c65ef4ef9db68cde4f9550a60e3e228d9ff218a920c63c03f74f66d348956f28e77e3a495d477916a9ac673afe7abc3";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/he/firefox-64.0.tar.bz2";
+      locale = "he";
+      arch = "linux-i686";
+      sha512 = "db78a15d2584d66ce27f9d0efa4d29e5329f4cfe1357623f7406105212c50e58195e492d059ab6157d9f0f37c947da77c384c0b2aeda1bd9691b2d0deb4fd330";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/hi-IN/firefox-64.0.tar.bz2";
+      locale = "hi-IN";
+      arch = "linux-i686";
+      sha512 = "a638a07ee771a623755bc69a352719675172f96ca86be2ac142ffe8670eb4921bbad7e2965c6464df11f7a345e965a4350457331806d2e01724791f2a419b3b9";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/hr/firefox-64.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-i686";
+      sha512 = "2cc12574d807102e4ca7c2b37f252d132da11c891ca05e30559bcdf7c054a237e1d1a17eeb61023c33d0ac62e7fe703328db2152cfea48f880cddb90aaca5717";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/hsb/firefox-64.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-i686";
+      sha512 = "528d7131ea6379c828e2215703d210b600bb1d9ce6b25c14371ae3793c4231e34fda7f4f9132a15c8d30dc1480e53db8d4b69f9c2128ec39da4e96b6995e5409";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/hu/firefox-64.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-i686";
+      sha512 = "30af286d2a5615dd5dd62de938990fc448e85450671955ba28303f52c853e47020fd95badc4b0f15a044900ac7e509c82eb2964f581311ae2a2c5c5303ef5ce4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/hy-AM/firefox-64.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-i686";
+      sha512 = "e934ddaa4ca206213dd556454dbb1ef4f0d3b567fe15df7997bbc43b16e38e23603f06bdc69490d9e26121ec2140518d610fdd3a125b5ddee14a4556adab4bb7";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ia/firefox-64.0.tar.bz2";
+      locale = "ia";
+      arch = "linux-i686";
+      sha512 = "ebc92c0eb3639612feb69b281a9240c7335a4d9e792df77f0bf8b5591b37089c5994d6a0681ba90c75228dca3c7d9f9d9d292ea37692bfd761eab4d93e32db88";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/id/firefox-64.0.tar.bz2";
+      locale = "id";
+      arch = "linux-i686";
+      sha512 = "dfe6b103ccdac88212d82cf26e02bf4803336a742e3dc1b6ba0c4e3efdb3efd13a743731052353eb3d7947237ad010cfa6ef1bc735e9acbd08f0668cc0ce3fd3";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/is/firefox-64.0.tar.bz2";
+      locale = "is";
+      arch = "linux-i686";
+      sha512 = "7744c9137571f3c4c9a830ae801c81651d4f979be67664fed8a503f3e8357251e37349acd323b7f6b6d843c68a499fdd544d09c02db22e64f52e057831c1e366";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/it/firefox-64.0.tar.bz2";
+      locale = "it";
+      arch = "linux-i686";
+      sha512 = "7d24a74d456ef99e1c212679887c4b53703bf37b1f76827b7e7e41dc056cb46457243ad321e5ca41e73839dd6f62f1f674a1b5f5430f775a658f1a90563992f2";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ja/firefox-64.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-i686";
+      sha512 = "31696b0834306f0ddda94aa4b44e59bf570796ec50e744eaf5ac65c803a160d811e8c19df3923534bb607eb406c86262ac281dae2739c1b1a158f397dde85689";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ka/firefox-64.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-i686";
+      sha512 = "8ae0b80f22251ea7d1da8e151d94fc8c6452ab95af89a76a461ddeae88d7bfa8801c7c37454a88097d228d404ef8362c88a4968d197bbbb6e925dd60e2d24c31";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/kab/firefox-64.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-i686";
+      sha512 = "401faa908365eeb8790f7895fc17bd19d9b8cb294fb18567ac3b69bf54d37acb381c992ea969e8fdc5888d165c91a757b187cf4422f6a184b2378ea189b984eb";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/kk/firefox-64.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-i686";
+      sha512 = "7819b959b86c728f568c1088827e6e55c4ce4bff6d52a51540d47f014d59cff79d28bd45793d3d09b1951b8bb7690f0f1a8c5c4854500c375297d595806c9f9f";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/km/firefox-64.0.tar.bz2";
+      locale = "km";
+      arch = "linux-i686";
+      sha512 = "90acc7ac9eeb55398d6624525808ad93a5cd506a363b465feb33b336bfb3c48c47d8ef9e057ff26b972534e50fca59ec14a5c7f8425f0cfd9ff6e81877d973f3";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/kn/firefox-64.0.tar.bz2";
+      locale = "kn";
+      arch = "linux-i686";
+      sha512 = "93203bbf5ab4e41723711e13a9d0cf76a436089f15c37e8cf01c2d3afe2d7d0c0d1a5d0bb34ad5042384493a6ab5ccff2123c5cb044dcddd36156ce3b4bd6213";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ko/firefox-64.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-i686";
+      sha512 = "6cc2fa7d1ef44d99db1c011a74f394880dac2f433e93aa01d18db0d00fb1511995e0e090edda30764ad60275b345e251d2458014f63760612d515ed3a10fed60";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/lij/firefox-64.0.tar.bz2";
+      locale = "lij";
+      arch = "linux-i686";
+      sha512 = "43b94a4571e639120a848980b7ac0edf73b840788a3f333c1200fe814ae37835d859f83c318382d3fd4e96cd010c55b542f72c6d5f46b999b526e4cef5705d7d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/lt/firefox-64.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-i686";
+      sha512 = "785fc150962fa875a32830f8e71b116e4e3e734b4f4ad429ed50fb3e93e430aab6796c1f867c78d3a3b714799ca35971591a8668f3bd4421d80ac0e3c8f816ec";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/lv/firefox-64.0.tar.bz2";
+      locale = "lv";
+      arch = "linux-i686";
+      sha512 = "1877f1ffc2ee5c76db3afb47788db1a251085e594b5ce7aff4e959caf7b2bf7a292d828735937966b3ad0138046dc0055ab25186250f4c800fcdc13b6f4927da";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/mai/firefox-64.0.tar.bz2";
+      locale = "mai";
+      arch = "linux-i686";
+      sha512 = "942f8fb48f1b1086614f122596286c0ff66fedf742ff81ade4ff2c60fcd7cbdcfb18489a35c3abf0de85200905f47681e55a96905907482122b748e4360edaa7";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/mk/firefox-64.0.tar.bz2";
+      locale = "mk";
+      arch = "linux-i686";
+      sha512 = "1ed365e89a0e2f100a6b19c0060284aa6af06d9ecb57fa9d1200797f06c5613009ae466454bec794fd4ee8ca2edd0e465dcb6428b78285e77e8d2392c49da591";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ml/firefox-64.0.tar.bz2";
+      locale = "ml";
+      arch = "linux-i686";
+      sha512 = "bb6f35d2fd419231ec0139745fffc85ecaabd17a51915cddc286abb555538b15491b88ae099a9d2713f2902662c869597bf9c1b2622e4f3f2469c25e68cdbab0";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/mr/firefox-64.0.tar.bz2";
+      locale = "mr";
+      arch = "linux-i686";
+      sha512 = "40201bb8eb70feecda000a88d16a9a0f4e65518dc35b85f31f311785bf402d80babd33d940fcb6c349e46c09668d21b9c0985538975d04b06127e60a5b64ce7c";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ms/firefox-64.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-i686";
+      sha512 = "35b9969191730e94143b28f5a0316733a9046bf4f39d3552b88b75392029bb964b1b7f963f1a770bc9afa5f6beaaeb29d04e89636d55f0e5bccb412e2f912e32";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/my/firefox-64.0.tar.bz2";
+      locale = "my";
+      arch = "linux-i686";
+      sha512 = "cba958f5e8055456765ad9ae8f6bf20d347e14fb20681f972e7172503151c3ed19b24c5f11c800eb73e58dd21282dd59b9e9e74869779086dc9973355dde49a1";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/nb-NO/firefox-64.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-i686";
+      sha512 = "a886ab50a74c7e01c7be43937e38ad370a20465dca3cd22dfc1fecb84d71e7acc0291df1f289ee059cb546987424bfbc77ec6792dc1cb6ed3e4ad8cf10087436";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ne-NP/firefox-64.0.tar.bz2";
+      locale = "ne-NP";
+      arch = "linux-i686";
+      sha512 = "300f48a200ffe2115a5e2fcea2ea995224a2a6e75c20881d9934554f077056b251dac14b19b2a6227b7c813108a6ac4614e7880ef6330c155e594894faec1074";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/nl/firefox-64.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-i686";
+      sha512 = "4d0e8711022bf6aab64ba2a6d0f2381c0ee2b29282e87411ea3a2a192dfc06b6be0b304f680c1d0cae171d4bf531ef9a68dbffdd671245747d2e7b292be69234";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/nn-NO/firefox-64.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-i686";
+      sha512 = "e3fe55836442e0c6275103608d167461110357836cd0631e84ea755ecd2b46a46452d85dfbf71e669697995b30da3fd1b0cc878372525a9c0446db64cbf497fe";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/oc/firefox-64.0.tar.bz2";
+      locale = "oc";
+      arch = "linux-i686";
+      sha512 = "a90268805c8d999bb657c79a3638b0b580ed6407a233a532cb417d7061b68c4d6cee9d6b5c3f05e9b2611180cf7649a405e2d2c631bf09adce8ebde9bbde8314";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/or/firefox-64.0.tar.bz2";
+      locale = "or";
+      arch = "linux-i686";
+      sha512 = "16092e2ec183344850e32606f058cd356c26fb91703300fd2bcf36a278d2f0504370a0a619ccd35b2f1ca998c5b9b5a393fcdeab7a78295774f84e2e468e6e27";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/pa-IN/firefox-64.0.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-i686";
+      sha512 = "7ccdbcadc26d9b5c5e451ec2d3b8af913995678eab8648582593327ad7c0b726922c54ed60f44632b9aabf66845dac01b464f695f9606466c248f8d694f3a237";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/pl/firefox-64.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-i686";
+      sha512 = "59819654afdc622f8a82ff62bbc2347589083f847f21d100dd6e625a75dbd0eb5c15acdcb504353c2e8d3351e0021c0494e674b54e7583c3432d568252811ad5";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/pt-BR/firefox-64.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-i686";
+      sha512 = "dbda83f708aba63d5c761bb95f4d50007afe0021d8677f94995c00656370ce86a9fac6ab8afe0d8c4a5af15ff9465f8db2888c0b2ef1e08d458f356ae1a40bd4";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/pt-PT/firefox-64.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-i686";
+      sha512 = "4565296177aa7046e08d4db4b60cf9cc0c93e794963d0280191c096d5239af9c719752041901e04221597359adad8dcf3171842ef085e32dc7d8c3146e4abf5d";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/rm/firefox-64.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-i686";
+      sha512 = "67b396e074900fb233a7fcc14e975f2f774936cce4a68150f9d1e94656cf097fcd34549605ab94ab121c4aef2673367f2c7d80d54cc97597cbff3da82a5d4291";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ro/firefox-64.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-i686";
+      sha512 = "c5a9ad2a4f49df543d1f03569a9de5e698cc20f163131cec1892183d855c28b00a8cce7b97faafc7bafdd1bbfa2487ce294e3bf3a8cbe26162d52da5d0474398";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ru/firefox-64.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-i686";
+      sha512 = "078ea67e6d295e4d7605f09ee04992b301557444e5c195a9b29a8cb328a748d30a82bd005b1d569cc238e258402d057cc861b9dcd68ec30ad8314f108944884a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/si/firefox-64.0.tar.bz2";
+      locale = "si";
+      arch = "linux-i686";
+      sha512 = "80e6dfd4714de9b73dc068061488980b257df1e7dd660b260251dd63993db5279c2d54007f42ba9886d3ff88416bd20aa2eec1ea107e121dcf15b80639db1c32";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/sk/firefox-64.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-i686";
+      sha512 = "be8eb2f4ed1dbc3898e623ff435e6a9345287729d46633b353a8e244caee9b566be3b6ca4b3f5499626b0c931b26469ffb3ff140b8ab8c32f8ddb99db55307e2";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/sl/firefox-64.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-i686";
+      sha512 = "99a0f9892c7af215e203a8643aa499597fab232d30d7f9a4cf00c30ba1d29f578e65db2a97a16bd3d11e7838323537cc391c07f85ee969312622b87e84f096e6";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/son/firefox-64.0.tar.bz2";
+      locale = "son";
+      arch = "linux-i686";
+      sha512 = "ef0136de2033b656f715d98414e14dc19f1a36ab4b0f0dbb1bc33bbd195c50b21bc3452577f90f5104421c438d95ee7cda42e15dbfc6e2db7df723e5b803afbb";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/sq/firefox-64.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-i686";
+      sha512 = "781468c8bd431d6e5e2b56bfd4d39a014edf53b5757d5147a1d77e0d79107d2e7a71ecc7ad0e53498bd36d72e612dcea3b3453f4e0fd782eb034768ee270ffee";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/sr/firefox-64.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-i686";
+      sha512 = "4bd80b0b38156865543a335bf17a847ffb7c9001547a8415836fbc52b57927dee22fa21e6f0de834bc40ecc8f2f1b518c5f7ac4dcc00b0db26a82aa7ac4a106a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/sv-SE/firefox-64.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-i686";
+      sha512 = "260c9aa46d9323ffb4f8e9607b876a4fcb46aea5a1e62fa7d3b9d3c6158175d50b8948053df5577bdd6361fecdbc933d85051ee294b941c7c78509a6d75f4812";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ta/firefox-64.0.tar.bz2";
+      locale = "ta";
+      arch = "linux-i686";
+      sha512 = "bfebd565d0bd1792b40799e2bdf82b502a64c26d390103b9b4363c0785d4f1a075d364b27d3a209f6246b9a2e82c65e82ffa2c55507229d4ac2ffa905050784a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/te/firefox-64.0.tar.bz2";
+      locale = "te";
+      arch = "linux-i686";
+      sha512 = "2c41381d816aaf7782a6a0ff3b15a12a1f82aa6673e6d18d9685340eb0ebea20db8bf1596fe0000e8666c97b464aff76962dfa889fd0c71443147fba74ef549b";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/th/firefox-64.0.tar.bz2";
+      locale = "th";
+      arch = "linux-i686";
+      sha512 = "532b0db2482445312d726237d44982eeb94378ce5e3e6a779f97f551b85016394b97b683feb168917eb43f987ad47d7b8249b68716cce0c8b66f8b8be644108a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/tr/firefox-64.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-i686";
+      sha512 = "37eedff76225ccf7485516da0061b6c48e4e5696e8d6d2179718adfd2c1e4070c338773bddd176b8dc62ad8cddba2445be4b2e59bfb6c372d11d1b65d0b7a0df";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/uk/firefox-64.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-i686";
+      sha512 = "d3a010bbe98c8fb16d3bb89e0f7ed8f18d61c995f0fed28051de798e0f89ec864766ee75a51c1c2a3f82bf7d0c5b8f4e89c2751c4d4a96e145fb7ceef1852799";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/ur/firefox-64.0.tar.bz2";
+      locale = "ur";
+      arch = "linux-i686";
+      sha512 = "721d2cc23eccca01fbb2ffc5dafeae516d295328785fa50c0cc279b9786914b21b68488174a6c91e1bdd906dbd08ea70d359d8130dd1559738f6c18346a8329a";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/uz/firefox-64.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-i686";
+      sha512 = "558edf58991a72fbdbd8861a19a2d0bd3e4dcbbb2c9de6a190042d516baf38796dcceb7fcb75b87fa0d184d1a7129e645f0993ee2150527ec61cd930fc1683b2";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/vi/firefox-64.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-i686";
+      sha512 = "f4a119b311a55d2eb8439731b96676e5e840381e79f36ad3239fe1d4802bc61b2750447f70fbcd089e2d58c3b5bb923da38e7c0905ec5c55030b9e3be434e7ca";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/xh/firefox-64.0.tar.bz2";
+      locale = "xh";
+      arch = "linux-i686";
+      sha512 = "a3b6f6d0d2e6c3f6be3defa1283a4e4857a337b2c195de5583c8ef46a73ab1c0b3a6c1619c8370aef238ebee9f0b6a817e08c8fd35affddbc0a8b657e65df413";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/zh-CN/firefox-64.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-i686";
+      sha512 = "c37d51b46139f9d5fda1cecbe6a816a7e01ea00db72df780db3b0c305a078c4525825352eb31e4fa389fc3cd98880ea1a915b96e9f11e06b04040d718dd29e39";
+    }
+    { url = "http://archive.mozilla.org/pub/firefox/releases/64.0/linux-i686/zh-TW/firefox-64.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-i686";
+      sha512 = "b89684613a006d59b1143d6070476d99190e86b9e2ec51c575d71a3f95163978b85a9c293d736fea4654f7ba8427e2b7a1b671aba860e5f736cef7e812241a09";
+    }
+    ];
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix
new file mode 100644
index 000000000000..ee022e329f9f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix
@@ -0,0 +1,90 @@
+{ stdenv
+, name
+, channel
+, writeScript
+, xidel
+, coreutils
+, gnused
+, gnugrep
+, curl
+, gnupg
+, baseName ? "firefox"
+, basePath ? "pkgs/applications/networking/browsers/firefox-bin"
+, baseUrl
+}:
+
+let
+  isBeta =
+    channel != "release";
+
+in writeScript "update-${name}" ''
+  #!${stdenv.shell}
+  PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin:${gnupg}/bin
+  set -eux
+  pushd ${basePath}
+
+  HOME=`mktemp -d`
+  cat ${./firefox.key} | gpg --import
+
+  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/SHA512SUMS"
+  curl --silent -o $HOME/shasums.asc "$url$version/SHA512SUMS.asc"
+  gpgv --keyring=$HOME/.gnupg/pubring.kbx $HOME/shasums.asc $HOME/shasums
+
+  # this is a list of sha512 and tarballs for both arches
+  shasums=`cat $HOME/shasums`
+
+  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";
+        sha512 = "`echo $line | cut -d":" -f1`";
+      }
+  EOF
+    done
+  done
+  cat >> $tmpfile <<EOF
+      ];
+  }
+  EOF
+
+  mv $tmpfile ${channel}_sources.nix
+
+  popd
+''
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
new file mode 100644
index 000000000000..5d2232e08694
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
@@ -0,0 +1,314 @@
+{ pname, ffversion, meta, updateScript ? null
+, src, unpackPhase ? null, patches ? []
+, extraNativeBuildInputs ? [], extraConfigureFlags ? [], extraMakeFlags ? []
+, isTorBrowserLike ? false, tbversion ? null }:
+
+{ lib, stdenv, pkgconfig, pango, perl, python2, zip, libIDL
+, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
+, freetype, fontconfig, file, nspr, nss, libnotify
+, yasm, libGLU_combined, sqlite, unzip, makeWrapper
+, hunspell, libevent, libstartup_notification, libvpx
+, icu, libpng, jemalloc, glib
+, autoconf213, which, gnused, cargo, rustc, llvmPackages
+, rust-cbindgen, nodejs
+, debugBuild ? false
+
+### optionals
+
+## optional libraries
+
+, alsaSupport ? stdenv.isLinux, alsaLib
+, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
+, ffmpegSupport ? true
+, gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
+, gssSupport ? true, kerberos
+, waylandSupport ? gtk3Support, libxkbcommon
+
+## privacy-related options
+
+, privacySupport ? isTorBrowserLike
+
+# 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.
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1434589
+, webrtcSupport ? (if lib.versionAtLeast ffversion "60" && stdenv.isAarch64 then false else !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.
+#
+# Fur 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;
+
+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" else "2"}${lib.optionalString waylandSupport "-wayland"}";
+
+  execdir = if stdenv.isDarwin
+            then "/Applications/${browserName}.app/Contents/MacOS"
+            else "/bin";
+  browserName = if stdenv.isDarwin then "Firefox" else "firefox";
+in
+
+stdenv.mkDerivation rec {
+  name = "${pname}-unwrapped-${version}";
+  version = if !isTorBrowserLike then ffversion else tbversion;
+
+  inherit src unpackPhase patches meta;
+
+  buildInputs = [
+    gtk2 perl zip libIDL 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_combined
+    xorg.libXScrnSaver xorg.scrnsaverproto
+    xorg.libXext xorg.xextproto sqlite unzip makeWrapper
+    libevent libstartup_notification libvpx /* cairo */
+    icu libpng jemalloc glib
+  ]
+  ++ lib.optionals (!isTorBrowserLike) [ nspr nss ]
+  ++ lib.optional (lib.versionOlder ffversion "61") hunspell
+  ++ lib.optional  alsaSupport alsaLib
+  ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
+  ++ lib.optional  gtk3Support gtk3
+  ++ lib.optional  waylandSupport libxkbcommon
+  ++ lib.optional  gssSupport kerberos
+  ++ lib.optionals stdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos
+                                     AVFoundation MediaToolbox CoreLocation
+                                     Foundation libobjc AddressBook cups ];
+
+  NIX_CFLAGS_COMPILE = [
+    "-I${glib.dev}/include/gio-unix-2.0"
+  ]
+  ++ lib.optionals (!isTorBrowserLike) [
+    "-I${nss.dev}/include/nss"
+  ]
+  ++ lib.optional stdenv.isDarwin [
+    "-isystem ${llvmPackages.libcxx}/include/c++/v1"
+    "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10"
+  ];
+
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace js/src/jsmath.cpp --replace 'defined(HAVE___SINCOS)' 0
+  '' + lib.optionalString (lib.versionAtLeast ffversion "63.0" && !isTorBrowserLike) ''
+    substituteInPlace third_party/prio/prio/rand.c --replace 'nspr/prinit.h' 'prinit.h'
+  '';
+
+  nativeBuildInputs =
+    [ autoconf213 which gnused pkgconfig perl python2 cargo rustc ]
+    ++ lib.optional gtk3Support wrapGAppsHook
+    ++ lib.optionals stdenv.isDarwin [ xcbuild rsync ]
+    ++ lib.optionals (lib.versionAtLeast ffversion "63.0") [ rust-cbindgen nodejs ]
+    ++ extraNativeBuildInputs;
+
+  preConfigure = ''
+    # remove distributed configuration files
+    rm -f configure
+    rm -f js/src/configure
+    rm -f .mozconfig*
+  '' + (if lib.versionAtLeast ffversion "58"
+  # this will run autoconf213
+  then ''
+    configureScript="$(realpath ./mach) configure"
+  '' else ''
+    make -f client.mk configure-files
+    configureScript="$(realpath ./configure)"
+  '') + lib.optionalString (lib.versionAtLeast ffversion "53") ''
+    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.default_cxx_stdlib_compile} \
+      ${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}/$(cc -dumpmachine)"} \
+      $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
+    configureFlagsArray+=("--with-google-api-keyfile=$TMPDIR/ga")
+  '' + lib.optionalString (lib.versionOlder ffversion "58") ''
+    cd obj-*
+  ''
+  # AS=as in the environment causes build failure https://bugzilla.mozilla.org/show_bug.cgi?id=1497286
+  + lib.optionalString (lib.versionAtLeast ffversion "64") ''
+    unset AS
+  '';
+
+  configureFlags = [
+    "--enable-application=browser"
+    "--with-system-jpeg"
+    "--with-system-zlib"
+    "--with-system-bz2"
+    "--with-system-libevent"
+    "--with-system-libvpx"
+    "--with-system-png" # needs APNG support
+    "--with-system-icu"
+    "--enable-system-ffi"
+    "--enable-system-pixman"
+    "--enable-system-sqlite"
+    #"--enable-system-cairo"
+    "--enable-startup-notification"
+    #"--enable-content-sandbox" # TODO: probably enable after 54
+    "--disable-tests"
+    "--disable-necko-wifi" # maybe we want to enable this at some point
+    "--disable-updater"
+    "--enable-jemalloc"
+    "--disable-gconf"
+    "--enable-default-toolkit=${default-toolkit}"
+  ]
+  ++ lib.optional (lib.versionOlder ffversion "64") "--disable-maintenance-service"
+  ++ lib.optional (stdenv.isDarwin && lib.versionAtLeast ffversion "61") "--disable-xcode-checks"
+  ++ lib.optional (lib.versionOlder ffversion "61") "--enable-system-hunspell"
+  ++ lib.optionals (lib.versionAtLeast ffversion "56") [
+    "--with-libclang-path=${llvmPackages.libclang}/lib"
+    "--with-clang-path=${llvmPackages.clang}/bin/clang"
+  ]
+  ++ lib.optionals (lib.versionAtLeast ffversion "57") [
+    "--enable-webrender=build"
+  ]
+
+  # TorBrowser patches these
+  ++ lib.optionals (!isTorBrowserLike) [
+    "--with-system-nspr"
+    "--with-system-nss"
+  ]
+
+  # and wants these
+  ++ lib.optionals isTorBrowserLike ([
+    "--with-tor-browser-version=${tbversion}"
+    "--enable-signmar"
+    "--enable-verify-mar"
+  ])
+
+  ++ flag alsaSupport "alsa"
+  ++ flag pulseaudioSupport "pulseaudio"
+  ++ flag ffmpegSupport "ffmpeg"
+  ++ flag gssSupport "negotiateauth"
+  ++ flag webrtcSupport "webrtc"
+  ++ flag crashreporterSupport "crashreporter"
+  ++ lib.optional drmSupport "--enable-eme=widevine"
+
+  ++ lib.optionals (lib.versionOlder ffversion "60") ([]
+    ++ flag geolocationSupport "mozril-geoloc"
+    ++ flag safeBrowsingSupport "safe-browsing"
+  )
+
+  ++ (if debugBuild then [ "--enable-debug" "--enable-profiling" ]
+                    else [ "--disable-debug" "--enable-release"
+                           "--enable-optimize"
+                           "--enable-strip" ])
+  ++ lib.optional enableOfficialBranding "--enable-official-branding"
+  ++ extraConfigureFlags;
+
+  # Before 58 we have to run `make -f client.mk configure-files` at
+  # the top level, and then run `./configure` in the obj-* dir (see
+  # above), but in 58 we have to instead run `./mach configure` at the
+  # top level and then run `make` in obj-*. (We can also run the
+  # `make` at the top level in 58, but then we would have to `cd` to
+  # `make install` anyway. This is ugly, but simple.)
+  postConfigure = lib.optionalString (lib.versionAtLeast ffversion "58") ''
+    cd obj-*
+  '';
+
+  preBuild = lib.optionalString isTorBrowserLike ''
+    buildFlagsArray=("MOZ_APP_DISPLAYNAME=Tor Browser")
+  '';
+
+  makeFlags = lib.optionals enableOfficialBranding [
+    "MOZILLA_OFFICIAL=1"
+    "BUILD_OFFICIAL=1"
+  ]
+  ++ extraMakeFlags;
+
+  enableParallelBuilding = true;
+  doCheck = false; # "--disable-tests" above
+
+  preInstall = ''
+    # The following is needed for startup cache creation on grsecurity kernels.
+    paxmark m dist/bin/xpcshell
+  '';
+
+  installPhase = if stdenv.isDarwin then ''
+    mkdir -p $out/Applications
+    cp -LR dist/Firefox.app $out/Applications
+  '' else null;
+
+  postInstall = lib.optionalString stdenv.isLinux ''
+    # For grsecurity kernels
+    paxmark m $out/lib/firefox*/{firefox,firefox-bin,plugin-container}
+
+    # Remove SDK cruft. FIXME: move to a separate output?
+    rm -rf $out/share/idl $out/include $out/lib/firefox-devel-*
+
+    # Needed to find Mozilla runtime
+    gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped")
+  '';
+
+  postFixup = lib.optionalString stdenv.isLinux ''
+    # Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712.
+    patchelf --set-rpath "${lib.getLib libnotify
+      }/lib:$(patchelf --print-rpath "$out"/lib/firefox*/libxul.so)" \
+        "$out"/lib/firefox*/libxul.so
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    # Some basic testing
+    "$out${execdir}/${browserName}" --version
+  '';
+
+  passthru = {
+    inherit version updateScript;
+    isFirefox3Like = true;
+    inherit isTorBrowserLike;
+    gtk = gtk2;
+    inherit nspr;
+    inherit ffmpegSupport;
+    inherit gssSupport;
+    inherit execdir;
+    inherit browserName;
+  } // lib.optionalAttrs gtk3Support { inherit gtk3; };
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch
new file mode 100644
index 000000000000..a0f581d84733
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/env_var_for_system_dir.patch
@@ -0,0 +1,14 @@
+diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
+index 380c1c1..255539f 100644
+--- a/toolkit/xre/nsXREDirProvider.cpp
++++ b/toolkit/xre/nsXREDirProvider.cpp
+@@ -306,7 +306,8 @@ GetSystemParentDirectory(nsIFile** aFile)
+                            "/usr/lib/mozilla"
+ #endif
+                            );
+-  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));
+ #endif
+ 
+   if (NS_SUCCEEDED(rv)) {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/fix-debug.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/fix-debug.patch
new file mode 100644
index 000000000000..ba92bbc47403
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/fix-debug.patch
@@ -0,0 +1,77 @@
+
+# HG changeset patch
+# User Michelangelo De Simone <mdesimone@mozilla.com>
+# Date 1479198095 28800
+# Node ID fde6e9ccfc72fbc0fcd93af7a40436b216e7ea1a
+# Parent  687eac6845a77d2cac5505da9c8912885c2a9e57
+Bug 1013882 - TestInterfaceJS should be packaged only if it's available. r=glandium, a=jcristau
+
+MozReview-Commit-ID: IEHesdoU4Sz
+
+diff --git a/b2g/installer/package-manifest.in b/b2g/installer/package-manifest.in
+--- a/b2g/installer/package-manifest.in
++++ b/b2g/installer/package-manifest.in
+@@ -570,17 +570,17 @@
+ @RESPATH@/components/InputMethod.manifest
+ #ifdef MOZ_B2G
+ @RESPATH@/components/inputmethod.xpt
+ #endif
+ 
+ @RESPATH@/components/SystemUpdate.manifest
+ @RESPATH@/components/SystemUpdateManager.js
+ 
+-#ifdef MOZ_DEBUG
++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
+ @RESPATH@/components/TestInterfaceJS.js
+ @RESPATH@/components/TestInterfaceJS.manifest
+ @RESPATH@/components/TestInterfaceJSMaplike.js
+ #endif
+ 
+ ; Modules
+ @RESPATH@/modules/*
+ 
+diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
+--- a/browser/installer/package-manifest.in
++++ b/browser/installer/package-manifest.in
+@@ -554,17 +554,17 @@
+ @RESPATH@/components/PresentationControlService.js
+ @RESPATH@/components/PresentationDataChannelSessionTransport.js
+ @RESPATH@/components/PresentationDataChannelSessionTransport.manifest
+ 
+ ; InputMethod API
+ @RESPATH@/components/MozKeyboard.js
+ @RESPATH@/components/InputMethod.manifest
+ 
+-#ifdef MOZ_DEBUG
++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
+ @RESPATH@/components/TestInterfaceJS.js
+ @RESPATH@/components/TestInterfaceJS.manifest
+ @RESPATH@/components/TestInterfaceJSMaplike.js
+ #endif
+ 
+ ; [Extensions]
+ @RESPATH@/components/extensions-toolkit.manifest
+ @RESPATH@/browser/components/extensions-browser.manifest
+diff --git a/mobile/android/installer/package-manifest.in b/mobile/android/installer/package-manifest.in
+--- a/mobile/android/installer/package-manifest.in
++++ b/mobile/android/installer/package-manifest.in
+@@ -381,17 +381,17 @@
+ 
+ @BINPATH@/components/CaptivePortalDetectComponents.manifest
+ @BINPATH@/components/captivedetect.js
+ 
+ #ifdef MOZ_WEBSPEECH
+ @BINPATH@/components/dom_webspeechsynth.xpt
+ #endif
+ 
+-#ifdef MOZ_DEBUG
++#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
+ @BINPATH@/components/TestInterfaceJS.js
+ @BINPATH@/components/TestInterfaceJS.manifest
+ @BINPATH@/components/TestInterfaceJSMaplike.js
+ #endif
+ 
+ @BINPATH@/components/nsAsyncShutdown.manifest
+ @BINPATH@/components/nsAsyncShutdown.js
+ 
+
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch
new file mode 100644
index 000000000000..1c3c32948944
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/fix-pa-context-connect-retval.patch
@@ -0,0 +1,26 @@
+Yep, it's a "return code was ignored" bug.
+diff --git a/media/libcubeb/src/cubeb_pulse.c b/media/libcubeb/src/cubeb_pulse.c
+index aaaaaaaaaaa..bbbbbbbbbbb 100644
+--- a/media/libcubeb/src/cubeb_pulse.c
++++ b/media/libcubeb/src/cubeb_pulse.c
+@@ -473,6 +473,8 @@
+ static int
+ pulse_context_init(cubeb * ctx)
+ {
++  int r;
++
+   if (ctx->context) {
+     assert(ctx->error == 1);
+     pulse_context_destroy(ctx);
+@@ -486,9 +488,9 @@
+   WRAP(pa_context_set_state_callback)(ctx->context, context_state_callback, ctx);
+ 
+   WRAP(pa_threaded_mainloop_lock)(ctx->mainloop);
+-  WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL);
++  r = WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL);
+ 
+-  if (wait_until_context_ready(ctx) != 0) {
++  if (r < 0 || wait_until_context_ready(ctx) != 0) {
+     WRAP(pa_threaded_mainloop_unlock)(ctx->mainloop);
+     pulse_context_destroy(ctx);
+     ctx->context = NULL;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch
new file mode 100644
index 000000000000..de278152f978
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch
@@ -0,0 +1,25 @@
+diff -ru -x '*~' firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp firefox-55.0.3/docshell/base/nsAboutRedirector.cpp
+--- firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp	2017-07-31 18:20:51.000000000 +0200
++++ firefox-55.0.3/docshell/base/nsAboutRedirector.cpp	2017-09-26 22:02:00.814151731 +0200
+@@ -36,10 +36,6 @@
+     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 '*~' firefox-55.0.3-orig/toolkit/content/jar.mn firefox-55.0.3/toolkit/content/jar.mn
+--- firefox-55.0.3-orig/toolkit/content/jar.mn	2017-07-31 18:20:52.000000000 +0200
++++ firefox-55.0.3/toolkit/content/jar.mn	2017-09-26 22:01:42.383350314 +0200
+@@ -40,7 +40,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/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
new file mode 100644
index 000000000000..31d6139f3248
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -0,0 +1,181 @@
+{ lib, callPackage, stdenv, fetchurl, fetchFromGitHub, fetchpatch, python3 }:
+
+let
+
+  common = opts: callPackage (import ./common.nix opts) {};
+
+  nixpkgsPatches = [
+    ./env_var_for_system_dir.patch
+  ];
+
+in
+
+rec {
+
+  firefox = common rec {
+    pname = "firefox";
+    ffversion = "64.0";
+    src = fetchurl {
+      url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
+      sha512 = "10zbzwpdadj3ap2z66d0bz8l11qkgzlzd22nj7n3k2bzy7rd0m6cfznd9d4mgyl4ivxjv6wz8pasvacrala2dr0m78ysxiz2fpvrahs";
+    };
+
+    patches = nixpkgsPatches ++ [
+      ./no-buildconfig.patch
+    ];
+
+    extraNativeBuildInputs = [ python3 ];
+
+    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;
+      license = lib.licenses.mpl20;
+    };
+    updateScript = callPackage ./update.nix {
+      attrPath = "firefox-unwrapped";
+      versionKey = "ffversion";
+    };
+  };
+
+  firefox-esr-52 = common rec {
+    pname = "firefox-esr";
+    ffversion = "52.9.0esr";
+    src = fetchurl {
+      url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
+      sha512 = "bfca42668ca78a12a9fb56368f4aae5334b1f7a71966fbba4c32b9c5e6597aac79a6e340ac3966779d2d5563eb47c054ab33cc40bfb7306172138ccbd3adb2b9";
+    };
+
+    patches = nixpkgsPatches ++ [
+      # this one is actually an omnipresent bug
+      # https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
+      ./fix-pa-context-connect-retval.patch
+    ];
+
+    meta = firefox.meta // {
+      description = "A web browser built from Firefox Extended Support Release source tree";
+      knownVulnerabilities = [ "Support ended in August 2018." ];
+    };
+    updateScript = callPackage ./update.nix {
+      attrPath = "firefox-esr-52-unwrapped";
+      ffversionSuffix = "esr";
+      versionKey = "ffversion";
+    };
+  };
+
+  firefox-esr-60 = common rec {
+    pname = "firefox-esr";
+    ffversion = "60.4.0esr";
+    src = fetchurl {
+      url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
+      sha512 = "3a2r2xyxqw86ihzbmzmxmj8wh3ay4mrjqrnyn73yl6ry19m1pjqbmy1fxnsmxnykfn35a1w18gmbj26kpn1yy7hif37cvy05wmza6c1";
+    };
+
+    patches = nixpkgsPatches ++ [
+      ./no-buildconfig.patch
+
+      # this one is actually an omnipresent bug
+      # https://bugzilla.mozilla.org/show_bug.cgi?id=1444519
+      ./fix-pa-context-connect-retval.patch
+    ];
+
+    meta = firefox.meta // {
+      description = "A web browser built from Firefox Extended Support Release source tree";
+    };
+    updateScript = callPackage ./update.nix {
+      attrPath = "firefox-esr-60-unwrapped";
+      versionSuffix = "esr";
+      versionKey = "ffversion";
+    };
+  };
+
+} // (let
+
+  tbcommon = args: common (args // {
+    pname = "tor-browser";
+    isTorBrowserLike = true;
+
+    unpackPhase = ''
+      # fetchFromGitHub produces ro sources, root dir gets a name that
+      # is too long for shebangs. fixing
+      cp -a $src tor-browser
+      chmod -R +w tor-browser
+      cd tor-browser
+
+      # set times for xpi archives
+      find . -exec touch -d'2010-01-01 00:00' {} \;
+    '';
+
+    patches = nixpkgsPatches;
+
+    meta = {
+      description = "A web browser built from TorBrowser source tree";
+      longDescription = ''
+        This is a version of TorBrowser with bundle-related patches
+        reverted.
+
+        I.e. it's a variant of Firefox with less fingerprinting and
+        some isolation features you can't get with any extensions.
+
+        Or, alternatively, a variant of TorBrowser that works like any
+        other UNIX program and doesn't expect you to run it from a
+        bundle.
+
+        It will use your default Firefox profile if you're not careful
+        even! Be careful!
+
+        It will clash with firefox binary if you install both. But it
+        should not be a problem because you should run browsers in
+        separate users/VMs anyway.
+
+        Create new profile by starting it as
+
+        $ firefox -ProfileManager
+
+        and then configure it to use your tor instance.
+
+        Or just use `tor-browser-bundle` package that packs this
+        `tor-browser` back into a sanely-built bundle.
+      '';
+      homepage = https://www.torproject.org/projects/torbrowser.html;
+      platforms = lib.platforms.linux;
+      license = lib.licenses.bsd3;
+    };
+  });
+
+in rec {
+
+  tor-browser-7-5 = (tbcommon rec {
+    ffversion = "52.9.0esr";
+    tbversion = "7.5.6";
+
+    # FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb
+    src = fetchFromGitHub {
+      owner = "SLNOS";
+      repo  = "tor-browser";
+      # branch "tor-browser-52.9.0esr-7.5-2-slnos"
+      rev   = "95bb92d552876a1f4260edf68fda5faa3eb36ad8";
+      sha256 = "1ykn3yg4s36g2cpzxbz7s995c33ij8kgyvghx38z4i8siaqxdddy";
+    };
+  }).override {
+    gtk3Support = false;
+  };
+
+  tor-browser-8-0 = tbcommon rec {
+    ffversion = "60.3.0esr";
+    tbversion = "8.0.3";
+
+    # FIXME: fetchFromGitHub is not ideal, unpacked source is >900Mb
+    src = fetchFromGitHub {
+      owner = "SLNOS";
+      repo  = "tor-browser";
+      # branch "tor-browser-60.3.0esr-8.0-1-slnos"
+      rev   = "bd512ad9c40069adfc983f4f03dbd9d220cdf2f9";
+      sha256 = "1j349aqiqrf58zrx8pkqvh292w41v1vwr7x7dmd74hq4pi2iwpn8";
+    };
+  };
+
+  tor-browser = tor-browser-8-0;
+
+})
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix
new file mode 100644
index 000000000000..07ae2c040e6e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/update.nix
@@ -0,0 +1,35 @@
+{ writeScript
+, stdenv
+, lib
+, xidel
+, common-updater-scripts
+, coreutils
+, gnused
+, gnugrep
+, curl
+, attrPath
+, baseUrl ? "http://archive.mozilla.org/pub/firefox/releases/"
+, versionSuffix ? ""
+, versionKey ? "version"
+}:
+
+writeScript "update-${attrPath}" ''
+  #!${stdenv.shell}
+  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" "" "" ${versionKey}
+''
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
new file mode 100644
index 000000000000..1c214230e4ed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -0,0 +1,181 @@
+{ stdenv, lib, makeDesktopItem, makeWrapper, lndir, config
+
+## various stuff that can be plugged in
+, flashplayer, hal-flash
+, MPlayerPlugin, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2
+, jrePlugin, icedtea_web
+, bluejeans, djview4, adobe-reader
+, google_talk_plugin, fribid, gnome3/*.gnome-shell*/
+, esteidfirefoxplugin
+, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow
+, udev
+, kerberos
+}:
+
+## configurability of the wrapper itself
+
+browser:
+
+let
+  wrapper =
+    { browserName ? browser.browserName or (builtins.parseDrvName browser.name).name
+    , name ? (browserName + "-" + (builtins.parseDrvName browser.name).version)
+    , desktopName ? # browserName with first letter capitalized
+      (lib.toUpper (lib.substring 0 1 browserName) + lib.substring 1 (-1) browserName)
+    , nameSuffix ? ""
+    , icon ? browserName
+    , extraPlugins ? []
+    , extraNativeMessagingHosts ? []
+    }:
+
+    let
+      cfg = config.${browserName} or {};
+      enableAdobeFlash = cfg.enableAdobeFlash or false;
+      ffmpegSupport = browser.ffmpegSupport or false;
+      gssSupport = browser.gssSupport or false;
+      jre = cfg.jre or false;
+      icedtea = cfg.icedtea or false;
+      supportsJDK =
+        stdenv.hostPlatform.system == "i686-linux" ||
+        stdenv.hostPlatform.system == "x86_64-linux" ||
+        stdenv.hostPlatform.system == "armv7l-linux" ||
+        stdenv.hostPlatform.system == "aarch64-linux";
+
+      plugins =
+        assert !(jre && icedtea);
+        if builtins.hasAttr "enableVLC" cfg
+        then throw "The option \"${browserName}.enableVLC\" has been removed since Firefox no longer supports npapi plugins"
+        else
+        ([ ]
+          ++ lib.optional enableAdobeFlash flashplayer
+          ++ lib.optional (cfg.enableDjvu or false) (djview4)
+          ++ lib.optional (cfg.enableMPlayer or false) (MPlayerPlugin browser)
+          ++ lib.optional (supportsJDK && jre && jrePlugin ? mozillaPlugin) jrePlugin
+          ++ lib.optional icedtea icedtea_web
+          ++ lib.optional (cfg.enableGoogleTalkPlugin or false) google_talk_plugin
+          ++ lib.optional (cfg.enableFriBIDPlugin or false) fribid
+          ++ lib.optional (cfg.enableGnomeExtensions or false) gnome3.gnome-shell
+          ++ lib.optional (cfg.enableBluejeans or false) bluejeans
+          ++ lib.optional (cfg.enableAdobeReader or false) adobe-reader
+          ++ lib.optional (cfg.enableEsteid or false) esteidfirefoxplugin
+          ++ extraPlugins
+        );
+      nativeMessagingHosts =
+        ([ ]
+          ++ lib.optional (cfg.enableBrowserpass or false) (lib.getBin browserpass)
+          ++ lib.optional (cfg.enableBukubrow or false) bukubrow
+          ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell
+          ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator
+          ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration
+          ++ extraNativeMessagingHosts
+        );
+      libs =   lib.optional stdenv.isLinux udev
+            ++ lib.optional ffmpegSupport ffmpeg
+            ++ lib.optional gssSupport kerberos
+            ++ 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;
+      gtk_modules = [ libcanberra-gtk2 ];
+
+    in stdenv.mkDerivation {
+      inherit name;
+
+      desktopItem = makeDesktopItem {
+        name = browserName;
+        exec = "${browserName}${nameSuffix} %U";
+        inherit icon;
+        comment = "";
+        desktopName = "${desktopName}${nameSuffix}";
+        genericName = "Web Browser";
+        categories = "Application;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
+
+        makeWrapper "$(readlink -v --canonicalize-existing "${browser}${browser.execdir or "/bin"}/${browserName}")" \
+          "$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" \
+            ${lib.optionalString (browser ? gtk3)
+                ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+                  --suffix XDG_DATA_DIRS : '${gnome3.defaultIconTheme}/share'
+                ''
+            }
+
+        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
+        for ext in ${toString nativeMessagingHosts}; do
+            lndir -silent $ext/lib/mozilla $out/lib/mozilla
+        done
+
+        # For manpages, in case the program supplies them
+        mkdir -p $out/nix-support
+        echo ${browser} > $out/nix-support/propagated-user-env-packages
+      '';
+
+      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/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
new file mode 100644
index 000000000000..6043744f296c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -0,0 +1,141 @@
+{ 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, gtk2, gtk3, gdk_pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
+, kerberos
+
+# 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, utillinux, 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
+, gnome2, gnome3
+}:
+
+with stdenv.lib;
+
+let
+  opusWithCustomModes = libopus.override {
+    withCustomModes = true;
+  };
+
+  version = chromium.upstream-info.version;
+  gtk = if (versionAtLeast version "59.0.0.0") then gtk3 else gtk2;
+  gnome = if (versionAtLeast version "59.0.0.0") then gnome3 else gnome2;
+
+  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 utillinux xdg_utils wget
+    flac harfbuzz icu libpng opusWithCustomModes snappy speechd
+    bzip2 libcap at-spi2-atk at-spi2-core
+    kerberos
+  ] ++ optional pulseSupport libpulseaudio
+    ++ [ gtk ];
+
+  suffix = if channel != "stable" then "-" + channel else "";
+
+in stdenv.mkDerivation rec {
+  inherit version;
+
+  name = "google-chrome${suffix}-${version}";
+
+  src = chromium.upstream-info.binary;
+
+  nativeBuildInputs = [ patchelf makeWrapper ];
+  buildInputs = [
+    # needed for GSETTINGS_SCHEMAS_PATH
+    gsettings-desktop-schemas glib gtk
+
+    # needed for XDG_ICON_DIRS
+    gnome.defaultIconTheme
+  ];
+
+  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
+
+    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/chrome/google-$appname $exe
+
+    for icon_file in $out/share/google/chrome*/product_logo_*[0-9].png; do
+      num_and_suffix="''${icon_file##*logo_}"
+      icon_size="''${num_and_suffix%.*}"
+      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 = [ maintainers.msteen ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
new file mode 100644
index 000000000000..bccc3fa2f4c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
@@ -0,0 +1,39 @@
+{ 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.17";
+  name = "links2-${version}";
+
+  src = fetchurl {
+    url = "${meta.homepage}/download/links-${version}.tar.bz2";
+    sha256 = "0dh2gbzcw8kxy81z4ggsynibnqs56b83vy8qgz7illsag1irff6q";
+  };
+
+  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 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
new file mode 100644
index 000000000000..7142ba6140b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
@@ -0,0 +1,61 @@
+{stdenv, fetchFromGitHub, pkgconfig, wrapGAppsHook, makeWrapper
+,help2man, lua5, luafilesystem, luajit, sqlite
+,webkitgtk, gtk3, gst_all_1}:
+
+let
+  lualibs = [luafilesystem];
+  getPath       = lib : type : "${lib}/lib/lua/${lua5.luaversion}/?.${type};${lib}/share/lua/${lua5.luaversion}/?.${type}";
+  getLuaPath    = lib : getPath lib "lua";
+  getLuaCPath   = lib : getPath lib "so";
+  luaPath       = stdenv.lib.concatStringsSep ";" (map getLuaPath lualibs);
+  luaCPath      = stdenv.lib.concatStringsSep ";" (map getLuaCPath lualibs);
+
+in stdenv.mkDerivation rec {
+
+  name = "luakit-${version}";
+  version = "2017.08.10";
+  src = fetchFromGitHub {
+    owner = "luakit";
+    repo = "luakit";
+    rev = "${version}";
+    sha256 = "09z88b50vf2y64vj79cymknyzk3py6azv4r50jng4cw9jx2ray7r";
+  };
+
+  nativeBuildInputs = [pkgconfig help2man wrapGAppsHook makeWrapper];
+
+  buildInputs = [webkitgtk lua5 luafilesystem luajit sqlite gtk3
+    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
+                ];
+
+  postPatch =
+    #Kind of ugly seds here. There must be a better solution.
+  ''
+    patchShebangs ./build-utils
+    sed -i "2 s|require \"lib.lousy.util\"|dofile(\"./lib/lousy/util.lua\")|" ./build-utils/docgen/gen.lua;
+    sed -i "3 s|require \"lib.markdown\"|dofile(\"./lib/markdown.lua\")|" ./build-utils/docgen/gen.lua;
+    sed -i "1,2 s|require(\"lib.lousy.util\")|dofile(\"./lib/lousy/util.lua\")|" ./build-utils/find_files.lua;
+  '';
+
+  buildPhase = ''
+    make DEVELOPMENT_PATHS=0 USE_LUAJIT=1 INSTALLDIR=$out PREFIX=$out USE_GTK3=1
+  '';
+
+  installPhase = let
+    luaKitPath = "$out/share/luakit/lib/?/init.lua;$out/share/luakit/lib/?.lua";
+  in ''
+    make DEVELOPMENT_PATHS=0 INSTALLDIR=$out PREFIX=$out XDGPREFIX=$out/etc/xdg USE_GTK3=1 install
+    wrapProgram $out/bin/luakit                                         \
+      --prefix XDG_CONFIG_DIRS : "$out/etc/xdg"                         \
+      --set LUA_PATH '${luaKitPath};${luaPath};'                      \
+      --set LUA_CPATH '${luaCPath};'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Fast, small, webkit based browser framework extensible in Lua";
+    homepage    = "http://luakit.org";
+    license     = licenses.gpl3;
+    platforms   = platforms.linux; # Only tested linux
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix b/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix
new file mode 100644
index 000000000000..cb44e79839b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/lynx/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, buildPackages
+, fetchurl, pkgconfig, ncurses, gzip
+, sslSupport ? true, openssl ? null
+, nukeReferences
+}:
+
+assert sslSupport -> openssl != null;
+
+stdenv.mkDerivation rec {
+  name = "lynx-${version}";
+  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-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/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix b/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix
new file mode 100644
index 000000000000..6091c25ccd94
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, cmake, ninja, pkgconfig, intltool, vala, wrapGAppsHook
+, gtk3, webkitgtk, sqlite, gsettings-desktop-schemas, libsoup, glib-networking, gnome3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "midori";
+  version = "7";
+
+  src = fetchurl {
+    url = "https://github.com/midori-browser/core/releases/download/v${version}/midori-v${version}.0.tar.gz";
+    sha256 = "0ffdnjp55s0ci737vlhxikb2nihghwlb6mjcjzpgpnzi47vjqnwh";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig cmake ninja intltool vala wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3 webkitgtk sqlite gsettings-desktop-schemas gnome3.gcr
+    (libsoup.override { gnomeSupport = true; }) gnome3.libpeas
+    glib-networking
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix
new file mode 100644
index 000000000000..fa98f2a9e785
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, xorg, gtk2, glib, gdk_pixbuf, dpkg, libXext, libXfixes
+, libXrender, libuuid, libXrandr, libXcomposite, libpulseaudio
+}:
+
+with stdenv.lib;
+
+let
+
+  rpathInstaller = makeLibraryPath
+    [gtk2 glib stdenv.cc.cc];
+
+  rpathPlugin = makeLibraryPath
+    ([ stdenv.cc.cc gtk2 glib xorg.libX11 gdk_pixbuf libXext libXfixes libXrender libXrandr libXcomposite libpulseaudio ] ++ optional (libuuid != null) libuuid);
+
+in
+
+stdenv.mkDerivation rec {
+  name = "bluejeans-${version}";
+
+  version = "2.180.71.8";
+
+  src = fetchurl {
+    url = "https://swdl.bluejeans.com/skinny/bjnplugin_${version}-1_amd64.deb";
+    sha256 = "1fgjgzss0ghk734xpfidazyknfdn11pmyw77pc3wigl83dvx4nb2";
+  };
+
+  unpackPhase = "${dpkg}/bin/dpkg-deb -x $src .";
+
+  installPhase =
+    ''
+      mkdir -p $out
+      cp -R usr/lib $out/
+
+      plugins=$out/lib/mozilla/plugins
+      patchelf \
+        --set-rpath "${rpathPlugin}" \
+        $plugins/npbjnplugin_${version}.so
+
+      patchelf \
+        --set-rpath "${rpathInstaller}" \
+        $plugins/npbjninstallplugin_${version}.so
+    '';
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  passthru.mozillaPlugin = "/lib/mozilla/plugins";
+
+  meta = {
+    homepage = http://bluejeans.com;
+    license = stdenv.lib.licenses.unfree;
+    maintainers = with maintainers; [ ocharles kamilchm ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/esteidfirefoxplugin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/esteidfirefoxplugin/default.nix
new file mode 100644
index 000000000000..48d06d644dda
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/esteidfirefoxplugin/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, gtk2, openssl, pcsclite, pkgconfig, opensc }:
+
+stdenv.mkDerivation rec {
+  version = "3.12.1.1142";
+  name = "esteidfirefoxplugin-${version}";
+
+  src = fetchurl {
+    url = "https://installer.id.ee/media/ubuntu/pool/main/e/esteidfirefoxplugin/esteidfirefoxplugin_3.12.1.1142.orig.tar.xz";
+    sha256 = "0y7759x1xr00p5r3c5wpllcqqnnxh2zi74cmy4m9m690z3ywn0fx";
+  };
+
+  unpackPhase = ''
+    mkdir src
+    tar xf $src -C src
+    cd src
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 openssl pcsclite opensc ];
+
+  buildPhase = ''
+    sed -i "s|opensc-pkcs11.so|${opensc}/lib/pkcs11/opensc-pkcs11.so|" Makefile 
+    make plugin
+  '';
+
+  installPhase = ''
+    plugins=$out/lib/mozilla/plugins
+    mkdir -p $plugins
+    cp -a npesteid-firefox-plugin.so $plugins/
+    rp=$(patchelf --print-rpath $plugins/npesteid-firefox-plugin.so)
+    patchelf --set-rpath "$rp:${opensc}/lib:${opensc}/lib/pkcs11" $plugins/npesteid-firefox-plugin.so
+  '';
+
+  passthru.mozillaPlugin = "/lib/mozilla/plugins";
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  meta = with stdenv.lib; {
+    description = "Firefox ID card signing plugin";
+    homepage = http://www.id.ee/;
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.jagajaga ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
new file mode 100644
index 000000000000..96db22ecaba8
--- /dev/null
+++ b/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 {
+  name = "flashplayer-${version}";
+  version = "32.0.0.101";
+
+  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
+          "0383r5pl1jrspy06mpxq50kkip5q5v052kz9aymk4qylgy1dwpn2"
+        else
+          "1vx2map0wlj6bj8dqyxxaymmz9awjjfhi6097knpmqp6j8dj7l5g"
+      else
+        if arch == "x86_64" then
+          "003mr9mqkg0agj3zlmci5a1m3lnhj27mnvqswjaffdg5rlihvxyi"
+        else
+          "1smmdsnnlsssakzqas5268svyv3rk717zr7kwpkj4rd5d1pqwcps";
+  };
+
+  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 = [];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
new file mode 100644
index 000000000000..9713f7d69718
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
@@ -0,0 +1,103 @@
+{ 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 rec {
+  name = "flashplayer-standalone-${version}";
+  version = "32.0.0.101";
+
+  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
+        "1i59vfhxrlksxwmr3kj3dfbasfjgnx9aimmv400z07fw3zmdrbpw"
+      else
+        "0fz9zhp0qn9xda5pg37dfnvx04n8d7156h1qayf2l3la94apsacq";
+  };
+
+  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 = [];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh
new file mode 100644
index 000000000000..fb36125b3a17
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/builder.sh
@@ -0,0 +1,4 @@
+source $stdenv/setup
+export PREFIX=$out
+configureFlags="--plugin-path=$out/lib/mozilla/plugins"
+genericBuild
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
new file mode 100644
index 000000000000..30bae8792c2e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, openssl, glib, libX11, gtk2, gettext, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "fribid-${version}";
+  version = "1.0.4";
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = "https://fribid.se/releases/source/${name}.tar.bz2";
+    sha256 = "a679f3a0534d5f05fac10b16b49630a898c0b721cfa24d2c827fa45485476649";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ openssl libX11 gtk2 glib gettext intltool ];
+  patches = [
+    ./translation-xgettext-to-intltool.patch
+    ./plugin-linkfix.patch
+    ./ipc-lazytrace.patch
+    ];
+
+  postPatch = "substituteInPlace plugin/pluginutil.c --replace strndup strndup_";
+
+  passthru.mozillaPlugin = "/lib/mozilla/plugins";
+
+  meta = with stdenv.lib; {
+    description = "A browser plugin to manage Swedish BankID:s";
+    longDescription = ''
+      FriBID is an open source software for the Swedish e-id system
+      called BankID. FriBID also supports processor architectures and
+      Linux/BSD distributions that the official software doesn't
+      support.
+    '';
+    homepage = http://fribid.se;
+    license = with licenses; [ gpl2 mpl10 ];
+    maintainers = [ maintainers.edwtjo ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch
new file mode 100644
index 000000000000..b7d05ddd0ef5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/ipc-lazytrace.patch
@@ -0,0 +1,10 @@
+--- a/plugin/ipc.c	2012-11-14 18:02:43.000000000 +0100
++++ b/plugin/ipc.c	2013-09-21 08:55:39.960265058 +0200
+@@ -74,6 +74,7 @@
+         //close(pipeOut[PIPE_READ_END]);
+
+         execvp(mainBinary, (char *const *)argv);
++        fprintf(stderr, "Wanted signing executable\t<%s>\n", mainBinary);
+         perror(BINNAME ": Failed to execute main binary");
+         exit(1);
+     } else {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch
new file mode 100644
index 000000000000..1128381238b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/plugin-linkfix.patch
@@ -0,0 +1,11 @@
+--- a/plugin/Makefile	2013-09-18 13:55:11.091652553 +0200
++++ b/plugin/Makefile	2013-09-18 13:58:27.513618750 +0200
+@@ -60,7 +60,7 @@
+ 	for path in $(NPAPI_PLUGIN_PATHS); do \
+ 	    (../configure --internal--remove-link $(DESTDIR)$$path/libfribidplugin.so $(NPAPI_PLUGIN_LIB) || exit 1) && \
+ 	    install -d $(DESTDIR)$$path && \
+-	    ln -sf $(NPAPI_PLUGIN_LIB) $(DESTDIR)$$path/libfribidplugin.so; \
++	    ln -sf $(DESTDIR)$(NPAPI_PLUGIN_LIB) $(DESTDIR)$$path/libfribidplugin.so; \
+ 	done
+
+ uninstall:
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch
new file mode 100644
index 000000000000..dcac4f17928b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/fribid/translation-xgettext-to-intltool.patch
@@ -0,0 +1,16 @@
+--- a/translations/Makefile	2013-09-18 07:25:16.503800613 +0200
++++ b/translations/Makefile	2013-09-18 07:25:29.495869405 +0200
+@@ -38,7 +38,7 @@
+ all: template.pot $(MOFILES)
+
+ template.pot: $(POTFILES) $(DEFINES)
+-	xgettext -k_ -ktranslatable -d $(DOMAIN) --package-name=$(PACKAGENAME) --package-version=$(PACKAGEVERSION) --copyright-holder='YOUR NAME' -o $@ $(POTFILES)
++	intltool-update --gettext-package=$(PACKAGENAME) -o $@ sv
+
+ .po.mo:
+ 	msgfmt $< -o $@
+--- a/translations/POTFILES.in	2013-09-16 20:28:56.766106014 +0200
++++ b/translations/POTFILES.in	2013-09-18 13:15:05.252689648 +0200
+@@ -0,0 +1,2 @@
++client/gtk.c
++client/gtk/sign.glade
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
new file mode 100644
index 000000000000..71b5161c1e39
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
@@ -0,0 +1,117 @@
+{ stdenv, fetchurl, libGL, xorg, cairo
+, libpng, gtk2, glib, gdk_pixbuf, fontconfig, freetype, curl
+, dbus-glib, alsaLib, libpulseaudio, systemd, pango
+}:
+
+with stdenv.lib;
+
+let
+
+  baseURL = "http://dl.google.com/linux/talkplugin/deb/pool/main/g/google-talkplugin";
+
+  rpathPlugin = makeLibraryPath
+    [ libGL
+      xorg.libXt
+      xorg.libX11
+      xorg.libXrender
+      cairo
+      libpng
+      gtk2
+      glib
+      fontconfig
+      freetype
+      curl
+    ];
+
+  rpathProgram = makeLibraryPath
+    [ gdk_pixbuf
+      glib
+      gtk2
+      xorg.libX11
+      xorg.libXcomposite
+      xorg.libXfixes
+      xorg.libXrender
+      xorg.libXrandr
+      xorg.libXext
+      stdenv.cc.cc
+      alsaLib
+      libpulseaudio
+      dbus-glib
+      systemd
+      curl
+      pango
+      cairo
+    ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "google-talk-plugin-${version}";
+
+  # You can get the upstream version and SHA-1 hash from the following URLs:
+  # curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-amd64/Packages | grep -E 'Version|SHA1'
+  # curl -s http://dl.google.com/linux/talkplugin/deb/dists/stable/main/binary-i386/Packages | grep -E 'Version|SHA1'
+  version = "5.41.3.0";
+
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchurl {
+        url = "${baseURL}/google-talkplugin_${version}-1_amd64.deb";
+        sha1 = "0bbc3d6997ba22ce712d93e5bc336c894b54fc81";
+      }
+    else if stdenv.hostPlatform.system == "i686-linux" then
+      fetchurl {
+        url = "${baseURL}/google-talkplugin_${version}-1_i386.deb";
+        sha1 = "6eae0544858f85c68b0cc46d7786e990bd94f139";
+      }
+    else throw "Google Talk does not support your platform.";
+
+  unpackPhase = ''
+    ar p "$src" data.tar.gz | tar xz
+  '';
+
+  installPhase =
+    ''
+      plugins=$out/lib/mozilla/plugins
+      mkdir -p $plugins
+      cp opt/google/talkplugin/*.so $plugins
+
+      for i in libnpgoogletalk.so libppgoogletalk.so libppo1d.so; do
+        patchelf --set-rpath "${makeLibraryPath [ stdenv.cc.cc xorg.libX11 ]}:${stdenv.cc.cc.lib}/lib64" $plugins/$i
+      done
+
+      for i in libgoogletalkremoting.so libnpo1d.so; do
+        patchelf --set-rpath "$out/libexec/google/talkplugin/lib:${rpathPlugin}:${stdenv.cc.cc.lib}/lib64" $plugins/$i
+      done
+
+      mkdir -p $out/libexec/google/talkplugin
+      cp -prd opt/google/talkplugin/{data,GoogleTalkPlugin,locale,remoting24x24.png,windowpicker.glade} $out/libexec/google/talkplugin/
+
+      patchelf \
+        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "${rpathProgram}:${stdenv.cc.cc.lib}/lib64" \
+        $out/libexec/google/talkplugin/GoogleTalkPlugin
+
+      # Generate an LD_PRELOAD wrapper to redirect execvp() calls to
+      # /opt/../GoogleTalkPlugin.
+      preload=$out/libexec/google/talkplugin/libpreload.so
+      mkdir -p $(dirname $preload)
+      gcc -shared ${./preload.c} -o $preload -ldl -DOUT=\"$out\" -fPIC
+      echo $preload > $plugins/extra-ld-preload
+
+      # Prevent a dependency on gcc.
+      strip -S $preload
+      patchELF $preload
+    '';
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  passthru.mozillaPlugin = "/lib/mozilla/plugins";
+
+  meta = {
+    homepage = http://www.google.com/chat/video/;
+    license = stdenv.lib.licenses.unfree;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c
new file mode 100644
index 000000000000..1e2c31d9527a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/preload.c
@@ -0,0 +1,60 @@
+/* Google Talk Plugin executes a helper program in /opt.  This
+   LD_PRELOAD library intercepts execvp() calls to redirect them to
+   the corresponding location in $out. */
+
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dlfcn.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <limits.h>
+
+char origDir [] = "/opt/google/talkplugin";
+char realDir [] = OUT "/libexec/google/talkplugin";
+
+const char * rewrite(const char * path, char * 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;
+}
+
+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);
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix
new file mode 100644
index 000000000000..a226cb6fa3b8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mozplugger/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, firefox, libX11, xproto }:
+
+stdenv.mkDerivation rec {
+  name = "mozplugger-${version}";
+  version = "2.1.6";
+
+  src = fetchurl {
+    url = "http://mozplugger.mozdev.org/files/mozplugger-${version}.tar.gz";
+    sha256 = "1vszkq4kdbaxsrqr2xn9rq6ipza9fngdri79gvjqk3bvsdmg0k19";
+  };
+
+  buildInputs = [ firefox libX11 xproto ];
+
+  installPhase = ''
+    mkdir -p "$out/etc" "$out/bin" "$out/lib/mozilla/plugins" "$out/share/man/man7"
+    cp mozpluggerrc "$out/etc"
+    cp mozplugger-{helper,controller,linker,update} "$out/bin"
+    cp mozplugger.so "$out/lib/mozilla/plugins"
+    cp mozplugger.7 "$out/share/man/man7"
+
+    mkdir -p "$out/share/${name}/plugin"
+    ln -s "$out/lib/mozilla/plugins/mozplugger.so" "$out/share/${name}/plugin"
+  '';
+
+  meta = {
+    description = "Mozilla plugin for launching external program for handling in-page objects";
+    homepage = http://mozplugger.mozdev.org/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix
new file mode 100644
index 000000000000..a5bfda9f26c9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, pkgconfig, browser, libXpm, gettext}:
+
+stdenv.mkDerivation rec {
+  name = "mplayerplug-in-3.55";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/mplayerplug-in/${name}.tar.gz";
+    sha256 = "0zkvqrzibrbljiccvz3rhbmgifxadlrfjylqpz48jnjx9kggynms";
+  };
+
+  postConfigure =
+    (if browser ? isFirefox3Like then ''
+       # Cause a rebuild of these file from the IDL file, needed for GNU IceCat 3
+       # and Mozilla Firefox 3.
+       # See, e.g., http://article.gmane.org/gmane.comp.mozilla.mplayerplug-in/2104 .
+       rm -f Source/nsIScriptableMplayerPlugin.h
+     ''
+     else "");
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ browser (browser.gtk) libXpm gettext ];
+  
+  installPhase = ''
+    mkdir -p $out/lib/mozilla/plugins
+    cp -p mplayerplug-in*.so mplayerplug-in*.xpt $out/lib/mozilla/plugins
+  '';
+
+  passthru = {
+    mozillaPlugin = "/lib/mozilla/plugins";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A browser plugin that uses mplayer to play digital media from websites";
+    homepage = http://mplayerplug-in.sourceforge.net/;
+    license = with licenses; [ gpl2Plus lgpl2Plus "MPLv1+" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix
new file mode 100644
index 000000000000..fa455eb0b7a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchurl, which, pkgconfig, file, glib, gtk2, gtk3, curl, libXt}:
+let
+  srcData = # Generated upstream information 
+  rec {
+    baseName="nspluginwrapper";
+    version="1.4.4";
+    name="${baseName}-${version}";
+    hash="1fxjz9ifhw0drm12havlsl4jpsq1nv930gqa005kgddv5pa99vgj";
+    url="http://nspluginwrapper.org/download/nspluginwrapper-1.4.4.tar.gz";
+  };
+in
+stdenv.mkDerivation rec {
+  inherit (srcData) name version;
+
+  src = fetchurl{
+    inherit (srcData) url;
+    sha256 = srcData.hash;
+  };
+
+  preConfigure = ''
+    sed -e 's@/usr/bin/@@g' -i configure
+    sed -e '/gthread[.]h/d' -i src/npw-player.c
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lgthread-2.0"
+    export configureFlags="$configureFlags --target-cpu=$(uname -m)"
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [which file glib gtk2 gtk3 curl libXt];
+
+  preferLocalBuild = true;
+
+  meta = {
+    description = ''A wrapper to run browser plugins out-of-process'';
+    homepage = http://nspluginwrapper.org/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = [ "x64_64-linux" "i686-linux" ];
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    inherit (srcData) version;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream
new file mode 100644
index 000000000000..62831613a2e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.upstream
@@ -0,0 +1,4 @@
+name nspluginwrapper
+target default.nix
+url http://nspluginwrapper.org/download/
+version_link /nspluginwrapper-[0-9]+
diff --git a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
new file mode 100644
index 000000000000..07a389af8d61
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
@@ -0,0 +1,125 @@
+{ alsaLib
+, atk
+, cairo
+, cups
+, curl
+, dbus
+, dpkg
+, expat
+, fetchurl
+, fontconfig
+, freetype
+, gdk_pixbuf
+, glib
+, gnome2
+, gtk3
+, libX11
+, libxcb
+, libXScrnSaver
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXrandr
+, libXrender
+, libXtst
+, libnotify
+, libpulseaudio
+, libuuid
+, nspr
+, nss
+, pango
+, stdenv
+, systemd
+, at-spi2-atk
+}:
+
+let
+
+  mirror = https://get.geo.opera.com/pub/opera/desktop;
+  version = "56.0.3051.99";
+
+  rpath = stdenv.lib.makeLibraryPath [
+
+    # These provide shared libraries loaded when starting. If one is missing,
+    # an error is shown in stderr.
+    alsaLib.out
+    atk.out
+    cairo.out
+    cups
+    curl.out
+    dbus.lib
+    expat.out
+    fontconfig.lib
+    freetype.out
+    gdk_pixbuf.out
+    glib.out
+    gnome2.GConf
+    gtk3.out
+    libX11.out
+    libXScrnSaver.out
+    libXcomposite.out
+    libXcursor.out
+    libXdamage.out
+    libXext.out
+    libXfixes.out
+    libXi.out
+    libXrandr.out
+    libXrender.out
+    libXtst.out
+    libxcb.out
+    libnotify.out
+    libuuid.out
+    nspr.out
+    nss.out
+    pango.out
+    stdenv.cc.cc.lib
+
+    # 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.
+    systemd.lib
+
+    # Works fine without this except there is no sound.
+    libpulseaudio.out
+
+    at-spi2-atk
+  ];
+
+in stdenv.mkDerivation {
+
+  name = "opera-${version}";
+
+  src = fetchurl {
+    url = "${mirror}/${version}/linux/opera-stable_${version}_amd64.deb";
+    sha256 = "1mf4lpb66w63kafjni5caq9k3lmsqd85161q29z5lr1s2cx9qqm8";
+  };
+
+  unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
+
+  installPhase = ''
+    mkdir --parent $out
+    mv * $out/
+    mv $out/lib/*/opera/*.so $out/lib/
+  '';
+
+  postFixup = ''
+    find $out -executable -type f \
+    | while read f
+      do
+        patchelf \
+          --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          --set-rpath "$out/lib:${rpath}" \
+          "$f"
+      done
+  '';
+
+  meta = {
+    homepage = http://www.opera.com;
+    description = "Web browser";
+    platforms = [ "x86_64-linux" ];
+    license = stdenv.lib.licenses.unfree;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/otter/default.nix b/nixpkgs/pkgs/applications/networking/browsers/otter/default.nix
new file mode 100644
index 000000000000..321980757b9b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/otter/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, cmake, fetchFromGitHub
+, qtbase, qtmultimedia, qtwebengine
+, version ? "0.9.99.3"
+, sourceSha ? "0dkismjs3daz5afx6s5arwvynsw5qpvv2rqbzvmpihn6khnhap55"
+}:
+stdenv.mkDerivation {
+  name = "otter-browser-${version}";
+
+  src = fetchFromGitHub {
+    owner = "OtterBrowser";
+    repo = "otter-browser";
+    rev = "v${version}";
+    sha256 = sourceSha;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ qtbase qtmultimedia qtwebengine ];
+
+  meta = with stdenv.lib; {
+    license = licenses.gpl3Plus;
+    description = "Browser aiming to recreate the best aspects of the classic Opera (12.x) UI using Qt5";
+    maintainers = with maintainers; [ lheckemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
new file mode 100644
index 000000000000..fcc653e08f41
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -0,0 +1,122 @@
+{ stdenv, fetchFromGitHub, makeDesktopItem
+, pkgconfig, autoconf213, alsaLib, bzip2, cairo
+, dbus, dbus-glib, file, fontconfig, freetype
+, gstreamer, gst-plugins-base, gst_all_1
+, gtk2, hunspell, icu, libevent, libjpeg, libnotify
+, libstartup_notification, libvpx, makeWrapper, libGLU_combined
+, nspr, nss, pango, perl, python, libpulseaudio, sqlite
+, unzip, xorg, which, yasm, zip, zlib
+}:
+
+stdenv.mkDerivation rec {
+  name = "palemoon-${version}";
+  version = "27.9.4";
+
+  src = fetchFromGitHub {
+    name   = "palemoon-src";
+    owner  = "MoonchildProductions";
+    repo   = "Pale-Moon";
+    rev    = version + "_Release";
+    sha256 = "0ir5gzhw98gfn15x58g1fwi11jd7gysvacqxg1v0jdjhgdl4m5sx";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "palemoon";
+    exec = "palemoon %U";
+    icon = "palemoon";
+    desktopName = "Pale Moon";
+    genericName = "Web Browser";
+    categories = "Application;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"
+    ];
+  };
+
+  buildInputs = [
+    alsaLib bzip2 cairo dbus dbus-glib file fontconfig freetype
+    gst-plugins-base gstreamer gst_all_1.gst-plugins-base gtk2
+    hunspell icu libevent libjpeg libnotify libstartup_notification
+    libvpx makeWrapper libGLU_combined nspr nss pango perl pkgconfig python
+    libpulseaudio sqlite unzip which yasm zip zlib
+  ] ++ (with xorg; [
+    libX11 libXext libXft libXi libXrender libXScrnSaver
+    libXt pixman scrnsaverproto xextproto
+  ]);
+
+  enableParallelBuilding = true;
+
+  configurePhase = ''
+    export AUTOCONF=${autoconf213}/bin/autoconf
+    export MOZBUILD_STATE_PATH=$(pwd)/.mozbuild
+    export MOZ_CONFIG=$(pwd)/.mozconfig
+    export builddir=$(pwd)/build
+    mkdir -p $MOZBUILD_STATE_PATH $builddir
+    echo > $MOZ_CONFIG "
+    . $src/build/mozconfig.common
+    ac_add_options --prefix=$out
+    ac_add_options --with-pthreads
+    ac_add_options --enable-application=browser
+    ac_add_options --enable-official-branding
+    ac_add_options --enable-optimize="-O2"
+    ac_add_options --enable-release
+    ac_add_options --enable-devtools
+    ac_add_options --enable-jemalloc
+    ac_add_options --enable-shared-js
+    ac_add_options --enable-strip
+    ac_add_options --disable-tests
+    ac_add_options --disable-installer
+    ac_add_options --disable-updaters
+    "
+  '';
+
+  patchPhase = ''
+    chmod u+w .
+  '';
+
+  hardeningDisable = [ "format" ];
+  
+  buildPhase = ''
+    cd $builddir
+    $src/mach build
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+
+    for n in 16 22 24 32 48 256; do
+      size=$n"x"$n
+      mkdir -p $out/share/icons/hicolor/$size/apps
+      cp $src/browser/branding/official/default$n.png \
+         $out/share/icons/hicolor/$size/apps/palemoon.png
+    done
+
+    cd $builddir
+    $src/mach install
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A web browser";
+    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; [ rnhmjoj AndersonTorres ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
new file mode 100644
index 000000000000..df956addf5cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, fetchpatch, qt, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "qtchan-${version}";
+  version = "0.100";
+
+  src = fetchFromGitHub {
+    owner  = "siavash119";
+    repo   = "qtchan";
+    rev    = "v${version}";
+    sha256 = "0n94jd6b1y8v6x5lkinr9rzm4bjg9xh9m7zj3j73pgq829gpmj3a";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = https://github.com/siavash119/qtchan/commit/718abeee5cf4aca8c99b35b26f43909362a29ee6.patch;
+      sha256 = "11b72l5njvfsyapd479hp4yfvwwb1mhq3f077hwgg0waz5l7n00z";
+    })
+  ];
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ qt.qmake makeWrapper ];
+  buildInputs = [ qt.qtbase ];
+
+  qmakeFlags = [ "CONFIG-=app_bundle" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp qtchan $out/bin
+  '';
+
+  preFixup = ''
+    wrapProgram $out/bin/qtchan \
+      --suffix QT_PLUGIN_PATH : ${qt.qtbase.bin}/${qt.qtbase.qtPluginPrefix}
+  '';
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
new file mode 100644
index 000000000000..5e44bb8cbef6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -0,0 +1,103 @@
+{ stdenv, lib, fetchurl, fetchzip, python3Packages
+, makeWrapper, wrapGAppsHook, qtbase, glib-networking
+, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
+, libxslt, gst_all_1 ? null
+, withPdfReader        ? true
+, withMediaPlayback    ? true
+, withWebEngineDefault ? true
+}:
+
+assert withMediaPlayback -> gst_all_1 != null;
+
+let
+  pdfjs = let
+    version = "1.10.100";
+  in
+  fetchzip rec {
+    name = "pdfjs-${version}";
+    url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
+    sha256 = "04df4cf6i6chnggfjn6m1z9vb89f01a0l9fj5rk21yr9iirq9rkq";
+    stripRoot = false;
+  };
+
+in python3Packages.buildPythonApplication rec {
+  pname = "qutebrowser";
+  version = "1.5.2";
+
+  # 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 = "0ki19mynq91aih3kxhipnay3jmn56s7p6rilws0gq0k98li6a4my";
+  };
+
+  # 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
+  ]) ++ lib.optional (!withWebEngineDefault) python3Packages.qtwebkit-plugins;
+
+  nativeBuildInputs = [
+    makeWrapper wrapGAppsHook asciidoc
+    docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pyyaml pyqt5 jinja2 pygments
+    pypeg2 cssutils pyopengl attrs
+    # scripts and userscripts libs
+    tldextract beautifulsoup4
+    pyreadability pykeepass stem
+  ];
+
+  postPatch = ''
+    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/qutebrowser.desktop \
+        "$out/share/applications/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 = lib.optionalString (! withWebEngineDefault) ''
+    wrapProgram $out/bin/qutebrowser --add-flags "--backend webkit"
+  '';
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
new file mode 100644
index 000000000000..3a7612bb0fbc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl
+, pkgconfig, wrapGAppsHook
+, glib, glib-networking, gsettings-desktop-schemas, gtk, libsoup, webkitgtk
+, patches ? null
+}:
+
+stdenv.mkDerivation rec {
+  name = "surf-${version}";
+  version = "2.0";
+
+  src = fetchurl {
+    url = "https://dl.suckless.org/surf/surf-${version}.tar.gz";
+    sha256 = "07cmajyafljigy10d21kkyvv5jf3hxkx06pz3rwwk3y3c9x4rvps";
+  };
+
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+  buildInputs = [ glib glib-networking gsettings-desktop-schemas gtk libsoup webkitgtk ];
+
+  inherit patches;
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "A simple web browser based on WebKit/GTK+";
+    longDescription = ''
+      Surf is a simple web browser based on WebKit/GTK+. 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/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
new file mode 100644
index 000000000000..c31005f877be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -0,0 +1,399 @@
+{ 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 ? false
+, ffmpeg
+
+, gmp
+
+# Pluggable transport dependencies
+, python27
+
+# Wrapper runtime
+, coreutils
+, glibcLocales
+, defaultIconTheme
+, runtimeShell
+, shared-mime-info
+, gsettings-desktop-schemas
+
+# 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 ? ""
+
+# For meta
+, tor-browser-bundle
+}:
+
+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
+  ];
+
+  # Library search path for the fte transport
+  fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
+
+  # Upstream source
+  version = "8.0.4";
+
+  lang = "en-US";
+
+  srcs = {
+    "x86_64-linux" = fetchurl {
+      urls = [
+        "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
+        "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
+      ];
+      sha256 = "1hclxqk54w1diyr8lrgirhy6cwmw2rccg174hgv39zrj2a5ajvmm";
+    };
+
+    "i686-linux" = fetchurl {
+      urls = [
+        "https://github.com/TheTorProject/gettorbrowser/releases/download/v${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
+        "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
+      ];
+      sha256 = "16393icjcck7brng1kq1vf4nacllcz1m3q3w2vs9rdkjfsazqh42";
+    };
+  };
+in
+
+stdenv.mkDerivation rec {
+  name = "tor-browser-bundle-bin-${version}";
+  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 obfs2,obfs3,obfs4,scramblesuit\) exec|\1 exec $interp|" \
+
+    # Fixup fte transport
+    #
+    # Note: the script adds its dirname to search path automatically
+    sed -i TorBrowser/Tor/PluggableTransports/fteproxy.bin \
+        -e "s,/usr/bin/env python,${python27.interpreter},"
+
+    patchelf --set-rpath "${fteLibPath}" TorBrowser/Tor/PluggableTransports/fte/cDFA.so
+
+    # 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.
+    mv "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/extensions/"* \
+      "$TBB_IN_STORE/browser/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_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [
+      defaultIconTheme
+      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"/{compatibility.ini,extensions.ini,extensions.json}
+
+    ${optionalString pulseaudioSupport ''
+      # Figure out some envvars for pulseaudio
+      : "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}"
+      : "\''${XDG_CONFIG_HOME:=\$REAL_HOME/.config}"
+      : "\''${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 \
+      TZ=":" \
+      TZDIR="\''${TZDIR:-}" \
+      LOCALE_ARCHIVE="\$LOCALE_ARCHIVE" \
+      \
+      TMPDIR="\''${TMPDIR:-/tmp}" \
+      HOME="\$HOME" \
+      XAUTHORITY="\''${XAUTHORITY:-}" \
+      DISPLAY="\$DISPLAY" \
+      DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \
+      \
+      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=web-browser,"
+
+    # 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.meta.longDescription;
+    homepage = https://www.torproject.org/;
+    platforms = attrNames srcs;
+    maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm ];
+    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/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
new file mode 100644
index 000000000000..8c8212e9e2c8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -0,0 +1,349 @@
+{ stdenv
+, fetchgit
+, fetchurl
+, symlinkJoin
+
+, tor
+, tor-browser-unwrapped
+
+# Wrapper runtime
+, coreutils
+, hicolor-icon-theme
+, shared-mime-info
+, noto-fonts
+, noto-fonts-emoji
+
+# Audio support
+, audioSupport ? mediaSupport
+, apulse
+
+# Media support (implies audio support)
+, mediaSupport ? false
+, ffmpeg
+
+, gmp
+
+# Extensions, common
+, zip
+
+# HTTPS Everywhere
+, git
+, libxml2 # xmllint
+, python27
+, python27Packages
+, rsync
+
+# Pluggable transports
+, obfsproxy
+
+# Customization
+, extraPrefs ? ""
+, extraExtensions ? [ ]
+}:
+
+with stdenv.lib;
+
+let
+  tor-browser-build_src = fetchgit {
+    url = "https://git.torproject.org/builders/tor-browser-build.git";
+    rev = "refs/tags/tbb-7.5a5-build5";
+    sha256 = "0j37mqldj33fnzghxifvy6v8vdwkcz0i4z81prww64md5s8qcsa9";
+  };
+
+  firefoxExtensions = import ./extensions.nix {
+    inherit stdenv fetchurl fetchgit zip
+      git libxml2 python27 python27Packages rsync;
+  };
+
+  bundledExtensions = with firefoxExtensions; [
+    https-everywhere
+    noscript
+    torbutton
+    tor-launcher
+  ] ++ extraExtensions;
+
+  fontsEnv = symlinkJoin {
+    name = "tor-browser-fonts";
+    paths = [ noto-fonts noto-fonts-emoji ];
+  };
+
+  fontsDir = "${fontsEnv}/share/fonts";
+
+  mediaLibPath = makeLibraryPath [
+    ffmpeg
+  ];
+in
+stdenv.mkDerivation rec {
+  name = "tor-browser-bundle-${version}";
+  version = tor-browser-unwrapped.version;
+
+  buildInputs = [ tor-browser-unwrapped tor ];
+
+  unpackPhase = ":";
+
+  buildPhase = ":";
+
+  # The following creates a customized firefox distribution.  For
+  # simplicity, we copy the entire base firefox runtime, to work around
+  # firefox's annoying insistence on resolving the installation directory
+  # relative to the real firefox executable.  A little tacky and
+  # inefficient but it works.
+  installPhase = ''
+    TBBUILD=${tor-browser-build_src}/projects/tor-browser
+    TBDATA_PATH=TorBrowser-Data
+
+    self=$out/lib/tor-browser
+    mkdir -p $self && cd $self
+
+    TBDATA_IN_STORE=$self/$TBDATA_PATH
+
+    cp -dR ${tor-browser-unwrapped}/lib"/"*"/"* .
+    chmod -R +w .
+
+    # Prepare for autoconfig
+    cat >defaults/pref/autoconfig.js <<EOF
+    pref("general.config.filename", "mozilla.cfg");
+    pref("general.config.obscure_value", 0);
+    EOF
+
+    # Hardcoded configuration
+    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.updateNeeded", false);
+    lockPref("extensions.torbutton.versioncheck_enabled", false);
+
+    // Where to find the Nixpkgs tor executable & config
+    lockPref("extensions.torlauncher.tor_path", "${tor}/bin/tor");
+    lockPref("extensions.torlauncher.torrc-defaults_path", "$TBDATA_IN_STORE/torrc-defaults");
+
+    // Captures store paths
+    clearPref("extensions.xpiState");
+    clearPref("extensions.bootstrappedAddons");
+
+    // Insist on using IPC for communicating with Tor
+    lockPref("extensions.torlauncher.control_port_use_ipc", true);
+    lockPref("extensions.torlauncher.socks_port_use_ipc", true);
+
+    // Allow sandbox access to sound devices if using ALSA directly
+    ${if audioSupport then ''
+      pref("security.sandbox.content.write_path_whitelist", "/dev/snd/");
+    '' else ''
+      clearPref("security.sandbox.content.write_path_whitelist");
+    ''}
+
+    // User customization
+    ${extraPrefs}
+    EOF
+
+    # Preload extensions
+    find ${toString bundledExtensions} -name '*.xpi' -exec ln -s -t browser/extensions '{}' '+'
+
+    # Copy bundle data
+    bundlePlatform=linux
+    bundleData=$TBBUILD/Bundle-Data
+
+    mkdir -p $TBDATA_PATH
+    cat \
+      $bundleData/$bundlePlatform/Data/Tor/torrc-defaults \
+      >> $TBDATA_PATH/torrc-defaults
+    cat \
+      $bundleData/$bundlePlatform/Data/Browser/profile.default/preferences/extension-overrides.js \
+      $bundleData/PTConfigs/bridge_prefs.js \
+      >> defaults/pref/extension-overrides.js
+
+    # Configure geoip
+    #
+    # tor-launcher insists on resolving geoip data relative to torrc-defaults
+    # (and passes them directly on the tor command-line).
+    #
+    # Write the paths into torrc-defaults anyway, otherwise they'll be
+    # captured in the runtime torrc.
+    ln -s -t $TBDATA_PATH ${tor.geoip}/share/tor/geoip{,6}
+    cat >>$TBDATA_PATH/torrc-defaults <<EOF
+    GeoIPFile $TBDATA_IN_STORE/geoip
+    GeoIPv6File $TBDATA_IN_STORE/geoip6
+    EOF
+
+    # Configure pluggable transports
+    cat >>$TBDATA_PATH/torrc-defaults <<EOF
+    ClientTransportPlugin obfs2,obfs3 exec ${obfsproxy}/bin/obfsproxy managed
+    EOF
+
+    # Hard-code path to TBB fonts; xref: FONTCONFIG_FILE in the wrapper below
+    sed $bundleData/$bundlePlatform/Data/fontconfig/fonts.conf \
+        -e "s,<dir>fonts</dir>,<dir>${fontsDir}</dir>," \
+        > $TBDATA_PATH/fonts.conf
+
+    # Generate a suitable wrapper
+    wrapper_PATH=${makeBinPath [ coreutils ]}
+    wrapper_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [
+      hicolor-icon-theme
+      shared-mime-info
+    ]}
+
+    ${optionalString audioSupport ''
+      # apulse uses a non-standard library path ...
+      wrapper_LD_LIBRARY_PATH=${apulse}/lib/apulse''${wrapper_LD_LIBRARY_PATH:+:$wrapper_LD_LIBRARY_PATH}
+    ''}
+
+    ${optionalString mediaSupport ''
+      wrapper_LD_LIBRARY_PATH=${mediaLibPath}''${wrapper_LD_LIBRARY_PATH:+:$wrapper_LD_LIBRARY_PATH}
+    ''}
+
+    mkdir -p $out/bin
+    cat >$out/bin/tor-browser <<EOF
+    #! ${stdenv.shell} -eu
+
+    umask 077
+
+    PATH=$wrapper_PATH
+
+    readonly THE_HOME=\$HOME
+    TBB_HOME=\''${TBB_HOME:-\''${XDG_DATA_HOME:-\$HOME/.local/share}/tor-browser}
+    if [[ \''${TBB_HOME:0:1} != / ]] ; then
+      TBB_HOME=\$PWD/\$TBB_HOME
+    fi
+    readonly TBB_HOME
+
+    # Basic sanity check: never want to vomit directly onto user's homedir
+    if [[ "\$TBB_HOME" = "\$THE_HOME" ]] ; then
+      echo 'TBB_HOME=\$HOME; refusing to run' >&2
+      exit 1
+    fi
+
+    mkdir -p "\$TBB_HOME"
+
+    HOME=\$TBB_HOME
+    cd "\$HOME"
+
+    # Re-init XDG basedir envvars
+    XDG_CACHE_HOME=\$HOME/.cache
+    XDG_CONFIG_HOME=\$HOME/.config
+    XDG_DATA_HOME=\$HOME/.local/share
+
+    # Initialize empty TBB runtime state directory hierarchy.  Mirror the
+    # layout used by the official TBB, to avoid the hassle of working
+    # against the assumptions made by tor-launcher & co.
+    mkdir -p "\$HOME/TorBrowser" "\$HOME/TorBrowser/Data"
+
+    # Initialize the Tor data directory.
+    mkdir -p "\$HOME/TorBrowser/Data/Tor"
+
+    # TBB fails if ownership is too permissive
+    chmod 0700 "\$HOME/TorBrowser/Data/Tor"
+
+    # Initialize the browser profile state.  Expect TBB to generate all data.
+    mkdir -p "\$HOME/TorBrowser/Data/Browser/profile.default"
+
+    # Files that capture store paths; re-generated by firefox at startup
+    rm -rf "\$HOME/TorBrowser/Data/Browser/profile.default"/{compatibility.ini,extensions.ini,extensions.json,startupCache}
+
+    # Clear out fontconfig caches
+    rm -f "\$HOME/.cache/fontconfig/"*.cache-*
+
+    # Lift-off!
+    #
+    # TZ is set to avoid stat()ing /etc/localtime over and over ...
+    #
+    # DBUS_SESSION_BUS_ADDRESS is inherited to avoid auto-launching a new
+    # dbus instance; to prevent using the session bus, set the envvar to
+    # an empty/invalid value prior to running tor-browser.
+    #
+    # 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.
+    #
+    # HOME, TMPDIR, XDG_*_HOME are set as a form of soft confinement;
+    # ideally, tor-browser should not write to any path outside TBB_HOME
+    # and should run even under strict confinement to TBB_HOME.
+    #
+    # XDG_DATA_DIRS is set to prevent searching system directories for
+    # mime and icon data.
+    #
+    # PULSE_{SERVER,COOKIE} is necessary for audio playback w/pulseaudio
+    #
+    # APULSE_PLAYBACK_DEVICE is for audio playback w/o pulseaudio (no capture yet)
+    #
+    # TOR_* is for using an external tor instance
+    #
+    # Parameters lacking a default value below are *required* (enforced by
+    # -o nounset).
+    exec env -i \
+      LD_LIBRARY_PATH=$wrapper_LD_LIBRARY_PATH \
+      \
+      TZ=":" \
+      \
+      DISPLAY="\$DISPLAY" \
+      XAUTHORITY="\$XAUTHORITY" \
+      DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \
+      \
+      HOME="\$HOME" \
+      TMPDIR="\$XDG_CACHE_HOME/tmp" \
+      XDG_CONFIG_HOME="\$XDG_CONFIG_HOME" \
+      XDG_DATA_HOME="\$XDG_DATA_HOME" \
+      XDG_CACHE_HOME="\$XDG_CACHE_HOME" \
+      XDG_RUNTIME_DIR="\$HOME/run" \
+      \
+      XDG_DATA_DIRS="$wrapper_XDG_DATA_DIRS" \
+      \
+      FONTCONFIG_FILE="$TBDATA_IN_STORE/fonts.conf" \
+      \
+      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:-}" \
+      \
+      $self/firefox \
+        -no-remote \
+        -profile "\$HOME/TorBrowser/Data/Browser/profile.default" \
+        "\$@"
+    EOF
+    chmod +x $out/bin/tor-browser
+
+    echo "Syntax checking wrapper ..."
+    bash -n $out/bin/tor-browser
+
+    echo "Checking wrapper ..."
+    DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$(mktemp -d) \
+    $out/bin/tor-browser -version >/dev/null
+  '';
+
+  passthru.execdir = "/bin";
+  meta = with stdenv.lib; {
+    description = "An unofficial version of the Tor Browser Bundle, built from source";
+    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`.
+
+      `tor-browser-bundle` package is the version built completely from source. It reuses the `tor`
+      package for the tor daemon, `firefoxPackages.tor-browser` package for the tor-browser, and
+      builds all the extensions from source.
+
+      Note that `tor-browser-bundle` package is not only built from source, but also bundles Tor
+      Browser differently from the official `tor-browser-bundle-bin` implementation. The official
+      Tor Browser is not a normal UNIX program and is heavily patched for its use in the Tor Browser
+      Bundle (which `tor-browser-bundle-bin` package then has to work around for the read-only
+      /nix/store). Meanwhile, `firefoxPackages.tor-browser` reverts all those patches, allowing
+      `firefoxPackages.tor-browser` to be used independently of the bundle, and then implements what
+      `tor-browser-bundle` needs for the bundling using a much simpler patch. See the
+      longDescription and expression of the `firefoxPackages.tor-browser` package for more info.
+    '';
+    homepage = https://torproject.org/;
+    license = licenses.free;
+    platforms = [ "x86_64-linux" ];
+    hydraPlatforms = [ ];
+    maintainers = with maintainers; [ joachifm ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
new file mode 100644
index 000000000000..86c2f53b9add
--- /dev/null
+++ b/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 {
+    name = "https-everywhere-${version}";
+    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 {
+    name = "noscript-${version}";
+    version = "5.1.2";
+
+    extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}";
+
+    src = fetchurl {
+      url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi";
+      sha256 = "1fzspdiwhjabwz1yxb3gzj7giz9jbc1xxm65i93rvhzcp537cs42";
+    };
+
+    unpackPhase = ":";
+
+    installPhase = ''
+      install -m 444 -D $src "$out/$extid.xpi"
+    '';
+  };
+
+  torbutton = stdenv.mkDerivation rec {
+    name = "torbutton-${version}";
+    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 {
+    name = "tor-launcher-${version}";
+    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/nixpkgs/pkgs/applications/networking/browsers/uzbl/default.nix b/nixpkgs/pkgs/applications/networking/browsers/uzbl/default.nix
new file mode 100644
index 000000000000..12cf108355c4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/uzbl/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, pkgconfig, python3, makeWrapper
+, webkit, glib-networking, gsettings-desktop-schemas, python2Packages
+}:
+# This package needs python3 during buildtime,
+# but Python 2 + packages during runtime.
+
+stdenv.mkDerivation rec {
+  name = "uzbl-${version}";
+  version = "0.9.0";
+
+  meta = with stdenv.lib; {
+    description = "Tiny externally controllable webkit browser";
+    homepage    = "http://uzbl.org/";
+    license     = licenses.gpl3;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ raskin dgonyeo ];
+  };
+
+  src = fetchurl {
+    name = "uzbl-v${version}.tar.gz";
+    url = "https://github.com/uzbl/uzbl/archive/v${version}.tar.gz";
+    sha256 = "0iskhv653fdm5raiidimh9fzlsw28zjqx7b5n3fl1wgbj6yz074k";
+  };
+
+  preConfigure = ''
+    makeFlags="$makeFlags PREFIX=$out"
+    makeFlags="$makeFlags PYINSTALL_EXTRA=--prefix=$out"
+    mkdir -p $out/${python3.sitePackages}/
+    export PYTHONPATH=$PYTHONPATH:$out/${python3.sitePackages}
+  '';
+
+  preFixup = ''
+    for f in $out/bin/*; do
+      wrapProgram $f \
+        --prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules" \
+        --prefix PYTHONPATH : "$PYTHONPATH" \
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
+    done
+  '';
+
+  nativeBuildInputs = [ pkgconfig python3 makeWrapper ];
+
+  buildInputs = [ gsettings-desktop-schemas webkit ];
+  propagatedBuildInputs = with python2Packages; [ pygtk six ];
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
new file mode 100644
index 000000000000..251315619cfd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, libsoup, webkit, gtk2, glib-networking
+, gsettings-desktop-schemas, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  name = "vimb-${version}";
+  version = "3.1.0";
+
+  src = fetchurl {
+    url = "https://github.com/fanglingsu/vimb/archive/${version}.tar.gz";
+    sha256 = "1gws028c2v1zh6r142hmjvi2m447lwqqh65m6z3dzcar2yw35z3f";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ makeWrapper gtk2 libsoup webkit gsettings-desktop-schemas ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/vimb" \
+      --prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  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 = [ stdenv.lib.maintainers.rickynils ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vimprobable2/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vimprobable2/default.nix
new file mode 100644
index 000000000000..9de7518677de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/vimprobable2/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, makeWrapper, glib-networking, gtk2, libsoup, libX11, perl,
+  pkgconfig, webkit, gsettings-desktop-schemas }:
+
+stdenv.mkDerivation rec {
+  version = "1.4.2";
+  name = "vimprobable2-${version}";
+  src = fetchurl {
+    url = "mirror://sourceforge/vimprobable/vimprobable2_${version}.tar.bz2";
+    sha256 = "13jdximksh9r3cgd2f8vms0pbsn3x0gxvyqdqiw16xp5fmdx5kzr";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ makeWrapper gtk2 libsoup libX11 perl webkit gsettings-desktop-schemas ];
+
+  hardeningDisable = [ "format" ];
+
+  installFlags = "PREFIX=/ DESTDIR=$(out)";
+
+  preFixup = ''
+    wrapProgram "$out/bin/vimprobable2" \
+      --prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = {
+    description = ''
+      Vimprobable is a web browser that behaves like the Vimperator plugin
+      available for Mozilla Firefox
+    '';
+    longDescription = ''
+      Vimprobable is a web browser that behaves like the Vimperator plugin
+      available for Mozilla Firefox. It is based on the WebKit engine (using
+      GTK bindings). The goal of Vimprobable is to build a completely
+      keyboard-driven, efficient and pleasurable browsing-experience. Its
+      featureset might be considered "minimalistic", but not as minimalistic as
+      being completely featureless.
+    '';
+    homepage = https://sourceforge.net/apps/trac/vimprobable;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.aforemny ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
new file mode 100644
index 000000000000..e3269f15ac63
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE
+, libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
+, alsaLib, dbus, cups, libexif, ffmpeg, systemd
+, freetype, fontconfig, libXft, libXrender, libxcb, expat
+, libuuid
+, gstreamer, gst-plugins-base, libxml2
+, glib, gtk3, pango, gdk_pixbuf, cairo, atk, at-spi2-atk, gnome2
+, nss, nspr
+, patchelf, makeWrapper
+, proprietaryCodecs ? false, vivaldi-ffmpeg-codecs ? null
+}:
+
+stdenv.mkDerivation rec {
+  name = "${product}-${version}";
+  product = "vivaldi";
+  version = "2.1.1337.51-1";
+
+  src = fetchurl {
+    url = "https://downloads.vivaldi.com/stable/${product}-stable_${version}_amd64.deb";
+    sha256 = "00rxp6rardxjg17g2b28y2rj8szqlainp4ga6c58z981zkxvdlls";
+  };
+
+  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 alsaLib dbus cups gtk3 gdk_pixbuf libexif ffmpeg systemd
+    freetype fontconfig libXrender libuuid expat glib nss nspr
+    gstreamer libxml2 gst-plugins-base pango cairo gnome2.GConf
+  ] ++ 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/vivaldi/lib";
+
+  buildPhase = ''
+    echo "Patching Vivaldi binaries"
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${libPath}" \
+      opt/vivaldi/vivaldi-bin
+  '' + stdenv.lib.optionalString proprietaryCodecs ''
+    sed -i '/^VIVALDI_FFMPEG_FOUND/ a \
+    checkffmpeg "${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so"' opt/vivaldi/vivaldi
+  '' + ''
+    echo "Finished patching Vivaldi binaries"
+  '';
+
+  dontPatchELF = true;
+  dontStrip    = true;
+
+  installPhase = ''
+    mkdir -p "$out"
+    cp -r opt "$out"
+    mkdir "$out/bin"
+    ln -s "$out/opt/vivaldi/vivaldi" "$out/bin/vivaldi"
+    mkdir -p "$out/share"
+    cp -r usr/share/{applications,xfce4} "$out"/share
+    substituteInPlace "$out"/share/applications/*.desktop \
+      --replace /usr/bin/vivaldi-stable "$out"/bin/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/vivaldi/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}/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Browser for our Friends, powerful and personal";
+    homepage    = "https://vivaldi.com";
+    license     = licenses.unfree;
+    maintainers = with maintainers; [ otwieracz nequissimus ];
+    platforms   = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
new file mode 100644
index 000000000000..349ef233ae21
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl
+, dbus-glib, gtk3, libexif, libXScrnSaver, ninja, nss
+, pciutils, pkgconfig, python2, xdg_utils, gn
+}:
+
+stdenv.mkDerivation rec {
+  name = "${product}-${version}";
+  product = "vivaldi-ffmpeg-codecs";
+  version = "70.0.3538.77";
+
+  src = fetchurl {
+    url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
+    sha512 = "128hvkcbyw70j31dj4jviqqjrzyfx38689nb8v0kk5vi2zlgfy5ibz2gyrv4bvrb53ld262y9pvam51nbdmrx2vqd9xrs173py7v0a0";
+  };
+
+  buildInputs = [ ];
+
+  nativeBuildInputs = [
+    gtk3 libexif libXScrnSaver ninja nss pciutils python2 xdg_utils gn
+    pkgconfig dbus-glib
+  ];
+
+  patches = [
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    local args="ffmpeg_branding=\"ChromeOS\" proprietary_codecs=true enable_hevc_demuxing=true use_gnome_keyring=false use_sysroot=false use_gold=false use_allocator=\"none\" linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false enable_nacl=false enable_nacl_nonsfi=false is_clang=false clang_use_chrome_plugins=false is_component_build=true is_debug=false symbol_level=0 use_custom_libcxx=false use_lld=false use_jumbo_build=false"
+    gn gen out/Release -v --args="$args"
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    ninja -C out/Release -v libffmpeg.so
+  '';
+
+  dontStrip = true;
+
+  installPhase = ''
+    mkdir -p "$out/lib"
+    cp out/Release/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; [ lluchs ];
+    platforms   = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh
new file mode 100755
index 000000000000..0b1787176399
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/update.sh
@@ -0,0 +1,39 @@
+#!/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 "nothing to do, vivaldi $vivaldi_version is current"
+	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]}
+
+echo "vivaldi: $vivaldi_version_old -> $vivaldi_version"
+echo "$path"
+(cd "$root" && update-source-version vivaldi "$vivaldi_version" "$hash")
+
+# 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
+	echo "vivaldi-ffmpeg-codecs: $chromium_version_old -> $chromium_version"
+	(cd "$root" && update-source-version vivaldi-ffmpeg-codecs "$chromium_version")
+fi
diff --git a/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch b/nixpkgs/pkgs/applications/networking/browsers/w3m/RAND_egd.libressl.patch
new file mode 100644
index 000000000000..49dd417d1c39
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix b/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix
new file mode 100644
index 000000000000..70eb381c60e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/w3m/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchFromGitHub, fetchpatch
+, ncurses, boehmgc, gettext, zlib
+, sslSupport ? true, openssl ? null
+, graphicsSupport ? true, imlib2 ? null
+, x11Support ? graphicsSupport, libX11 ? null
+, mouseSupport ? !stdenv.isDarwin, gpm-ncurses ? null
+, perl, man, pkgconfig
+}:
+
+assert sslSupport -> openssl != null;
+assert graphicsSupport -> imlib2 != null;
+assert x11Support -> graphicsSupport && libX11 != null;
+assert mouseSupport -> gpm-ncurses != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "w3m-0.5.3+git20180125";
+
+  src = fetchFromGitHub {
+    owner = "tats";
+    repo = "w3m";
+    rev = "v0.5.3+git20180125";
+    sha256 = "0dafdfx1yhrvhbqzslkcapj09dvf64m2jadz3wl2icni0k4msq90";
+  };
+
+  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";
+
+  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 ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ncurses boehmgc gettext 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/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch b/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch
new file mode 100644
index 000000000000..83b3e96821f5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/w3m/no-x11.patch
@@ -0,0 +1,15 @@
+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 ea36637..d3d7bc3 100644
+--- a/w3mimg/fb/fb_imlib2.c
++++ b/w3mimg/fb/fb_imlib2.c
+@@ -3,7 +3,7 @@
+                 fb_imlib2.c 0.3 Copyright (C) 2002, hito
+  **************************************************************************/
+ 
+-#include <X11/Xlib.h>
++#define X_DISPLAY_MISSING
+ #include <Imlib2.h>
+ #include "fb.h"
+ #include "fb_img.h"
diff --git a/nixpkgs/pkgs/applications/networking/c14/default.nix b/nixpkgs/pkgs/applications/networking/c14/default.nix
new file mode 100644
index 000000000000..242abc2ece79
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/c14/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "c14-cli-${version}";
+  version = "0.3";
+
+  goPackagePath = "github.com/online-net/c14-cli";
+
+  src = fetchFromGitHub {
+    owner = "online-net";
+    repo = "c14-cli";
+    rev = "${version}";
+    sha256 = "0b1piviy6vvdbak8y8bc24rk3c1fi67vv3352pmnzvrhsar2r5yf";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with stdenv.lib; {
+    description = "C14 is designed for data archiving & long-term backups.";
+    homepage = https://www.online.net/en/c14;
+    license = licenses.mit;
+    maintainers = with maintainers; [ apeyroux ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/c14/deps.nix b/nixpkgs/pkgs/applications/networking/c14/deps.nix
new file mode 100644
index 000000000000..fe51488c7066
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/c14/deps.nix
@@ -0,0 +1 @@
+[]
diff --git a/nixpkgs/pkgs/applications/networking/charles/default.nix b/nixpkgs/pkgs/applications/networking/charles/default.nix
new file mode 100644
index 000000000000..3f019d177023
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/charles/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, makeDesktopItem, jre, makeWrapper }:
+
+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 rec {
+  name = "charles-${version}";
+  version = "4.2.7";
+
+  src = fetchurl {
+    url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}.tar.gz";
+    sha256 = "1nycw3wpbfwj4ijjaq5k0f4xipj8j605fs0yjzgl66gmv7r583rd";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    makeWrapper ${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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
new file mode 100644
index 000000000000..fd047147e01a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name    = "cloudflared-${version}";
+  version = "2018.10.3";
+
+  goPackagePath = "github.com/cloudflare/cloudflared";
+
+  src = fetchFromGitHub {
+    owner  = "cloudflare";
+    repo   = "cloudflared";
+    rev    = "41916365b689bf2cc1446ea5717e4d26cc8aed43"; # untagged
+    sha256 = "109bhnmvlvj3ag9vw090fy202z8aaqr1rakhn8v550wwy30h9zkf";
+  };
+
+  goDeps = ./deps.nix;
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cloudflared/deps.nix b/nixpkgs/pkgs/applications/networking/cloudflared/deps.nix
new file mode 100644
index 000000000000..da7f509378dd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cloudflared/deps.nix
@@ -0,0 +1,444 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev =  "b26d9c308763d68093482582cea63d69be07a0f0";
+      sha256 = "0k7v2i1d2d6si8gswn83qb84czhhia53v2wdy33yz9ppdidxk0ry";
+    };
+  }
+  {
+    goPackagePath  = "github.com/beorn7/perks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/beorn7/perks";
+      rev =  "3a771d992973f24aa725d07868b467d1ddfceafb";
+      sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/certifi/gocertifi";
+    fetch = {
+      type = "git";
+      url = "https://github.com/certifi/gocertifi";
+      rev =  "deb3ae2ef2610fde3330947281941c562861188b";
+      sha256 = "1xy09y1fdfcny1z09hd4493w1acj5min9z2sx4gfpshc80icrmr6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cloudflare/brotli-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cloudflare/brotli-go";
+      rev =  "18c9f6c67e3dfc12e0ddaca748d2887f97a7ac28";
+      sha256 = "10112y4k8qing552n0df9w33cgminrzm6g3x7ng0vgin4sv59785";
+    };
+  }
+  {
+    goPackagePath  = "github.com/coredns/coredns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/coredns/coredns";
+      rev =  "992e7928c7c258628d2b13b769acc86781b9faea";
+      sha256 = "0mvlkca11ikwzii0p7g5a2z3gn1xrp7qmmjwklp4i52lbnsawzv0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/coreos/go-oidc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/coreos/go-oidc";
+      rev =  "a93f71fdfe73d2c0f5413c0565eea0af6523a6df";
+      sha256 = "00pmmky0y9a9l767xn16xlf52h81j4869n6j0xql79rybp6xc1f3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/coreos/go-systemd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/coreos/go-systemd";
+      rev =  "39ca1b05acc7ad1220e09f133283b8859a8b71ab";
+      sha256 = "1kzqrrzqspa5qm7kwslxl3m16lqzns23c24rv474ajzwmj3ixmx1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/coreos/pkg";
+    fetch = {
+      type = "git";
+      url = "https://github.com/coreos/pkg";
+      rev =  "97fdf19511ea361ae1c100dd393cc47f8dcfa1e1";
+      sha256 = "1srn87wih25l09f75483hnxsr8fc6rq3bk7w1x8125ym39p6mg21";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "346938d642f2ec3594ed81d874461961cd0faa76";
+      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
+    };
+  }
+  {
+    goPackagePath  = "github.com/elgs/gosqljson";
+    fetch = {
+      type = "git";
+      url = "https://github.com/elgs/gosqljson";
+      rev =  "027aa4915315a0b2825c0f025cea347829b974fa";
+      sha256 = "14i45m1y505acvsk4l725bp8p9w3mcg49khz9hxkzg3afg7nc5gq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/equinox-io/equinox";
+    fetch = {
+      type = "git";
+      url = "https://github.com/equinox-io/equinox";
+      rev =  "f24972fa72facf59d05c91c848b65eac38815915";
+      sha256 = "1d3620g1kxyzn8b3py2471qp8ssyzm1qnpbap9gxrmg8912wiww1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/facebookgo/grace";
+    fetch = {
+      type = "git";
+      url = "https://github.com/facebookgo/grace";
+      rev =  "75cf19382434e82df4dd84953f566b8ad23d6e9e";
+      sha256 = "15chyvgv5y59w9x2asm0vh29cmmcji7f5vxvv8gqcr15nkyi61q0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/flynn/go-shlex";
+    fetch = {
+      type = "git";
+      url = "https://github.com/flynn/go-shlex";
+      rev =  "3f9db97f856818214da2e1057f8ad84803971cff";
+      sha256 = "1j743lysygkpa2s2gii2xr32j7bxgc15zv4113b0q9jhn676ysia";
+    };
+  }
+  {
+    goPackagePath  = "github.com/getsentry/raven-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/getsentry/raven-go";
+      rev =  "ed7bcb39ff10f39ab08e317ce16df282845852fa";
+      sha256 = "0pqggcjbia9sidxqxnyd5z5k44iswxaqss3qvkka8bfm082kczij";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang-collections/collections";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang-collections/collections";
+      rev =  "604e922904d35e97f98a774db7881f049cd8d970";
+      sha256 = "04g0xc1bs4aphc2rcj9knah2shmck500qagnazy4mg052b84ggwm";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "b4deda0973fb4c70b50d226b1af49f3da59f5265";
+      sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/uuid";
+      rev =  "064e2069ce9c359c118179501254f67d7d37ba24";
+      sha256 = "1b1ibx3rbiv7xwa9kz4b4zpp1fza5cjnn8v6749b4vrkjjmp3rqb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/context";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/context";
+      rev =  "08b5f424b9271eedf6f9f0ce86cb9396ed337a42";
+      sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/mux";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/mux";
+      rev =  "e3702bed27f0d39777b0b37b664b6280e8ef8fbf";
+      sha256 = "0pvzm23hklxysspnz52mih6h1q74vfrdhjfm1l3sa9r8hhqmmld2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/websocket";
+      rev =  "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
+      sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/grpc-ecosystem/grpc-opentracing";
+    fetch = {
+      type = "git";
+      url = "https://github.com/grpc-ecosystem/grpc-opentracing";
+      rev =  "8e809c8a86450a29b90dcc9efbf062d0fe6d9746";
+      sha256 = "1yz3gxhdipmi63n32y5srwx7p254k3fm8y64cimkb1gz7sw99nxw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jonboulle/clockwork";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jonboulle/clockwork";
+      rev =  "2eee05ed794112d45db504eb05aa693efd2b8b09";
+      sha256 = "1pqxhsdavbp1n5grgyx2j6ylvql2fzn2cvpsgkc8li69dil7sibl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/lib/pq";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lib/pq";
+      rev =  "90697d60dd844d5ef6ff15135d0203f65d2f53b8";
+      sha256 = "0hb4bfsk8g5473yzbf3lzrb373xicakjznkf0v085xgimz991i9r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-colorable";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-colorable";
+      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
+      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev =  "0360b2af4f38e8d38c7fce2a9f4e702702d73a39";
+      sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
+    };
+  }
+  {
+    goPackagePath  = "github.com/matttproud/golang_protobuf_extensions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matttproud/golang_protobuf_extensions";
+      rev =  "c12348ce28de40eed0136aa2b644d0ee0650e56c";
+      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mholt/caddy";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mholt/caddy";
+      rev =  "d3b731e9255b72d4571a5aac125634cf1b6031dc";
+      sha256 = "1183cfaryw7m3hvngzv87w80pc9vp3369sjyz7a0dlbr39jip1r0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/miekg/dns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/miekg/dns";
+      rev =  "5a2b9fab83ff0f8bfc99684bd5f43a37abe560f1";
+      sha256 = "1vmgkpmwlqg6pwrpvjbn4h4al6af5fjvwwnacyv18hvlfd3fyfmx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/go-homedir";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-homedir";
+      rev =  "3864e76763d94a6df2f9960b16a20a33da9f9a66";
+      sha256 = "1n8vya16l60i5jms43yb8fzdgwvqa2q926p5wkg3lbrk8pxy1nv0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/opentracing/opentracing-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/opentracing/opentracing-go";
+      rev =  "1949ddbfd147afd4d964a9f00b24eb291e0e7c38";
+      sha256 = "0i0ghg94dg8lk05mw5n23983wq04yjvkjmdkc9z5y1f3508938h9";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/client_golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_golang";
+      rev =  "967789050ba94deca04a5e84cce8ad472ce313c1";
+      sha256 = "1djwz6shmyx5kbp9b1pim3kncq2jwn3qhbx4b0b4lq7msww76hpz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/client_model";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_model";
+      rev =  "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c";
+      sha256 = "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/common";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/common";
+      rev =  "7600349dcfe1abd18d72d3a1770870d9800a7801";
+      sha256 = "0lsp94dqpj35dny4m4x15kg4wgwawlm3in7cnpajkkacgyxagk5f";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/procfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/procfs";
+      rev =  "ae68e2d4c00fed4943b5f6698d504a5fe083da8a";
+      sha256 = "04sar4k99w8nvq3kwx6chz0mbp4s6xfjfxww7aqfd950xgs2jv5f";
+    };
+  }
+  {
+    goPackagePath  = "github.com/rifflock/lfshook";
+    fetch = {
+      type = "git";
+      url = "https://github.com/rifflock/lfshook";
+      rev =  "bf539943797a1f34c1f502d07de419b5238ae6c6";
+      sha256 = "0hns4zidw8g3s5l9dyl894fnyjr0a5xgdvx26rnal9jrn4n6z835";
+    };
+  }
+  {
+    goPackagePath  = "github.com/sirupsen/logrus";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sirupsen/logrus";
+      rev =  "c155da19408a8799da419ed3eeb0cb5db0ad5dbc";
+      sha256 = "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev =  "f35b8ab0b5a2cef36673838d662e249dd9c94686";
+      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "a49355c7e3f8fe157a85be2f77e6e269a0f89602";
+      sha256 = "020q1laxjx5kcmnqy4wmdb63zhb0lyq6wpy40axhswzg2nd21s44";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "32a936f46389aa10549d60bd7833e54b01685d09";
+      sha256 = "0f24khgx6s7idpnmwgkml4qyrqwkvdjd18aapn5rmybyhmrb57j7";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev =  "1d60e4601c6fd243af51cc01ddf169918a5407ca";
+      sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "ce36f3865eeb42541ce3f87f32f8462c5687befa";
+      sha256 = "0dkmxn48l9g7w1247c473qlacfkfp8wyan54k9cbi79icdp65jja";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev =  "f21a4dfb5e38f5895301dc265a8def02365cc3d0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/genproto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-genproto";
+      rev =  "ff3583edef7de132f219f0efc00e097cabcc0ec0";
+      sha256 = "0bpzxk85fgvznmdf9356nzh8riqhwzcil9r2a955rbfn27lh4lmy";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/grpc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/grpc/grpc-go";
+      rev =  "168a6198bcb0ef175f7dacec0b8691fc141dc9b8";
+      sha256 = "0d8vj372ri55mrqfc0rhjl3albp5ykwfjhda1s5cgm5n40v70pr3";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/urfave/cli.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cbranch/cli";
+      rev =  "d604b6ffeee878fbf084fd2761466b6649989cee";
+      sha256 = "16csqipw5vrbb91m9w9g72jlxlrhcyxa79fz6fjp6803znmjdpk2";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+  {
+    goPackagePath  = "zombiezen.com/go/capnproto2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/zombiezen/go-capnproto2";
+      rev =  "7cfd211c19c7f5783c695f3654efa46f0df259c3";
+      sha256 = "0nzw3g8xpxyzwqqv3ja0iznd0j18l1rwagwhf9sinwdjjgmh51sy";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix
new file mode 100644
index 000000000000..aac0dd10e15a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix
@@ -0,0 +1,14 @@
+{stdenv, curl}:
+
+stdenv.mkDerivation {
+  name = "chronos-maven-deps";
+  builder = ./fetch-chronos-deps.sh;
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0mm2sb1p5zz6b0z2s4zhdlix6fafydsxmqjy8zbkwzw4f6lazzyl";
+
+  nativeBuildInputs = [ curl ];
+
+  impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix b/nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix
new file mode 100644
index 000000000000..bc9023a222f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, makeWrapper, fetchgit, curl, jdk, maven, nodejs, mesos }:
+
+stdenv.mkDerivation rec {
+  name = "chronos-${version}";
+  version = "286b2ccb8e4695f8e413406ceca85b60d3a87e22";
+
+  src = fetchgit {
+    url = "https://github.com/airbnb/chronos";
+    rev = version;
+    sha256 = "0hrln3ad2g2cq2xqmy5mq32cdxxb9vb6v6jp6kcq03f8km6v3g9c";
+  };
+
+  buildInputs = [ makeWrapper curl jdk maven nodejs mesos ];
+
+  mavenRepo = import ./chronos-deps.nix { inherit stdenv curl; };
+
+  buildPhase = ''
+    ln -s $mavenRepo .m2
+    mvn package -Dmaven.repo.local=$(pwd)/.m2
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,libexec/chronos}
+    cp target/chronos*.jar $out/libexec/chronos/${name}.jar
+
+    makeWrapper ${jdk.jre}/bin/java $out/bin/chronos \
+      --add-flags "-Xmx384m -Xms384m -cp $out/libexec/chronos/${name}.jar com.airbnb.scheduler.Main" \
+      --prefix "MESOS_NATIVE_LIBRARY" : "$MESOS_NATIVE_LIBRARY"
+  '';
+
+  meta = with lib; {
+    homepage    = http://airbnb.github.io/chronos;
+    license     = licenses.asl20;
+    description = "Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules";
+    maintainers = with maintainers; [ offline ];
+    platforms   = platforms.unix;
+    broken = true; # doesn't build http://hydra.nixos.org/build/25768319
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh b/nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh
new file mode 100644
index 000000000000..2e337076107d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh
@@ -0,0 +1,1672 @@
+source $stdenv/setup
+header "fetching Chronos maven repo"
+
+function fetchArtifact {
+  repoPath="$1"
+  echo "fetching $repoPath"
+  mkdir -p $(dirname $out/$repoPath)
+  curl --fail --location --insecure --max-redirs 20 "http://repo.maven.apache.org/maven2/$repoPath" --output "$out/$repoPath" ||
+  curl --fail --location --insecure --max-redirs 20 "https://repository.apache.org/content/repositories/release/$repoPath" --output "$out/$repoPath" ||
+  curl --fail --location --insecure --max-redirs 20 "http://downloads.mesosphere.io/maven/$repoPath" --output "$out/$repoPath"
+}
+
+fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom.sha1
+fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom
+fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom
+fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom.sha1
+fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom.sha1
+fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar.sha1
+fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom
+fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar
+fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom.sha1
+fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar.sha1
+fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom
+fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
+fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom
+fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom.sha1
+fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar
+fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom.sha1
+fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom
+fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar.sha1
+fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.pom
+fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.jar
+fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.jar.sha1
+fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.pom.sha1
+fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.jar
+fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.pom.sha1
+fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.pom
+fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.jar.sha1
+fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom
+fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar.sha1
+fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom.sha1
+fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar
+fetchArtifact net/kencochrane/raven/raven-all/4.1.2/raven-all-4.1.2.pom
+fetchArtifact net/kencochrane/raven/raven-all/4.1.2/raven-all-4.1.2.pom.sha1
+fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.jar
+fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.pom
+fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.jar.sha1
+fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.pom.sha1
+fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.jar.sha1
+fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.jar
+fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.pom.sha1
+fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.pom
+fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.jar.sha1
+fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.pom
+fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.jar
+fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.pom.sha1
+fetchArtifact net/java/jvnet-parent/4/jvnet-parent-4.pom
+fetchArtifact net/java/jvnet-parent/4/jvnet-parent-4.pom.sha1
+fetchArtifact net/java/jvnet-parent/1/jvnet-parent-1.pom
+fetchArtifact net/java/jvnet-parent/1/jvnet-parent-1.pom.sha1
+fetchArtifact net/java/jvnet-parent/3/jvnet-parent-3.pom.sha1
+fetchArtifact net/java/jvnet-parent/3/jvnet-parent-3.pom
+fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.jar.sha1
+fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.pom.sha1
+fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.pom
+fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.jar
+fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.jar
+fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.pom
+fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.jar.sha1
+fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.pom.sha1
+fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom
+fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom.sha1
+fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar.sha1
+fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom.sha1
+fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
+fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar
+fetchArtifact xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.pom.sha1
+fetchArtifact xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.pom
+fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom.sha1
+fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom
+fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar
+fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar.sha1
+fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.pom
+fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar
+fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar.sha1
+fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.pom.sha1
+fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.jar.sha1
+fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.jar
+fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.pom.sha1
+fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.pom
+fetchArtifact io/dropwizard/metrics/metrics-parent/3.1.0/metrics-parent-3.1.0.pom.sha1
+fetchArtifact io/dropwizard/metrics/metrics-parent/3.1.0/metrics-parent-3.1.0.pom
+fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.jar.sha1
+fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.pom
+fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.jar
+fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.pom.sha1
+fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.pom.sha1
+fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.jar
+fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.pom
+fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.jar.sha1
+fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar.sha1
+fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom.sha1
+fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar
+fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom
+fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom.sha1
+fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar.sha1
+fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar
+fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom
+fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar
+fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom.sha1
+fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom
+fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1
+fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom
+fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom.sha1
+fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.jar.sha1
+fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.pom.sha1
+fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.jar
+fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.pom
+fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.pom.sha1
+fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.jar
+fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.jar.sha1
+fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.pom
+fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
+fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
+fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
+fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1
+fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom
+fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
+fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom
+fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom.sha1
+fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.pom.sha1
+fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar
+fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar.sha1
+fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.pom
+fetchArtifact com/google/inject/guice-parent/3.0/guice-parent-3.0.pom.sha1
+fetchArtifact com/google/inject/guice-parent/3.0/guice-parent-3.0.pom
+fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.pom.sha1
+fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar
+fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar.sha1
+fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.pom
+fetchArtifact com/google/inject/extensions/extensions-parent/3.0/extensions-parent-3.0.pom.sha1
+fetchArtifact com/google/inject/extensions/extensions-parent/3.0/extensions-parent-3.0.pom
+fetchArtifact com/google/inject/guice/3.0/guice-3.0.jar
+fetchArtifact com/google/inject/guice/3.0/guice-3.0.jar.sha1
+fetchArtifact com/google/inject/guice/3.0/guice-3.0.pom.sha1
+fetchArtifact com/google/inject/guice/3.0/guice-3.0.pom
+fetchArtifact com/google/google/1/google-1.pom
+fetchArtifact com/google/google/1/google-1.pom.sha1
+fetchArtifact com/google/google/5/google-5.pom.sha1
+fetchArtifact com/google/google/5/google-5.pom
+fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom
+fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom.sha1
+fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom
+fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar.sha1
+fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
+fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom.sha1
+fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom.sha1
+fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom
+fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar.sha1
+fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar
+fetchArtifact com/google/guava/guava-parent/15.0/guava-parent-15.0.pom
+fetchArtifact com/google/guava/guava-parent/15.0/guava-parent-15.0.pom.sha1
+fetchArtifact com/google/guava/guava-parent/13.0.1/guava-parent-13.0.1.pom.sha1
+fetchArtifact com/google/guava/guava-parent/13.0.1/guava-parent-13.0.1.pom
+fetchArtifact com/google/guava/guava-parent/17.0/guava-parent-17.0.pom.sha1
+fetchArtifact com/google/guava/guava-parent/17.0/guava-parent-17.0.pom
+fetchArtifact com/google/guava/guava-parent/16.0.1/guava-parent-16.0.1.pom
+fetchArtifact com/google/guava/guava-parent/16.0.1/guava-parent-16.0.1.pom.sha1
+fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom
+fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom.sha1
+fetchArtifact com/google/guava/guava/15.0/guava-15.0.pom.sha1
+fetchArtifact com/google/guava/guava/15.0/guava-15.0.pom
+fetchArtifact com/google/guava/guava/13.0.1/guava-13.0.1.pom
+fetchArtifact com/google/guava/guava/13.0.1/guava-13.0.1.pom.sha1
+fetchArtifact com/google/guava/guava/17.0/guava-17.0.pom
+fetchArtifact com/google/guava/guava/17.0/guava-17.0.pom.sha1
+fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.pom.sha1
+fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.pom
+fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.jar
+fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.jar.sha1
+fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar.sha1
+fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom
+fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar
+fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom.sha1
+fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.pom
+fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.pom.sha1
+fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.jar
+fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.jar.sha1
+fetchArtifact com/github/spullara/mustache/java/mustache.java/0.8.12/mustache.java-0.8.12.pom
+fetchArtifact com/github/spullara/mustache/java/mustache.java/0.8.12/mustache.java-0.8.12.pom.sha1
+fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.jar
+fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.pom.sha1
+fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.jar.sha1
+fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.pom
+fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.jar.sha1
+fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.pom
+fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.pom.sha1
+fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.jar
+fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.pom
+fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.pom.sha1
+fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.jar.sha1
+fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.jar
+fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.jar.sha1
+fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.pom
+fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.jar
+fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.pom.sha1
+fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.pom.sha1
+fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.jar
+fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.jar.sha1
+fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.pom
+fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.pom.sha1
+fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.jar
+fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.jar.sha1
+fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.pom
+fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.jar.sha1
+fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.pom.sha1
+fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.jar
+fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.pom
+fetchArtifact com/codahale/metrics/metrics-parent/3.0.2/metrics-parent-3.0.2.pom.sha1
+fetchArtifact com/codahale/metrics/metrics-parent/3.0.2/metrics-parent-3.0.2.pom
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.pom
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.pom.sha1
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.jar
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.jar.sha1
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.pom.sha1
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.jar.sha1
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.pom
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.jar
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.4.1/jackson-jaxrs-providers-2.4.1.pom.sha1
+fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.4.1/jackson-jaxrs-providers-2.4.1.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.jar
+fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.pom.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.jar.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.0/jackson-annotations-2.4.0.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.0/jackson-annotations-2.4.0.pom.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.pom.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1/jackson-databind-2.4.1.pom.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1/jackson-databind-2.4.1.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.jar.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.jar
+fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.pom.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.pom.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.jar.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.pom.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.jar
+fetchArtifact com/fasterxml/jackson/core/jackson-core/2.4.1/jackson-core-2.4.1.pom.sha1
+fetchArtifact com/fasterxml/jackson/core/jackson-core/2.4.1/jackson-core-2.4.1.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.pom
+fetchArtifact com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.pom.sha1
+fetchArtifact com/fasterxml/jackson/jackson-parent/2.4/jackson-parent-2.4.pom
+fetchArtifact com/fasterxml/jackson/jackson-parent/2.4/jackson-parent-2.4.pom.sha1
+fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.pom
+fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.jar
+fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.pom.sha1
+fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.jar.sha1
+fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.jar
+fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.pom.sha1
+fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.jar.sha1
+fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.pom
+fetchArtifact com/fasterxml/oss-parent/16/oss-parent-16.pom
+fetchArtifact com/fasterxml/oss-parent/16/oss-parent-16.pom.sha1
+fetchArtifact com/fasterxml/oss-parent/11/oss-parent-11.pom.sha1
+fetchArtifact com/fasterxml/oss-parent/11/oss-parent-11.pom
+fetchArtifact com/fasterxml/oss-parent/10/oss-parent-10.pom.sha1
+fetchArtifact com/fasterxml/oss-parent/10/oss-parent-10.pom
+fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.pom.sha1
+fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar
+fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.pom
+fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar.sha1
+fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.jar
+fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.pom.sha1
+fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.pom
+fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.jar.sha1
+fetchArtifact com/datastax/cassandra/cassandra-driver-parent/2.1.0/cassandra-driver-parent-2.1.0.pom.sha1
+fetchArtifact com/datastax/cassandra/cassandra-driver-parent/2.1.0/cassandra-driver-parent-2.1.0.pom
+fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0.pom.sha1
+fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0-sources.jar
+fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0.pom
+fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0-sources.jar.sha1
+fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.jar.sha1
+fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.jar
+fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.pom
+fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.pom.sha1
+fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.jar.sha1
+fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.pom.sha1
+fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.jar
+fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.pom
+fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.pom.sha1
+fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.jar.sha1
+fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.pom
+fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.jar
+fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.jar
+fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.pom.sha1
+fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.pom
+fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.jar.sha1
+fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.pom.sha1
+fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.jar.sha1
+fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.pom
+fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.jar
+fetchArtifact com/thoughtworks/paranamer/paranamer-parent/2.6/paranamer-parent-2.6.pom.sha1
+fetchArtifact com/thoughtworks/paranamer/paranamer-parent/2.6/paranamer-parent-2.6.pom
+fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.pom
+fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.jar.sha1
+fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.pom.sha1
+fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.jar
+fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.pom
+fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.jar.sha1
+fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.pom.sha1
+fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.jar
+fetchArtifact com/sun/jersey/jersey-server/1.17.1/jersey-server-1.17.1.pom.sha1
+fetchArtifact com/sun/jersey/jersey-server/1.17.1/jersey-server-1.17.1.pom
+fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.jar.sha1
+fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.jar
+fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.pom
+fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.pom.sha1
+fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.pom.sha1
+fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.jar
+fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.pom
+fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.jar.sha1
+fetchArtifact com/sun/jersey/jersey-core/1.17.1/jersey-core-1.17.1.pom
+fetchArtifact com/sun/jersey/jersey-core/1.17.1/jersey-core-1.17.1.pom.sha1
+fetchArtifact com/sun/jersey/jersey-project/1.18.1/jersey-project-1.18.1.pom.sha1
+fetchArtifact com/sun/jersey/jersey-project/1.18.1/jersey-project-1.18.1.pom
+fetchArtifact com/sun/jersey/jersey-project/1.17.1/jersey-project-1.17.1.pom.sha1
+fetchArtifact com/sun/jersey/jersey-project/1.17.1/jersey-project-1.17.1.pom
+fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.pom.sha1
+fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.jar.sha1
+fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.jar
+fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.pom
+fetchArtifact com/sun/jersey/contribs/jersey-contribs/1.18.1/jersey-contribs-1.18.1.pom
+fetchArtifact com/sun/jersey/contribs/jersey-contribs/1.18.1/jersey-contribs-1.18.1.pom.sha1
+fetchArtifact com/sun/mail/all/1.4.5/all-1.4.5.pom
+fetchArtifact com/sun/mail/all/1.4.5/all-1.4.5.pom.sha1
+fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar
+fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom
+fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar.sha1
+fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom.sha1
+fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom.sha1
+fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom
+fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
+fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar.sha1
+fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.jar
+fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.pom
+fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.pom.sha1
+fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.jar.sha1
+fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom
+fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom.sha1
+fetchArtifact asm/asm-parent/3.1/asm-parent-3.1.pom.sha1
+fetchArtifact asm/asm-parent/3.1/asm-parent-3.1.pom
+fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom
+fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar
+fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom.sha1
+fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar.sha1
+fetchArtifact asm/asm/3.1/asm-3.1.pom.sha1
+fetchArtifact asm/asm/3.1/asm-3.1.pom
+fetchArtifact jline/jline/0.9.94/jline-0.9.94.pom
+fetchArtifact jline/jline/0.9.94/jline-0.9.94.pom.sha1
+fetchArtifact jline/jline/0.9.94/jline-0.9.94.jar.sha1
+fetchArtifact jline/jline/0.9.94/jline-0.9.94.jar
+fetchArtifact xml-apis/xml-apis/1.3.03/xml-apis-1.3.03.pom
+fetchArtifact xml-apis/xml-apis/1.3.03/xml-apis-1.3.03.pom.sha1
+fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom
+fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom.sha1
+fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom
+fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.sha1
+fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
+fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
+fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar.sha1
+fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom.sha1
+fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom.sha1
+fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar
+fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom
+fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar.sha1
+fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom
+fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom.sha1
+fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom
+fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom.sha1
+fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.jar
+fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.jar.sha1
+fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.pom
+fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.pom.sha1
+fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.jar.sha1
+fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.jar
+fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.pom
+fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.pom.sha1
+fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.pom
+fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.jar.sha1
+fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.pom.sha1
+fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.jar
+fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.jar
+fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.pom.sha1
+fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.pom
+fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.jar.sha1
+fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.pom.sha1
+fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.jar
+fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.pom
+fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.jar.sha1
+fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.pom
+fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.jar
+fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.jar.sha1
+fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.pom.sha1
+fetchArtifact org/javabits/jgrapht/jgrapht/0.9.1/jgrapht-0.9.1.pom.sha1
+fetchArtifact org/javabits/jgrapht/jgrapht/0.9.1/jgrapht-0.9.1.pom
+fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.pom
+fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.jar.sha1
+fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.jar
+fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.pom.sha1
+fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.jar.sha1
+fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.jar
+fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.pom.sha1
+fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.pom
+fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.jar
+fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.pom.sha1
+fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.pom
+fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.jar.sha1
+fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar.sha1
+fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar
+fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom
+fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom.sha1
+fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.pom.sha1
+fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.jar.sha1
+fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.pom
+fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.jar
+fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.pom
+fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.pom.sha1
+fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.jar
+fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.jar.sha1
+fetchArtifact org/scala-lang/scala-library/2.11.0/scala-library-2.11.0.pom
+fetchArtifact org/scala-lang/scala-library/2.11.0/scala-library-2.11.0.pom.sha1
+fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.pom.sha1
+fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.pom
+fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar.sha1
+fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar
+fetchArtifact org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom.sha1
+fetchArtifact org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom
+fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.jar
+fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.jar.sha1
+fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.pom
+fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.pom.sha1
+fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.pom.sha1
+fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.jar.sha1
+fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.pom
+fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.jar
+fetchArtifact org/scala-lang/scala-reflect/2.11.0/scala-reflect-2.11.0.pom.sha1
+fetchArtifact org/scala-lang/scala-reflect/2.11.0/scala-reflect-2.11.0.pom
+fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.pom
+fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.pom.sha1
+fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.jar
+fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.jar.sha1
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.jar.sha1
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.jar
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.pom
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.pom.sha1
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.pom.sha1
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.pom
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar.sha1
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.jar.sha1
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.jar
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.pom.sha1
+fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.pom
+fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.jar.sha1
+fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.pom
+fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.jar
+fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.pom.sha1
+fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.pom.sha1
+fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar.sha1
+fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.pom
+fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar
+fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.jar.sha1
+fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.pom.sha1
+fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.pom
+fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.jar
+fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.jar.sha1
+fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.pom.sha1
+fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.pom
+fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.jar
+fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.jar
+fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.pom
+fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.jar.sha1
+fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.pom.sha1
+fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom
+fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar
+fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar.sha1
+fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom.sha1
+fetchArtifact org/jboss/shrinkwrap/shrinkwrap-bom/1.0.1/shrinkwrap-bom-1.0.1.pom
+fetchArtifact org/jboss/shrinkwrap/shrinkwrap-bom/1.0.1/shrinkwrap-bom-1.0.1.pom.sha1
+fetchArtifact org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-3/shrinkwrap-descriptors-bom-2.0.0-alpha-3.pom.sha1
+fetchArtifact org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-3/shrinkwrap-descriptors-bom-2.0.0-alpha-3.pom
+fetchArtifact org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/1.0.0-beta-7/shrinkwrap-resolver-bom-1.0.0-beta-7.pom
+fetchArtifact org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/1.0.0-beta-7/shrinkwrap-resolver-bom-1.0.0-beta-7.pom.sha1
+fetchArtifact org/jboss/jboss-parent/9/jboss-parent-9.pom.sha1
+fetchArtifact org/jboss/jboss-parent/9/jboss-parent-9.pom
+fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.pom
+fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar
+fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar.sha1
+fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.pom.sha1
+fetchArtifact org/jboss/arquillian/arquillian-bom/1.0.2.Final/arquillian-bom-1.0.2.Final.pom
+fetchArtifact org/jboss/arquillian/arquillian-bom/1.0.2.Final/arquillian-bom-1.0.2.Final.pom.sha1
+fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.jar.sha1
+fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.pom
+fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.pom.sha1
+fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.jar
+fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.pom
+fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.jar.sha1
+fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.jar
+fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.pom.sha1
+fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.jar.sha1
+fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.pom
+fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.jar
+fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.pom.sha1
+fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar
+fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.pom
+fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar.sha1
+fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.pom.sha1
+fetchArtifact org/hibernate/hibernate-validator-parent/5.1.2.Final/hibernate-validator-parent-5.1.2.Final.pom.sha1
+fetchArtifact org/hibernate/hibernate-validator-parent/5.1.2.Final/hibernate-validator-parent-5.1.2.Final.pom
+fetchArtifact org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.pom.sha1
+fetchArtifact org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.pom
+fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar
+fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.pom
+fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.pom.sha1
+fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar.sha1
+fetchArtifact org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.pom
+fetchArtifact org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.pom.sha1
+fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar
+fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.pom
+fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.pom.sha1
+fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar.sha1
+fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar.sha1
+fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.pom.sha1
+fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.pom
+fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar
+fetchArtifact org/slf4j/slf4j-parent/1.7.5/slf4j-parent-1.7.5.pom
+fetchArtifact org/slf4j/slf4j-parent/1.7.5/slf4j-parent-1.7.5.pom.sha1
+fetchArtifact org/slf4j/slf4j-parent/1.7.7/slf4j-parent-1.7.7.pom
+fetchArtifact org/slf4j/slf4j-parent/1.7.7/slf4j-parent-1.7.7.pom.sha1
+fetchArtifact org/slf4j/slf4j-parent/1.7.6/slf4j-parent-1.7.6.pom.sha1
+fetchArtifact org/slf4j/slf4j-parent/1.7.6/slf4j-parent-1.7.6.pom
+fetchArtifact org/slf4j/slf4j-parent/1.6.1/slf4j-parent-1.6.1.pom
+fetchArtifact org/slf4j/slf4j-parent/1.6.1/slf4j-parent-1.6.1.pom.sha1
+fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar
+fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.pom
+fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar.sha1
+fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.pom.sha1
+fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom.sha1
+fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom
+fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom.sha1
+fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom
+fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar.sha1
+fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom.sha1
+fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar
+fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom
+fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom.sha1
+fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom
+fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom
+fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar.sha1
+fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom.sha1
+fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar
+fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom.sha1
+fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom
+fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom.sha1
+fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom
+fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom
+fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom.sha1
+fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.jar.sha1
+fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.jar
+fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.pom
+fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.pom.sha1
+fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.jar
+fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.pom.sha1
+fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.pom
+fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.jar.sha1
+fetchArtifact org/apache/ant/ant-parent/1.8.2/ant-parent-1.8.2.pom.sha1
+fetchArtifact org/apache/ant/ant-parent/1.8.2/ant-parent-1.8.2.pom
+fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar.sha1
+fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom.sha1
+fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar
+fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom
+fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom
+fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar
+fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.jar
+fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.pom
+fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom
+fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar
+fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom
+fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar
+fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom
+fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar
+fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.pom
+fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.jar
+fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom
+fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom
+fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom
+fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom
+fetchArtifact org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom
+fetchArtifact org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.pom
+fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.jar
+fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.jar
+fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.pom
+fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom
+fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom
+fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.pom
+fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.jar
+fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom
+fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom
+fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
+fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar.sha1
+fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar.sha1
+fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar
+fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom
+fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar
+fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar
+fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar
+fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom
+fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom
+fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom
+fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.10/maven-artifact-manager-2.0.10.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.10/maven-artifact-manager-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/plugin-tools/maven-plugin-tools/3.2/maven-plugin-tools-3.2.pom
+fetchArtifact org/apache/maven/plugin-tools/maven-plugin-tools/3.2/maven-plugin-tools-3.2.pom.sha1
+fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.pom.sha1
+fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar
+fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.pom
+fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar
+fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom
+fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom
+fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom
+fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom
+fetchArtifact org/apache/maven/maven-profile/2.0.10/maven-profile-2.0.10.pom
+fetchArtifact org/apache/maven/maven-profile/2.0.10/maven-profile-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom
+fetchArtifact org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11.pom
+fetchArtifact org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar
+fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom
+fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom
+fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom
+fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom
+fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.10/maven-project-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.10/maven-project-2.0.10.pom
+fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
+fetchArtifact org/apache/maven/maven-project/2.0.11/maven-project-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.11/maven-project-2.0.11.pom
+fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom
+fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar
+fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom
+fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom
+fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom
+fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom
+fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.10/maven-model-2.0.10.pom
+fetchArtifact org/apache/maven/maven-model/2.0.10/maven-model-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom
+fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.11/maven-model-2.0.11.pom
+fetchArtifact org/apache/maven/maven-model/2.0.11/maven-model-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom
+fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar
+fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire/2.14.1/surefire-2.14.1.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire/2.14.1/surefire-2.14.1.pom
+fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.jar
+fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.jar.sha1
+fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.pom
+fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.pom
+fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.jar.sha1
+fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.jar
+fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.pom.sha1
+fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.jar.sha1
+fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.pom
+fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.pom.sha1
+fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.jar
+fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.jar
+fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.pom
+fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.jar.sha1
+fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.pom
+fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.jar
+fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.jar.sha1
+fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire-providers/2.14.1/surefire-providers-2.14.1.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire-providers/2.14.1/surefire-providers-2.14.1.pom
+fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom
+fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.10/maven-repository-metadata-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.10/maven-repository-metadata-2.0.10.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.11/maven-repository-metadata-2.0.11.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.11/maven-repository-metadata-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom
+fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom
+fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom
+fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom
+fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom
+fetchArtifact org/apache/maven/maven/2.0.10/maven-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.10/maven-2.0.10.pom
+fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom
+fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom
+fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom
+fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.11/maven-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.11/maven-2.0.11.pom
+fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom
+fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom
+fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.10/maven-artifact-2.0.10.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.10/maven-artifact-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom
+fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom
+fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.11/maven-artifact-2.0.11.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.11/maven-artifact-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar
+fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom
+fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.10/maven-settings-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.10/maven-settings-2.0.10.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.11/maven-settings-2.0.11.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.11/maven-settings-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar
+fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom
+fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom
+fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.10/maven-plugin-registry-2.0.10.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.10/maven-plugin-registry-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar
+fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom
+fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/4/maven-parent-4.pom
+fetchArtifact org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom
+fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/22/maven-parent-22.pom
+fetchArtifact org/apache/maven/maven-parent/22/maven-parent-22.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom
+fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/24/maven-parent-24.pom
+fetchArtifact org/apache/maven/maven-parent/24/maven-parent-24.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom
+fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom
+fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom
+fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom
+fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/12/maven-parent-12.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/12/maven-parent-12.pom
+fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom
+fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom
+fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom
+fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom
+fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom
+fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom
+fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
+fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom
+fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom
+fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom
+fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom
+fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.10/maven-plugin-api-2.0.10.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.10/maven-plugin-api-2.0.10.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.11/maven-plugin-api-2.0.11.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.11/maven-plugin-api-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar
+fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom
+fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom.sha1
+fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom
+fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.4/doxia-modules-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.4/doxia-modules-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.2/doxia-modules-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.2/doxia-modules-1.1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.jar
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.2/doxia-decoration-model-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.2/doxia-decoration-model-1.1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.2/doxia-module-fml-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.2/doxia-module-fml-1.1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.4/doxia-sitetools-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.4/doxia-sitetools-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.2/doxia-sitetools-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.2/doxia-sitetools-1.1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.jar
+fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-core/1.1.2/doxia-core-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-core/1.1.2/doxia-core-1.1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.jar
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.jar
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.jar
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.jar
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.2/doxia-module-xhtml-1.1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.2/doxia-module-xhtml-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.1.4/doxia-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.1.4/doxia-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.1.2/doxia-1.1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.1.2/doxia-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.jar
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.pom
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.2/doxia-site-renderer-1.1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.2/doxia-site-renderer-1.1.2.pom.sha1
+fetchArtifact org/apache/apache/7/apache-7.pom
+fetchArtifact org/apache/apache/7/apache-7.pom.sha1
+fetchArtifact org/apache/apache/4/apache-4.pom
+fetchArtifact org/apache/apache/4/apache-4.pom.sha1
+fetchArtifact org/apache/apache/1/apache-1.pom
+fetchArtifact org/apache/apache/1/apache-1.pom.sha1
+fetchArtifact org/apache/apache/9/apache-9.pom
+fetchArtifact org/apache/apache/9/apache-9.pom.sha1
+fetchArtifact org/apache/apache/14/apache-14.pom.sha1
+fetchArtifact org/apache/apache/14/apache-14.pom
+fetchArtifact org/apache/apache/13/apache-13.pom
+fetchArtifact org/apache/apache/13/apache-13.pom.sha1
+fetchArtifact org/apache/apache/3/apache-3.pom
+fetchArtifact org/apache/apache/3/apache-3.pom.sha1
+fetchArtifact org/apache/apache/5/apache-5.pom
+fetchArtifact org/apache/apache/5/apache-5.pom.sha1
+fetchArtifact org/apache/apache/6/apache-6.pom.sha1
+fetchArtifact org/apache/apache/6/apache-6.pom
+fetchArtifact org/apache/apache/11/apache-11.pom
+fetchArtifact org/apache/apache/11/apache-11.pom.sha1
+fetchArtifact org/apache/apache/10/apache-10.pom
+fetchArtifact org/apache/apache/10/apache-10.pom.sha1
+fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.pom
+fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.pom.sha1
+fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.jar.sha1
+fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.jar
+fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.pom
+fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar
+fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.pom.sha1
+fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar.sha1
+fetchArtifact org/apache/curator/apache-curator/2.6.0/apache-curator-2.6.0.pom
+fetchArtifact org/apache/curator/apache-curator/2.6.0/apache-curator-2.6.0.pom.sha1
+fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.pom.sha1
+fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.jar
+fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.pom
+fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.jar.sha1
+fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.jar
+fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.jar.sha1
+fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.pom.sha1
+fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.pom
+fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.pom.sha1
+fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.jar
+fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.pom
+fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.jar.sha1
+fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.jar.sha1
+fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.pom.sha1
+fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.pom
+fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.jar
+fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.pom
+fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar.sha1
+fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar
+fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.pom.sha1
+fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.jar.sha1
+fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.pom
+fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.jar
+fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.pom.sha1
+fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.jar
+fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.jar.sha1
+fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.pom.sha1
+fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.pom
+fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.jar
+fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.pom.sha1
+fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.pom
+fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.jar.sha1
+fetchArtifact org/apache/commons/commons-parent/28/commons-parent-28.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/28/commons-parent-28.pom
+fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom
+fetchArtifact org/apache/commons/commons-parent/22/commons-parent-22.pom
+fetchArtifact org/apache/commons/commons-parent/22/commons-parent-22.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom
+fetchArtifact org/apache/commons/commons-parent/24/commons-parent-24.pom
+fetchArtifact org/apache/commons/commons-parent/24/commons-parent-24.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom
+fetchArtifact org/apache/commons/commons-parent/32/commons-parent-32.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/32/commons-parent-32.pom
+fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom
+fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/18/commons-parent-18.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/18/commons-parent-18.pom
+fetchArtifact org/apache/commons/commons-parent/11/commons-parent-11.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/11/commons-parent-11.pom
+fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.pom.sha1
+fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar.sha1
+fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar
+fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.pom
+fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.pom
+fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.jar
+fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.pom.sha1
+fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.jar.sha1
+fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.jar
+fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.pom.sha1
+fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.pom
+fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.jar.sha1
+fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
+fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom
+fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.pom
+fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar
+fetchArtifact org/codehaus/plexus/plexus-compilers/1.8.1/plexus-compilers-1.8.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compilers/1.8.1/plexus-compilers-1.8.1.pom
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar
+fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.pom
+fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom
+fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom
+fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar
+fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.jar
+fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.pom
+fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom
+fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom
+fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
+fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom
+fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
+fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom
+fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
+fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom
+fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler/1.8.1/plexus-compiler-1.8.1.pom
+fetchArtifact org/codehaus/plexus/plexus-compiler/1.8.1/plexus-compiler-1.8.1.pom.sha1
+fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.pom.sha1
+fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.pom
+fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.jar.sha1
+fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.jar
+fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.jar
+fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.jar.sha1
+fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.pom
+fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.pom.sha1
+fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom.sha1
+fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom
+fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
+fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar.sha1
+fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom.sha1
+fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom
+fetchArtifact org/eclipse/jetty/jetty-server/8.1.11.v20130520/jetty-server-8.1.11.v20130520.pom
+fetchArtifact org/eclipse/jetty/jetty-server/8.1.11.v20130520/jetty-server-8.1.11.v20130520.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.jar
+fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.pom
+fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.jar.sha1
+fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.11.v20130520/jetty-continuation-8.1.11.v20130520.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.11.v20130520/jetty-continuation-8.1.11.v20130520.pom
+fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.pom
+fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.jar
+fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.jar.sha1
+fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.jar
+fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.jar.sha1
+fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.pom
+fetchArtifact org/eclipse/jetty/jetty-util/8.1.11.v20130520/jetty-util-8.1.11.v20130520.pom
+fetchArtifact org/eclipse/jetty/jetty-util/8.1.11.v20130520/jetty-util-8.1.11.v20130520.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.jar.sha1
+fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.pom
+fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.jar
+fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-project/8.1.11.v20130520/jetty-project-8.1.11.v20130520.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-project/8.1.11.v20130520/jetty-project-8.1.11.v20130520.pom
+fetchArtifact org/eclipse/jetty/jetty-project/8.1.15.v20140411/jetty-project-8.1.15.v20140411.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-project/8.1.15.v20140411/jetty-project-8.1.15.v20140411.pom
+fetchArtifact org/eclipse/jetty/jetty-http/8.1.11.v20130520/jetty-http-8.1.11.v20130520.pom
+fetchArtifact org/eclipse/jetty/jetty-http/8.1.11.v20130520/jetty-http-8.1.11.v20130520.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.jar.sha1
+fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.jar
+fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.pom
+fetchArtifact org/eclipse/jetty/jetty-parent/20/jetty-parent-20.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-parent/20/jetty-parent-20.pom
+fetchArtifact org/eclipse/jetty/jetty-parent/18/jetty-parent-18.pom
+fetchArtifact org/eclipse/jetty/jetty-parent/18/jetty-parent-18.pom.sha1
+fetchArtifact org/eclipse/jetty/orbit/jetty-orbit/1/jetty-orbit-1.pom
+fetchArtifact org/eclipse/jetty/orbit/jetty-orbit/1/jetty-orbit-1.pom.sha1
+fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar
+fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.pom.sha1
+fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar.sha1
+fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.pom
+fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.pom
+fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.jar
+fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.jar.sha1
+fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-io/8.1.11.v20130520/jetty-io-8.1.11.v20130520.pom
+fetchArtifact org/eclipse/jetty/jetty-io/8.1.11.v20130520/jetty-io-8.1.11.v20130520.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.pom
+fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.pom.sha1
+fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.jar
+fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.jar.sha1
+fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.pom.sha1
+fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.pom
+fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.jar
+fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.jar.sha1
+fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.jar.sha1
+fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.pom.sha1
+fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.jar
+fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.pom
+fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.jar
+fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.pom
+fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.jar.sha1
+fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.pom.sha1
+fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
+fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
+fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom.sha1
+fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar.sha1
+fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom
+fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom.sha1
+fetchArtifact org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
+fetchArtifact org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom.sha1
+fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom.sha1
+fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom
+fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1
+fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom
+fetchArtifact org/sonatype/oss/oss-parent/5/oss-parent-5.pom
+fetchArtifact org/sonatype/oss/oss-parent/5/oss-parent-5.pom.sha1
+fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom.sha1
+fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom
+fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
+fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar.sha1
+fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom.sha1
+fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom
+fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom.sha1
+fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom
+fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom.sha1
+fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom
+fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom
+fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom
+fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom
+fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom
+fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom
+fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom
+fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar.sha1
+fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
+fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom
+fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar.sha1
+fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
+fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom
+fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom.sha1
+fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom
+fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom.sha1
+fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom.sha1
+fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom
+fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom
+fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom.sha1
+fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom.sha1
+fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom
+fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar
+fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar.sha1
+fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom
+fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom.sha1
+fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom.sha1
+fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
+fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom
+fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar.sha1
+fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom.sha1
+fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar.sha1
+fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
+fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom
+fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom
+fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom
+fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom
+fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom
+fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom
+fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar.sha1
+fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom.sha1
+fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom
+fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar
+fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.pom
+fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.pom.sha1
+fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar.sha1
+fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar
+fetchArtifact org/ow2/asm/asm-parent/5.0.2/asm-parent-5.0.2.pom.sha1
+fetchArtifact org/ow2/asm/asm-parent/5.0.2/asm-parent-5.0.2.pom
+fetchArtifact org/ow2/asm/asm-parent/4.1/asm-parent-4.1.pom
+fetchArtifact org/ow2/asm/asm-parent/4.1/asm-parent-4.1.pom.sha1
+fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.jar
+fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.pom.sha1
+fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.pom
+fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.jar.sha1
+fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.pom
+fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.jar
+fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.pom.sha1
+fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.jar.sha1
+fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.jar.sha1
+fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.pom.sha1
+fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.pom
+fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.jar
+fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.jar.sha1
+fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.pom.sha1
+fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.pom
+fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.jar
+fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.pom
+fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.jar
+fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.pom.sha1
+fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.jar.sha1
+fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.jar
+fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.pom
+fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.pom.sha1
+fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.jar.sha1
+fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.jar
+fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.jar.sha1
+fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.pom
+fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.pom.sha1
+fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.jar
+fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.pom.sha1
+fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.jar.sha1
+fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.pom
+fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.pom
+fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.jar
+fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.jar.sha1
+fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.pom.sha1
+fetchArtifact org/ow2/ow2/1.3/ow2-1.3.pom.sha1
+fetchArtifact org/ow2/ow2/1.3/ow2-1.3.pom
+fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.jar.sha1
+fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.jar
+fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.pom
+fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.pom.sha1
+fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.jar.sha1
+fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.pom
+fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.pom.sha1
+fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.jar
+fetchArtifact junit/junit/4.11/junit-4.11.jar
+fetchArtifact junit/junit/4.11/junit-4.11.pom
+fetchArtifact junit/junit/4.11/junit-4.11.jar.sha1
+fetchArtifact junit/junit/4.11/junit-4.11.pom.sha1
+fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom
+fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar
+fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar.sha1
+fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom.sha1
+fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom
+fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom.sha1
+fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.pom
+fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.jar.sha1
+fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.jar
+fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.pom.sha1
+fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
+fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom.sha1
+fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom
+fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar.sha1
+fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom
+fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom.sha1
+fetchArtifact javax/inject/javax.inject/1/javax.inject-1.pom
+fetchArtifact javax/inject/javax.inject/1/javax.inject-1.jar
+fetchArtifact javax/inject/javax.inject/1/javax.inject-1.jar.sha1
+fetchArtifact javax/inject/javax.inject/1/javax.inject-1.pom.sha1
+fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.pom.sha1
+fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar.sha1
+fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar
+fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.pom
+fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.pom
+fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar.sha1
+fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.pom.sha1
+fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
+fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.pom.sha1
+fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.jar
+fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.pom
+fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.jar.sha1
+fetchArtifact javax/activation/activation/1.1/activation-1.1.pom.sha1
+fetchArtifact javax/activation/activation/1.1/activation-1.1.pom
+fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.jar.sha1
+fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.pom
+fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.jar
+fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.pom.sha1
+fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar.sha1
+fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.sha1
+fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar
+fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom
+fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.jar
+fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.pom
+fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.jar.sha1
+fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.pom.sha1
+fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.jar.sha1
+fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.pom
+fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.pom.sha1
+fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.jar
+fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom
+fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar.sha1
+fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom.sha1
+fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar
diff --git a/nixpkgs/pkgs/applications/networking/cluster/click/default.nix b/nixpkgs/pkgs/applications/networking/cluster/click/default.nix
new file mode 100644
index 000000000000..2c7a026b277e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/click/default.nix
@@ -0,0 +1,29 @@
+{ darwin, fetchFromGitHub, rustPlatform, stdenv }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "click-${version}";
+  version = "0.3.2";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "databricks";
+    repo = "click";
+    sha256 = "0sbj41kypn637z1w115w2h5v6bxz3y6w5ikgpx3ihsh89lkc19d2";
+  };
+
+  cargoSha256 = "05asqp5312a1g26pvf5hgqhc4kj3iw2hdvml2ycvga33sxb7zm7r";
+
+  patches = [ ./fix_cargo_lock_version.patch ];
+
+  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/nixpkgs/pkgs/applications/networking/cluster/click/fix_cargo_lock_version.patch b/nixpkgs/pkgs/applications/networking/cluster/click/fix_cargo_lock_version.patch
new file mode 100644
index 000000000000..bc4db7ef7c12
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/click/fix_cargo_lock_version.patch
@@ -0,0 +1,13 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index ff80350..c86c6fe 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -111,7 +111,7 @@ dependencies = [
+
+ [[package]]
+ name = "click"
+-version = "0.3.1"
++version = "0.3.2"
+ dependencies = [
+  "ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "base64 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
new file mode 100644
index 000000000000..3f342ea04a03
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+  name = "cni-${version}";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "containernetworking";
+    repo = "cni";
+    rev = "v${version}";
+    sha256 = "00ajs2r5r2z3l0vqwxrcwhjfc9px12qbcv5vnvs2mdipvvls1y2y";
+  };
+
+  goPackagePath = "github.com/containernetworking/cni";
+
+  buildPhase = ''
+    cd "go/src/${goPackagePath}"
+    patchShebangs build.sh
+    ./build.sh
+  '';
+
+  installPhase = ''
+    install -Dm555 bin/cnitool $bin/bin/cnitool
+  '';
+
+  meta = with stdenv.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" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
new file mode 100644
index 000000000000..27e0a038310b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchFromGitHub, go, removeReferencesTo }:
+
+stdenv.mkDerivation rec {
+  name = "cni-plugins-${version}";
+  version = "0.7.4";
+
+  src = fetchFromGitHub {
+    owner = "containernetworking";
+    repo = "plugins";
+    rev = "v${version}";
+    sha256 = "1sywllwnr6lc812sgkqjdd3y10r82shl88dlnwgnbgzs738q2vp2";
+  };
+
+  buildInputs = [ removeReferencesTo go ];
+
+  GOCACHE = "off";
+
+  buildPhase = ''
+    patchShebangs build.sh
+    ./build.sh
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv bin/* $out/bin
+  '';
+
+  preFixup = ''
+    find $out/bin -type f -exec remove-references-to -t ${go} '{}' +
+  '';
+
+  meta = with lib; {
+    description = "Some standard networking plugins, maintained by the CNI team";
+    homepage = https://github.com/containernetworking/plugins;
+    license = licenses.asl20;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ cstrahan ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix
new file mode 100644
index 000000000000..d67d9d5851cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/default.nix
@@ -0,0 +1,33 @@
+# This file was generated by go2nix.
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "machine-${version}";
+  version = "0.14.0";
+
+  goPackagePath = "github.com/docker/machine";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "docker";
+    repo = "machine";
+    sha256 = "0hd5sklmvkhhpfn318hq9w0f7x14165h1l2mdn9iv4447z1iibff";
+  };
+
+  postInstall = ''
+    mkdir -p $bin/share/bash-completion/completions/
+    cp go/src/github.com/docker/machine/contrib/completion/bash/* $bin/share/bash-completion/completions/
+  '';
+
+  postFixup =  ''
+    mv $bin/bin/cmd $bin/bin/docker-machine
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm-deps.nix
new file mode 100644
index 000000000000..e321b2c1b0ac
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm.nix
new file mode 100644
index 000000000000..181663513d3e
--- /dev/null
+++ b/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 {
+  name = "docker-machine-kvm-${version}";
+  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/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
new file mode 100644
index 000000000000..41465766489e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libvirt, pkgconfig, minikube }:
+
+buildGoPackage rec {
+  pname = "docker-machine-kvm2";
+  name = "${pname}-${version}";
+  version = minikube.version;
+
+  goPackagePath = "k8s.io/minikube";
+  subPackages = [ "cmd/drivers/kvm" ];
+
+  src = minikube.src;
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libvirt ];
+
+  preBuild = ''
+    export buildFlagsArray=(-ldflags="-X k8s.io/minikube/pkg/drivers/kvm/version.VERSION=v${version}")
+  '';
+
+  postInstall = ''
+    mv $bin/bin/kvm $bin/bin/docker-machine-driver-kvm2
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/kubernetes/minikube/blob/master/docs/drivers.md;
+    description = "KVM2 driver for docker-machine.";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tadfisher ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix
new file mode 100644
index 000000000000..99cb7b98f5cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve-deps.nix
@@ -0,0 +1,21 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/docker/machine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docker/machine";
+      rev = "5b274558ea6ca822c06dd407a4e774a0105c3f60";
+      sha256 = "1wdq9h4bx7awgclh969gvmcnl9jvgv7ldfklnclh5iv47mi7q22d";
+    };
+  }
+  {
+    goPackagePath = "github.com/zchee/libhyperkit";
+    fetch = {
+      type = "git";
+      url = "https://github.com/zchee/libhyperkit";
+      rev = "1a19a7693fac32b46ec6cdd22da6fbec974447fc";
+      sha256 = "119f5gcl24znwnmi837jk667asd3lirx32jldpd4mbyb3sm9nz24";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
new file mode 100644
index 000000000000..6b0440eb84ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/xhyve.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, Hypervisor, vmnet }:
+
+buildGoPackage rec {
+  name = "docker-machine-xhyve-${version}";
+  version = "0.3.3";
+
+  goPackagePath = "github.com/zchee/docker-machine-driver-xhyve";
+  goDeps = ./xhyve-deps.nix;
+
+  src = fetchFromGitHub {
+    rev    = "v${version}";
+    owner  = "zchee";
+    repo   = "docker-machine-driver-xhyve";
+    sha256 = "0rj6pyqp4yv4j28bglqjs95rip5i77vv8mrkmqv1rxrsl3i8aqqy";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ Hypervisor vmnet ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/zchee/docker-machine-driver-xhyve;
+    description = "Xhyve driver for docker-machine.";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ periklis ];
+    platforms = platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
new file mode 100644
index 000000000000..e5f437a89ad9
--- /dev/null
+++ b/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.6.2";
+      sha256 = "17fsr6yv1ayr7fw0r4pjlbpkn9ypzjs4brqndzr3gbzwrdc44arw";
+    };
+  };
+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
+
+    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/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix b/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix
new file mode 100644
index 000000000000..0c210dcc535b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/habitat/default.nix
@@ -0,0 +1,40 @@
+{ lib, fetchFromGitHub, rustPlatform, pkgconfig
+, libsodium, libarchive, openssl }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "habitat-${version}";
+  version = "0.30.2";
+
+  src = fetchFromGitHub {
+    owner = "habitat-sh";
+    repo = "habitat";
+    rev = version;
+    sha256 = "0pqrm85pd9hqn5fwqjbyyrrfh4k7q9mi9qy9hm8yigk5l8mw44y1";
+  };
+
+  cargoSha256 = "1ahfm5agvabqqqgjsyjb95xxbc7mng1mdyclcakwp1m1qdkxx9p0";
+
+  buildInputs = [ libsodium libarchive openssl ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  cargoBuildFlags = ["--package hab"];
+
+  checkPhase = ''
+    runHook preCheck
+    echo "Running cargo test"
+    cargo test --package hab
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "An application automation framework";
+    homepage = https://www.habitat.sh;
+    license = licenses.asl20;
+    maintainers = [ maintainers.rushmorem ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    broken = true; # mark temporary as broken due git dependencies
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
new file mode 100644
index 000000000000..dfe6513bf0c1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -0,0 +1,155 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, which, maven, cmake, jre, bash, coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl }:
+
+let
+  common = { version, sha256, dependencies-sha256, tomcat }:
+    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 configurePhase;
+          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 openssl 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
+        '';
+        configurePhase = "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 rec {
+        name = "hadoop-${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 [ openssl 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;
+  };
+  hadoop_2_8 = common {
+    version = "2.8.4";
+    sha256 = "16c3ljhrzibkjn3y1bmjxdgf0kn60l23ay5hqpp7vpbnqx52x68w";
+    dependencies-sha256 = "1j4f461487fydgr5978nnm245ksv4xbvskfr8pbmfhcyss6b7w03";
+    tomcat = tomcat_6_0_48;
+  };
+  hadoop_2_9 = common {
+    version = "2.9.1";
+    sha256 = "0qgmpfbpv7f521fkjy5ldzdb4lwiblhs0hyl8qy041ws17y5x7d7";
+    dependencies-sha256 = "1d5i8jj5y746rrqb9lscycnd7acmxlkz64ydsiyqsh5cdqgy2x7x";
+    tomcat = tomcat_6_0_48;
+  };
+  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/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
new file mode 100644
index 000000000000..c03af2e9683d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  version = "2.11.0";
+  name = "helm-${version}";
+
+  src = fetchFromGitHub {
+    owner = "helm";
+    repo = "helm";
+    rev = "v${version}";
+    sha256 = "1z810a6mxyrrw4i908dip8aqsj95c0kmv6xpb1wwhskg1zmf85wk";
+  };
+
+  goPackagePath = "k8s.io/helm";
+  subPackages = [ "cmd/helm" "cmd/tiller" "cmd/rudder" ];
+
+  goDeps = ./deps.nix;
+
+  # Thsese are the original flags from the helm makefile
+  buildFlagsArray = ''
+    -ldflags=-X k8s.io/helm/pkg/version.Version=v${version}
+    -w
+    -s
+  '';
+
+  preBuild = ''
+    # This is a hack(?) to flatten the dependency tree the same way glide or dep would
+    # Otherwise you'll get errors like
+    # have DeepCopyObject() "k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime".Object
+    # want DeepCopyObject() "k8s.io/apimachinery/pkg/runtime".Object
+    rm -rf $NIX_BUILD_TOP/go/src/k8s.io/kubernetes/vendor
+    rm -rf $NIX_BUILD_TOP/go/src/k8s.io/apiextensions-apiserver/vendor
+  '';
+
+  postInstall = ''
+    mkdir -p $bin/share/bash-completion/completions
+    mkdir -p $bin/share/zsh/site-functions
+    $bin/bin/helm completion bash > $bin/share/bash-completion/completions/helm
+    $bin/bin/helm completion zsh > $bin/share/zsh/site-functions/_helm
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/kubernetes/helm;
+    description = "A package manager for kubernetes";
+    license = licenses.asl20;
+    maintainers = [ maintainers.rlupton20 maintainers.edude03 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/deps.nix
new file mode 100644
index 000000000000..36bd3406f5bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/deps.nix
@@ -0,0 +1,840 @@
+# 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 =  "3b1ae45394a234c385be014e9a488f2bb6eef821";
+      sha256 = "0alb495ql6s02kb6lxcbnlkdcmhixyl8zv11sgrkhsk1bckzh119";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Azure/go-ansiterm";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Azure/go-ansiterm";
+      rev =  "19f72df4d05d31cbe1c56bfc8045c96babff6c7e";
+      sha256 = "0663w5m5qlidpj17s5pqp6rhl0phw7vypf104n04dvdy5nd418ix";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Azure/go-autorest";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Azure/go-autorest";
+      rev =  "1ff28809256a84bb6966640ff3d0371af82ccba4";
+      sha256 = "0sxvj2j1833bqwxvhq3wq3jgq73rnb81pnzvl0x3y1m0hzpaf2zv";
+    };
+  }
+  {
+    goPackagePath  = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev =  "b26d9c308763d68093482582cea63d69be07a0f0";
+      sha256 = "0k7v2i1d2d6si8gswn83qb84czhhia53v2wdy33yz9ppdidxk0ry";
+    };
+  }
+  {
+    goPackagePath  = "github.com/MakeNowJust/heredoc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/MakeNowJust/heredoc";
+      rev =  "bb23615498cded5e105af4ce27de75b089cbe851";
+      sha256 = "17m780i9afj3sbmcrgwgzarfly4x9376w56qblkqnzdkv6vps22i";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Masterminds/semver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/semver";
+      rev =  "517734cc7d6470c0d07130e40fd40bdeb9bcd3fd";
+      sha256 = "1625b5sxpmlz60jw67j1ljfcc09d4lhxg3z6gc4am8s2rrdgwij6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Masterminds/sprig";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/sprig";
+      rev =  "15f9564e7e9cf0da02a48e0d25f12a7b83559aa6";
+      sha256 = "1k5pfx9hxzb70kh73a009ikr3vqlq0jvzvbyvxz9x7a7yc4r5b14";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Masterminds/vcs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/vcs";
+      rev =  "3084677c2c188840777bff30054f2b553729d329";
+      sha256 = "1062m73h0pp5d0574lf6px4jsjgywnsbkw50inxx3zal5r185ydm";
+    };
+  }
+  {
+    goPackagePath  = "github.com/PuerkitoBio/purell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/PuerkitoBio/purell";
+      rev =  "8a290539e2e8629dbc4e6bad948158f790ec31f4";
+      sha256 = "1qhsy1nm96b9kb63svkvkqmmw15xg6irwcysisxdgzk64adfwqv1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/PuerkitoBio/urlesc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/PuerkitoBio/urlesc";
+      rev =  "5bd2802263f21d8788851d5305584c82a5c75d7e";
+      sha256 = "15y5r3asvm7196m3nza5xvdvlc2k11p6lfs6hi917hl7r9vgi6mp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/aokoli/goutils";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aokoli/goutils";
+      rev =  "9c37978a95bd5c709a15883b6242714ea6709e64";
+      sha256 = "1c51qgk4pjc8c776h7589c3d14791h86f1yj3ykg4q7vlcf9xrnr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/asaskevich/govalidator";
+    fetch = {
+      type = "git";
+      url = "https://github.com/asaskevich/govalidator";
+      rev =  "7664702784775e51966f0885f5cd27435916517b";
+      sha256 = "1lmynw9vkgrxv7nh60wdywv0nx4gjlkiar433wydhpc2h3m5q968";
+    };
+  }
+  {
+    goPackagePath  = "github.com/beorn7/perks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/beorn7/perks";
+      rev =  "3ac7bf7a47d159a033b107610db8a1b6575507a4";
+      sha256 = "1qc3l4r818xpvrhshh1sisc5lvl9479qspcfcdbivdyh0apah83r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/chai2010/gettext-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/chai2010/gettext-go";
+      rev =  "bf70f2a70fb1b1f36d90d671a72795984eab0fcb";
+      sha256 = "0bwjwvjl7zqm7kxram1rzz0ri3h897kiin13ljy9hx3fzz1i9lml";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cpuguy83/go-md2man";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cpuguy83/go-md2man";
+      rev =  "71acacd42f85e5e82f70a55327789582a5200a90";
+      sha256 = "0hmkrq4gdzb6mwllmh4p1y7vrz7hyr8xqagpk9nyr5dhygvnnq2v";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cyphar/filepath-securejoin";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cyphar/filepath-securejoin";
+      rev =  "a261ee33d7a517f054effbf451841abaafe3e0fd";
+      sha256 = "0id32zjb92wm569m29nfrzz5mw9z1glr3klayr6j134pp4h1sgq4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "782f4967f2dc4564575ca782fe2d04090b5faca8";
+      sha256 = "1ypijjawqc0xgmgim42260ibcyclfgfizicz5cbvndw4plqfsswk";
+    };
+  }
+  {
+    goPackagePath  = "github.com/dgrijalva/jwt-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dgrijalva/jwt-go";
+      rev =  "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e";
+      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/docker/distribution";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docker/distribution";
+      rev =  "edc3ab29cdff8694dd6feb85cfeb4b5f1b38ed9c";
+      sha256 = "1nqjaq1q6fs3c0avpb02sib0a906xfbk3m74hk2mqjdbyx9y8b4m";
+    };
+  }
+  {
+    goPackagePath  = "github.com/docker/docker";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docker/docker";
+      rev =  "4f3616fb1c112e206b88cb7a9922bf49067a7756";
+      sha256 = "0zmsqm1lkwggfqgy2rw34g4g2jlvr6mvcsh65fmpdb30l65iaqzf";
+    };
+  }
+  {
+    goPackagePath  = "github.com/docker/go-connections";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docker/go-connections";
+      rev =  "3ede32e2033de7505e6500d6c868c2b9ed9f169d";
+      sha256 = "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/docker/go-units";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docker/go-units";
+      rev =  "9e638d38cf6977a37a8ea0078f3ee75a7cdb2dd1";
+      sha256 = "1sqwvcszxqpv77xf2d8fxvryxphdwj9v8f93231wpnk9kpilhyii";
+    };
+  }
+  {
+    goPackagePath  = "github.com/docker/spdystream";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docker/spdystream";
+      rev =  "449fdfce4d962303d702fec724ef0ad181c92528";
+      sha256 = "1412cpiis971iq1kxrirzirhj2708ispjh0x0dh879b66x8507sl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/evanphx/json-patch";
+    fetch = {
+      type = "git";
+      url = "https://github.com/evanphx/json-patch";
+      rev =  "94e38aa1586e8a6c8a75770bddf5ff84c48a106b";
+      sha256 = "1c9gzc3gb76lm5famc0345y90is1lyffn39bmdr0xk19462f8av5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/exponent-io/jsonpath";
+    fetch = {
+      type = "git";
+      url = "https://github.com/exponent-io/jsonpath";
+      rev =  "d6023ce2651d8eafb5c75bb0c7167536102ec9f5";
+      sha256 = "1qkzaxsjs7yg1672sk67nr119j7jc4751yzgii0j3nbipjv321kc";
+    };
+  }
+  {
+    goPackagePath  = "github.com/fatih/camelcase";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/camelcase";
+      rev =  "f6a740d52f961c60348ebb109adde9f4635d7540";
+      sha256 = "15vb86adns1izvbzjw0lmmzrwlarhbxw5qalhx10vzzdx73wh4ai";
+    };
+  }
+  {
+    goPackagePath  = "github.com/ghodss/yaml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ghodss/yaml";
+      rev =  "73d445a93680fa1a78ae23a5839bad48f32ba1ee";
+      sha256 = "0pg53ky4sy3sp9j4n7vgf1p3gw4nbckwqfldcmmi9rf13kjh0mr7";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-openapi/jsonpointer";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-openapi/jsonpointer";
+      rev =  "46af16f9f7b149af66e5d1bd010e3574dc06de98";
+      sha256 = "0w0fphmdycjzbsm1vppdcjc9aqinkcdzcq3pxikdvdqh5p791gsc";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-openapi/jsonreference";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-openapi/jsonreference";
+      rev =  "13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272";
+      sha256 = "1fh4xcl9ijww4bdq656sx981d57w2c9zx5148jsxlsg4bsvxmwis";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-openapi/spec";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-openapi/spec";
+      rev =  "1de3e0542de65ad8d75452a595886fdd0befb363";
+      sha256 = "13i9y71fk9vr2abvpsk04k55il32ly3fjinvl1zlamh9mi2mdzf4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-openapi/swag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-openapi/swag";
+      rev =  "f3f9494671f93fcff853e3c6e9e948b3eb71e590";
+      sha256 = "13lqn4xqy9vma9aqsjb0fzfzi0q8l6dmg65sjxqdxf3q6gzkvmjy";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gobwas/glob";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gobwas/glob";
+      rev =  "5ccd90ef52e1e632236f7326478d4faa74f99438";
+      sha256 = "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z";
+    };
+  }
+  {
+    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 =  "44145f04b68cf362d9c4df2182967c2275eaefed";
+      sha256 = "1k7sf6qmpgm0iw81gx2dwggf9di6lgw0n54mni7862hihwfrb5rq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/groupcache";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/groupcache";
+      rev =  "02826c3e79038b59d737d3b1c0a1d937f71a4433";
+      sha256 = "0w46bsllddfij66nrg8jbfjsr54birvfww8a2fj9fmgyig5syn2x";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9";
+      sha256 = "1ch3czyzq5abl6zm1l0dfsi09xj43ql9jcbmbhfhxz954pw03v3v";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/btree";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/btree";
+      rev =  "7d79101e329e5a3adf994758c578dab82b90c017";
+      sha256 = "1c1hsy5s2pfawg3l9954jmqmy4yc2zp3f7i87m00km2yqgb8xpd0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/gofuzz";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/gofuzz";
+      rev =  "44d81051d367757e1c7c6a5a86423ece9afcf63c";
+      sha256 = "0ivq2sl2fv8x0xxrcys27c42s8yq7irgl7lp6l0im9i7ky63nk0i";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/uuid";
+      rev =  "064e2069ce9c359c118179501254f67d7d37ba24";
+      sha256 = "1b1ibx3rbiv7xwa9kz4b4zpp1fza5cjnn8v6749b4vrkjjmp3rqb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/googleapis/gnostic";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/gnostic";
+      rev =  "0c5108395e2debce0d731cf0287ddf7242066aba";
+      sha256 = "0jf3cp5clli88gpjf24r6wxbkvngnc1kf59d4cgjczsn2wasvsfc";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gophercloud/gophercloud";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gophercloud/gophercloud";
+      rev =  "781450b3c4fcb4f5182bcc5133adb4b2e4a09d1d";
+      sha256 = "0xvapk94p1259k8arvwyvhwvcnzma9vdg12g750cgz2ghkzvfhff";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gosuri/uitable";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gosuri/uitable";
+      rev =  "36ee7e946282a3fb1cfecd476ddc9b35d8847e42";
+      sha256 = "1ff68fv9g1df91fwbrcq83ar429gb4fi2vsd22zjmhvmbqx2zkil";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gregjones/httpcache";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gregjones/httpcache";
+      rev =  "787624de3eb7bd915c329cba748687a3b22666a6";
+      sha256 = "1zqlg9pkj7r6fqw7wv3ywvbz3bh0hvzifs2scgcraj812q5189w5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/grpc-ecosystem/go-grpc-prometheus";
+    fetch = {
+      type = "git";
+      url = "https://github.com/grpc-ecosystem/go-grpc-prometheus";
+      rev =  "0c1b191dbfe51efdabe3c14b9f6f3b96429e0722";
+      sha256 = "0d7vybd4yy9a9clk03578xdpyhifxsy3qv6iiglrrnblbmpgksjc";
+    };
+  }
+  {
+    goPackagePath  = "github.com/hashicorp/golang-lru";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/golang-lru";
+      rev =  "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4";
+      sha256 = "1z3h4aca31l3qs0inqr5l49vrlycpjm7vq1l9nh1mp0mb2ij0kmp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/huandu/xstrings";
+    fetch = {
+      type = "git";
+      url = "https://github.com/huandu/xstrings";
+      rev =  "3959339b333561bf62a38b424fd41517c2c90f40";
+      sha256 = "0f1jyd80grpr88gwhljx2x0xgsyzw07807n4z4axxxlybh5f0nh1";
+    };
+  }
+  {
+    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/mailru/easyjson";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mailru/easyjson";
+      rev =  "2f5df55504ebc322e4d52d34df6a1f5b503bf26d";
+      sha256 = "0d9m8kyhbawa452vnwn255xxnh6pkp3im0d2310rw1k14nh3yh1p";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev =  "d6bea18f789704b5f83375793155289da36a3c7f";
+      sha256 = "1hnigpn7rjbwd1ircxkyx9hvi0xmxr32b2jdy2jzw6b3jmcnz1fs";
+    };
+  }
+  {
+    goPackagePath  = "github.com/matttproud/golang_protobuf_extensions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matttproud/golang_protobuf_extensions";
+      rev =  "fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a";
+      sha256 = "0ajg41h6402big484drvm72wvid1af2sffw0qkzbmpy04lq68ahj";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/go-wordwrap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-wordwrap";
+      rev =  "ad45545899c7b13c020ea92b2072220eefad42b8";
+      sha256 = "0ny1ddngvwfj3njn7pmqnf3l903lw73ynddw15x8ymp7hidv27v9";
+    };
+  }
+  {
+    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/opencontainers/go-digest";
+    fetch = {
+      type = "git";
+      url = "https://github.com/opencontainers/go-digest";
+      rev =  "a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb";
+      sha256 = "1paz3na2xkhi10p5bk7f7gbh5yykfgr9f9i2gcc13rb461yq6fmg";
+    };
+  }
+  {
+    goPackagePath  = "github.com/opencontainers/image-spec";
+    fetch = {
+      type = "git";
+      url = "https://github.com/opencontainers/image-spec";
+      rev =  "372ad780f63454fbbbbcc7cf80e5b90245c13e13";
+      sha256 = "0wajddbm49bfybkab9midilg18zvdvvsffwhkq7bpp7inj4jnsvs";
+    };
+  }
+  {
+    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 =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev =  "d8ed2627bdf02c080bf22230dbb337003b7aba2d";
+      sha256 = "0w1jp4k4zbnrxh3jvh8fgbjgqpf2hg31pbj8fb32kh26px9ldpbs";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/client_golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_golang";
+      rev =  "c5b7fccd204277076155f10851dad72b76a49317";
+      sha256 = "1xqny3147g12n4j03kxm8s9mvdbs3ln6i56c655mybrn9jjy48kd";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/client_model";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_model";
+      rev =  "fa8ad6fec33561be4280a8f0514318c79d7f6cb6";
+      sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/common";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/common";
+      rev =  "13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207";
+      sha256 = "0i6mpcnsawi7f00rfmjfjq8llaplyzq4xrkrawlcgfd762p5hnp8";
+    };
+  }
+  {
+    goPackagePath  = "github.com/prometheus/procfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/procfs";
+      rev =  "65c1f6f8f0fc1e2185eb9863a3bc751496404259";
+      sha256 = "0jfzmr8642hr04naim1maa3wklxvcxklykri2z7k4ayizc974lkq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/russross/blackfriday";
+    fetch = {
+      type = "git";
+      url = "https://github.com/russross/blackfriday";
+      rev =  "300106c228d52c8941d4b3de6054a6062a86dda3";
+      sha256 = "1bcqwb9lk2sijn5q3kqp7sadhh0ysbxlj5bxjspk9yp5bp733cbh";
+    };
+  }
+  {
+    goPackagePath  = "github.com/shurcooL/sanitized_anchor_name";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/sanitized_anchor_name";
+      rev =  "10ef21a441db47d8b13ebcc5fd2310f636973c77";
+      sha256 = "1cnbzcf47cn796rcjpph1s64qrabhkv5dn9sbynsy7m9zdwr5f01";
+    };
+  }
+  {
+    goPackagePath  = "github.com/sirupsen/logrus";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sirupsen/logrus";
+      rev =  "89742aefa4b206dcf400792f3bd35b542998eb3b";
+      sha256 = "0hk7fabx59msg2y0iik6xvfp80s73ybrwlcshbm9ds91iqbkcxi6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/cobra";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cobra";
+      rev =  "c439c4fa093711d42e1b01acb1235b52004753c1";
+      sha256 = "14v5vhb180yzaknxnm8j4n9jai58b0y2nzrqzpdq7bj9slsga1vd";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/pflag";
+      rev =  "583c0c0531f06d5278b7d917446061adc344b5cd";
+      sha256 = "0nr4mdpfhhk94hq4ymn5b2sxc47b29p1akxd8b0hx4dvdybmipb5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev =  "e3a8ff8ce36581f87a15341206f205b1da467059";
+      sha256 = "179k26lcgafkbjylbhgj2f5pnh52bmv19rr1w95gca944blw8yga";
+    };
+  }
+  {
+    goPackagePath  = "github.com/technosophos/moniker";
+    fetch = {
+      type = "git";
+      url = "https://github.com/technosophos/moniker";
+      rev =  "a5dbd03a2245d554160e3ae6bfdcf969fe58b431";
+      sha256 = "1z273gvbwr09lcxwd10wyvxmxjln93r952sr1w9hqxcgc1f8l3vl";
+    };
+  }
+  {
+    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 =  "43eea11bc92608addb41b8a406b0407495c106f6";
+      sha256 = "0k9wy278f5753d130p8asva2g573vi6wviwkxwwnpxni118knq1l";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev =  "b19bf474d317b857955b12035d2c5acb57ce8b01";
+      sha256 = "0wc8csaafp0ps9jb2hdk8d6xpyw1axhk1np73h0z17x09zk3ylcr";
+    };
+  }
+  {
+    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 =  "12d5545dc1cfa6047a286d5e853841b6471f4c19";
+      sha256 = "1bv6cjakhi6j3s1bqb3n45qrmvf20qkhwxllvi94jag4i7hd91w8";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/genproto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-genproto";
+      rev =  "09f6ed296fc66555a25fe4ce95173148778dfa85";
+      sha256 = "06x5wr7vjsnvv35rpv7jaklilksqbzsbqk8bxababw8vr6avfwki";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/grpc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/grpc/grpc-go";
+      rev =  "5ffe3083946d5603a0578721101dc8165b1d5b5f";
+      sha256 = "1ij3sy49xfihwpcpiwd68mlfkrk375kdh6r6jlqka18zalxgpaan";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/inf.v0";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-inf/inf";
+      rev =  "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4";
+      sha256 = "0rf3vwyb8aqnac9x9d6ax7z5526c45a16yjm2pvkijr6qgqz8b82";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/square/go-jose.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/square/go-jose";
+      rev =  "f8f38de21b4dcd69d0413faf231983f5fd6634b1";
+      sha256 = "1bjrs3xq3m2ckfds0l4wqf81311ymm9agipmkllbvkadac156dsa";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "670d4cfef0544295bc27a114dbac37980d83185a";
+      sha256 = "182x97q4826cpzybkrl8icyx1n6l1z0kspmbz33fh901v10b6322";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/api";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/api";
+      rev =  "2d6f90ab1293a1fb871cf149423ebb72aa7423aa";
+      sha256 = "1cwrwdm104xd3608b1a5mw6a19w45532p647xdwnyn62rw2f08jx";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/apiextensions-apiserver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/apiextensions-apiserver";
+      rev =  "898b0eda132e1aeac43a459785144ee4bf9b0a2e";
+      sha256 = "1zn4i4wfmk3y36n6mqcidgsp4aqzwy5w9749zjl2bfbwzpk81bcp";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/apimachinery";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/apimachinery";
+      rev =  "103fd098999dc9c0c88536f5c9ad2e5da39373ae";
+      sha256 = "04navnpm59d75dhlz07rmay7m2izrf4m0i9xklxzqg7mlk9g20jc";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/apiserver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/apiserver";
+      rev =  "8b122ec9e3bbab91a262d17a39325e69349dc44d";
+      sha256 = "0qfxjypa10s16sll2a75kn2ddjddr2xsa5rsiaxar3gs5pqvq1h5";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/client-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/client-go";
+      rev =  "59698c7d9724b0f95f9dc9e7f7dfdcc3dfeceb82";
+      sha256 = "0f069d1msdb2x4yvwv0wa3hzanl97csg4hsp1pycxpnqck6qx6qh";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/kube-openapi";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/kube-openapi";
+      rev =  "91cfa479c814065e420cee7ed227db0f63a5854e";
+      sha256 = "0l9yvc7gfa8i4snpv1d13vy03dplzp2jh47rqr3fhiihcz2wx4s7";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/kubernetes";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/kubernetes";
+      rev =  "2e809eed16445fff9dcbfc56e9936cf76ccbdadc";
+      sha256 = "13fzcbjfc5c35gy66nbn1ms63b8bj3g8z7wja0p8dd3yj9lcj68h";
+    };
+  }
+  {
+    goPackagePath  = "k8s.io/utils";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/utils";
+      rev =  "258e2a2fa64568210fbd6267cf1d8fd87c3cb86e";
+      sha256 = "1mbw3q03sflrdgj6l7q3frqzb5f78n0m0gzjm228sy1wnm4c3760";
+    };
+  }
+  {
+    goPackagePath  = "vbom.ml/util";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fvbommel/util";
+      rev =  "db5cfe13f5cc80a4990d98e2e1b0707a4d1a5394";
+      sha256 = "1k9c3ihhkrcmhd26pwd62mp2ll7icr2q65i5pkymnfnhhv40p682";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
new file mode 100644
index 000000000000..73ec998ed8e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildGoPackage, fetchFromGitHub, makeWrapper, kubernetes-helm, ... }:
+
+let version = "0.40.1"; in
+
+buildGoPackage {
+  name = "helmfile-${version}";
+
+  src = fetchFromGitHub {
+    owner = "roboll";
+    repo = "helmfile";
+    rev = "v${version}";
+    sha256 = "02ir10070rpayv9s53anldwjy5ggl268shgf085d188wl6vshaiv";
+  };
+
+  goPackagePath = "github.com/roboll/helmfile";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildFlagsArray = ''
+    -ldflags=
+    -X main.Version=${version}
+  '';
+
+  postInstall = ''
+    wrapProgram $bin/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 ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix
new file mode 100644
index 000000000000..6a83ac34f3f9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "heptio-ark-${version}";
+  version = "0.9.6";
+
+  goPackagePath = "github.com/heptio/ark";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "heptio";
+    repo = "ark";
+    sha256 = "0q353a6f3hvg1gr6rmg8pbqnkrbgjchdr7f6f9503l1qbyyf95fz";
+  };
+
+  postInstall = "rm $bin/bin/generate";
+
+  meta = with stdenv.lib; {
+    description = "A utility for managing disaster recovery, specifically for your Kubernetes cluster resources and persistent volumes";
+    homepage = https://heptio.github.io/ark/;
+    license = licenses.asl20;
+    maintainers = [maintainers.mbode];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
new file mode 100644
index 000000000000..fe2420a719d5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub, ... }:
+
+let version = "0.3.1"; in
+
+buildGoPackage {
+  name = "hetzner-kube-${version}";
+
+  src = fetchFromGitHub {
+    owner = "xetys";
+    repo = "hetzner-kube";
+    rev = "${version}";
+    sha256 = "1xldh1ca8ym8cg3w5cxizmhqxwi5kmiin28f320mxdr28fzljc2w";
+  };
+
+  goPackagePath = "github.com/xetys/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/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix
new file mode 100644
index 000000000000..6274168b3da7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kanif/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, perl , taktuk}:
+
+stdenv.mkDerivation rec {
+  version = "1.2.2";
+  name = "kanif-${version}";
+
+  src = fetchurl {
+    url = "https://gforge.inria.fr/frs/download.php/26773/${name}.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/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
new file mode 100644
index 000000000000..d6e703f79d05
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "kompose-${version}";
+  version = "1.9.0";
+
+  goPackagePath = "github.com/kubernetes/kompose";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "kubernetes";
+    repo = "kompose";
+    sha256 = "00yvih5gn67sw9v30a0rpaj1zag7k02i4biw1p37agxih0aphc86";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A tool to help users who are familiar with docker-compose move to Kubernetes";
+    homepage = https://github.com/kubernetes/kompose;
+    license = licenses.asl20;
+    maintainers = with maintainers; [thpham];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix
new file mode 100644
index 000000000000..1e03efddc062
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name          = "kontemplate-${version}";
+  version       = "1.7.0";
+  goPackagePath = "github.com/tazjin/kontemplate";
+  goDeps        = ./deps.nix;
+
+  src = fetchFromGitHub {
+    owner  = "tazjin";
+    repo   = "kontemplate";
+    rev    = "v${version}";
+    sha256 = "0vzircajhrfq1nykwpl52cqgzyhy51w4ff7ldpgi95w3a4fz1hzz";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix
new file mode 100644
index 000000000000..f0a52f5266ef
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/deps.nix
@@ -0,0 +1,111 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/Masterminds/semver";
+    fetch = {
+      type   = "git";
+      url    = "https://github.com/Masterminds/semver";
+      rev    = "c84ddcca87bf5a941b138dde832a7e20b0159ad8";
+      sha256 = "1dcfdr018a0yszjpvr3wshvq9cc3kvy95l55si556p617wsn1wan";
+    };
+  }
+  {
+    goPackagePath = "github.com/Masterminds/sprig";
+    fetch = {
+      type   = "git";
+      url    = "https://github.com/Masterminds/sprig";
+      rev    = "77bb58b7f5e10889a1195c21b9e7a96ee166f199";
+      sha256 = "0q4g12f3nvda1skz33qzbbdd2vj3gjfwf361hyzlx20s71brk3bk";
+    };
+  }
+  {
+    goPackagePath = "github.com/alecthomas/template";
+    fetch = {
+      type   = "git";
+      url    = "https://github.com/alecthomas/template";
+      rev    = "a0175ee3bccc567396460bf5acd36800cb10c49c";
+      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+    };
+  }
+  {
+    goPackagePath = "github.com/alecthomas/units";
+    fetch = {
+      type   = "git";
+      url    = "https://github.com/alecthomas/units";
+      rev    = "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
+      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+    };
+  }
+  {
+    goPackagePath = "github.com/aokoli/goutils";
+    fetch = {
+      type   = "git";
+      url    = "https://github.com/aokoli/goutils";
+      rev    = "3391d3790d23d03408670993e957e8f408993c34";
+      sha256 = "1yj4yjfwylica31sgj69ygb04p9xxi22kgfxd0j5f58zr8vwww2n";
+    };
+  }
+  {
+    goPackagePath = "github.com/ghodss/yaml";
+    fetch = {
+      type   = "git";
+      url    = "https://github.com/ghodss/yaml";
+      rev    = "e9ed3c6dfb39bb1a32197cb10d527906fe4da4b6";
+      sha256 = "07cf0j3wbsl1gmn175mdgljcarfz4xbqd6pgc7b08a5lcn7zwhjz";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/uuid";
+    fetch = {
+      type   = "git";
+      url    = "https://github.com/google/uuid";
+      rev    = "dec09d789f3dba190787f8b4454c7d3c936fed9e";
+      sha256 = "1hc4w67p6zkh2qk7wm1yrl69jjrjjk615mly5ll4iidn1m4mzi4i";
+    };
+  }
+  {
+    goPackagePath = "github.com/huandu/xstrings";
+    fetch = {
+      type   = "git";
+      url    = "https://github.com/huandu/xstrings";
+      rev    = "7bb0250b58e5c15670406e6f93ffda43281305b1";
+      sha256 = "1fc8q65xvsxpa12p8hcjqap2pf72zqlwpm165js9kwbgm2sf977c";
+    };
+  }
+  {
+    goPackagePath = "github.com/imdario/mergo";
+    fetch = {
+      type   = "git";
+      url    = "https://github.com/imdario/mergo";
+      rev    = "9f23e2d6bd2a77f959b2bf6acdbefd708a83a4a4";
+      sha256 = "1lbzy8p8wv439sqgf0n21q52flf2wbamp6qa1jkyv6an0nc952q7";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type   = "git";
+      url    = "https://go.googlesource.com/crypto";
+      rev    = "de0752318171da717af4ce24d0a2e8626afaeb11";
+      sha256 = "1ps1dl2a5lwr3vbwcy8n4i1v73m567y024sk961fk281phrzp13i";
+    };
+  }
+  {
+    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    = "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
new file mode 100644
index 000000000000..6ffe40d6a3de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
@@ -0,0 +1,45 @@
+
+{ stdenv, buildGoPackage, fetchFromGitHub, go-bindata }:
+
+buildGoPackage rec {
+  name = "kops-${version}";
+  version = "1.10.0";
+
+  goPackagePath = "k8s.io/kops";
+
+  src = fetchFromGitHub {
+    rev = version;
+    owner = "kubernetes";
+    repo = "kops";
+    sha256 = "1ga83sbhvhcazran6xfwgv95sg8ygg2w59vql0yjicj8r2q01vqp";
+  };
+
+  buildInputs = [go-bindata];
+  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 = ''
+    mkdir -p $bin/share/bash-completion/completions
+    mkdir -p $bin/share/zsh/site-functions
+    $bin/bin/kops completion bash > $bin/share/bash-completion/completions/kops
+    $bin/bin/kops completion zsh > $bin/share/zsh/site-functions/_kops
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Easiest way to get a production Kubernetes up and running";
+    homepage = https://github.com/kubernetes/kops;
+    license = licenses.asl20;
+    maintainers = with maintainers; [offline zimbatm];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ksonnet/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ksonnet/default.nix
new file mode 100644
index 000000000000..b8bce9315237
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/ksonnet/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoPackage, fetchFromGitHub, ... }:
+
+buildGoPackage rec {
+  version = "0.11.0";
+  name = "ksonnet-${version}";
+
+  src = fetchFromGitHub {
+    owner = "ksonnet";
+    repo = "ksonnet";
+    rev = "v${version}";
+    sha256 = "0z7gkgcsiclm72bznmzv5jcgx5rblndcsiqc0r2mwhxhmv19bs04";
+  };
+
+  goPackagePath = "github.com/ksonnet/ksonnet";
+
+  meta = {
+    description = "A CLI-supported framework that streamlines writing and deployment of Kubernetes configurations to multiple clusters";
+    homepage = https://github.com/ksonnet/ksonnet;
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ flokli ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
new file mode 100644
index 000000000000..8caa3cd75245
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "kube-router-${version}";
+  version = "0.2.3";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/cloudnativelabs/kube-router";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "cloudnativelabs";
+    repo = "kube-router";
+    sha256 = "1dsr76dq6sycwgh75glrcb4scv52lrrd0aivskhc7mwq30plafcj";
+  };
+
+  buildFlagsArray = ''
+    -ldflags=
+    -X
+    ${goPackagePath}/pkg/cmd.version=${version}
+    -X
+    ${goPackagePath}/pkg/cmd.buildDate=Nix
+  '';
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
new file mode 100644
index 000000000000..73a28325f52d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub, ... }:
+
+let version = "0.6.0"; in
+
+buildGoPackage {
+  name = "kubecfg-${version}";
+
+  src = fetchFromGitHub {
+    owner = "ksonnet";
+    repo = "kubecfg";
+    rev = "v${version}";
+    sha256 = "12kv1p707kdxjx5l8rcikd1gjwp5xjxdmmyvlpnvyagrphgrwpsf";
+  };
+
+  goPackagePath = "github.com/ksonnet/kubecfg";
+
+  meta = {
+    description = "A tool for managing Kubernetes resources as code";
+    homepage = https://github.com/ksonnet/kubecfg;
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ benley ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
new file mode 100644
index 000000000000..1a9df69fa592
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -0,0 +1,77 @@
+{ 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 {
+  name = "kubernetes-${version}";
+  version = "1.13.1";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes";
+    repo = "kubernetes";
+    rev = "v${version}";
+    sha256 = "048ckirz7v1djari6l9ddkcd9i4yafcv57wk131dv0cs2zady9va";
+  };
+
+  buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
+
+  outputs = ["out" "man" "pause"];
+
+  postPatch = ''
+    substituteInPlace "hack/lib/golang.sh" --replace "_cgo" ""
+    substituteInPlace "hack/generate-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/generate-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/namespace.yaml $out/share
+    cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons
+    patchShebangs $out/bin/kube-addons
+    substituteInPlace $out/bin/kube-addons \
+      --replace /opt/namespace.yaml $out/share/namespace.yaml
+    wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
+
+    $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];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
new file mode 100644
index 000000000000..b2cf486b6123
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, lib, ... }:
+
+stdenv.mkDerivation rec {
+  name = "kubetail-${version}";
+  version = "1.6.5";
+
+  src = fetchFromGitHub {
+    owner = "johanhaleby";
+    repo = "kubetail";
+    rev = "${version}";
+    sha256 = "0q8had1bi1769wd6h1c43gq0cvr5qj1fvyglizlyq1gm8qi2dx7n";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
new file mode 100644
index 000000000000..55a827f9cf92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, fetchFromGitHub, buildGoPackage, makeWrapper }:
+
+let
+
+  # Cache schema as a package so network calls are not
+  # necessary at runtime, allowing use in package builds
+  schema = stdenv.mkDerivation rec {
+    name = "kubeval-schema";
+    src = fetchFromGitHub {
+      owner = "garethr";
+      repo = "kubernetes-json-schema";
+      rev = "c7672fd48e1421f0060dd54b6620baa2ab7224ba";
+      sha256 = "0picr3wvjx4qv158jy4f60pl225rm4mh0l97pf8nqi9h9x4x888p";
+    };
+
+    installPhase = ''
+      mkdir -p $out/kubernetes-json-schema/master
+      cp -R . $out/kubernetes-json-schema/master
+    '';
+   };
+
+in
+
+buildGoPackage rec {
+  name = "kubeval-${version}";
+  version = "0.7.3";
+
+  goPackagePath = "github.com/garethr/kubeval";
+  src = fetchFromGitHub {
+    owner = "garethr";
+    repo = "kubeval";
+    rev = version;
+    sha256 = "042v4mc5p80vmk56wp6aw89yiibjnfqn79c0zcd6y179br4gpfnb";
+  };
+  goDeps = ./deps.nix;
+
+  buildInputs = [ makeWrapper ];
+
+  postFixup = "wrapProgram $bin/bin/kubeval --set KUBEVAL_SCHEMA_LOCATION file:///${schema}";
+
+  meta = with lib; {
+    description = "Validate your Kubernetes configuration files";
+    homepage = https://github.com/garethr/kubeval;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nicknovitski ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeval/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/deps.nix
new file mode 100644
index 000000000000..b9565e927ded
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/deps.nix
@@ -0,0 +1,174 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev = "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4";
+      sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
+    };
+  }
+  {
+    goPackagePath = "github.com/fsnotify/fsnotify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fsnotify/fsnotify";
+      rev = "c2828203cd70a50dcccfb2761f8b1f8ceef9a8e9";
+      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/go-multierror";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-multierror";
+      rev = "b7773ae218740a7be65057fc60b366a49b538a44";
+      sha256 = "09904bk7ac6qs9dgiv23rziq9h3makb9qg4jvxr71rlydsd7psfd";
+    };
+  }
+  {
+    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 = "787d034dfe70e44075ccc060d346146ef53270ad";
+      sha256 = "0138rjiacl71h7kvhzinviwvy6qa2m6rflpv9lgqv15hnjvhwvg1";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/cast";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cast";
+      rev = "8965335b8c7107321228e3e3702cab9832751bac";
+      sha256 = "177bk7lq40jbgv9p9r80aydpaccfk8ja3a7jjhfwiwk9r1pa4rr2";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/cobra";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cobra";
+      rev = "1e58aa3361fd650121dceeedc399e7189c05674a";
+      sha256 = "1d6dy60dw7i2mcab10yp99wi5w28jzhzzf16w4ys6bna7ymndiin";
+    };
+  }
+  {
+    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 = "3ebe029320b2676d667ae88da602a5f854788a8a";
+      sha256 = "11yxs0wqy70wj106fkz8r923yg4ncnc2mbw33v48zmlg4a1rasgp";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/viper";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/viper";
+      rev = "b5e8006cbee93ec955a89ab31e0e3ce3204f3736";
+      sha256 = "0y3r6ysi5vn0yq5c7pbl62yg2i64fkv54xgj2jf1hn3v6zzyimis";
+    };
+  }
+  {
+    goPackagePath = "github.com/xeipuuv/gojsonpointer";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xeipuuv/gojsonpointer";
+      rev = "4e3ac2762d5f479393488629ee9370b50873b3a6";
+      sha256 = "13y6iq2nzf9z4ls66bfgnnamj2m3438absmbpqry64bpwjfbsi9q";
+    };
+  }
+  {
+    goPackagePath = "github.com/xeipuuv/gojsonreference";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xeipuuv/gojsonreference";
+      rev = "bd5ef7bd5415a7ac448318e64f11a24cd21e594b";
+      sha256 = "1xby79padc7bmyb8rfbad8wfnfdzpnh51b1n8c0kibch0kwc1db5";
+    };
+  }
+  {
+    goPackagePath = "github.com/xeipuuv/gojsonschema";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xeipuuv/gojsonschema";
+      rev = "9ff6d6c47f3f5de55acc6f464d6e3719b02818ae";
+      sha256 = "0rpkya4lnpv9g33bs0z3vd5dlnadkyq1lg7114nbd73vm878s6sw";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "2d6f6f883a06fc0d5f4b14a81e4c28705ea64c15";
+      sha256 = "1a6x6n1fk5k013w5r4b0bxws1d2fh0s69mbzpi1vkyfpcxabwjhj";
+    };
+  }
+  {
+    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/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix
new file mode 100644
index 000000000000..aad752643645
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix
@@ -0,0 +1,35 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "luigi";
+  version = "2.8.0";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "1869lb6flmca6s7ccws7mvyn66nvrqjky40jwf2liv9fg0lp8899";
+  };
+
+  # Relax version constraint
+  postPatch = ''
+    sed -i 's/<2.2.0//' setup.py
+  '';
+
+  propagatedBuildInputs = with python3Packages; [ tornado_4 python-daemon boto3 ];
+
+  # Requires tox, hadoop, and google cloud
+  doCheck = false;
+
+  # This enables accessing modules stored in cwd
+  makeWrapperArgs = ["--prefix PYTHONPATH . :"];
+
+  meta = with lib; {
+    homepage = https://github.com/spotify/luigi;
+    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.
+    '';
+    license =  [ licenses.asl20 ];
+    maintainers = [ maintainers.bhipple ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix b/nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix
new file mode 100644
index 000000000000..49cac6d50635
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, makeWrapper, jdk, mesos, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "marathon-${version}";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "https://downloads.mesosphere.com/marathon/v${version}/marathon-${version}.tgz";
+    sha256 = "6eab65a95c87a989e922aca2b49ba872b50a94e46a8fd4831d1ab41f319d6932";
+  };
+
+  buildInputs = [ makeWrapper jdk mesos ];
+
+  installPhase = ''
+    mkdir -p $out/{bin,libexec/marathon}
+    cp target/scala-*/marathon*.jar $out/libexec/marathon/${name}.jar
+
+    makeWrapper ${jdk.jre}/bin/java $out/bin/marathon \
+      --add-flags "-Xmx512m -jar $out/libexec/marathon/${name}.jar" \
+      --set "MESOS_NATIVE_JAVA_LIBRARY" "$MESOS_NATIVE_JAVA_LIBRARY"
+    '';
+
+  meta = with stdenv.lib; {
+    homepage = https://mesosphere.github.io/marathon;
+    description = "Cluster-wide init and control system for services in cgroups or Docker containers";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kamilchm kevincox pradeepchhetri ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix b/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix
new file mode 100644
index 000000000000..8cff2494bf8f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix
@@ -0,0 +1,259 @@
+{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh
+, unzip, gnutar, jdk, python, wrapPython
+, setuptools, boto, pythonProtobuf, apr, subversion, gzip
+, leveldb, glog, perf, utillinux, libnl, iproute, openssl, libevent
+, ethtool, coreutils, which, iptables, maven
+, bash, autoreconfHook
+, utf8proc, lz4
+, withJava ? !stdenv.isDarwin
+}:
+
+let
+  mavenRepo = import ./mesos-deps.nix { inherit stdenv curl; };
+  # `tar -z` requires gzip on $PATH, so wrap tar.
+  # At some point, we should try to patch mesos so we add gzip to the PATH when
+  # tar is invoked. I think that only needs to be done here:
+  #   src/common/command_utils.cpp
+  # https://github.com/NixOS/nixpkgs/issues/13783
+  tarWithGzip = lib.overrideDerivation gnutar (oldAttrs: {
+    # Original builder is bash 4.3.42 from bootstrap tools, too old for makeWrapper.
+    builder = "${bash}/bin/bash";
+    buildInputs = (oldAttrs.buildInputs or []) ++ [ makeWrapper ];
+    postInstall = (oldAttrs.postInstall or "") + ''
+      wrapProgram $out/bin/tar --prefix PATH ":" "${gzip}/bin"
+    '';
+  });
+
+in stdenv.mkDerivation rec {
+  version = "1.4.1";
+  name = "mesos-${version}";
+
+  enableParallelBuilding = true;
+  dontDisableStatic = true;
+
+  src = fetchurl {
+    url = "mirror://apache/mesos/${version}/${name}.tar.gz";
+    sha256 = "1c7l0rim9ija913gpppz2mcms08ywyqhlzbbspqsi7wwfdd7jwsr";
+  };
+
+  patches = [
+    # https://reviews.apache.org/r/36610/
+    # TODO: is this still needed?
+    ./rb36610.patch
+
+    # see https://github.com/cstrahan/mesos/tree/nixos-${version}
+    ./nixos.patch
+  ];
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+  buildInputs = [
+    makeWrapper curl sasl
+    python wrapPython boto setuptools leveldb
+    subversion apr glog openssl libevent
+    utf8proc lz4
+  ] ++ lib.optionals stdenv.isLinux [
+    libnl
+  ] ++ lib.optionals withJava [
+    jdk maven
+  ];
+
+  propagatedBuildInputs = [
+    pythonProtobuf
+  ];
+  preConfigure = ''
+    # https://issues.apache.org/jira/browse/MESOS-6616
+    configureFlagsArray+=(
+      "CXXFLAGS=-O2 -Wno-error=strict-aliasing"
+    )
+
+    substituteInPlace 3rdparty/stout/include/stout/jsonify.hpp \
+      --replace '<xlocale.h>' '<locale.h>'
+    # Fix cases where makedev(),major(),minor() are referenced through
+    # <sys/types.h> instead of <sys/sysmacros.h>
+    sed 1i'#include <sys/sysmacros.h>' -i src/linux/fs.cpp
+    sed 1i'#include <sys/sysmacros.h>' -i src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
+    substituteInPlace 3rdparty/stout/include/stout/os/posix/chown.hpp \
+      --subst-var-by chown ${coreutils}/bin/chown
+
+    substituteInPlace 3rdparty/stout/Makefile.am \
+      --replace "-lprotobuf" \
+                "${pythonProtobuf.protobuf}/lib/libprotobuf.a"
+
+    substituteInPlace 3rdparty/stout/include/stout/os/posix/fork.hpp \
+      --subst-var-by sh ${bash}/bin/bash
+
+    substituteInPlace 3rdparty/stout/include/stout/posix/os.hpp \
+      --subst-var-by tar ${tarWithGzip}/bin/tar
+
+    substituteInPlace src/cli/mesos-scp \
+      --subst-var-by scp ${openssh}/bin/scp
+
+    substituteInPlace src/common/command_utils.cpp \
+      --subst-var-by curl      ${curl}/bin/curl \
+      --subst-var-by gzip      ${gzip}/bin/gzip \
+      --subst-var-by sha512sum ${coreutils}/bin/sha512sum \
+      --subst-var-by tar       ${tarWithGzip}/bin/tar
+
+    substituteInPlace src/launcher/fetcher.cpp \
+      --subst-var-by cp    ${coreutils}/bin/cp \
+      --subst-var-by gzip  ${gzip}/bin/gzip \
+      --subst-var-by tar   ${tarWithGzip}/bin/tar \
+      --subst-var-by unzip ${unzip}/bin/unzip
+
+    substituteInPlace src/python/cli/src/mesos/cli.py \
+      --subst-var-by mesos-resolve $out/bin/mesos-resolve
+
+    substituteInPlace src/python/native_common/ext_modules.py.in \
+      --replace "-lprotobuf" \
+                "${pythonProtobuf.protobuf}/lib/libprotobuf.a"
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/gpu/volume.cpp \
+      --subst-var-by cp    ${coreutils}/bin/cp \
+      --subst-var-by which ${which}/bin/which
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/posix/disk.cpp \
+      --subst-var-by du ${coreutils}/bin/du
+
+    substituteInPlace src/slave/containerizer/mesos/provisioner/backends/copy.cpp \
+      --subst-var-by cp ${coreutils}/bin/cp \
+      --subst-var-by rm ${coreutils}/bin/rm
+
+    substituteInPlace src/uri/fetchers/copy.cpp \
+      --subst-var-by cp ${coreutils}/bin/cp
+
+    substituteInPlace src/uri/fetchers/curl.cpp \
+      --subst-var-by curl ${curl}/bin/curl
+
+    substituteInPlace src/uri/fetchers/docker.cpp \
+      --subst-var-by curl ${curl}/bin/curl
+
+    substituteInPlace src/Makefile.am \
+      --subst-var-by mavenRepo ${mavenRepo} \
+      --replace "-lprotobuf" \
+                "${pythonProtobuf.protobuf}/lib/libprotobuf.a"
+
+  '' + lib.optionalString stdenv.isLinux ''
+
+    substituteInPlace src/linux/perf.cpp \
+      --subst-var-by perf ${perf}/bin/perf
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp \
+      --subst-var-by mount ${utillinux}/bin/mount
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/filesystem/linux.cpp \
+      --subst-var-by mount ${utillinux}/bin/mount
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/filesystem/shared.cpp \
+      --subst-var-by mount ${utillinux}/bin/mount
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/gpu/isolator.cpp \
+      --subst-var-by mount ${utillinux}/bin/mount
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/namespaces/pid.cpp \
+      --subst-var-by mount ${utillinux}/bin/mount
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/network/cni/cni.cpp \
+      --subst-var-by mount ${utillinux}/bin/mount
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp \
+      --subst-var-by iptables ${iptables}/bin/iptables
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/network/port_mapping.cpp \
+      --subst-var-by ethtool ${ethtool}/sbin/ethtool \
+      --subst-var-by ip      ${iproute}/bin/ip \
+      --subst-var-by mount   ${utillinux}/bin/mount \
+      --subst-var-by tc      ${iproute}/bin/tc
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/volume/image.cpp \
+      --subst-var-by mount   ${utillinux}/bin/mount
+
+    substituteInPlace src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp \
+      --subst-var-by mount   ${utillinux}/bin/mount
+  '';
+
+  configureFlags = [
+    "--sbindir=\${out}/bin"
+    "--with-apr=${apr.dev}"
+    "--with-svn=${subversion.dev}"
+    "--with-leveldb=${leveldb}"
+    "--with-glog=${glog}"
+    "--enable-optimize"
+    "--disable-python-dependency-install"
+    "--enable-ssl"
+    "--with-ssl=${openssl.dev}"
+    "--enable-libevent"
+    "--with-libevent=${libevent.dev}"
+    "--with-protobuf=${pythonProtobuf.protobuf}"
+    "PROTOBUF_JAR=${mavenRepo}/com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar"
+    (if withJava then "--enable-java" else "--disable-java")
+  ] ++ lib.optionals stdenv.isLinux [
+    "--with-network-isolator"
+    "--with-nl=${libnl.dev}"
+  ];
+
+  postInstall = ''
+    rm -rf $out/var
+    rm $out/bin/*.sh
+
+    # Inspired by: pkgs/development/python-modules/generic/default.nix
+    pushd src/python
+    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 \
+      --old-and-unmanageable \
+      --prefix="$out"
+    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+    popd
+
+    # optional python dependency for mesos cli
+    pushd src/python/cli
+    ${python}/bin/${python.executable} setup.py install \
+      --install-lib=$out/lib/${python.libPrefix}/site-packages \
+      --old-and-unmanageable \
+      --prefix="$out"
+    popd
+  '' + stdenv.lib.optionalString withJava ''
+    mkdir -p $out/share/java
+    cp src/java/target/mesos-*.jar $out/share/java
+
+    MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos${stdenv.hostPlatform.extensions.sharedLibrary}
+
+    mkdir -p $out/nix-support
+    touch $out/nix-support/setup-hook
+    echo "export MESOS_NATIVE_JAVA_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook
+    echo "export MESOS_NATIVE_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook
+  '';
+
+  postFixup = ''
+    if test -e $out/nix-support/propagated-build-inputs; then
+      ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
+    fi
+
+    for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
+      if test -e $out/nix-support/$inputsfile; then
+        createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
+      fi
+    done
+
+    for f in $out/libexec/mesos/python/mesos/*.py; do
+      ${python}/bin/${python.executable} -c "import py_compile; py_compile.compile('$f')"
+    done
+
+    # wrap the python programs
+    for prog in mesos-cat mesos-ps mesos-scp mesos-tail; do
+      wrapProgram "$out/bin/$prog" \
+        --prefix PYTHONPATH ":" "$out/lib/${python.libPrefix}/site-packages"
+      true
+    done
+  '';
+
+  meta = with lib; {
+    homepage    = "http://mesos.apache.org";
+    license     = licenses.asl20;
+    description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks";
+    maintainers = with maintainers; [ cstrahan kevincox offline ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh b/nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh
new file mode 100644
index 000000000000..cf7318ecb273
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh
@@ -0,0 +1,1359 @@
+source $stdenv/setup
+header "fetching Apache Mesos maven repo"
+
+function fetchArtifact {
+  repoPath="$1"
+  echo "Fetching $repoPath"
+  url="http://repo.maven.apache.org/maven2/$repoPath"
+  mkdir -p $(dirname $out/$repoPath)
+  curl --fail --location --insecure --retry 3 --max-redirs 20 "$url" --output "$out/$repoPath"
+}
+
+fetchArtifact org/apache/apache/11/apache-11.pom
+fetchArtifact org/apache/apache/11/apache-11.pom.sha1
+fetchArtifact org/apache/apache/10/apache-10.pom
+fetchArtifact org/apache/apache/10/apache-10.pom.sha1
+fetchArtifact org/apache/apache/7/apache-7.pom
+fetchArtifact org/apache/apache/7/apache-7.pom.sha1
+fetchArtifact org/apache/apache/9/apache-9.pom
+fetchArtifact org/apache/apache/9/apache-9.pom.sha1
+fetchArtifact org/apache/apache/13/apache-13.pom
+fetchArtifact org/apache/apache/13/apache-13.pom.sha1
+fetchArtifact org/apache/apache/3/apache-3.pom
+fetchArtifact org/apache/apache/3/apache-3.pom.sha1
+fetchArtifact org/apache/apache/6/apache-6.pom
+fetchArtifact org/apache/apache/6/apache-6.pom.sha1
+fetchArtifact org/apache/apache/4/apache-4.pom
+fetchArtifact org/apache/apache/4/apache-4.pom.sha1
+fetchArtifact org/apache/apache/2/apache-2.pom
+fetchArtifact org/apache/apache/2/apache-2.pom.sha1
+fetchArtifact org/apache/apache/5/apache-5.pom
+fetchArtifact org/apache/apache/5/apache-5.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.pom
+fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.jar
+fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom
+fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom
+fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom
+fetchArtifact org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom
+fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.pom
+fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.jar
+fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.pom
+fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.jar
+fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.pom
+fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.jar
+fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
+fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.jar
+fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom
+fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar
+fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.pom
+fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar
+fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.pom
+fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.jar
+fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom
+fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar
+fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.pom
+fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.jar
+fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom
+fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar
+fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar.sha1
+fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom
+fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom.sha1
+fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar
+fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar.sha1
+fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom
+fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom
+fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/19/maven-parent-19.pom
+fetchArtifact org/apache/maven/maven-parent/19/maven-parent-19.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom
+fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom
+fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom
+fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom
+fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom
+fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom
+fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/20/maven-parent-20.pom
+fetchArtifact org/apache/maven/maven-parent/20/maven-parent-20.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom
+fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom
+fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom
+fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom.sha1
+fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom
+fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire/2.12/surefire-2.12.pom
+fetchArtifact org/apache/maven/surefire/surefire/2.12/surefire-2.12.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.pom
+fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.jar
+fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.jar.sha1
+fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.pom
+fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.pom.sha1
+fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.jar
+fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.jar.sha1
+fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.pom
+fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.pom.sha1
+fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.jar
+fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.jar
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom
+fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar
+fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom
+fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom
+fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.1/maven-2.0.1.pom
+fetchArtifact org/apache/maven/maven/2.0.1/maven-2.0.1.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom
+fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0/maven-2.0.pom
+fetchArtifact org/apache/maven/maven/2.0/maven-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom
+fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom
+fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom
+fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom.sha1
+fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom
+fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom
+fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom.sha1
+fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom
+fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom
+fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.jar
+fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-model/2.0/maven-model-2.0.pom
+fetchArtifact org/apache/maven/maven-model/2.0/maven-model-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom
+fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar
+fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom
+fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.jar
+fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.jar.sha1
+fetchArtifact org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom
+fetchArtifact org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom
+fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom
+fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom
+fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom
+fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.jar
+fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-project/2.0/maven-project-2.0.pom
+fetchArtifact org/apache/maven/maven-project/2.0/maven-project-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom
+fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar
+fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
+fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom
+fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.jar
+fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.jar.sha1
+fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom
+fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.jar
+fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom
+fetchArtifact org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar
+fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom
+fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar
+fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom
+fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom
+fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom
+fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.jar
+fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom
+fetchArtifact org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom
+fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar
+fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom
+fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom
+fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.jar
+fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.jar.sha1
+fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom
+fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.jar
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.jar
+fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.jar.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom
+fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.jar
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar
+fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.sha1
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom
+fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.jar
+fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar
+fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom
+fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar
+fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom
+fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom
+fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.sha1
+fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom
+fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.jar
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom
+fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.jar
+fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.jar.sha1
+fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom
+fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.jar
+fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-core/2.0/maven-core-2.0.pom
+fetchArtifact org/apache/maven/maven-core/2.0/maven-core-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom
+fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar
+fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom
+fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.jar
+fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.jar
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.jar
+fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.jar.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom.sha1
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar
+fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.jar
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom
+fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.3/doxia-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.3/doxia-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom
+fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.jar
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.jar
+fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.3/doxia-modules-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.3/doxia-modules-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.jar
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.3/doxia-sitetools-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.3/doxia-sitetools-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.pom
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.jar
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.jar.sha1
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom.sha1
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar
+fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar.sha1
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.jar
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.jar
+fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.jar
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.jar
+fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom
+fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom.sha1
+fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.jar
+fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.jar.sha1
+fetchArtifact org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom
+fetchArtifact org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom.sha1
+fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom
+fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.jar
+fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.pom
+fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.jar
+fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/16/maven-shared-components-16.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/16/maven-shared-components-16.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom
+fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.pom
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.jar
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar
+fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom
+fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar
+fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.pom
+fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.jar
+fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.pom
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.jar
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar
+fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.pom
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.jar
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar
+fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
+fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar.sha1
+fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom
+fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom.sha1
+fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar
+fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom
+fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
+fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom
+fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom.sha1
+fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar
+fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar.sha1
+fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom
+fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom.sha1
+fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.jar
+fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.jar.sha1
+fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom
+fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom.sha1
+fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.jar
+fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.jar.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom
+fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar
+fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.pom
+fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.pom.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar
+fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom
+fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.jar
+fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.jar.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.pom
+fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.pom.sha1
+fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar
+fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar.sha1
+fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.pom
+fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.jar
+fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.jar.sha1
+fetchArtifact org/apache/maven/wagon/wagon-providers/1.0/wagon-providers-1.0.pom
+fetchArtifact org/apache/maven/wagon/wagon-providers/1.0/wagon-providers-1.0.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon/1.0/wagon-1.0.pom
+fetchArtifact org/apache/maven/wagon/wagon/1.0/wagon-1.0.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom
+fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom
+fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.pom
+fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.jar
+fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.jar.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.pom
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.jar
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.jar.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.sha1
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.jar
+fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.jar.sha1
+fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom
+fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar
+fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar.sha1
+fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom
+fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar
+fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar.sha1
+fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom
+fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar
+fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar.sha1
+fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom
+fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom.sha1
+fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar
+fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar.sha1
+fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.pom
+fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.pom.sha1
+fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.jar
+fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.jar.sha1
+fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom
+fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom.sha1
+fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar
+fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar.sha1
+fetchArtifact org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom
+fetchArtifact org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom.sha1
+fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom
+fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom.sha1
+fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar
+fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar.sha1
+fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom
+fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom
+fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom
+fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/12/commons-parent-12.pom
+fetchArtifact org/apache/commons/commons-parent/12/commons-parent-12.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/3/commons-parent-3.pom
+fetchArtifact org/apache/commons/commons-parent/3/commons-parent-3.pom.sha1
+fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom
+fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom.sha1
+fetchArtifact org/apache/apache-jar-resource-bundle/1.4/apache-jar-resource-bundle-1.4.jar
+fetchArtifact org/apache/apache-jar-resource-bundle/1.4/apache-jar-resource-bundle-1.4.jar.sha1
+fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom
+fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom.sha1
+fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar
+fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar.sha1
+fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom
+fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom.sha1
+fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom
+fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom.sha1
+fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom
+fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom.sha1
+fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom
+fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom.sha1
+fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar
+fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar.sha1
+fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom
+fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom.sha1
+fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom
+fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom.sha1
+fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar
+fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar.sha1
+fetchArtifact org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom
+fetchArtifact org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom.sha1
+fetchArtifact org/apache/struts/struts-master/4/struts-master-4.pom
+fetchArtifact org/apache/struts/struts-master/4/struts-master-4.pom.sha1
+fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom
+fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom.sha1
+fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar
+fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar.sha1
+fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom
+fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom.sha1
+fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar
+fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar.sha1
+fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom
+fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom.sha1
+fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom
+fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom.sha1
+fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.pom
+fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.pom.sha1
+fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.jar
+fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.jar.sha1
+fetchArtifact org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom
+fetchArtifact org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom.sha1
+fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
+fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar
+fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom
+fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
+fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom
+fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom
+fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/3.1/plexus-3.1.pom
+fetchArtifact org/codehaus/plexus/plexus/3.1/plexus-3.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom
+fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
+fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom
+fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom
+fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom
+fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom
+fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom
+fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.jar
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.jar
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom
+fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
+fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar
+fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.pom
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.pom
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar
+fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar
+fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.20/plexus-components-1.1.20.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.20/plexus-components-1.1.20.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.17/plexus-components-1.1.17.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.1.17/plexus-components-1.1.17.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom
+fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.jar
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom
+fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.pom
+fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.jar
+fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.pom
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.jar
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar
+fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.pom
+fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar
+fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler/1.9.1/plexus-compiler-1.9.1.pom
+fetchArtifact org/codehaus/plexus/plexus-compiler/1.9.1/plexus-compiler-1.9.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.pom
+fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar
+fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.pom
+fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar
+fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-compilers/1.9.1/plexus-compilers-1.9.1.pom
+fetchArtifact org/codehaus/plexus/plexus-compilers/1.9.1/plexus-compilers-1.9.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.pom
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.pom
+fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar
+fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom
+fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar
+fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar
+fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom
+fetchArtifact org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom
+fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom
+fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom
+fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom
+fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar
+fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar.sha1
+fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom
+fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom.sha1
+fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
+fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.sha1
+fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom
+fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom.sha1
+fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom
+fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom.sha1
+fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom
+fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom.sha1
+fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom
+fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom
+fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom
+fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom
+fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom
+fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom.sha1
+fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom
+fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom.sha1
+fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom
+fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom.sha1
+fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar
+fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar.sha1
+fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom
+fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom.sha1
+fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
+fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar.sha1
+fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom
+fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom.sha1
+fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
+fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar.sha1
+fetchArtifact org/sonatype/oss/oss-parent/6/oss-parent-6.pom
+fetchArtifact org/sonatype/oss/oss-parent/6/oss-parent-6.pom.sha1
+fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom
+fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom
+fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar
+fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar.sha1
+fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom
+fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom
+fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom
+fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom
+fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom
+fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
+fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar.sha1
+fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom
+fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom.sha1
+fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
+fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar.sha1
+fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom
+fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom.sha1
+fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar
+fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar.sha1
+fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom
+fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom.sha1
+fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom
+fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom.sha1
+fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
+fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar.sha1
+fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom
+fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom.sha1
+fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar
+fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar.sha1
+fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom
+fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom.sha1
+fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar
+fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar.sha1
+fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom
+fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom.sha1
+fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar
+fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar.sha1
+fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom
+fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom.sha1
+fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.pom
+fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.pom.sha1
+fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.jar
+fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.jar.sha1
+fetchArtifact org/beanshell/beanshell/2.0b4/beanshell-2.0b4.pom
+fetchArtifact org/beanshell/beanshell/2.0b4/beanshell-2.0b4.pom.sha1
+fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.pom
+fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.pom.sha1
+fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.jar
+fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.jar.sha1
+fetchArtifact org/mortbay/jetty/project/6.1.25/project-6.1.25.pom
+fetchArtifact org/mortbay/jetty/project/6.1.25/project-6.1.25.pom.sha1
+fetchArtifact org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom
+fetchArtifact org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom.sha1
+fetchArtifact org/mortbay/jetty/jetty-parent/7/jetty-parent-7.pom
+fetchArtifact org/mortbay/jetty/jetty-parent/7/jetty-parent-7.pom.sha1
+fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.pom
+fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.pom.sha1
+fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.jar
+fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.jar.sha1
+fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.pom
+fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.pom.sha1
+fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar
+fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar.sha1
+fetchArtifact org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom
+fetchArtifact org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom.sha1
+fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom
+fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom.sha1
+fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
+fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar.sha1
+fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom
+fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom.sha1
+fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.pom
+fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.pom.sha1
+fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar
+fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar.sha1
+fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom
+fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom.sha1
+fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar
+fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar.sha1
+fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom
+fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom.sha1
+fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar
+fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar.sha1
+fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom
+fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom.sha1
+fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar
+fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar.sha1
+fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom
+fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom.sha1
+fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar
+fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar.sha1
+fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom
+fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom.sha1
+fetchArtifact com/google/google/1/google-1.pom
+fetchArtifact com/google/google/1/google-1.pom.sha1
+fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom
+fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom.sha1
+fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar
+fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar.sha1
+fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom
+fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom.sha1
+fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom
+fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom.sha1
+fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar
+fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar.sha1
+fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom
+fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom.sha1
+fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.pom
+fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.pom.sha1
+fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.jar
+fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.jar.sha1
+fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.pom
+fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.pom.sha1
+fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.jar
+fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.jar.sha1
+fetchArtifact junit/junit/4.10/junit-4.10.pom
+fetchArtifact junit/junit/4.10/junit-4.10.pom.sha1
+fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom
+fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom.sha1
+fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar
+fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar.sha1
+fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom
+fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom.sha1
+fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
+fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom.sha1
+fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar
+fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar.sha1
+fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom
+fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom.sha1
+fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.jar
+fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.jar.sha1
+fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom
+fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom.sha1
+fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar
+fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar.sha1
+fetchArtifact doxia/doxia-sink-api/1.0-alpha-4/doxia-sink-api-1.0-alpha-4.pom
+fetchArtifact doxia/doxia-sink-api/1.0-alpha-4/doxia-sink-api-1.0-alpha-4.pom.sha1
+fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom
+fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom.sha1
+fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.jar
+fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.jar.sha1
+fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom
+fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom.sha1
+fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
+fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar.sha1
+fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom
+fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom.sha1
+fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom
+fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom.sha1
+fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom
+fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom.sha1
+fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar
+fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar.sha1
+fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom
+fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom.sha1
+fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar
+fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar.sha1
+fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom
+fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom.sha1
+fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar
+fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1
+fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.pom
+fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.pom.sha1
+fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.jar
+fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.jar.sha1
+fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom
+fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom.sha1
+fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar
+fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar.sha1
+fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom
+fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom.sha1
+fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar
+fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar.sha1
+fetchArtifact velocity/velocity/1.5/velocity-1.5.pom
+fetchArtifact velocity/velocity/1.5/velocity-1.5.pom.sha1
+fetchArtifact velocity/velocity/1.5/velocity-1.5.jar
+fetchArtifact velocity/velocity/1.5/velocity-1.5.jar.sha1
+fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom
+fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom.sha1
+fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar
+fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar.sha1
+fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom
+fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom.sha1
+fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar
+fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar.sha1
+fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
+fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom.sha1
+fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
+fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar.sha1
+fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom
+fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
+fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
+fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar.sha1
+fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
+fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.1/commons-logging-1.1.pom
+fetchArtifact commons-logging/commons-logging/1.1/commons-logging-1.1.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom
+fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
+fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1
+fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
+fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1
+fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom
+fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom.sha1
+fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom
+fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom.sha1
+fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar
+fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar.sha1
+fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom
+fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom.sha1
+fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.jar
+fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.jar.sha1
+fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.pom
+fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.pom.sha1
+fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.jar
+fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.jar.sha1
+fetchArtifact javax/servlet/servlet-api/2.3/servlet-api-2.3.pom
+fetchArtifact javax/servlet/servlet-api/2.3/servlet-api-2.3.pom.sha1
+fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom
+fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom.sha1
+fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
+fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar.sha1
+fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom
+fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom.sha1
+fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.pom
+fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.pom.sha1
+fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.jar
+fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.jar.sha1
+fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom
+fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom.sha1
+fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar
+fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar.sha1
+fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom
+fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom.sha1
+fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.pom
+fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.pom.sha1
+fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.jar
+fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.jar.sha1
+fetchArtifact logkit/logkit/1.0.1/logkit-1.0.1.pom
+fetchArtifact logkit/logkit/1.0.1/logkit-1.0.1.pom.sha1
+fetchArtifact avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom
+fetchArtifact avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom.sha1
+fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.pom
+fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.pom.sha1
+fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.jar
+fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.jar.sha1
+fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom
+fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom.sha1
+fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar
+fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar.sha1
+fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom
+fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.sha1
+fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar
+fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar.sha1
+fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.pom
+fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.pom.sha1
+fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.jar
+fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.jar.sha1
+fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.pom
+fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.pom.sha1
+fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.jar
+fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.jar.sha1
+fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.pom
+fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.pom.sha1
+fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.jar
+fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.jar.sha1
+fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom
+fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom.sha1
+fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar
+fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar.sha1
+fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.pom
+fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.pom.sha1
+fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.jar
+fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.jar.sha1
+fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom
+fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom.sha1
+fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar
+fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar.sha1
+fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom
+fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom.sha1
+fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar
+fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar.sha1
+fetchArtifact asm/asm/3.2/asm-3.2.pom
+fetchArtifact asm/asm/3.2/asm-3.2.pom.sha1
+fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom
+fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom.sha1
+fetchArtifact asm/asm-parent/3.2/asm-parent-3.2.pom
+fetchArtifact asm/asm-parent/3.2/asm-parent-3.2.pom.sha1
+fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.pom
+fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.pom.sha1
+fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.jar
+fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.jar.sha1
+fetchArtifact asm/asm-commons/3.2/asm-commons-3.2.pom
+fetchArtifact asm/asm-commons/3.2/asm-commons-3.2.pom.sha1
+fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.pom
+fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.pom.sha1
+fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.jar
+fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.jar.sha1
+fetchArtifact asm/asm-tree/3.2/asm-tree-3.2.pom
+fetchArtifact asm/asm-tree/3.2/asm-tree-3.2.pom.sha1
+fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.pom
+fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.pom.sha1
+fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.jar
+fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.jar.sha1
+fetchArtifact asm/asm-util/3.2/asm-util-3.2.pom
+fetchArtifact asm/asm-util/3.2/asm-util-3.2.pom.sha1
+fetchArtifact asm/asm-util/3.2/asm-util-3.2.jar
+fetchArtifact asm/asm-util/3.2/asm-util-3.2.jar.sha1
+fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom
+fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom.sha1
+fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
+fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar.sha1
+
+stopNest
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix
new file mode 100644
index 000000000000..1cf819870f4e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix
@@ -0,0 +1,14 @@
+{stdenv, curl}:
+
+stdenv.mkDerivation {
+  name = "mesos-maven-deps";
+  builder = ./fetch-mesos-deps.sh;
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "10h0qs7svw0cqjkyxs8z6s3qraa8ga920zfrr59rdlanbwg4klly";
+
+  nativeBuildInputs = [ curl ];
+
+  impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch b/nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch
new file mode 100644
index 000000000000..a6fea024b087
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch
@@ -0,0 +1,731 @@
+diff --git i/3rdparty/stout/include/stout/os/posix/fork.hpp w/3rdparty/stout/include/stout/os/posix/fork.hpp
+index a29967d..290b98b 100644
+--- i/3rdparty/stout/include/stout/os/posix/fork.hpp
++++ w/3rdparty/stout/include/stout/os/posix/fork.hpp
+@@ -369,7 +369,7 @@ private:
+     if (exec.isSome()) {
+       // Execute the command (via '/bin/sh -c command').
+       const char* command = exec.get().command.c_str();
+-      execlp("sh", "sh", "-c", command, (char*) nullptr);
++      execlp("@sh@", "sh", "-c", command, (char*) nullptr);
+       EXIT(EXIT_FAILURE)
+         << "Failed to execute '" << command << "': " << os::strerror(errno);
+     } else if (wait.isSome()) {
+diff --git i/3rdparty/stout/include/stout/posix/os.hpp w/3rdparty/stout/include/stout/posix/os.hpp
+index 8511dfd..1e7be01 100644
+--- i/3rdparty/stout/include/stout/posix/os.hpp
++++ w/3rdparty/stout/include/stout/posix/os.hpp
+@@ -366,7 +366,7 @@ inline Try<std::set<pid_t>> pids(Option<pid_t> group, Option<pid_t> session)
+ inline Try<Nothing> tar(const std::string& path, const std::string& archive)
+ {
+   Try<std::string> tarOut =
+-    os::shell("tar %s %s %s", "-czf", archive.c_str(), path.c_str());
++    os::shell("@tar@ %s %s %s", "-czf", archive.c_str(), path.c_str());
+ 
+   if (tarOut.isError()) {
+     return Error("Failed to archive " + path + ": " + tarOut.error());
+diff --git i/src/Makefile.am w/src/Makefile.am
+index 68fff14..c572f92 100644
+--- i/src/Makefile.am
++++ w/src/Makefile.am
+@@ -1775,7 +1775,7 @@ if HAS_JAVA
+ 
+ $(MESOS_JAR): $(MESOS_JAR_SOURCE) $(MESOS_JAR_GENERATED) java/mesos.pom
+ 	@echo "Building mesos-$(PACKAGE_VERSION).jar ..."
+-	@cd $(abs_top_builddir)/src/java && $(MVN) -B -f mesos.pom clean package
++	@cd $(abs_top_builddir)/src/java && $(MVN) -B -f mesos.pom -Dmaven.repo.local=@mavenRepo@ clean package
+ 
+ # Convenience library for JNI bindings.
+ # TODO(Charles Reiss): We really should be building the Java library
+diff --git i/src/cli/mesos-scp w/src/cli/mesos-scp
+index a71ab07..1043d1b 100755
+--- i/src/cli/mesos-scp
++++ w/src/cli/mesos-scp
+@@ -19,7 +19,8 @@ if sys.version_info < (2,6,0):
+ 
+ 
+ def scp(host, src, dst):
+-    cmd = 'scp -pr %s %s' % (src, host + ':' + dst)
++    cmd = '@scp@ -pr %s %s' % (src, host + ':' + dst)
++
+     try:
+         process = subprocess.Popen(
+             cmd,
+diff --git i/src/common/command_utils.cpp w/src/common/command_utils.cpp
+index c50be76..388cc53 100644
+--- i/src/common/command_utils.cpp
++++ w/src/common/command_utils.cpp
+@@ -142,7 +142,7 @@ Future<Nothing> tar(
+ 
+   argv.emplace_back(input);
+ 
+-  return launch("tar", argv)
++  return launch("@tar@", argv)
+     .then([]() { return Nothing(); });
+ }
+ 
+@@ -164,7 +164,7 @@ Future<Nothing> untar(
+     argv.emplace_back(directory.get());
+   }
+ 
+-  return launch("tar", argv)
++  return launch("@tar@", argv)
+     .then([]() { return Nothing(); });
+ }
+ 
+@@ -172,7 +172,7 @@ Future<Nothing> untar(
+ Future<string> sha512(const Path& input)
+ {
+ #ifdef __linux__
+-  const string cmd = "sha512sum";
++  const string cmd = "@sha512sum@";
+   vector<string> argv = {
+     cmd,
+     input             // Input file to compute shasum.
+@@ -208,7 +208,7 @@ Future<Nothing> gzip(const Path& input)
+     input
+   };
+ 
+-  return launch("gzip", argv)
++  return launch("@gzip@", argv)
+     .then([]() { return Nothing(); });
+ }
+ 
+@@ -221,7 +221,7 @@ Future<Nothing> decompress(const Path& input)
+     input
+   };
+ 
+-  return launch("gzip", argv)
++  return launch("@gzip@", argv)
+     .then([]() { return Nothing(); });
+ }
+ 
+diff --git i/src/launcher/fetcher.cpp w/src/launcher/fetcher.cpp
+index 42980f5..3aebeed 100644
+--- i/src/launcher/fetcher.cpp
++++ w/src/launcher/fetcher.cpp
+@@ -80,17 +80,17 @@ static Try<bool> extract(
+       strings::endsWith(sourcePath, ".tar.bz2") ||
+       strings::endsWith(sourcePath, ".txz") ||
+       strings::endsWith(sourcePath, ".tar.xz")) {
+-    command = {"tar", "-C", destinationDirectory, "-xf", sourcePath};
++    command = {"@tar@", "-C", destinationDirectory, "-xf", sourcePath};
+   } else if (strings::endsWith(sourcePath, ".gz")) {
+     string pathWithoutExtension = sourcePath.substr(0, sourcePath.length() - 3);
+     string filename = Path(pathWithoutExtension).basename();
+     string destinationPath = path::join(destinationDirectory, filename);
+ 
+-    command = {"gunzip", "-d", "-c"};
++    command = {"@gunzip@", "-d", "-c"};
+     in = Subprocess::PATH(sourcePath);
+     out = Subprocess::PATH(destinationPath);
+   } else if (strings::endsWith(sourcePath, ".zip")) {
+-    command = {"unzip", "-o", "-d", destinationDirectory, sourcePath};
++    command = {"@unzip@", "-o", "-d", destinationDirectory, sourcePath};
+   } else {
+     return false;
+   }
+@@ -193,7 +193,7 @@ static Try<string> copyFile(
+     const string& sourcePath,
+     const string& destinationPath)
+ {
+-  int status = os::spawn("cp", {"cp", sourcePath, destinationPath});
++  int status = os::spawn("cp", {"@cp@", sourcePath, destinationPath});
+ 
+   if (status == -1) {
+     return ErrnoError("Failed to copy '" + sourcePath + "'");
+diff --git i/src/linux/perf.cpp w/src/linux/perf.cpp
+index b301e25..356a2cf 100644
+--- i/src/linux/perf.cpp
++++ w/src/linux/perf.cpp
+@@ -128,7 +128,7 @@ private:
+     // NOTE: The supervisor childhook places perf in its own process group
+     // and will kill the perf process when the parent dies.
+     Try<Subprocess> _perf = subprocess(
+-        "perf",
++        "@perf@",
+         argv,
+         Subprocess::PIPE(),
+         Subprocess::PIPE(),
+diff --git i/src/linux/systemd.cpp w/src/linux/systemd.cpp
+index 6318f48..394d88d 100644
+--- i/src/linux/systemd.cpp
++++ w/src/linux/systemd.cpp
+@@ -196,13 +196,21 @@ bool exists()
+   // This is static as the init system should not change while we are running.
+   static const bool exists = []() -> bool {
+     // (1) Test whether `/sbin/init` links to systemd.
+-    const Result<string> realpath = os::realpath("/sbin/init");
+-    if (realpath.isError() || realpath.isNone()) {
+-      LOG(WARNING) << "Failed to test /sbin/init for systemd environment: "
+-                   << (realpath.isError() ? realpath.error()
+-                                          : "does not exist");
+-
+-      return false;
++    // cstrahan(nixos): first assume we're on NixOS, then try non-NixOS
++    Result<string> realpath = os::realpath("/run/current-system/systemd/lib/systemd/systemd");
++    Result<string> realpathNixOS = realpath;
++    if (realpathNixOS.isError() || realpathNixOS.isNone()) {
++      Result<string> realpathNonNixOS = realpath = os::realpath("/sbin/init");
++      if (realpathNonNixOS.isError() || realpathNonNixOS.isNone()) {
++        LOG(WARNING) << "Failed to test /run/current-system/systemd/lib/systemd/systemd for systemd environment: "
++                     << (realpathNixOS.isError() ? realpathNixOS.error()
++                                                 : "does not exist");
++        LOG(WARNING) << "Failed to test /sbin/init for systemd environment: "
++                     << (realpathNonNixOS.isError() ? realpathNonNixOS.error()
++                                                    : "does not exist");
++
++        return false;
++      }
+     }
+ 
+     CHECK_SOME(realpath);
+@@ -278,6 +286,10 @@ Path hierarchy()
+ 
+ Try<Nothing> daemonReload()
+ {
++  // cstrahan(nixos): should we patch these `systemctl`s?
++  // probably don't want to hard-code a particular systemd store path here,
++  // but if we use /run/current-system/sw/bin/systemctl,
++  // we won't be able to support non-NixOS distros.
+   Try<string> daemonReload = os::shell("systemctl daemon-reload");
+   if (daemonReload.isError()) {
+     return Error("Failed to reload systemd daemon: " + daemonReload.error());
+diff --git i/src/python/cli/src/mesos/cli.py w/src/python/cli/src/mesos/cli.py
+index 4a9b558..c08a8b9 100644
+--- i/src/python/cli/src/mesos/cli.py
++++ w/src/python/cli/src/mesos/cli.py
+@@ -40,7 +40,7 @@ def resolve(master):
+     import subprocess
+ 
+     process = subprocess.Popen(
+-        ['mesos-resolve', master],
++        ['@mesos-resolve@', master],
+         stdin=None,
+         stdout=subprocess.PIPE,
+         stderr=subprocess.PIPE,
+diff --git i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
+index 5b630c1..d63ad69 100644
+--- i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
++++ w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
+@@ -499,7 +499,7 @@ Future<Option<ContainerLaunchInfo>> DockerVolumeIsolatorProcess::_prepare(
+     // unsafe arbitrary commands).
+     CommandInfo* command = launchInfo.add_pre_exec_commands();
+     command->set_shell(false);
+-    command->set_value("mount");
++    command->set_value("@mount@");
+     command->add_arguments("mount");
+     command->add_arguments("-n");
+     command->add_arguments("--rbind");
+diff --git i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
+index d7fe9a8..1361a4e 100644
+--- i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
++++ w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
+@@ -154,9 +154,9 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
+       // here because 'create' will only be invoked during
+       // initialization.
+       Try<string> mount = os::shell(
+-          "mount --bind %s %s && "
+-          "mount --make-private %s && "
+-          "mount --make-shared %s",
++          "@mount@ --bind %s %s && "
++          "@mount@ --make-private %s && "
++          "@mount@ --make-shared %s",
+           workDir->c_str(),
+           workDir->c_str(),
+           workDir->c_str(),
+@@ -175,8 +175,8 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
+       LOG(INFO) << "Making '" << workDir.get() << "' a shared mount";
+ 
+       Try<string> mount = os::shell(
+-          "mount --make-private %s && "
+-          "mount --make-shared %s",
++          "@mount@ --make-private %s && "
++          "@mount@ --make-shared %s",
+           workDir->c_str(),
+           workDir->c_str());
+ 
+@@ -422,7 +422,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
+ 
+     CommandInfo command;
+     command.set_shell(false);
+-    command.set_value("mount");
++    command.set_value("@mount@");
+     command.add_arguments("mount");
+     command.add_arguments("-n");
+     command.add_arguments("--rbind");
+@@ -610,7 +610,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
+     // TODO(jieyu): Consider the mode in the volume.
+     CommandInfo command;
+     command.set_shell(false);
+-    command.set_value("mount");
++    command.set_value("@mount@");
+     command.add_arguments("mount");
+     command.add_arguments("-n");
+     command.add_arguments("--rbind");
+diff --git i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
+index 927d95b..576dc63 100644
+--- i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
++++ w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
+@@ -208,7 +208,7 @@ Future<Option<ContainerLaunchInfo>> SharedFilesystemIsolatorProcess::prepare(
+     }
+ 
+     launchInfo.add_pre_exec_commands()->set_value(
+-        "mount -n --bind " + hostPath + " " + volume.container_path());
++        "@mount@ -n --bind " + hostPath + " " + volume.container_path());
+   }
+ 
+   return launchInfo;
+diff --git i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
+index 25636b5..33ec315 100644
+--- i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
++++ w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
+@@ -401,7 +401,7 @@ Future<Option<ContainerLaunchInfo>> NvidiaGpuIsolatorProcess::_prepare(
+     }
+ 
+     launchInfo.add_pre_exec_commands()->set_value(
+-      "mount --no-mtab --rbind --read-only " +
++      "@mount@ --no-mtab --rbind --read-only " +
+       volume.HOST_PATH() + " " + target);
+   }
+ 
+diff --git i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
+index 536a3c7..e2819dd 100644
+--- i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
++++ w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
+@@ -274,7 +274,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
+     string path = path::join(hostPath, "bin", binary);
+ 
+     if (!os::exists(path)) {
+-      string command = "which " + binary;
++      string command = "@which@ " + binary;
+       Try<string> which = os::shell(command);
+ 
+       if (which.isSome()) {
+@@ -288,7 +288,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
+                               : "No such file or directory"));
+         }
+ 
+-        command = "cp " + realpath.get() + " " + path;
++        command = "@cp@ " + realpath.get() + " " + path;
+         Try<string> cp = os::shell(command);
+         if (cp.isError()) {
+           return Error("Failed to os::shell '" + command + "': " + cp.error());
+@@ -360,7 +360,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
+             Path(realpath.get()).basename());
+ 
+         if (!os::exists(libraryPath)) {
+-          string command = "cp " + realpath.get() + " " + libraryPath;
++          string command = "@cp@ " + realpath.get() + " " + libraryPath;
+           Try<string> cp = os::shell(command);
+           if (cp.isError()) {
+             return Error("Failed to os::shell '" + command + "':"
+diff --git i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
+index 42bc2e1..2f9066e 100644
+--- i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
++++ w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
+@@ -131,7 +131,7 @@ Future<Option<ContainerLaunchInfo>> NamespacesPidIsolatorProcess::prepare(
+   //
+   // TOOD(jieyu): Consider unmount the existing /proc.
+   launchInfo.add_pre_exec_commands()->set_value(
+-      "mount -n -t proc proc /proc -o nosuid,noexec,nodev");
++      "@mount@ -n -t proc proc /proc -o nosuid,noexec,nodev");
+ 
+   return launchInfo;
+ }
+diff --git i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
+index fc68f04..267b040 100644
+--- i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
++++ w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
+@@ -205,9 +205,9 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
+       // here because 'create' will only be invoked during
+       // initialization.
+       Try<string> mount = os::shell(
+-          "mount --bind %s %s && "
+-          "mount --make-private %s && "
+-          "mount --make-shared %s",
++          "@mount@ --bind %s %s && "
++          "@mount@ --make-private %s && "
++          "@mount@ --make-shared %s",
+           rootDir->c_str(),
+           rootDir->c_str(),
+           rootDir->c_str(),
+@@ -227,8 +227,8 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
+       LOG(INFO) << "Making '" << rootDir.get() << "' a shared mount";
+ 
+       Try<string> mount = os::shell(
+-          "mount --make-private %s && "
+-          "mount --make-shared %s",
++          "@mount@ --make-private %s && "
++          "@mount@ --make-shared %s",
+           rootDir->c_str(),
+           rootDir->c_str());
+ 
+diff --git i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
+index 43cf3e4..94bad8b 100644
+--- i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
++++ w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
+@@ -301,7 +301,7 @@ Try<Nothing> PortMapper::addPortMapping(
+       # Check if the `chain` exists in the iptable. If it does not
+       # exist go ahead and install the chain in the iptables NAT
+       # table.
+-      iptables -w -t nat --list %s
++      @iptables@ -w -t nat --list %s
+       if [ $? -ne 0 ]; then
+         # NOTE: When we create the chain, there is a possibility of a
+         # race due to which a container launch can fail. This can
+@@ -315,25 +315,25 @@ Try<Nothing> PortMapper::addPortMapping(
+         # since it can happen only when the chain is created the first
+         # time and two commands for creation of the chain are executed
+         # simultaneously.
+-        (iptables -w -t nat -N %s || exit 1)
++        (@iptables@ -w -t nat -N %s || exit 1)
+ 
+         # Once the chain has been installed add a rule in the PREROUTING
+         # chain to jump to this chain for any packets that are
+         # destined to a local address.
+-        (iptables -w -t nat -A PREROUTING \
++        (@iptables@ -w -t nat -A PREROUTING \
+         -m addrtype --dst-type LOCAL -j %s || exit 1)
+ 
+         # For locally generated packets we need a rule in the OUTPUT
+         # chain as well, since locally generated packets directly hit
+         # the output CHAIN, bypassing PREROUTING.
+-        (iptables -w -t nat -A OUTPUT \
++        (@iptables@ -w -t nat -A OUTPUT \
+         ! -d 127.0.0.0/8 -m addrtype \
+         --dst-type LOCAL -j %s || exit 1)
+       fi
+ 
+       # Within the `chain` go ahead and install the DNAT rule, if it
+       # does not exist.
+-      (iptables -w -t nat -C %s || iptables -t nat -A %s))~",
++      (@iptables@ -w -t nat -C %s || @iptables@ -t nat -A %s))~",
+       chain,
+       chain,
+       chain,
+@@ -360,7 +360,7 @@ Try<Nothing> PortMapper::delPortMapping()
+       # The iptables command searches for the DNAT rules with tag
+       # "container_id: <CNI_CONTAINERID>", and if it exists goes ahead
+       # and deletes it.
+-      iptables -w -t nat -S %s | sed "/%s/ s/-A/iptables -w -t nat -D/e")~",
++      @iptables@ -w -t nat -S %s | sed "/%s/ s/-A/@iptables@ -w -t nat -D/e")~",
+       chain,
+       getIptablesRuleTag()).get();
+ 
+diff --git i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
+index 57d4ccd..68c9577 100644
+--- i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
++++ w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
+@@ -1394,19 +1394,19 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
+   // Check the availability of a few Linux commands that we will use.
+   // We use the blocking os::shell here because 'create' will only be
+   // invoked during initialization.
+-  Try<string> checkCommandTc = os::shell("tc filter show");
++  Try<string> checkCommandTc = os::shell("@tc@ filter show");
+   if (checkCommandTc.isError()) {
+     return Error("Check command 'tc' failed: " + checkCommandTc.error());
+   }
+ 
+   // NOTE: loopback device always exists.
+-  Try<string> checkCommandEthtool = os::shell("ethtool -k lo");
++  Try<string> checkCommandEthtool = os::shell("@ethtool@ -k lo");
+   if (checkCommandEthtool.isError()) {
+     return Error("Check command 'ethtool' failed: "
+                  + checkCommandEthtool.error());
+   }
+ 
+-  Try<string> checkCommandIp = os::shell("ip link show");
++  Try<string> checkCommandIp = os::shell("@ip@ link show");
+   if (checkCommandIp.isError()) {
+     return Error("Check command 'ip' failed: " + checkCommandIp.error());
+   }
+@@ -1940,9 +1940,9 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
+     // visible. It's OK to use the blocking os::shell here because
+     // 'create' will only be invoked during initialization.
+     Try<string> mount = os::shell(
+-        "mount --bind %s %s && "
+-        "mount --make-slave %s && "
+-        "mount --make-shared %s",
++        "@mount@ --bind %s %s && "
++        "@mount@ --make-slave %s && "
++        "@mount@ --make-shared %s",
+         bindMountRoot->c_str(),
+         bindMountRoot->c_str(),
+         bindMountRoot->c_str(),
+@@ -1959,8 +1959,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
+       // shared mount yet (possibly due to slave crash while preparing
+       // the work directory mount). It's safe to re-do the following.
+       Try<string> mount = os::shell(
+-          "mount --make-slave %s && "
+-          "mount --make-shared %s",
++          "@mount@ --make-slave %s && "
++          "@mount@ --make-shared %s",
+           bindMountRoot->c_str(),
+           bindMountRoot->c_str());
+ 
+@@ -1979,8 +1979,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
+           // so that they are in different peer groups.
+           if (entry.shared() == bindMountEntry->shared()) {
+             Try<string> mount = os::shell(
+-                "mount --make-slave %s && "
+-                "mount --make-shared %s",
++                "@mount@ --make-slave %s && "
++                "@mount@ --make-shared %s",
+                 bindMountRoot->c_str(),
+                 bindMountRoot->c_str());
+ 
+@@ -3927,6 +3927,8 @@ Try<Nothing> PortMappingIsolatorProcess::removeHostIPFilters(
+ // TODO(jieyu): Use the Subcommand abstraction to remove most of the
+ // logic here. Completely remove this function once we can assume a
+ // newer kernel where 'setns' works for mount namespaces.
++// cstrahan(nixos): this is executed in the container,
++// so we don't want to substitute paths here.
+ string PortMappingIsolatorProcess::scripts(Info* info)
+ {
+   ostringstream script;
+@@ -3937,7 +3939,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+   // Mark the mount point PORT_MAPPING_BIND_MOUNT_ROOT() as slave
+   // mount so that changes in the container will not be propagated to
+   // the host.
+-  script << "mount --make-rslave " << bindMountRoot << "\n";
++  script << "@mount@ --make-rslave " << bindMountRoot << "\n";
+ 
+   // Disable IPv6 when IPv6 module is loaded as IPv6 packets won't be
+   // forwarded anyway.
+@@ -3945,7 +3947,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+          << " echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6\n";
+ 
+   // Configure lo and eth0.
+-  script << "ip link set " << lo << " address " << hostMAC
++  script << "@ip@ link set " << lo << " address " << hostMAC
+          << " mtu " << hostEth0MTU << " up\n";
+ 
+   // NOTE: This is mostly a kernel issue: in veth_xmit() the kernel
+@@ -3954,12 +3956,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+   // when we receive a packet with a bad checksum. Disabling rx
+   // checksum offloading ensures the TCP layer will checksum and drop
+   // it.
+-  script << "ethtool -K " << eth0 << " rx off\n";
+-  script << "ip link set " << eth0 << " address " << hostMAC << " up\n";
+-  script << "ip addr add " << hostIPNetwork  << " dev " << eth0 << "\n";
++  script << "@ethtool@ -K " << eth0 << " rx off\n";
++  script << "@ip@ link set " << eth0 << " address " << hostMAC << " up\n";
++  script << "@ip@ addr add " << hostIPNetwork  << " dev " << eth0 << "\n";
+ 
+   // Set up the default gateway to match that of eth0.
+-  script << "ip route add default via " << hostDefaultGateway << "\n";
++  script << "@ip@ route add default via " << hostDefaultGateway << "\n";
+ 
+   // Restrict the ephemeral ports that can be used by the container.
+   script << "echo " << info->ephemeralPorts.lower() << " "
+@@ -3988,19 +3990,19 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+   }
+ 
+   // Set up filters on lo and eth0.
+-  script << "tc qdisc add dev " << lo << " ingress\n";
+-  script << "tc qdisc add dev " << eth0 << " ingress\n";
++  script << "@tc@ qdisc add dev " << lo << " ingress\n";
++  script << "@tc@ qdisc add dev " << eth0 << " ingress\n";
+ 
+   // Allow talking between containers and from container to host.
+   // TODO(chzhcn): Consider merging the following two filters.
+-  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
++  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
+          << " protocol ip"
+          << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
+          << " flowid ffff:0"
+          << " match ip dst " << hostIPNetwork.address()
+          << " action mirred egress redirect dev " << eth0 << "\n";
+ 
+-  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
++  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
+          << " protocol ip"
+          << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
+          << " flowid ffff:0"
+@@ -4011,7 +4013,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+   foreach (const PortRange& range,
+            getPortRanges(info->nonEphemeralPorts + info->ephemeralPorts)) {
+     // Local traffic inside a container will not be redirected to eth0.
+-    script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
++    script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
+            << " protocol ip"
+            << " prio " << Priority(IP_FILTER_PRIORITY, HIGH).get() << " u32"
+            << " flowid ffff:0"
+@@ -4020,7 +4022,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+ 
+     // Traffic going to host loopback IP and ports assigned to this
+     // container will be redirected to lo.
+-    script << "tc filter add dev " << eth0 << " parent " << ingress::HANDLE
++    script << "@tc@ filter add dev " << eth0 << " parent " << ingress::HANDLE
+            << " protocol ip"
+            << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
+            << " flowid ffff:0"
+@@ -4032,14 +4034,14 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+   }
+ 
+   // Do not forward the ICMP packet if the destination IP is self.
+-  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
++  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
+          << " protocol ip"
+          << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32"
+          << " flowid ffff:0"
+          << " match ip protocol 1 0xff"
+          << " match ip dst " << hostIPNetwork.address() << "\n";
+ 
+-  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
++  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
+          << " protocol ip"
+          << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32"
+          << " flowid ffff:0"
+@@ -4048,9 +4050,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+          << net::IP::Network::LOOPBACK_V4().address() << "\n";
+ 
+   // Display the filters created on eth0 and lo.
+-  script << "tc filter show dev " << eth0
++  script << "@tc@ filter show dev " << eth0
+          << " parent " << ingress::HANDLE << "\n";
+-  script << "tc filter show dev " << lo
++  script << "@tc@ filter show dev " << lo
+          << " parent " << ingress::HANDLE << "\n";
+ 
+   // If throughput limit for container egress traffic exists, use HTB
+@@ -4062,9 +4064,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+   // throughput. TBF requires other parameters such as 'burst' that
+   // HTB already has default values for.
+   if (egressRateLimitPerContainer.isSome()) {
+-    script << "tc qdisc add dev " << eth0 << " root handle "
++    script << "@tc@ qdisc add dev " << eth0 << " root handle "
+            << CONTAINER_TX_HTB_HANDLE << " htb default 1\n";
+-    script << "tc class add dev " << eth0 << " parent "
++    script << "@tc@ class add dev " << eth0 << " parent "
+            << CONTAINER_TX_HTB_HANDLE << " classid "
+            << CONTAINER_TX_HTB_CLASS_ID << " htb rate "
+            << egressRateLimitPerContainer.get().bytes() * 8 << "bit\n";
+@@ -4075,12 +4077,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+     // fq_codel, which has a larger buffer and better control on
+     // buffer bloat.
+     // TODO(cwang): Verity that fq_codel qdisc is available.
+-    script << "tc qdisc add dev " << eth0
++    script << "@tc@ qdisc add dev " << eth0
+            << " parent " << CONTAINER_TX_HTB_CLASS_ID << " fq_codel\n";
+ 
+     // Display the htb qdisc and class created on eth0.
+-    script << "tc qdisc show dev " << eth0 << "\n";
+-    script << "tc class show dev " << eth0 << "\n";
++    script << "@tc@ qdisc show dev " << eth0 << "\n";
++    script << "@tc@ class show dev " << eth0 << "\n";
+   }
+ 
+   return script.str();
+diff --git i/src/slave/containerizer/mesos/isolators/posix/disk.cpp w/src/slave/containerizer/mesos/isolators/posix/disk.cpp
+index eb23025..db268ea 100644
+--- i/src/slave/containerizer/mesos/isolators/posix/disk.cpp
++++ w/src/slave/containerizer/mesos/isolators/posix/disk.cpp
+@@ -572,7 +572,7 @@ private:
+     // NOTE: The supervisor childhook will watch the parent process and kill
+     // the 'du' process in case that the parent die.
+     Try<Subprocess> s = subprocess(
+-        "du",
++        "@du@",
+         command,
+         Subprocess::PATH(os::DEV_NULL),
+         Subprocess::PIPE(),
+diff --git i/src/slave/containerizer/mesos/isolators/volume/image.cpp w/src/slave/containerizer/mesos/isolators/volume/image.cpp
+index 35966aa..b62fc86 100644
+--- i/src/slave/containerizer/mesos/isolators/volume/image.cpp
++++ w/src/slave/containerizer/mesos/isolators/volume/image.cpp
+@@ -231,7 +231,7 @@ Future<Option<ContainerLaunchInfo>> VolumeImageIsolatorProcess::_prepare(
+ 
+     CommandInfo* command = launchInfo.add_pre_exec_commands();
+     command->set_shell(false);
+-    command->set_value("mount");
++    command->set_value("@mount@");
+     command->add_arguments("mount");
+     command->add_arguments("-n");
+     command->add_arguments("--rbind");
+diff --git i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
+index b321b86..8ed3e78 100644
+--- i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
++++ w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
+@@ -265,7 +265,7 @@ Future<Option<ContainerLaunchInfo>> VolumeSandboxPathIsolatorProcess::prepare(
+ 
+       CommandInfo* command = launchInfo.add_pre_exec_commands();
+       command->set_shell(false);
+-      command->set_value("mount");
++      command->set_value("@mount@");
+       command->add_arguments("mount");
+       command->add_arguments("-n");
+       command->add_arguments("--rbind");
+diff --git i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
+index 69faa03..01a3ed6 100644
+--- i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
++++ w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
+@@ -266,7 +266,7 @@ Future<Nothing> CopyBackendProcess::_provision(
+ #endif // __APPLE__ || __FreeBSD__
+ 
+   Try<Subprocess> s = subprocess(
+-      "cp",
++      "@cp@",
+       args,
+       Subprocess::PATH(os::DEV_NULL),
+       Subprocess::PATH(os::DEV_NULL),
+@@ -313,7 +313,7 @@ Future<bool> CopyBackendProcess::destroy(const string& rootfs)
+   vector<string> argv{"rm", "-rf", rootfs};
+ 
+   Try<Subprocess> s = subprocess(
+-      "rm",
++      "@rm@",
+       argv,
+       Subprocess::PATH(os::DEV_NULL),
+       Subprocess::FD(STDOUT_FILENO),
+diff --git i/src/uri/fetchers/copy.cpp w/src/uri/fetchers/copy.cpp
+index 17f69be..831b08a 100644
+--- i/src/uri/fetchers/copy.cpp
++++ w/src/uri/fetchers/copy.cpp
+@@ -97,8 +97,8 @@ Future<Nothing> CopyFetcherPlugin::fetch(
+   VLOG(1) << "Copying '" << uri.path() << "' to '" << directory << "'";
+ 
+ #ifndef __WINDOWS__
+-  const char* copyCommand = "cp";
+-  const vector<string> argv = {"cp", "-a", uri.path(), directory};
++  const char* copyCommand = "@cp@";
++  const vector<string> argv = {"@cp@", "-a", uri.path(), directory};
+ #else // __WINDOWS__
+   const char* copyCommand = os::Shell::name;
+   const vector<string> argv =
+diff --git i/src/uri/fetchers/curl.cpp w/src/uri/fetchers/curl.cpp
+index f34daf2..6a50341 100644
+--- i/src/uri/fetchers/curl.cpp
++++ w/src/uri/fetchers/curl.cpp
+@@ -109,7 +109,7 @@ Future<Nothing> CurlFetcherPlugin::fetch(
+   };
+ 
+   Try<Subprocess> s = subprocess(
+-      "curl",
++      "@curl@",
+       argv,
+       Subprocess::PATH(os::DEV_NULL),
+       Subprocess::PIPE(),
+diff --git i/src/uri/fetchers/docker.cpp w/src/uri/fetchers/docker.cpp
+index 91db13b..82a7fc4 100644
+--- i/src/uri/fetchers/docker.cpp
++++ w/src/uri/fetchers/docker.cpp
+@@ -114,7 +114,7 @@ static Future<http::Response> curl(
+ 
+   // TODO(jieyu): Kill the process if discard is called.
+   Try<Subprocess> s = subprocess(
+-      "curl",
++      "@curl@",
+       argv,
+       Subprocess::PATH(os::DEV_NULL),
+       Subprocess::PIPE(),
+@@ -229,7 +229,7 @@ static Future<int> download(
+ 
+   // TODO(jieyu): Kill the process if discard is called.
+   Try<Subprocess> s = subprocess(
+-      "curl",
++      "@curl@",
+       argv,
+       Subprocess::PATH(os::DEV_NULL),
+       Subprocess::PIPE(),
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch b/nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch
new file mode 100644
index 000000000000..bee578cc3e93
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch
@@ -0,0 +1,12 @@
+diff --git a/src/linux/fs.cpp b/src/linux/fs.cpp
+index 913e233..c2917a6 100644
+--- a/src/linux/fs.cpp
++++ b/src/linux/fs.cpp
+@@ -17,6 +17,7 @@
+ #include <errno.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <syscall.h>
+ 
+ #include <linux/limits.h>
+ #include <linux/unistd.h>
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
new file mode 100644
index 000000000000..c44b7ac1dc76
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, go-bindata, libvirt, qemu
+, gpgme, makeWrapper, vmnet, python
+, docker-machine-kvm, docker-machine-kvm2
+, extraDrivers ? []
+}:
+
+let
+  drivers = stdenv.lib.filter (d: d != null) (extraDrivers
+            ++ stdenv.lib.optionals stdenv.isLinux [ docker-machine-kvm docker-machine-kvm2 ]);
+
+  binPath = drivers
+            ++ stdenv.lib.optionals stdenv.isLinux ([ libvirt qemu ]);
+
+in buildGoPackage rec {
+  pname   = "minikube";
+  name    = "${pname}-${version}";
+  version = "0.30.0";
+
+  kubernetesVersion = "1.11.2";
+
+  goPackagePath = "k8s.io/minikube";
+
+  src = fetchFromGitHub {
+    owner  = "kubernetes";
+    repo   = "minikube";
+    rev    = "v${version}";
+    sha256 = "02jxwh8qrvjn31rzjwx23908nd1i592drfdykxbc5b6a62fwp02z";
+  };
+
+  buildInputs = [ go-bindata makeWrapper gpgme ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin vmnet;
+  subPackages = [ "cmd/minikube" ] ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin "cmd/drivers/hyperkit";
+
+  preBuild = ''
+    pushd go/src/${goPackagePath} >/dev/null
+
+    go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/...
+
+    ISO_VERSION=$(grep "^ISO_VERSION" Makefile | sed "s/^.*\s//")
+    ISO_BUCKET=$(grep "^ISO_BUCKET" Makefile | sed "s/^.*\s//")
+    KUBERNETES_VERSION=${kubernetesVersion}
+
+    export buildFlagsArray="-ldflags=\
+      -X k8s.io/minikube/pkg/version.version=v${version} \
+      -X k8s.io/minikube/pkg/version.isoVersion=$ISO_VERSION \
+      -X k8s.io/minikube/pkg/version.isoPath=$ISO_BUCKET \
+      -X k8s.io/minikube/vendor/k8s.io/client-go/pkg/version.gitVersion=$KUBERNETES_VERSION \
+      -X k8s.io/minikube/vendor/k8s.io/kubernetes/pkg/version.gitVersion=$KUBERNETES_VERSION"
+
+    popd >/dev/null
+  '';
+
+  postInstall = ''
+    mkdir -p $bin/share/bash-completion/completions/
+    MINIKUBE_WANTUPDATENOTIFICATION=false MINIKUBE_WANTKUBECTLDOWNLOADMSG=false HOME=$PWD $bin/bin/minikube completion bash > $bin/share/bash-completion/completions/minikube
+    mkdir -p $bin/share/zsh/site-functions/
+    MINIKUBE_WANTUPDATENOTIFICATION=false MINIKUBE_WANTKUBECTLDOWNLOADMSG=false HOME=$PWD $bin/bin/minikube completion zsh > $bin/share/zsh/site-functions/_minikube
+  '';
+
+  postFixup = ''
+    wrapProgram $bin/bin/${pname} --prefix PATH : $bin/bin:${stdenv.lib.makeBinPath binPath}
+  '' + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mv $bin/bin/hyperkit $bin/bin/docker-machine-driver-hyperkit
+  '';
+
+  meta = with stdenv.lib; {
+    homepage    = https://github.com/kubernetes/minikube;
+    description = "A tool that makes it easy to run Kubernetes locally";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ ebzzry copumpkin ];
+    platforms   = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix
new file mode 100644
index 000000000000..6f2276155024
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/minishift/default.nix
@@ -0,0 +1,70 @@
+{ lib, buildGoPackage, fetchFromGitHub, go-bindata, pkgconfig, makeWrapper
+, glib, gtk3, libappindicator-gtk3, gpgme, openshift, ostree, libselinux, btrfs-progs
+, lvm2, docker-machine-kvm
+}:
+
+let
+  version = "1.29.0";
+
+  # Update these on version bumps according to Makefile
+  centOsIsoVersion = "v1.13.0";
+  openshiftVersion = "v3.11.0";
+
+in buildGoPackage rec {
+  name = "minishift-${version}";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "minishift";
+    repo = "minishift";
+    rev = "v${version}";
+    sha256 = "17scvv60hgk7s9fy4s9z26sc8a69ryh33rhr1f7p92kb5wfh2x40";
+  };
+
+  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 = ''
+    substituteInPlace vendor/github.com/containers/image/storage/storage_image.go \
+      --replace 'nil, diff' 'diff'
+
+    # 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 "$bin/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/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix
new file mode 100644
index 000000000000..8486f0d53067
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "nomad-${version}";
+  version = "0.7.1";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/hashicorp/nomad";
+  subPackages = [ "." ];
+
+  src = fetchFromGitHub {
+    owner = "hashicorp";
+    repo = "nomad";
+    inherit rev;
+    sha256 = "0hn80dqzxkwvk1zjk6px725mb2i3c06smqfj0yyjz96vgf7qbqy2";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://www.nomadproject.io/;
+    description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
+    platforms = platforms.linux;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ rushmorem pradeepchhetri ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
new file mode 100644
index 000000000000..a34c728da168
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
@@ -0,0 +1,91 @@
+{ stdenv, lib, fetchFromGitHub, removeReferencesTo, which, go, go-bindata, makeWrapper, rsync, utillinux
+, coreutils, kerberos, clang
+, components ? [
+  "cmd/oc"
+  "cmd/openshift"
+  ]
+}:
+
+with lib;
+
+let
+  version = "3.11.0";
+  ver = stdenv.lib.elemAt (stdenv.lib.splitString "." version);
+  versionMajor = ver 0;
+  versionMinor = ver 1;
+  versionPatch = ver 2;
+  gitCommit = "0cbc58b";
+  # version is in vendor/k8s.io/kubernetes/pkg/version/base.go
+  k8sversion = "v1.11.1";
+  k8sgitcommit = "b1b2997";
+  k8sgitMajor = "0";
+  k8sgitMinor = "1";
+in stdenv.mkDerivation rec {
+  name = "openshift-origin-${version}";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "openshift";
+    repo = "origin";
+    rev = "v${version}";
+    sha256 = "06q4v2a1mm6c659ab0rzkqz6b66vx4avqfg0s9xckwhq420lzgka";
+};
+
+  # go > 1.10
+  # [FATAL] [14:44:02+0000] Please install Go version go or use PERMISSIVE_GO=y to bypass this check.
+  buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata kerberos clang ];
+
+  outputs = [ "out" ];
+
+  patchPhase = ''
+    patchShebangs ./hack
+
+    substituteInPlace pkg/oc/clusterup/docker/host/host.go  \
+      --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt findmnt' \
+      'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/findmnt'
+
+    substituteInPlace pkg/oc/clusterup/docker/host/host.go  \
+      --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mount' \
+      'nsenter --mount=/rootfs/proc/1/ns/mnt ${utillinux}/bin/mount'
+
+    substituteInPlace pkg/oc/clusterup/docker/host/host.go  \
+      --replace 'nsenter --mount=/rootfs/proc/1/ns/mnt mkdir' \
+      'nsenter --mount=/rootfs/proc/1/ns/mnt ${coreutils}/bin/mkdir'
+  '';
+
+  buildPhase = ''
+    # 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_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/"
+    install -D -t "$out/etc/bash_completion.d" contrib/completions/bash/*
+    install -D -t "$out/share/zsh/site-functions" contrib/completions/zsh/*
+  '';
+
+  preFixup = ''
+    find $out/bin -type f -exec remove-references-to -t ${go} '{}' +
+  '';
+
+  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.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix
new file mode 100644
index 000000000000..c276c2e752fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/pachyderm/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+  name = "pachyderm-${version}";
+  version = "1.4.6";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/pachyderm/pachyderm";
+  subPackages = [ "src/server/cmd/pachctl" ];
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "pachyderm";
+    repo = "pachyderm";
+    sha256 = "1fivihn9s04lmzdiwg0f05qm708fb14xy81pbc31wxdyjw28m8ns";
+  };
+
+  meta = with lib; {
+    description = "Containerized Data Analytics";
+    homepage = https://github.com/pachyderm/pachyderm;
+    license = licenses.asl20;
+    maintainers = with maintainers; [offline];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix
new file mode 100644
index 000000000000..26c39f8cbe21
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
new file mode 100644
index 000000000000..6401194eac20
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchzip, makeWrapper, jre, pythonPackages, coreutils, hadoop
+, RSupport? true, R
+, mesosSupport ? true, mesos
+, version
+}:
+
+let
+  sha256 = {
+    "1.6.3" = "142hw73wf20d846l83ydx0yg7qj5qxywm4h7qrhwnd7lsy2sbnjf";
+    "2.2.1" = "10nxsf9a6hj1263sxv0cbdqxdb8mb4cl6iqq32ljq9ydvk32s99c";
+  }.${version};
+in
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "spark-${version}";
+
+  src = fetchzip {
+    inherit sha256;
+    url    = "mirror://apache/spark/${name}/${name}-bin-without-hadoop.tgz";
+  };
+
+  buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
+    ++ optional RSupport R
+    ++ optional mesosSupport mesos;
+
+  untarDir = "${name}-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"''}
+    ${optionalString mesosSupport
+      ''export MESOS_NATIVE_LIBRARY="$MESOS_NATIVE_LIBRARY"''}
+    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/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
new file mode 100644
index 000000000000..bb179606b367
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+  name    = "${pname}-${version}";
+  pname   = "amazon-ssm-agent";
+  version = "2.0.633.0";
+
+  goPackagePath = "github.com/aws/${pname}";
+  subPackages   = [ "agent" ];
+
+  src = fetchFromGitHub {
+    rev    = "v${version}";
+    owner  = "aws";
+    repo   = pname;
+    sha256 = "10arshfn2k3m3zzgw8b3xc6ywd0ss73746nq5srh2jir7mjzi4xv";
+  };
+
+  preBuild = ''
+    mv go/src/${goPackagePath}/vendor strange-vendor
+    mv strange-vendor/src go/src/${goPackagePath}/vendor
+  '';
+
+  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.linux;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
new file mode 100644
index 000000000000..bb0f3229ea5e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, buildPackages, buildGoPackage, fetchFromGitHub }:
+
+let isCrossBuild = stdenv.hostPlatform != stdenv.buildPlatform; in
+
+buildGoPackage rec {
+  name = "stern-${version}";
+  version = "1.10.0";
+
+  goPackagePath = "github.com/wercker/stern";
+
+  src = fetchFromGitHub {
+    owner = "wercker";
+    repo = "stern";
+    rev = "${version}";
+    sha256 = "05wsif0pwh2v4rw4as36f1d9r149zzp2nyc0z4jwnj9nx58nfpll";
+  };
+
+  goDeps = ./deps.nix;
+
+  postInstall =
+    let stern = if isCrossBuild then buildPackages.stern else "$bin"; in
+    ''
+      mkdir -p $bin/share/bash-completion/completions
+      ${stern}/bin/stern --completion bash > $bin/share/bash-completion/completions/stern
+      mkdir -p $bin/share/zsh/site-functions
+      ${stern}/bin/stern --completion zsh > $bin/share/zsh/site-functions/_stern
+    '';
+
+  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/nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/stern/deps.nix
new file mode 100644
index 000000000000..fff5cf8c0de4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix b/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix
new file mode 100644
index 000000000000..c61896d89218
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  version = "3.7.7";
+  name = "taktuk-${version}";
+
+  buildInputs = [ perl ];
+
+  src = fetchurl {
+    url = "https://gforge.inria.fr/frs/download.php/33412/${name}.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/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
new file mode 100644
index 000000000000..708b59fce243
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+buildGoPackage rec {
+  name = "${pname}-${version}";
+  pname = "terraform-docs";
+  version = "0.5.0";
+
+  goPackagePath = "github.com/segmentio/${pname}";
+
+  src = fetchFromGitHub {
+    owner  = "segmentio";
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "12w2yr669hk5kxdb9rrzsn8hwvx8rzrc1rmn8hs9l8z1bkfhr4gg";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
new file mode 100644
index 000000000000..dd4a36807ea1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoPackage, fetchFromGitHub}:
+
+buildGoPackage rec {
+  name = "terraform-inventory-${version}";
+  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";
+    platforms = platforms.all;
+    license = licenses.mit;
+    maintainers = with maintainers; [ htr ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/deps.nix
new file mode 100644
index 000000000000..9f7b5e317fe3
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile
new file mode 100644
index 000000000000..c4f9a5511de9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'terraform_landscape'
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/Gemfile.lock
new file mode 100644
index 000000000000..b801fad546df
--- /dev/null
+++ b/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
+   1.16.3
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix
new file mode 100644
index 000000000000..aa5235068505
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/default.nix
@@ -0,0 +1,18 @@
+{ lib, bundlerApp, ruby }:
+let
+  version = (import ./gemset.nix).terraform_landscape.version;
+in bundlerApp {
+  pname = "terraform_landscape";
+
+  inherit ruby;
+  gemdir = ./.;
+  exes = [ "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; apsl20;
+    maintainers = with maintainers; [ mbode manveru ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-landscape/gemset.nix
new file mode 100644
index 000000000000..aa3f5142aa5e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/data.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/data.nix
new file mode 100644
index 000000000000..3b22aa3b04d8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/data.nix
@@ -0,0 +1,668 @@
+# Generated with ./update-all
+{
+  acme =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-acme";
+      version = "1.0.1";
+      sha256  = "1yh0dqmrwa1gqpnzj4mdv9p9081azpcskqjrbmy2lzmn3di2ag3r";
+    };
+  alicloud =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-alicloud";
+      version = "1.25.0";
+      sha256  = "09f0vdzkifj2mk1qccacpnlqiihbhhb2sfd21rpxbqscmj6a7vj1";
+    };
+  archive =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-archive";
+      version = "1.1.0";
+      sha256  = "1fsynv725cmqz819v9p4i4h4w4y77mbya5y9v81sqvacqvr3i05h";
+    };
+  arukas =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-arukas";
+      version = "1.0.0";
+      sha256  = "1v8jzns8czy8navdrabsvc9zk1s9vs1718ngjlx9vs13r3bkm2fc";
+    };
+  atlas =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-atlas";
+      version = "0.1.1";
+      sha256  = "0k73vv14vnjl5qm33w54s5zzi0mmk1kn2zs3qkfq71aqi9ml7d14";
+    };
+  aws =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-aws";
+      version = "1.52.0";
+      sha256  = "037n26spp49r4b4f6cyv6d3sgqw2d80g97fqgz1j0hcwi0am56h1";
+    };
+  azurerm =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-azurerm";
+      version = "1.20.0";
+      sha256  = "0hfq5gk4bhmw65x1rsdpwv0massgr1sczvcbyh572qlkkhvm59xd";
+    };
+  azurestack =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-azurestack";
+      version = "0.4.0";
+      sha256  = "1c9am0v4aq95k1jblc767vykk76dp0d6z2fvy148ag77cy2jgryc";
+    };
+  bigip =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-bigip";
+      version = "0.12.0";
+      sha256  = "0fmmlx757hph45ffm19zafjfkldg41qkw83vz0jjmvxicza1afbd";
+    };
+  bitbucket =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-bitbucket";
+      version = "1.0.0";
+      sha256  = "0gi8p1q0y8x5y8lqihijkpqs3v152h0q7icv7ixk33xsdcvb418y";
+    };
+  brightbox =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-brightbox";
+      version = "1.0.5";
+      sha256  = "0sn7k5bqgms5sxjhjikmby0jf2n6y14z6s4wsifxaw7b0082fy28";
+    };
+  chef =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-chef";
+      version = "0.1.0";
+      sha256  = "17fppyhxi0rd5v8khw2psdn2hdv5j79hxhinwkzrq5s4iccqk5dw";
+    };
+  circonus =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-circonus";
+      version = "0.2.0";
+      sha256  = "1vcia3p31cgdwjs06k4244bk7ib2qp1f2lhc7hmyhdfi1c8jym45";
+    };
+  clc =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-clc";
+      version = "0.1.0";
+      sha256  = "0gvsjnwk6xkgxai1gxsjf0hsjxbv8d8jg5hq8yd3hjhc6785fgnf";
+    };
+  cloudflare =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-cloudflare";
+      version = "1.9.0";
+      sha256  = "0z11zaii99cilqcq4lgikaanb2zc457qv19sxdh6b3v88n5n8qsf";
+    };
+  cloudscale =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-cloudscale";
+      version = "1.0.1";
+      sha256  = "0lhzwbm1a2s11s0ahb3vxfvshh385fgy1ficvip4rl31dahhwrav";
+    };
+  cloudstack =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-cloudstack";
+      version = "0.1.5";
+      sha256  = "139wq6rr6fczjz496fqkxh6cmscx5hfnv2hvhfwpkhvqipsnlxmq";
+    };
+  cobbler =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-cobbler";
+      version = "1.0.1";
+      sha256  = "1z0iijfrbbdrgszvc7jlcr4105zragbc0iq8x48vi24yipqgf5a8";
+    };
+  consul =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-consul";
+      version = "2.2.0";
+      sha256  = "13jwvf7n7238pzvdq9m6vnl9vqa9hkr1mrcf9sa1q9lxkim9ijfk";
+    };
+  datadog =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-datadog";
+      version = "1.6.0";
+      sha256  = "16rp6kqax7i8fnl4id3sg0jmhjswx7wrnn1mp4z29gca46ji1nfh";
+    };
+  digitalocean =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-digitalocean";
+      version = "1.1.0";
+      sha256  = "1w5xslm8939rz13bsiv9hfcl8cyvi03gr0h24c0ybwj8alxmxhb4";
+    };
+  dme =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-dme";
+      version = "0.1.0";
+      sha256  = "1ipqw1sbx0i9rhxawsysrqxvf10z8ra2y86xwd4iz0f12x9drblv";
+    };
+  dns =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-dns";
+      version = "2.0.0";
+      sha256  = "1km0pq1wp0bdccb612z9n0kj9w7hn1yvhk7xszwp2mzs8qmd7flv";
+    };
+  dnsimple =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-dnsimple";
+      version = "0.1.0";
+      sha256  = "0gkd5i69ldm5zn34p3k68aqk798g6g0d60gw7yp316l7mskvrx7h";
+    };
+  docker =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-docker";
+      version = "1.1.0";
+      sha256  = "1ba9z9fd69hpg6kg30nf95zzskzipi74s1aadywc068gfrkdm9jj";
+    };
+  dyn =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-dyn";
+      version = "1.1.0";
+      sha256  = "0sx4h3drb230m69lsmafyfd2cfvwnb9gld8s6ky54115kd3nckml";
+    };
+  external =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-external";
+      version = "1.0.0";
+      sha256  = "1sh0m8d6wp76h1b89j820yl3caji0f0wlgq3pwa5nk99h73rlndn";
+    };
+  fastly =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-fastly";
+      version = "0.4.0";
+      sha256  = "1fkn9b6ibs36cmhknb3x05g31rf73w70xwx05rh9fhybrz5dd9z9";
+    };
+  flexibleengine =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-flexibleengine";
+      version = "1.2.1";
+      sha256  = "000v6fmmnwfibzfssk23s9qwrb8a9l0j1qd14x2dqsc7ql0kbnz8";
+    };
+  github =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-github";
+      version = "1.3.0";
+      sha256  = "1k7816dbpsjjbm3pa6l0qlrxw5hh8z5iwdr8mp1mp5liidhl6bqs";
+    };
+  gitlab =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-gitlab";
+      version = "1.0.0";
+      sha256  = "1kxmzdzdb6fc64i2bzch6020zfk0ygms9gh5mm1bypsyqmj4qc6r";
+    };
+  google =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-google";
+      version = "1.20.0";
+      sha256  = "1brkq4iz140miai6gzvzxfl28qi4j8gcc22igd7cb4qzafnlbxaj";
+    };
+  grafana =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-grafana";
+      version = "1.3.0";
+      sha256  = "1gyma31iv05nfy9jrd8zlkls35fbrxx4nrh56gdgwchv054rxzff";
+    };
+  hcloud =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-hcloud";
+      version = "1.6.0";
+      sha256  = "19kax1l2l6vr8cwgy14ahhafnvlxgkw86xx2g9ajfg70d0q4zs3g";
+    };
+  helm =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-helm";
+      version = "0.7.0";
+      sha256  = "172l5cpl6vfdz75s3s60iqcavi5m66gwbrm7aw47hby8lv5ivflc";
+    };
+  heroku =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-heroku";
+      version = "1.7.0";
+      sha256  = "0zk5w4xwbg631m7592gfmdbsmrr0r7vla5nd1p5frh6szg6psy6m";
+    };
+  http =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-http";
+      version = "1.0.1";
+      sha256  = "1bnqrx4xya3lm5wp4byy6npazll6w1g6bv4rawgncswsgx08zqng";
+    };
+  huaweicloud =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-huaweicloud";
+      version = "1.2.0";
+      sha256  = "0r05dfgpzci0lpc2ivbrj6ivib8svbks9612by3w3zakzclpv467";
+    };
+  icinga2 =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-icinga2";
+      version = "0.2.0";
+      sha256  = "02ladn2w75k35vn8llj3zh9hbpnnnvpm47c9f29zshfs04acwbq0";
+    };
+  ignition =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-ignition";
+      version = "1.0.1";
+      sha256  = "1j9rgwrb4bnm8a44rg3d9fry46wlpfkwxxpkpw9y6l24php0qxh8";
+    };
+  influxdb =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-influxdb";
+      version = "1.0.2";
+      sha256  = "05l2i0z35x6462mm1inn6jhp1pfi7df6hv52lhcyypk0lv2rgqf9";
+    };
+  kubernetes =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-kubernetes";
+      version = "1.4.0";
+      sha256  = "14bhqrpx0z4qn51xwcklafva46ipx05q6myy7xh5wf6wpjz69j9p";
+    };
+  librato =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-librato";
+      version = "0.1.0";
+      sha256  = "0bxadwj5s7bvc4vlymn3w6qckf14hz82r7q98w2nh55sqr52d923";
+    };
+  linode =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-linode";
+      version = "1.3.0";
+      sha256  = "1683nkpq7wnc67pphablcmaifq2l1pz3gc9y5y9jbslllphy92v5";
+    };
+  local =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-local";
+      version = "1.1.0";
+      sha256  = "1qxfyyg8k43rw0gny4dadamc2a9hk3x6ybdivifjc17m7il0janc";
+    };
+  logentries =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-logentries";
+      version = "1.0.0";
+      sha256  = "04xprkb9zwdjyzmsdf10bgmn8sa8q7jw0izz8lw0cc9hag97qgbq";
+    };
+  logicmonitor =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-logicmonitor";
+      version = "1.2.0";
+      sha256  = "1zir35i8j5w7ra4i7f9k0ghac9b3bar0dy16sqy1kqwbh4ikmhb8";
+    };
+  mailgun =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-mailgun";
+      version = "0.1.0";
+      sha256  = "1hjhjfxqbr43wa248c6hc91lx5b2gdw4vl92l2i6aqp17rbc0wfj";
+    };
+  mysql =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-mysql";
+      version = "1.5.0";
+      sha256  = "1fsqfqz1db1pv8agr5zgqqyhizd7647n6rznf24iwapy1q0wkvmi";
+    };
+  netlify =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-netlify";
+      version = "0.1.0";
+      sha256  = "1lf66nzqcgzjwvh1lv2jp8gcj6apdanlinci5pri8mgv5r1pv40l";
+    };
+  newrelic =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-newrelic";
+      version = "1.2.0";
+      sha256  = "1dh2i7qps7nr876y54jrjb414vdjhd8c7m1zwdiny93ggvl8f5j2";
+    };
+  nomad =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-nomad";
+      version = "1.2.0";
+      sha256  = "1z3knyjn5ymbk4vaja4ka9zn57cgl7vr7hqv6ybqw0q9i2ykaici";
+    };
+  ns1 =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-ns1";
+      version = "1.0.0";
+      sha256  = "0zjdhz6miwlg3b68pbd99c6nw7hhyzxy736734xz8g3w89xn18f5";
+    };
+  nsxt =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-nsxt";
+      version = "1.0.0";
+      sha256  = "09yliw59wp9flfgmkznbf4syl510wpxsplzr8sa9m2vw0yc78jnq";
+    };
+  null =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-null";
+      version = "1.0.0";
+      sha256  = "12vpa09xrq8z1pjq0bwzq3889c4fl6c5kvynwqy0z1pdx21m60ha";
+    };
+  nutanix =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-nutanix";
+      version = "1.0.0";
+      sha256  = "16nky5ryyjvv7vny18ymxvy20ivwmqw7lagnz48pq8mnwwrp5541";
+    };
+  oci =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-oci";
+      version = "3.10.0";
+      sha256  = "0dhz3y62dp66jkn0q4x7v2cnqw8kiq34sgyfx8mw706hg9sdqb0l";
+    };
+  oneandone =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-oneandone";
+      version = "1.3.0";
+      sha256  = "0c412nqg3k17124i51nn3ffra6gcll904h37h7hyvz97cdblcncn";
+    };
+  opc =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-opc";
+      version = "1.3.1";
+      sha256  = "0rpkhaja6vq1y1xah136vjlp1d5v9adymq300ajssbjkqf93wzs6";
+    };
+  openstack =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-openstack";
+      version = "1.12.0";
+      sha256  = "1zv5z55yiqvsh5sh26qlyw8fcc7kyw7v4p60kfnw2ds5kd0b51i1";
+    };
+  opentelekomcloud =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-opentelekomcloud";
+      version = "1.4.0";
+      sha256  = "0dv756npyhadzr08zlv28ghazaj1fdp3avcld7y6ri99hamncm95";
+    };
+  opsgenie =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-opsgenie";
+      version = "0.1.0";
+      sha256  = "0zs0cl6jl4rijcs6vv5k8k5pyf0zs52dlgqcnb1gzslh8sg5pdkm";
+    };
+  oraclepaas =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-oraclepaas";
+      version = "1.4.0";
+      sha256  = "1hhkijxnwmm21b0w9qc3lk5vfcg0ac0sg7v4g0ffjqv68mssrz6x";
+    };
+  ovh =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-ovh";
+      version = "0.3.0";
+      sha256  = "05bzkwa50alh8mpslh64dddp815m8df240w1mmphdmp9rsi6hqp8";
+    };
+  packet =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-packet";
+      version = "1.2.5";
+      sha256  = "1c40w1q18piip4fn572mnf67g07h6g03hnin23c7jw265m4yr222";
+    };
+  pagerduty =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-pagerduty";
+      version = "1.2.1";
+      sha256  = "1b0fbzqalcxngnxk51afxkhs82bj68sjakvb28p0im0x1lblxj0n";
+    };
+  panos =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-panos";
+      version = "1.4.1";
+      sha256  = "1mlz01v01675cf9ja8i42c6ssklf65kd8wpjzf0j472lfwki4xpp";
+    };
+  postgresql =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-postgresql";
+      version = "0.1.2";
+      sha256  = "08wv03j70mych4nnamivjihwvca3aksjxgjlj8yasz5292qgl05w";
+    };
+  powerdns =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-powerdns";
+      version = "0.1.0";
+      sha256  = "1k9xjx2smk6478dsrcnqk1k6r2pddpa9n8aghq5d1a5yhfsq5zzz";
+    };
+  profitbricks =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-profitbricks";
+      version = "1.4.0";
+      sha256  = "1yrmlpqc1bzgs3c8pxhfbscf4anjri6gv6sd8i8rn764z8xhwaff";
+    };
+  rabbitmq =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-rabbitmq";
+      version = "1.0.0";
+      sha256  = "1md928243r4c46ihjnavz2375nxnfyhknyc86r9853hwhhyhsx5d";
+    };
+  rancher =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-rancher";
+      version = "1.2.1";
+      sha256  = "1z0gqchb268w5mw0519fbx4126nkxb9kvvay8vjj287yxdpi5grj";
+    };
+  random =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-random";
+      version = "2.0.0";
+      sha256  = "0plg139pbvqwbs5hcl7d5kjn7vwknjr4n0ysc2j5s25iyhikkv9s";
+    };
+  rightscale =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-rightscale";
+      version = "1.3.0";
+      sha256  = "1brzxyd5hg99x75qh0p707lr9cvqpzx2az1swr624w3rzhjl2ygm";
+    };
+  rundeck =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-rundeck";
+      version = "0.1.0";
+      sha256  = "0rp8cgnp8in52g7zkl2lj42hns0g27m8f7l42lhfnv6n2vv5qxcg";
+    };
+  runscope =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-runscope";
+      version = "0.5.0";
+      sha256  = "0n0m39gaiwhqigjny51a7g36ldik33alimkqqbv6hqyzrhk0qs8h";
+    };
+  scaleway =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-scaleway";
+      version = "1.8.0";
+      sha256  = "1vr3im5jas7m3yn5529m6ghhx4lxf2lksqbznpwyi351sbsn4ji2";
+    };
+  selvpc =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-selvpc";
+      version = "0.3.0";
+      sha256  = "1s1p0qa9x007hq26i4h0gcqpyx54jnwvg8d6ya044gm7gghhviz4";
+    };
+  softlayer =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-softlayer";
+      version = "0.0.1";
+      sha256  = "1xcg5zm2n1pc3l7ng94k589r7ykv6fxsmr5qn9xmmpdf912rdnfq";
+    };
+  spotinst =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-spotinst";
+      version = "1.4.0";
+      sha256  = "0kb09v18ksh2r4b5k9iv4rzq403zk1shpakk54pmq8s6i5jd085g";
+    };
+  statuscake =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-statuscake";
+      version = "0.2.0";
+      sha256  = "065izach0hq04664hz7rc3gd0r3l06lzwcbj5800zjfv1inp6pxs";
+    };
+  telefonicaopencloud =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-telefonicaopencloud";
+      version = "1.0.0";
+      sha256  = "1761wkjz3d2458xl7855lxklyxgyk05fddh92rp6975y0ca6xa5m";
+    };
+  template =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-template";
+      version = "1.0.0";
+      sha256  = "0jl6bp6gwg96sdk5j6s13vv1j9gxjpy2yva3barmzv9138i665mz";
+    };
+  tencentcloud =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-tencentcloud";
+      version = "1.2.2";
+      sha256  = "1ypsfm48c30szg3zc1sknblhwcnca8aapfgp62bhszyqxq6zq37s";
+    };
+  terraform =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-terraform";
+      version = "1.0.2";
+      sha256  = "1aj6g6l68n9kqmxfjlkwwxnac7fhha6wrmvsw4yylf0qyssww75v";
+    };
+  tfe =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-tfe";
+      version = "0.5.0";
+      sha256  = "1acmmsb4nj3l4d7zlzjrh97nhrkgm99wlazjrfavxwly253ck283";
+    };
+  tls =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-tls";
+      version = "1.2.0";
+      sha256  = "0hvj00j8a820j18yi90xzhd635pkffivp1116d84wyqxya5acd4p";
+    };
+  triton =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-triton";
+      version = "0.5.1";
+      sha256  = "1bn5x6nmhfkrzpxhyfclls85l9qqffvzx1xsgcb3368lhwzarn2f";
+    };
+  ultradns =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-ultradns";
+      version = "0.1.0";
+      sha256  = "0bq2y6bxdax7qnmq6vxh8pz9sqy1r3m05dv7q5dbv2xvba1b88hj";
+    };
+  vault =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-vault";
+      version = "1.4.1";
+      sha256  = "1nkhcgd2y7wyi179l2znjpakmjjcxarwc9j5mb7r191p2m27k27s";
+    };
+  vcd =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-vcd";
+      version = "1.0.0";
+      sha256  = "0sjqdb37lalvizf4imxwn7nmry1c76dw2fpnrfmal34gghddm91p";
+    };
+  vsphere =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-vsphere";
+      version = "1.9.0";
+      sha256  = "1by9klwvdw3m854jffimfnsz1lnbaixi4zcv4zzs63dc3flwy2b2";
+    };
+  matchbox =
+    {
+      owner   = "coreos";
+      repo    = "terraform-provider-matchbox";
+      version = "0.2.2";
+      sha256  = "07lzslbl41i3h84bpsmxhvchm5kqk87yzin2yvpbq0m3m7r2f547";
+    };
+  nixos =
+    {
+      owner   = "tweag";
+      repo    = "terraform-provider-nixos";
+      version = "0.0.1";
+      sha256  = "00vz6qjq1pk39iqg4356b8g3c6slla9jifkv2knk46gc9q93q0lf";
+    };
+  secret =
+    {
+      owner   = "tweag";
+      repo    = "terraform-provider-secret";
+      version = "0.0.1";
+      sha256  = "1mqs1il8y97hf9havcmxdfwjcpkrxa1hpkifzzy4rjc88m2m4q9r";
+    };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
new file mode 100644
index 000000000000..702a7cb7eb1e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildGoPackage
+, fetchFromGitHub
+, callPackage
+}:
+let
+  list = import ./data.nix;
+
+  toDrv = data:
+    buildGoPackage rec {
+      inherit (data) owner repo version sha256;
+      name = "${repo}-${version}";
+      goPackagePath = "github.com/${owner}/${repo}";
+      src = fetchFromGitHub {
+        inherit owner repo sha256;
+        rev = "v${version}";
+      };
+
+      # Terraform allow checking the provider versions, but this breaks
+      # if the versions are not provided via file paths.
+      postBuild = "mv go/bin/${repo}{,_v${version}}";
+    };
+in
+  {
+    gandi = callPackage ./gandi {};
+    ibm = callPackage ./ibm {};
+    libvirt = callPackage ./libvirt {};
+  } // lib.mapAttrs (n: v: toDrv v) list
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix
new file mode 100644
index 000000000000..291698f3065f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+buildGoPackage rec {
+  name = "terraform-provider-gandi-${version}";
+  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/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/gandi/deps.nix
new file mode 100644
index 000000000000..3d4a3547502d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix
new file mode 100644
index 000000000000..fddf13795f3e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+#
+# USAGE:
+# install the following package globally or in nix-shell:
+#
+#   (terraform.withPlugins ( plugins: [ terraform-provider-ibm ]))
+#
+# examples:
+# https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples
+#
+
+buildGoPackage rec {
+  name = "terraform-provider-ibm-${version}";
+  version = "0.11.1";
+
+  goPackagePath = "github.com/terraform-providers/terraform-provider-ibm";
+  subPackages = [ "./" ];
+
+  src = fetchFromGitHub {
+    owner = "IBM-Cloud";
+    repo = "terraform-provider-ibm";
+    sha256 = "1vp1kzadfkacn6c4illxjra8yki1fx7h77b38fixkcvc79mzasmv";
+    rev = "v${version}";
+  };
+
+  # Terraform allow checking the provider versions, but this breaks
+  # if the versions are not provided via file paths.
+  postBuild = "mv go/bin/terraform-provider-ibm{,_v${version}}";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/IBM-Cloud/terraform-provider-ibm;
+    description = "Terraform provider is used to manage IBM Cloud resources.";
+    platforms = platforms.all;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ jensbin ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
new file mode 100644
index 000000000000..d24a5780315d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
@@ -0,0 +1,51 @@
+{ 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 {
+  name = "terraform-provider-libvirt-${version}";
+  version = "0.4";
+
+  goPackagePath = "github.com/dmacvicar/terraform-provider-libvirt";
+
+  src = fetchFromGitHub {
+    owner = "dmacvicar";
+    repo = "terraform-provider-libvirt";
+    rev = "v${version}";
+    sha256 = "05jkjp1kis4ncryv34pkb9cz2yhzbwg62x9qmlqsqlxwz9hqny3r";
+  };
+
+  buildInputs = [ libvirt pkgconfig makeWrapper ];
+
+  # 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/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.txt b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.txt
new file mode 100644
index 000000000000..d5db0b91ae25
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.txt
@@ -0,0 +1,19 @@
+# lines starting with a # are comments
+
+# The accepted format (double escape all grep expresssions):
+#  <organisation>         [grep-expression] [grep-v-expression]  - include all repositories in the organisation.
+#                                                                   grep-expression:   filter repo matching the expression
+#                                                                   grep-v-expression: filter repo not matching the expression
+#  <organisation>/<repo>                                         - include only the named repository.
+
+# include all terraform-providers
+terraform-providers terraform-provider- terraform-provider-\\(azure-classic\\|scaffolding\\|google-beta\\|skytap\\)
+
+# include terraform-provider-matchbox
+coreos/terraform-provider-matchbox
+
+# include terraform-provider-nixos
+tweag/terraform-provider-nixos
+
+# include terraform-provider-secret
+tweag/terraform-provider-secret
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all
new file mode 100755
index 000000000000..2009d474db7b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-all
@@ -0,0 +1,143 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p bash coreutils curl jq nix
+# vim: ft=sh sw=2 et
+#
+# This scripts scans the github terraform-providers repo for new releases,
+# generates the corresponding nix code and finally generates an index of
+# all the providers given in ./providers.txt.
+set -euo pipefail
+
+# the maximum number of attempts before giving up inside of GET and prefetch_github
+readonly maxAttempts=30
+
+GET() {
+  local url=$1
+  local retry=1
+  echo "fetching $url" >&2
+  while ! curl -#fL -u "$GITHUB_AUTH" "$url"; do
+    echo "The curl command has failed. Attempt $retry/${maxAttempts}" >&2
+    if [[ "${retry}" -eq "${maxAttempts}" ]]; then
+      exit 1
+    fi
+    retry=$(( retry + 1 ))
+    sleep 5
+  done
+}
+
+get_org_repos() {
+  local org=$1
+  local page=1
+  GET "https://api.github.com/orgs/$org/repos?per_page=100" | jq -r '.[].name'
+}
+
+get_repo_tags() {
+  local owner=$1
+  local repo=$2
+  GET "https://api.github.com/repos/$owner/$repo/git/refs/tags?per_page=100" | \
+    jq -r '.[].ref' | \
+    grep -v 'v\.' | \
+    cut -d '/' -f 3- | \
+    sort --version-sort
+}
+
+prefetch_github() {
+  local owner=$1
+  local repo=$2
+  local rev=$3
+  local retry=1
+  while ! nix-prefetch-url --unpack "https://github.com/$owner/$repo/archive/$rev.tar.gz"; do
+    echo "The nix-prefetch-url command has failed. Attempt $retry/${maxAttempts}" >&2
+    if [[ "${retry}" -eq "${maxAttempts}" ]]; then
+      exit 1
+    fi
+    retry=$(( retry + 1 ))
+    sleep 5
+  done
+}
+
+echo_entry() {
+  local owner=$1
+  local repo=$2
+  local version=${3:1}
+  local sha256=$4
+  cat <<EOF
+{
+  owner   = "$owner";
+  repo    = "$repo";
+  version = "$version";
+  sha256  = "$sha256";
+};
+EOF
+}
+
+indent() { sed 's/^/    /'; }
+
+add_repo() {
+  org="${1}"
+  repo="${2}"
+
+  echo "*** $repo ***"
+  name=$(echo "$repo" | cut -d - -f 3-)
+  last_tag=$(get_repo_tags "$org" "$repo" | tail -1)
+  last_tag_sha256=$(prefetch_github "$org" "$repo" "$last_tag")
+
+  {
+    echo "  $name ="
+    echo_entry "$org" "$repo" "$last_tag" "$last_tag_sha256" | indent
+  } >> data.nix
+}
+
+## Main ##
+
+cd "$(dirname "$0")"
+
+if [[ -z "${GITHUB_AUTH:-}" ]]; then
+  cat <<'HELP'
+Missing the GITHUB_AUTH env. This is required to work around the 60 request
+per hour rate-limit.
+
+Go to https://github.com/settings/tokens and create a new token with the
+"public_repo" scope.
+
+Then `export GITHUB_AUTH=<your user>:<your token>` and run this script again.
+HELP
+  exit 1
+fi
+
+cat <<HEADER > data.nix
+# Generated with ./update-all
+{
+HEADER
+
+while read line; do
+  IFS=' ' read -r -a fields <<< "$line"
+  if [[ "${#fields[@]}" -eq 0 ]]; then
+    continue
+  fi
+
+  if [[ "${fields[0]}" = *"/"* ]]; then
+    org="$(echo "${fields[0]}" | cut -d/ -f1)"
+    repo="$(echo "${fields[0]}" | cut -d/ -f2)"
+    add_repo "${org}" "${repo}"
+  else
+    org="${fields[0]}"
+    repos=$(get_org_repos "$org")
+    if [[ "${#fields[@]}" -ge 2 ]] && [[ -n "${fields[1]}" ]]; then
+      repos="$( echo "${repos[@]}" | grep "${fields[1]}" )"
+    fi
+    if [[ "${#fields[@]}" -eq 3 ]] && [[ -n "${fields[2]}" ]]; then
+      repos="$( echo "${repos[@]}" | grep -v "${fields[2]}" )"
+    fi
+    repos="$( echo "${repos[@]}" | sort )"
+
+    for repo in $repos; do
+      add_repo "$org" "$repo"
+    done
+  fi
+done < <(grep -v '^#\|^$' providers.txt)
+
+cat <<FOOTER >> data.nix
+}
+FOOTER
+
+echo Done.
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
new file mode 100644
index 000000000000..dd0fe0a3eb1e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -0,0 +1,126 @@
+{ stdenv
+, lib
+, buildEnv
+, buildGoPackage
+, fetchFromGitHub
+, makeWrapper
+, runCommand
+, writeText
+, terraform-providers
+}:
+
+let
+  goPackagePath = "github.com/hashicorp/terraform";
+
+  generic = { version, sha256, ... }@attrs:
+    let attrs' = builtins.removeAttrs attrs ["version" "sha256"]; in
+    buildGoPackage ({
+      name = "terraform-${version}";
+
+      inherit goPackagePath;
+
+      src = fetchFromGitHub {
+        owner  = "hashicorp";
+        repo   = "terraform";
+        rev    = "v${version}";
+        inherit sha256;
+      };
+
+      postInstall = ''
+        # remove all plugins, they are part of the main binary now
+        for i in $bin/bin/*; do
+          if [[ $(basename $i) != terraform ]]; then
+            rm "$i"
+          fi
+        done
+      '';
+
+      preCheck = ''
+        export HOME=$TMP
+      '';
+
+      meta = with stdenv.lib; {
+        description = "Tool for building, changing, and versioning infrastructure";
+        homepage = https://www.terraform.io/;
+        license = licenses.mpl20;
+        maintainers = with maintainers; [ jgeerds zimbatm peterhoeg kalbasit ];
+      };
+    } // attrs');
+
+  pluggable = terraform:
+    let
+      withPlugins = plugins:
+        let
+          actualPlugins = plugins terraform.plugins;
+
+          # 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;
+          };
+        in
+          # 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.
+          if actualPlugins == []
+            then terraform.overrideAttrs (orig: { passthru = orig.passthru // passthru; })
+            else lib.appendToName "with-plugins"(stdenv.mkDerivation {
+              inherit (terraform) name;
+              buildInputs = [ makeWrapper ];
+
+              buildCommand = ''
+                mkdir -p $out/bin/
+                makeWrapper "${terraform.bin}/bin/terraform" "$out/bin/terraform" \
+                  --set NIX_TERRAFORM_PLUGIN_DIR "${buildEnv { name = "tf-plugin-env"; paths = actualPlugins; }}/bin" \
+                  --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.11";
+    sha256 = "1hsi5sibs0fk1620wzzxrc1gqjs6slqrjvlqcgvgg1yl22q9g7f5";
+    patches = [ ./provider-path.patch ];
+    passthru = { inherit plugins; };
+  });
+
+  terraform_0_11-full = terraform_0_11.full;
+
+  terraform_0_12 = pluggable (generic {
+    version = "0.12.0-alpha2";
+    sha256 = "1rnxgwfk10b1g3jnh9gv4lqrcszhxq8shaqslml30hafs3dkg71q";
+    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/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch b/nixpkgs/pkgs/applications/networking/cluster/terraform/provider-path.patch
new file mode 100644
index 000000000000..39a69e4a389f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
new file mode 100644
index 000000000000..56c30df37c5b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, terraform, makeWrapper }:
+
+buildGoPackage rec {
+  name = "terragrunt-${version}";
+  version = "0.17.4";
+
+  goPackagePath = "github.com/gruntwork-io/terragrunt";
+
+  src = fetchFromGitHub {
+    owner  = "gruntwork-io";
+    repo   = "terragrunt";
+    rev    = "v${version}";
+    sha256 = "13hlv0ydmv8gpzgg6bfr7rp89xfw1bkgd0j684armw8zq29cmv3a";
+  };
+
+  goDeps = ./deps.nix;
+
+  buildInputs = [ makeWrapper ];
+
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-X main.VERSION=v${version}")
+  '';
+
+  postInstall = ''
+    wrapProgram $bin/bin/terragrunt \
+      --set TERRAGRUNT_TFPATH ${lib.getBin terraform.full}/bin/terraform
+  '';
+
+  meta = with stdenv.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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/deps.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/deps.nix
new file mode 100644
index 000000000000..8432a8366b7a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/deps.nix
@@ -0,0 +1,129 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/aws/aws-sdk-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aws/aws-sdk-go";
+      rev = "25253087ea42da08900c4c1fc34c04bdb4a97d5a";
+      sha256 = "0p6mf53f4l9b26yc4qlm1s7yls73hsw8klyfhmnxhk2mq8k6ix4m";
+    };
+  }
+  {
+    goPackagePath = "github.com/bgentry/go-netrc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bgentry/go-netrc";
+      rev = "9fd32a8b3d3d3f9d43c341bfe098430e07609480";
+      sha256 = "0dn2h8avgavqdzdqnph8bkhj35bx0wssczry1zdczr22xv650g1l";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-errors/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-errors/errors";
+      rev = "a6af135bd4e28680facf08a3d206b454abc877a4";
+      sha256 = "0rznpknk19rxkr7li6dqs52c26pjazp69lh493l4ny4sxn5922lp";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/go-cleanhttp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-cleanhttp";
+      rev = "d5fe4b57a186c716b0e00b8c301cbd9b4182694d";
+      sha256 = "1m20y90syky4xr81sm3980jpil81nnpzmi6kv0vjr6p584gl1hn8";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/go-getter";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-getter";
+      rev = "64040d90d4ab861e7e833d689dc76a0f176d8dec";
+      sha256 = "0g25nx42z6ykd7jqzlrxf161h8lqrpxpddmbspl4w3a84wphhgms";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/go-version";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-version";
+      rev = "23480c0665776210b5fbbac6eaaee40e3e6a96b7";
+      sha256 = "056zs67diq3m7skmmq3pnz6wymfcg55dfs5zf86xkfqqpj10kyf7";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/hcl";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/hcl";
+      rev = "f40e974e75af4e271d97ce0fc917af5898ae7bda";
+      sha256 = "1w5w3m40xv85gngw8g1kjbcgah1vl4ardbpg2cxgj1svf80zazxx";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-zglob";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-zglob";
+      rev = "4959821b481786922ac53e7ef25c61ae19fb7c36";
+      sha256 = "0rwkdw143kphpmingsrw1zp030zf3p08f64h347jpdm4lz8z5449";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/go-homedir";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-homedir";
+      rev = "b8bc1bf767474819792c23f32d8286a45736f1c6";
+      sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/go-testing-interface";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-testing-interface";
+      rev = "a61a99592b77c9ba629d254a693acffaeb4b7e28";
+      sha256 = "139hq835jpgk9pjg94br9d08nka8bfm7zyw92zxlwrkska4pgigx";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/mapstructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/mapstructure";
+      rev = "00c29f56e2386353d58c599509e8dc3801b0d716";
+      sha256 = "1vw8fvhax0d567amgvxr7glcl12lvzg2sbzs007q5k5bbwn1szyb";
+    };
+  }
+  {
+    goPackagePath = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev = "c679ae2cc0cb27ec3293fea7e254e47386f05d69";
+      sha256 = "1rrdn7k83j492rzhqwkh6956sj8m2nbk44d7r1xa9nsn3hfwj691";
+    };
+  }
+  {
+    goPackagePath = "github.com/ulikunitz/xz";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ulikunitz/xz";
+      rev = "0c6b41e72360850ca4f98dc341fd999726ea007f";
+      sha256 = "0a6l7sp67ipxim093qh6fvw8knbxj24l7bj5lykcddi5gwfi78n3";
+    };
+  }
+  {
+    goPackagePath = "github.com/urfave/cli";
+    fetch = {
+      type = "git";
+      url = "https://github.com/urfave/cli";
+      rev = "8e01ec4cd3e2d84ab2fe90d8210528ffbb06d8ff";
+      sha256 = "0cpr10n4ps3gcdbcink71ry9hzhdb5rrcysmylybs8h2lzxqgc1i";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/compactor/default.nix b/nixpkgs/pkgs/applications/networking/compactor/default.nix
new file mode 100644
index 000000000000..48f85c80e0eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/compactor/default.nix
@@ -0,0 +1,52 @@
+{ autoconf, automake, boost, cbor-diag, cddl, fetchFromGitHub, file, libpcap, libtins, libtool, lzma, openssl, pkgconfig, stdenv, tcpdump, wireshark-cli }:
+
+stdenv.mkDerivation rec {
+  name = "compactor-${version}";
+  version = "0.11.1";
+
+  src = fetchFromGitHub {
+    owner = "dns-stats";
+    repo = "compactor";
+    rev = "${version}";
+    sha256 = "0bd82956nkpdmfj8f05z37hy7f33cd2nfdxr7s9fgz1xi5flnzjc";
+  };
+
+  # 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
+  ];
+
+  patchPhase = ''
+    patchShebangs test-scripts/
+  '';
+
+  preConfigure = ''
+    sh 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}"
+  ];
+
+  doCheck = true;
+  preCheck = ''
+    substituteInPlace test-scripts/check-live-pcap.sh \
+      --replace "/usr/sbin/tcpdump" "${tcpdump}/bin/tcpdump"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tools to capture DNS traffic and record it in C-DNS files";
+    homepage    = http://dns-stats.org/;
+    license     = [ licenses.boost licenses.mpl20 licenses.openssl ];
+    maintainers = with maintainers; [ fdns ];
+    platforms   = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/corebird/default.nix b/nixpkgs/pkgs/applications/networking/corebird/default.nix
new file mode 100644
index 000000000000..1ee2c694e0b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/corebird/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, glib, gtk3, json-glib, sqlite, libsoup, gettext, vala_0_40
+, meson, ninja, pkgconfig, gnome3, gst_all_1, wrapGAppsHook, gobject-introspection
+, glib-networking, python3 }:
+
+stdenv.mkDerivation rec {
+  version = "1.7.4";
+  name = "corebird-${version}";
+
+  src = fetchFromGitHub {
+    owner = "baedert";
+    repo = "corebird";
+    rev = version;
+    sha256 = "0qjffsmg1hm64dgsbkfwzbzy9q4xa1q4fh4h8ni8a2b1p3h80x7n";
+  };
+
+  nativeBuildInputs = [
+    meson ninja vala_0_40 pkgconfig wrapGAppsHook python3
+    gobject-introspection # for setup hook
+  ];
+
+  buildInputs = [
+    glib gtk3 json-glib sqlite libsoup gettext gnome3.dconf gnome3.gspell glib-networking
+  ] ++ (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 = {
+    description = "Native Gtk+ Twitter client for the Linux desktop";
+    longDescription = "Corebird is a modern, easy and fun Twitter client.";
+    homepage = https://corebird.baedert.org/;
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.jonafato ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/davmail/default.nix b/nixpkgs/pkgs/applications/networking/davmail/default.nix
new file mode 100644
index 000000000000..31493e46f538
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/davmail/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv, jre, glib, libXtst, gtk2, makeWrapper, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "davmail-4.8.6";
+  src = fetchurl {
+    url = "mirror://sourceforge/davmail/4.8.6/davmail-4.8.6-2600.zip";
+    sha256 = "1wk4jxb46qlyipxj57flqadgm4mih243rhqq9sp9m5pifjqrw9dp";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ makeWrapper unzip ];
+
+  installPhase = ''
+    mkdir -p $out/share/davmail
+    cp -vR ./* $out/share/davmail
+    makeWrapper $out/share/davmail/davmail.sh $out/bin/davmail \
+      --prefix PATH : ${jre}/bin \
+      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ glib gtk2 libXtst ]}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://davmail.sourceforce.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/nixpkgs/pkgs/applications/networking/drive/default.nix b/nixpkgs/pkgs/applications/networking/drive/default.nix
new file mode 100644
index 000000000000..113d6a2e5f46
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/drive/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "drive-${version}";
+  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.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/drive/deps.nix b/nixpkgs/pkgs/applications/networking/drive/deps.nix
new file mode 100644
index 000000000000..ca132288bd69
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/droopy/default.nix b/nixpkgs/pkgs/applications/networking/droopy/default.nix
new file mode 100644
index 000000000000..62fe4e2e662e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/droopy/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchFromGitHub, wrapPython }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+  name = "droopy-${version}";
+  version = "20160830";
+
+  src = fetchFromGitHub {
+    owner = "stackp";
+    repo = "Droopy";
+    rev = "7a9c7bc46c4ff8b743755be86a9b29bd1a8ba1d9";
+    sha256 = "03i1arwyj9qpfyyvccl21lbpz3rnnp1hsadvc0b23nh1z2ng9sff";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/dropbox/cli.nix b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
new file mode 100644
index 000000000000..d3141675b418
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/dropbox/cli.nix
@@ -0,0 +1,42 @@
+{ stdenv, pkgconfig, fetchurl, python, dropbox }:
+let
+  version = "2015.10.28";
+  dropboxd = "${dropbox}/bin/dropbox";
+in
+stdenv.mkDerivation {
+  name = "dropbox-cli-${version}";
+
+  src = fetchurl {
+    url = "https://linux.dropbox.com/packages/nautilus-dropbox-${version}.tar.bz2";
+    sha256 = "1ai6vi5227z2ryxl403693xi63b42ylyfmzh8hbv4shp69zszm9c";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ python ];
+
+  phases = "unpackPhase installPhase";
+
+  installPhase = ''
+    mkdir -p "$out/bin/" "$out/share/applications"
+    cp data/dropbox.desktop "$out/share/applications"
+    cp -a data/icons "$out/share/icons"
+    find "$out/share/icons" -type f \! -name '*.png' -delete
+    substitute "dropbox.in" "$out/bin/dropbox" \
+      --replace '@PACKAGE_VERSION@' ${version} \
+      --replace '@DESKTOP_FILE_DIR@' "$out/share/applications" \
+      --replace '@IMAGEDATA16@' '"too-lazy-to-fix"' \
+      --replace '@IMAGEDATA64@' '"too-lazy-to-fix"'
+    sed -i 's:db_path = .*:db_path = "${dropboxd}":' $out/bin/dropbox
+    chmod +x "$out/bin/"*
+    patchShebangs "$out/bin"
+  '';
+
+  meta = {
+    homepage = http://dropbox.com;
+    description = "Command line client for the dropbox daemon";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
+    # NOTE: Dropbox itself only works on linux, so this is ok.
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/dropbox/default.nix b/nixpkgs/pkgs/applications/networking/dropbox/default.nix
new file mode 100644
index 000000000000..9862fe7576da
--- /dev/null
+++ b/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 = "55.4.171";
+
+  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
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
new file mode 100644
index 000000000000..d1eeaa48bb7b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, rustPlatform, makeWrapper, openssl }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "cfdyndns-${version}";
+  version = "0.0.1";
+  src = fetchFromGitHub {
+    owner = "colemickens";
+    repo = "cfdyndns";
+    rev = "v${version}";
+    sha256 = "1mcdjykrgh0jq6k6y664lai8sbgzk6j7k0r944f43vg63d1jql5b";
+  };
+
+  cargoSha256 = "0k9d6pxsb4gvkqs00g71c1nnz773iccg4vajgn33qdym6m6qsjwy";
+
+  buildInputs = [ makeWrapper openssl ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -p target/release/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;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix b/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix
new file mode 100644
index 000000000000..bb3ab98d1a4c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/enhanced-ctorrent/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/networking/errbot/default.nix b/nixpkgs/pkgs/applications/networking/errbot/default.nix
new file mode 100644
index 000000000000..f89b8206dbe6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/errbot/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pythonPackages, glibcLocales }:
+
+pythonPackages.buildPythonApplication rec {
+  name = "errbot-${version}";
+  version = "5.2.0";
+
+  src = fetchurl {
+    url = "mirror://pypi/e/errbot/${name}.tar.gz";
+    sha256 = "0q5fg113s3gnym38d4y5mlnxw6vrm388zw5mlapf7b2zgx34r053";
+  };
+
+  disabled = !pythonPackages.isPy3k;
+
+  LC_ALL = "en_US.utf8";
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace dnspython3 dnspython \
+      --replace 'cryptography<2.1.0' cryptography \
+      --replace 'pyOpenSSL<17.3.0' pyOpenSSL
+  '';
+
+  # tests folder is not included in release
+  doCheck = false;
+
+  buildInputs = [ glibcLocales ];
+  propagatedBuildInputs = with pythonPackages; [
+    webtest bottle threadpool rocket-errbot requests jinja2
+    pyopenssl colorlog Yapsy markdown ansi pygments dnspython pep8
+    daemonize pygments-markdown-lexer telegram irc slackclient
+    sleekxmpp hypchat pytest
+  ];
+
+  meta = with stdenv.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.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/esniper/default.nix b/nixpkgs/pkgs/applications/networking/esniper/default.nix
new file mode 100644
index 000000000000..87e0584c931e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/esniper/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, openssl, curl, coreutils, gawk, bash, which }:
+
+stdenv.mkDerivation rec {
+  name = "esniper-2.35.0";
+
+   src = fetchurl {
+     url    = "mirror://sourceforge/esniper/${stdenv.lib.replaceStrings ["."] ["-"] name}.tgz";
+     sha256 = "04iwjb42lw90c03125bjdpnm0fp78dmwf2j35r7mah0nwcrlagd9";
+   };
+
+  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/nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch b/nixpkgs/pkgs/applications/networking/esniper/find-ca-bundle.patch
new file mode 100644
index 000000000000..e4df272a0c9a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix
new file mode 100644
index 000000000000..36b4732ca2e7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/canto-daemon/default.nix
new file mode 100644
index 000000000000..e700c5634ad6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
new file mode 100644
index 000000000000..b7e9c02c0d22
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, vala_0_40, gettext, python3
+, appstream-glib, desktop-file-utils, glibcLocales, wrapGAppsHook
+, curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo
+}:
+
+let
+  pname = "FeedReader";
+  version = "2.6.1";
+in stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "jangernert";
+    repo = pname;
+    rev = "v" + version;
+    sha256 = "01r00b2jrb12x46fvd207s5lkhc13kmzg0w1kqbdkwkwsrdzb0jy";
+  };
+
+  nativeBuildInputs = [
+    meson ninja pkgconfig vala_0_40 gettext appstream-glib desktop-file-utils
+    python3 glibcLocales wrapGAppsHook
+  ];
+
+  buildInputs = [
+    curl glib json-glib libnotify libsecret sqlite gumbo
+  ] ++ (with gnome3; [
+    gtk libgee libpeas libsoup rest webkitgtk gnome-online-accounts
+    gsettings-desktop-schemas
+  ]) ++ (with gst_all_1; [
+    gstreamer gst-plugins-base gst-plugins-good
+  ]);
+
+  # TODO: fix https://github.com/NixOS/nixpkgs/issues/39547
+  LIBRARY_PATH = stdenv.lib.makeLibraryPath [ curl ];
+
+  # vcs_tag function fails with UnicodeDecodeError
+  LC_ALL = "en_US.UTF-8";
+
+  postPatch = ''
+    patchShebangs meson_post_install.py
+  '';
+
+  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 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
new file mode 100644
index 000000000000..e7ea7eea7ba1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, stfl, sqlite, curl, gettext, pkgconfig, libxml2, json_c, ncurses
+, asciidoc, docbook_xml_dtd_45, libxslt, docbook_xsl, libiconv, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "newsboat-${version}";
+  version = "2.13";
+
+  src = fetchurl {
+    url = "https://newsboat.org/releases/${version}/${name}.tar.xz";
+    sha256 = "0pik1d98ydzqi6055vdbkjg5krwifbk2hy2f5jp5p1wcy2s16dn7";
+  };
+
+  prePatch = ''
+    substituteInPlace Makefile --replace "|| true" ""
+    # Allow other ncurses versions on Darwin
+    substituteInPlace config.sh \
+      --replace "ncurses5.4" "ncurses"
+  '';
+
+  nativeBuildInputs = [ pkgconfig asciidoc docbook_xml_dtd_45 libxslt docbook_xsl ]
+                      ++ stdenv.lib.optional stdenv.isDarwin [ makeWrapper libiconv ];
+
+  buildInputs = [ stfl sqlite curl gettext libxml2 json_c ncurses ];
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  doCheck = true;
+  checkTarget = "test";
+
+  NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare";
+
+  postInstall = ''
+    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/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix
new file mode 100644
index 000000000000..3a5983c2e276
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rawdog/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  name = "rawdog-${version}";
+  version = "2.22";
+
+  src = fetchurl {
+    url = "https://offog.org/files/${name}.tar.gz";
+    sha256 = "01ircwl80xi5lamamsb22i7vmsh2ysq3chn9mbsdhqic2i32hcz0";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
new file mode 100644
index 000000000000..4d17cc8bddd1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -0,0 +1,52 @@
+{ pythonPackages, fetchurl, lib, nixosTests }:
+
+with pythonPackages;
+
+buildPythonApplication rec {
+  name = "${pname}-${version}";
+  pname = "rss2email";
+  version = "3.9"; # TODO: on next bump, the manpage will be updated.
+  # Update nixos/modules/services/mail/rss2email.nix to point to it instead of
+  # to the online r2e.1
+
+  propagatedBuildInputs = [ feedparser beautifulsoup4 html2text ];
+
+  src = fetchurl {
+    url = "mirror://pypi/r/rss2email/${name}.tar.gz";
+    sha256 = "02wj9zhmc2ym8ba1i0z9pm1c622z2fj7fxwagnxbvpr1402ahmr5";
+  };
+
+  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 $doc/share/doc/rss2email/
+  '';
+
+  # The tests currently fail, see
+  # https://github.com/rss2email/rss2email/issues/14
+  # postCheck = ''
+  #   env PYTHONPATH=.:$PYTHONPATH 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 ];
+  };
+  passthru.tests = {
+    smoke-test = nixosTests.rss2email;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
new file mode 100644
index 000000000000..297703cde696
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, qmake, qtwebengine, qttools, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "rssguard";
+  version = "3.5.6";
+
+  src = fetchFromGitHub {
+    owner = "martinrotter";
+    repo = pname;
+    rev = version;
+    sha256 = "1pdas7hg3nzykm3qi951fk25c9s6gjb7my82b9xzjn2yd7ks71by";
+  };
+
+  buildInputs =  [ qtwebengine qttools ];
+  nativeBuildInputs = [ qmake wrapGAppsHook ];
+  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/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix
new file mode 100644
index 000000000000..459aee01f43f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, cppcheck, libmrss }:
+
+stdenv.mkDerivation rec {
+  name = "rsstail-${version}";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    sha256 = "12p69i3g1fwlw0bds9jqsdmzkid3k5a41w31d227i7vm12wcvjf6";
+    rev = "6f2436185372b3f945a4989406c4b6a934fe8a95";
+    repo = "rsstail";
+    owner = "flok99";
+  };
+
+  buildInputs = [ libmrss ];
+  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.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/firehol/default.nix b/nixpkgs/pkgs/applications/networking/firehol/default.nix
new file mode 100644
index 000000000000..335f393bc077
--- /dev/null
+++ b/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, utillinux, whois
+
+# If true, just install FireQOS without FireHOL
+, onlyQOS ? false
+}:
+
+stdenv.mkDerivation rec {
+  name = "firehol-${version}";
+  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 utillinux 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; [ geistesk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/firehol/iprange.nix b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
new file mode 100644
index 000000000000..bb245928f07c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "iprange-${version}";
+  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; [ geistesk ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/flent/default.nix b/nixpkgs/pkgs/applications/networking/flent/default.nix
new file mode 100644
index 000000000000..2f97b39da60f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/flent/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, matplotlib, procps, pyqt5
+, sphinx
+}:
+
+buildPythonApplication rec {
+  pname = "flent";
+  version = "1.2.2";
+  src = fetchFromGitHub {
+    owner = "tohojo";
+    repo = "flent";
+    rev = "v${version}";
+    sha256 = "1llcdakk0nk9xlpjjz7mv4a80yq4sjnbqhaqvyj9m6lbcxgssh2r";
+  };
+
+  buildInputs = [ sphinx ];
+
+  propagatedBuildInputs = [
+    matplotlib
+    procps
+    pyqt5
+  ];
+
+  meta = with stdenv.lib; {
+    description = "The FLExible Network Tester";
+    homepage = https://flent.org;
+    license = licenses.gpl3;
+
+    maintainers = [ maintainers.mmlb ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/flent/http-getter.nix b/nixpkgs/pkgs/applications/networking/flent/http-getter.nix
new file mode 100644
index 000000000000..63c18d6e0929
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/flent/http-getter.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake
+, curl, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/networking/flexget/default.nix b/nixpkgs/pkgs/applications/networking/flexget/default.nix
new file mode 100644
index 000000000000..8508ab10e1ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/flexget/default.nix
@@ -0,0 +1,66 @@
+{ lib, python36 }:
+
+# Flexget have been a trouble maker in the past,
+# if you see flexget breaking when updating packages, don't worry.
+# The current state is that we have no active maintainers for this package.
+# -- Mic92
+
+let
+  python' = python36.override { inherit packageOverrides; };
+
+  packageOverrides = self: super: {
+    guessit = super.guessit.overridePythonAttrs (old: rec {
+      version = "3.0.3";
+      src = old.src.override {
+        inherit version;
+        sha256 = "1q06b3k31bfb8cxjimpf1rkcrwnc596a9cppjw15minvdangl32r";
+      };
+    });
+  };
+
+in
+
+with python'.pkgs;
+
+buildPythonApplication rec {
+  pname = "FlexGet";
+  version = "2.17.20";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a09ef9482ed54f7e96eb8b4d08c59687c5c43a3341c9d2675383693e6c3681c3";
+  };
+
+  postPatch = ''
+    # build for the correct python version
+    substituteInPlace setup.cfg --replace $'[bdist_wheel]\npython-tag = py27' ""
+    # remove dependency constraints
+    sed 's/==\([0-9]\.\?\)\+//' -i requirements.txt
+  '';
+
+  # ~400 failures
+  doCheck = false;
+
+  propagatedBuildInputs = [
+    # See https://github.com/Flexget/Flexget/blob/master/requirements.in
+    feedparser sqlalchemy pyyaml
+    beautifulsoup4 html5lib
+    PyRSS2Gen pynzb rpyc jinja2
+    requests dateutil jsonschema
+    pathpy guessit APScheduler
+    terminaltables colorclass
+    cherrypy flask flask-restful
+    flask-restplus flask-compress
+    flask_login flask-cors
+    pyparsing zxcvbn-python future
+    # Optional requirements
+    deluge-client
+  ] ++ lib.optional (pythonOlder "3.4") pathlib;
+
+  meta = with lib; {
+    homepage    = https://flexget.com/;
+    description = "Multipurpose automation tool for content like torrents";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
new file mode 100644
index 000000000000..49ac1d26dda6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext
+, pkgconfig, xdg_utils, gtk2, sqlite, pugixml, libfilezilla, nettle }:
+
+let version = "3.31.0"; in
+stdenv.mkDerivation {
+  name = "filezilla-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
+    sha256 = "1rfysb8dil35a7bzj2kw0mzzkys39d7yn6ipsbk8l6rkwfvnii8l";
+  };
+
+  configureFlags = [
+    "--disable-manualupdatecheck"
+  ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    dbus gnutls wxGTK30 libidn tinyxml gettext xdg_utils gtk2 sqlite
+    pugixml libfilezilla nettle ];
+
+  meta = with stdenv.lib; {
+    homepage = https://filezilla-project.org/;
+    description = "Graphical FTP, FTPS and SFTP client";
+    license = licenses.gpl2;
+    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.
+    '';
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ pSub ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
new file mode 100644
index 000000000000..bd17e86d8980
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, granite
+, gtk3, gnome3, libsoup, libsecret, gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "taxi";
+  version = "0.0.1";
+
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "Alecaddd";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "01c552w68576pnsyqbwy3hjhbww6vys3r3s0wxjdiscjqj1aawqg";
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gnome3.libgee
+    granite
+    gtk3
+    libsecret
+    libsoup
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/gdrive/default.nix b/nixpkgs/pkgs/applications/networking/gdrive/default.nix
new file mode 100644
index 000000000000..f39fac2605a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gdrive/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name    = "gdrive-${version}";
+  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.linux;
+    license     = licenses.mit;
+    maintainers = [ maintainers.rzetterberg ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/gmailieer/default.nix b/nixpkgs/pkgs/applications/networking/gmailieer/default.nix
new file mode 100644
index 000000000000..fdd8e004c8b2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gmailieer/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  name = "gmailieer-${version}";
+  version = "0.10";
+
+  src = fetchFromGitHub {
+    owner = "gauteh";
+    repo = "gmailieer";
+    rev = "v${version}";
+    sha256 = "0qv74marzdv99xc2jbzzcwx3b2hm6byjl734h9x42g4mcg5pq9yf";
+  };
+
+  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://github.com/gauteh/gmailieer;
+    repositories.git = https://github.com/gauteh/gmailieer.git;
+    license          = licenses.gpl3Plus;
+    maintainers      = with maintainers; [ kaiha ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix
new file mode 100644
index 000000000000..3343141801eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix
@@ -0,0 +1,33 @@
+{ callPackage, stdenv }:
+
+let
+  stableVersion = "2.1.11";
+  # Currently there is no preview version.
+  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; };
+  mkGui = args: callPackage (import ./gui.nix (addVersion args)) { };
+  mkServer = args: callPackage (import ./server.nix (addVersion args)) { };
+  guiSrcHash = "1skcb47r0wvv7l7z487b2165pwvc397b23abfq24kw79806vknzn";
+  serverSrcHash = "09j2nafxvgc6plk7s3qwv5qc0cc2bi41h4fhg8g7c85ixfx5yz8a";
+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/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
new file mode 100644
index 000000000000..df3093504044
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
@@ -0,0 +1,39 @@
+{ stable, branch, version, sha256Hash }:
+
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+let
+  pythonPackages = python3Packages;
+
+in pythonPackages.buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "gns3-gui";
+
+  src = fetchFromGitHub {
+    owner = "GNS3";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = sha256Hash;
+  };
+
+  propagatedBuildInputs = with pythonPackages; [
+    raven psutil jsonschema # tox for check
+    # Runtime dependencies
+    sip (pyqt5.override { withWebSockets = true; })
+  ];
+
+  doCheck = false; # Failing
+
+  meta = with stdenv.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/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix
new file mode 100644
index 000000000000..24e641abc826
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix
@@ -0,0 +1,80 @@
+{ stable, branch, version, sha256Hash }:
+
+{ stdenv, python36Packages, fetchFromGitHub, fetchurl }:
+
+let
+  pythonPackages = python36Packages;
+  async-timeout = pythonPackages.async-timeout.overrideAttrs
+    (oldAttrs:
+      rec {
+        pname = "async-timeout";
+        version = "2.0.1";
+        src = pythonPackages.fetchPypi {
+          inherit pname version;
+          sha256 = "1l3kg062m02mph6rf9rdv8r5c5n356clxa6b6mrn0i77vk9g9kq0";
+        };
+      });
+  aiohttp = pythonPackages.aiohttp.overrideAttrs
+    (oldAttrs:
+      rec {
+        pname = "aiohttp";
+        version = "2.3.10";
+        src = pythonPackages.fetchPypi {
+          inherit pname version;
+          sha256 = "8adda6583ba438a4c70693374e10b60168663ffa6564c5c75d3c7a9055290964";
+        };
+        propagatedBuildInputs = [ async-timeout ]
+          ++ (with pythonPackages; [ attrs chardet multidict yarl idna-ssl ]);
+      });
+  aiohttp-cors = pythonPackages.aiohttp-cors.overrideAttrs
+    (oldAttrs:
+      rec {
+        pname = "aiohttp-cors";
+        version = "0.5.3";
+        name = "${pname}-${version}";
+        src = pythonPackages.fetchPypi {
+          inherit pname version;
+          sha256 = "11b51mhr7wjfiikvj3nc5s8c7miin2zdhl3yrzcga4mbpkj892in";
+        };
+        propagatedBuildInputs = [ aiohttp ]
+          ++ stdenv.lib.optional
+               (pythonPackages.pythonOlder "3.5")
+               pythonPackages.typing;
+      });
+in pythonPackages.buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "gns3-server";
+
+  src = fetchFromGitHub {
+    owner = "GNS3";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = sha256Hash;
+  };
+
+  propagatedBuildInputs = [ aiohttp-cors ]
+    ++ (with pythonPackages; [
+      yarl aiohttp multidict
+      jinja2 psutil zipstream raven jsonschema typing
+      (pythonPackages.callPackage ../../../development/python-modules/prompt_toolkit/1.nix {})
+    ]);
+
+  # 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/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
new file mode 100644
index 000000000000..47270cbcba8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, zlib
+, ocaml, dune, ocamlfuse, findlib, gapi_ocaml, ocaml_sqlite3, camlidl }:
+
+stdenv.mkDerivation rec {
+  name = "google-drive-ocamlfuse-${version}";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "astrada";
+    repo = "google-drive-ocamlfuse";
+    rev = "v${version}";
+    sha256 = "0sjjlfndz8s78fl7vb8alz3nsksjrm4hbnnj11xa0i6k16v6pv1y";
+  };
+
+  nativeBuildInputs = [ dune ];
+
+  buildInputs = [ zlib ocaml ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl ];
+
+  buildPhase = "jbuilder build @install";
+  installPhase = "mkdir $out && dune install --prefix $out";
+
+  meta = {
+    homepage = http://gdfuse.forge.ocamlcore.org/;
+    description = "A FUSE-based file system backed by Google Drive, written in OCaml";
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ obadz ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix b/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix
new file mode 100644
index 000000000000..9057fda2e600
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gopher/gopher/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, ncurses}:
+
+stdenv.mkDerivation rec {
+  name = "gopher-${version}";
+  version = "3.0.11";
+
+  src = fetchurl {
+    url = "http://gopher.quux.org:70/devel/gopher/Downloads/gopher_${version}.tar.gz";
+    sha256 = "15r7x518wlpfqpd6z0hbdwm8rw8ll8hbpskdqgxxhrmy00aa7w9c";
+  };
+
+  buildInputs = [ ncurses ];
+
+  preConfigure = "export LIBS=-lncurses";
+
+  meta = {
+    homepage = http://gopher.quux.org:70/devel/gopher;
+    description = "A ncurses gopher client";
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/gopher/gopherclient/default.nix b/nixpkgs/pkgs/applications/networking/gopher/gopherclient/default.nix
new file mode 100644
index 000000000000..d36533fc9e5e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gopher/gopherclient/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, buildGoPackage, fetchgit, makeWrapper, pkgconfig, qtbase, qtdeclarative, qtwebengine }:
+
+buildGoPackage rec {
+  name = "gopherclient-${version}";
+  version = "2016-10-02";
+  rev = "91c41b5542d08001636708e2a5054521a6004702";
+
+  goPackagePath = "github.com/prologic/gopherclient";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://github.com/prologic/gopherclient";
+    sha256 = "0b1gvxhv4zg930hvric9mmbfp0lnww0sqlkkfbzfkif3wz9ni5y9";
+  };
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+
+  buildInputs = [ qtbase qtdeclarative qtwebengine ];
+
+  preBuild = ''
+    # Generate gopherclient resources with genqrc.
+    ln -s ${goPackagePath}/vendor/gopkg.in go/src/
+    GOBIN="$(pwd)" go install -v gopkg.in/qml.v1/cmd/genqrc
+    PATH="$(pwd):$PATH" go generate ${goPackagePath}
+  '';
+
+  NIX_CFLAGS_COMPILE = [
+    # go-qml needs private Qt headers.
+    "-I${qtbase.dev}/include/QtCore/${qtbase.version}"
+  ];
+
+  postInstall = ''
+    # https://github.com/prologic/gopherclient/#usage
+    wrapProgram $bin/bin/gopherclient --prefix GODEBUG , cgocheck=0
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/prologic/gopherclient;
+    description = "Gopher Qt GUI client";
+    license = licenses.mit;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/ids/bro/default.nix b/nixpkgs/pkgs/applications/networking/ids/bro/default.nix
new file mode 100644
index 000000000000..f90457ba9379
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ids/bro/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, perl, zlib, file, curl
+, geoip, gperftools, python, swig }:
+
+stdenv.mkDerivation rec {
+  name = "bro-2.5.5";
+
+  src = fetchurl {
+    url = "https://www.bro.org/downloads/${name}.tar.gz";
+    sha256 = "1kvkiq8jjsqryry9jd4vw45pbfb46jly988mq62mv4sd1fqsxwhq";
+  };
+
+  nativeBuildInputs = [ cmake flex bison file ];
+  buildInputs = [ openssl libpcap perl zlib curl geoip gperftools python swig ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Powerful network analysis framework much different from a typical IDS";
+    homepage = https://www.bro.org/;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ pSub ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/ids/daq/default.nix b/nixpkgs/pkgs/applications/networking/ids/daq/default.nix
new file mode 100644
index 000000000000..9af105ad52eb
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/ids/snort/default.nix b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
new file mode 100644
index 000000000000..0fdfbacb45cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison, makeWrapper}:
+
+stdenv.mkDerivation rec {
+  version = "2.9.11.1";
+  name = "snort-${version}";
+  
+  src = fetchurl {
+    name = "${name}.tar.gz";
+    url = "https://snort.org/downloads/archive/snort/${name}.tar.gz";
+    sha256 = "1ka67zrrhs32c729v4h76mvv2723mij0adxx0iaza2d1qpm3lswz";
+  };
+  
+  buildInputs = [ makeWrapper libpcap pcre libdnet daq zlib flex bison ];
+
+  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/nixpkgs/pkgs/applications/networking/ike/default.nix b/nixpkgs/pkgs/applications/networking/ike/default.nix
new file mode 100644
index 000000000000..7953f35507d1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ike/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, 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 {
+  name = "ike-2.2.1";
+
+  src = fetchurl {
+    url = "https://www.shrew.net/download/ike/${name}-release.tgz";
+    sha256 = "0fhyr2psd93b0zf7yfb72q3nqnh65mymgq5jpjcsj9jv5kfr6l8y";
+  };
+
+  buildInputs = [ cmake openssl libedit flex bison qt4 makeWrapper nettools iproute ];
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
new file mode 100644
index 000000000000..163f0ba3f497
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, boost166 }:
+
+stdenv.mkDerivation rec {
+  name = "SkypeExport-${version}";
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/amsn/default.nix
new file mode 100644
index 000000000000..6ff51445718b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/baresip/default.nix
new file mode 100644
index 000000000000..fd3bda35fd4e
--- /dev/null
+++ b/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
+, gsm, speex, portaudio, spandsp, libuuid, ccache, libvpx
+}:
+stdenv.mkDerivation rec {
+  version = "0.6.0";
+  name = "baresip-${version}";
+  src=fetchurl {
+    url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
+    sha256 = "0r073nv2hmkc00s0paa538by160mh511nidmxqzghkcyb4lx6gdb";
+  };
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [zlib openssl libre librem cairo mpg123
+    alsaLib SDL libv4l celt libsndfile srtp ffmpeg gsm speex portaudio spandsp libuuid
+    ccache 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/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
new file mode 100644
index 000000000000..bed5b17a5ce5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-discord/default.nix
@@ -0,0 +1,31 @@
+{ fetchFromGitHub, stdenv, bitlbee, autoreconfHook, pkgconfig, glib }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "bitlbee-discord-${version}";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    rev = version;
+    owner = "sm00th";
+    repo = "bitlbee-discord";
+    sha256 = "02pigk2vbz0jdz11f96sygdvp1j762yjn62h124fkcsc070g7a2f";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ bitlbee glib ];
+
+  preConfigure = ''
+    export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+    ./autogen.sh
+  '';
+
+  meta = {
+    description = "Bitlbee plugin for Discord";
+
+    homepage = https://github.com/sm00th/bitlbee-discord;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.lassulus ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-facebook/default.nix
new file mode 100644
index 000000000000..aa7895ce1488
--- /dev/null
+++ b/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 {
+  name = "bitlbee-facebook-${version}";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "bitlbee";
+    repo = "bitlbee-facebook";
+    sha256 = "0kz2sc10iq01vn0hvf06bcdc1rsxz1j77z3mw55slf3j08xr07in";
+  };
+
+  nativeBuildInputs = [ autoconf automake libtool pkgconfig ];
+
+  buildInputs = [ bitlbee glib 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/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee-steam/default.nix
new file mode 100644
index 000000000000..a034827c4ed4
--- /dev/null
+++ b/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";
+  name = "bitlbee-steam-${version}";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "bitlbee";
+    repo = "bitlbee-steam";
+    sha256 = "121r92mgwv445wwxzh35n19fs5k81ihr0j19k256ia5502b1xxaq";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ bitlbee autoconf automake libtool glib 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/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
new file mode 100644
index 000000000000..fbd326919f33
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -0,0 +1,58 @@
+{ fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr, python
+, enableLibPurple ? false, pidgin ? null
+, enablePam ? false, pam ? null
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "bitlbee-3.5.1";
+
+  src = fetchurl {
+    url = "mirror://bitlbee/src/${name}.tar.gz";
+    sha256 = "0sgsn0fv41rga46mih3fyv65cvfa6rvki8x92dn7bczbi7yxfdln";
+  };
+
+  nativeBuildInputs = [ pkgconfig ] ++ optional doCheck check;
+
+  buildInputs = [ gnutls glib libotr python ]
+    ++ optional enableLibPurple pidgin
+    ++ optional enablePam pam;
+
+  configureFlags = [
+    "--otr=1"
+    "--ssl=gnutls"
+    "--pidfile=/var/lib/bitlbee/bitlbee.pid"
+  ] ++ optional enableLibPurple "--purple=1"
+    ++ optional enablePam "--pam=1";
+
+  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; [ wkennington pSub ];
+    platforms = platforms.gnu ++ platforms.linux;  # arbitrary choice
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/plugins.nix
new file mode 100644
index 000000000000..4e05e7cae970
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
new file mode 100644
index 000000000000..63dec91dad90
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchdarcs, pythonPackages, libvncserver, zlib
+, gnutls, libvpx, makeDesktopItem }:
+
+pythonPackages.buildPythonApplication rec {
+  name = "blink-${version}";
+  version = "3.0.3";
+
+  src = fetchdarcs {
+    url = http://devel.ag-projects.com/repositories/blink-qt;
+    rev = "release-${version}";
+    sha256 = "1vj6zzfvxygz0fzr8bhymcw6j4v8xmr0kba53d6qg285j7hj1bdi";
+  };
+
+  patches = [ ./pythonpath.patch ];
+  postPatch = ''
+    sed -i 's|@out@|'"''${out}"'|g' blink/resources.py
+  '';
+
+  propagatedBuildInputs = with pythonPackages; [ pyqt5 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 = "Application;Internet;";
+  };
+
+  postInstall = ''
+    wrapProgram $out/bin/blink \
+      --prefix LD_LIBRARY_PATH ":" ${gnutls.out}/lib
+    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"
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/pythonpath.patch
new file mode 100644
index 000000000000..0df8bc84ff30
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
new file mode 100644
index 000000000000..a2ba2f09f764
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, rpmextract, patchelf, libnotify, libcap, cairo, pango, fontconfig, udev, dbus
+, gtk2, atk, expat, gdk_pixbuf, freetype, nspr, glib, nss, gconf, libX11, libXrender, libXtst, libXdamage
+, libXi, libXext, libXfixes, libXcomposite, alsaLib, bash
+}:
+
+stdenv.mkDerivation rec {
+  name = "bluejeans-${version}";
+  version = "1.36.9";
+
+  src =
+    fetchurl {
+      url = "https://swdl.bluejeans.com/desktop/linux/1.36/${version}/bluejeans-${version}.x86_64.rpm";
+      sha256 = "0sbv742pzqd2cxn3kq10lfi16jah486i9kyrmi8l1rpb9fhyw2m1";
+    };
+
+  nativeBuildInputs = [ patchelf rpmextract ];
+
+  libPath =
+    stdenv.lib.makeLibraryPath
+       [ libnotify libcap cairo pango fontconfig gtk2 atk expat gdk_pixbuf dbus udev.lib
+         freetype nspr glib stdenv.cc stdenv.cc.cc.lib nss gconf libX11 libXrender libXtst libXdamage
+         libXi libXext libXfixes libXcomposite alsaLib
+       ];
+
+  buildCommand = ''
+    mkdir -p $out/bin/
+    cd $out
+    rpmextract $src
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      opt/bluejeans/bluejeans-bin
+    patchelf \
+      --set-rpath ${libPath} \
+      opt/bluejeans/bluejeans-bin
+    patchelf \
+      --replace-needed libudev.so.0 libudev.so.1 \
+      opt/bluejeans/bluejeans-bin
+    ln -s $out/opt/bluejeans/bluejeans $out/bin/bluejeans
+    substituteInPlace $out/bin/bluejeans \
+      --replace '#!/bin/bash' '#!${bash}/bin/bash'
+    chmod +x $out/bin/bluejeans
+  '';
+
+  meta = {
+    description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day.";
+    license = stdenv.lib.licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/centerim/default.nix
new file mode 100644
index 000000000000..350d09078c41
--- /dev/null
+++ b/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";
+  name = "centerim5-${version}";
+
+  src = fetchurl {
+    url = "http://centerim.org/download/cim5/${name}.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/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
new file mode 100644
index 000000000000..1e88456e6b24
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig,
+  cairo, gdk_pixbuf, glib, gnome3, wrapGAppsHook  }:
+
+buildGoPackage rec {
+  name = "coyim-${version}";
+  version = "0.3.7_1";
+
+  goPackagePath = "github.com/twstrike/coyim";
+
+  src = fetchFromGitHub {
+    owner = "twstrike";
+    repo = "coyim";
+    rev = "df2c52fe865d38fa27e8a7af1d87612e8c048805";
+    sha256 = "1sna1n9dz1crws6cb1yjhy2kznbngjlbiw2diycshvbfigf7y7xl";
+  };
+
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook glib cairo gdk_pixbuf gnome3.gtk gnome3.defaultIconTheme ];
+
+  meta = with stdenv.lib; {
+    description = "a safe and secure chat client";
+    homepage = https://coy.im/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
new file mode 100644
index 000000000000..457fdd2544f0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchFromGitHub
+, vala, cmake, ninja, wrapGAppsHook, pkgconfig, gettext
+, gobject-introspection, gnome3, glib, gdk_pixbuf, gtk3, glib-networking
+, xorg, libXdmcp, libxkbcommon
+, libnotify, libsoup
+, libgcrypt
+, epoxy
+, at-spi2-core
+, sqlite
+, dbus
+, gpgme
+, pcre
+, qrencode
+ }:
+
+stdenv.mkDerivation rec {
+  name = "dino-unstable-2018-11-29";
+
+  src = fetchFromGitHub {
+    owner = "dino";
+    repo = "dino";
+    rev = "680d28360c781ff29e810821801cfaba0493c526";
+    sha256 = "1w08xc842p2nggdxf0dwqw8izhwsrqah10w3s0v1i7dp33yhycln";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    vala
+    cmake
+    ninja
+    pkgconfig
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    qrencode
+    gobject-introspection
+    glib-networking
+    glib
+    gnome3.libgee
+    gnome3.defaultIconTheme
+    sqlite
+    gdk_pixbuf
+    gtk3
+    libnotify
+    gpgme
+    libgcrypt
+    libsoup
+    pcre
+    xorg.libxcb
+    xorg.libpthreadstubs
+    libXdmcp
+    libxkbcommon
+    epoxy
+    at-spi2-core
+    dbus
+    gettext
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Modern Jabber/XMPP Client using GTK+/Vala";
+    homepage = https://github.com/dino/dino;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mic92 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
new file mode 100644
index 000000000000..09ead9b3de65
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper
+, alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk_pixbuf
+, glib, gnome2, gtk2, libnotify, libX11, libXcomposite, libXcursor, libXdamage
+, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, libxcb
+, pango, systemd, libXScrnSaver, libcxx, libpulseaudio }:
+
+stdenv.mkDerivation rec {
+
+    pname = "discord";
+    version = "0.0.5";
+    name = "${pname}-${version}";
+
+    src = fetchurl {
+        url = "https://cdn.discordapp.com/apps/linux/${version}/${pname}-${version}.tar.gz";
+        sha256 = "067gb72qsxrzfma04njkbqbmsvwnnyhw4k9igg5769jkxay68i1g";
+    };
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    libPath = stdenv.lib.makeLibraryPath [
+        libcxx systemd libpulseaudio
+        stdenv.cc.cc alsaLib atk cairo cups dbus expat fontconfig freetype
+        gdk_pixbuf glib gnome2.GConf gtk2 libnotify libX11 libXcomposite
+        libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
+        libXtst nspr nss libxcb pango systemd libXScrnSaver
+     ];
+
+    installPhase = ''
+        mkdir -p $out/{bin,opt/discord,share/pixmaps}
+        mv * $out/opt/discord
+
+        patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
+                 $out/opt/discord/Discord
+
+        paxmark m $out/opt/discord/Discord
+
+        wrapProgram $out/opt/discord/Discord --prefix LD_LIBRARY_PATH : ${libPath}
+
+        ln -s $out/opt/discord/Discord $out/bin/
+        ln -s $out/opt/discord/discord.png $out/share/pixmaps
+
+        ln -s "${desktopItem}/share/applications" $out/share/
+        '';
+
+    desktopItem = makeDesktopItem {
+      name = pname;
+      exec = "Discord";
+      icon = pname;
+      desktopName = "Discord";
+      genericName = meta.description;
+      categories = "Network;InstantMessaging;";
+    };
+
+    meta = with stdenv.lib; {
+        description = "All-in-one cross-platform voice and text chat for gamers";
+        homepage = https://discordapp.com/;
+        downloadPage = "https://github.com/crmarsh/discord-linux-bugs";
+        license = licenses.unfree;
+        maintainers = [ maintainers.ldesgoui maintainers.MP2E ];
+        platforms = [ "x86_64-linux" ];
+    };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ekiga/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ekiga/default.nix
new file mode 100644
index 000000000000..1eaaf3b12dfa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ekiga/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, glib, fetchurl, fetchpatch, cyrus_sasl, gettext, openldap, ptlib, opal, libXv, rarian, intltool
+, perlPackages, evolution-data-server, gnome-doc-utils, avahi, autoreconfHook
+, libsigcxx, gtk, dbus-glib, libnotify, libXext, xextproto, gnome3, boost, libsecret
+, pkgconfig, libxml2, videoproto, unixODBC, db, nspr, nss, zlib
+, libXrandr, randrproto, which, libxslt, libtasn1, gmp, nettle, sqlite, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "ekiga-4.0.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/ekiga/4.0/${name}.tar.xz";
+    sha256 = "5f4f491c9496cf65ba057a9345d6bb0278f4eca07bcda5baeecf50bfcd9a4a3b";
+  };
+
+  buildInputs = [ cyrus_sasl gettext openldap ptlib opal libXv rarian intltool
+                  evolution-data-server gnome-doc-utils avahi
+                  libsigcxx gtk dbus-glib libnotify libXext xextproto sqlite
+                  gnome3.libsoup glib gnome3.defaultIconTheme boost
+                  autoreconfHook pkgconfig libxml2 videoproto unixODBC db nspr
+                  nss zlib libsecret libXrandr randrproto which libxslt libtasn1
+                  gmp nettle makeWrapper ]
+    ++ (with perlPackages; [ perl XMLParser ]);
+
+  preAutoreconf = ''
+    substituteInPlace configure.ac --replace AM_GCONF_SOURCE_2 ""
+    substituteInPlace configure.ac --replace gnome-icon-theme adwaita-icon-theme
+  '';
+
+  configureFlags = [
+    "--with-ldap-dir=${openldap.dev}"
+    "--with-libsasl2-dir=${cyrus_sasl.dev}"
+    "--with-boost-libdir=${boost.out}/lib"
+    "--disable-gconf"
+  ];
+
+  enableParallelBuilding = true;
+
+  patches = [
+    (fetchpatch { url = https://sources.debian.net/data/main/e/ekiga/4.0.1-7/debian/patches/autofoo.patch;
+      sha256 = "1vyagslws4mm9yfz1m5p1kv9sxmk5lls9vxpm6j72q2ahsgydzx4";
+    })
+    (fetchpatch { url = https://sources.debian.net/data/main/e/ekiga/4.0.1-7/debian/patches/boost.patch;
+      sha256 = "01k0rw8ibrrf9zn9lx6dzbrgy58w089hqxqxqdv9whb65cldlj5s";
+    })
+    (fetchpatch { url = https://src.fedoraproject.org/rpms/ekiga/raw/dbf5f5ba449d22bd79f0394cddb7d4d8a88ec6ac/f/ekiga-4.0.1-libresolv.patch;
+      sha256 = "18wc68im8422ibpa0gkrkgjq41m7hikaha3xqmjs2km45i1cwcaz";
+    })
+  ];
+
+  postInstall = ''
+    wrapProgram "$out"/bin/ekiga \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "VOIP/Videoconferencing app with full SIP and H.323 support";
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+    license = licenses.gpl2Plus;
+  };
+
+  passthru = {
+    updateInfo = {
+      downloadPage = "mirror://gnome/sources/ekiga";
+    };
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
new file mode 100644
index 000000000000..2f3870d78994
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper, autoPatchelfHook
+, xorg, atk, glib, pango, gdk_pixbuf, cairo, freetype, fontconfig, gtk2
+, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }:
+
+let
+  bits = if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
+         else "ia32";
+
+  version = "4.0.4";
+
+  desktopItem = makeDesktopItem rec {
+    name = "Franz";
+    exec = name;
+    icon = "franz";
+    desktopName = name;
+    genericName = "Franz messenger";
+    categories = "Network;";
+  };
+in stdenv.mkDerivation rec {
+  name = "franz-${version}";
+  src = fetchurl {
+    url = "https://github.com/meetfranz/franz-app/releases/download/${version}/Franz-linux-${bits}-${version}.tgz";
+    sha256 = if bits == "x64" then
+      "0ssym0jfrig474g6j67g1jfybjkxnyhbqqjvrs8z6ihwlyd3rrk5" else
+      "16l9jma2hiwzl9l41yhrwribcgmxca271rq0cfbbm9701mmmciyy";
+  };
+
+  # don't remove runtime deps
+  dontPatchELF = true;
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  buildInputs = (with xorg; [
+    libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes
+    libXrender libX11 libXtst libXScrnSaver
+  ]) ++ [
+    gtk2 atk glib pango gdk_pixbuf cairo freetype fontconfig dbus
+    gnome2.GConf nss nspr alsaLib cups expat stdenv.cc.cc
+  ];
+  runtimeDependencies = [ udev.lib libnotify ];
+
+  unpackPhase = ''
+    tar xzf $src
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/opt/franz
+    cp -r * $out/opt/franz
+    ln -s $out/opt/franz/Franz $out/bin
+
+    # 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/franz/resources/app.asar.unpacked/assets/franz.png $out/share/pixmaps
+  '';
+
+  postFixup = ''
+    paxmark m $out/opt/franz/Franz
+    wrapProgram $out/opt/franz/Franz --prefix PATH : ${xdg_utils}/bin
+  '';
+
+  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.gnidorah ];
+    platforms = ["i686-linux" "x86_64-linux"];
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
new file mode 100644
index 000000000000..2c27853c9442
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub
+, guile, pkgconfig, glib, loudmouth, gmp, libidn, readline, libtool
+, libunwind, ncurses, curl, jansson, texinfo
+, automake, autoconf
+}:
+
+stdenv.mkDerivation rec {
+  name = "freetalk-${version}";
+  version = "4.1";
+  
+  src = fetchFromGitHub {
+    owner = "GNUFreetalk";
+    repo = "freetalk";
+    rev = "v${version}";
+    sha256 = "09jwk2i8qd8c7wrn9xbqcwm32720dwxis22kf3jpbg8mn6w6i757";
+  };
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+    guile glib loudmouth gmp libidn readline libtool
+    libunwind ncurses curl jansson texinfo
+    autoconf automake
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
new file mode 100644
index 000000000000..83591722568b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -0,0 +1,67 @@
+{ buildPythonApplication, lib, fetchurl, gettext, wrapGAppsHook
+, python, gtk3, gobject-introspection
+, nbxmpp, pyasn1, pygobject3, gnome3, dbus-python, pillow
+, xvfb_run, dbus
+, enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-ugly
+, enableE2E ? true, pycrypto, python-gnupg
+, enableSecrets ? true, libsecret
+, enableRST ? true, docutils
+, enableSpelling ? true, gspell
+, enableUPnP ? true, gupnp-igd
+, enableOmemoPluginDependencies ? true, python-axolotl, qrcode
+, extraPythonPackages ? pkgs: [], pythonPackages
+}:
+
+with lib;
+
+buildPythonApplication rec {
+  name = "gajim-${version}";
+  majorVersion = "1.0";
+  version = "${majorVersion}.3";
+
+  src = fetchurl {
+    url = "https://gajim.org/downloads/${majorVersion}/gajim-${version}.tar.bz2";
+    sha256 = "0ds4rqwfrpj89a489w6yih8gx5zi7qa4ffgld950fk7s0qxvcfnb";
+  };
+
+  postPatch = ''
+    # This test requires network access
+    echo "" > test/integration/test_resolver.py
+  '';
+
+  buildInputs = [
+    gobject-introspection gtk3 gnome3.defaultIconTheme
+  ] ++ optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-ugly ]
+    ++ optional enableSecrets libsecret
+    ++ optional enableSpelling gspell
+    ++ optional enableUPnP gupnp-igd;
+
+  nativeBuildInputs = [
+    gettext wrapGAppsHook
+  ];
+
+  propagatedBuildInputs = [
+    nbxmpp pyasn1 pygobject3 dbus-python pillow
+  ] ++ optionals enableE2E [ pycrypto python-gnupg ]
+    ++ optional enableRST docutils
+    ++ optionals enableOmemoPluginDependencies [ python-axolotl qrcode ]
+    ++ extraPythonPackages pythonPackages;
+
+  checkInputs = [ xvfb_run dbus.daemon ];
+
+  checkPhase = ''
+    xvfb-run dbus-run-session \
+      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      ${python.interpreter} test/runtests.py
+  '';
+
+  meta = {
+    homepage = http://gajim.org/;
+    description = "Jabber client written in PyGTK";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ raskin aszlig abbradar ];
+    downloadPage = "http://gajim.org/downloads.php";
+    updateWalker = true;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
new file mode 100644
index 000000000000..be911f70f915
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gitter/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl
+, fontconfig, freetype, gdk_pixbuf, glib, gnome2, gtk3, libX11
+, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes
+, libXi, libXrandr, libXrender, libXtst, libappindicator-gtk3, libcxx
+, libnotify, libpulseaudio, libxcb, makeDesktopItem, makeWrapper, nspr, nss
+, nwjs, pango, systemd }:
+
+let gitterDirectorySuffix = "opt/gitter";
+    doELFPatch = target: ''
+      patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
+         --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \
+         $out/${gitterDirectorySuffix}/${target}
+       '';
+   libPath = stdenv.lib.makeLibraryPath [
+     alsaLib 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
+     libcxx libnotify libpulseaudio libxcb nspr nss pango stdenv.cc.cc systemd
+  ];
+in stdenv.mkDerivation rec {
+  pname = "gitter";
+  version = "4.1.0";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://update.gitter.im/linux64/${pname}_${version}_amd64.deb";
+    sha256 = "1gny9i2pywvczzrs93k8krqn6hwm6c2zg8yr3xmjqs3p88817wbi";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
new file mode 100644
index 000000000000..8e85be831a01
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGo110Package, fetchFromGitHub }:
+
+buildGo110Package rec {
+  name = "gomuks-${version}";
+  version = "2018-07-10";
+
+  goPackagePath = "maunium.net/go/gomuks";
+
+  src = fetchFromGitHub {
+    owner = "tulir";
+    repo = "gomuks";
+    rev = "68db26bcace31297471641fe95f8882e301f5699";
+    sha256 = "0dagdvsvn8nwqsvjbqk1c6gg2q1m40869nayrkwm3ndg2xkfdpm6";
+  };
+
+  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 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gtmess/default.nix
new file mode 100644
index 000000000000..3e16a58f54bb
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
new file mode 100644
index 000000000000..56f0f367c221
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -0,0 +1,87 @@
+{ 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 {
+  name = "hipchat-${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; [ jgeerds puffnfresh ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
new file mode 100644
index 000000000000..689445d7dcb8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, ocamlPackages }:
+
+assert stdenv.lib.versionAtLeast ocamlPackages.ocaml.version "4.02.2";
+
+stdenv.mkDerivation rec {
+  version = "2018-05-11";
+  name = "jackline-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "hannesm";
+    repo   = "jackline";
+    rev    = "bc36b1c8b80fee6baba4f91011cd01b82a06e8eb";
+    sha256 = "1xx2yx8a95m84sa1bkxi3rlx7pd39zkqwk3znj0zzz3cni6apfrz";
+  };
+
+  buildInputs = with ocamlPackages; [
+                  ocaml ocamlbuild findlib topkg ppx_sexp_conv
+                  erm_xmpp tls nocrypto x509 ocaml_lwt otr astring
+                  ptime notty sexplib hex uutf
+                ];
+
+  buildPhase = "${ocamlPackages.topkg.run} build --pinned true";
+
+  inherit (ocamlPackages.topkg) installPhase;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/hannesm/jackline;
+    description = "Terminal-based XMPP client in OCaml";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
new file mode 100644
index 000000000000..820a742245ed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, lib, fetchurl, makeDesktopItem, unzip, ant, jdk
+# Optional, Jitsi still runs without, but you may pass null:
+, alsaLib, dbus, gtk2, libpulseaudio, openssl, xorg
+}:
+
+stdenv.mkDerivation rec {
+  name = "jitsi-${version}";
+  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 = "Application;Internet;";
+  };
+
+  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 = with maintainers; [ ndowens ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
new file mode 100644
index 000000000000..e477bdfe2fd4
--- /dev/null
+++ b/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,7 +11,9 @@
+ # 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/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
new file mode 100644
index 000000000000..4282e99a712e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, intltool, pkgconfig, readline, openldap, cyrus_sasl, libupnp
+, zlib, libxml2, gtk2, libnotify, speex, ffmpeg, libX11, libsoup, udev
+, ortp, mediastreamer, sqlite, belle-sip, libosip, libexosip, bzrtp
+, mediastreamer-openh264, bctoolbox, makeWrapper, fetchFromGitHub, cmake
+, libmatroska, bcunit, doxygen, gdk_pixbuf, glib, cairo, pango, polarssl
+, python, graphviz, belcard
+, withGui ? true
+}:
+
+stdenv.mkDerivation rec {
+  baseName = "linphone";
+  version = "3.12.0";
+  name = "${baseName}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "BelledonneCommunications";
+    repo = "${baseName}";
+    rev = "${version}";
+    sha256 = "0az2ywrpx11sqfb4s4r2v726avcjf4k15bvrqj7xvhz7hdndmh0j";
+  };
+
+  cmakeFlags = stdenv.lib.optional withGui [ "-DENABLE_GTK_UI=ON" ];
+
+  postPatch = ''
+    touch coreapi/liblinphone_gitversion.h
+  '';
+
+  buildInputs = [
+    readline openldap cyrus_sasl libupnp zlib libxml2 gtk2 libnotify speex ffmpeg libX11
+    polarssl libsoup udev ortp mediastreamer sqlite belle-sip libosip libexosip
+    bctoolbox libmatroska bcunit gdk_pixbuf glib cairo pango bzrtp belcard
+  ];
+
+  nativeBuildInputs = [
+    intltool pkgconfig makeWrapper cmake doxygen graphviz
+    (python.withPackages (ps: [ ps.pystache ps.six ]))
+  ];
+
+  NIX_CFLAGS_COMPILE = " -Wno-error -I${glib.dev}/include/glib-2.0
+    -I${glib.out}/lib/glib-2.0/include -I${gtk2.dev}/include/gtk-2.0/
+    -I${cairo.dev}/include/cairo -I${pango.dev}/include/pango-1.0
+    -I${gtk2}/lib/gtk-2.0/include
+    -DLIBLINPHONE_GIT_VERSION=\"v${version}\"
+    ";
+
+  postInstall = ''
+    for i in $(cd $out/bin && ls); do
+      wrapProgram $out/bin/$i --set MEDIASTREAMER_PLUGINS_DIR ${mediastreamer-openh264}/lib/mediastreamer/plugins
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.linphone.org/;
+    description = "Open Source video SIP softphone";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrique/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrique/default.nix
new file mode 100644
index 000000000000..91ba8e7175ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrique/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitLab, fetchFromGitHub, qmake
+, qtquickcontrols2, qtmultimedia, qtgraphicaleffects
+, libqmatrixclient
+}:
+
+let
+
+  libqmatrixclient_git = libqmatrixclient.overrideDerivation (oldAttrs: {
+    name = "libqmatrixclient-git-for-matrique";
+    src = fetchFromGitHub {
+      owner = "QMatrixClient";
+      repo = "libqmatrixclient";
+      rev = "d9ff200f";
+      sha256 = "0qxkffg1499wnn8rbndq6z51sz6hiij2pkp40cvs530sl0zg0c69";
+    };
+  });
+
+  SortFilterProxyModel = fetchFromGitLab {
+    owner = "b0";
+    repo = "SortFilterProxyModel";
+    rev = "3c2c125c";
+    sha256 = "1494dvq7kiq0ymf5f9hr47pw80zv3m3dncnaw1pnzs7mhkf2s5fr";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "matrique-${version}";
+  version = "250";
+
+  src = fetchFromGitLab {
+    owner = "b0";
+    repo = "matrique";
+    rev = version;
+    sha256 = "0l7ag2q3l8ixczwc43igvkkl81g5s5j032gzizmgpzb1bjpdgry7";
+  };
+
+  postPatch = ''
+    rm -r include/*
+    ln -sf ${libqmatrixclient_git.src} include/libqmatrixclient
+    ln -sf ${SortFilterProxyModel} include/SortFilterProxyModel
+  '';
+
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [
+    qtquickcontrols2 qtmultimedia qtgraphicaleffects
+    libqmatrixclient_git
+  ];
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "A glossy client for Matrix";
+    maintainers = with maintainers; [ fpletz ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
new file mode 100644
index 000000000000..109893850de1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, lib, fetchurl, gnome2, gtk2, 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 }:
+let
+  rpath = lib.makeLibraryPath [
+    alsaLib
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    gdk_pixbuf
+    glib
+    gnome2.GConf
+    gtk2
+    pango
+    libX11
+    libXScrnSaver
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXtst
+    nspr
+    nss
+    stdenv.cc.cc
+    udev
+    xorg.libxcb
+  ];
+
+in
+  stdenv.mkDerivation rec {
+    name = "mattermost-desktop-${version}";
+    version = "4.1.2";
+
+    src =
+      if stdenv.hostPlatform.system == "x86_64-linux" then
+        fetchurl {
+          url = "https://releases.mattermost.com/desktop/${version}/${name}-linux-x64.tar.gz";
+          sha256 = "16dn6870bs1nfl2082ym9gwvmqb3i5sli48qprap80p7riph6k9s";
+        }
+      else if stdenv.hostPlatform.system == "i686-linux" then
+        fetchurl {
+          url = "https://releases.mattermost.com/desktop/${version}/${name}-linux-ia32.tar.gz";
+          sha256 = "145zb1l37fa2slfrrlprlwzcc5km3plxs374yhgix25mlg2afkqr";
+        }
+      else
+        throw "Mattermost-Desktop is not currently supported on ${stdenv.hostPlatform.system}";
+
+    phases = [ "unpackPhase" "installPhase" ];
+    installPhase = ''
+      mkdir -p $out
+      cp -R . $out
+
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+               --set-rpath ${rpath}:$out $out/mattermost-desktop
+
+      patchShebangs $out/create_desktop_file.sh
+      $out/create_desktop_file.sh
+
+      mkdir -p $out/{bin,share/applications}
+      cp Mattermost.desktop $out/share/applications/Mattermost.desktop
+      ln -s $out/mattermost-desktop $out/bin/mattermost-desktop
+    '';
+
+    meta = {
+      description = "Mattermost Desktop client";
+      homepage    = https://about.mattermost.com/;
+      license     = lib.licenses.asl20;
+      platforms   = [
+        "x86_64-linux" "i686-linux"
+      ];
+    };
+  }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix
new file mode 100644
index 000000000000..d86d62021fbd
--- /dev/null
+++ b/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 {
+  name = "mcabber-${version}";
+  version = "1.1.0";
+
+  src = fetchurl {
+    url = "https://mcabber.com/files/mcabber-${version}.tar.bz2";
+    sha256 = "1ggh865p1rf10ffsnf4g6qv9i8bls36dxdb1nzs5r9vdqci2rz04";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile
new file mode 100644
index 000000000000..0eed9808ab4f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile
@@ -0,0 +1,40 @@
+alias __source_distinct__ source
+def source(url)
+  @loaded ||= {}
+  unless @loaded[url]
+    @loaded[url] = true
+    __source_distinct__(url) end end
+
+source 'https://rubygems.org'
+
+group :default do
+  gem 'oauth', '>= 0.5.1'
+  gem 'json_pure', '~> 1.8'
+  gem 'addressable', '~> 2.3'
+  gem 'memoist', '>= 0.16', '< 0.17'
+  gem 'ruby-hmac', '~> 0.4'
+  gem 'typed-array', '~> 0.1'
+  gem 'delayer', '~> 0.0'
+  gem 'pluggaloid', '>= 1.1.1', '< 2.0'
+  gem 'delayer-deferred', '>= 1.0.4', '< 1.1'
+  gem 'twitter-text', '>= 1.14.6'
+end
+
+group :test do
+  gem 'test-unit', '~> 3.0'
+  gem 'rake', '~> 10.1'
+  gem 'watch', '~> 0.1'
+  gem 'mocha', '~> 0.14'
+  gem 'webmock', '~> 1.17'
+  gem 'ruby-prof'
+end
+
+
+group :plugin do
+  Dir.glob(File.expand_path(File.join(__dir__, 'core/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/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock
new file mode 100644
index 000000000000..69530be4a446
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/Gemfile.lock
@@ -0,0 +1,109 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    atk (3.1.9)
+      glib2 (= 3.1.9)
+    cairo (1.15.10)
+      native-package-installer (>= 1.0.3)
+      pkg-config (>= 1.2.2)
+    cairo-gobject (3.1.9)
+      cairo
+      glib2 (= 3.1.9)
+    crack (0.4.3)
+      safe_yaml (~> 1.0.0)
+    delayer (0.0.2)
+    delayer-deferred (1.0.4)
+      delayer (>= 0.0.2, < 0.1)
+    gdk_pixbuf2 (3.1.9)
+      gio2 (= 3.1.9)
+    gettext (3.0.9)
+      locale (>= 2.0.5)
+      text
+    gio2 (3.1.9)
+      glib2 (= 3.1.9)
+      gobject-introspection (= 3.1.9)
+    glib2 (3.1.9)
+      native-package-installer (>= 1.0.3)
+      pkg-config (>= 1.2.2)
+    gobject-introspection (3.1.9)
+      glib2 (= 3.1.9)
+    gtk2 (3.1.9)
+      atk (= 3.1.9)
+      gdk_pixbuf2 (= 3.1.9)
+      pango (= 3.1.9)
+    hashdiff (0.3.7)
+    httpclient (2.8.3)
+    instance_storage (1.0.0)
+    json_pure (1.8.6)
+    locale (2.1.2)
+    memoist (0.16.0)
+    metaclass (0.0.4)
+    mini_portile2 (2.3.0)
+    mocha (0.14.0)
+      metaclass (~> 0.0.1)
+    moneta (1.0.0)
+    native-package-installer (1.0.4)
+    nokogiri (1.8.1)
+      mini_portile2 (~> 2.3.0)
+    oauth (0.5.3)
+    pango (3.1.9)
+      cairo (>= 1.14.0)
+      cairo-gobject (= 3.1.9)
+      gobject-introspection (= 3.1.9)
+    pkg-config (1.2.8)
+    pluggaloid (1.1.1)
+      delayer
+      instance_storage (>= 1.0.0, < 2.0.0)
+    power_assert (1.1.1)
+    public_suffix (3.0.0)
+    rake (10.5.0)
+    ruby-hmac (0.4.0)
+    ruby-prof (0.16.2)
+    safe_yaml (1.0.4)
+    test-unit (3.2.6)
+      power_assert
+    text (1.3.1)
+    totoridipjp (0.1.0)
+    twitter-text (1.14.7)
+      unf (~> 0.1.0)
+    typed-array (0.1.2)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.4)
+    watch (0.1.0)
+    webmock (1.24.6)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  addressable (~> 2.3)
+  delayer (~> 0.0)
+  delayer-deferred (>= 1.0.4, < 1.1)
+  gettext (~> 3.0.1)
+  gtk2 (= 3.1.9)
+  httpclient
+  json_pure (~> 1.8)
+  memoist (>= 0.16, < 0.17)
+  mocha (~> 0.14)
+  moneta
+  nokogiri
+  oauth (>= 0.5.1)
+  pluggaloid (>= 1.1.1, < 2.0)
+  rake (~> 10.1)
+  ruby-hmac (~> 0.4)
+  ruby-prof
+  test-unit (~> 3.0)
+  totoridipjp
+  twitter-text (>= 1.14.6)
+  typed-array (~> 0.1)
+  watch (~> 0.1)
+  webmock (~> 1.17)
+
+BUNDLED WITH
+   1.14.6
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/gtk/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/gtk/Gemfile
new file mode 100644
index 000000000000..b7d19db37630
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/gtk/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'gtk2', '3.1.9'
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/image_file_cache/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/image_file_cache/Gemfile
new file mode 100644
index 000000000000..f86005fef078
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/image_file_cache/Gemfile
@@ -0,0 +1 @@
+gem 'moneta'
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/photo_support/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/photo_support/Gemfile
new file mode 100644
index 000000000000..ee2ecf52d42e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/photo_support/Gemfile
@@ -0,0 +1,5 @@
+source 'https://rubygems.org'
+
+gem 'nokogiri'
+gem 'httpclient'
+gem 'totoridipjp'
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/uitranslator/Gemfile b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/uitranslator/Gemfile
new file mode 100644
index 000000000000..1625327f16dc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/core/plugin/uitranslator/Gemfile
@@ -0,0 +1,5 @@
+source 'https://rubygems.org'
+
+group :default do
+  gem 'gettext', '~> 3.0.1'
+end
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix
new file mode 100644
index 000000000000..3c267e612a68
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl
+, bundlerEnv, ruby
+, alsaUtils, libnotify, which, wrapGAppsHook, gtk2
+}:
+
+stdenv.mkDerivation rec {
+  name = "mikutter-${version}";
+  version = "3.5.13";
+
+  src = fetchurl {
+    url = "https://mikutter.hachune.net/bin/mikutter.${version}.tar.gz";
+    sha256 = "2e01cd6cfe0caad663a381e5263f6d8030f0fb7cd8d4f858d320166516c7c320";
+  };
+
+  env = bundlerEnv {
+    name = "mikutter-${version}-gems";
+    gemdir = ./.;
+
+    inherit ruby;
+  };
+
+  buildInputs = [ alsaUtils libnotify which gtk2 ruby ];
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  postUnpack = ''
+    rm -rf $sourceRoot/vendor
+  '';
+
+  installPhase = ''
+    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
+    )
+
+    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;
+    maintainers = with maintainers; [ midchildan ];
+    platforms = ruby.meta.platforms;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix
new file mode 100644
index 000000000000..ef7091689b37
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/gemset.nix
@@ -0,0 +1,374 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  atk = {
+    dependencies = ["glib2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18l99gv6828rn59q8k6blxg146b025fj44klrcisffw6h9s9qqxm";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  cairo = {
+    dependencies = ["native-package-installer" "pkg-config"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f0n057cj6cjz7f38pwnflrkbwkl8pm3g9ssa51flyxr7lcpcw7c";
+      type = "gem";
+    };
+    version = "1.15.10";
+  };
+  cairo-gobject = {
+    dependencies = ["cairo" "glib2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qnsd9203qc6hl2i4hfzngr8v06rfk4vxfn6sbr8b4c1q4n0lq26";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  crack = {
+    dependencies = ["safe_yaml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  delayer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "156vy4x1d2jgafkjaafzfz7g8ghl4p5zgbl859b8slp4wdxy3v1r";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  delayer-deferred = {
+    dependencies = ["delayer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rp2hpik8gs1kzwwq831jwj1iv5bhfwd3dmm9nvizy3nqpz1gvvb";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  gdk_pixbuf2 = {
+    dependencies = ["gio2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x7vna77qw26479dydzfs1sq7xmq31xfly2pn5fvh35wg0q4y07d";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  gettext = {
+    dependencies = ["locale" "text"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14vw306p46w2kyad3kp9vq56zw3ch6px30wkhl5x0qkx8d3ya3ir";
+      type = "gem";
+    };
+    version = "3.0.9";
+  };
+  gio2 = {
+    dependencies = ["glib2" "gobject-introspection"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dxyaxp32m19mynw20x39vkb50wa4jcxczwmbkq7pcg55j76wwhm";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  glib2 = {
+    dependencies = ["native-package-installer" "pkg-config"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y1ws895345a88wikqil1x87cpd7plmwfi635piam7il6vsb4h73";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  gobject-introspection = {
+    dependencies = ["glib2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04gla6z9y8g0d69wlwl0wr7pwyzqg132pfs1n9fq6fgkjb6l7sm3";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  gtk2 = {
+    dependencies = ["atk" "gdk_pixbuf2" "pango"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mshgsw2x0w5wfcp17qnsja50aafbjxy2g42kvk5sr19l0chkkkq";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  hashdiff = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yj5l2rw8i8jc725hbcpc4wks0qlaaimr3dpaqamfjkjkxl0hjp9";
+      type = "gem";
+    };
+    version = "0.3.7";
+  };
+  httpclient = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  instance_storage = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08nf5fhq9dckq9lmaklxydq0hrlfi7phk66gr3bggxg45zd687pl";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  json_pure = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vllrpm2hpsy5w1r7000mna2mhd7yfrmd8hi713lk0n9mv27bmam";
+      type = "gem";
+    };
+    version = "1.8.6";
+  };
+  locale = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  memoist = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  metaclass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  mocha = {
+    dependencies = ["metaclass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0id1x7g46fzy8f4jna20ys329ydaj3sad75qs9db2a6nd7f0zc2b";
+      type = "gem";
+    };
+    version = "0.14.0";
+  };
+  moneta = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pgwn6xnlh7vviy511mfgkv2j3sfihn5ic2zabmyrs2nh6kfa912";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  native-package-installer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0svj2sg7y7izl90qrvzd2fcb1rkq8bv3bd6lr9sh1ml18v3w882a";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "105xh2zkr8nsyfaj2izaisarpnkrrl9000y3nyflg9cbzrfxv021";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  oauth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a5cfg9pm3mxsmlk1slj652vza8nha2lpbpbmf3rrk0lh6zi4d0b";
+      type = "gem";
+    };
+    version = "0.5.3";
+  };
+  pango = {
+    dependencies = ["cairo" "cairo-gobject" "gobject-introspection"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0swld0s01djjlqrari0ib75703mb7qr4ydn00cqfhdr7xim66hjk";
+      type = "gem";
+    };
+    version = "3.1.9";
+  };
+  pkg-config = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "056qb6cwbw2l9riq376wazx4kwd67cdilyclpa6j38mfsswpmzws";
+      type = "gem";
+    };
+    version = "1.2.8";
+  };
+  pluggaloid = {
+    dependencies = ["delayer" "instance_storage"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p9s1bzw02jzjlpjpxsbfsy1cyfbqs10iqvhxqh4xgyh72nry9zr";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  power_assert = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h0s1clasynlbk3782801c61yx24pdv959fpw53g5yl8gxqj34iz";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0snaj1gxfib4ja1mvy3dzmi7am73i0mkqr0zkz045qv6509dhj5f";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  rake = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b";
+      type = "gem";
+    };
+    version = "10.5.0";
+  };
+  ruby-hmac = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01zym41f8fqbmxfz8zv19627swi62ka3gp33bfbkc87v5k7mw954";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  ruby-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y13gdcdajfgrkx5rc9pvb7bwkyximwl5yrhq05gkmhflzdr7kag";
+      type = "gem";
+    };
+    version = "0.16.2";
+  };
+  safe_yaml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  test-unit = {
+    dependencies = ["power_assert"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gl5b2d6bysnm0a1zx54qn6iwd67f6gsjy0c7zb68ag0453rqcnv";
+      type = "gem";
+    };
+    version = "3.2.6";
+  };
+  text = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  totoridipjp = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03ci9hbwc6xf4x0lkm6px4jgbmi37n8plsjhbf2ir5vka9f29lck";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  twitter-text = {
+    dependencies = ["unf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1732h7hy1k152w8wfvjsx7b79alk45i5imwd37ia4qcx8hfm3gvg";
+      type = "gem";
+    };
+    version = "1.14.7";
+  };
+  typed-array = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qlv2rnkin9rwkgjx3k5qvc17m0m7jf5cdirw3wxbjnw5kga27w9";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14hr2dzqh33kqc0xchs8l05pf3kjcayvad4z1ip5rdjxrkfk8glb";
+      type = "gem";
+    };
+    version = "0.0.7.4";
+  };
+  watch = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02g4g6ynnldyjjzrh19r584gj4z6ksff7h0ajz5jdwhpp5y7cghx";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  webmock = {
+    dependencies = ["addressable" "crack" "hashdiff"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03vlr6axajz6c7xmlk0w1kvkxc92f8y2zp27wq1z6yk916ry25n5";
+      type = "gem";
+    };
+    version = "1.24.6";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/mikutter.desktop
new file mode 100644
index 000000000000..092f5f35cbf8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/shell.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/shell.nix
new file mode 100644
index 000000000000..bc83767af32a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mikutter/shell.nix
@@ -0,0 +1,18 @@
+{ pkgs ? import <nixpkgs> {} }:
+
+pkgs.stdenv.mkDerivation {
+  name = "mikutter-shell";
+  buildInputs = with pkgs; [
+    bundix
+    bundler
+  ];
+
+  shellHook = ''
+    export MIKUTTER_CONFROOT="/homeless-shelter"
+    truncate --size 0 Gemfile.lock
+    bundle lock
+    bundle package --path=vendor/bundle --no-install
+    rm -rf vendor .bundle
+    bundix -d
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix
new file mode 100644
index 000000000000..a75835b3c7e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchFromGitLab }:
+
+buildGoPackage rec {
+  name = "mm-${version}";
+  version = "2016.11.04";
+
+  goPackagePath = "gitlab.com/meutraa/mm";
+
+  src = fetchFromGitLab {
+    owner = "meutraa";
+    repo = "mm";
+    rev = "473fdd97285168054b672dbad2ffc4047324c518";
+    sha256 = "1s8v5gxpw1sms1g3i8nq2x2mmmyz97qkmxs1fzlspfcd6i8vknkp";
+  };
+
+  meta = {
+    description = "A file system based matrix client";
+    homepage = https://gitlab.com/meutraa/mm;
+    license = stdenv.lib.licenses.isc;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
new file mode 100644
index 000000000000..6e78a9034aec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -0,0 +1,75 @@
+{ lib, stdenv, fetchFromGitHub, fetchurl
+, cmake, cmark, lmdb, qt5, qtmacextras, mtxclient
+, boost, spdlog, olm, pkgconfig
+}:
+
+let
+  tweeny = fetchFromGitHub {
+    owner = "mobius3";
+    repo = "tweeny";
+    rev = "b94ce07cfb02a0eb8ac8aaf66137dabdaea857cf";
+    sha256 = "1wyyq0j7dhjd6qgvnh3knr70li47hmf5394yznkv9b1indqjx4mi";
+  };
+
+  lmdbxx = fetchFromGitHub {
+    owner = "bendiken";
+    repo = "lmdbxx";
+    rev = "0b43ca87d8cfabba392dfe884eb1edb83874de02";
+    sha256 = "1whsc5cybf9rmgyaj6qjji03fv5jbgcgygp956s3835b9f9cjg1n";
+  };
+in
+stdenv.mkDerivation rec {
+  name = "nheko-${version}";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "mujx";
+    repo = "nheko";
+    rev = "v${version}";
+    sha256 = "014k68mmw3ys7ldgj96kkr1i1lyv2nk89wndkqznsizcr3097fn5";
+  };
+
+  # If, on Darwin, you encounter the error
+  #   error: must specify at least one argument for '...' parameter of variadic
+  #   macro [-Werror,-Wgnu-zero-variadic-macro-arguments]
+  # Then adding this parameter is likely the fix you want.
+  #
+  # However, it looks like either cmake doesn't honor this CFLAGS variable, or
+  # darwin's compiler doesn't have the same syntax as gcc for turning off
+  # -Werror selectively.
+  #
+  # Anyway, this is something that will have to be debugged with access to a
+  # darwin-based OS. Sorry about that!
+  #
+  #preConfigure = lib.optionalString stdenv.isDarwin ''
+  #  export CFLAGS=-Wno-error=gnu-zero-variadic-macro-arguments
+  #'';
+
+  postPatch = ''
+    mkdir -p .deps/include/
+    ln -s ${tweeny}/include .deps/include/tweeny
+    ln -s ${spdlog} .deps/spdlog
+  '';
+
+  cmakeFlags = [
+    "-DTWEENY_INCLUDE_DIR=.deps/include"
+    "-DLMDBXX_INCLUDE_DIR=${lmdbxx}"
+  ];
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    mtxclient olm boost lmdb spdlog cmark
+    qt5.qtbase qt5.qtmultimedia qt5.qttools
+  ] ++ lib.optional stdenv.isDarwin qtmacextras;
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Desktop client for the Matrix protocol";
+    maintainers = with maintainers; [ ekleog fpletz ];
+    platforms = platforms.unix;
+    license = licenses.gpl3Plus;
+    knownVulnerabilities = [ "No longer maintained" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix
new file mode 100644
index 000000000000..c71db351e9d2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/oysttyer/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, perl, perlPackages, coreutils,
+fetchFromGitHub, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "oysttyer-${version}";
+  version = "2.9.1";
+
+  src = fetchFromGitHub {
+    owner  = "oysttyer";
+    repo   = "oysttyer";
+    rev    = "${version}";
+    sha256 = "05bfak4jr8ln4847rkj5qkazqnjym65k1phav3yicbyr3mxywhjw";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
new file mode 100644
index 000000000000..60fd5af0a1ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/carbons/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, libxml2, pidgin, pkgconfig, fetchFromGitHub } :
+
+stdenv.mkDerivation rec {
+  name = "pidgin-carbons-${version}";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "gkdr";
+    repo  = "carbons";
+    rev   = "v${version}";
+    sha256 = "05hcqvsirb7gnpfcszsrgal5q7dajl2wdi2dy7c41zgl377syavw";
+  };
+
+  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; [ jb55 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/msn-pecan/default.nix
new file mode 100644
index 000000000000..452149443096
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/otr/default.nix
new file mode 100644
index 000000000000..9f5c246ede63
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix
new file mode 100644
index 000000000000..59b1d463c9d2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, pidgin, texLive, imagemagick, glib, gtk2 }:
+
+let version = "1.5.0";
+in
+stdenv.mkDerivation {
+  name = "pidgin-latex-${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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix
new file mode 100644
index 000000000000..18bf89a5f2ed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-mra/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchgit, pkgconfig, pidgin } :
+
+let
+  version = "54b2992";
+in
+stdenv.mkDerivation rec {
+  name = "pidgin-mra-${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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
new file mode 100644
index 000000000000..7e86a390edcb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pidgin, glib, json-glib, nss, nspr, libgnome-keyring } :
+
+stdenv.mkDerivation rec {
+  name = "pidgin-opensteamworks-${version}";
+  version = "unstable-2018-08-02";
+
+  src = fetchFromGitHub {
+    owner = "EionRobb";
+    repo = "pidgin-opensteamworks";
+    rev = "b16a636d177f4a8862abdfbdb2c0994712ea0cd3";
+    sha256 = "0qyxfrfzsm43f1gmbg350znwxld1fqr9a9yziqs322bx2vglzgfh";
+  };
+
+  preConfigure = "cd steam-mobile";
+  installFlags = [
+    "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2"
+    "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
+  ];
+
+  buildInputs = [ pidgin glib json-glib nss nspr libgnome-keyring ];
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-osd/default.nix
new file mode 100644
index 000000000000..ff065e7e2ce3
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix
new file mode 100644
index 000000000000..5fbf385ed07b
--- /dev/null
+++ b/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 {
+  name = "pidgin-skypeweb-${version}";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "EionRobb";
+    repo = "skype4pidgin";
+    rev = version;
+    sha256 = "1bd9gd36yhrbrww0dvai9rnzxxj1c9sb4003c72wg27w12y47xfv";
+  };
+
+  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; [ jgeerds ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix
new file mode 100644
index 000000000000..f482e12a4bc9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-xmpp-receipts/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pidgin } :
+
+let
+  version = "0.8";
+in
+stdenv.mkDerivation rec {
+  name = "pidgin-xmpp-receipts-${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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
new file mode 100644
index 000000000000..ba1d64c8b925
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-discord/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pkgconfig, pidgin, json-glib }:
+
+stdenv.mkDerivation rec {
+  name = "purple-discord-${version}";
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-facebook/default.nix
new file mode 100644
index 000000000000..150c47b9b50b
--- /dev/null
+++ b/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 "#!/bin/sh" > 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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix
new file mode 100644
index 000000000000..e304c139eea5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchhg, pidgin, glib, json-glib, protobuf, protobufc }:
+
+stdenv.mkDerivation rec {
+  name = "purple-hangouts-hg-${version}";
+  version = "2018-03-28";
+
+  src = fetchhg {
+    url = "https://bitbucket.org/EionRobb/purple-hangouts/";
+    rev = "0e137e6bf9e95c5a0bd282f3ad4a5bd00a6968ab";
+    sha256 = "04vjgz6qyd9ilv1c6n08r45vc683vxs1rgfwhh65pag6q4rbzlb9";
+  };
+
+  buildInputs = [ pidgin glib json-glib protobuf protobufc ];
+
+  installPhase = ''
+    install -Dm755 -t $out/lib/pidgin/ libhangouts.so
+    for size in 16 22 24 48; do
+      install -TDm644 hangouts$size.png $out/share/pixmaps/pidgin/protocols/$size/hangouts.png
+    done
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-lurch/default.nix
new file mode 100644
index 000000000000..bcfcbee85568
--- /dev/null
+++ b/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 {
+  name = "purple-lurch-${version}";
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
new file mode 100644
index 000000000000..0b2cba649207
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, pkgconfig, pidgin, json-glib, glib, http-parser, sqlite, olm, libgcrypt } :
+
+let
+  version = "2018-08-03";
+in
+stdenv.mkDerivation rec {
+  name = "purple-matrix-unstable-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/matrix-org/purple-matrix";
+    rev = "5a7166a3f54f85793c6b60662f8d12196aeaaeb0";
+    sha256 = "0ph0s24b37d1c50p8zbzgf4q2xns43a8v6vk85iz633wdd72zsa0";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ pidgin json-glib glib http-parser sqlite olm libgcrypt ];
+
+  hardeningDisable = [ "fortify" ]; # upstream compiles with -O0
+
+  makeFlags = [
+    "PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2"
+    "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/matrix-org/purple-matrix;
+    description = "Matrix support for Pidgin / libpurple";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ symphorien ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-plugin-pack/default.nix
new file mode 100644
index 000000000000..8022d32a081a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix
new file mode 100644
index 000000000000..e54af933a081
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchhg, pidgin, cmake, libxml2 } :
+
+let
+  version = "40ddb6d";
+in
+stdenv.mkDerivation rec {
+  name = "purple-vk-plugin-${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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix
new file mode 100644
index 000000000000..8990aeee8ec0
--- /dev/null
+++ b/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 rec {
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
new file mode 100644
index 000000000000..2d3a10cec5e4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }:
+
+let version = "1.23.3"; in
+
+stdenv.mkDerivation {
+  name = "pidgin-sipe-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz";
+    sha256 = "0aaiblnagncb0lhdwb8qbps6hxxmyfjg7sdi15lrkl98i3fahg4n";
+  };
+
+  meta = with stdenv.lib; {
+    description = "SIPE plugin for Pidgin IM";
+    homepage = http://sipe.sourceforge.net/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+
+  postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe";
+
+  buildInputs = [ pidgin intltool libxml2 nss nspr ];
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/skype4pidgin/default.nix
new file mode 100644
index 000000000000..ddb9217d5e22
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix
new file mode 100644
index 000000000000..8527593c1a20
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/telegram-purple/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchgit, pkgconfig, pidgin, libwebp, libgcrypt, gettext } :
+
+let
+  version = "1.3.0";
+in
+stdenv.mkDerivation rec {
+  name = "telegram-purple-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/majn/telegram-purple";
+    rev = "0340e4f14b2480782db4e5b9242103810227c522";
+    sha256 = "1xb7hrgisbpx00dsrm5yz934bdd7nfzicd7k855iynk3hjzqj7k5";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/tox-prpl/default.nix
new file mode 100644
index 000000000000..6d75ba40ce01
--- /dev/null
+++ b/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 {
+  name = "tox-prpl-${version}";
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix
new file mode 100644
index 000000000000..37b2a1f0c62d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/window-merge/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pidgin } :
+
+stdenv.mkDerivation rec {
+  name = "pidgin-window-merge-${version}";
+  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; [ jgeerds ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/add-search-path.patch
new file mode 100644
index 000000000000..b0758777186a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
new file mode 100644
index 000000000000..12348fe548c7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk2, 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 {
+  name = "pidgin-${version}";
+  majorVersion = "2";
+  version = "${majorVersion}.13.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/pidgin/${name}.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 = [
+    gtkspell2 aspell startupnotification
+    gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+    libxml2 nss nspr farstream
+    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);
+
+  propagatedBuildInputs = [ pkgconfig gtk2 gettext ]
+    ++ (with perlPackages; [ perl XMLParser ]);
+
+  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"]);
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    wrapProgram $out/bin/pidgin \
+      --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Multi-protocol instant messaging client";
+    homepage = http://pidgin.im;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.vcunat ];
+  };
+};
+
+in if plugins == [] then unwrapped
+    else import ./wrapper.nix {
+      inherit makeWrapper symlinkJoin plugins;
+      pidgin = unwrapped;
+    }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/pidgin-makefile.patch
new file mode 100644
index 000000000000..049d404a8d5f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/wrapper.nix
new file mode 100644
index 000000000000..095f838fe981
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix
new file mode 100644
index 000000000000..b5fa1ccc2f41
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/poezio/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonApplication, fetchurl, pythonOlder
+, pytest, aiodns, slixmpp, pyinotify, potr, mpd2, cffi, pkgconfig }:
+buildPythonApplication rec {
+    name = "poezio-${version}";
+    version = "0.12";
+
+    disabled = pythonOlder "3.4";
+
+    buildInputs = [ pytest ];
+    propagatedBuildInputs = [ aiodns slixmpp pyinotify potr mpd2 cffi ];
+    nativeBuildInputs = [ pkgconfig ];
+
+    src = fetchurl {
+      url = "http://dev.louiz.org/attachments/download/129/${name}.tar.gz";
+      sha256 = "11n9x82xyjwbqk28lsfnvqwn8qc9flv6w2c64camh6j3148ykpvz";
+    };
+
+    checkPhase = ''
+      py.test
+    '';
+
+    meta = with lib; {
+      description = "Free console XMPP client";
+      homepage = https://poez.io;
+      license = licenses.mit;
+      maintainers = [ maintainers.lsix ];
+    };
+  }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/default.nix
new file mode 100644
index 000000000000..e7527bafcc65
--- /dev/null
+++ b/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 {
+  name = "pond-${version}";
+  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.optionalString (!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/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pond/deps.nix
new file mode 100644
index 000000000000..55850f0a89c2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
new file mode 100644
index 000000000000..327b02b23526
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, glib, openssl
+, glibcLocales, expect, ncurses, libotr, curl, readline, libuuid
+, cmocka, libmicrohttpd, stabber, expat, libmesode
+
+, autoAwaySupport ? false,       libXScrnSaver ? null, libX11 ? null
+, notifySupport ? false,         libnotify ? null, gdk_pixbuf ? null
+, traySupport ? false,           gnome2 ? null
+, pgpSupport ? true,            gpgme ? null
+, pythonPluginSupport ? true,   python ? 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;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "profanity-${version}";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "boothj5";
+    repo = "profanity";
+    rev = "${version}";
+    sha256 = "1ppr02wivhlrqr62r901clnycna8zpn6kr7n5rw8y3zfw21ny17z";
+  };
+
+  patches = [ ./patches/packages-osx.patch ./patches/undefined-macros.patch ];
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ autoreconfHook glibcLocales pkgconfig ];
+
+  buildInputs = [
+    expect readline libuuid glib openssl expat ncurses libotr
+    curl libmesode cmocka libmicrohttpd stabber
+  ] ++ optionals autoAwaySupport     [ libXScrnSaver libX11 ]
+    ++ optionals notifySupport       [ libnotify gdk_pixbuf ]
+    ++ optionals traySupport         [ gnome2.gtk ]
+    ++ optionals pgpSupport          [ gpgme ]
+    ++ optionals pythonPluginSupport [ python ];
+
+  # 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" ];
+
+  preAutoreconf = ''
+    mkdir m4
+  '';
+
+  doCheck = true;
+
+  LC_ALL = "en_US.utf8";
+
+  NIX_CFLAGS_COMPILE = [ ]
+    ++ optionals pythonPluginSupport [ "-I${python}/include/${python.libPrefix}" ];
+
+  LDFLAGS = [ ]
+    ++ optionals pythonPluginSupport [ "-L${python}/lib" "-lpython${python.majorVersion}m" ];
+
+  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://profanity.im/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.devhell ];
+    updateWalker = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch
new file mode 100644
index 000000000000..77bfc5e78bd0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/packages-osx.patch
@@ -0,0 +1,11 @@
+diff --git a/configure.ac b/configure.ac
+index 1e55b1cc..0832a387 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -22,7 +22,6 @@ AC_CANONICAL_HOST
+ PLATFORM="unknown"
+ AS_CASE([$host_os],
+     [freebsd*], [PLATFORM="freebsd"],
+-    [darwin*], [PLATFORM="osx"],
+     [cygwin], [PLATFORM="cygwin"],
+     [PLATFORM="nix"])
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch
new file mode 100644
index 000000000000..9ef4e7bebe54
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch
@@ -0,0 +1,40 @@
+diff --git a/configure.ac b/configure.ac
+index 1e55b1cc..0832a387 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -83,12 +81,12 @@ elif test "x$enable_python_plugins" != xno; then
+         AM_CONDITIONAL([BUILD_PYTHON_API], [true])
+         AC_DEFINE([HAVE_PYTHON], [1], [Python support])
+     else
+-        if test "x$enable_python_plugins" = xyes; then
+-            AC_MSG_ERROR([Python not found, cannot enable Python plugins.])
+-        else
+-            AM_CONDITIONAL([BUILD_PYTHON_API], [false])
+-            AC_MSG_NOTICE([Python development package not found, Python plugin support disabled.])
+-        fi
++        AS_IF(
++            [test "x$enable_python_plugins" = xyes],
++            [],
++            [AM_CONDITIONAL([BUILD_PYTHON_API], [false])
++            AC_MSG_NOTICE([Python development package not found, Python plugin support disabled.])]
++        )
+     fi
+     AS_IF([test "x$PLATFORM" = xosx], [rm -f Python.framework])
+ else
+@@ -107,7 +105,7 @@ else
+             [AM_CONDITIONAL([BUILD_C_API], [true]) LIBS="$LIBS -ldl" AC_DEFINE([HAVE_C], [1], [C support])],
+             [AS_IF(
+                 [test "x$enable_c_plugins" = xyes],
+-                    [AC_MSG_ERROR([dl library needed to run C plugins])],
++                [],
+                 [AM_CONDITIONAL([BUILD_C_API], [false])])
+             ])
+     else
+@@ -116,7 +114,6 @@ else
+ fi
+ 
+ # threading
+-ACX_PTHREAD([], [AC_MSG_ERROR([pthread is required])])
+ LIBS="$PTHREAD_LIBS $LIBS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ])
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
new file mode 100644
index 000000000000..e1a2fb40c5ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake
+, qt5, libidn, qca2-qt5, libXScrnSaver, hunspell
+, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c
+}:
+
+stdenv.mkDerivation rec {
+  name = "psi-plus-${version}";
+  version = "1.4.504";
+
+  src = fetchFromGitHub {
+    owner = "psi-plus";
+    repo = "psi-plus-snapshots";
+    rev = "${version}";
+    sha256 = "1nv1ynad2gcn7r8mm2w3kixmahaql7xax1lccsqyxqmj1r0klk8q";
+  };
+
+  resources = fetchFromGitHub {
+    owner = "psi-plus";
+    repo = "resources";
+    rev = "d623f57db35eb5af81ccdf69b2cbe1c437190f29";
+    sha256 = "024cyazyxka5vcbjrkkw32c5zw6aa70n50fdp6zh5v5c51d9ci8k";
+  };
+
+  postUnpack = ''
+    cp -a "${resources}/iconsets" "$sourceRoot"
+  '';
+
+  cmakeFlags = [
+    "-DENABLE_PLUGINS=ON"
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    qt5.qtbase qt5.qtmultimedia qt5.qtx11extras qt5.qttools qt5.qtwebkit
+    libidn qca2-qt5 libXScrnSaver hunspell
+    libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "XMPP (Jabber) client";
+    maintainers = with maintainers; [ orivej ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
new file mode 100644
index 000000000000..daa9d04cfb53
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, enchant, qt4, zlib, sox, libX11, xproto, libSM
+, libICE, qca2, pkgconfig, which, glib
+, libXScrnSaver, scrnsaverproto
+}:
+
+stdenv.mkDerivation rec {
+  name = "psi-0.15";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/psi/${name}.tar.bz2";
+    sha256 = "593b5ddd7934af69c245afb0e7290047fd7dedcfd8765baca5a3a024c569c7e6";
+  };
+
+  buildInputs =
+    [ enchant qt4 zlib sox libX11 xproto libSM libICE
+      qca2 pkgconfig which glib scrnsaverproto libXScrnSaver
+    ];
+
+  NIX_CFLAGS_COMPILE="-I${qca2}/include/QtCrypto";
+
+  NIX_LDFLAGS="-lqca";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Psi, an XMPP (Jabber) client";
+    maintainers = [ maintainers.raskin ];
+    license = licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix
new file mode 100644
index 000000000000..3f6b23d70a05
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pybitmessage/default.nix
@@ -0,0 +1,39 @@
+{ 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-python pyqt4 numpy pyopencl ] ++ [ 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
+
+    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/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
new file mode 100644
index 000000000000..6cb51478b731
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
+, libtoxcore
+, libpthreadstubs, libXdmcp, libXScrnSaver
+, qtbase, qtsvg, qttools, qttranslations
+, ffmpeg, filter-audio, libexif, libsodium, libopus
+, libvpx, openal, pcre, qrencode, sqlcipher
+, AVFoundation ? null }:
+
+let
+  version = "1.16.3";
+  rev = "v${version}";
+
+in mkDerivation rec {
+  name = "qtox-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "qTox";
+    repo   = "qTox";
+    sha256 = "0qd4nvbrjnnfnk8ghsxq3cd1n1qf1ck5zg6ib11ij2pg03s146pa";
+    inherit rev;
+  };
+
+  buildInputs = [
+    libtoxcore
+    libpthreadstubs libXdmcp libXScrnSaver
+    qtbase qtsvg qttranslations
+    ffmpeg 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; [ jgeerds akaWolf peterhoeg ];
+    platforms   = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix
new file mode 100644
index 000000000000..55b24f71fb64
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, qtbase, qtquickcontrols, cmake
+, qttools, libqmatrixclient }:
+
+stdenv.mkDerivation rec {
+  name = "quaternion-${version}";
+  version = "0.0.9.3";
+
+  src = fetchFromGitHub {
+    owner  = "QMatrixClient";
+    repo   = "Quaternion";
+    rev    = "v${version}";
+    sha256 = "1hr9zqf301rg583n9jv256vzj7y57d8qgayk7c723bfknf1s6hh3";
+  };
+
+  buildInputs = [ qtbase qtquickcontrols qttools libqmatrixclient ];
+
+  nativeBuildInputs = [ cmake ];
+
+  postInstall = if stdenv.isDarwin then ''
+    mkdir -p $out/Applications
+    mv $out/bin/quaternion.app $out/Applications
+    rmdir $out/bin || :
+  '' else ''
+    substituteInPlace $out/share/applications/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/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/bare.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/bare.nix
new file mode 100644
index 000000000000..29ed30dd27f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/bare.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, fetchNodeModules, nodejs-8_x, ruby, sencha
+, auth0ClientID, auth0Domain }:
+
+stdenv.mkDerivation rec {
+  name = "rambox-bare-${version}";
+  version = "0.6.3";
+
+  src = fetchFromGitHub {
+    owner = "ramboxapp";
+    repo = "community-edition";
+    rev = version;
+    sha256 = "1ghk29d0x6i3j8b1b4xxgyf961lp17qsvvhnilnkh1nhmvxpwmw5";
+  };
+
+  nativeBuildInputs = [ nodejs-8_x ruby sencha ];
+
+  node_modules = fetchNodeModules {
+    inherit src;
+
+    nodejs = nodejs-8_x;
+    sha256 = "03h1kfiaflwbrvcd8v0bsymn7n2dxi3yj4pxkwcigqg4jgcf56k6";
+  };
+
+  patches = [ ./isDev.patch ];
+
+  configurePhase = ''
+    echo 'var auth0Cfg = { clientID: "${auth0ClientID}", domain: "${auth0Domain}" };' > env.js
+    ln -s ${node_modules} node_modules
+  '';
+
+  buildPhase = ''
+    mkdir ../rambox-build
+    npm run sencha:compile:build
+  '';
+
+  installPhase = ''
+    mv ../rambox-build/ $out
+
+    # https://github.com/saenzramiro/rambox/issues/1281
+    echo '{"name": "rambox", "version": "${version}", "main": "electron/main.js"}' > $out/package.json
+
+    # https://github.com/saenzramiro/rambox/issues/1282
+    cp --parents ext/packages/ext-locale/build/ext-locale-*.js $out
+
+    # Symbolic link causes `Uncaught Error: Cannot find module 'immutable'`
+    cp -r ${node_modules} $out/node_modules
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Messaging and emailing app that combines common web applications into one";
+    homepage = http://rambox.pro;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ gnidorah ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
new file mode 100644
index 000000000000..46157c2a35f3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, newScope, makeWrapper
+, wrapGAppsHook, gnome3, glib
+, electron, xdg_utils, makeDesktopItem
+, auth0ClientID ? "0spuNKfIGeLAQ_Iki9t3fGxbfJl3k8SU"
+, auth0Domain ? "nixpkgs.auth0.com" }:
+
+let
+  callPackage = newScope self;
+  self = {
+    fetchNodeModules = callPackage ./fetchNodeModules.nix {};
+    rambox-bare = callPackage ./bare.nix {
+      inherit auth0ClientID auth0Domain;
+    };
+    sencha = callPackage ./sencha {};
+  };
+  desktopItem = makeDesktopItem rec {
+    name = "Rambox";
+    exec = "rambox";
+    icon = "${self.rambox-bare}/resources/Icon.png";
+    desktopName = name;
+    genericName = "Rambox messenger";
+    categories = "Network;";
+  };
+in
+
+with self;
+
+stdenv.mkDerivation {
+  name = "rambox-${rambox-bare.version}";
+
+  nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+
+  buildInputs = [ glib gnome3.gsettings_desktop_schemas ];
+  unpackPhase = ":";
+
+  dontWrapGApps = true; # we only want $gappsWrapperArgs here
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/applications
+    ln -s ${desktopItem}/share/applications/* $out/share/applications
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${electron}/bin/electron $out/bin/rambox \
+      --add-flags "${rambox-bare} --without-update" \
+      "''${gappsWrapperArgs[@]}" \
+      --prefix PATH : ${xdg_utils}/bin
+  '';
+
+  inherit (rambox-bare.meta // {
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  });
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/fetchNodeModules.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/fetchNodeModules.nix
new file mode 100644
index 000000000000..047890a932ca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/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/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/isDev.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/isDev.patch
new file mode 100644
index 000000000000..b918144c7662
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/isDev.patch
@@ -0,0 +1,14 @@
+https://github.com/saenzramiro/rambox/issues/1280
+
+diff -urNZ a/electron/main.js b/electron/main.js
+--- a/electron/main.js	2017-11-02 14:58:06.085127616 +0000
++++ b/electron/main.js	2017-11-02 14:58:18.316887679 +0000
+@@ -8,7 +8,7 @@
+ // Configuration
+ const Config = require('electron-config');
+ // Development
+-const isDev = require('electron-is-dev');
++const isDev = false;
+ // Updater
+ const updater = require('./updater');
+ // File System
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix
new file mode 100644
index 000000000000..efecebe169e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/bare.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, gzip, which, unzip, jdk }:
+
+let
+  version = "6.6.0.13";
+  srcs = {
+    i686-linux = fetchurl {
+      url = "https://cdn.sencha.com/cmd/${version}/no-jre/SenchaCmd-${version}-linux-i386.sh.zip";
+      sha256 = "15b197108b49mf0afpihkh3p68lxm7580zz2w0xsbahglnvhwyfz";
+    };
+    x86_64-linux = fetchurl {
+      url = "https://cdn.sencha.com/cmd/${version}/no-jre/SenchaCmd-${version}-linux-amd64.sh.zip";
+      sha256 = "1cxhckmx1802p9qiw09cgb1v5f30wcvnrwkshmia8p8n0q47lpp4";
+    };
+  };
+in
+
+stdenv.mkDerivation rec {
+  inherit version;
+
+  name = "sencha-bare-${version}";
+  src = srcs.${stdenv.hostPlatform.system};
+
+  nativeBuildInputs = [ gzip which unzip ];
+  buildInputs = [ jdk ];
+
+  sourceRoot = ".";
+
+  configurePhase = ''
+    substituteAll ${./response.varfile} response.varfile
+  '';
+
+  installPhase = ''
+    ./SenchaCmd*.sh -q -dir $out -varfile response.varfile
+    # disallow sencha writing into /nix/store/repo
+    echo "repo.local.dir=$TMP/repo" >> $out/sencha.cfg
+    rm $out/shell-wrapper.sh $out/Uninstaller
+  '';
+
+  meta = with stdenv.lib; {
+    license = licenses.unfree;
+    platforms = attrNames srcs;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/default.nix
new file mode 100644
index 000000000000..1ca04a9e1686
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, callPackage, makeWrapper }:
+
+let
+  sencha-bare = callPackage ./bare.nix {};
+in
+
+stdenv.mkDerivation {
+  name = "sencha-${sencha-bare.version}";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  unpackPhase = ":";
+
+  installPhase = ''
+    makeWrapper ${sencha-bare}/sencha $out/bin/sencha
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/response.varfile b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/response.varfile
new file mode 100644
index 000000000000..0ff6f0a30d50
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/sencha/response.varfile
@@ -0,0 +1,13 @@
+addToPath$Integer=1
+parentDir=.
+sys.adminRights$Boolean=false
+sys.component.148$Boolean=true
+sys.component.157$Boolean=true
+sys.component.26$Boolean=true
+sys.component.30$Boolean=true
+sys.component.90$Boolean=true
+sys.component.91$Boolean=true
+sys.component.92$Boolean=true
+sys.component.94$Boolean=true
+sys.installationDir=@out@
+sys.languageId=en
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix
new file mode 100644
index 000000000000..add337d3f085
--- /dev/null
+++ b/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 rec {
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix
new file mode 100644
index 000000000000..a6aef5e6a2fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, pkgconfig, makeDesktopItem
+, qtbase, qttools, qtmultimedia, qtquick1, qtquickcontrols
+, openssl, protobuf, qmake
+}:
+
+stdenv.mkDerivation rec {
+  name = "ricochet-${version}";
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/default.nix
new file mode 100644
index 000000000000..168719bf0e4c
--- /dev/null
+++ b/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
+, 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 rec {
+  name = "ring-daemon-${version}";
+  version = "2017-07-11";
+
+  inherit src;
+
+  nativeBuildInputs = [
+    which
+    autoreconfHook
+    automake
+    libtool
+    pkgconfig
+  ];
+
+  buildInputs = [
+    pjsip'
+    libyamlcpp
+    alsaLib
+    libpulseaudio
+    libsamplerate
+    libsndfile
+    dbus
+    dbus_cplusplus
+    ffmpeg
+    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/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/notestsapps.patch
new file mode 100644
index 000000000000..842060935b04
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix
new file mode 100644
index 000000000000..0546d2dae472
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ring-daemon/restbed.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, asio
+, openssl
+, patches
+}:
+
+stdenv.mkDerivation rec {
+  name = "restbed-${version}";
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
new file mode 100644
index 000000000000..1d1617ed9e0d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, fetchurl, writeText, conf ? null }:
+
+let configFile = writeText "riot-config.json" conf; in
+stdenv.mkDerivation rec {
+  name= "riot-web-${version}";
+  version = "0.17.8";
+
+  src = fetchurl {
+    url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
+    sha256 = "0610h307q0zlyd0l7afrb8jv1r9gy9gc07zkjn33jpycwmpbwxbz";
+  };
+
+  installPhase = ''
+    mkdir -p $out/
+    cp -R . $out/
+    ${lib.optionalString (conf != null) "ln -s ${configFile} $out/config.json"}
+  '';
+
+  meta = {
+    description = "A glossy Matrix collaboration client for the web";
+    homepage = http://riot.im/;
+    maintainers = with stdenv.lib.maintainers; [ bachp ];
+    license = stdenv.lib.licenses.asl20;
+    platforms = stdenv.lib.platforms.all;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
new file mode 100644
index 000000000000..13c7281aea7c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/salut-a-toi/requirements.nix
new file mode 100644
index 000000000000..1a6811182453
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
new file mode 100644
index 000000000000..441bc020868e
--- /dev/null
+++ b/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 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/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
new file mode 100644
index 000000000000..9dd9a0d33345
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -0,0 +1,111 @@
+{ stdenv, lib, fetchurl, dpkg, wrapGAppsHook
+, 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, udev, libnotify
+# 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 "");
+  rpath = lib.makeLibraryPath [
+    alsaLib
+    atk
+    at-spi2-atk
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    gdk_pixbuf
+    glib
+    gnome2.GConf
+    gtk3
+    pango
+    libnotify
+    libX11
+    libXScrnSaver
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXtst
+    nspr
+    nss
+    udev
+    xorg.libxcb
+  ];
+
+in stdenv.mkDerivation rec {
+  name = "signal-desktop-${version}";
+  version = "1.19.0";
+
+  src = fetchurl {
+    url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
+    sha256 = "19a585mylbwrxd2m75hgp77ys1r350xkvawq2ysp0cxzr04l46z7";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  nativeBuildInputs = [ dpkg wrapGAppsHook ];
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  installPhase = ''
+    mkdir -p $out
+    cp -R opt $out
+
+    mv ./usr/share $out/share
+    mv $out/opt/Signal $out/libexec
+    rmdir $out/opt
+
+    chmod -R g-w $out
+
+    # Patch signal
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+             --set-rpath ${rpath}:$out/libexec $out/libexec/signal-desktop
+    wrapProgram $out/libexec/signal-desktop \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
+      --prefix LD_LIBRARY_PATH : "${stdenv.cc.cc.lib}/lib" \
+      ${customLanguageWrapperArgs} \
+      "''${gappsWrapperArgs[@]}"
+
+    # Symlink to bin
+    mkdir -p $out/bin
+    ln -s $out/libexec/signal-desktop $out/bin/signal-desktop
+
+    # Fix the desktop link
+    substituteInPlace $out/share/applications/signal-desktop.desktop \
+      --replace /opt/Signal/signal-desktop $out/bin/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/;
+    license     = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ ixmatus primeos ];
+    platforms   = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix
new file mode 100644
index 000000000000..1219440bf833
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/conference.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/conference.patch
new file mode 100644
index 000000000000..8b8ce8fd7bbf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/conference.patch
@@ -0,0 +1,148 @@
+From abd67f1d44eef81baf2e9729f95e002c4ecc7350 Mon Sep 17 00:00:00 2001
+From: jlh <jlh@gmx.ch>
+Date: Fri, 16 Oct 2009 17:40:54 +0200
+Subject: [PATCH] Rudimentary support for recording hosted conference calls
+
+---
+ call.cpp |   37 +++++++++++++++++++++++++++++++++++--
+ call.h   |   11 ++++++++++-
+ 2 files changed, 45 insertions(+), 3 deletions(-)
+
+diff --git a/call.cpp b/call.cpp
+index c2b02f2..663c1c1 100644
+--- a/call.cpp
++++ b/call.cpp
+@@ -90,9 +90,10 @@ void AutoSync::reset() {
+ 
+ // Call class
+ 
+-Call::Call(QObject *p, Skype *sk, CallID i) :
+-	QObject(p),
++Call::Call(CallHandler *h, Skype *sk, CallID i) :
++	QObject(h),
+ 	skype(sk),
++	handler(h),
+ 	id(i),
+ 	status("UNKNOWN"),
+ 	writer(NULL),
+@@ -119,6 +120,13 @@ Call::Call(QObject *p, Skype *sk, CallID i) :
+ 		debug(QString("Call %1: cannot get partner display name").arg(id));
+ 		displayName = "Unnamed Caller";
+ 	}
++
++	// Skype does not properly send updates when the CONF_ID property
++	// changes.  since we need this information, check it now on all calls
++	handler->updateConfIDs();
++	// this call isn't yet in the list of calls, thus we need to
++	// explicitely check its CONF_ID
++	updateConfID();
+ }
+ 
+ Call::~Call() {
+@@ -134,6 +142,10 @@ Call::~Call() {
+ 	// QT takes care of deleting servers and sockets
+ }
+ 
++void Call::updateConfID() {
++	confID = skype->getObject(QString("CALL %1 CONF_ID").arg(id)).toLong();
++}
++
+ bool Call::okToDelete() const {
+ 	// this is used for checking whether past calls may now be deleted.
+ 	// when a past call hasn't been decided yet whether it should have been
+@@ -270,6 +282,11 @@ void Call::startRecording(bool force) {
+ 	if (isRecording)
+ 		return;
+ 
++	if (handler->isConferenceRecording(confID)) {
++		debug(QString("Call %1: call is part of a conference that is already being recorded").arg(id));
++		return;
++	}
++
+ 	if (force) {
+ 		emit showLegalInformation();
+ 	} else {
+@@ -589,6 +606,22 @@ CallHandler::~CallHandler() {
+ 	delete legalInformationDialog;
+ }
+ 
++void CallHandler::updateConfIDs() {
++	QList<Call *> list = calls.values();
++	for (int i = 0; i < list.size(); i++)
++		list.at(i)->updateConfID();
++}
++
++bool CallHandler::isConferenceRecording(CallID id) const {
++	QList<Call *> list = calls.values();
++	for (int i = 0; i < list.size(); i++) {
++		Call *c = list.at(i);
++		if (c->getConfID() == id && c->getIsRecording())
++			return true;
++	}
++	return false;
++}
++
+ void CallHandler::callCmd(const QStringList &args) {
+ 	CallID id = args.at(0).toInt();
+ 
+diff --git a/call.h b/call.h
+index cb8396d..b746f46 100644
+--- a/call.h
++++ b/call.h
+@@ -43,6 +43,8 @@ class QTcpServer;
+ class QTcpSocket;
+ class LegalInformationDialog;
+ 
++class CallHandler;
++
+ typedef int CallID;
+ 
+ class AutoSync {
+@@ -68,18 +70,21 @@ private:
+ class Call : public QObject {
+ 	Q_OBJECT
+ public:
+-	Call(QObject *, Skype *, CallID);
++	Call(CallHandler *, Skype *, CallID);
+ 	~Call();
+ 	void startRecording(bool = false);
+ 	void stopRecording(bool = true);
++	void updateConfID();
+ 	bool okToDelete() const;
+ 	void setStatus(const QString &);
+ 	QString getStatus() const { return status; }
+ 	bool statusDone() const;
+ 	bool statusActive() const;
+ 	CallID getID() const { return id; }
++	CallID getConfID() const { return confID; }
+ 	void removeFile();
+ 	void hideConfirmation(int);
++	bool getIsRecording() const { return isRecording; }
+ 
+ signals:
+ 	void startedCall(int, const QString &);
+@@ -99,10 +104,12 @@ private:
+ 
+ private:
+ 	Skype *skype;
++	CallHandler *handler;
+ 	CallID id;
+ 	QString status;
+ 	QString skypeName;
+ 	QString displayName;
++	CallID confID;
+ 	AudioFileWriter *writer;
+ 	bool isRecording;
+ 	int stereo;
+@@ -140,6 +147,8 @@ class CallHandler : public QObject {
+ public:
+ 	CallHandler(QObject *, Skype *);
+ 	~CallHandler();
++	void updateConfIDs();
++	bool isConferenceRecording(CallID) const;
+ 	void callCmd(const QStringList &);
+ 
+ signals:
+-- 
+1.6.5.GIT
+
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/default.nix
new file mode 100644
index 000000000000..5fcee73c0f90
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skype-call-recorder/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, cmake, lame, id3lib, libvorbis, qt4, libogg }:
+
+stdenv.mkDerivation {
+  name = "skype-call-recorder-0.8";
+  src = fetchurl {
+    url = "https://atdot.ch/scr/files/0.8/skype-call-recorder-0.8.tar.gz";
+    sha256 = "1iijkhq3aj9gr3bx6zl8ryvzkqcdhsm9yisimakwq0lnw0lgf5di";
+  };
+
+  # Keep an rpath reference to the used libogg
+  prePatch = ''
+    sed -i -e '/ADD_EXECUTABLE/aSET(LIBRARIES ''${LIBRARIES} ogg)' CMakeLists.txt
+  '';
+
+  # Better support for hosted conferences
+  patches = [ ./conference.patch ];
+
+  buildInputs = [ cmake lame id3lib libvorbis qt4 libogg ];
+
+  meta = {
+    homepage = http://atdot.ch/scr/;
+    description = "Open source tool to record your Skype calls on Linux";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [viric];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
new file mode 100644
index 000000000000..49e5a12d447c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -0,0 +1,111 @@
+{ stdenv, fetchurl, dpkg
+, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk_pixbuf, glib, glibc, gnome2, gnome3
+, gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg }:
+
+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.32.0.44";
+
+  rpath = stdenv.lib.makeLibraryPath [
+    alsaLib
+    atk
+    cairo
+    cups
+    curl
+    dbus
+    expat
+    fontconfig
+    freetype
+    glib
+    glibc
+    libsecret
+
+    gnome2.GConf
+    gdk_pixbuf
+    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 {
+        url = "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb";
+        sha256 = "0yzh4bmv8mrfp0ml9nhcpcy0lhi8jp1fnmnxy0krvnphkp8750c7";
+      }
+    else
+      throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
+
+in stdenv.mkDerivation {
+  name = "skypeforlinux-${version}";
+
+  system = "x86_64-linux";
+
+  inherit src;
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    glib # For setup hook populating GSETTINGS_SCHEMA_PATH
+  ];
+
+  buildInputs = [ dpkg ];
+
+  unpackPhase = "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/ \
+      --replace /usr/share/ $out/share/
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack-term/default.nix
new file mode 100644
index 000000000000..79464f54232c
--- /dev/null
+++ b/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
+  name = "slack-term-${version}";
+  version = "0.4.1";
+
+  goPackagePath = "github.com/erroneousboat/slack-term";
+
+  src = fetchFromGitHub {
+    owner = "erroneousboat";
+    repo = "slack-term";
+    rev = "v${version}";
+    sha256 = "1340bq7h31fxykxbxpn6hv7n2hmjf20f8vg5gan9pjf5jaa6kfza";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
new file mode 100644
index 000000000000..51b6fb1d69c9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -0,0 +1,114 @@
+{ darkMode ? false, 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 }:
+
+let
+
+  version = "3.3.3";
+
+  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://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
+        sha256 = "01x4anbm62y49zfkyfvxih5rk8g2qi32ppb8j2a5pwssyw4wqbfi";
+      }
+    else
+      throw "Slack is not supported on ${stdenv.hostPlatform.system}";
+
+in stdenv.mkDerivation {
+  name = "slack-${version}";
+
+  inherit src;
+
+  buildInputs = [
+    dpkg
+    gtk3  # needed for GSETTINGS_SCHEMAS_PATH
+  ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  unpackPhase = "true";
+  buildCommand = ''
+    mkdir -p $out
+    dpkg -x $src $out
+    cp -av $out/usr/* $out
+    rm -rf $out/etc $out/usr $out/share/lintian
+
+    # 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
+
+    # Fix the desktop link
+    substituteInPlace $out/share/applications/slack.desktop \
+      --replace /usr/bin/ $out/bin/ \
+      --replace /usr/share/ $out/share/
+  '' + stdenv.lib.optionalString darkMode ''
+    cat <<EOF >> $out/lib/slack/resources/app.asar.unpacked/src/static/ssb-interop.js
+    document.addEventListener('DOMContentLoaded', function() {
+    let tt__customCss = ".menu ul li a:not(.inline_menu_link) {color: #fff !important;}"
+    $.ajax({
+        url: 'https://cdn.rawgit.com/laCour/slack-night-mode/master/css/raw/black.css',
+        success: function(css) {
+            \$("<style></style>").appendTo('head').html(css + tt__customCss);
+            \$("<style></style>").appendTo('head').html('#reply_container.upload_in_threads .inline_message_input_container {background: padding-box #545454}');
+            \$("<style></style>").appendTo('head').html('.p-channel_sidebar {background: #363636 !important}');
+            \$("<style></style>").appendTo('head').html('#client_body:not(.onboarding):not(.feature_global_nav_layout):before {background: inherit;}');
+        }
+      });
+    });
+    EOF
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Desktop client for Slack";
+    homepage = https://slack.com;
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix
new file mode 100644
index 000000000000..5dd8bf5f69ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/spectral/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchgit
+, pkgconfig
+, qmake, qtbase, qtquickcontrols2, qtmultimedia
+, libpulseaudio
+# Not mentioned but seems needed
+, qtgraphicaleffects
+# Unsure but needed by similar
+, qtdeclarative, qtsvg
+}:
+
+stdenv.mkDerivation rec {
+  name = "spectral-${version}";
+  version = "2018-09-24";
+
+  src = fetchgit {
+    url = "https://gitlab.com/b0/spectral.git";
+    rev = "c9d1d6887722860a52b597a0f74d0ce39c8622e1";
+    sha256 = "1ym8jlqls4lcq5rd81vxw1dni79fc6ph00ip8nsydl6i16fngl4c";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkgconfig qmake ];
+  buildInputs = [ qtbase qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative qtsvg ]
+    ++ stdenv.lib.optional stdenv.hostPlatform.isLinux libpulseaudio;
+
+  meta = with stdenv.lib; {
+    description = "A glossy client for Matrix, written in QtQuick Controls 2 and C++";
+    homepage = https://gitlab.com/b0/spectral;
+    license = licenses.gpl3;
+    platforms = with platforms; linux ++ darwin;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/stride/default.nix
new file mode 100644
index 000000000000..9df816dd8907
--- /dev/null
+++ b/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";
+  name = "stride-${version}";
+
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix
new file mode 100644
index 000000000000..51e7f081d1e0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, qttools, scons
+, GConf, avahi, boost, hunspell, libXScrnSaver, libedit, libidn, libnatpmp, libxml2
+, lua, miniupnpc, openssl, qtbase, qtmultimedia, qtsvg, qtwebkit, qtx11extras, zlib
+}:
+
+stdenv.mkDerivation rec {
+  name = "swift-im-${version}";
+  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 scons ];
+
+  buildInputs = [
+    GConf avahi boost hunspell libXScrnSaver libedit libidn libnatpmp libxml2
+    lua miniupnpc openssl qtbase qtmultimedia qtsvg qtwebkit qtx11extras zlib
+  ];
+
+  propagatedUserEnvPkgs = [ GConf ];
+
+  NIX_CFLAGS_COMPILE = [
+    "-I${libxml2.dev}/include/libxml2"
+    "-I${miniupnpc}/include/miniupnpc"
+    "-I${qtwebkit.dev}/include/QtWebKit"
+    "-I${qtwebkit.dev}/include/QtWebKitWidgets"
+    "-fpermissive"
+  ];
+
+  preInstall = ''
+    installTargets="$out"
+    installFlags+=" SWIFT_INSTALLDIR=$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/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/qt-5.11.patch
new file mode 100644
index 000000000000..911e7570427f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/scons.patch
new file mode 100644
index 000000000000..c63b05d7acb1
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
new file mode 100644
index 000000000000..7a50536cc0ff
--- /dev/null
+++ b/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, xkeyboard_config, alsaLib
+, libpulseaudio ? null, libredirect, quazip, less, which, unzip, llvmPackages
+}:
+
+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
+      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";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "teamspeak-client-${version}";
+
+  version = "3.1.10";
+
+  src = fetchurl {
+    urls = [
+      "http://dl.4players.de/ts/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
+      "http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
+    ];
+    sha256 = if stdenv.is64bit
+                then "17gylj5pxba14c1c98b5rdyyb87c58z8l8yrd1iw5k293wf7iwv3"
+                else "1bkn3ykrc73wr02qaqwpr4garlqm3424y3dm2fjx6lqcfzm3ms2k";
+  };
+
+  # 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";
+  };
+
+  buildInputs = [ makeWrapper less which unzip ];
+
+  unpackPhase =
+    ''
+      echo -e 'q\ny' | sh -xe $src
+      cd TeamSpeak*
+    '';
+
+  buildPhase =
+    ''
+      mv ts3client_linux_${arch} ts3client
+      echo "patching 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 = {
+    description = "The TeamSpeak voice communication tool";
+    homepage = http://teamspeak.com/;
+    license = {
+      fullName = "Teamspeak client license";
+      url = http://sales.teamspeakusa.com/licensing.php;
+      free = false;
+    };
+    maintainers = [ stdenv.lib.maintainers.lhvwb ];
+    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/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
new file mode 100644
index 000000000000..41e7db569c42
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
@@ -0,0 +1,103 @@
+{ stdenv, fetchurl, makeWrapper }:
+
+let
+  version = "3.5.0";
+  arch = if stdenv.is64bit then "amd64" else "x86";
+  libDir = if stdenv.is64bit then "lib64" else "lib";
+in
+
+stdenv.mkDerivation {
+  name = "teamspeak-server-${version}";
+
+  src = fetchurl {
+    urls = [
+      "http://dl.4players.de/ts/releases/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2"
+      "http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2"
+    ];
+    sha256 = if stdenv.is64bit
+      then "0zk7rbi6mvs2nnsjhv4aizl5ydiyr46ng2i3lr8r78gyb88nxmcv"
+      else "0nahsmcnykgchgv50jb22fin74sab1zl8gy6m6s8mjk570qlvzzm";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  buildPhase =
+    ''
+      echo "patching ts3server"
+      patchelf \
+        --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath $(cat $NIX_CC/nix-support/orig-cc)/${libDir} \
+        --force-rpath \
+        ts3server
+      cp tsdns/tsdnsserver tsdnsserver
+      patchelf \
+        --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath $(cat $NIX_CC/nix-support/orig-cc)/${libDir} \
+        --force-rpath \
+        tsdnsserver
+    '';
+
+  installPhase =
+    ''
+      # Delete unecessary libraries - these are provided by nixos.
+      #rm *.so*
+
+      # 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/tsdnsserver $out/bin/tsdnsserver
+
+      wrapProgram $out/lib/teamspeak/ts3server --prefix LD_LIBRARY_PATH : $out/lib/teamspeak
+      wrapProgram $out/lib/teamspeak/tsdnsserver --prefix LD_LIBRARY_PATH : $out/lib/tsdnsserver
+    '';
+
+  dontStrip = true;
+  dontPatchELF = true;
+
+  meta = {
+    description = "TeamSpeak voice communication server";
+    homepage = https://teamspeak.com/;
+    license = stdenv.lib.licenses.unfreeRedistributable;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.arobyn ];
+  };
+}
+
+/*
+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/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
new file mode 100644
index 000000000000..77a8d57f8b6f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/cutegram/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchgit
+, qtbase, qtmultimedia, qtquick1, qtquickcontrols
+, qtimageformats, qtgraphicaleffects, qtwebkit
+, telegram-qml, libqtelegram-aseman-edition
+, gst_all_1
+, makeWrapper, qmake }:
+
+stdenv.mkDerivation rec {
+  name = "cutegram-${meta.version}";
+
+  src = fetchgit {
+    url = "https://github.com/Aseman-Land/Cutegram.git";
+    rev = "1dbe2792fb5a1760339379907f906e236c09db84";
+    sha256 = "146vd3ri05da2asxjjxibnqmb685lgwl2kaz7mwb7ja7vi4149f0";
+  };
+
+  buildInputs =
+  [ qtbase qtmultimedia qtquick1 qtquickcontrols
+    qtimageformats qtgraphicaleffects qtwebkit
+    telegram-qml libqtelegram-aseman-edition
+  ] ++ (with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly ]);
+
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ makeWrapper qmake ];
+
+  fixupPhase = ''
+    wrapProgram $out/bin/cutegram \
+      --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+  '';
+
+  meta = with stdenv.lib; {
+    version = "2.7.1";
+    description = "Telegram client forked from sigram";
+    homepage = http://aseman.co/en/products/cutegram/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
+#TODO: appindicator, for system tray plugin
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
new file mode 100644
index 000000000000..49368da708e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/libqtelegram-aseman-edition/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub
+, qtbase, qtmultimedia, qtquick1, qmake }:
+
+stdenv.mkDerivation rec {
+  name = "libqtelegram-aseman-edition-${meta.version}";
+
+  src = fetchFromGitHub {
+    owner = "Aseman-Land";
+    repo = "libqtelegram-aseman-edition";
+    rev = "v${meta.version}-stable";
+    sha256 = "1pfd4pvh51639zk9shv1s4f6pf0ympnhar8a302vhrkga9i4cbx6";
+  };
+
+  buildInputs = [ qtbase qtmultimedia qtquick1 ];
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ qmake ];
+
+  patchPhase = ''
+    substituteInPlace libqtelegram-ae.pro --replace "/libqtelegram-ae" ""
+    substituteInPlace libqtelegram-ae.pro --replace "/\$\$LIB_PATH" ""
+  '';
+
+  meta = with stdenv.lib; {
+    version = "6.1";
+    description = "A fork of libqtelegram by Aseman, using qmake";
+    homepage = src.meta.homepage;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.Profpatsch ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
new file mode 100644
index 000000000000..2aa090742044
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -0,0 +1,18 @@
+{ qt5 }:
+
+let
+  mkTelegram = args: qt5.callPackage (import ./generic.nix args) { };
+  stableVersion = {
+    stable = true;
+    version = "1.5.4";
+    sha256Hash = "0a52m5qkvk01yl3za3k7pccjrqkr8gbxqnj5lnhh1im1pdxqwh4m";
+    # svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
+    archPatchesRevision = "415526";
+    archPatchesHash = "1lfzws90ab0vajhm5r64gyyqqc1g6a2ay0a1vkp0ah1iw5jh11ik";
+  };
+in {
+  stable = mkTelegram stableVersion;
+  preview = mkTelegram (stableVersion // {
+    stable = false;
+  });
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/fix-internal-compiler-error.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/fix-internal-compiler-error.patch
new file mode 100644
index 000000000000..1c79840d6260
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/fix-internal-compiler-error.patch
@@ -0,0 +1,68 @@
+Date: Tue, 17 Jul 2018 20:29:49 +0200
+
+---
+ Telegram/SourceFiles/export/data/export_data_types.cpp | 9 ++++++---
+ Telegram/SourceFiles/export/export_api_wrap.cpp        | 6 ++++--
+ 2 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/Telegram/SourceFiles/export/data/export_data_types.cpp b/Telegram/SourceFiles/export/data/export_data_types.cpp
+index f835dc2f9..e811c27e8 100644
+--- a/Telegram/SourceFiles/export/data/export_data_types.cpp
++++ b/Telegram/SourceFiles/export/data/export_data_types.cpp
+@@ -221,7 +221,8 @@ Image ParseMaxImage(
+ 				result.width = data.vw.v;
+ 				result.height = data.vh.v;
+ 				result.file.location = ParseLocation(data.vlocation);
+-				if constexpr (MTPDphotoCachedSize::Is<decltype(data)>()) {
++				constexpr bool condition = MTPDphotoCachedSize::Is<decltype(data)>();
++				if constexpr (condition) {
+ 					result.file.content = data.vbytes.v;
+ 					result.file.size = result.file.content.size();
+ 				} else {
+@@ -409,7 +410,8 @@ Document ParseDocument(
+ 			result.width = data.vw.v;
+ 			result.height = data.vh.v;
+ 			result.file.location = ParseLocation(data.vlocation);
+-			if constexpr (MTPDphotoCachedSize::Is<decltype(data)>()) {
++			constexpr bool condition = MTPDphotoCachedSize::Is<decltype(data)>();
++			if constexpr (condition) {
+ 				result.file.content = data.vbytes.v;
+ 				result.file.size = result.file.content.size();
+ 			} else {
+@@ -1017,7 +1019,8 @@ Message ParseMessage(
+ 	auto result = Message();
+ 	data.match([&](const auto &data) {
+ 		result.id = data.vid.v;
+-		if constexpr (!MTPDmessageEmpty::Is<decltype(data)>()) {
++		constexpr bool condition = !MTPDmessageEmpty::Is<decltype(data)>();
++		if constexpr (condition) {
+ 			result.toId = ParsePeerId(data.vto_id);
+ 			const auto peerId = (!data.is_out()
+ 				&& data.has_from_id()
+diff --git a/Telegram/SourceFiles/export/export_api_wrap.cpp b/Telegram/SourceFiles/export/export_api_wrap.cpp
+index b618937f6..bb98647dd 100644
+--- a/Telegram/SourceFiles/export/export_api_wrap.cpp
++++ b/Telegram/SourceFiles/export/export_api_wrap.cpp
+@@ -709,7 +709,8 @@ void ApiWrap::handleUserpicsSlice(const MTPphotos_Photos &result) {
+ 	Expects(_userpicsProcess != nullptr);
+ 
+ 	result.match([&](const auto &data) {
+-		if constexpr (MTPDphotos_photos::Is<decltype(data)>()) {
++		constexpr bool condition = MTPDphotos_photos::Is<decltype(data)>();
++		if constexpr (condition) {
+ 			_userpicsProcess->lastSlice = true;
+ 		}
+ 		loadUserpicsFiles(Data::ParseUserpicsSlice(
+@@ -1141,7 +1142,8 @@ void ApiWrap::requestMessagesSlice() {
+ 		result.match([&](const MTPDmessages_messagesNotModified &data) {
+ 			error("Unexpected messagesNotModified received.");
+ 		}, [&](const auto &data) {
+-			if constexpr (MTPDmessages_messages::Is<decltype(data)>()) {
++			constexpr bool condition = MTPDmessages_messages::Is<decltype(data)>();
++			if constexpr (condition) {
+ 				_chatProcess->lastSlice = true;
+ 			}
+ 			loadMessagesFiles(Data::ParseMessagesSlice(
+-- 
+2.16.3
+
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/generic.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/generic.nix
new file mode 100644
index 000000000000..c20da7eeb665
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/generic.nix
@@ -0,0 +1,153 @@
+{ stable, version, sha256Hash, archPatchesRevision, archPatchesHash }:
+
+{ mkDerivation, lib, fetchFromGitHub, fetchsvn
+, pkgconfig, pythonPackages, cmake, wrapGAppsHook
+, qtbase, qtimageformats, gtk3, libappindicator-gtk3, libnotify, xdg_utils
+, dee, ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3
+}:
+
+with lib;
+
+mkDerivation rec {
+  name = "telegram-desktop-${version}";
+  inherit version;
+
+  # Telegram-Desktop with submodules
+  src = fetchFromGitHub {
+    owner = "telegramdesktop";
+    repo = "tdesktop";
+    rev = "v${version}";
+    sha256 = sha256Hash;
+    fetchSubmodules = true;
+  };
+
+  # Arch patches (svn export telegram-desktop/trunk)
+  archPatches = fetchsvn {
+    url = "svn://svn.archlinux.org/community/telegram-desktop/trunk";
+    rev = archPatchesRevision;
+    sha256 = archPatchesHash;
+  };
+
+  # TODO: libtgvoip.patch no-gtk2.patch
+  patches = [
+      "${archPatches}/tdesktop.patch"
+    ]
+    # TODO: Only required to work around a compiler bug.
+    # This should be fixed in GCC 7.3.1 (or later?)
+    ++ [ ./fix-internal-compiler-error.patch ];
+
+  postPatch = ''
+    substituteInPlace Telegram/SourceFiles/platform/linux/linux_libs.cpp \
+      --replace '"appindicator"' '"${libappindicator-gtk3}/lib/libappindicator3.so"'
+    substituteInPlace Telegram/SourceFiles/platform/linux/linux_libnotify.cpp \
+      --replace '"notify"' '"${libnotify}/lib/libnotify.so"'
+  '';
+
+  nativeBuildInputs = [ pkgconfig pythonPackages.gyp cmake wrapGAppsHook ];
+
+  # We want to run wrapProgram manually (with additional parameters)
+  dontWrapGApps = true;
+
+  buildInputs = [
+    qtbase qtimageformats gtk3 libappindicator-gtk3
+    dee ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3
+  ];
+
+  enableParallelBuilding = true;
+
+  GYP_DEFINES = concatStringsSep "," [
+    "TDESKTOP_DISABLE_CRASH_REPORTS"
+    "TDESKTOP_DISABLE_AUTOUPDATE"
+    "TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
+  ];
+
+  NIX_CFLAGS_COMPILE = [
+    "-DTDESKTOP_DISABLE_CRASH_REPORTS"
+    "-DTDESKTOP_DISABLE_AUTOUPDATE"
+    "-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME"
+    "-I${minizip}/include/minizip"
+    # See Telegram/gyp/qt.gypi
+    "-I${getDev qtbase}/mkspecs/linux-g++"
+  ] ++ concatMap (x: [
+    "-I${getDev qtbase}/include/${x}"
+    "-I${getDev qtbase}/include/${x}/${qtbase.version}"
+    "-I${getDev qtbase}/include/${x}/${qtbase.version}/${x}"
+    "-I${getDev libopus}/include/opus"
+    "-I${getDev alsaLib}/include/alsa"
+    "-I${getDev libpulseaudio}/include/pulse"
+    ]) [ "QtCore" "QtGui" "QtDBus" ];
+  CPPFLAGS = NIX_CFLAGS_COMPILE;
+
+  preConfigure = ''
+    pushd "Telegram/ThirdParty/libtgvoip"
+    patch -Np1 -i "${archPatches}/libtgvoip.patch"
+    popd
+
+    sed -i Telegram/gyp/telegram_linux.gypi \
+      -e 's,/usr,/does-not-exist,g' \
+      -e 's,appindicator-0.1,appindicator3-0.1,g' \
+      -e 's,-flto,,g'
+
+    sed -i Telegram/gyp/qt.gypi \
+      -e "s,/usr/include/qt/QtCore/,${qtbase.dev}/include/QtCore/,g" \
+      -e 's,\d+",\d+" | head -n1,g'
+    sed -i Telegram/gyp/qt_moc.gypi \
+      -e "s,/usr/bin/moc,moc,g"
+    sed -i Telegram/gyp/qt_rcc.gypi \
+      -e "s,/usr/bin/rcc,rcc,g"
+
+    # Build system assumes x86, but it works fine on non-x86 if we patch this one flag out
+    sed -i Telegram/ThirdParty/libtgvoip/libtgvoip.gyp \
+      -e "/-msse2/d"
+
+    gyp \
+      -Dapi_id=17349 \
+      -Dapi_hash=344583e45741c457fe1862106095a5eb \
+      -Dbuild_defines=${GYP_DEFINES} \
+      -Gconfig=Release \
+      --depth=Telegram/gyp \
+      --generator-output=../.. \
+      -Goutput_dir=out \
+      --format=cmake \
+      Telegram/gyp/Telegram.gyp
+
+    cd out/Release
+
+    NUM=$((`wc -l < CMakeLists.txt` - 2))
+    sed -i "$NUM r $archPatches/CMakeLists.inj" CMakeLists.txt
+
+    export ASM=$(type -p gcc)
+  '';
+
+  installPhase = ''
+    install -Dm755 Telegram $out/bin/telegram-desktop
+
+    mkdir -p $out/share/applications $out/share/kde4/services
+    install -m444 "$src/lib/xdg/telegramdesktop.desktop" "$out/share/applications/telegram-desktop.desktop"
+    sed "s,/usr/bin,$out/bin,g" $archPatches/tg.protocol > $out/share/kde4/services/tg.protocol
+    for icon_size in 16 32 48 64 128 256 512; do
+      install -Dm644 "../../../Telegram/Resources/art/icon''${icon_size}.png" "$out/share/icons/hicolor/''${icon_size}x''${icon_size}/apps/telegram.png"
+    done
+  '';
+
+  postFixup = ''
+    # This is necessary to run Telegram in a pure environment.
+    # We also use gappsWrapperArgs from wrapGAppsHook.
+    wrapProgram $out/bin/telegram-desktop \
+      "''${gappsWrapperArgs[@]}" \
+      --prefix QT_PLUGIN_PATH : "${qtbase}/${qtbase.qtPluginPrefix}" \
+      --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)}\","
+  '';
+
+  meta = {
+    description = "Telegram Desktop messaging app "
+      + (if stable then "(stable version)" else "(pre-release)");
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    homepage = https://desktop.telegram.org/;
+    maintainers = with maintainers; [ primeos abbradar garbas ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
new file mode 100644
index 000000000000..3e9ebf3fe93f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-cli/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, bash, libconfig, libevent, openssl,
+  readline, zlib, lua5_2, python, pkgconfig, jansson
+}:
+
+stdenv.mkDerivation rec {
+  name = "telegram-cli-2016-03-23";
+
+  src = fetchgit {
+    url = "https://github.com/vysheng/tg.git";
+    sha256 = "07sss5cnw2ygd7mp8f5532lmj7qm6ywqf4cjaq5g13i8igzqzwzj";
+    rev = "6547c0b21b977b327b3c5e8142963f4bc246187a";
+  };
+
+  buildInputs = [
+    libconfig libevent openssl readline zlib
+    lua5_2 python pkgconfig jansson
+  ];
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./bin/telegram-cli $out/bin/telegram-wo-key
+    cp ./tg-server.pub $out/
+    cat > $out/bin/telegram-cli <<EOF
+    #!${bash}/bin/sh
+    $out/bin/telegram-wo-key -k $out/tg-server.pub "\$@"
+    EOF
+    chmod +x $out/bin/telegram-cli
+  '';
+
+  meta = {
+    description = "Command-line interface for Telegram messenger";
+    homepage = https://telegram.org/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.jagajaga ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
new file mode 100644
index 000000000000..0efa7bee1d0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-qml/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub
+, qtbase, qtmultimedia, qtquick1, qmake
+, libqtelegram-aseman-edition }:
+
+stdenv.mkDerivation rec {
+  name = "telegram-qml-${meta.version}";
+
+  src = fetchFromGitHub {
+    owner = "Aseman-Land";
+    repo = "TelegramQML";
+    rev = "v${meta.version}";
+    sha256 = "0j8vn845f2virvddk9yjbljy6vkr9ikyn6iy7hpj8nvr2xls3499";
+  };
+
+  propagatedBuildInputs = [ qtbase qtmultimedia qtquick1 libqtelegram-aseman-edition ];
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ qmake ];
+
+  patchPhase = ''
+    substituteInPlace telegramqml.pro --replace "/\$\$LIB_PATH" ""
+    substituteInPlace telegramqml.pro --replace "INSTALL_HEADERS_PREFIX/telegramqml" "INSTALL_HEADERS_PREFIX"
+  '';
+
+  qmakeFlags = [ "BUILD_MODE+=lib" ];
+
+  meta = with stdenv.lib; {
+    version = "0.9.2";
+    description = "Telegram API tools for QtQml and Qml";
+    homepage = src.meta.homepage;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.Profpatsch ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
new file mode 100644
index 000000000000..a0cc73da46d8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/haze/default.nix
new file mode 100644
index 000000000000..769e639314e0
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
new file mode 100644
index 000000000000..4607961cdf08
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/idle/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, glib, gnome3, pkgconfig, dbus-glib, telepathy-glib, libxslt, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "telepathy-idle";
+  version = "0.2.0";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz";
+    sha256 = "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib telepathy-glib dbus-glib libxslt telepathy-glib.python (stdenv.lib.getLib gnome3.dconf) makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/libexec/telepathy-idle" \
+      --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib gnome3.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/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
new file mode 100644
index 000000000000..8c777cd3f7d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, dbus-glib, libxml2, sqlite, telepathy-glib, pkgconfig
+, gnome3, 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 gnome3.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/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
new file mode 100644
index 000000000000..7d68f66afc79
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, telepathy-glib, libxslt, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-5.16.4";
+  pname = "telepathy-mission-control";
+
+  src = fetchurl {
+    url = "https://telepathy.freedesktop.org/releases/${pname}/${name}.tar.gz";
+    sha256 = "1jz6wwgsfxixha6ys2hbzbk5faqnj9kh2m5qdlgx5anqgandsscp";
+  };
+
+  buildInputs = [ telepathy-glib telepathy-glib.python ]; # ToDo: optional stuff missing
+
+  nativeBuildInputs = [ pkgconfig libxslt makeWrapper ];
+
+  doCheck = true;
+
+  preFixup = ''
+    wrapProgram "$out/libexec/mission-control-5" \
+      --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib gnome3.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.lgpl21;
+    maintainers = with maintainers; [ jtojnar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
new file mode 100644
index 000000000000..0bc9b3124ee9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/salut/default.nix
@@ -0,0 +1,26 @@
+{ 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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
new file mode 100644
index 000000000000..c6b930fc590f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchgit, qtbase, qtquickcontrols, qmake, makeDesktopItem }:
+
+# we now have libqmatrixclient so a future version of tensor that supports it
+# should use that
+
+stdenv.mkDerivation rec {
+  name = "tensor-git-${version}";
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
new file mode 100644
index 000000000000..06bcd7a0400e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/torchat/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, python, unzip, wxPython, wrapPython, tor }:
+stdenv.mkDerivation rec {
+
+  name = "torchat-${version}";
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix
new file mode 100644
index 000000000000..cbf2dd7d99a2
--- /dev/null
+++ b/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
+, libqrencode, gdk_pixbuf, libnotify }:
+
+stdenv.mkDerivation rec {
+  name = "toxic-${version}";
+  version = "0.8.3";
+
+  src = fetchFromGitHub {
+    owner  = "Tox";
+    repo   = "toxic";
+    rev    = "v${version}";
+    sha256 = "09l2j3lwvrq7bf3051vjsnml9w63790ly3iylgf26gkrmld6k31w";
+  };
+
+  makeFlags = [ "PREFIX=$(out)"];
+  installFlags = [ "PREFIX=$(out)"];
+
+  buildInputs = [
+    libtoxcore libsodium ncurses curl gdk_pixbuf libnotify
+  ] ++ stdenv.lib.optionals (!stdenv.isAarch32) [
+    openal libopus libvpx freealut libqrencode
+  ];
+  nativeBuildInputs = [ pkgconfig libconfig ];
+
+  meta = with stdenv.lib; {
+    description = "Reference CLI for Tox";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jgeerds ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
new file mode 100644
index 000000000000..1e7da4c119b2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, python3Packages }:
+
+with stdenv.lib;
+with python3Packages;
+
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "turses";
+  version = "0.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15mkhm3b5ka42h8qph0mhh8izfc1200v7651c62k7ldcs50ib9j6";
+  };
+
+  buildInputs = [ mock pytest coverage tox ];
+  propagatedBuildInputs = [ urwid tweepy future ];
+
+  checkPhase = ''
+    TMP_TURSES=`echo turses-$RANDOM`
+    mkdir $TMP_TURSES
+    PYTHONPATH=tests:$PYTHONPATH HOME=$TMP_TURSES py.test tests/
+    rm -rf $TMP_TURSES
+  '';
+
+  patchPhase = ''
+    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/alejandrogomez/turses;
+    description = "A Twitter client for the console";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ garbas ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
new file mode 100644
index 000000000000..3c5e65ffe778
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, lib, fetchFromGitHub, check, cmake, pkgconfig
+, libtoxcore, filter-audio, dbus, libvpx, libX11, openal, freetype, libv4l
+, libXrender, fontconfig, libXext, libXft, libsodium, libopus }:
+
+stdenv.mkDerivation rec {
+  name = "utox-${version}";
+
+  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 jgeerds ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix
new file mode 100644
index 000000000000..9d5d5c1b80fc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vacuum/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub
+  , qt4, qmake4Hook, openssl
+  , xproto, libX11, libXScrnSaver, scrnsaverproto
+  , xz, zlib
+}:
+stdenv.mkDerivation rec {
+  name = "vacuum-im-${version}";
+  version = "1.3.0.20160104";
+
+  src = fetchFromGitHub {
+    owner = "Vacuum-IM";
+    repo = "vacuum-im";
+    rev = "1.3.0.20160104-Alpha";
+    sha256 = "1jcw9c7s75y4c3m4skfc3cc0i519z39b23n997vj5mwcjplxyc76";
+  };
+
+  buildInputs = [
+    qt4 openssl xproto libX11 libXScrnSaver scrnsaverproto xz zlib
+  ];
+
+  # hack: needed to fix build issues in
+  # http://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/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
new file mode 100644
index 000000000000..d7c70232b0ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -0,0 +1,104 @@
+{fetchurl, stdenv, dpkg, makeWrapper,
+ alsaLib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1, harfbuzz, libcap,
+ libpulseaudio, libxml2, libxslt, libGLU_combined, nspr, nss, openssl, systemd, wayland, xorg, zlib, ...
+}:
+
+stdenv.mkDerivation rec {
+  name = "viber-${version}";
+  version = "7.0.0.1035";
+
+  src = fetchurl {
+    url = "https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb";
+    sha256 = "06mp2wvqx4y6rd5gs2mh442qcykjrrvwnkhlpx0lara331i2p0lj";
+  };
+
+  buildInputs = [ dpkg makeWrapper ];
+
+  unpackPhase = "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
+      libpulseaudio
+      libxml2
+      libxslt
+      libGLU_combined
+      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/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
new file mode 100644
index 000000000000..5642d254295e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, rpmextract, autoPatchelfHook
+, xorg, gtk2, gnome2, nss, alsaLib, udev, libnotify }:
+
+let
+  version = "3.9.0";
+in stdenv.mkDerivation {
+  name = "vk-messenger-${version}";
+  src = {
+    i686-linux = fetchurl {
+      url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm";
+      sha256 = "150qjj6ccbdp3gxs99jbzp27in1y8qkngn7jgb9za61pm4j70va3";
+    };
+    x86_64-linux = fetchurl {
+      url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm";
+      sha256 = "04lavv614qhj17zccpdih4k6ghj21nd0s8qxbkxkqb1jb0z8dfz9";
+    };
+  }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+
+  nativeBuildInputs = [ rpmextract autoPatchelfHook ];
+  buildInputs = (with xorg; [
+    libXdamage libXtst libXScrnSaver libxkbfile
+  ]) ++ [
+    gtk2 gnome2.GConf nss alsaLib
+  ];
+  runtimeDependencies = [ udev.lib 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"];
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix
new file mode 100644
index 000000000000..85dafa331c16
--- /dev/null
+++ b/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.5.9";
+
+  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 rec {
+  name = "wavebox-${version}";
+  src = fetchurl {
+    url = "https://github.com/wavebox/waveboxapp/releases/download/v${version}/${tarball}";
+    sha256 = "158kj7r5p4p3xk5pwzvbd51h543panmgkr64knv418ksyqjdi16g";
+  };
+
+  # don't remove runtime deps
+  dontPatchELF = true;
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+
+  buildInputs = with xorg; [
+    libXdmcp libXScrnSaver libXtst
+  ] ++ [
+    alsaLib gtk3 nss
+  ];
+
+  runtimeDependencies = [ udev.lib 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 = ''
+    paxmark m $out/opt/wavebox/Wavebox
+    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/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
new file mode 100644
index 000000000000..c685a5b91c1e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -0,0 +1,109 @@
+{ stdenv, fetchurl, dpkg, makeDesktopItem, gnome2, gtk2, atk, cairo, pango, gdk_pixbuf, glib
+, freetype, fontconfig, dbus, libnotify, libX11, xorg, libXi, libXcursor, libXdamage
+, libXrandr, libXcomposite, libXext, libXfixes, libXrender, libXtst, libXScrnSaver
+, nss, nspr, alsaLib, cups, expat, udev, xdg_utils, hunspell, pulseaudio, pciutils
+}:
+let
+  rpath = stdenv.lib.makeLibraryPath [
+    alsaLib
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    gdk_pixbuf
+    glib
+    gnome2.GConf
+    gtk2
+    hunspell
+    libnotify
+    libX11
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXScrnSaver
+    libXtst
+    nspr
+    nss
+    pango
+    pciutils
+    pulseaudio
+    stdenv.cc.cc
+    udev
+    xdg_utils
+    xorg.libxcb
+  ];
+
+  version = "3.3.2872";
+
+  plat = {
+    "i686-linux" = "i386";
+    "x86_64-linux" = "amd64";
+  }.${stdenv.hostPlatform.system};
+
+  sha256 = {
+    "i686-linux" = "16dw4ycajxviqrf4i32rkrhg1j1mdkmk252y8vjwr18xlyn958qb";
+    "x86_64-linux" = "04ysk91h2izyb41b243zki4j08bis9yzjq2va9bakp1lv6ywm8pw";
+  }.${stdenv.hostPlatform.system};
+
+in
+  stdenv.mkDerivation rec {
+    name = "wire-desktop-${version}";
+
+    src = fetchurl {
+      url = "https://wire-app.wire.com/linux/debian/pool/main/wire_${version}_${plat}.deb";
+      inherit sha256;
+    };
+
+    desktopItem = makeDesktopItem {
+      name = "wire-desktop";
+      exec = "wire-desktop %U";
+      icon = "wire-desktop";
+      comment = "Secure messenger for everyone";
+      desktopName = "Wire Desktop";
+      genericName = "Secure messenger";
+      categories = "Network;InstantMessaging;Chat;VideoConference";
+    };
+
+    dontBuild = true;
+    dontPatchELF = true;
+    dontConfigure = true;
+
+    nativeBuildInputs = [ dpkg ];
+    unpackPhase = "dpkg-deb -x $src .";
+    installPhase = ''
+      mkdir -p "$out"
+      cp -R "opt" "$out"
+      cp -R "usr/share" "$out/share"
+
+      chmod -R g-w "$out"
+
+      # Patch wire-desktop
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+               --set-rpath "${rpath}:$out/opt/Wire" \
+               "$out/opt/Wire/wire-desktop"
+
+      # Symlink to bin
+      mkdir -p "$out/bin"
+      ln -s "$out/opt/Wire/wire-desktop" "$out/bin/wire-desktop"
+
+      # Desktop file
+      mkdir -p "$out/share/applications"
+      cp "${desktopItem}/share/applications/"* "$out/share/applications"
+    '';
+
+    meta = with stdenv.lib; {
+      description = "A modern, secure messenger";
+      homepage    = https://wire.com/;
+      license     = licenses.gpl3;
+      maintainers = with maintainers; [ worldofpeace ];
+      platforms   = [ "i686-linux" "x86_64-linux" ];
+    };
+  }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix
new file mode 100644
index 000000000000..980d21572cc0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "xmpp-client-${version}";
+  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/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmpp-client/deps.nix
new file mode 100644
index 000000000000..caa41024fc61
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
new file mode 100644
index 000000000000..f8232f053eb1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem, autoPatchelfHook, env
+# Dynamic libraries
+, dbus, glib, libGL, libX11, libXfixes, libuuid, libxcb, qtbase, qtdeclarative
+, qtimageformats, qtlocation, qtquickcontrols, qtquickcontrols2, qtscript, qtsvg
+, qttools, qtwayland, qtwebchannel, qtwebengine
+# Runtime
+, coreutils, libjpeg_turbo, pciutils, procps, utillinux
+, pulseaudioSupport ? true, libpulseaudio ? null
+}:
+
+assert pulseaudioSupport -> libpulseaudio != null;
+
+let
+  inherit (stdenv.lib) concatStringsSep makeBinPath optional;
+
+  version = "2.6.146750.1204";
+  srcs = {
+    x86_64-linux = fetchurl {
+      url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
+      sha256 = "18cpl1ggyw6nf9r85jqn0cq9j7qrhxfy6nah2qqs5bqj84dqhsrg";
+    };
+  };
+
+  qtDeps = [
+    qtbase qtdeclarative qtlocation qtquickcontrols qtquickcontrols2 qtscript
+    qtwebchannel qtwebengine qtimageformats qtsvg qttools qtwayland
+  ];
+
+  qtEnv = env "zoom-us-qt-${qtbase.version}" qtDeps;
+
+in stdenv.mkDerivation {
+  name = "zoom-us-${version}";
+
+  src = srcs.${stdenv.hostPlatform.system};
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+
+  buildInputs = [
+    dbus glib libGL libX11 libXfixes libuuid libxcb qtEnv libjpeg_turbo
+  ] ++ qtDeps;
+
+  runtimeDependencies = optional pulseaudioSupport libpulseaudio;
+
+  # Don't remove runtimeDependencies from RPATH via patchelf --shrink-rpath
+  dontPatchELF = true;
+
+  installPhase =
+    let
+      files = concatStringsSep " " [
+        "*.pcm"
+        "*.png"
+        "ZXMPPROOT.cer"
+        "ZoomLauncher"
+        "config-dump.sh"
+        "timezones"
+        "translations"
+        "version.txt"
+        "zcacert.pem"
+        "zoom"
+        "zoom.sh"
+        "zoomlinux"
+        "zopen"
+      ];
+    in ''
+      runHook preInstall
+
+      packagePath=$out/share/zoom-us
+      mkdir -p $packagePath $out/bin
+
+      cp -ar ${files} $packagePath
+
+      # TODO Patch this somehow; tries to dlopen './libturbojpeg.so' from cwd
+      ln -s $(readlink -e "${libjpeg_turbo.out}/lib/libturbojpeg.so") $packagePath/libturbojpeg.so
+
+      ln -s ${qtEnv}/bin/qt.conf $packagePath
+
+      makeWrapper $packagePath/zoom $out/bin/zoom-us \
+        --prefix PATH : "${makeBinPath [ coreutils glib.dev pciutils procps qttools.dev utillinux ]}" \
+        --run "cd $packagePath"
+
+      runHook postInstall
+    '';
+
+  postInstall = (makeDesktopItem {
+    name = "zoom-us";
+    exec = "$out/bin/zoom-us %U";
+    icon = "$out/share/zoom-us/application-x-zoom.png";
+    desktopName = "Zoom";
+    genericName = "Video Conference";
+    categories = "Network;Application;";
+    mimeType = "x-scheme-handler/zoommtg;";
+  }).buildCommand;
+
+  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 ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
new file mode 100755
index 000000000000..21039d53da4f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl pcre common-updater-scripts
+
+set -eu -o pipefail
+
+version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcregrep -o1 '/(([0-9]\.?)+)/')"
+update-source-version zoom-us "$version"
diff --git a/nixpkgs/pkgs/applications/networking/insync/default.nix b/nixpkgs/pkgs/applications/networking/insync/default.nix
new file mode 100644
index 000000000000..9c1aa8f86f69
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/insync/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "insync-${version}";
+  version = "1.5.5.37367";
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchurl {
+        url = "http://s.insynchq.com/builds/insync-portable_${version}_amd64.tar.bz2";
+        sha256 = "1yz8l8xjr0pm30hvv4w59wzs569xzkpn8lv12pyl82r1l16h5zp3";
+      }
+    else
+      throw "${name} is not supported on ${stdenv.hostPlatform.system}";
+
+  buildInputs = [ makeWrapper ];
+
+  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/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
new file mode 100644
index 000000000000..deb76544eaa6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchgx, gx-go }:
+
+buildGoPackage rec {
+  name = "ipfs-cluster-${version}";
+  version = "0.7.0";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/ipfs/ipfs-cluster";
+
+  extraSrcPaths = [
+    (fetchgx {
+      inherit name src;
+      sha256 = "19ljx4q9msrv5wwyd85l01l320lhwgma5z3b756ldgj9fs8p9ph6";
+    })
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ipfs";
+    repo = "ipfs-cluster";
+    inherit rev;
+    sha256 = "1zqy4zzi33z16fny1dnhqa8z7czrggvbxdxs750gxzbnd9vqzda1";
+  };
+
+  nativeBuildInputs = [ gx-go ];
+
+  preBuild = ''
+    # fetchgx stores packages by their ipfs hash
+    # this will rewrite github.com/ imports to gx/ipfs/
+    cd go/src/${goPackagePath}
+    gx-go rewrite
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix b/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix
new file mode 100644
index 000000000000..f070c5109376
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "ipfs-migrator-${version}";
+  version = "7";
+
+  goPackagePath = "github.com/ipfs/fs-repo-migrations";
+
+  goDeps = ./deps.nix;
+
+  src = fetchFromGitHub {
+    owner = "ipfs";
+    repo = "fs-repo-migrations";
+    rev = "4e8e0b41d7348646c719d572c678c3d0677e541a";
+    sha256 = "1i6izncgc3wgabppglnnrslffvwrv3cazbdhsk4vjfsd66hb4d37";
+  };
+
+  patches = [ ./lru-repo-path-fix.patch ];
+
+  meta = with stdenv.lib; {
+    description = "Migration tool for ipfs repositories";
+    homepage = https://ipfs.io/;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ elitak ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/ipfs-migrator/deps.nix b/nixpkgs/pkgs/applications/networking/ipfs-migrator/deps.nix
new file mode 100644
index 000000000000..1ad1c383c8c6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ipfs-migrator/deps.nix
@@ -0,0 +1,47 @@
+[
+  {
+    goPackagePath = "github.com/jbenet/goprocess";
+    fetch = {
+      type = "git";
+      url = https://github.com/jbenet/goprocess;
+      rev = "b497e2f366b8624394fb2e89c10ab607bebdde0b";
+      sha256 = "1lnvkzki7vnqn5c4m6bigk0k85haicmg27w903kwg30rdvblm82s";
+    };
+  }
+  {
+    goPackagePath = "github.com/jbenet/go-random";
+    fetch = {
+      type = "git";
+      url = https://github.com/jbenet/go-random;
+      rev = "384f606e91f542a98e779e652eed88051618f0f7";
+      sha256 = "0gcshzl9n3apzc0jaxqrjsc038yfrzfyhpdqgbpcnajin83l2msa";
+    };
+  }
+  {
+    goPackagePath = "github.com/jbenet/go-random-files";
+    fetch = {
+      type = "git";
+      url = https://github.com/jbenet/go-random-files;
+      rev = "737479700b40b4b50e914e963ce8d9d44603e3c8";
+      sha256 = "1klpdc4qkrfy31r7qh00fcz42blswzabmcnry9byd5adhszxj9bw";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/golang-lru";
+    fetch = {
+      type = "git";
+      url = https://github.com/hashicorp/golang-lru;
+      rev = "20f1fb78b0740ba8c3cb143a61e86ba5c8669768";
+      sha256 = "12k2cp2k615fjvfa5hyb9k2alian77wivds8s65diwshwv41939f";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "26e67e76b6c3f6ce91f7c52def5af501b4e0f3a2";
+      sha256 = "17bqkd64zksi1578lb10ls4qf5lbqs7shfjcc6bi97y1qz5k31c4";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/ipfs-migrator/lru-repo-path-fix.patch b/nixpkgs/pkgs/applications/networking/ipfs-migrator/lru-repo-path-fix.patch
new file mode 100644
index 000000000000..a933a7b5358b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ipfs-migrator/lru-repo-path-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/ipfs-1-to-2/go-datastore/lru/datastore.go b/ipfs-1-to-2/go-datastore/lru/datastore.go
+index 7eb18eb..cd8dcb7 100644
+--- a/ipfs-1-to-2/go-datastore/lru/datastore.go
++++ b/ipfs-1-to-2/go-datastore/lru/datastore.go
+@@ -3,7 +3,7 @@ package lru
+ import (
+ 	"errors"
+ 
+-	lru "github.com/ipfs/fs-repo-migrations/ipfs-1-to-2/golang-lru"
++	lru "github.com/hashicorp/golang-lru"
+ 
+ 	ds "github.com/ipfs/fs-repo-migrations/ipfs-1-to-2/go-datastore"
+ 	dsq "github.com/ipfs/fs-repo-migrations/ipfs-1-to-2/go-datastore/query"
diff --git a/nixpkgs/pkgs/applications/networking/ipfs/default.nix b/nixpkgs/pkgs/applications/networking/ipfs/default.nix
new file mode 100644
index 000000000000..08b5ca077af6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ipfs/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchgx }:
+
+buildGoPackage rec {
+  name = "ipfs-${version}";
+  version = "0.4.18";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/ipfs/go-ipfs";
+
+  extraSrcPaths = [
+    (fetchgx {
+      inherit name src;
+      sha256 = "05d5m6c2i2kl4rvb0hddyqbidn76ljr2zryi8v2r9i8dbi0164gm";
+    })
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ipfs";
+    repo = "go-ipfs";
+    inherit rev;
+    sha256 = "0h4j18qpycfmmlhb9khvhbk8c1zqajflvw8gk3l8j7wxrxh5j2s6";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/ipget/default.nix b/nixpkgs/pkgs/applications/networking/ipget/default.nix
new file mode 100644
index 000000000000..23c9d7df8120
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ipget/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchgx }:
+
+buildGoPackage rec {
+  name = "ipget-${version}";
+  version = "0.2.5";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/ipfs/ipget";
+  
+  extraSrcPaths = [
+    (fetchgx {
+      inherit name src;
+      sha256 = "1d4w8zl5mcppn3d4bl7qdkiqlf8gi3z2a62nygx17bqpa3da8cf3";
+    })
+  ];
+ 
+  goDeps = ../../../tools/package-management/gx/deps.nix;
+
+  src = fetchFromGitHub {
+    owner = "ipfs";
+    repo = "ipget";
+    inherit rev;
+    sha256 = "0a8yxqhl469ipiznrgkp3yi1xz3xzcbpx60wabqppq8hccrdiybk";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Retrieve files over IPFS and save them locally";
+    homepage = https://ipfs.io/;
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix b/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix
new file mode 100644
index 000000000000..746d79805f5c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/iptraf-ng/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.4";
+  name = "iptraf-ng-${version}";
+
+  src = fetchurl {
+    url = "https://fedorahosted.org/releases/i/p/iptraf-ng/${name}.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/nixpkgs/pkgs/applications/networking/iptraf/default.nix b/nixpkgs/pkgs/applications/networking/iptraf/default.nix
new file mode 100644
index 000000000000..d1a0b2d4b029
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/iptraf/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, ncurses}:
+
+stdenv.mkDerivation rec {
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/bip/default.nix b/nixpkgs/pkgs/applications/networking/irc/bip/default.nix
new file mode 100644
index 000000000000..7c40a4e12a66
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/bip/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, fetchpatch, bison, flex, autoconf, automake, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "bip-${version}";
+  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";
+    })
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/irc/chatzilla/default.nix b/nixpkgs/pkgs/applications/networking/irc/chatzilla/default.nix
new file mode 100644
index 000000000000..805b474e814f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/chatzilla/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, unzip, firefox-unwrapped, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "chatzilla-0.9.92";
+
+  src = fetchurl {
+    # Obtained from http://chatzilla.rdmsoft.com/xulrunner/.
+    url = "https://chatzilla.rdmsoft.com/xulrunner/download/${name}.en-US.xulapp";
+    sha256 = "09asg7ixjrin46xd19ri71g4jdrgb1gg0pk0lwk0dlb1qjxyf1xy";
+  };
+
+  buildInputs = [ unzip makeWrapper ];
+
+  buildCommand = ''
+    mkdir -p $out/libexec/chatzilla
+    unzip $src -d $out/libexec/chatzilla
+
+    makeWrapper ${firefox-unwrapped}/bin/firefox $out/bin/chatzilla \
+      --add-flags "-app $out/libexec/chatzilla/application.ini"
+
+    sed -i $out/libexec/chatzilla/application.ini -e 's/.*MaxVersion.*/MaxVersion=99.*/'
+  '';
+
+  meta = {
+    homepage = http://chatzilla.hacksrus.com/;
+    description = "Stand-alone version of Chatzilla, an IRC client";
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
new file mode 100644
index 000000000000..917de745d277
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
@@ -0,0 +1,48 @@
+{ fetchgit, libcommuni, qtbase, qmake, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "communi-${version}";
+  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="$qmakeFlags \
+      COMMUNI_INSTALL_PREFIX=$out \
+      COMMUNI_INSTALL_BINS=$out/bin \
+      COMMUNI_INSTALL_PLUGINS=$out/lib/communi/plugins \
+      COMMUNI_INSTALL_ICONS=$out/share/icons/hicolor \
+      COMMUNI_INSTALL_DESKTOP=$out/share/applications \
+      COMMUNI_INSTALL_THEMES=$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/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix b/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix
new file mode 100644
index 000000000000..0b52515228b9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/epic5/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, openssl, ncurses, libiconv, tcl, coreutils, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  name = "epic5-${version}";
+  version = "2.0.1";
+
+  src = fetchurl {
+    url = "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/${name}.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 = [ maintainers.ndowens ];
+  };
+}
+
+
+
diff --git a/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix b/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix
new file mode 100644
index 000000000000..b9860fa42273
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/hexchat/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, pkgconfig, gtk2, lua, perl, python2
+, libtool, pciutils, dbus-glib, libcanberra-gtk2, libproxy
+, libsexy, enchant, libnotify, openssl, intltool
+, desktop-file-utils, hicolor-icon-theme
+, autoconf, automake, autoconf-archive
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.12.4";
+  name = "hexchat-${version}";
+
+  src = fetchFromGitHub {
+    owner = "hexchat";
+    repo = "hexchat";
+    rev = "v${version}";
+    sha256 = "1z8v7jg1mc2277k3jihnq4rixw1q27305aw6b6rpb1x7vpiy2zr3";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig libtool intltool
+    autoconf autoconf-archive automake
+  ];
+
+  buildInputs = [
+    gtk2 lua perl python2 pciutils dbus-glib libcanberra-gtk2 libproxy
+    libsexy libnotify openssl desktop-file-utils hicolor-icon-theme
+  ];
+
+  enableParallelBuilding = true;
+
+  #hexchat and heachat-text loads enchant spell checking library at run time and so it needs to have route to the path
+  patchPhase = ''
+    sed -i "s,libenchant.so.1,${enchant}/lib/libenchant.so.1,g" src/fe-gtk/sexy-spell-entry.c
+  '';
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  configureFlags = [ "--enable-shm" "--enable-textfe" ];
+
+  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 jgeerds ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/ii/default.nix b/nixpkgs/pkgs/applications/networking/irc/ii/default.nix
new file mode 100644
index 000000000000..4807f3419d15
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
new file mode 100644
index 000000000000..ff80df6523cb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintl }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.1";
+  name = "irssi-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/irssi/irssi/releases/download/${version}/${name}.tar.gz";
+    sha256 = "09a9p1yfg0m3w7n2a4axvn8874002ly8x0b543sxihzqk29radpa";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ncurses glib openssl perl libintl ];
+
+  configureFlags = [
+    "--with-proxy"
+    "--with-bot"
+    "--with-perl=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/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/fish/default.nix
new file mode 100644
index 000000000000..aefc48d4a3ee
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/irc/irssi/otr/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/otr/default.nix
new file mode 100644
index 000000000000..add4fa632c91
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/irssi/otr/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libotr, automake, autoconf, libtool, glib, pkgconfig, irssi }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "irssi-otr-${version}";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "cryptodotis";
+    repo = "irssi-otr";
+    rev = "v${version}";
+    sha256 = "0c5wb2lg9q0i1jdhpyb5vpvxaa2xx00gvp3gdk93ix9v68gq1ppp";
+  };
+
+  preConfigure = "sh ./bootstrap";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libotr automake autoconf libtool glib irssi ];
+
+  NIX_CFLAGS_COMPILE="-I ${irssi}/include/irssi -I ${irssi}/include/irssi/src/core -I ${irssi}/include/irssi/src/";
+
+  meta = {
+    homepage = https://github.com/cryptodotis/irssi-otr;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix b/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix
new file mode 100644
index 000000000000..ccee78a64da6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/konversation/default.nix
@@ -0,0 +1,79 @@
+{ 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";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix b/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix
new file mode 100644
index 000000000000..9de394422279
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix
@@ -0,0 +1,91 @@
+{ monolithic ? true # build monolithic Quassel
+, daemon ? false # build Quassel daemon
+, client ? false # build Quassel client
+, tag ? "" # tag added to the package name
+, static ? false # link statically
+
+, stdenv, fetchurl, cmake, makeWrapper, dconf
+, qtbase, qtscript
+, phonon, libdbusmenu, qca-qt5
+
+, withKDE ? stdenv.isLinux # enable KDE integration
+, extra-cmake-modules
+, kconfigwidgets
+, kcoreaddons
+, knotifications
+, knotifyconfig
+, ktextwidgets
+, kwidgetsaddons
+, kxmlgui
+}:
+
+let
+    buildClient = monolithic || client;
+    buildCore = monolithic || daemon;
+in
+
+assert monolithic -> !client && !daemon;
+assert client || daemon -> !monolithic;
+assert !buildClient -> !withKDE; # KDE is used by the client only
+
+let
+  edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))];
+  source = import ./source.nix { inherit fetchurl; };
+
+in with stdenv; mkDerivation rec {
+  inherit (source) src version;
+
+  name = "quassel${tag}-${version}";
+
+  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 daemon "WANT_CORE"
+    ++ edf client "WANT_QTCLIENT"
+    ++ edf withKDE "WITH_KDE";
+
+  preFixup =
+    lib.optionalString daemon ''
+        wrapProgram "$out/bin/quasselcore" --suffix PATH : "${qtbase.bin}/bin"
+    '' +
+    lib.optionalString buildClient ''
+        wrapProgram "$out/bin/quassel${lib.optionalString client "client"}" \
+          --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules"
+    '';
+
+  patches = [ ./qt5_11.patch ];
+
+  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 = stdenv.lib.licenses.gpl3;
+    maintainers = with maintainers; [ phreedom ttuegel ];
+    repositories.git = https://github.com/quassel/quassel.git;
+    inherit (qtbase.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/quassel/qt5_11.patch b/nixpkgs/pkgs/applications/networking/irc/quassel/qt5_11.patch
new file mode 100644
index 000000000000..45e43d7f96be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/quassel/qt5_11.patch
@@ -0,0 +1,72 @@
+From 92f4dca367c3a6f0536a1e0f3fbb44bb6ed4da62 Mon Sep 17 00:00:00 2001
+From: Manuel Nickschas <sputnick@quassel-irc.org>
+Date: Thu, 3 May 2018 23:19:34 +0200
+Subject: [PATCH] cmake: Fix build with Qt 5.11
+
+Qt 5.11 removes the qt5_use_modules function, so add a copy. If
+present, the Qt-provided function will be used instead.
+
+Closes GH-355.
+---
+ cmake/QuasselMacros.cmake | 38 ++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 38 insertions(+)
+
+diff --git a/cmake/QuasselMacros.cmake b/cmake/QuasselMacros.cmake
+index 652c0042..d77ba1cf 100644
+--- a/cmake/QuasselMacros.cmake
++++ b/cmake/QuasselMacros.cmake
+@@ -5,6 +5,9 @@
+ # The qt4_use_modules function was taken from CMake's Qt4Macros.cmake:
+ # (C) 2005-2009 Kitware, Inc.
+ #
++# The qt5_use_modules function was taken from Qt 5.10.1 (and modified):
++# (C) 2005-2011 Kitware, Inc.
++#
+ # Redistribution and use is allowed according to the terms of the BSD license.
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+ 
+@@ -43,6 +46,41 @@ function(qt4_use_modules _target _link_type)
+     endforeach()
+ endfunction()
+ 
++# Qt 5.11 removed the qt5_use_modules function, so we need to provide it until we can switch to a modern CMake version.
++# If present, the Qt-provided version will be used automatically instead.
++function(qt5_use_modules _target _link_type)
++    if (NOT TARGET ${_target})
++        message(FATAL_ERROR "The first argument to qt5_use_modules must be an existing target.")
++    endif()
++    if ("${_link_type}" STREQUAL "LINK_PUBLIC" OR "${_link_type}" STREQUAL "LINK_PRIVATE" )
++        set(_qt5_modules ${ARGN})
++        set(_qt5_link_type ${_link_type})
++    else()
++        set(_qt5_modules ${_link_type} ${ARGN})
++    endif()
++
++    if ("${_qt5_modules}" STREQUAL "")
++        message(FATAL_ERROR "qt5_use_modules requires at least one Qt module to use.")
++    endif()
++    foreach(_module ${_qt5_modules})
++        if (NOT Qt5${_module}_FOUND)
++            find_package(Qt5${_module} PATHS "${_Qt5_COMPONENT_PATH}" NO_DEFAULT_PATH)
++            if (NOT Qt5${_module}_FOUND)
++                message(FATAL_ERROR "Can not use \"${_module}\" module which has not yet been found.")
++            endif()
++        endif()
++        target_link_libraries(${_target} ${_qt5_link_type} ${Qt5${_module}_LIBRARIES})
++        set_property(TARGET ${_target} APPEND PROPERTY INCLUDE_DIRECTORIES ${Qt5${_module}_INCLUDE_DIRS})
++        set_property(TARGET ${_target} APPEND PROPERTY COMPILE_DEFINITIONS ${Qt5${_module}_COMPILE_DEFINITIONS})
++        if (Qt5_POSITION_INDEPENDENT_CODE
++                AND (CMAKE_VERSION VERSION_LESS 2.8.12
++                    AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
++                    OR CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)))
++            set_property(TARGET ${_target} PROPERTY POSITION_INDEPENDENT_CODE ${Qt5_POSITION_INDEPENDENT_CODE})
++        endif()
++    endforeach()
++endfunction()
++
+ # Some wrappers for simplifying dual-Qt support
+ 
+ function(qt_use_modules)
+-- 
+2.16.2
+
diff --git a/nixpkgs/pkgs/applications/networking/irc/quassel/source.nix b/nixpkgs/pkgs/applications/networking/irc/quassel/source.nix
new file mode 100644
index 000000000000..20daba788997
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/quassel/source.nix
@@ -0,0 +1,9 @@
+{ fetchurl }:
+
+rec {
+  version = "0.12.5";
+  src = fetchurl {
+    url = "https://github.com/quassel/quassel/archive/${version}.tar.gz";
+    sha256 = "04f42x87a4wkj3va3wnmj2jl7ikqqa7d7nmypqpqwalzpzk7kxwv";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/qweechat/default.nix
new file mode 100644
index 000000000000..acf030222a1b
--- /dev/null
+++ b/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
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/irc/sic/default.nix b/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
new file mode 100644
index 000000000000..cf72bef62b17
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "sic-${version}";
+  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/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
new file mode 100644
index 000000000000..d52d8b6b31e4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, fetchurl, lib
+, ncurses, openssl, aspell, gnutls
+, zlib, curl, pkgconfig, libgcrypt
+, cmake, makeWrapper, libobjc, libresolv, libiconv
+, asciidoctor # manpages
+, guileSupport ? true, guile
+, luaSupport ? true, lua5
+, perlSupport ? true, perl, perlPackages
+, pythonSupport ? true, pythonPackages
+, rubySupport ? true, ruby
+, tclSupport ? true, tcl
+, extraBuildInputs ? []
+}:
+
+let
+  inherit (pythonPackages) 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_PYTHON"; 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 = "2.3";
+      name = "weechat-${version}";
+
+      src = fetchurl {
+        url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
+        sha256 = "0mi4pfnyny0vqc35r0scn6yy21y790a5iwq8ms7kch7b7z11jn9w";
+      };
+
+      outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;
+
+      enableParallelBuilding = true;
+      cmakeFlags = with stdenv.lib; [
+        "-DENABLE_MAN=ON"
+        "-DENABLE_DOC=ON"
+      ]
+        ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"]
+        ++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins
+        ;
+
+      buildInputs = with stdenv.lib; [
+          ncurses openssl aspell gnutls 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 garbas the-kenny lheckemann ma27 ];
+        platforms = stdenv.lib.platforms.unix;
+      };
+    }
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
new file mode 100644
index 000000000000..439e0e116141
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -0,0 +1,17 @@
+{ callPackage, luaPackages, pythonPackages }:
+
+{
+  weechat-xmpp = callPackage ./weechat-xmpp {
+    inherit (pythonPackages) pydns;
+  };
+
+  weechat-matrix-bridge = callPackage ./weechat-matrix-bridge {
+    inherit (luaPackages) cjson;
+  };
+
+  wee-slack = callPackage ./wee-slack {
+    inherit pythonPackages;
+  };
+
+  weechat-autosort = callPackage ./weechat-autosort { };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
new file mode 100644
index 000000000000..280e447cd0a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, substituteAll, buildEnv, fetchFromGitHub, pythonPackages }:
+
+stdenv.mkDerivation rec {
+  name = "wee-slack-${version}";
+  version = "2.2.0";
+
+  src = fetchFromGitHub {
+    repo = "wee-slack";
+    owner = "wee-slack";
+    rev = "v${version}";
+    sha256 = "1iy70q630cgs7fvk2151fq9519dwxrlqq862sbrwypzr6na6yqpg";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./libpath.patch;
+      env = "${buildEnv {
+        name = "wee-slack-env";
+        paths = with pythonPackages; [ websocket_client six ];
+      }}/${pythonPackages.python.sitePackages}";
+    })
+  ];
+
+  passthru.scripts = [ "wee_slack.py" ];
+
+  installPhase = ''
+    mkdir -p $out/share
+    cp wee_slack.py $out/share/wee_slack.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/wee-slack/wee-slack;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ma27 ];
+    description = ''
+      A WeeChat plugin for Slack.com. Synchronizes read markers, provides typing notification, search, etc..
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/wee-slack/libpath.patch
new file mode 100644
index 000000000000..8887e075f13c
--- /dev/null
+++ b/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 c5c7bc6..23fef2f 100644
+--- a/wee_slack.py
++++ b/wee_slack.py
+@@ -25,6 +25,8 @@ try:
+ except:
+     from StringIO import StringIO
+ 
++sys.path.append('@env@')
++
+ from websocket import create_connection, WebSocketConnectionClosedException
+ 
+ # hack to make tests possible.. better way?
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
new file mode 100644
index 000000000000..95ae71cc70c3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-autosort/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "weechat-autosort-${version}";
+  version = "unstable-2018-01-11";
+
+  src = fetchFromGitHub {
+    owner = "de-vri-es";
+    repo = "weechat-autosort";
+    rev = "35ccd6335afd78ae8a6e050ed971d54c8524e37e";
+    sha256 = "1rgws960xys65cd1m529csalcgny87h7fkiwjv1yj9rpqp088z26";
+  };
+
+  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; [ ma27 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
new file mode 100644
index 000000000000..d2960ae93a99
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, curl, fetchFromGitHub, cjson, olm, luaffi }:
+
+stdenv.mkDerivation {
+  name = "weechat-matrix-bridge-2018-05-29";
+  src = fetchFromGitHub {
+    owner = "torhve";
+    repo = "weechat-matrix-protocol-script";
+    rev = "ace3fefc0e35a627f8a528032df2e3111e41eb1b";
+    sha256 = "1snf8vn5n9wzrnqnvdrcli4199s5p114jbjlgrj5c27i53173wqw";
+  };
+
+  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/5.2/cjson.so $out/lib/cjson.so
+    cp ${olm}/lib/libolm.so $out/lib/libolm.so
+    cp ${luaffi}/lib/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; [ ma27 ];
+    license = licenses.mit; # see https://github.com/torhve/weechat-matrix-protocol-script/blob/0052e7275ae149dc5241226391c9b1889ecc3c6b/matrix.lua#L53
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix-bridge/library-path.patch
new file mode 100644
index 000000000000..d9945c2993b7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix
new file mode 100644
index 000000000000..dad5b9c5e02a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, xmpppy, pydns, substituteAll, buildEnv }:
+
+stdenv.mkDerivation {
+  name = "weechat-jabber-2017-08-30";
+
+  src = fetchFromGitHub {
+    repo = "weechat-xmpp";
+    owner = "sleduc";
+    sha256 = "0s02xs0ynld9cxxzj07al364sfglyc5ir1i82133mq0s8cpphnxv";
+    rev = "8f6c21f5a160c9318c7a2d8fd5dcac7ab2e0d843";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share
+    cp jabber.py $out/share/jabber.py
+  '';
+
+  patches = [
+    (substituteAll {
+      src = ./libpath.patch;
+      env = "${buildEnv {
+        name = "weechat-xmpp-env";
+        paths = [ pydns xmpppy ];
+      }}/lib/python2.7/site-packages";
+    })
+  ];
+
+  passthru.scripts = [ "jabber.py" ];
+
+  meta = with stdenv.lib; {
+    description = "A fork of the jabber plugin for weechat";
+    homepage = "https://github.com/sleduc/weechat-xmpp";
+    maintainers = with maintainers; [ ma27 ];
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch
new file mode 100644
index 000000000000..372c83944a27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-xmpp/libpath.patch
@@ -0,0 +1,16 @@
+diff --git a/jabber.py b/jabber.py
+index 27006a3..e53c2c0 100644
+--- a/jabber.py
++++ b/jabber.py
+@@ -95,6 +95,11 @@ SCRIPT_COMMAND = SCRIPT_NAME
+ import re
+ import warnings
+ 
++import sys
++
++sys.path.append('@env@')
++
++
+ import_ok = True
+ 
+ try:
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix
new file mode 100644
index 000000000000..1e371bb8e223
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/wrapper.nix
@@ -0,0 +1,80 @@
+{ stdenv, lib, runCommand, writeScriptBin, buildEnv
+, pythonPackages, perl, perlPackages
+}:
+
+weechat:
+
+let
+  wrapper = {
+    configure ? { availablePlugins, ... }: { plugins = builtins.attrValues availablePlugins; }
+  }:
+
+  let
+    perlInterpreter = perl;
+    availablePlugins = let
+        simplePlugin = name: {pluginFile = "${weechat.${name}}/lib/weechat/plugins/${name}.so";};
+      in rec {
+        python = {
+          pluginFile = "${weechat.python}/lib/weechat/plugins/python.so";
+          withPackages = pkgsFun: (python // {
+            extraEnv = ''
+              export PYTHONHOME="${pythonPackages.python.withPackages pkgsFun}"
+            '';
+          });
+        };
+        perl = (simplePlugin "perl") // {
+          extraEnv = ''
+            export PATH="${perlInterpreter}/bin:$PATH"
+          '';
+          withPackages = pkgsFun: (perl // {
+            extraEnv = ''
+              ${perl.extraEnv}
+              export PERL5LIB=${lib.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.flip map 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 ''
+      #!${stdenv.shell}
+      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 meta;
+      unwrapped = weechat;
+    };
+  in buildEnv {
+    name = "weechat-bin-env-${weechat.version}";
+    paths = [
+      (mkWeechat "weechat")
+      (mkWeechat "weechat-headless")
+    ];
+    meta = weechat.meta;
+  };
+
+in lib.makeOverridable wrapper
diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch b/nixpkgs/pkgs/applications/networking/irc/wraith/configure.patch
new file mode 100644
index 000000000000..e5fa2feb2019
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix b/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix
new file mode 100644
index 000000000000..add52d85d8b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/wraith/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, openssl }:
+
+with stdenv;
+with stdenv.lib;
+
+mkDerivation rec {
+  name = "wraith-${version}";
+  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 = http://wraith.botpack.net/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ elitak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch b/nixpkgs/pkgs/applications/networking/irc/wraith/dlopen.patch
new file mode 100644
index 000000000000..bfc854ef9e9c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/jmeter/default.nix b/nixpkgs/pkgs/applications/networking/jmeter/default.nix
new file mode 100644
index 000000000000..2019d9930ef0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/jmeter/default.nix
@@ -0,0 +1,60 @@
+{ fetchurl, stdenv, jre, makeWrapper, coreutils }:
+
+stdenv.mkDerivation rec {
+  name = "jmeter-${version}";
+  version = "4.0";
+  src = fetchurl {
+    url = "https://archive.apache.org/dist/jmeter/binaries/apache-${name}.tgz";
+    sha256 = "1dvngvi6j8qb6nmf5a3gpi5wxck4xisj41qkrj8sjwb1f8jq6nw4";
+  };
+
+  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 = [ maintainers.garbas ];
+    priority = 1;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch b/nixpkgs/pkgs/applications/networking/linssid/0001-unbundled-qwt.patch
new file mode 100644
index 000000000000..46224ede33d4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/linssid/default.nix b/nixpkgs/pkgs/applications/networking/linssid/default.nix
new file mode 100644
index 000000000000..0139a3f3a93d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/linssid/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, qtbase, qtsvg, qmake, pkgconfig, boost, wirelesstools, iw, qwt }:
+
+stdenv.mkDerivation rec {
+  name = "linssid-${version}";
+  version = "2.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/linssid/LinSSID_${version}/linssid_${version}.orig.tar.gz";
+    sha256 = "13d35rlcjncd8lx3khkgn9x8is2xjd5fp6ns5xsn3w6l4xj9b4gl";
+  };
+
+  nativeBuildInputs = [ pkgconfig qmake ];
+  buildInputs = [ qtbase qtsvg boost qwt ];
+
+  patches = [ ./0001-unbundled-qwt.patch ];
+
+  postPatch = ''
+    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
+
+    sed -e "s|iwlist|${wirelesstools}/sbin/iwlist|g" -i linssid-app/Getter.cpp
+    sed -e "s|iw dev|${iw}/sbin/iw dev|g" -i linssid-app/MainForm.cpp
+
+    # Remove bundled qwt
+    rm -fr qwt-lib
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
new file mode 100644
index 000000000000..bdf39de0651c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, pythonPackages, notmuch }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "afew";
+  version = "1.3.0";
+
+  src = pythonPackages.fetchPypi {
+    inherit pname version;
+    sha256 = "0105glmlkpkjqbz350dxxasvlfx9dk0him9vwbl86andzi106ygz";
+  };
+
+  nativeBuildInputs = with pythonPackages; [ sphinx setuptools_scm ];
+
+  propagatedBuildInputs = with pythonPackages; [
+    pythonPackages.notmuch chardet dkimpy
+  ] ++ stdenv.lib.optional (!pythonPackages.isPy3k) subprocess32;
+
+  postBuild =  ''
+    make -C docs man
+  '';
+
+  postInstall = ''
+    mandir="$out/share/man/man1"
+    mkdir -p "$mandir"
+    cp docs/build/man/* "$mandir"
+  '';
+
+  makeWrapperArgs = [
+    ''--prefix PATH ':' "${notmuch}/bin"''
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/afewmail/afew;
+    description = "An initial tagging script for notmuch mail";
+    license = licenses.isc;
+    maintainers = with maintainers; [ garbas andir flokli ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
new file mode 100644
index 000000000000..bb62014c77a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, ncurses, tcl, openssl, pam, kerberos
+, openldap
+}:
+
+# NOTE: Please check if any changes here are applicable to ../realpine/ as well
+stdenv.mkDerivation rec {
+  name = "alpine-${version}";
+  version = "2.21";
+
+  src = fetchurl {
+    url = "http://alpine.freeiz.com/alpine/release/src/${name}.tar.xz";
+    sha256 = "0f3llxrmaxw7w9w6aixh752md3cdc91mwfmbarkm8s413f4bcc30";
+  };
+
+  buildInputs = [
+    ncurses tcl openssl pam kerberos openldap
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  configureFlags = [
+    "--with-ssl-include-dir=${openssl.dev}/include/openssl"
+    "--with-passfile=.pine-passfile"
+  ];
+
+  meta = {
+    description = "Console mail reader";
+    license = stdenv.lib.licenses.asl20;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = https://www.washington.edu/alpine/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
new file mode 100644
index 000000000000..006684ecc102
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, gnome3, gmime3, webkitgtk
+, libsass, notmuch, boost, wrapGAppsHook, glib-networking, protobuf, vim_configurable
+, makeWrapper, python3, python3Packages
+, vim ? vim_configurable.override {
+                    features = "normal";
+                    gui = "auto";
+                  }
+, ronn
+}:
+
+stdenv.mkDerivation rec {
+  name = "astroid-${version}";
+  version = "0.14";
+
+  src = fetchFromGitHub {
+    owner = "astroidmail";
+    repo = "astroid";
+    rev = "v${version}";
+    sha256 = "1wkv1icsx3g3gq485dnvcdhr9srrjgz4ws1i1krcw9n61bj7gxh8";
+  };
+
+  nativeBuildInputs = [ cmake ronn pkgconfig wrapGAppsHook ];
+
+  buildInputs = [ gnome3.gtkmm gmime3 webkitgtk libsass gnome3.libpeas
+                  python3 python3Packages.pygobject3
+                  notmuch boost gnome3.gsettings-desktop-schemas gnome3.defaultIconTheme
+                  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/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix
new file mode 100644
index 000000000000..f7f34a671837
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/balsa/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, gtk3, gmime, gnutls,
+  webkitgtk, libesmtp, openssl, libnotify, gtkspell3, gpgme,
+  libcanberra-gtk3, libsecret, gtksourceview, gobject-introspection,
+  hicolor-icon-theme, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  name = "balsa-${version}";
+  version = "2.5.6";
+
+  src = fetchurl {
+    url = "https://pawsa.fedorapeople.org/balsa/${name}.tar.bz2";
+    sha256 = "17k6wcsl8gki7cskr3hhmfj6n54rha8ca3b6fzd8blsl5shsankx";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+    gobject-introspection
+    hicolor-icon-theme
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    gmime
+    gnutls
+    webkitgtk
+    openssl
+    libnotify
+    gtkspell3
+    gpgme
+    libcanberra-gtk3
+    gtksourceview
+    libsecret
+    libesmtp
+  ];
+
+  configureFlags = [
+    "--with-canberra"
+    "--with-gpgme"
+    "--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/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
new file mode 100644
index 000000000000..47cb83dee766
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -0,0 +1,115 @@
+{ fetchurl, stdenv, wrapGAppsHook, autoreconfHook
+, curl, dbus, dbus-glib, enchant, gtk2, gnutls, gnupg, gpgme, hicolor-icon-theme
+, libarchive, libcanberra-gtk2, libetpan, libnotify, libsoup, libxml2, networkmanager
+, openldap, perl, pkgconfig, poppler, python, shared-mime-info, webkitgtk24x-gtk2
+, glib-networking, gsettings-desktop-schemas, libSM, libytnef
+# 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 ? false
+, enablePgp ? true
+, enablePluginArchive ? false
+, enablePluginFancy ? 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 {
+  name = "claws-mail-${version}";
+  version = "3.17.1";
+
+  src = fetchurl {
+    url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
+    sha256 = "1wknxbwyzm5xjh3cqmddcxmvp1rkp301qga5n5rgfi7vcd0myyvm";
+  };
+
+  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:${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 hicolor-icon-theme
+      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 enablePluginFancy libsoup
+    ++ optional enablePluginRssyl libxml2
+    ++ optional enableNetworkManager networkmanager
+    ++ optional enableLdap openldap
+    ++ optional enablePluginPdf poppler
+    ++ optional enablePluginFancy webkitgtk24x-gtk2;
+
+  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
+  '';
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch
new file mode 100644
index 000000000000..62f5df4b69a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/mime.patch
@@ -0,0 +1,15 @@
+--- a/src/procmime.c	2015-10-01 23:02:16.629908590 -0700
++++ b/src/procmime.c	2015-10-01 23:02:46.932001337 -0700
+@@ -1196,11 +1196,7 @@
+ 	if (mime_type_list) 
+ 		return mime_type_list;
+ 	
+-#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
+-	if ((fp = procmime_fopen(DATAROOTDIR "/mime/globs", "rb")) == NULL) 
+-#else
+-	if ((fp = procmime_fopen("/usr/share/mime/globs", "rb")) == NULL) 
+-#endif
++	if ((fp = procmime_fopen("@MIMEROOTDIR@/mime/globs", "rb")) == NULL) 
+ 	{
+ 		fp_is_glob_file = FALSE;
+ 		if ((fp = procmime_fopen("/etc/mime.types", "rb")) == NULL) {
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
new file mode 100644
index 000000000000..e5a919af2e6f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, openssl, lua, pcre }:
+
+stdenv.mkDerivation rec {
+  name = "imapfilter-${version}";
+  version = "2.6.12";
+
+  src = fetchFromGitHub {
+    owner = "lefcha";
+    repo = "imapfilter";
+    rev = "v${version}";
+    sha256 = "0vzpc54fjf5vb5vx5w0fl20xvx1k9cg6a3hbl86mm8kwsqf3wrab";
+  };
+
+  makeFlagsArray = "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; [ fuuzetsu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/inboxer/default.nix
new file mode 100644
index 000000000000..72b9ce09d76d
--- /dev/null
+++ b/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
+, fontconfig, dbus, nss, nspr, gtk2-x11, alsaLib, cups, libpulseaudio, udev }:
+
+stdenv.mkDerivation rec {
+  name = "inboxer-${version}";
+  version = "1.2.1";
+
+  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 = "0nyxas07d6ckgjazxapmc6iyakd2cddla6wflr5rhfp78d7kax3a";
+  };
+
+  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
+      gnome2.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/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
new file mode 100644
index 000000000000..79deab46912b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
@@ -0,0 +1,81 @@
+{ 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 isNull alternativeGlobalConfigFilePath 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 {
+  name = "lumail-${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 = if debugBuild then "lumail2-debug" else "";
+
+  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/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix
new file mode 100644
index 000000000000..05e784856554
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "mailcheck-${version}";
+  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/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/mailcheck-Makefile.patch
new file mode 100644
index 000000000000..46b3bff4f7a9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
new file mode 100644
index 000000000000..2b62db069bc9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, gettext, gtk3, pythonPackages
+, gdk_pixbuf, libnotify, gst_all_1
+, libgnome-keyring3
+, wrapGAppsHook, gnome3
+# otherwise passwords are stored unencrypted
+, withGnomeKeyring ? true
+}:
+
+let
+  inherit (pythonPackages) python;
+in pythonPackages.buildPythonApplication rec {
+  name = "mailnag-${version}";
+  version = "1.2.1";
+
+  src = fetchurl {
+    url = "https://github.com/pulb/mailnag/archive/v${version}.tar.gz";
+    sha256 = "ec7ac027d93bc7d88fc270858f5a181453a6ff07f43cab20563d185818801fee";
+  };
+
+  buildInputs = [
+    gettext gtk3 gdk_pixbuf libnotify gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gnome3.defaultIconTheme
+  ] ++ stdenv.lib.optional withGnomeKeyring libgnome-keyring3;
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+  ];
+
+  propagatedBuildInputs = with pythonPackages; [
+    pygobject3 dbus-python pyxdg
+  ];
+
+  buildPhase = "";
+
+  installPhase = "${python}/bin/python setup.py install --prefix=$out";
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "An extensible mail notification daemon";
+    homepage = https://github.com/pulb/mailnag;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jgeerds ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix
new file mode 100644
index 000000000000..0f11d9a6df05
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailpile/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, python2Packages, gnupg1orig, openssl, git }:
+
+python2Packages.buildPythonApplication rec {
+  name = "mailpile-${version}";
+  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/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
new file mode 100644
index 000000000000..86f945f369a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mblaze/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libiconv }:
+
+stdenv.mkDerivation rec {
+  name = "mblaze-${version}";
+  version = "0.4";
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv ];
+
+  src = fetchFromGitHub {
+    owner = "chneukirchen";
+    repo = "mblaze";
+    rev = "v${version}";
+    sha256 = "15ac213a17mxni3bqvzxhiln65s4almrlmv72bbcgi7cymb303rp";
+  };
+
+  makeFlags = "PREFIX=$(out)";
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/chneukirchen/mblaze;
+    description = "Unix utilities to deal with Maildir";
+    license = licenses.cc0;
+    platforms = platforms.all;
+    maintainers = [ maintainers.ajgrf ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
new file mode 100644
index 000000000000..6e2e8d58c676
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, makeWrapper, unzip, jre }:
+
+let
+  version = "1.9";
+  name = "msgviewer-${version}";
+  uname = "MSGViewer-${version}";
+
+in stdenv.mkDerivation rec {
+  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
+    #!${stdenv.shell} -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/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
new file mode 100644
index 000000000000..6d03f2276d0e
--- /dev/null
+++ b/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 {
+  name = "mutt-${version}";
+  version = "1.11.1";
+
+  src = fetchurl {
+    url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz";
+    sha256 = "01fvn5h7l9rkwx6qz46svl4hmww108v4bmcywiw3prb26q0l2lbh";
+  };
+
+  patches = optional smimeSupport (fetchpatch {
+    url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.11.1-2/debian/patches/misc/smime.rc.patch";
+    sha256 = "1rl27qqwl4nw321ll5jcvfmkmz4fkvcsh5vihjcrhzzyf6vz8wmj";
+  });
+
+  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; [ the-kenny rnhmjoj ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
new file mode 100644
index 000000000000..a8c322b42b83
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -0,0 +1,98 @@
+{ 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, mailcap
+}:
+
+let
+  muttWrapper = writeScript "mutt" ''
+    #!${stdenv.shell} -eu
+
+    echo 'The neomutt project has renamed the main binary from `mutt` to `neomutt`.'
+    echo ""
+    echo 'This wrapper is provided for compatibility purposes only. You should start calling `neomutt` instead.'
+    echo ""
+    read -p 'Press any key to launch NeoMutt...' -n1 -s
+    exec neomutt "$@"
+  '';
+
+in stdenv.mkDerivation rec {
+  version = "20180716";
+  name = "neomutt-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "neomutt";
+    repo   = "neomutt";
+    rev    = "neomutt-${version}";
+    sha256 = "0im2kkahkr04q04irvcimfawxi531ld6wrsa92r2m7l10gmijkl8";
+  };
+
+  buildInputs = [
+    cyrus_sasl gss gpgme kerberos libidn ncurses
+    notmuch openssl perl lmdb
+    mailcap
+  ];
+
+  nativeBuildInputs = [
+    docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which
+  ];
+
+  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 sendlib.c \
+      --replace /etc/mime.types ${mailcap}/etc/mime.types
+
+    # The string conversion tests all fail with the first version of neomutt
+    # that has tests (20180223) as well as 20180716 so we disable them for now.
+    # I don't know if that is related to the tests or our build environment.
+    # Try again with a later release.
+    sed -i '/rfc2047/d' test/Makefile.autosetup test/main.c
+  '';
+
+  configureFlags = [
+    "--gpgme"
+    "--gss"
+    "--lmdb"
+    "--notmuch"
+    "--ssl"
+    "--sasl"
+    "--with-homespool=mailbox"
+    "--with-mailpath="
+    # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
+    "ac_cv_path_SENDMAIL=sendmail"
+  ];
+
+  # 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 = ''
+    cp ${muttWrapper} $out/bin/mutt
+    wrapProgram "$out/bin/neomutt" --prefix PATH : "$out/libexec/neomutt"
+  '';
+
+  doCheck = true;
+
+  checkTarget = "test";
+
+  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 ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix
new file mode 100644
index 000000000000..3e235400498f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notbit/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig,
+  gettext, openssl
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "notbit-${version}";
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix
new file mode 100644
index 000000000000..c2cce227576a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-addrlookup/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkgconfig, glib, notmuch }:
+
+let
+  version = "9";
+in
+stdenv.mkDerivation rec {
+  name = "notmuch-addrlookup-${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 garbas ];
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
new file mode 100644
index 000000000000..84466f7cd3d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, gawk, mercury, pandoc, ncurses, gpgme }:
+
+stdenv.mkDerivation rec {
+  name = "notmuch-bower-${version}";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "wangp";
+    repo = "bower";
+    rev = version;
+    sha256 = "0f8djiclq4rz9isbx18bpzymbvb2q0spvjp982b149hr1my6klaf";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
new file mode 100644
index 000000000000..69de3ef5d51c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -0,0 +1,89 @@
+{ fetchurl, stdenv
+, pkgconfig, gnupg
+, xapian, gmime, talloc, zlib
+, doxygen, perl
+, pythonPackages
+, bash-completion
+, emacs
+, ruby
+, which, dtach, openssl, bash, gdb, man
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "0.28";
+  name = "notmuch-${version}";
+
+  passthru = {
+    pythonSourceRoot = "${name}/bindings/python";
+    inherit version;
+  };
+
+  src = fetchurl {
+    url = "https://notmuchmail.org/releases/${name}.tar.gz";
+    sha256 = "0dqarmjc8544m2w7bqrqmvsfy55fw82707z3lz9cql8nr777bjmc";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    gnupg # undefined dependencies
+    xapian gmime talloc zlib  # dependencies described in INSTALL
+    doxygen perl  # (optional) api docs
+    pythonPackages.sphinx pythonPackages.python  # (optional) documentation -> doc/INSTALL
+    bash-completion  # (optional) dependency to install bash completion
+    emacs  # (optional) to byte compile emacs code, also needed for tests
+    ruby  # (optional) ruby bindings
+  ];
+
+  postPatch = ''
+    patchShebangs configure
+    patchShebangs test/
+
+    for src in \
+      util/crypto.c \
+      notmuch-config.c
+    do
+      substituteInPlace "$src" \
+        --replace \"gpg\" \"${gnupg}/bin/gpg\"
+    done
+
+    substituteInPlace lib/Makefile.local \
+      --replace '-install_name $(libdir)' "-install_name $out/lib"
+  '';
+
+  configureFlags = [ "--zshcompletiondir=$(out)/share/zsh/site-functions" ];
+
+  # Notmuch doesn't use autoconf and consequently doesn't tag --bindir and
+  # friends
+  setOutputFlags = false;
+  enableParallelBuilding = true;
+  makeFlags = "V=1";
+
+  preCheck = let
+    test-database = fetchurl {
+      url = "https://notmuchmail.org/releases/test-databases/database-v1.tar.xz";
+      sha256 = "1lk91s00y4qy4pjh8638b5lfkgwyl282g1m27srsf7qfn58y16a2";
+    };
+  in ''
+    ln -s ${test-database} test/test-databases/database-v1.tar.xz
+  '';
+  doCheck = !stdenv.hostPlatform.isDarwin && (versionAtLeast gmime.version "3.0");
+  checkTarget = "test";
+  checkInputs = [
+    which dtach openssl bash
+    gdb man
+  ];
+
+  installTargets = "install install-man";
+
+  dontGzipMan = true; # already compressed
+
+  meta = {
+    description = "Mail indexer";
+    homepage    = https://notmuchmail.org/;
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ chaoflow flokli garbas the-kenny ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix
new file mode 100644
index 000000000000..e25dfe834f65
--- /dev/null
+++ b/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";
+  name = "muchsync-${version}";
+  passthru = {
+    inherit version;
+  };
+  src = fetchurl {
+    url = "http://www.muchsync.org/src/${name}.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/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
new file mode 100644
index 000000000000..410e5e10ceb6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, perl, perlPackages, makeWrapper, coreutils, notmuch }:
+
+stdenv.mkDerivation rec {
+  name = "notmuch-mutt-${version}";
+  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/nixpkgs/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix
new file mode 100644
index 000000000000..3d8673a87a1b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/nylas-mail-bin/default.nix
@@ -0,0 +1,133 @@
+{ dpkg, fetchurl, lib, pkgs, stdenv
+, alsaLib
+, atk
+, cairo
+, coreutils
+, cups
+, dbus
+, desktop-file-utils
+, expat
+, fontconfig
+, freetype
+, gcc-unwrapped
+, gdk_pixbuf
+, glib
+, gnome2
+, libgnome-keyring
+, libnotify
+, makeWrapper
+, nodejs
+, nspr
+, nss
+, pango
+, python2
+, udev
+, wget
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  name = "${pkgname}-${version}";
+  pkgname = "nylas-mail-bin";
+  version = "2.0.32";
+  subVersion = "fec7941";
+
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchurl {
+        url = "https://edgehill.s3.amazonaws.com/${version}-${subVersion}/linux-deb/x64/NylasMail.deb";
+        sha256 = "40060aa1dc3b5187b8ed4a07b9de3427e3c5a291df98c2c82395647fa2aa4ada";
+      }
+    else
+      throw "NylasMail is not supported on ${stdenv.hostPlatform.system}";
+
+  propagatedBuildInputs = [
+    alsaLib
+    atk
+    cairo
+    coreutils
+    cups
+    dbus
+    desktop-file-utils
+    expat
+    fontconfig
+    freetype
+    gcc-unwrapped
+    gdk_pixbuf
+    glib
+    gnome2.GConf
+    gnome2.gtk
+    libgnome-keyring
+    libnotify
+    nodejs
+    nspr
+    nss
+    pango
+    python2
+    udev
+    wget
+    xorg.libX11
+    xorg.libXScrnSaver
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXtst
+    xorg.libxkbfile
+  ];
+
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildCommand = ''
+    mkdir -p $out
+
+    ${dpkg}/bin/dpkg-deb -x $src unpacked
+    mv unpacked/usr/* $out/
+
+    # Fix path in desktop file
+    substituteInPlace $out/share/applications/nylas-mail.desktop \
+      --replace /usr/bin/nylas-mail $out/bin/nylas-mail
+
+    # Patch librariess
+    noderp=$(patchelf --print-rpath $out/share/nylas-mail/libnode.so)
+    patchelf --set-rpath $noderp:$out/lib:${stdenv.cc.cc.lib}/lib:${xorg.libxkbfile.out}/lib:${lib.makeLibraryPath propagatedBuildInputs } \
+      $out/share/nylas-mail/libnode.so
+
+    ffrp=$(patchelf --print-rpath $out/share/nylas-mail/libffmpeg.so)
+    patchelf --set-rpath $ffrp:$out/lib:${stdenv.cc.cc.lib}/lib:${lib.makeLibraryPath propagatedBuildInputs } \
+      $out/share/nylas-mail/libffmpeg.so
+
+    # Patch binaries
+    binrp=$(patchelf --print-rpath $out/share/nylas-mail/nylas)
+    patchelf --interpreter $(cat "$NIX_CC"/nix-support/dynamic-linker) \
+      --set-rpath $binrp:$out/lib:${stdenv.cc.cc.lib}/lib:${lib.makeLibraryPath propagatedBuildInputs } \
+      $out/share/nylas-mail/nylas
+
+    wrapProgram $out/share/nylas-mail/nylas --set LD_LIBRARY_PATH "${xorg.libxkbfile}/lib:${pkgs.gnome3.libgnome-keyring}/lib";
+
+    # Fix path to bash so apm can install plugins.
+    substituteInPlace $out/share/nylas-mail/resources/apm/bin/apm \
+      --replace /bin/bash ${stdenv.shell}
+
+    wrapProgram $out/share/nylas-mail/resources/apm/bin/apm \
+      --set PATH "${coreutils}/bin"
+    patchelf --interpreter $(cat "$NIX_CC"/nix-support/dynamic-linker) \
+      --set-rpath ${gcc-unwrapped.lib}/lib $out/share/nylas-mail/resources/apm/bin/node
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Open-source mail client built on the modern web with Electron, React, and Flux";
+    longDescription = ''
+      Nylas Mail is an open-source mail client built on the modern web with Electron, React, and Flux. It is designed to be extensible, so it's easy to create new experiences and workflows around email. Nylas Mail can be enabled with it's requirements by enabling 'services.nylas-mail.enable=true'. Alternatively, make sure to have services.gnome3.gnome-keyring.enable = true; in your configuration.nix before running nylas-mail. If you happen to miss this step, you should remove ~/.nylas-mail and "~/.config/Nylas Mail" for a blank setup".
+    '';
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ johnramsden ];
+    homepage = https://nylas.com;
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/realpine/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/realpine/default.nix
new file mode 100644
index 000000000000..f53c5d61050a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/realpine/default.nix
@@ -0,0 +1,42 @@
+{stdenv, fetchurl, ncurses, tcl, openssl, pam, kerberos
+, openldap
+}:
+# NOTE: Please check if any changes here are applicable to ../alpine/ as well
+let
+  baseName = "re-alpine";
+  version = "2.03";
+in
+stdenv.mkDerivation {
+  name = "${baseName}-${version}";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/re-alpine/re-alpine-${version}.tar.bz2";
+    sha256 = "11xspzbk9cwmklmcw6rxsan7j71ysd4m9c7qldlc59ck595k5nbh";
+  };
+
+  buildInputs = [
+    ncurses tcl openssl pam kerberos openldap
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  configureFlags = [
+    "--with-ssl-include-dir=${openssl.dev}/include/openssl"
+    "--with-tcl-lib=${tcl.libPrefix}"
+    "--with-passfile=.pine-passfile"
+  ];
+
+  preConfigure = ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s"
+  '';
+
+  meta = {
+    description = "Console mail reader";
+    license = stdenv.lib.licenses.asl20;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = https://sourceforge.net/projects/re-alpine/;
+    downloadPage = "https://sourceforge.net/projects/re-alpine/files/";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/sup/.bundix/cache b/nixpkgs/pkgs/applications/networking/mailreaders/sup/.bundix/cache
new file mode 100644
index 000000000000..5894e96022c8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/sup/.bundix/cache
@@ -0,0 +1,4 @@
+---
+gem:
+  https://rubygems.org/downloads/mini_portile-0.6.0.gem: 09kcn4g63xrdirgwxgjikqg976rr723bkc9bxfr29pk22cj3wavn
+  https://rubygems.org/downloads/gpgme-2.0.7.gem: 1p84zhiri2ihcld7py9mwc2kg5xs5da8fk11zhndrhmw05yvf5mr
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/sup/Gemfile b/nixpkgs/pkgs/applications/networking/mailreaders/sup/Gemfile
new file mode 100644
index 000000000000..bc37456ae58e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/sup/Gemfile
@@ -0,0 +1,9 @@
+source "https://rubygems.org"
+
+gem 'rake'
+gem 'sup'
+gem 'gpgme'
+
+# Sup tries to `xapian-ruby` in its extconf instead of listing it as a
+# dependency.
+gem 'xapian-ruby', "~> 1.2.22"
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/sup/Gemfile.lock b/nixpkgs/pkgs/applications/networking/mailreaders/sup/Gemfile.lock
new file mode 100644
index 000000000000..0691919ba182
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/sup/Gemfile.lock
@@ -0,0 +1,41 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    chronic (0.9.1)
+    gpgme (2.0.12)
+      mini_portile2 (~> 2.1.0)
+    highline (1.7.8)
+    locale (2.1.2)
+    lockfile (2.1.3)
+    mime-types (3.0)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2016.0221)
+    mini_portile2 (2.1.0)
+    ncursesw (1.4.9)
+    rake (11.1.2)
+    rmail-sup (1.0.1)
+    sup (0.22.1)
+      chronic (~> 0.9.1)
+      highline
+      locale (~> 2.0)
+      lockfile
+      mime-types (> 2.0)
+      ncursesw (~> 1.4.0)
+      rmail-sup (~> 1.0.1)
+      trollop (>= 1.12)
+      unicode (~> 0.4.4)
+    trollop (2.1.2)
+    unicode (0.4.4.2)
+    xapian-ruby (1.2.22)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  gpgme
+  rake
+  sup
+  xapian-ruby (~> 1.2.22)
+
+BUNDLED WITH
+   1.10.6
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/sup/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/sup/default.nix
new file mode 100644
index 000000000000..c803db6dcbc1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/sup/default.nix
@@ -0,0 +1,23 @@
+{ lib, bundlerEnv, ruby }:
+
+bundlerEnv {
+  name = "sup-0.22.1";
+
+  inherit ruby;
+
+  # Updated with:
+  # nix-shell -p bundix -p bundler -p ncurses -p ruby -p which -p zlib -p libuuid
+  # bundle install --path ./vendor
+  # bundix
+  gemfile = ./Gemfile;
+  lockfile = ./Gemfile.lock;
+  gemset = ./gemset.nix;
+
+  meta = with lib; {
+    description = "A curses threads-with-tags style email client";
+    homepage    = http://sup-heliotrope.github.io;
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ cstrahan lovek323 ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/sup/gemset.nix b/nixpkgs/pkgs/applications/networking/mailreaders/sup/gemset.nix
new file mode 100644
index 000000000000..babc063d6346
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/sup/gemset.nix
@@ -0,0 +1,126 @@
+{
+  xapian-ruby = {
+    version = "1.2.22";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xbarnxmhy6r0rxpspn4wk85j183w6b18nah73djcs06b3gfas15";
+    };
+    dependencies = [ "rake" ];
+  };
+  unicode = {
+    version = "0.4.4.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "15fggljzan8zvmr8h12b5m7pcj1gvskmmnx367xs4p0rrpnpil8g";
+    };
+  };
+  trollop = {
+    version = "2.1.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0415y63df86sqj43c0l82and65ia5h64if7n0znkbrmi6y0jwhl8";
+    };
+  };
+  sup = {
+    version = "0.22.1";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "17s2sxismf46zdhgr6g2v53fw9f3sp1ijx7xdw3wx8qpcsgazcgi";
+    };
+    dependencies = ["chronic" "highline" "locale" "lockfile" "mime-types" "ncursesw" "rmail-sup" "trollop" "unicode" "rake" ];
+  };
+  rmail-sup = {
+    version = "1.0.1";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xswk101s560lxqaax3plqh8vjx7jjspnggdwb3q80m358f92q9g";
+    };
+  };
+  rake = {
+    version = "11.1.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jfmy7kd543ldi3d4fg35a1w7q6jikpnzxqj4bzchfbn94cbabqz";
+    };
+  };
+  ncursesw = {
+    version = "1.4.9";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "154cls3b237imdbhih7rni5p85nw6mpbpkzdw08jxzvqaml7q093";
+    };
+  };
+  mini_portile2 = {
+    version = "2.1.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y25adxb1hgg1wb2rn20g3vl07qziq6fz364jc5694611zz863hb";
+    };
+  };
+  mime-types-data = {
+    version = "3.2016.0221";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "05ygjn0nnfh6yp1wsi574jckk95wqg9a6g598wk4svvrkmkrzkpn";
+    };
+  };
+  mime-types = {
+    version = "3.0";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1snjc38a9vqvy8j41xld1i1byq9prbl955pbjw7dxqcfcirqlzra";
+    };
+    dependencies = ["mime-types-data"];
+  };
+  lockfile = {
+    version = "2.1.3";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dij3ijywylvfgrpi2i0k17f6w0wjhnjjw0k9030f54z56cz7jrr";
+    };
+  };
+  locale = {
+    version = "2.1.2";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
+    };
+  };
+  highline = {
+    version = "1.7.8";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nf5lgdn6ni2lpfdn4gk3gi47fmnca2bdirabbjbz1fk9w4p8lkr";
+    };
+  };
+  gpgme = {
+    version = "2.0.12";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a04a76dw9dias0a8rp6dyk3vx2y024gim40lg2md6zdh2m1kx85";
+    };
+    dependencies = ["mini_portile2"];
+  };
+  chronic = {
+    version = "0.9.1";
+    source = {
+      type = "gem";
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kspaxpfy7yvyk1lvpx31w852qfj8wb9z04mcj5bzi70ljb9awqk";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix
new file mode 100644
index 000000000000..70f74dff3097
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix
@@ -0,0 +1,36 @@
+{ 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 {
+  name = "sylpheed-${version}";
+  version = "3.7.0";
+
+  src = fetchurl {
+    url = "https://sylpheed.sraoss.jp/sylpheed/v3.7/${name}.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/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
new file mode 100644
index 000000000000..ed798ee92331
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -0,0 +1,178 @@
+{ stdenv, fetchurl, config, makeWrapper
+, gconf
+, alsaLib
+, at-spi2-atk
+, atk
+, cairo
+, cups
+, curl
+, dbus-glib
+, dbus
+, fontconfig
+, freetype
+, gdk_pixbuf
+, glib
+, glibc
+, gst-plugins-base
+, gstreamer
+, gtk2
+, gtk3
+, kerberos
+, libX11
+, libXScrnSaver
+, libXcomposite
+, libXdamage
+, libXext
+, libXfixes
+, libXinerama
+, libXrender
+, libXt
+, libcanberra-gtk2
+, libgnome
+, libgnomeui
+, defaultIconTheme
+, libGLU_combined
+, nspr
+, nss
+, pango
+, writeScript
+, xidel
+, coreutils
+, gnused
+, gnugrep
+, gnupg
+}:
+
+# 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) sha512;
+  };
+
+  phases = "unpackPhase installPhase";
+
+  libPath = stdenv.lib.makeLibraryPath
+    [ stdenv.cc.cc
+      gconf
+      alsaLib
+      at-spi2-atk
+      atk
+      cairo
+      cups
+      curl
+      dbus-glib
+      dbus
+      fontconfig
+      freetype
+      gdk_pixbuf
+      glib
+      glibc
+      gst-plugins-base
+      gstreamer
+      gtk2
+      gtk3
+      kerberos
+      libX11
+      libXScrnSaver
+      libXcomposite
+      libXdamage
+      libXext
+      libXfixes
+      libXinerama
+      libXrender
+      libXt
+      libcanberra-gtk2
+      libgnome
+      libgnomeui
+      libGLU_combined
+      nspr
+      nss
+      pango
+    ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
+      stdenv.cc.cc
+    ];
+
+  buildInputs = [ gtk3 defaultIconTheme ];
+
+  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
+
+      wrapProgram "$out/bin/thunderbird" \
+        --argv0 "$out/bin/.thunderbird-wrapped" \
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
+        --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
+    '';
+
+  passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
+    inherit name stdenv writeScript xidel coreutils gnused gnugrep curl gnupg;
+    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; [ fuuzetsu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
new file mode 100644
index 000000000000..dfe541a083d5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -0,0 +1,585 @@
+{
+  version = "60.3.3";
+  sources = [
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/ar/thunderbird-60.3.3.tar.bz2";
+      locale = "ar";
+      arch = "linux-x86_64";
+      sha512 = "701dd700115a8e869a1231e54b333398a5a393ffca431dfba69bfff7b2e3bfbf5ce3cbef0b40feec8263cd8e93b34704b0ace27694823c8ae7e03bee170a94e5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/ast/thunderbird-60.3.3.tar.bz2";
+      locale = "ast";
+      arch = "linux-x86_64";
+      sha512 = "e3de7987dfbf61df4da34e875ade4e6a9a98fb8405a219dd747a021777b0436b1eb817756e56e35e83206c22ec34820fdca813c5d7b0346d4a0d6b3341d7989c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/be/thunderbird-60.3.3.tar.bz2";
+      locale = "be";
+      arch = "linux-x86_64";
+      sha512 = "c5695799bf141feb01c5d6cf6bec96c09608512bf182f3f39da394cb5841aea6ba8c7fc5f730d20425598b036b58391a28fffa63f13d77f2f9bdc7151ba4a9c6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/bg/thunderbird-60.3.3.tar.bz2";
+      locale = "bg";
+      arch = "linux-x86_64";
+      sha512 = "0f45d0174871d71199299a4d7e9202b3ff17839ac324fe1e66b5c5ec57841f576e97311ccd6a70b1734afca8a8b1d3e2c42703f161b2a93bccabdea9de5a708a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/br/thunderbird-60.3.3.tar.bz2";
+      locale = "br";
+      arch = "linux-x86_64";
+      sha512 = "3926254e1d17e67735e48b49afb94a8bdfcea7ee393696058c6775319e3bffed72d1bc5df9e05a07afdbae166a13e4f218dd519a4d6c65f6bb3ca2cd85d19710";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/ca/thunderbird-60.3.3.tar.bz2";
+      locale = "ca";
+      arch = "linux-x86_64";
+      sha512 = "14e37769be837288dbd72b25d7c714e524289051ea2c01ce1900f1b8198d22f17f8cc8cea0c45739e72fd0fade7f0e18755955a627e837c01258508647afc89c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/cs/thunderbird-60.3.3.tar.bz2";
+      locale = "cs";
+      arch = "linux-x86_64";
+      sha512 = "e57008bc903675fa2b90c34b4fce32d4534789ccb5779573812e435b1b0c26f0a223364ec0624b8c14082961444b0abc2c56763295d986d9ee7d3276f7ef56c8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/cy/thunderbird-60.3.3.tar.bz2";
+      locale = "cy";
+      arch = "linux-x86_64";
+      sha512 = "67a2602230acb81d2e0d72ae266e1dba18a3f31a87f770e6f8e454c9acf6ae7def7db334cedcf8e4ea766a116998d0dbbeb05116674af692c96a9c2295b1d5fc";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/da/thunderbird-60.3.3.tar.bz2";
+      locale = "da";
+      arch = "linux-x86_64";
+      sha512 = "729b8230f1699bef030c69903ef9d8e1104f9941deeb539d1ab4d340b76ac276ce9024ae5aec8dc8b7b1077afa3a5f5bdea2cb0f709ae5a4fa95e08af1d6cc7f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/de/thunderbird-60.3.3.tar.bz2";
+      locale = "de";
+      arch = "linux-x86_64";
+      sha512 = "25b89e8434f887268b25a6a29f39c685eb20fd46a8c5b171cd21fc1229db4ef24a6a864c4eaf51d7e07494c96f5f3b8a86e03c1a8d6a98f92e24f964e83cc7ca";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/dsb/thunderbird-60.3.3.tar.bz2";
+      locale = "dsb";
+      arch = "linux-x86_64";
+      sha512 = "9c8436699fd04b7a7b0cd52c63711f313e43799f4ac13672a8f320cf805c9c580b3dc686c66eef3d547e268f25ce0532c1456a012b0165886b1c8476ba41e464";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/el/thunderbird-60.3.3.tar.bz2";
+      locale = "el";
+      arch = "linux-x86_64";
+      sha512 = "8db67ce9fec63f21decaa02f739db70e0d3a6adc4787925c8be91f9b8450d9e264a236c81e6e80c41a5955a8dcc52ebcafbee959eeb8d6a461057ba2c118ae14";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/en-GB/thunderbird-60.3.3.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-x86_64";
+      sha512 = "a901a62b44e0ef53fa66cd81e94fe6c6b044829d95020aa8e2d8ffc88e71e650fa564cea217de2fd2a18859b67275640021a8828e2684f9475a31e6131f10b7f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/en-US/thunderbird-60.3.3.tar.bz2";
+      locale = "en-US";
+      arch = "linux-x86_64";
+      sha512 = "a57f55f3383d1e584db53ff45a6bcfc8135eaea5976066bcddb4b2ac12eaaf5c5751b1d0a3f771177123ff359a0e1bfdc904a2c1252a2762e440089c8e1271f3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/es-AR/thunderbird-60.3.3.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-x86_64";
+      sha512 = "55f301cce9dabc9708ae4b7b9c033ee1856b9e0eeb9cf95d745c710bc15d1b15fcd8a079c20c3b58418fc05175e39e8e68e6bde3788d540ef660fb6ad41e5276";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/es-ES/thunderbird-60.3.3.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-x86_64";
+      sha512 = "cbdad6a6941058963d5be128b4bc54c529474d6fb1b3597d2f26d153724bdba3001369286baa010c3e2743b53c17ecc92885182b9d3a8914630d429f07f47589";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/et/thunderbird-60.3.3.tar.bz2";
+      locale = "et";
+      arch = "linux-x86_64";
+      sha512 = "5fbe4472969925bf0990c18e9189f7b4c2fa80746556368f70a42d9f89ada51238db58577cd79931a52669ea899c8d976267e25fd3efb5987a74153953ff5b4f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/eu/thunderbird-60.3.3.tar.bz2";
+      locale = "eu";
+      arch = "linux-x86_64";
+      sha512 = "efec50555d94f74e4f45352be31665c25ee1fa115101eb847dee9e4552b7725f4d9f3c04f4d20fce3bb3b12d8b2e4f27761d412237e47f5a7476adc13085b282";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/fi/thunderbird-60.3.3.tar.bz2";
+      locale = "fi";
+      arch = "linux-x86_64";
+      sha512 = "b16e7d32b7eedd42e6cb253227b7266d1ad6fd96e9c875bd1a3d5184e01ee8016a0aaf9569183055c0044997464ad076b25f83a2b786945cc97a5415b04557ee";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/fr/thunderbird-60.3.3.tar.bz2";
+      locale = "fr";
+      arch = "linux-x86_64";
+      sha512 = "719a81fedd43423beac6ddf1c9fdf13af7e9c784639f018483dd11a72d07c1c5249e8878c0c40a31ec95f7eca417121bde466e78d8fcc54ebeb67f50bf8d0a9f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/fy-NL/thunderbird-60.3.3.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-x86_64";
+      sha512 = "92850ab9e552ea81de90c2973e819bf55bba46dfbf05c665188e119e6720258eabc3031318163e83490a50f749b079471de783efd3e6eec535795c71bdc9437f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/ga-IE/thunderbird-60.3.3.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-x86_64";
+      sha512 = "711463c9179391eae973ba28be2e8a9c86063788f197d97774fc678e1264bb248425b16b51cd1bfb52c3ca9bcf30e1c3ccaba6afa64805400355d9e69cf84e12";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/gd/thunderbird-60.3.3.tar.bz2";
+      locale = "gd";
+      arch = "linux-x86_64";
+      sha512 = "4b6417e50491e424297321f01d57c3117b99326a0c789821fae2c1ab6d2d08c9a7cb5be95dfddf6d6ba8ef2fbc65f20f51fade5905ad441403d36a513ac39352";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/gl/thunderbird-60.3.3.tar.bz2";
+      locale = "gl";
+      arch = "linux-x86_64";
+      sha512 = "ed1667b91c509d08d732661acac86fdca2a3ea0cea4b3b79b283f713669b971afc6dcf72f7f82946eaf115ae51ac16a30e3804bab2a0723b17f4323c3a3d2b8f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/he/thunderbird-60.3.3.tar.bz2";
+      locale = "he";
+      arch = "linux-x86_64";
+      sha512 = "37502da5dfa5ae9b0751e17c44e217e28572492474cd9e3d913bf93bd48b6a0478a9d9ab3968ef7c18fc396b4eb5d80bdbd2ffdbb5fa5ab4d577792a4bb65257";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/hr/thunderbird-60.3.3.tar.bz2";
+      locale = "hr";
+      arch = "linux-x86_64";
+      sha512 = "8852bfda07df16ee1efc1a11b670ca1be2a6ab52696d7b1e0e9ca481cf6ed766c79f7c3eca5e4ea3a62b96b8edd669c4f36617dff062c121506fa59778de580e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/hsb/thunderbird-60.3.3.tar.bz2";
+      locale = "hsb";
+      arch = "linux-x86_64";
+      sha512 = "4d9ef9914bc58096e47d3a36dd9c5a618f9f559da4753670607a7121dfd626261712bc668388d6ab78248e089b50291968275cb10c6279442fd6c8b4dfee55e6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/hu/thunderbird-60.3.3.tar.bz2";
+      locale = "hu";
+      arch = "linux-x86_64";
+      sha512 = "4d3e6dc8fa59ba91687612ab8b643629cd28e4474b3d33ee9d8911245c8a65c9a197a5102702a8b0fffae74969ae7d3fb7346da9e8f72c55811115667dc1d289";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/hy-AM/thunderbird-60.3.3.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-x86_64";
+      sha512 = "cd392f821439c31ff6eb23329bf59a484a8dfc5bd3755c16e5d40b7e870cc228a4ef7f5022b826786ccc03c827bad2d26997b3ef50483de341384903ffd63d42";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/id/thunderbird-60.3.3.tar.bz2";
+      locale = "id";
+      arch = "linux-x86_64";
+      sha512 = "0cc11617865d196ee6e693881beaa7535940d8b3a6a4d622912c5925d1f75358c8c6e5a1a9898b1cce08fde343c8cee71bb52713c4f34f5dc5b1df7b1870bad6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/is/thunderbird-60.3.3.tar.bz2";
+      locale = "is";
+      arch = "linux-x86_64";
+      sha512 = "5f38c7e43a5fd40b7c54a601ac8604e943c60eff907414b5b3c7537381b9dbeaefac496c351191a29396f7b0ff7be6ddccf059768a488f44f0d41dbace282edc";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/it/thunderbird-60.3.3.tar.bz2";
+      locale = "it";
+      arch = "linux-x86_64";
+      sha512 = "fdb8ea55a3bb7264308113a3efdb18e4d5d6e85bf34a3ca37cad8bc77d9b8d68c1a19443d56f7affc8bf53eec1f799a4afef40e29ee05584d4848ad2ee7de433";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/ja/thunderbird-60.3.3.tar.bz2";
+      locale = "ja";
+      arch = "linux-x86_64";
+      sha512 = "e6d9766ce3e6d3252f1ee69314ed7c8431947971fb7cf30fe6917969f5e8a4d98d3840606cf74ed8a37122e6a4ffb68f3a1d3dafe8055a4733881438220336be";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/kab/thunderbird-60.3.3.tar.bz2";
+      locale = "kab";
+      arch = "linux-x86_64";
+      sha512 = "0abb97159627d30bcd5eb2ff5765ea7b108c52cf95b43b2e06c3a7b793a07956eac63f31adc6ee9655958ec4dc4c27de777705eb7dc0be2f9d8cb3fa6d733fc6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/kk/thunderbird-60.3.3.tar.bz2";
+      locale = "kk";
+      arch = "linux-x86_64";
+      sha512 = "3def422ec663c376dc3c3d79b139933dee1a720447c965d59b46f6e45e0adb7b3435dd6cafd1be842486d68e2b84e0fd245768082fa3d9cb82b120929a6f2290";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/ko/thunderbird-60.3.3.tar.bz2";
+      locale = "ko";
+      arch = "linux-x86_64";
+      sha512 = "27d16aaa29ee4bc0a70b4b19752df46358231f27066e6c3d9f65eb26c7d1ae02ed6f6b7e53dc26e69f554755f7614ece7b87d819c1139f3666206df3080515f3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/lt/thunderbird-60.3.3.tar.bz2";
+      locale = "lt";
+      arch = "linux-x86_64";
+      sha512 = "7d789bdc48e1dc105224b74db02dcdf95471c1eb40f7b7cff292c3547ac0004fcf7639bfbb7d55ae8620451cb1cd41c614780ce73e563f39d5554d2962cc4f4c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/ms/thunderbird-60.3.3.tar.bz2";
+      locale = "ms";
+      arch = "linux-x86_64";
+      sha512 = "8fa38bf73b041117c847138d7ece1d6ef894456c07c38fcb637154f05a060fcd4b3ec818aa0e9e2f2df574e76a36139731b76c6a3c33a210347665a085379368";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/nb-NO/thunderbird-60.3.3.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-x86_64";
+      sha512 = "4efab83bb702d0e18f99ee35ac198d3c3fd1fd21c7779fec5f3472c97cdd1794d574af6c1dbfe92318a070cfc4a07b8c757a0b105c4eac7a6cdf458c37de243f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/nl/thunderbird-60.3.3.tar.bz2";
+      locale = "nl";
+      arch = "linux-x86_64";
+      sha512 = "1fbc90399a8a082dd256a37eaa3aab8acbec6ec7558d08421dc74c00f185f026e2e470e15257f7150a11c4540e47c0494ea6b80718eac510d5c3811ce19a52ea";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/nn-NO/thunderbird-60.3.3.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-x86_64";
+      sha512 = "df80568600dd2ceecdb0ecaeec17223a54bf2f0bfb1ebf081628294329c3b14f4e190f9678c661d61cd2d9dbbb3b61b8eda82ae25268a88aad719110bf566b62";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/pl/thunderbird-60.3.3.tar.bz2";
+      locale = "pl";
+      arch = "linux-x86_64";
+      sha512 = "4c705c98abad6160f39aa8ab80296e9c69a5abc830f72d52538941460e793f63442df84f3d20762c605202f3e18b7cad3638b99c34af4c7acdaec04ab3868ac8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/pt-BR/thunderbird-60.3.3.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-x86_64";
+      sha512 = "c1d22acb77d39b3085d8f03755877d2f075805bee3d926ecf11f71c93d4b88237bc0dd377ebd3c512d46470f98cfb7d112301d576c71f07ad922a52943188873";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/pt-PT/thunderbird-60.3.3.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-x86_64";
+      sha512 = "1809f4b6bd289c394393af2302722afaae025c07699ed5e5815fbf946c0fad516316610ebf7ee90f9c0f0bf98a502c93bf206b4f151121e10cf295ed9d0f048b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/rm/thunderbird-60.3.3.tar.bz2";
+      locale = "rm";
+      arch = "linux-x86_64";
+      sha512 = "552086eef3449a1dfab00c817197a0fd2c5a31c84f6cdc26600075939c356713c8bd955517bff00f29a80b43c7e9d508693b52803c356f794efb9d503ce2b6d6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/ro/thunderbird-60.3.3.tar.bz2";
+      locale = "ro";
+      arch = "linux-x86_64";
+      sha512 = "6b1f5c3627d8599345ddbdbec602d9dc92163caf31c213a8f274f5cf57225d9045d67627c2b66fc8c74685bc4c0b5b24f3b5712b521dac47024ce0bba1baeac2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/ru/thunderbird-60.3.3.tar.bz2";
+      locale = "ru";
+      arch = "linux-x86_64";
+      sha512 = "0578f3158c0d4ccadfb73abbc6703ce6ae32b243c17381ed7f1ba1dcc3105dfa125aea8548d43e3548f5dd8d52ff7ead859b997295b2ce2a4be46688eedc49ad";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/si/thunderbird-60.3.3.tar.bz2";
+      locale = "si";
+      arch = "linux-x86_64";
+      sha512 = "03e357657c37c4215ded0a88741adfc7fe515060611ac861d1f12a81f6221d2dec0d9b928f94034c4078077487b8f181dbb51b8d6add51efbf3c47631f38cb67";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/sk/thunderbird-60.3.3.tar.bz2";
+      locale = "sk";
+      arch = "linux-x86_64";
+      sha512 = "b80f81cf6d280eab59abb353a75eb284336bed01bd22ae043822d006771b65a52751366f107cd2de3bb4e1a2972b095a97fd8aad77ce3ce153b46af6d517eb07";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/sl/thunderbird-60.3.3.tar.bz2";
+      locale = "sl";
+      arch = "linux-x86_64";
+      sha512 = "ea22e62825deeddf5c9ad9d98fa74917db8fca235683b5ede13415873a9e90994f7cebff6819bf63c8122c20055a88b40c446094f49fbd1bd4d52671cdde8bd2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/sq/thunderbird-60.3.3.tar.bz2";
+      locale = "sq";
+      arch = "linux-x86_64";
+      sha512 = "f84b93f1a4f8834494c1c289b7089070583e15d21c7b190696b28168ae40bf8d9d52f795ad0613655c156271a85ffdb942a6fb582d4dcbd46c51a4657683222b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/sr/thunderbird-60.3.3.tar.bz2";
+      locale = "sr";
+      arch = "linux-x86_64";
+      sha512 = "e89deae4b166f56f4e0c81651ec4a36fdf8b83cae086af87b60c7cf27dd0f484d114212fce130e7c62a144c8977665709c4add6d3782aa13cfb8a9f295f29362";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/sv-SE/thunderbird-60.3.3.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-x86_64";
+      sha512 = "899c76665d3b363bb239066d71aefd5920fa6f4382cae7ac5c6bd3a5ac96817791b8cf73597b2d388798b69229411fd97cd792b6caaaaf2b7bd87fb26344f3e4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/tr/thunderbird-60.3.3.tar.bz2";
+      locale = "tr";
+      arch = "linux-x86_64";
+      sha512 = "eded23fa5fc82fa0a9e2365e4323aa73cd00daa67fef6e752dafe6de1022240cea72ee7f5dafcf6283c629955899fdab21a38313130c9efdb472ae8bab447691";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/uk/thunderbird-60.3.3.tar.bz2";
+      locale = "uk";
+      arch = "linux-x86_64";
+      sha512 = "e4c98d96fc418463a1ff53d12443c42bbd8f3bbed0fe48d18d0ebdc79e6cd792453def505dd42b0e8937be4d52034a3dd92041e2181a588d16535b74e7de791e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/vi/thunderbird-60.3.3.tar.bz2";
+      locale = "vi";
+      arch = "linux-x86_64";
+      sha512 = "98c22a356777c45176390f62043599a43e22e9c8f5f9215180d5f5e760214b16efc48a79463e5b8a0cd08a7d512ae3d9203a8ec30b3e8bfdab910ad93a183a64";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/zh-CN/thunderbird-60.3.3.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-x86_64";
+      sha512 = "a8be99254b5d392b7236189c3633e5408ed1672ad4a69def12e0a75992f4f3dabe7f91cff840f01701bfb3e13bb2e188d3b8e396926fcadb16fcc03b257d62f0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-x86_64/zh-TW/thunderbird-60.3.3.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-x86_64";
+      sha512 = "491d5da4f4cb4eb1be71d1d3b1b9fcfaa2195d244c1837edd284d95b730e85658cc46bb2f6bb2b70f774e539d52be94e28cdfb45800d8d7ea02044d48ebedfaa";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/ar/thunderbird-60.3.3.tar.bz2";
+      locale = "ar";
+      arch = "linux-i686";
+      sha512 = "ff9a44f119b9004b6dd194d17f4b4e6bf7b32072d1cc9e69380e95ff9909ba427afba0b32cd33a8d0be2454b47363c1601e5a14ae03181d4cd45a166f267965f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/ast/thunderbird-60.3.3.tar.bz2";
+      locale = "ast";
+      arch = "linux-i686";
+      sha512 = "16c2801b70a2ec756a9d3fcc8a315dbe3521d7740d98b59273a0aa80facbfac0a92ec6e3b753f0813da24229fb137ba284b9a71fe7b0dcca057768b8a23037b3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/be/thunderbird-60.3.3.tar.bz2";
+      locale = "be";
+      arch = "linux-i686";
+      sha512 = "11abaf405de5025589e6ba4051c64c08e280ae49e06d610d30594925f018cea19521c75a1cae350ece37520b1108245a2c18dfdf69ddbf18ff5908c3dc4a9de2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/bg/thunderbird-60.3.3.tar.bz2";
+      locale = "bg";
+      arch = "linux-i686";
+      sha512 = "569b3fbb5856a7b2862d99e08d056c5cc2b0deac9ddc642e4c604c2217d5228545e1f7a5b2accbd43ad55d2d56b2233d02f640073f1c5e4aebf33f4ce439ccd8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/br/thunderbird-60.3.3.tar.bz2";
+      locale = "br";
+      arch = "linux-i686";
+      sha512 = "6d70a1d2fd59ce5b63c597abf8bd204fe6324a6fb59c29fc45a4dced31cf84b7375642a0d60d79ee7650a4f07dcea79d20d9f82d239f75884750f70da9816a29";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/ca/thunderbird-60.3.3.tar.bz2";
+      locale = "ca";
+      arch = "linux-i686";
+      sha512 = "8e76fc4ec337b8a900a65cb57b53d38ade3b69b818837cab82a3e37a16ad830bf2ce89b03d1560b4b4263fb1bb149d47d5d54dc67cf77b9a3097d59d45d83759";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/cs/thunderbird-60.3.3.tar.bz2";
+      locale = "cs";
+      arch = "linux-i686";
+      sha512 = "96e33b1ffc95b52bbb81543a46691bfd20eb0a76006524719bda85649cd7f3f3793a0911dce73c3b820201590ea901d1b093a3fab58fe780820bee08c0c32425";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/cy/thunderbird-60.3.3.tar.bz2";
+      locale = "cy";
+      arch = "linux-i686";
+      sha512 = "5dc24c92c939389347a4baab7dcb228535f740f3e606f9f6b2d8d7cd581d5ee2f1999966ae77b8004604b00aa673a99a821a61fa81102308e11d36daea587a8c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/da/thunderbird-60.3.3.tar.bz2";
+      locale = "da";
+      arch = "linux-i686";
+      sha512 = "edd5d16951cf209e6375723a679fefe2d25f9cd1c84b22b860336cbadbdd5f1b404c12fc52bc0b1e7671c5691d6de0ffdcb61c553295d339f0ea456a6a95be74";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/de/thunderbird-60.3.3.tar.bz2";
+      locale = "de";
+      arch = "linux-i686";
+      sha512 = "ac5a4fb5c3f4085000c5c3b7fe2cd9a2562757932b430f089d59b41f406b7d5dc86bcb9d0f6aa636f96a0151f120469ea31b0f9a692f56d82d45e77cde2c397e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/dsb/thunderbird-60.3.3.tar.bz2";
+      locale = "dsb";
+      arch = "linux-i686";
+      sha512 = "9afdceba205d37309df67623b3ab4ad517d9c405bbe407070291b7b3b4982d42260da7b76967027cfe4eb8ba8288d5f5286c62e0e981e9a046ae57cbbd6939dd";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/el/thunderbird-60.3.3.tar.bz2";
+      locale = "el";
+      arch = "linux-i686";
+      sha512 = "6ba2d44c94edc89fadac86574b868595eaa5320a31a219e2c62e957f6c7fb770454a41f3eb1ed9118e26f846d60efe706b5a4d83cccc2e0bc81da5fda3e22bbb";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/en-GB/thunderbird-60.3.3.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-i686";
+      sha512 = "257ca0e5adff187fb13494d4c2dcb8c707afbb834d3bb77a81bf48efefaf3538a53f2578a8a8fbc427cd56076a1af8b7ea184fa860571781c77cf791b9262e05";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/en-US/thunderbird-60.3.3.tar.bz2";
+      locale = "en-US";
+      arch = "linux-i686";
+      sha512 = "5f7f396026a73577fbc37626f07d57fd56bf2b2f10e2bd7ee0ceab1c8d241fd498fae590929300660d3452e4fb24af1bb2b29a8e8fbbd94a6c9f42c67904b133";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/es-AR/thunderbird-60.3.3.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-i686";
+      sha512 = "0b79a226eb36758eb132675b79fe88a620422030772fa9fea6db3c822c98dfd5b62d8041e744ca35c93c7bb181091a869cc65abaa06e068561f4c7a1396b2c1b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/es-ES/thunderbird-60.3.3.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-i686";
+      sha512 = "7f37d63cedb27a6d0ba99617d1a8aa13a858fdf1315681d3f605c3199eded5d4cff57326b33364f5cc90cfd35494fa5e3ee0e8e3a02f7167f670d7b4ab0a20bf";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/et/thunderbird-60.3.3.tar.bz2";
+      locale = "et";
+      arch = "linux-i686";
+      sha512 = "48596be9c361f301c062e955a67a46375bcfa6444188f6285dd3557e45f423a0ec6dc7e4c29aeb7a8ae8f05dd52ab3ba0a224c1fa094f6b5e7ed5a060b653a3c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/eu/thunderbird-60.3.3.tar.bz2";
+      locale = "eu";
+      arch = "linux-i686";
+      sha512 = "f6f01952eee94db359ad1042a5343d77cdd4df1f41b38530ff4a9ce2cbabd14683eb7937724e34e276ac1ecc4ffc1dcc85bf2462cb071627ef490f2aed915f63";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/fi/thunderbird-60.3.3.tar.bz2";
+      locale = "fi";
+      arch = "linux-i686";
+      sha512 = "58c885494a9db36ebfb89207dee0e1bfd284760baa6d8bc0e351b9f4157a6bf826c20e33729a9d4661c146f40545e2228b916f9f6fb059da9558a5ba438f7a14";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/fr/thunderbird-60.3.3.tar.bz2";
+      locale = "fr";
+      arch = "linux-i686";
+      sha512 = "205c540dc890bfa8a8514ed7d32e1599b21b3bea504594c99ddafed00b6341b23b767bead4ce47193929e8175424625a84f436ae36572209a3acf66cb395ef3a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/fy-NL/thunderbird-60.3.3.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-i686";
+      sha512 = "03e206b3373b45004ba90e973af4020c7956fa2b783ffe8a5f38ea695cf8d729598052413c993d3c57f449c81779775dc4b8988a1d4919a6460a519c89b0652e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/ga-IE/thunderbird-60.3.3.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-i686";
+      sha512 = "16846e5317f98dc77ca0185384f677befe9ea1f395c85560fd5ac14e4af28694e62e85a958d98adf39500a736b7a6689a9ee81d51d3e5497df2e02ba7043bd7b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/gd/thunderbird-60.3.3.tar.bz2";
+      locale = "gd";
+      arch = "linux-i686";
+      sha512 = "b0c58bddde3c41c0ae591a0981dd9f97eef0abf0aa76839c3bab8e8206f011510a944a3fb396f0b211f64c311e4a43cc694a95cf89c8f76666366d1858bc63e9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/gl/thunderbird-60.3.3.tar.bz2";
+      locale = "gl";
+      arch = "linux-i686";
+      sha512 = "515ea18d83c3bd0630510331fa05b8ec8795657b5b175967ec893ad88c96ce5d91f20e52a3977aa4d601e67a198a8e9e1d8278cc4ef569066f8d3a56c0e7a6a9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/he/thunderbird-60.3.3.tar.bz2";
+      locale = "he";
+      arch = "linux-i686";
+      sha512 = "fc08ef178d41664279bb5dc3dfcefb16ab341775ae4179b5dd78ce4518bd05ad4a08487160ea7e2a53f53334c999841f1436e3a3e2ff2b77787b98d598c3d446";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/hr/thunderbird-60.3.3.tar.bz2";
+      locale = "hr";
+      arch = "linux-i686";
+      sha512 = "7538f66ddd8b224d7aa8fa933dce4b77c2af55521dc7649eba585d4c3881a4db213848da52c3e3dc1c40ecbe563427786dc4fe07b582ccfdc18bdbe2165112c2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/hsb/thunderbird-60.3.3.tar.bz2";
+      locale = "hsb";
+      arch = "linux-i686";
+      sha512 = "84e3c382a911300076409fbbbe799b7852539a051e9153abd86e8f2a94542f95e1f2674e29b66b0a794063268fca6ee0eb1da150d5b1145adac0d75debfa3615";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/hu/thunderbird-60.3.3.tar.bz2";
+      locale = "hu";
+      arch = "linux-i686";
+      sha512 = "18c2cabb2de1b26e60f9e3c12e9ef7d12a11f47a28d2f866b477abff51dc455040887000dc562aac20c58e71b7f30514edf3faa0c7e35f9864a5784c8ca777c0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/hy-AM/thunderbird-60.3.3.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-i686";
+      sha512 = "01b27fff2282402476ea54e7fade1ec9ffc18e2b310e008a327f4a12ae109bbe093b4cbff034e5f474f840c2f8969bcbcc3c0cb1810b5245785c24dbaf7d1a74";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/id/thunderbird-60.3.3.tar.bz2";
+      locale = "id";
+      arch = "linux-i686";
+      sha512 = "134ec9f6c468d6e389b2b0147b623b814f6bdf5115d55215cd2f6a3873f435f9fae08c4426b701aa7854344896c2216cdf7c8b62056aed552bef23fe6a31f14d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/is/thunderbird-60.3.3.tar.bz2";
+      locale = "is";
+      arch = "linux-i686";
+      sha512 = "0795c91a48811491809166dc5cfa772f3243ab0e8b462a49745b892fa49db891f8c6638ba6fddcbeb434130c5ce92a997719aa573350d6e5b20ac28c99653396";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/it/thunderbird-60.3.3.tar.bz2";
+      locale = "it";
+      arch = "linux-i686";
+      sha512 = "8ac5bd2df3f0fedfbe3e0a75f8798fbe4e2c405910619cbaea137ca522a59fcad9ee932463ab4042d70fe9f9e37d8a0a99c1c45216c125155aeb364f9e85c236";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/ja/thunderbird-60.3.3.tar.bz2";
+      locale = "ja";
+      arch = "linux-i686";
+      sha512 = "cc459b44a9ced486d090b78a547442e181ed556036197b9770c3e441976a867ebebbe9297cf8413ba5408e2181089a4850a68d18211d314d071d4a249f524173";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/kab/thunderbird-60.3.3.tar.bz2";
+      locale = "kab";
+      arch = "linux-i686";
+      sha512 = "0771159f455a9417c8322ca09d6f01e823095b8c5d87933e95152b0690bdaf1f935a9ea84c7fe6e669773c54ae84e7f51e22aee2376f41e546035cffbd4f2550";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/kk/thunderbird-60.3.3.tar.bz2";
+      locale = "kk";
+      arch = "linux-i686";
+      sha512 = "6462ce8dad2f34108c9e08d9d891911e5a3093b49040df9e657b07abc123e01713ee8bf0a83437cc0835bef2085b29899dc70400ca0ed0cd65160ff32cf76090";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/ko/thunderbird-60.3.3.tar.bz2";
+      locale = "ko";
+      arch = "linux-i686";
+      sha512 = "bacc91e37c658b0671b9fcd0f7efedea1b05ec2fe7b18ac989d2a282c8151d5d76de2ef6e381f4e8346d651c500b7f4374a5baf312fa70613550b01c5b440118";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/lt/thunderbird-60.3.3.tar.bz2";
+      locale = "lt";
+      arch = "linux-i686";
+      sha512 = "9218310de664035a0fbb70e579a2c34294f0b38f4a3787da7dc73018c3103ea23a8b3978ee8f2d7131aa67c2ed5858984d4e7eadf0f4987bfce5b8b0e23c89a0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/ms/thunderbird-60.3.3.tar.bz2";
+      locale = "ms";
+      arch = "linux-i686";
+      sha512 = "1df6d4e8aae46d1b97142c975a1f7c9e3cdc7ea00b3693af2442468d712338519857e8ee8fca66dbddae2b0f28972e7fd077e20c237bb214c3f37ab66fb2ec86";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/nb-NO/thunderbird-60.3.3.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-i686";
+      sha512 = "2527fe96bbdf9c827baf2fa86d526b274f4c72800d6ab4233544537ceda5a8b1bb284d5e141d1a09e05727f5b2b6c2b3d413d7d4c9a974b29537c6102935ed74";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/nl/thunderbird-60.3.3.tar.bz2";
+      locale = "nl";
+      arch = "linux-i686";
+      sha512 = "3d69a82dc64321111bd3971e984414336cfda3def779aed1a683bc65c02dfa4ae913b1ff2a1e5e13e31100719ae002b2efebc3854075e315a76bef84fca2dd5a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/nn-NO/thunderbird-60.3.3.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-i686";
+      sha512 = "533740fc37bd06eeead741afb6e13965f029c6996704c307c793cefcb4f38a4b3d2d4b9ec1aa934df95291c6b2d9965955333b3fc541806ae38226b119c7bec6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/pl/thunderbird-60.3.3.tar.bz2";
+      locale = "pl";
+      arch = "linux-i686";
+      sha512 = "e1984be8836f63d91656618509dad6ad34de544d6bbe49c0dac2649c01dd0dd4b8db88f05b08b8425e34548c7bc45ce10e69278eb840f061b4f0e88f40ec1515";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/pt-BR/thunderbird-60.3.3.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-i686";
+      sha512 = "0eda97e4fefe23af3126f9639358e3c0bb4a462bac2a64561bec0437cce426f61d995dfb8a081ab84101279a24f6d539338056d2a81f9c5aa157f61babea017b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/pt-PT/thunderbird-60.3.3.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-i686";
+      sha512 = "11ddef47843f68a72322e5750e4a3ccd09c21e768aa2a726cf48bf03a67c47cdbd83b886a50d82312d9472c198813d66b29baa98715cd564c89dfacdcbca0e41";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/rm/thunderbird-60.3.3.tar.bz2";
+      locale = "rm";
+      arch = "linux-i686";
+      sha512 = "b004eac3d9cf2c59a2531b39927a646dcd43638d97f306ba25b58fb9629d7f091c54d69aab623f2699b3063832afac7d6dbcc6d8c5d472f9aa12d150edabc834";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/ro/thunderbird-60.3.3.tar.bz2";
+      locale = "ro";
+      arch = "linux-i686";
+      sha512 = "fc034eb4bc0335cd1d8c23d97ec046a735c8a43caba1989698ab84e6f317e3d12e9f82e22c55a2357eea87495863d3e9458690fae366c20bfb86ce5a717d6a16";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/ru/thunderbird-60.3.3.tar.bz2";
+      locale = "ru";
+      arch = "linux-i686";
+      sha512 = "d78dc34620e193620e07f3041bbc4a3751bade9b0f2f66b34f37e57cb67a52b64746d6beed566452f0f27928bf58429c7ae99756a2328781b0ee6a981669aeef";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/si/thunderbird-60.3.3.tar.bz2";
+      locale = "si";
+      arch = "linux-i686";
+      sha512 = "76d20ae74e5aee5c1f86d5f7b3fe780acb8021f442038dc4193bda59adb0de274a6fec14be90ee244eb91987cb73cf313e06c1f87d33789418158a78d455ce14";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/sk/thunderbird-60.3.3.tar.bz2";
+      locale = "sk";
+      arch = "linux-i686";
+      sha512 = "86cf766b5260a03a57cc2d9a8e7308badbc2488219627445b6f08bb92e0008c708b9b542a2a4b99e6210f8b461c5520385b2549d3f47ba1d8b3759fd364f79bf";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/sl/thunderbird-60.3.3.tar.bz2";
+      locale = "sl";
+      arch = "linux-i686";
+      sha512 = "ca377881fb35c95e3a9bd3807a0ab227bb1a899406fc2c99c0a42e31702e6271379afb1197ebb53dbbf11d163c346ac664c056c02761653e56c445df1d066ccf";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/sq/thunderbird-60.3.3.tar.bz2";
+      locale = "sq";
+      arch = "linux-i686";
+      sha512 = "b46f45d78295999c489b72114290ce38617d87011743d276a6ff90f575205f8e473ba68a9b080e622fd5350b8574f1602edf085ca30aec9f64801df5aa937d2b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/sr/thunderbird-60.3.3.tar.bz2";
+      locale = "sr";
+      arch = "linux-i686";
+      sha512 = "1952cb0e645f0bf4f6473cf2e01b3ab3b30deea450545d4027f2c8cd037016296ca08f14d80d2d47fab4ac1bd69e9177b3eb2e73a861e5da5d14f660f9ae7534";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/sv-SE/thunderbird-60.3.3.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-i686";
+      sha512 = "fabc6da07f9269c7404b341b63e7377b94d481f96b8dd66b19bceb8e4b18e6ce99a75cac20e7952df900c5921b701e3f2d4f0e245dbf2f760a6d933730f6007b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/tr/thunderbird-60.3.3.tar.bz2";
+      locale = "tr";
+      arch = "linux-i686";
+      sha512 = "4e4136596cbbb50719219c9b1aaafa9fbdc9464750317b1e1f0f6c3a8289a1a11bb472b7f781081386a81f36411d04be91acdf8374c1870dd5fa65f171391a1f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/uk/thunderbird-60.3.3.tar.bz2";
+      locale = "uk";
+      arch = "linux-i686";
+      sha512 = "a378b4d0107c8d16a40a934e898190d0e26593c7efcb3ad7338e95ccae88d00e7b1d5a7d54cdc063ef8423edf65f875688f3a96e60c36499c708dc642d11f14f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/vi/thunderbird-60.3.3.tar.bz2";
+      locale = "vi";
+      arch = "linux-i686";
+      sha512 = "a02360132303d533abeb1bf82e318a416bac192a5ff017a3a7300cf0f062f0e165a8be1355b2d2cdcf8aee8e293ca615923ca97a6f6b9df054a93e57eeceb620";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/zh-CN/thunderbird-60.3.3.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-i686";
+      sha512 = "9125c4078b4c0de07ff161cf468c0efa5d61a2df42f8237e9d54a4c2996ef769e810116fea7fc69b44f6688525860dc3821621b63355b83e61e08cbdaba0f2a6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/60.3.3/linux-i686/zh-TW/thunderbird-60.3.3.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-i686";
+      sha512 = "0a692b8bc5731bc2d656e1f1ac8a5c841885e4412f94bba325ae9a0396bdcd092eb5e31ea5dcde6774745e0edeecabdb3642f062f2bbe9c6ec4b66e7e362302b";
+    }
+    ];
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
new file mode 100644
index 000000000000..c048c2938a92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -0,0 +1,207 @@
+{ lib, stdenv, fetchurl, pkgconfig, gtk2, pango, perl, python, zip, fetchpatch
+, libIDL, libjpeg, zlib, dbus, dbus-glib, bzip2, xorg
+, freetype, fontconfig, file, nspr, nss, libnotify
+, yasm, libGLU_combined, sqlite, unzip
+, hunspell, libevent, libstartup_notification
+, icu, libpng, jemalloc
+, autoconf213, which, m4
+, writeScript, xidel, common-updater-scripts, coreutils, gnused, gnugrep, curl
+, cargo, rustc, llvmPackages
+, enableGTK3 ? false, gtk3, gnome3, wrapGAppsHook, makeWrapper
+, enableCalendar ? true
+, debugBuild ? false
+, # If you want the resulting program to call itself "Thunderbird" instead
+  # of "Earlybird" or whatever, enable this option.  However, those
+  # binaries may not be distributed without permission from the
+  # Mozilla Foundation, see
+  # http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+, makeDesktopItem
+}:
+
+let
+  wrapperTool = if enableGTK3 then wrapGAppsHook else makeWrapper;
+  gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc;
+in stdenv.mkDerivation rec {
+  name = "thunderbird-${version}";
+  version = "60.3.3";
+
+  src = fetchurl {
+    url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
+    sha512 = "04m6mgm4nfnq3nfkv0d1al5b7bw95kfcjpyd7aschqi6wnn21g8qacx42ynj89i5l9vc1jx8nz0wy266sy6x5iv9q585c6l6j9gvkrh";
+  };
+
+  # from firefox, but without sound libraries
+  buildInputs =
+    [ gtk2 zip libIDL libjpeg zlib bzip2
+      dbus dbus-glib pango freetype fontconfig xorg.libXi
+      xorg.libX11 xorg.libXrender xorg.libXft xorg.libXt file
+      nspr nss libnotify xorg.pixman yasm libGLU_combined
+      xorg.libXScrnSaver xorg.scrnsaverproto
+      xorg.libXext xorg.xextproto sqlite unzip
+      hunspell libevent libstartup_notification /* cairo */
+      icu libpng jemalloc
+    ]
+    ++ lib.optionals enableGTK3 [ gtk3 gnome3.defaultIconTheme ];
+
+  # from firefox + m4 + wrapperTool
+  nativeBuildInputs = [ m4 autoconf213 which gnused pkgconfig perl python wrapperTool cargo rustc ];
+
+  patches = [
+    # Remove buildconfig.html to prevent a dependency on clang etc.
+    ../../browsers/firefox/no-buildconfig.patch
+  ];
+
+  configureFlags =
+    [ # from firefox, but without sound libraries (alsa, libvpx, pulseaudio)
+      "--enable-application=comm/mail"
+      "--disable-alsa"
+      "--disable-pulseaudio"
+
+      "--with-system-jpeg"
+      "--with-system-zlib"
+      "--with-system-bz2"
+      "--with-system-nspr"
+      "--with-system-nss"
+      "--with-system-libevent"
+      "--with-system-png" # needs APNG support
+      "--with-system-icu"
+      "--enable-rust-simd"
+      "--enable-system-ffi"
+      "--enable-system-hunspell"
+      "--enable-system-pixman"
+      "--enable-system-sqlite"
+      #"--enable-system-cairo"
+      "--enable-startup-notification"
+      "--disable-crashreporter"
+      "--disable-tests"
+      "--disable-necko-wifi" # maybe we want to enable this at some point
+      "--disable-updater"
+      "--enable-jemalloc"
+      "--disable-gconf"
+      "--enable-default-toolkit=cairo-gtk${if enableGTK3 then "3" else "2"}"
+      "--enable-js-shell"
+    ]
+      ++ lib.optional enableCalendar "--enable-calendar"
+      ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
+                        else [ "--disable-debug" "--enable-release"
+                               "--disable-debug-symbols"
+                               "--enable-optimize" "--enable-strip" ])
+      ++ lib.optional enableOfficialBranding "--enable-official-branding"
+      ++ lib.optionals (lib.versionAtLeast version "56" && !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"
+      ];
+
+  enableParallelBuilding = true;
+
+  preConfigure =
+    ''
+      cxxLib=$( echo -n ${gcc}/include/c++/* )
+      archLib=$cxxLib/$( ${gcc}/bin/gcc -dumpmachine )
+  
+      test -f layout/style/ServoBindings.toml && sed -i -e '/"-DRUST_BINDGEN"/ a , "-cxx-isystem", "'$cxxLib'", "-isystem", "'$archLib'"' layout/style/ServoBindings.toml
+
+      configureScript="$(realpath ./configure)"
+      mkdir ../objdir
+      cd ../objdir
+    '';
+
+  preInstall =
+    ''
+      # The following is needed for startup cache creation on grsecurity kernels.
+      paxmark m ../objdir/dist/bin/xpcshell
+    '';
+
+  dontWrapGApps = true; # we do it ourselves
+  postInstall =
+    ''
+      # For grsecurity kernels
+      paxmark m $out/lib/thunderbird/thunderbird
+
+      # TODO: Move to a dev output?
+      rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl
+
+      # $binary is a symlink to $target.
+      # We wrap $target by replacing the $binary symlink.
+      local target="$out/lib/thunderbird/thunderbird"
+      local binary="$out/bin/thunderbird"
+
+      # Wrap correctly, this is needed to
+      # 1) find Mozilla runtime, because argv0 must be the real thing,
+      #    or a symlink thereto. It cannot be the wrapper itself
+      # 2) detect itself as the default mailreader across builds
+      gappsWrapperArgs+=(
+        --argv0 "$target"
+        --set MOZ_APP_LAUNCHER thunderbird
+      )
+      ${
+        # We wrap manually because wrapGAppsHook does not detect the symlink
+        # To mimic wrapGAppsHook, we run it with dontWrapGApps, so
+        # gappsWrapperArgs gets defined correctly
+        lib.optionalString enableGTK3 "wrapGAppsHook"
+      }
+
+      # "$binary" is a symlink, replace it by the wrapper
+      rm "$binary"
+      makeWrapper "$target" "$binary" "''${gappsWrapperArgs[@]}"
+
+      ${ let desktopItem = makeDesktopItem {
+          name = "thunderbird";
+          exec = "thunderbird %U";
+          desktopName = "Thunderbird";
+          icon = "$out/lib/thunderbird/chrome/icons/default/default256.png";
+          genericName = "Mail Reader";
+          categories = "Application;Network";
+          mimeType = stdenv.lib.concatStringsSep ";" [
+            # Email
+            "x-scheme-handler/mailto"
+            "message/rfc822"
+            # Newsgroup
+            "x-scheme-handler/news"
+            "x-scheme-handler/snews"
+            "x-scheme-handler/nntp"
+            # Feed
+            "x-scheme-handler/feed"
+            "application/rss+xml"
+            "application/x-extension-rss"
+          ];
+        }; in desktopItem.buildCommand
+      }
+    '';
+
+  postFixup =
+    # Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712.
+    ''
+      patchelf --set-rpath "${lib.getLib libnotify
+        }/lib:$(patchelf --print-rpath "$out"/lib/thunderbird*/libxul.so)" \
+          "$out"/lib/thunderbird*/libxul.so
+    '';
+
+  doInstallCheck = true;
+  installCheckPhase =
+    ''
+      # Some basic testing
+      "$out/bin/thunderbird" --version
+    '';
+
+  disallowedRequisites = [ stdenv.cc ];
+
+  meta = with stdenv.lib; {
+    description = "A full-featured e-mail client";
+    homepage = http://www.mozilla.org/thunderbird/;
+    license =
+      # Official branding implies thunderbird name and logo cannot be reuse,
+      # see http://www.mozilla.org/foundation/licensing.html
+      if enableOfficialBranding then licenses.proprietary else licenses.mpl11;
+    maintainers = [ maintainers.pierron maintainers.eelco ];
+    platforms = platforms.linux;
+  };
+
+  passthru.updateScript = import ./../../browsers/firefox/update.nix {
+    attrPath = "thunderbird";
+    baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
+    inherit stdenv writeScript lib common-updater-scripts xidel coreutils gnused gnugrep curl;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix
new file mode 100644
index 000000000000..2d96d0336132
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, lib
+, fetchurl
+, cmake
+, qtbase
+, qtwebkit
+, qttools
+}:
+
+mkDerivation rec {
+  name = "trojita-${version}";
+  version = "0.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/trojita/trojita/${name}.tar.xz";
+    sha256 = "1n9n07md23ny6asyw0xpih37vlwzp7vawbkprl7a1bqwfa0si3g0";
+  };
+
+  buildInputs = [
+    qtbase
+    qtwebkit
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    qttools
+  ];
+
+
+  meta = with lib; {
+    description = "A Qt IMAP e-mail client";
+    homepage = http://trojita.flaska.net/;
+    license = with licenses; [ gpl2 gpl3 ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
new file mode 100644
index 000000000000..ca8a4d0fb0cb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, buildEnv, pkgconfig, python3, fetchhg, gtk3, glib, gdbm, gtkspell3, itstool, libappindicator-gtk3, perlPackages, glibcLocales, meson, ninja }:
+
+stdenv.mkDerivation rec {
+  name = "modem-manager-gui-${version}";
+  version = "0.0.19.1";
+
+  src = fetchhg {
+    url = https://linuxonly@bitbucket.org/linuxonly/modem-manager-gui;
+    rev = "version ${version}";
+    sha256 = "11iibh36567814h2bz41sa1072b86p1l13xyj670pwkh9k8kw8fd";
+  };
+
+  LC_ALL = "en_US.utf-8";
+
+  nativeBuildInputs = [
+    pkgconfig
+    python3
+    perlPackages.Po4a
+    itstool
+    glibcLocales
+    meson
+    ninja
+  ];
+
+  buildInputs = [
+    gtk3
+    glib
+    gdbm
+    gtkspell3
+    libappindicator-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 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mpop/default.nix b/nixpkgs/pkgs/applications/networking/mpop/default.nix
new file mode 100644
index 000000000000..912c23f107d9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mpop/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, openssl, pkgconfig, gnutls, gsasl, libidn, Security }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "1.4.1";
+  name = "mpop-${version}";
+
+  src = fetchurl {
+    url = "https://marlam.de/mpop/releases/${name}.tar.xz";
+    sha256 = "1b9mj6yfa8vg5flxw1xb8xalifjg87dghbg523i6fbr7679zl9iy";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/msmtp/default.nix b/nixpkgs/pkgs/applications/networking/msmtp/default.nix
new file mode 100644
index 000000000000..a9c828a3fb13
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/msmtp/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig
+, 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";
+  name = "${pname}-${version}";
+  version = "1.8.1";
+
+  src = fetchurl {
+    url = "https://marlam.de/msmtp/releases/${name}.tar.xz";
+    sha256 = "1nm4vizrnrrnknc4mc8nr7grz9q76m1vraa0hsl5rfm34gnsg8ph";
+  };
+
+  patches = [
+    ./paths.patch
+  ];
+
+  buildInputs = [ gnutls gsasl libidn2 ]
+    ++ stdenv.lib.optional stdenv.isDarwin Security
+    ++ stdenv.lib.optional withKeyring libsecret;
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  configureFlags =
+    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; [ garbas peterhoeg ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/msmtp/paths.patch b/nixpkgs/pkgs/applications/networking/msmtp/paths.patch
new file mode 100644
index 000000000000..38e4155a1137
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/msmtp/paths.patch
@@ -0,0 +1,96 @@
+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="$('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/nixpkgs/pkgs/applications/networking/mumble/default.nix b/nixpkgs/pkgs/applications/networking/mumble/default.nix
new file mode 100644
index 000000000000..d0a690496e27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mumble/default.nix
@@ -0,0 +1,158 @@
+{ stdenv, fetchurl, fetchFromGitHub, fetchpatch, pkgconfig
+, qt4, qmake4Hook, qt5, avahi, boost, libopus, libsndfile, protobuf, speex, libcap
+, alsaLib, python
+, jackSupport ? false, libjack2 ? null
+, speechdSupport ? false, speechd ? null
+, pulseSupport ? false, libpulseaudio ? null
+, iceSupport ? false, zeroc_ice ? null
+}:
+
+assert jackSupport -> libjack2 != null;
+assert speechdSupport -> speechd != null;
+assert pulseSupport -> libpulseaudio != null;
+assert iceSupport -> zeroc_ice != null;
+
+with stdenv.lib;
+let
+  generic = overrides: source: stdenv.mkDerivation (source // overrides // {
+    name = "${overrides.type}-${source.version}";
+
+    patches = (source.patches or []) ++ optional jackSupport ./mumble-jack-support.patch;
+
+    nativeBuildInputs = [ pkgconfig python ]
+      ++ { qt4 = [ qmake4Hook ]; qt5 = [ qt5.qmake ]; }."qt${toString source.qtVersion}"
+      ++ (overrides.nativeBuildInputs or [ ]);
+    buildInputs = [ boost protobuf avahi ]
+      ++ { qt4 = [ qt4 ]; qt5 = [ qt5.qtbase ]; }."qt${toString source.qtVersion}"
+      ++ (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"
+    ] ++ optional (!speechdSupport) "CONFIG+=no-speechd"
+      ++ optional jackSupport "CONFIG+=no-oss CONFIG+=no-alsa CONFIG+=jackaudio"
+      ++ optional (!iceSupport) "CONFIG+=no-ice"
+      ++ (overrides.configureFlags or [ ]);
+
+    preConfigure = ''
+       qmakeFlags="$qmakeFlags DEFINES+=PLUGIN_PATH=$out/lib"
+       patchShebangs scripts
+    '';
+
+    makeFlags = [ "release" ];
+
+    installPhase = ''
+      mkdir -p $out/{lib,bin}
+      find release -type f -not -name \*.\* -exec cp {} $out/bin \;
+      find release -type f -name \*.\* -exec cp {} $out/lib \;
+
+      mkdir -p $out/share/man/man1
+      cp man/mum* $out/share/man/man1
+    '' + (overrides.installPhase or "");
+
+    enableParallelBuilding = true;
+
+    meta = {
+      description = "Low-latency, high quality voice chat software";
+      homepage = https://mumble.info;
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ jgeerds wkennington ];
+      platforms = platforms.linux;
+    };
+  });
+
+  client = source: generic {
+    type = "mumble";
+
+    nativeBuildInputs = optionals (source.qtVersion == 5) [ qt5.qttools ];
+    buildInputs = [ libopus libsndfile speex ]
+      ++ optional (source.qtVersion == 5) qt5.qtsvg
+      ++ 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 = ''
+      mkdir -p $out/share/applications
+      cp scripts/mumble.desktop $out/share/applications
+
+      mkdir -p $out/share/icons{,/hicolor/scalable/apps}
+      cp icons/mumble.svg $out/share/icons
+      ln -s $out/share/icons/mumble.svg $out/share/icons/hicolor/scalable/apps
+    '';
+  } source;
+
+  server = generic {
+    type = "murmur";
+
+    postPatch = optional iceSupport ''
+      grep -Rl '/usr/share/Ice' . | xargs sed -i 's,/usr/share/Ice/,${zeroc_ice}/,g'
+    '';
+
+    configureFlags = [
+      "CONFIG+=no-client"
+    ];
+
+    buildInputs = [ libcap ] ++ optional iceSupport zeroc_ice;
+  };
+
+  stableSource = rec {
+    version = "1.2.19";
+    qtVersion = 4;
+
+    src = fetchurl {
+      url = "https://github.com/mumble-voip/mumble/releases/download/${version}/mumble-${version}.tar.gz";
+      sha256 = "1s60vaici3v034jzzi20x23hsj6mkjlc0glipjq4hffrg9qgnizh";
+    };
+
+    patches = [
+      # Fix compile error against boost 1.66 (#33655):
+      (fetchpatch {
+        url = "https://github.com/mumble-voip/mumble/commit/"
+            + "ea861fe86743c8402bbad77d8d1dd9de8dce447e.patch";
+        sha256 = "1r50dc8dcl6jmbj4abhnay9div7y56kpmajzqd7ql0pm853agwbh";
+      })
+      # Fixes hang on reconfiguring audio (often including startup)
+      # https://github.com/mumble-voip/mumble/pull/3418
+      (fetchpatch {
+        url = "https://github.com/mumble-voip/mumble/commit/"
+            + "fbbdf2e8ab7d93ed6f7680268ad0689b7eaa71ad.patch";
+        sha256 = "1yhj62mlwm6q42i4aclbia645ha97d3j4ycxhgafr46dbjs0gani";
+      })
+    ];
+  };
+
+  gitSource = rec {
+    version = "2018-07-01";
+    qtVersion = 5;
+
+    # Needs submodules
+    src = fetchFromGitHub {
+      owner = "mumble-voip";
+      repo = "mumble";
+      rev = "c19ac8c0b0f934d2ff206858d7cb66352d6eb418";
+      sha256 = "1mzp1bgn49ycs16d6r8icqq35wq25198fs084vyq6j5f78ni7pvz";
+      fetchSubmodules = true;
+    };
+  };
+in {
+  mumble     = client stableSource;
+  mumble_git = client gitSource;
+  murmur     = server stableSource;
+  murmur_git = (server gitSource).overrideAttrs (old: {
+    meta = old.meta // { broken = iceSupport; };
+  });
+}
diff --git a/nixpkgs/pkgs/applications/networking/mumble/mumble-jack-support.patch b/nixpkgs/pkgs/applications/networking/mumble/mumble-jack-support.patch
new file mode 100644
index 000000000000..7c18a33193df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mumble/mumble-jack-support.patch
@@ -0,0 +1,457 @@
+The patch was created by Filipe Coelho (falkTX) of the KXStudio
+project. http://kxstudio.sourceforge.net
+
+diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/JackAudio.cpp mumble-1.2.2/src/mumble/JackAudio.cpp
+--- mumble-1.2.2.orig/src/mumble/JackAudio.cpp	1970-01-01 01:00:00.000000000 +0100
++++ mumble-1.2.2/src/mumble/JackAudio.cpp	2011-01-26 06:02:00.000000000 +0000
+@@ -0,0 +1,314 @@
++/* Copyright (C) 2011, Benjamin Jemlich <pcgod@users.sourceforge.net>
++   Copyright (C) 2011, Filipe Coelho <falktx@gmail.com>
++
++   All rights reserved.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions
++   are met:
++
++   - Redistributions of source code must retain the above copyright notice,
++     this list of conditions and the following disclaimer.
++   - Redistributions in binary form must reproduce the above copyright notice,
++     this list of conditions and the following disclaimer in the documentation
++     and/or other materials provided with the distribution.
++   - Neither the name of the Mumble Developers nor the names of its
++     contributors may be used to endorse or promote products derived from this
++     software without specific prior written permission.
++
++   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
++   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++*/
++
++#include "JackAudio.h"
++#include "User.h"
++#include "Global.h"
++#include "MainWindow.h"
++#include "Timer.h"
++
++#include <cstring>
++
++static JackAudioSystem *jasys = NULL;
++
++class JackAudioInputRegistrar : public AudioInputRegistrar {
++        public:
++                JackAudioInputRegistrar();
++                virtual AudioInput *create();
++                virtual const QList<audioDevice> getDeviceChoices();
++                virtual void setDeviceChoice(const QVariant &, Settings &);
++                virtual bool canEcho(const QString &) const;
++};
++
++class JackAudioOutputRegistrar : public AudioOutputRegistrar {
++        public:
++                JackAudioOutputRegistrar();
++                virtual AudioOutput *create();
++                virtual const QList<audioDevice> getDeviceChoices();
++                virtual void setDeviceChoice(const QVariant &, Settings &);
++};
++
++class JackAudioInit : public DeferInit {
++        public:
++                JackAudioInputRegistrar *airJackAudio;
++                JackAudioOutputRegistrar *aorJackAudio;
++                void initialize() {
++                        jasys = new JackAudioSystem();
++                        jasys->init_jack();
++                        jasys->qmWait.lock();
++                        jasys->qwcWait.wait(&jasys->qmWait, 1000);
++                        jasys->qmWait.unlock();
++                        if (jasys->bJackIsGood) {
++                                airJackAudio = new JackAudioInputRegistrar();
++                                aorJackAudio = new JackAudioOutputRegistrar();
++                        } else {
++                                airJackAudio = NULL;
++                                aorJackAudio = NULL;
++                                delete jasys;
++                                jasys = NULL;
++                        }
++                };
++                void destroy() {
++                        if (airJackAudio)
++                                delete airJackAudio;
++                        if (aorJackAudio)
++                                delete aorJackAudio;
++                        if (jasys) {
++                                jasys->close_jack();
++                                delete jasys;
++                                jasys = NULL;
++                        }
++                };
++};
++
++static JackAudioInit jackinit; //unused
++
++JackAudioSystem::JackAudioSystem() {
++        bJackIsGood = false;
++        iSampleRate = 0;
++}
++
++JackAudioSystem::~JackAudioSystem() {
++}
++
++void JackAudioSystem::init_jack()
++{
++        client = jack_client_open("mumble", JackNullOption, 0);
++
++        if (client) {
++                in_port = jack_port_register(client, "input", JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0);
++                out_port = jack_port_register(client, "output", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0);
++                jack_set_process_callback(client, process_callback, this);
++                jack_set_sample_rate_callback(client, srate_callback, this);
++                jack_on_shutdown(client, shutdown_callback, this);
++
++                iSampleRate = jack_get_sample_rate(client);
++
++                if (jack_activate(client) || in_port == NULL || out_port == NULL) {
++                    client = NULL;
++                    return;
++                }
++
++                int port_flags;
++                unsigned i = -1;
++                const char** ports = jack_get_ports(client, 0, 0, JackPortIsPhysical);
++
++                if (ports) {
++                    while (ports[++i])
++                    {
++                        jack_port_t* port = jack_port_by_name(client, ports[i]);
++                        port_flags = jack_port_flags(port);
++
++                        if (port_flags & (JackPortIsPhysical|JackPortIsOutput) && strstr(jack_port_type(port), "audio")) {
++                            jack_connect(client, ports[i], jack_port_name(in_port));
++                        }
++                        if (port_flags & (JackPortIsPhysical|JackPortIsInput) && strstr(jack_port_type(port), "audio")) {
++                            jack_connect(client, jack_port_name(out_port), ports[i]);
++                        }
++                    }
++                }
++
++                jack_free(ports);
++
++                // If we made it this far, then everything is okay
++                qhInput.insert(QString(), tr("Hardware Ports"));
++                qhOutput.insert(QString(), tr("Hardware Ports"));
++                bJackIsGood = true;
++
++            } else {
++                bJackIsGood = false;
++                client = NULL;
++            }
++}
++
++void JackAudioSystem::close_jack()
++{
++        if (client) {
++                jack_deactivate(client);
++                jack_client_close(client);
++                client = NULL;
++        }
++}
++
++int JackAudioSystem::process_callback(jack_nframes_t nframes, void *arg)
++{
++        JackAudioSystem *jas = (JackAudioSystem*)arg;
++
++        if (jas && jas->bJackIsGood) {
++                AudioInputPtr ai = g.ai;
++                AudioOutputPtr ao = g.ao;
++                JackAudioInput *jai = (JackAudioInput*)(ai.get());
++                JackAudioOutput *jao = (JackAudioOutput*)(ao.get());
++
++                if (jai && jai->bRunning && jai->iMicChannels > 0 && !jai->isFinished()) {
++                        void* input = jack_port_get_buffer(jas->in_port, nframes);
++                        if ((float*)input != 0)
++                            jai->addMic(input, nframes);
++                }
++
++                if (jao && jao->bRunning && jao->iChannels > 0 && !jao->isFinished()) {
++                        jack_default_audio_sample_t* output = (jack_default_audio_sample_t*)jack_port_get_buffer(jas->out_port, nframes);
++                        memset(output, 0, sizeof(jack_default_audio_sample_t)*nframes); //TEST
++                        jao->mix(output, nframes);
++                }
++        }
++
++        return 0;
++}
++
++int JackAudioSystem::srate_callback(jack_nframes_t frames, void *arg)
++{
++        JackAudioSystem *jas = (JackAudioSystem*)arg;
++        jas->iSampleRate = frames;
++        return 0;
++}
++
++void JackAudioSystem::shutdown_callback(void *arg)
++{
++        JackAudioSystem *jas = (JackAudioSystem*)arg;
++        jas->bJackIsGood = false;
++}
++
++JackAudioInputRegistrar::JackAudioInputRegistrar() : AudioInputRegistrar(QLatin1String("JACK"), 10) {
++}
++
++AudioInput *JackAudioInputRegistrar::create() {
++        return new JackAudioInput();
++}
++
++const QList<audioDevice> JackAudioInputRegistrar::getDeviceChoices() {
++        QList<audioDevice> qlReturn;
++
++        QStringList qlInputDevs = jasys->qhInput.keys();
++        qSort(qlInputDevs);
++
++        foreach(const QString &dev, qlInputDevs) {
++                qlReturn << audioDevice(jasys->qhInput.value(dev), dev);
++        }
++
++        return qlReturn;
++}
++
++void JackAudioInputRegistrar::setDeviceChoice(const QVariant &choice, Settings &s) {
++        Q_UNUSED(choice);
++        Q_UNUSED(s);
++}
++
++bool JackAudioInputRegistrar::canEcho(const QString &osys) const {
++        Q_UNUSED(osys);
++        return false;
++}
++
++JackAudioOutputRegistrar::JackAudioOutputRegistrar() : AudioOutputRegistrar(QLatin1String("JACK"), 10) {
++}
++
++AudioOutput *JackAudioOutputRegistrar::create() {
++        return new JackAudioOutput();
++}
++
++const QList<audioDevice> JackAudioOutputRegistrar::getDeviceChoices() {
++        QList<audioDevice> qlReturn;
++
++        QStringList qlOutputDevs = jasys->qhOutput.keys();
++        qSort(qlOutputDevs);
++
++        foreach(const QString &dev, qlOutputDevs) {
++                qlReturn << audioDevice(jasys->qhOutput.value(dev), dev);
++        }
++
++        return qlReturn;
++}
++
++void JackAudioOutputRegistrar::setDeviceChoice(const QVariant &choice, Settings &s) {
++        Q_UNUSED(choice);
++        Q_UNUSED(s);
++}
++
++JackAudioInput::JackAudioInput() {
++        bRunning = true;
++        iMicChannels = 0;
++};
++
++JackAudioInput::~JackAudioInput() {
++        bRunning = false;
++        iMicChannels = 0;
++        qmMutex.lock();
++        qwcWait.wakeAll();
++        qmMutex.unlock();
++        wait();
++}
++
++void JackAudioInput::run() {
++        if (jasys && jasys->bJackIsGood) {
++            iMicFreq = jasys->iSampleRate;
++            iMicChannels = 1;
++            eMicFormat = SampleFloat;
++            initializeMixer();
++        }
++
++        qmMutex.lock();
++        while (bRunning)
++                qwcWait.wait(&qmMutex);
++        qmMutex.unlock();
++}
++
++JackAudioOutput::JackAudioOutput() {
++        bRunning = true;
++        iChannels = 0;
++}
++
++JackAudioOutput::~JackAudioOutput() {
++        bRunning = false;
++        iChannels = 0;
++        qmMutex.lock();
++        qwcWait.wakeAll();
++        qmMutex.unlock();
++        wait();
++}
++
++void JackAudioOutput::run() {
++        if (jasys && jasys->bJackIsGood) {
++            unsigned int chanmasks[32];
++
++            chanmasks[0] = SPEAKER_FRONT_LEFT;
++            chanmasks[1] = SPEAKER_FRONT_RIGHT;
++
++            eSampleFormat = SampleFloat;
++            iMixerFreq = jasys->iSampleRate;
++            iChannels = 1;
++            initializeMixer(chanmasks);
++        }
++
++        qmMutex.lock();
++        while (bRunning)
++                qwcWait.wait(&qmMutex);
++        qmMutex.unlock();
++}
+diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/JackAudio.h mumble-1.2.2/src/mumble/JackAudio.h
+--- mumble-1.2.2.orig/src/mumble/JackAudio.h	1970-01-01 01:00:00.000000000 +0100
++++ mumble-1.2.2/src/mumble/JackAudio.h	2011-01-26 06:03:58.000000000 +0000
+@@ -0,0 +1,97 @@
++/* Copyright (C) 2011, Benjamin Jemlich <pcgod@users.sourceforge.net>
++   Copyright (C) 2011, Filipe Coelho <falktx@gmail.com>
++
++   All rights reserved.
++
++   Redistribution and use in source and binary forms, with or without
++   modification, are permitted provided that the following conditions
++   are met:
++
++   - Redistributions of source code must retain the above copyright notice,
++     this list of conditions and the following disclaimer.
++   - Redistributions in binary form must reproduce the above copyright notice,
++     this list of conditions and the following disclaimer in the documentation
++     and/or other materials provided with the distribution.
++   - Neither the name of the Mumble Developers nor the names of its
++     contributors may be used to endorse or promote products derived from this
++     software without specific prior written permission.
++
++   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
++   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
++   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
++   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
++   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
++   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++*/
++
++#ifndef _JACKAUDIO_H
++#define _JACKAUDIO_H
++
++#include "AudioInput.h"
++#include "AudioOutput.h"
++#include <jack/jack.h>
++
++class JackAudioOutput;
++class JackAudioInput;
++
++class JackAudioSystem : public QObject {
++        private:
++                Q_OBJECT
++                Q_DISABLE_COPY(JackAudioSystem)
++        protected:
++                jack_client_t* client;
++                jack_port_t* in_port;
++                jack_port_t* out_port;
++
++                static int process_callback(jack_nframes_t nframes, void *arg);
++                static int srate_callback(jack_nframes_t frames, void *arg);
++                static void shutdown_callback(void *arg);
++        public:
++                QHash<QString, QString> qhInput;
++                QHash<QString, QString> qhOutput;
++                bool bJackIsGood;
++                int iSampleRate;
++                QMutex qmWait;
++                QWaitCondition qwcWait;
++
++                void init_jack();
++                void close_jack();
++
++                JackAudioSystem();
++                ~JackAudioSystem();
++};
++
++class JackAudioInput : public AudioInput {
++                friend class JackAudioSystem;
++        private:
++                Q_OBJECT
++                Q_DISABLE_COPY(JackAudioInput)
++        protected:
++                QMutex qmMutex;
++                QWaitCondition qwcWait;
++        public:
++                JackAudioInput();
++                ~JackAudioInput();
++                void run();
++};
++
++class JackAudioOutput : public AudioOutput {
++                friend class JackAudioSystem;
++        private:
++                Q_OBJECT
++                Q_DISABLE_COPY(JackAudioOutput)
++        protected:
++                QMutex qmMutex;
++                QWaitCondition qwcWait;
++        public:
++                JackAudioOutput();
++                ~JackAudioOutput();
++                void run();
++};
++
++#endif
+diff -U 3 -H -d -r -N -- mumble-1.2.2.orig/src/mumble/mumble.pro mumble-1.2.2/src/mumble/mumble.pro
+--- mumble-1.2.2.orig/src/mumble/mumble.pro	2010-02-09 16:34:51.000000000 +0000
++++ mumble-1.2.2/src/mumble/mumble.pro	2011-01-26 01:45:55.000000000 +0000
+@@ -93,11 +93,17 @@
+ unix {
+   HAVE_PULSEAUDIO=$$system(pkg-config --modversion --silence-errors libpulse)
+   HAVE_PORTAUDIO=$$system(pkg-config --modversion --silence-errors portaudio-2.0)
++  HAVE_JACKAUDIO=$$system(pkg-config --modversion --silence-errors jack)
+ 
+   !isEmpty(HAVE_PORTAUDIO):!CONFIG(no-portaudio) {
+     CONFIG *= portaudio
+   }
+ 
++  !isEmpty(HAVE_JACKAUDIO):!CONFIG(no-jackaudio) {
++    CONFIG -= portaudio
++    CONFIG *= jackaudio
++  }
++
+   !isEmpty(HAVE_PULSEAUDIO):!CONFIG(no-pulseaudio) {
+     CONFIG -= portaudio
+     CONFIG *= pulseaudio
+@@ -110,6 +116,13 @@
+     QMAKE_CXXFLAGS_DEBUG *= -I../../speex/include -I../../speexbuild
+   }
+ 
++  jackaudio {
++        DEFINES *= USE_JACKAUDIO
++        PKGCONFIG *= jack
++        HEADERS *= JackAudio.h
++        SOURCES *= JackAudio.cpp
++  }
++
+   CONFIG *= link_pkgconfig
+ 
+   PKGCONFIG *= openssl sndfile
diff --git a/nixpkgs/pkgs/applications/networking/mumble/overlay.nix b/nixpkgs/pkgs/applications/networking/mumble/overlay.nix
new file mode 100644
index 000000000000..185672a21f8c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mumble/overlay.nix
@@ -0,0 +1,28 @@
+{ 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/libmumble.so.1
+    ${lib.optionalString (mumble_i686 != null) ''
+      mkdir -p $out/lib32
+      ln -s ${mumble_i686}/lib/libmumble.so.1.* $out/lib32/libmumble.so.1
+    ''}
+    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/nixpkgs/pkgs/applications/networking/ndppd/default.nix b/nixpkgs/pkgs/applications/networking/ndppd/default.nix
new file mode 100644
index 000000000000..a5eb9021048e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ndppd/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, fetchurl, gzip, ... }:
+
+let
+  serviceFile = fetchurl {
+    url = "https://raw.githubusercontent.com/DanielAdolfsson/ndppd/f37e8eb33dc68b3385ecba9b36a5efd92755580f/ndppd.service";
+    sha256 = "1zf54pzjfj9j9gr48075njqrgad4myd3dqmhvzxmjy4gjy9ixmyh";
+  };
+in stdenv.mkDerivation rec {
+  name = "ndppd-${version}";
+  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
+
+    mkdir -p $out/lib/systemd/system
+    # service file needed for our module is not in release yet
+    substitute ${serviceFile} $out/lib/systemd/system/ndppd.service \
+      --replace /usr/sbin/ndppd $out/sbin/ndppd
+  '';
+
+  meta = {
+    description = "A daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
+    homepage = https://github.com/DanielAdolfsson/ndppd;
+    license = stdenv.lib.licenses.gpl3;
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.fadenb ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/netperf/default.nix b/nixpkgs/pkgs/applications/networking/netperf/default.nix
new file mode 100644
index 000000000000..421a3cfbe3b7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/netperf/default.nix
@@ -0,0 +1,29 @@
+{ libsmbios, stdenv, autoreconfHook, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "netperf-20180504";
+
+  src = fetchFromGitHub {
+    owner = "HewlettPackard";
+    repo = "netperf";
+    rev = "c0a0d9f31f9940abf375a41b43a343cdbf87caab";
+    sha256 = "0wfj9kkhar6jb5639f5wxpwsraxw4v9yzg71rsdidvj5fyncjjq2";
+  };
+
+  buildInputs = [ 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/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
new file mode 100644
index 000000000000..7f7b03f71d2d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, pkgconfig, intltool, python3Packages, wrapGAppsHook
+, glib, libxml2, libxslt, sqlite, libsoup , webkitgtk, json-glib, gst_all_1
+, libnotify, gtk3, gsettings-desktop-schemas, libpeas, dconf, librsvg
+, gobject-introspection, glib-networking, hicolor-icon-theme
+}:
+
+let
+  pname = "liferea";
+  version = "1.12.4";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
+    sha256 = "12852qp174nsg770cry7y257vfzl53hpy46h5agaimrfsc41mgln";
+  };
+
+  nativeBuildInputs = [ wrapGAppsHook python3Packages.wrapPython intltool pkgconfig ];
+
+  buildInputs = [
+    glib gtk3 webkitgtk libxml2 libxslt sqlite libsoup gsettings-desktop-schemas
+    libpeas gsettings-desktop-schemas json-glib dconf gobject-introspection
+    librsvg glib-networking libnotify hicolor-icon-theme
+  ] ++ (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; [ vcunat 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/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix
new file mode 100644
index 000000000000..9d51a76f5360
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix
@@ -0,0 +1,45 @@
+{ spellChecking ? true
+, stdenv, fetchurl, pkgconfig, gtk3, gtkspell3 ? null
+, perl, gmime2, gettext, intltool, itstool, libxml2, dbus-glib, libnotify, gnutls
+, makeWrapper, gnupg
+, gnomeSupport ? true, gnome3, libsecret
+}:
+
+assert spellChecking -> gtkspell3 != null;
+
+let version = "0.145"; in
+
+stdenv.mkDerivation {
+  name = "pan-${version}";
+
+  src = fetchurl {
+    url = "http://pan.rebelbase.com/download/releases/${version}/source/pan-${version}.tar.bz2";
+    sha256 = "1b4wamv33hprghcjk903bpvnd233yxyrm18qnh13alc8h1553nk8";
+  };
+
+  nativeBuildInputs = [ pkgconfig gettext intltool itstool libxml2 makeWrapper ];
+  buildInputs = [ gtk3 gmime2 libnotify gnutls ]
+    ++ stdenv.lib.optional spellChecking gtkspell3
+    ++ stdenv.lib.optionals gnomeSupport [ libsecret gnome3.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 = {
+    description = "A GTK+-based Usenet newsreader good at both text and binaries";
+    homepage = http://pan.rebelbase.com/;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix
new file mode 100644
index 000000000000..b0bc5edba844
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/quiterss/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, qmake, pkgconfig, makeWrapper
+, qtbase, qttools, qtwebkit, sqlite
+}:
+
+stdenv.mkDerivation rec {
+  name = "quiterss-${version}";
+  version = "0.18.12";
+
+  src = fetchFromGitHub {
+    owner = "QuiteRSS";
+    repo = "quiterss";
+    rev = "${version}";
+    sha256 = "0xav9qr8n6310636nfbgx4iix65fs3ya5rz2isxsf38bkjm7r3pa";
+  };
+
+  nativeBuildInputs = [ qmake pkgconfig makeWrapper ];
+  buildInputs = [ qtbase qttools qtwebkit sqlite.dev ];
+
+  postFixup = ''
+    wrapProgram $out/bin/quiterss \
+      --prefix QT_PLUGIN_PATH : "${qtbase}/${qtbase.qtPluginPrefix}"
+  '';
+
+  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;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix
new file mode 100644
index 000000000000..9f775f0db656
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/slrn/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl
+, slang, ncurses, openssl }:
+
+let version = "1.0.2"; in
+
+stdenv.mkDerivation {
+  name = "slrn-${version}";
+
+  src = fetchurl {
+    url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.gz";
+    sha256 = "1gn6m2zha2nnnrh9lz3m3nrqk6fgfij1wc53pg25j7sdgvlziv12";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
new file mode 100644
index 000000000000..715e4ad74afd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchgit, cmake, pkgconfig, qtbase, qtwebkit, qtkeychain, qttools, sqlite
+, inotify-tools, makeWrapper, openssl_1_1, pcre, qtwebengine, libsecret
+}:
+
+stdenv.mkDerivation rec {
+  name = "nextcloud-client-${version}";
+  version = "2.5.1";
+
+  src = fetchgit {
+    url = "git://github.com/nextcloud/desktop.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "0r6jj3vbmwh7ipv83c8w1b25pbfq3mzrjgcijdw2gwfxwx9pfq7d";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake makeWrapper ];
+
+  buildInputs = [ qtbase qtwebkit qtkeychain qttools qtwebengine sqlite openssl_1_1.out pcre inotify-tools ];
+
+  enableParallelBuilding = true;
+
+  NIX_LDFLAGS = "${openssl_1_1.out}/lib/libssl.so ${openssl_1_1.out}/lib/libcrypto.so";
+
+  cmakeFlags = [
+    "-UCMAKE_INSTALL_LIBDIR"
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DOPENSSL_LIBRARIES=${openssl_1_1.out}/lib"
+    "-DOPENSSL_INCLUDE_DIR=${openssl_1_1.dev}/include"
+    "-DINOTIFY_LIBRARY=${inotify-tools}/lib/libinotifytools.so"
+    "-DINOTIFY_INCLUDE_DIR=${inotify-tools}/include"
+  ];
+
+  postInstall = ''
+    sed -i 's/\(Icon.*\)=nextcloud/\1=Nextcloud/g' \
+    $out/share/applications/nextcloud.desktop
+
+    wrapProgram "$out/bin/nextcloud" \
+      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libsecret ]}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Nextcloud themed desktop client";
+    homepage = https://nextcloud.com;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ caugner ma27 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/nload/default.nix b/nixpkgs/pkgs/applications/networking/nload/default.nix
new file mode 100644
index 000000000000..2c16fabc5c41
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/nload/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, fetchpatch, ncurses }:
+
+stdenv.mkDerivation rec {
+  version = "0.7.4";
+  name = "nload-${version}";
+
+  src = fetchurl {
+    url = "http://www.roland-riegel.de/nload/${name}.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/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix b/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix
new file mode 100644
index 000000000000..8795f32e829d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/nntp-proxy/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, libconfig, pkgconfig, libevent, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "nntp-proxy-${version}";
+  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/nixpkgs/pkgs/applications/networking/offrss/default.nix b/nixpkgs/pkgs/applications/networking/offrss/default.nix
new file mode 100644
index 000000000000..d499916c7b6c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/offrss/default.nix
@@ -0,0 +1,33 @@
+{ 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 = 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 = {
+    homepage = http://vicerveza.homeunix.net/~viric/cgi-bin/offrss;
+    description = "Offline RSS/Atom reader";
+    license="AGPLv3+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/ostinato/default.nix b/nixpkgs/pkgs/applications/networking/ostinato/default.nix
new file mode 100644
index 000000000000..962f10a99c01
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ostinato/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub, fetchurl, qmake4Hook, makeDesktopItem
+, qt4, protobuf, libpcap, wireshark, gzip, diffutils, gawk
+}:
+
+stdenv.mkDerivation rec {
+  name    = "ostinato-${version}";
+  version = "0.9";
+
+  src = fetchFromGitHub  {
+    owner  = "pstavirs";
+    repo   = "ostinato";
+    rev    = "v${version}";
+    sha256 = "109gxj6djdsk7rp1nxpx39kfi75xfl9p9qgffh1cpcdpbsbvq5bx";
+  };
+
+  ostinatoIcon = fetchurl {
+    url = "https://ostinato.org/images/site-logo.png";
+    sha256 = "f5c067823f2934e4d358d76f65a343efd69ad783a7aeabd7ab4ce3cd03490d70";
+  };
+
+  buildInputs = [ qt4 protobuf libpcap ];
+
+  nativeBuildInputs = [ qmake4Hook ];
+
+  patches = [ ./drone_ini.patch ];
+
+  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
+    '';
+  };
+
+  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 stdenv.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/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch b/nixpkgs/pkgs/applications/networking/ostinato/drone_ini.patch
new file mode 100644
index 000000000000..5818f4e94c30
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/owamp/default.nix b/nixpkgs/pkgs/applications/networking/owamp/default.nix
new file mode 100644
index 000000000000..9ed532acfe1a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/owamp/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchFromGitHub
+, autoconf, automake, mandoc }:
+
+stdenv.mkDerivation rec {
+  name = "owamp-${version}";
+  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/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
new file mode 100644
index 000000000000..c142661fd033
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, cmake, pkgconfig, qtbase, qtwebkit, qtkeychain, sqlite }:
+
+stdenv.mkDerivation rec {
+  name = "owncloud-client-${version}";
+  version = "2.4.3";
+
+  src = fetchurl {
+    url = "https://download.owncloud.com/desktop/stable/owncloudclient-${version}.tar.xz";
+    sha256 = "1gz6xg1vm054ksrsakzfkzxgpskm0xkhsqwq0fj3i2kas09zzczk";
+  };
+
+  patches = [ ./find-sql.patch ];
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ qtbase qtwebkit qtkeychain sqlite ];
+
+  cmakeFlags = [
+    "-UCMAKE_INSTALL_LIBDIR"
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/owncloud-client/find-sql.patch b/nixpkgs/pkgs/applications/networking/owncloud-client/find-sql.patch
new file mode 100644
index 000000000000..44dea6414e92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/owncloud-client/find-sql.patch
@@ -0,0 +1,12 @@
+*** a/cmake/modules/QtVersionAbstraction.cmake
+--- b/cmake/modules/QtVersionAbstraction.cmake
+***************
+*** 8,13 ****
+--- 8,14 ----
+  find_package(Qt5Core REQUIRED)
+  find_package(Qt5Network REQUIRED)
+  find_package(Qt5Xml REQUIRED)
++ find_package(Qt5Sql REQUIRED)
+  find_package(Qt5Concurrent REQUIRED)
+  if(UNIT_TESTING)
+      find_package(Qt5Test REQUIRED)
diff --git a/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix
new file mode 100644
index 000000000000..f58f7e04e00b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/deluge/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, fetchpatch, intltool, libtorrentRasterbar, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "deluge-${version}";
+  version = "1.3.15";
+
+  src = fetchurl {
+    url = "http://download.deluge-torrent.org/source/${name}.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
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix b/nixpkgs/pkgs/applications/networking/p2p/eiskaltdcpp/default.nix
new file mode 100644
index 000000000000..db30da82bdb2
--- /dev/null
+++ b/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 {
+  name = "eiskaltdcpp-${version}";
+  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/nixpkgs/pkgs/applications/networking/p2p/firestr/default.nix b/nixpkgs/pkgs/applications/networking/p2p/firestr/default.nix
new file mode 100644
index 000000000000..56eb9c354275
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/firestr/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, cmake, boost, botan, snappy, libopus, libuuid
+, libXScrnSaver, openssl, qtbase, qtmultimedia }:
+
+stdenv.mkDerivation {
+  name = "firestr-0.8";
+
+  src = fetchFromGitHub {
+    owner  = "mempko";
+    repo   = "firestr";
+    rev    = "f888890f71d49953d05bccdd27a1c4f6690e165c";
+    sha256 = "0s2kdi8rw3i3f8gbiy0ykyi6xj5n8p80m0d1i86mhh8jpagvbfzb";
+  };
+
+  buildInputs = [ cmake boost botan snappy libopus libuuid qtbase qtmultimedia
+                  libXScrnSaver openssl ];
+
+  patches = ./return.patch;
+
+  postPatch = ''
+      substituteInPlace CMakeLists.txt \
+        --replace "set(Boost_USE_STATIC_LIBS on)" "" \
+        --replace "/usr/include/botan" "${botan}/include/botan" \
+        --replace "libopus.a"       "libopus.so" \
+        --replace "libsnappy.a"     "libsnappy.so" \
+        --replace "libbotan-1.10.a" "libbotan-1.10.so.0"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Grass computing platform";
+    homepage = http://firestr.com/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.ehmry ];
+    platforms = platforms.linux;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/firestr/return.patch b/nixpkgs/pkgs/applications/networking/p2p/firestr/return.patch
new file mode 100644
index 000000000000..c3e469ae92b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/firestr/return.patch
@@ -0,0 +1,13 @@
+diff --git a/src/message/master_post.cpp b/src/message/master_post.cpp
+index c3a5ea9..7c821b9 100644
+--- a/src/message/master_post.cpp
++++ b/src/message/master_post.cpp
+@@ -56,7 +56,7 @@ namespace fire
+ 
+         metadata::encryption_type to_message_encryption_type(sc::encryption_type s)
+         {
+-            metadata::encryption_type r;
++            metadata::encryption_type r = metadata::encryption_type::asymmetric;
+             switch(s)
+             {
+                 case sc::encryption_type::plaintext: r = metadata::encryption_type::plaintext; break;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix
new file mode 100644
index 000000000000..d674c70e4c2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/freenet/default.nix
@@ -0,0 +1,79 @@
+{ 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 {
+    name = "freenet-jars-${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 = [ stdenv.lib.maintainers.doublec ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper b/nixpkgs/pkgs/applications/networking/p2p/freenet/freenetWrapper
new file mode 100755
index 000000000000..f3106265801f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/default.nix
new file mode 100644
index 000000000000..40ff91e792b4
--- /dev/null
+++ b/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 = http://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/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
new file mode 100644
index 000000000000..5305ca10383a
--- /dev/null
+++ b/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.7.4";
+  name = "frostwire-${version}";
+
+  src = fetchurl {
+    url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.noarch.tar.gz";
+    sha256 = "03vxg0qas4mz5ggrmi396nkz44x1kgq8bfbhbr9mnal9ay9qmi8m";
+  };
+
+  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 = http://www.frostwire.com/;
+    description = "BitTorrent Client and Cloud File Downloader";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ gavin ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
new file mode 100644
index 000000000000..8e1777b0ce79
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor
+, libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring
+, makeWrapper, ncurses, pkgconfig, libxml2, sqlite, zlib
+, libpulseaudio, libopus, libogg }:
+
+stdenv.mkDerivation rec {
+  name = "gnunet-0.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/gnunet/${name}.tar.gz";
+    sha256 = "04wxzm3wkgqbn42b8ksr4cx6m5cckyig5cls1adh0nwdczwvnp7n";
+  };
+
+  buildInputs = [
+    adns curl gettext gmp gnutls libextractor libgcrypt libgnurl libidn
+    libmicrohttpd libtool libunistring libxml2 makeWrapper ncurses
+    pkgconfig sqlite zlib libpulseaudio libopus libogg
+  ];
+
+  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"
+
+    # Ensure NSS installation works fine
+    configureFlags="$configureFlags --with-nssdir=$out/lib"
+    patchShebangs src/gns/nss/install-nss-plugin.sh
+
+    sed -ie 's|@LDFLAGS@|@LDFLAGS@ $(Z_LIBS)|g' \
+      src/regex/Makefile.in \
+      src/fs/Makefile.in
+  '';
+
+  doCheck = false;
+
+  /* FIXME: Tests must be run this way, but there are still a couple of
+     failures.
+
+  postInstall =
+    '' 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.gpl2Plus;
+
+    maintainers = with maintainers; [ vrthra ];
+    platforms = platforms.gnu ++ platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix
new file mode 100644
index 000000000000..9428b2764585
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix
@@ -0,0 +1,92 @@
+{ stdenv, fetchgit, libextractor, libmicrohttpd, libgcrypt
+, zlib, gmp, curl, libtool, adns, sqlite, pkgconfig
+, libxml2, ncurses, gettext, libunistring, libidn
+, makeWrapper, autoconf, automake, texinfo, which
+, withVerbose ? false }:
+
+let
+  rev = 	"ce2864cfaa27e55096b480bf35db5f8cee2a5e7e";
+in
+stdenv.mkDerivation rec {
+  name = "gnunet-git-${rev}";
+
+  src = fetchgit {
+    url =  https://gnunet.org/git/gnunet.git;
+    inherit rev;
+    sha256 = "0gbw920m9v4b3425c0d1h7drgl2m1fni1bwjn4fwqnyz7kdqzsgl";
+  };
+
+  buildInputs = [
+    libextractor libmicrohttpd libgcrypt gmp curl libtool
+    zlib adns sqlite libxml2 ncurses libidn
+    pkgconfig gettext libunistring makeWrapper
+    autoconf automake texinfo which
+  ];
+
+  configureFlags = stdenv.lib.optional withVerbose "--enable-logging=verbose ";
+
+  preConfigure = ''
+    # Brute force: since nix-worker chroots don't provide
+    # /etc/{resolv.conf,hosts}, replace all references to `localhost'
+    # by their IPv4 equivalent.
+    for i in $(find . \( -name \*.c -or -name \*.conf \) \
+                    -exec grep -l '\<localhost\>' {} \;)
+    do
+      echo "$i: substituting \`127.0.0.1' to \`localhost'..."
+      sed -i "$i" -e's/\<localhost\>/127.0.0.1/g'
+    done
+
+    # Make sure the tests don't rely on `/tmp', for the sake of chroot
+    # builds.
+    for i in $(find . \( -iname \*test\*.c -or -name \*.conf \) \
+                    -exec grep -l /tmp {} \;)
+    do
+      echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..."
+      substituteInPlace "$i" --replace "/tmp" "$TMPDIR"
+    done
+
+    # Ensure NSS installation works fine
+    configureFlags="$configureFlags --with-nssdir=$out/lib"
+
+    sh contrib/pogen.sh
+    sh bootstrap
+  '';
+
+  doCheck = false;
+
+  /* FIXME: Tests must be run this way, but there are still a couple of
+     failures.
+
+  postInstall =
+    '' export GNUNET_PREFIX="$out"
+       export PATH="$out/bin:$PATH"
+       make -k check
+    '';
+  */
+
+  meta = {
+    description = "GNUnet, 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 = stdenv.lib.licenses.gpl2Plus;
+
+    maintainers = with stdenv.lib.maintainers; [ ];
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix
new file mode 100644
index 000000000000..c66c3ca05a4e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/ktorrent/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, fetchpatch, cmake
+, extra-cmake-modules, qtbase, qtscript
+, karchive, kcrash, kdnssd, ki18n, kio, knotifications, knotifyconfig
+, kdoctools, kross, kcmutils, kwindowsystem
+, libktorrent, taglib, libgcrypt, kplotting
+}:
+
+stdenv.mkDerivation rec {
+  name = "ktorrent-${version}";
+  version = "${libktorrent.mainVersion}.0";
+
+  src = fetchurl {
+    url    = "mirror://kde/stable/ktorrent/${libktorrent.mainVersion}/${name}.tar.xz";
+    sha256 = "18w6qh09k84qpzaxxb76a4g59k4mx5wk897vqp1wwv80g0pqhmrw";
+  };
+
+  nativeBuildInputs = [ cmake kdoctools extra-cmake-modules ];
+
+  buildInputs = [
+    qtbase qtscript
+    karchive kcrash kdnssd ki18n kio knotifications knotifyconfig kross kcmutils kwindowsystem
+    libktorrent taglib libgcrypt kplotting
+  ];
+
+  patches = [
+    # Fix build with CMake 3.11
+    (fetchpatch {
+      url = "https://cgit.kde.org/ktorrent.git/patch/?id=672c5076de7e3a526d9bdbb484a69e9386bc49f8";
+      sha256 = "1cn4rnbhadrsxqx50fawpd747azskavbjraygr6s11rh1wbfrxid";
+    })
+
+    # Fix build against Qt 5.11
+    (fetchpatch {
+      url = "https://cgit.kde.org/ktorrent.git/patch/?id=7876857d204188016a135a25938d9f8530fba4e8";
+      sha256 = "1wnmfzkhf6y7fd0z2djwphs6i9lsg7fcrj8fqmbyi0j57dvl9gxl";
+    })
+    (fetchpatch {
+      url = "https://cgit.kde.org/ktorrent.git/patch/?id=36d112e56e56541d439326a267eb906da8b3ee60";
+      sha256 = "1d41pqniljhwqs6awa644s6ks0zwm9sr0hpfygc63wyxnpcrsw2y";
+    })
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
new file mode 100644
index 000000000000..629e748fcacf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ocamlPackages, zlib, bzip2, ncurses, file, gd, libpng, libjpeg }:
+
+stdenv.mkDerivation (rec {
+  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/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix b/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
new file mode 100644
index 000000000000..c56e39826a66
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/ncdc/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkgconfig, glib, gnutls }:
+
+stdenv.mkDerivation rec {
+  name = "ncdc-${version}";
+  version = "1.20";
+
+  src = fetchurl {
+    url = "https://dev.yorhel.nl/download/ncdc-${version}.tar.gz";
+    sha256 = "0ccn7dqbqpqsbglqyalz32c20rjvf1pw0zr88jyvd2b2vxbqi6ca";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix b/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix
new file mode 100644
index 000000000000..46c482818f8b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
new file mode 100644
index 000000000000..81c493fedcf1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, 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 stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "qbittorrent-${version}";
+  version = "4.1.5";
+
+  src = fetchFromGitHub {
+    owner = "qbittorrent";
+    repo = "qbittorrent";
+    rev = "release-${version}";
+    sha256 = "09zcygaxfv9g6av0vsvlyzv4v65wvj766xyfx31yz5ig3xan6ak1";
+  };
+
+  # 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/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix b/nixpkgs/pkgs/applications/networking/p2p/retroshare/default.nix
new file mode 100644
index 000000000000..2d523cc07dd9
--- /dev/null
+++ b/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
+, qtmultimedia, qtx11extras, qttools }:
+
+stdenv.mkDerivation rec {
+  name = "retroshare-${version}";
+  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
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix b/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix
new file mode 100644
index 000000000000..104131e47752
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/soulseekqt/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, fetchurl
+, dbus
+, zlib, fontconfig
+, qtbase, qtmultimedia
+, libjson, libgpgerror
+, libX11, libxcb, libXau, libXdmcp, freetype, libbsd
+, pythonPackages, squashfsTools, desktop-file-utils
+}:
+
+with stdenv.lib;
+let
+  libPath = makeLibraryPath
+    [ stdenv.cc.cc qtbase qtmultimedia dbus libX11 zlib libX11 libxcb libXau libXdmcp freetype fontconfig libbsd libjson libgpgerror];
+
+  version = "2018-1-30";
+
+  mainbin = "SoulseekQt-" + (version) +"-"+ (if stdenv.is64bit then "64bit" else "32bit");
+  srcs = {
+    "x86_64-linux" = fetchurl {
+      url = "https://www.dropbox.com/s/0vi87eef3ooh7iy/${mainbin}.tgz";
+      sha256 = "0d1cayxr1a4j19bc5a3qp9pg22ggzmd55b6f5av3lc6lvwqqg4w6";
+    };
+  };
+
+in stdenv.mkDerivation rec {
+
+  name = "soulseekqt-${version}";
+  inherit version;
+  src = srcs."${stdenv.hostPlatform.system}" or (throw "unsupported system: ${stdenv.hostPlatform.system}");
+
+  dontBuild = true;
+
+  buildInputs = [ pythonPackages.binwalk squashfsTools desktop-file-utils ];
+
+  # avoid usage of appimage's runner option --appimage-extract 
+  unpackCmd = ''
+    export HOME=$(pwd) # workaround for binwalk
+    appimage=$(tar xvf $curSrc) && binwalk --quiet \
+       $appimage -D 'squashfs:squashfs:unsquashfs %e'
+    '';
+  
+  patchPhase = ''
+    cd squashfs-root/
+    binary="$(readlink AppRun)"
+  
+    # fixup desktop file
+    desktop-file-edit --set-key Exec --set-value $binary default.desktop
+    desktop-file-edit --set-key Comment --set-value "${meta.description}" default.desktop
+    desktop-file-edit --set-key Categories --set-value Network default.desktop   
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,share/applications,share/icons/}
+    cp default.desktop $out/share/applications/$binary.desktop
+    cp soulseek.png $out/share/icons/
+    cp $binary $out/bin/
+  '';
+
+  fixupPhase = ''
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+             --set-rpath ${libPath} \
+             $out/bin/$binary
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Official Qt SoulSeek client";
+    homepage = http://www.soulseekqt.net;
+    license = licenses.unfree;
+    maintainers = [ maintainers.genesis ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
new file mode 100644
index 000000000000..2c257a1294ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  name = "synapse-bt-unstable-${version}";
+  version = "2018-06-04";
+
+  src = fetchFromGitHub {
+    owner = "Luminarys";
+    repo = "synapse";
+    rev = "ec8f23a14af21426ab0c4f8953dd954f747850ab";
+    sha256 = "0d1rrwnk333zz9g8s40i75xgdkpz6a1j01ajsh32yvzvbi045zkw";
+  };
+
+  cargoSha256 = "1psrmgf6ddzqwx7gf301rx84asfnvxpsvkx2fan453v65819k960";
+
+  buildInputs = [ pkgconfig openssl ] ++ stdenv.lib.optional stdenv.isDarwin 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 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
new file mode 100644
index 000000000000..13d44655df84
--- /dev/null
+++ b/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 {
+  name = "tixati-${version}";
+  version = "2.58";
+
+  src = fetchurl {
+    url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
+    sha256 = "077z5i0grkxkgw2npylv4r897434k2pr03brqx5hjpjw3797r141";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
new file mode 100644
index 000000000000..f047b630ec40
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/transgui/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchsvn, pkgconfig, makeDesktopItem, unzip, fpc, lazarus,
+libX11, glib, gtk2, gdk_pixbuf, pango, atk, cairo, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "transgui-5.0.1-svn-r${revision}";
+  revision = "988";
+
+  src = fetchsvn {
+    url = "https://svn.code.sf.net/p/transgui/code/trunk/";
+    rev = revision;
+    sha256 = "1i6ysxs6d2wsmqi6ha10rl3n562brmhizlanhcfad04i53y8pyxf";
+  };
+
+  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/
+  '';
+
+  patches = [
+    ./r988-compile-fix.patch
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/p2p/transgui/r988-compile-fix.patch b/nixpkgs/pkgs/applications/networking/p2p/transgui/r988-compile-fix.patch
new file mode 100644
index 000000000000..4b070d0cbe8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/transgui/r988-compile-fix.patch
@@ -0,0 +1,22 @@
+diff --git a/utils.pas b/utils.pas
+index eb8b828..1ff2440 100644
+--- a/utils.pas
++++ b/utils.pas
+@@ -100,7 +100,7 @@ uses
+ {$ifdef CALLSTACK}
+   lineinfo2,
+ {$endif CALLSTACK}
+-  LazFileUtils, LazUtf8, StdCtrls, Graphics;
++  LazFileUtils, LazUtf8, StdCtrls, Graphics, FileUtil;
+ 
+ {$ifdef windows}
+ function FileOpenUTF8(Const FileName : string; Mode : Integer) : THandle;
+@@ -235,7 +235,7 @@ end;
+ 
+ function ParamStrUTF8(Param: Integer): utf8string;
+ begin
+-  Result:=FileUtil.ParamStrUTF8(Param);
++  Result:=LazUtf8.ParamStrUTF8(Param);
+ end;
+ 
+ function ParamCount: integer;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix
new file mode 100644
index 000000000000..fc803fa2745c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-cli/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+stdenv.mkDerivation rec {
+  name = "transmission-remote-cli-${version}";
+  version = "1.7.1";
+
+  src = fetchurl {
+    url = "https://github.com/fagga/transmission-remote-cli/archive/v${version}.tar.gz";
+    sha256 = "1y0hkpcjf6jw9xig8yf484hbhy63nip0pkchx401yxj81m25l4z9";
+  };
+
+  buildInputs = with pythonPackages; [ python wrapPython ];
+
+  installPhase = ''
+    install -D transmission-remote-cli $out/bin/transmission-remote-cli
+    install -D transmission-remote-cli.1 $out/share/man/man1/transmission-remote-cli.1
+    wrapPythonPrograms
+  '';
+
+  meta = {
+    description = "Curses interface for the Transmission BitTorrent daemon";
+    homepage = https://github.com/fagga/transmission-remote-cli;
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
new file mode 100644
index 000000000000..fdd00270d0eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, autoconf, automake, libtool, wrapGAppsHook, fetchFromGitHub, pkgconfig
+, intltool, gtk3, json-glib, curl, glib, autoconf-archive, appstream-glib
+, hicolor-icon-theme }:
+
+
+stdenv.mkDerivation rec {
+  name = "transmission-remote-gtk-${version}";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "transmission-remote-gtk";
+    repo = "transmission-remote-gtk";
+    rev = "${version}";
+    sha256 = "126s7aqh9j06zvnwhjbql5x9ibz05pdrrzwb9c6h4qndvr8iqqff";
+  };
+
+  preConfigure = "./autogen.sh";
+
+  nativeBuildInputs= [
+    autoconf automake libtool wrapGAppsHook
+    pkgconfig intltool autoconf-archive
+    appstream-glib
+  ];
+
+  buildInputs = [ gtk3 json-glib curl glib hicolor-icon-theme ];
+
+  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/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
new file mode 100644
index 000000000000..b94864a0b40f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, pkgconfig, intltool, file, wrapGAppsHook
+, openssl, curl, libevent, inotify-tools, systemd, zlib, hicolor-icon-theme
+, enableGTK3 ? false, gtk3
+, enableSystemd ? stdenv.isLinux
+, enableDaemon ? true
+, enableCli ? true
+}:
+
+let inherit (stdenv.lib) optional optionals optionalString; in
+
+stdenv.mkDerivation rec {
+  name = "transmission-" + optionalString enableGTK3 "gtk-" + version;
+  version = "2.94";
+
+  src = fetchurl {
+    url = "https://github.com/transmission/transmission-releases/raw/master/transmission-2.94.tar.xz";
+    sha256 = "0zbbj7rlm6m7vb64x68a64cwmijhsrwx9l63hbwqs7zr9742qi1m";
+  };
+
+  nativeBuildInputs = [ pkgconfig ]
+    ++ optionals enableGTK3 [ wrapGAppsHook ];
+  buildInputs = [ intltool file openssl curl libevent zlib ]
+    ++ optionals enableGTK3 [ gtk3 ]
+    ++ optionals enableSystemd [ systemd ]
+    ++ optionals stdenv.isLinux [ inotify-tools ]
+    ++ optionals enableGTK3 [ hicolor-icon-theme ];
+
+  postPatch = ''
+    substituteInPlace ./configure \
+      --replace "libsystemd-daemon" "libsystemd" \
+      --replace "/usr/bin/file"     "${file}/bin/file" \
+      --replace "test ! -d /Developer/SDKs/MacOSX10.5.sdk" "false"
+  '';
+
+  configureFlags = [
+      ("--enable-cli=" + (if enableCli then "yes" else "no"))
+      ("--enable-daemon=" + (if enableDaemon then "yes" else "no"))
+      "--disable-mac" # requires xcodebuild
+    ]
+    ++ optional enableSystemd "--with-systemd-daemon"
+    ++ optional enableGTK3 "--with-gtk";
+
+  NIX_LDFLAGS = optionalString stdenv.isDarwin "-framework CoreFoundation";
+
+  meta = with stdenv.lib; {
+    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 = licenses.gpl2; # parts are under MIT
+    maintainers = with maintainers; [ astsmtl vcunat wizeman ];
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
new file mode 100644
index 000000000000..29ec8158099c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchurl, pythonPackages, makeWrapper, imagemagick
+, enablePlayer ? true, vlc ? null, qt5 }:
+
+stdenv.mkDerivation rec {
+  name = "tribler-${version}";
+  version = "7.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.gz";
+    sha256 = "1ayzqx4358qlx56hsnsn5s8xl6mzdb6nw4kwsalmp86dw6vmmis8";
+  };
+
+  buildInputs = [
+    pythonPackages.python
+    pythonPackages.wrapPython
+    makeWrapper
+    imagemagick
+  ];
+
+  pythonPath = [
+    pythonPackages.libtorrentRasterbar
+    pythonPackages.apsw
+    pythonPackages.twisted
+    pythonPackages.netifaces
+    pythonPackages.pycrypto
+    pythonPackages.pyasn1
+    pythonPackages.requests
+    pythonPackages.setuptools
+    pythonPackages.m2crypto
+    pythonPackages.pyqt5
+    pythonPackages.chardet
+    pythonPackages.cherrypy
+    pythonPackages.cryptography
+    pythonPackages.libnacl
+    pythonPackages.configobj
+    pythonPackages.matplotlib
+    pythonPackages.plyvel
+    pythonPackages.decorator
+    pythonPackages.feedparser
+    pythonPackages.service-identity
+    pythonPackages.psutil
+    pythonPackages.meliae
+    pythonPackages.sip
+    pythonPackages.pillow
+    pythonPackages.networkx
+  ];
+
+  postPatch = ''
+    ${stdenv.lib.optionalString enablePlayer ''
+      substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${vlc}/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'] = '${vlc}/lib/vlc/plugins'"
+    ''}
+  '';
+
+  installPhase = ''
+    find . -name '*.png' -exec convert -strip {} {} \;
+    mkdir -pv $out
+    # Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH.
+    wrapPythonPrograms
+    cp -prvd ./* $out/
+    makeWrapper ${pythonPackages.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 : ${vlc}/lib
+        ''}
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix b/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix
new file mode 100644
index 000000000000..cce44521a620
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/twister/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, 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 {
+  name = "twister-${version}";
+  version = "0.9.34";
+
+  src = fetchurl {
+    url = "https://github.com/miguelfreitas/twister-core/"
+        + "archive/v${version}.tar.gz";
+    sha256 = "1bi8libivd9y2bn9fc7vbc5q0jnal0pykpzgri6anqaww22y58jq";
+  };
+
+  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
+  ];
+
+  patches = stdenv.lib.singleton (fetchpatch {
+    url = "https://github.com/miguelfreitas/twister-core/commit/"
+        + "dd4f5a176958ea6ed855dc3fcef79680c1c0c92c.patch";
+    sha256 = "06fgmqnjyl83civ3ixiq673k8zjgm8n2w4w46nsh810nprqim8s6";
+  });
+
+  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/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
new file mode 100644
index 000000000000..8725d5263fe3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/vuze/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchsvn, jdk, jre, ant, swt, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "vuze-${version}";
+  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/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix
new file mode 100644
index 000000000000..1dc4e3e43513
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/zeronet/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  pname = "zeronet";
+  version = "0.6.4";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "HelloZeroNet";
+    repo = "ZeroNet";
+    rev = "v${version}";
+    sha256 = "04mpnkx0pbvcfjs337f0ajabdbh6h0gypnaz6n395avkf8r1g4c3";
+  };
+
+  propagatedBuildInputs = with python2Packages; [ msgpack gevent ];
+  buildPhase = "${python2Packages.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 ${python2Packages.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/nixpkgs/pkgs/applications/networking/pjsip/default.nix b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
new file mode 100644
index 000000000000..3930ea4ff11f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, openssl, libsamplerate, alsaLib }:
+
+stdenv.mkDerivation rec {
+  name = "pjsip-${version}";
+  version = "2.8";
+
+  src = fetchurl {
+    url = "http://www.pjsip.org/release/${version}/pjproject-${version}.tar.bz2";
+    sha256 = "0ybg0113rp3fk49rm2v0pcgqb28h3dv1pdy9594w2ggiz7bhngah";
+  };
+
+  buildInputs = [ openssl libsamplerate alsaLib ];
+
+  preConfigure = ''
+    export LD=$CC
+  '';
+
+  postInstall = ''
+    mkdir -p $out/bin
+    cp pjsip-apps/bin/pjsua-* $out/bin/pjsua
+    mkdir -p $out/share/${name}/samples
+    cp pjsip-apps/bin/samples/*/* $out/share/${name}/samples
+  '';
+
+  # We need the libgcc_s.so.1 loadable (for pthread_cancel to work)
+  dontPatchELF = true;
+
+  meta = {
+    description = "A multimedia communication library written in C, implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE";
+    homepage = http://pjsip.org/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [olynch];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/protocol/default.nix b/nixpkgs/pkgs/applications/networking/protocol/default.nix
new file mode 100644
index 000000000000..305aceec62b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/protocol/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub }:
+
+buildPythonApplication rec {
+  pname = "protocol";
+  version = "20171226";
+
+  src = fetchFromGitHub {
+    owner = "luismartingarcia";
+    repo = "protocol";
+    rev = "d450da7d8a58595d8ef82f1d199a80411029fc7d";
+    sha256 = "1g31s2xx0bw8ak5ag1c6mv0p0b8bj5dp3lkk9mxaf2ndj1m1qdkw";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
new file mode 100644
index 000000000000..3e74fbfb66af
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtsvg, qtdeclarative, qttools, full,
+  libsecret, libGL, libpulseaudio, glib, makeWrapper, makeDesktopItem }:
+
+let
+  version = "1.1.0-1";
+
+  description = ''
+    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.
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "Desktop-Bridge";
+    exec = "Desktop-Bridge";
+    icon = "desktop-bridge";
+    comment = stdenv.lib.replaceStrings ["\n"] [" "] description;
+    desktopName = "ProtonMail Bridge";
+    genericName = "ProtonMail Bridge for Linux";
+    categories = "Utility;Security;Network;Email";
+  };
+in stdenv.mkDerivation rec {
+  name = "protonmail-bridge-${version}";
+
+  src = fetchurl {
+    url = "https://protonmail.com/download/protonmail-bridge_${version}_amd64.deb";
+    sha256 = "0l29z208krnd3dginc203m4p5dlmnxf08vpmbm9xzlckwmswizkb";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  sourceRoot = ".";
+
+  unpackCmd = ''
+    ar p "$src" data.tar.xz | tar xJ
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,lib,share/applications}
+    mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
+
+    cp -r usr/lib/protonmail/bridge/Desktop-Bridge{,.sh} $out/lib
+    cp usr/share/icons/protonmail/Desktop-Bridge.svg $out/share/icons/hicolor/scalable/apps/desktop-bridge.svg
+    cp ${desktopItem}/share/applications/* $out/share/applications
+
+    ln -s $out/lib/Desktop-Bridge $out/bin/Desktop-Bridge
+  '';
+
+  postFixup = let
+    rpath = lib.makeLibraryPath [
+      stdenv.cc.cc.lib
+      qtbase
+      qtmultimedia
+      qtsvg
+      qtdeclarative
+      qttools
+      libGL
+      libsecret
+      libpulseaudio
+      glib
+    ];
+
+    qtPath = prefix: "${full}/${prefix}";
+  in ''
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${rpath}" \
+      $out/lib/Desktop-Bridge
+
+    wrapProgram $out/lib/Desktop-Bridge \
+      --set QT_PLUGIN_PATH "${qtPath qtbase.qtPluginPrefix}" \
+      --set QML_IMPORT_PATH "${qtPath qtbase.qtQmlPrefix}" \
+      --set QML2_IMPORT_PATH "${qtPath qtbase.qtQmlPrefix}" \
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.protonmail.com/bridge;
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ lightdiscord ];
+
+    inherit description;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix b/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix
new file mode 100644
index 000000000000..571df924e1f8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/pyload/beautifulsoup.nix
@@ -0,0 +1,20 @@
+{ pythonPackages, isPy3k, pkgs }:
+
+pythonPackages.buildPythonPackage rec {
+  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/nixpkgs/pkgs/applications/networking/pyload/default.nix b/nixpkgs/pkgs/applications/networking/pyload/default.nix
new file mode 100644
index 000000000000..6a89731ff104
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/pyload/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, fetchpatch, pythonPackages, gocr, unrar, rhino, spidermonkey }:
+
+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 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 = ''
+    paver generate_setup
+  '';
+
+  doCheck = false;
+
+  meta = {
+    description = "Free and open source downloader for 1-click-hosting sites";
+    homepage = https://github.com/pyload/pyload;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ stdenv.lib.maintainers.mahe ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
new file mode 100644
index 000000000000..cb3814b55f19
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem
+, atk, cairo, gdk_pixbuf, glib, gnome2, gtk2, libGLU_combined, pango, xorg
+, lsb-release }:
+
+let
+  sha256 = {
+    "x86_64-linux" = "0g19sac4j3m1nf400vn6qcww7prqg2p4k4zsj74i109kk1396aa2";
+    "i686-linux"   = "1dd4ai2pclav9g872xil3x67bxy32gvz9pb3w76383pcsdh5zh45";
+  }."${stdenv.hostPlatform.system}" or (throw "system ${stdenv.hostPlatform.system} not supported");
+
+  arch = {
+    "x86_64-linux" = "amd64";
+    "i686-linux"   = "i686";
+  }."${stdenv.hostPlatform.system}" or (throw "system ${stdenv.hostPlatform.system} not supported");
+
+  description = "Desktop sharing application, providing remote support and online meetings";
+
+  desktopItem = makeDesktopItem rec {
+    name = "anydesk";
+    exec = "@out@/bin/anydesk";
+    icon = "anydesk";
+    desktopName = "anydesk";
+    genericName = description;
+    categories = "Application;Network;";
+    startupNotify = "false";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "anydesk-${version}";
+  version = "2.9.4";
+
+  src = fetchurl {
+    url = "https://download.anydesk.com/linux/${name}-${arch}.tar.gz";
+    inherit sha256;
+  };
+
+  buildInputs = [
+    atk cairo gdk_pixbuf glib gtk2 stdenv.cc.cc pango
+    gnome2.gtkglext libGLU_combined
+  ] ++ (with xorg; [
+    libxcb libX11 libXdamage libXext libXfixes libXi libXmu
+    libXrandr libXtst
+  ]);
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/{applications,doc/anydesk,icons/hicolor}
+    install -m755 anydesk $out/bin/anydesk
+    cp changelog copyright README $out/share/doc/anydesk
+    cp -r icons/* $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
+
+    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 = http://www.anydesk.com;
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-receiver/default.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-receiver/default.nix
new file mode 100644
index 000000000000..8d0022e3c8b3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-receiver/default.nix
@@ -0,0 +1,236 @@
+{ stdenv
+, lib
+, fetchurl
+, requireFile
+, makeWrapper
+, libredirect
+, busybox
+, file
+, makeDesktopItem
+, tzdata
+, cacert
+, glib
+, gtk2
+, atk
+, gdk_pixbuf
+, cairo
+, pango
+, gnome3
+, xorg
+, libpng12
+, freetype
+, fontconfig
+, gtk_engines
+, alsaLib
+, libidn
+, zlib
+, version ? "13.10.0"
+}:
+
+let
+  # In 56e1bdc7f9c (libidn: 1.34 -> 1.35), libidn.so.11 became libidn.so.12.
+  # Citrix looks for the former so we build version 1.34 to please the binary
+  libidn_134 = libidn.overrideDerivation (_: rec {
+    name = "libidn-1.34";
+    src = fetchurl {
+      url = "mirror://gnu/libidn/${name}.tar.gz";
+      sha256 = "0g3fzypp0xjcgr90c5cyj57apx1cmy0c6y9lvw2qdcigbyby469p";
+    };
+  });
+
+  versionInfo = {
+    "13.8.0" = {
+      major     = "13";
+      minor     = "8";
+      patch     = "0";
+      x64hash   = "FDF5991CCD52B2B98289D7B2FB46D492D3E4032846D4AFA52CAA0F8AC0578931";
+      x86hash   = "E0CFB43312BF79F753514B11F7B8DE4529823AE4C92D1B01E8A2C34F26AC57E7";
+      x64suffix = "10299729";
+      x86suffix = "10299729";
+      homepage  = https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/receiver-for-linux-138.html;
+    };
+
+    "13.9.0" = {
+      major     = "13";
+      minor     = "9";
+      patch     = "0";
+      x64hash   = "00l18s7i9yky3ddabwljwsf7fx4cjgjn9hfd74j0x1v4gl078nl9";
+      x86hash   = "117fwynpxfnrw98933y8z8v2q4g6ycs1sngvpbki2qj09bjkwmag";
+      x64suffix = "102";
+      x86suffix = "102";
+      homepage  = https://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html; # This version has disappeared from Citrix's website... *sigh*
+    };
+
+    "13.9.1" = {
+      major     = "13";
+      minor     = "9";
+      patch     = "1";
+      x64hash   = "A9A9157CE8C287E8AA11447A0E3C3AB7C227330E9D8882C6F7B938A4DD5925BC";
+      x86hash   = "A93E9770FD10FDD3586A2D47448559EA037265717A7000B9BD2B1DCCE7B0A483";
+      x64suffix = "6";
+      x86suffix = "6";
+      homepage  = https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/receiver-for-linux-1391.html;
+    };
+
+    "13.10.0" = {
+      major     = "13";
+      minor     = "10";
+      patch     = "0";
+      x64hash   = "7025688C7891374CDA11C92FC0BA2FA8151AEB4C4D31589AD18747FAE943F6EA";
+      x86hash   = "2DCA3C8EDED11C5D824D579BC3A6B7D531EAEDDCBFB16E91B5702C72CAE9DEE4";
+      x64suffix = "20";
+      x86suffix = "20";
+      homepage  = https://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html;
+    };
+  };
+
+  citrixReceiverForVersion = { major, minor, patch, x86hash, x64hash, x86suffix, x64suffix, homepage }:
+    stdenv.mkDerivation rec {
+      name     = "citrix-receiver-${version}";
+      version  = "${major}.${minor}.${patch}";
+      inherit homepage;
+
+      prefixWithBitness = if stdenv.is64bit then "linuxx64" else "linuxx86";
+
+      src = requireFile rec {
+        name    = if stdenv.is64bit then "${prefixWithBitness}-${version}.${x64suffix}.tar.gz" else "${prefixWithBitness}-${version}.${x86suffix}.tar.gz";
+        sha256  = if stdenv.is64bit then x64hash else x86hash;
+        message = ''
+          In order to use Citrix Receiver, 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/citrix-receiver/legacy-receiver-for-linux/
+          or at https://www.citrix.com/downloads/citrix-receiver/ under "Earlier Versions of Receiver for Linux")
+
+          Once you have downloaded the file, please use the following command and re-run the
+          installation:
+
+          nix-prefetch-url file://\$PWD/${name}
+        '';
+      };
+
+      dontBuild = true;
+
+      sourceRoot = ".";
+
+      buildInputs = [
+        makeWrapper
+        busybox
+        file
+        gtk2
+        gdk_pixbuf
+      ];
+
+      libPath = stdenv.lib.makeLibraryPath [
+        glib
+        gtk2
+        atk
+        gdk_pixbuf
+        cairo
+        pango
+        gnome3.dconf
+        xorg.libX11
+        xorg.libXext
+        xorg.libXrender
+        xorg.libXinerama
+        xorg.libXfixes
+        libpng12
+        libidn_134
+        zlib
+        gtk_engines
+        freetype
+        fontconfig
+        alsaLib
+        stdenv.cc.cc # Fixes: Can not load [..]/opt/citrix-icaclient/lib/ctxh264_fb.so:(null)
+      ];
+
+      desktopItem = makeDesktopItem {
+        name        = "wfica";
+        desktopName = "Citrix Receiver";
+        genericName = "Citrix Receiver";
+        exec        = "wfica";
+        icon        = "wfica";
+        comment     = "Connect to remote Citrix server";
+        categories  = "GTK;GNOME;X-GNOME-NetworkSettings;Network;";
+        mimeType    = "application/x-ica";
+      };
+
+      installPhase = ''
+        runHook preInstall
+
+        export ICAInstDir="$out/opt/citrix-icaclient"
+
+        sed -i \
+          -e 's,^main_install_menu$,install_ICA_client,g' \
+          -e 's,^integrate_ICA_client(),alias integrate_ICA_client=true\nintegrate_ICA_client_old(),g' \
+          -e 's,^ANSWER=""$,ANSWER="$INSTALLER_YES",' \
+          -e 's,/bin/true,true,g' \
+          ./${prefixWithBitness}/hinst
+
+        # Run the installer...
+        bash ./${prefixWithBitness}/hinst CDROM "`pwd`"
+
+        echo "Deleting broken links..."
+        for link in `find $ICAInstDir -type l `
+        do
+          [ -f "$link" ] || rm -v "$link"
+        done
+
+        echo "Expanding certificates..."
+        # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
+        pushd "$ICAInstDir/keystore/cacerts"
+        awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < ${cacert}/etc/ssl/certs/ca-bundle.crt
+        popd
+
+        echo "Patching executables..."
+        find $ICAInstDir -type f -exec file {} \; |
+          grep 'ELF.*executable' |
+          cut -f 1 -d : |
+          grep -vi '\(.dll\|.so\)$' | # added as a workaround to https://github.com/NixOS/nixpkgs/issues/41729
+          while read f
+          do
+            echo "Patching ELF intrepreter and rpath for $f"
+            chmod u+w "$f"
+            patchelf \
+              --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+              --set-rpath "$ICAInstDir:$libPath" "$f"
+          done
+
+        echo "Wrapping wfica..."
+        mkdir "$out/bin"
+
+        makeWrapper "$ICAInstDir/wfica" "$out/bin/wfica" \
+          --add-flags "-icaroot $ICAInstDir" \
+          --set ICAROOT "$ICAInstDir" \
+          --set GTK_PATH "${gtk2.out}/lib/gtk-2.0:${gnome3.gnome-themes-extra}/lib/gtk-2.0" \
+          --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+          --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+          --set LD_LIBRARY_PATH "$libPath" \
+          --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
+
+        echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
+        echo UTC > "$ICAInstDir/timezone"
+
+        echo "Installing desktop item..."
+        mkdir -p $out/share/applications
+        cp ${desktopItem}/share/applications/* $out/share/applications
+
+        # We introduce a dependency on the source file so that it need not be redownloaded everytime
+        echo $src >> "$out/share/nix_dependencies.pin"
+
+        runHook postInstall
+      '';
+
+      meta = with stdenv.lib; {
+        license     = stdenv.lib.licenses.unfree;
+        inherit homepage;
+        description = "Citrix Receiver";
+        maintainers = with maintainers; [ obadz a1russell ma27 ];
+        platforms   = platforms.linux;
+      };
+    };
+
+in citrixReceiverForVersion (lib.getAttr version versionInfo)
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix
new file mode 100644
index 000000000000..63587030b38e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-receiver/wrapper.nix
@@ -0,0 +1,19 @@
+{ citrix_receiver, extraCerts ? [], symlinkJoin }:
+
+let
+
+  mkCertCopy = certPath:
+    "cp ${certPath} $out/opt/citrix-icaclient/keystore/cacerts/";
+
+in
+
+if builtins.length extraCerts == 0 then citrix_receiver else symlinkJoin {
+  name = "citrix-with-extra-certs-${citrix_receiver.version}";
+  paths = [ citrix_receiver ];
+
+  postBuild = ''
+    ${builtins.concatStringsSep "\n" (map mkCertCopy extraCerts)}
+
+    sed -i -E "s,-icaroot (.+citrix-icaclient),-icaroot $out/opt/citrix-icaclient," $out/bin/wfica
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
new file mode 100644
index 000000000000..6512792dd2b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
+, alsaLib, ffmpeg, glib, openssl, pcre, zlib
+, libX11, libXcursor, libXdamage, libXext, libXi, libXinerama, libXrandr, libXrender, libXv
+, libxkbcommon, libxkbfile
+, wayland
+, gstreamer, gst-plugins-base, gst-plugins-good, libunwind, orc
+, libpulseaudio ? null
+, cups ? null
+, pcsclite ? null
+, systemd ? null
+, buildServer ? true
+, optimize ? true
+}:
+
+stdenv.mkDerivation rec {
+  name = "freerdp-${version}";
+  version = "2.0.0-rc4";
+
+  src = fetchFromGitHub {
+    owner  = "FreeRDP";
+    repo   = "FreeRDP";
+    rev    = version;
+    sha256 = "0546i0m2d4nz5jh84ngwzpcm3c43fp987jk6cynqspsmvapab6da";
+  };
+
+  # outputs = [ "bin" "out" "dev" ];
+
+  prePatch = ''
+    export HOME=$TMP
+    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" "${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so"
+  '';
+
+  buildInputs = with lib; [
+    alsaLib cups ffmpeg glib openssl pcre pcsclite libpulseaudio zlib
+    gstreamer gst-plugins-base gst-plugins-good libunwind orc
+    libX11 libXcursor libXdamage libXext libXi libXinerama libXrandr libXrender libXv
+    libxkbcommon libxkbfile
+    wayland
+  ] ++ optional stdenv.isLinux systemd;
+
+  nativeBuildInputs = [
+    cmake pkgconfig
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = false;
+
+  cmakeFlags = with lib; [
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DWITH_CUNIT=OFF"
+    "-DWITH_OSS=OFF"
+  ] ++ optional (libpulseaudio != null)       "-DWITH_PULSE=ON"
+    ++ optional (cups != null)                "-DWITH_CUPS=ON"
+    ++ optional (pcsclite != null)            "-DWITH_PCSC=ON"
+    ++ optional buildServer                   "-DWITH_SERVER=ON"
+    ++ optional (optimize && stdenv.isx86_64) "-DWITH_SSE2=ON";
+
+  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 = http://www.freerdp.com/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ wkennington peterhoeg ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/freerdp/legacy.nix b/nixpkgs/pkgs/applications/networking/remote/freerdp/legacy.nix
new file mode 100644
index 000000000000..9830b8465259
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/legacy.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchurl
+, cmake
+, openssl
+, glib, pcre
+, printerSupport ? true, cups
+, pkgconfig
+, zlib
+, libX11
+, libXcursor
+, libXdamage
+, libXext
+, alsaLib
+, ffmpeg
+, libxkbfile
+#, xmlto, docbook_xml_dtd_412, docbook_xml_xslt
+, libXinerama
+, libXv
+, pulseaudioSupport ? true
+}:
+
+assert printerSupport -> cups != null;
+
+stdenv.mkDerivation rec {
+  name = "freerdp-${version}";
+  version = "1.2.0-beta1+android9";
+
+  src = fetchurl {
+    url = "https://github.com/FreeRDP/FreeRDP/archive/${version}.tar.gz";
+    sha256 = "181w4lkrk5h5kh2zjlx6h2cl1mfw2aaami3laq3q32pfj06q3rxl";
+  };
+
+  buildInputs = [
+    cmake
+    openssl
+    glib pcre
+    pkgconfig
+    zlib
+    libX11
+    libXcursor
+    libXdamage
+    libXext
+    alsaLib
+    ffmpeg
+    libxkbfile
+#    xmlto docbook_xml_dtd_412 docbook_xml_xslt
+    libXinerama
+    libXv
+  ] ++ stdenv.lib.optional printerSupport cups;
+
+  preConfigure = ''
+    export HOME=$TMP
+  '';
+
+  configureFlags = [
+    "--with-x" "-DWITH_MANPAGES=OFF"
+  ] ++ stdenv.lib.optional printerSupport "--with-printer=cups"
+    ++ stdenv.lib.optional pulseaudioSupport "-DWITH_PULSEAUDIO=ON";
+
+  meta = with stdenv.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 = http://www.freerdp.com/;
+    license = licenses.free;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/putty/default.nix b/nixpkgs/pkgs/applications/networking/remote/putty/default.nix
new file mode 100644
index 000000000000..13613774b7c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/putty/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, lib, fetchurl, autoconf, automake, pkgconfig, libtool
+, gtk2, halibut, ncurses, perl
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.70";
+  name = "putty-${version}";
+
+  src = fetchurl {
+    urls = [
+      "https://the.earth.li/~sgtatham/putty/${version}/${name}.tar.gz"
+      "ftp://ftp.wayne.edu/putty/putty-website-mirror/${version}/${name}.tar.gz"
+    ];
+    sha256 = "1gmhwwj1y7b5hgkrkxpf4jddjpk9l5832zq5ibhsiicndsfs92mv";
+  };
+
+  preConfigure = lib.optionalString stdenv.hostPlatform.isUnix ''
+    perl mkfiles.pl
+    ( cd doc ; make );
+    sed -e '/AM_PATH_GTK(/d' \
+        -e '/AC_OUTPUT/iAM_PROG_CC_C_O' \
+        -e '/AC_OUTPUT/iAM_PROG_AR' -i configure.ac
+    ./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
+  ];
+  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/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
new file mode 100644
index 000000000000..4caa9ae63f75
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, openssl, libX11, libgssglue, pkgconfig} :
+
+stdenv.mkDerivation (rec {
+  pname = "rdesktop";
+  version = "1.8.3";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${name}.tar.gz";
+    sha256 = "1r7c1rjmw2xzq8fw0scyb453gy9z19774z1z8ldmzzsfndb03cl8";
+  };
+
+  nativeBuildInputs = [pkgconfig];
+  buildInputs = [openssl libX11 libgssglue];
+
+  configureFlags = [
+    "--with-ipv6"
+    "--with-openssl=${openssl.dev}"
+    "--disable-smartcard"
+  ];
+
+  meta = {
+    description = "Open source client for Windows Terminal Services";
+    homepage = http://www.rdesktop.org/;
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
new file mode 100644
index 000000000000..cd2b816c6aa4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchFromGitLab, cmake, ninja, pkgconfig, wrapGAppsHook
+, glib, gtk3, gettext, libxkbfile, libX11
+, freerdp, libssh, libgcrypt, gnutls, makeDesktopItem
+, 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
+# The themes here are soft dependencies; only icons are missing without them.
+, hicolor-icon-theme, adwaita-icon-theme
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "remmina";
+  version = "1.2.32.1";
+
+  src = fetchFromGitLab {
+    owner  = "Remmina";
+    repo   = "Remmina";
+    rev    = "v${version}";
+    sha256 = "1b77gs68j5j4nlv69vl81d0kp2623ysvshq7495y6hq5wgi5l3gc";
+  };
+
+  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 hicolor-icon-theme adwaita-icon-theme json-glib
+  ];
+
+  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/nixpkgs/pkgs/applications/networking/remote/ssvnc/default.nix b/nixpkgs/pkgs/applications/networking/remote/ssvnc/default.nix
new file mode 100644
index 000000000000..99835627f879
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/ssvnc/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, imake, zlib, jdk, libX11, libXt, libXmu
+, libXaw, libXext, libXpm, openjpeg, openssl, tk, perl }:
+
+stdenv.mkDerivation rec {
+  name = "ssvnc-${version}";
+  version = "1.0.29";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ssvnc/${name}.src.tar.gz";
+    sha256 = "74df32eb8eaa68b07c9693a232ebe42154617c7f3cbe1d4e68d3fe7c557d618d";
+  };
+
+  buildInputs = [ imake zlib jdk libX11 libXt libXmu libXaw libXext libXpm openjpeg openssl ];
+
+  dontUseImakeConfigure = true;
+
+  makeFlags = "PREFIX=$(out)";
+
+  hardeningDisable = [ "format" ];
+
+  postInstall = ''
+    sed -i -e 's|exec wish|exec ${tk}/bin/wish|' $out/lib/ssvnc/util/ssvnc.tcl
+    sed -i -e 's|/usr/bin/perl|${perl}/bin/perl|' $out/lib/ssvnc/util/ss_vncviewer
+  '';
+
+  meta = {
+    description = "VNC viewer that adds encryption security to VNC connections";
+    homepage = http://www.karlrunge.com/x11vnc/ssvnc.html;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.edwtjo ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
new file mode 100644
index 000000000000..e4715cce8e18
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, autoPatchelfHook, makeWrapper, xdg_utils, dbus, qtbase, qtwebkit, qtx11extras, qtquickcontrols, glibc, libXrandr, libX11 }:
+
+
+stdenv.mkDerivation rec {
+  name = "teamviewer-${version}";
+  version = "13.1.3026";
+
+  src = fetchurl {
+    url = "https://dl.tvcdn.de/download/linux/version_13x/teamviewer_${version}_amd64.deb";
+    sha256 = "14zaa1xjdfmgbbq40is5mllqcd9zan03sblkzajswd5gps7crsik";
+  };
+
+  unpackPhase = ''
+    ar x $src
+    tar xf data.tar.*
+  '';
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  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 : "${stdenv.lib.makeLibraryPath [ libXrandr libX11 ]}"
+    wrapProgram $out/share/teamviewer/tv_bin/teamviewerd --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libXrandr libX11 ]}"
+  '';
+
+  dontStrip = true;
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix b/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix
new file mode 100644
index 000000000000..3d65b7a621b3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchgit, cups, libssh, libXpm, nxproxy, openldap, openssh
+, makeWrapper, qtbase, qtsvg, qtx11extras, qttools, phonon, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  pname = "x2goclient";
+  version = "unstable-2018-11-30";
+
+  src = fetchgit {
+   url = "git://code.x2go.org/x2goclient.git";
+   rev = "659655675f11ffd361ab9fb48fa77a01a1536fe8";
+   sha256 = "05gfs11m259bchy3k0ihqpwg9wf8lp94rbca5dzla9fjzrb7pyy4";
+  };
+
+  buildInputs = [ cups libssh libXpm nxproxy openldap openssh
+                  qtbase qtsvg qtx11extras qttools phonon pkgconfig ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  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" ];
+  postInstall = ''
+    wrapProgram "$out/bin/x2goclient" --suffix PATH : "${nxproxy}/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/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix
new file mode 100644
index 000000000000..a778042c2ea2
--- /dev/null
+++ b/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 {
+    name = "xorgxrdp-${version}";
+    version = "0.2.7";
+
+    src = fetchFromGitHub {
+      owner = "neutrinolabs";
+      repo = "xorgxrdp";
+      rev = "v${version}";
+      sha256 = "15idwgcjgwa9in8y1bblpj67y7w0bfngc2sa0hd9hn0dinrlifrk";
+    };
+
+    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.7";
+    name = "xrdp-${version}";
+
+    src = fetchFromGitHub {
+      owner = "volth";
+      repo = "xrdp";
+      rev = "refs/heads/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 = "1dw2zl9zh6win1q0kxj08n9fawpcrs1krjh5978wp0jmq8sdbn7k";
+    };
+
+    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/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
new file mode 100644
index 000000000000..c855277e2259
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, ... }:
+
+let
+  arch = {
+    "x86_64-linux" = "x64";
+    "i686-linux" = "i386";
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+  libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.libc ];
+
+in stdenv.mkDerivation rec {
+  name = "resilio-sync-${version}";
+  version = "2.6.2";
+
+  src = fetchurl {
+    url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
+    sha256 = {
+      "x86_64-linux" = "0vq8jz4v740zz3pvgqfya8mhy35fh49wpn8d08xjrs5062hl1yc2";
+      "i686-linux"   = "1gvq29bkdqvbcgnnhl3018h564rswk3r88s33lx5iph1rpxc6v5h";
+    }.${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/nixpkgs/pkgs/applications/networking/seafile-client/default.nix b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
new file mode 100644
index 000000000000..e91568b21935
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools
+, seafile-shared, ccnet, makeWrapper
+, withShibboleth ? true, qtwebengine }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "6.2.9";
+  name = "seafile-client-${version}";
+
+  src = fetchFromGitHub {
+    owner = "haiwen";
+    repo = "seafile-client";
+    rev = "v${version}";
+    sha256 = "0h235kdr86lfh1z10admgn2ghnn04w9rlrzf2yhqqilw1k1giavj";
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake makeWrapper ];
+  buildInputs = [ qtbase qttools seafile-shared ]
+    ++ optional withShibboleth qtwebengine;
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ]
+    ++ optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON";
+
+  postInstall = ''
+    wrapProgram $out/bin/seafile-applet \
+      --suffix PATH : ${stdenv.lib.makeBinPath [ ccnet seafile-shared ]}
+  '';
+
+  meta = with stdenv.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; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix b/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix
new file mode 100644
index 000000000000..78910d1ecf6e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sieve-connect/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, makeWrapper, perl, perlPackages }: stdenv.mkDerivation rec {
+  name = "sieve-connect-${version}";
+  version = "0.89";
+
+  src = fetchFromGitHub {
+    owner = "philpennock";
+    repo = "sieve-connect";
+    rev = "v${version}";
+    sha256 = "0g7cv29wd5673inl4c87xb802k86bj6gcwh131xrbbg0a0g1c8fp";
+  };
+
+  buildInputs = [ 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=${stdenv.lib.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 : "${stdenv.lib.makePerlPath (with perlPackages; [
+        AuthenSASL Socket6 IOSocketInet6 IOSocketSSL NetSSLeay NetDNS PodUsage
+        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/nixpkgs/pkgs/applications/networking/sipcmd/default.nix b/nixpkgs/pkgs/applications/networking/sipcmd/default.nix
new file mode 100644
index 000000000000..a36c2286956b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sipcmd/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, opal, ptlib }:
+
+stdenv.mkDerivation rec {
+
+  rev = "3090e9f";
+
+  name = "sipcmd-${rev}";
+  
+  src = fetchFromGitHub {
+    repo = "sipcmd";
+    owner = "tmakkonen";
+    inherit rev;
+    sha256 = "072h9qapmz46r8pxbzkfmc4ikd7dv9g8cgrfrw21q942icbrvq2c";
+  };
+
+  buildInputs = [ opal ptlib ];
+
+  buildPhase = ''
+    make IFLAGS="-I${opal}/include/opal -I${ptlib}/include -Isrc/ -L${opal}/lib -L${ptlib}/lib"
+  '';
+
+  installPhase = ''
+    mkdir -pv $out/bin
+    cp sipcmd $out/bin/sipcmd
+  '';
+
+  meta = {
+    homepage = https://github.com/tmakkonen/sipcmd;
+    description = "The command line SIP/H.323/RTP softphone";
+    platforms = with stdenv.lib.platforms; linux;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch b/nixpkgs/pkgs/applications/networking/siproxd/cheaders.patch
new file mode 100644
index 000000000000..69a3e3287371
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/siproxd/default.nix b/nixpkgs/pkgs/applications/networking/siproxd/default.nix
new file mode 100644
index 000000000000..cd697f107b35
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/etherape/default.nix
new file mode 100644
index 000000000000..81c48cff4a01
--- /dev/null
+++ b/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.18";
+  src = fetchurl {
+    url = "mirror://sourceforge/etherape/${name}.tar.gz";
+    sha256 = "0y9cfc5iv5zy82j165i9agf45n1ixka064ykdvpdhb07sr3lzhmv";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix
new file mode 100644
index 000000000000..13d536ccf1bb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre
+, openssl, ncurses, glib, gtk2, atk, pango, flex, bison
+, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  name = "ettercap-${version}";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "Ettercap";
+    repo = "ettercap";
+    rev = "v${version}";
+    sha256 = "1kvrzv2f8kxy7pndfadkzv10cs5wsyfkaa1ski20r2mq4wrvd0cd";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "CVE-2017-8366.patch";
+      url = "https://github.com/Ettercap/ettercap/commit/1083d604930ebb9f350126b83802ecd2cbc17f90.patch";
+      sha256 = "1ff6fp8fxisvd3fkkd01y4fjykgcj414kczzpfscdmi52ridwg8m";
+    })
+    (fetchpatch {
+      name = "CVE-2017-6430.patch";
+      url = "https://github.com/Ettercap/ettercap/commit/7f50c57b2101fe75592c8dc9960883bbd1878bce.patch";
+      sha256 = "0s13nc9yzxzp611rixsd1c8aw1b57q2lnvfq8wawxyrw07h7b2j4";
+    })
+  ];
+
+  buildInputs = [
+    cmake libpcap libnet zlib curl pcre openssl ncurses
+    glib gtk2 atk pango flex bison
+  ];
+
+  preConfigure = ''
+    substituteInPlace CMakeLists.txt --replace /etc \$\{INSTALL_PREFIX\}/etc \
+                                     --replace /usr \$\{INSTALL_PREFIX\}
+  '';
+
+  cmakeFlags = [
+    "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
+    "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Comprehensive suite for man in the middle attacks";
+    homepage = http://ettercap.github.io/ettercap/;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ pSub ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix
new file mode 100644
index 000000000000..0c793c41c55a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, libpcap, ncurses, expat, pcre, libnl }:
+
+stdenv.mkDerivation rec {
+  name = "kismet-${version}";
+  version = "2016-07-R1";
+
+  src = fetchurl {
+    url = "https://www.kismetwireless.net/code/${name}.tar.xz";
+    sha256 = "0dz28y4ay4lskhl0lawqy2dkcrhgfkbg06v22qxzzw8i6caizcmx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libpcap ncurses expat pcre libnl ];
+  postConfigure = ''
+    sed -e 's/-o $(INSTUSR)//' \
+        -e 's/-g $(INSTGRP)//' \
+        -e 's/-g $(MANGRP)//' \
+        -e 's/-g $(SUIDGROUP)//' \
+        -i Makefile
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Wireless network sniffer";
+    homepage = https://www.kismetwireless.net/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
new file mode 100644
index 000000000000..2a3d49ba5a0d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -0,0 +1,124 @@
+{ stdenv, fetchurl, pkgconfig, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
+, gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, python, libcap, glib
+, libssh, zlib, cmake, extra-cmake-modules, fetchpatch, makeWrapper
+, withGtk ? false, gtk3 ? null, librsvg ? null, gsettings-desktop-schemas ? null, wrapGAppsHook ? null
+, withQt ? false, qt5 ? null
+, ApplicationServices, SystemConfiguration, gmp
+}:
+
+assert withGtk -> !withQt  && gtk3 != null;
+assert withQt  -> !withGtk && qt5  != null;
+
+with stdenv.lib;
+
+let
+  version = "2.6.5";
+  variant = if withGtk then "gtk" else if withQt then "qt" else "cli";
+
+in stdenv.mkDerivation {
+  name = "wireshark-${variant}-${version}";
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
+    sha256 = "12j3fw0j8qcr86c1vsz4bsb55j9inp0ll3wjjdvg1cj4hmwmn5ck";
+  };
+
+  cmakeFlags = [
+    "-DBUILD_wireshark_gtk=${if withGtk then "ON" else "OFF"}"
+    "-DBUILD_wireshark=${if withQt then "ON" else "OFF"}"
+    "-DENABLE_QT5=${if withQt then "ON" else "OFF"}"
+    "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}"
+  ];
+
+  nativeBuildInputs = [
+    bison cmake extra-cmake-modules flex pkgconfig
+  ] ++ optional withGtk wrapGAppsHook;
+
+  buildInputs = [
+    gettext pcre perl libpcap lua5 libssh openssl libgcrypt
+    libgpgerror gnutls geoip c-ares python glib zlib makeWrapper
+  ] ++ optionals withQt  (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
+    ++ optionals withGtk [ gtk3 librsvg gsettings-desktop-schemas ]
+    ++ 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 = if stdenv.isDarwin then ''
+    ${optionalString withQt ''
+      mkdir -p $out/Applications
+      mv $out/bin/Wireshark.app $out/Applications/Wireshark.app
+
+      for so in $out/Applications/Wireshark.app/Contents/PlugIns/wireshark/*.so; do
+        install_name_tool $so -change libwireshark.10.dylib $out/lib/libwireshark.10.dylib
+        install_name_tool $so -change libwiretap.7.dylib $out/lib/libwiretap.7.dylib
+        install_name_tool $so -change libwsutil.8.dylib $out/lib/libwsutil.8.dylib
+      done
+
+      wrapProgram $out/Applications/Wireshark.app/Contents/MacOS/Wireshark \
+        --set QT_PLUGIN_PATH ${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}
+    ''}
+  '' else optionalString (withQt || withGtk) ''
+    ${optionalString withGtk ''
+      install -Dm644 -t $out/share/applications ../wireshark-gtk.desktop
+    ''}
+    ${optionalString withQt ''
+      install -Dm644 -t $out/share/applications ../wireshark.desktop
+      wrapProgram $out/bin/wireshark \
+        --set QT_PLUGIN_PATH ${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}
+    ''}
+
+    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;
+
+  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/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch
new file mode 100644
index 000000000000..549da5436e60
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/sniproxy/default.nix b/nixpkgs/pkgs/applications/networking/sniproxy/default.nix
new file mode 100644
index 000000000000..10bb465b8a1b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sniproxy/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, gettext, libev, pcre, pkgconfig, udns }:
+
+stdenv.mkDerivation rec {
+  name = "sniproxy-${version}";
+  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/nixpkgs/pkgs/applications/networking/soapui/default.nix b/nixpkgs/pkgs/applications/networking/soapui/default.nix
new file mode 100644
index 000000000000..93ab6c56d99d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/soapui/default.nix
@@ -0,0 +1,51 @@
+{ fetchurl, stdenv, writeText, jdk, maven, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "soapui-${version}";
+  version = "5.4.0";
+
+  src = fetchurl {
+    url = "https://s3.amazonaws.com/downloads.eviware/soapuios/${version}/SoapUI-${version}-linux-bin.tar.gz";
+    sha256 = "1yqx1fsh8mr5zf36df7pi25dysb28gfscr1667jzd5s0k9jl42xd";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/spideroak/default.nix b/nixpkgs/pkgs/applications/networking/spideroak/default.nix
new file mode 100644
index 000000000000..fdb4206d340f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/spideroak/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, makeWrapper, patchelf
+, fontconfig, freetype, glib, libICE, libSM
+, libX11, libXext, libXrender, zlib
+}:
+
+let
+  arch = if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
+    else if stdenv.hostPlatform.system == "i686-linux" then "x86"
+    else throw "Spideroak client for: ${stdenv.hostPlatform.system} not supported!";
+
+  interpreter = if stdenv.hostPlatform.system == "x86_64-linux" then "ld-linux-x86-64.so.2"
+    else if stdenv.hostPlatform.system == "i686-linux" then "ld-linux.so.2"
+    else throw "Spideroak client for: ${stdenv.hostPlatform.system} not supported!";
+
+  sha256 = if stdenv.hostPlatform.system == "x86_64-linux" then "a88e5a8fe4a565ac500668bd53cf5784752d7c9253304ddce39ee7b01d078533"
+    else if stdenv.hostPlatform.system == "i686-linux" then "668f3b83a974a3877d16c8743c233a427ea0a44ab84b7f9aec19a2995db66c16"
+    else throw "Spideroak client for: ${stdenv.hostPlatform.system} not supported!";
+
+  ldpath = stdenv.lib.makeLibraryPath [
+    fontconfig freetype glib libICE libSM
+    libX11 libXext libXrender zlib
+  ];
+
+  version = "7.1.0";
+
+in stdenv.mkDerivation {
+  name = "spideroak-${version}";
+
+  src = fetchurl {
+    name = "SpiderOakONE-${version}-slack_tar_${arch}.tgz";
+    url = "https://spideroak.com/release/spideroak/slack_tar_${arch}";
+    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/${interpreter} \
+      "$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/nixpkgs/pkgs/applications/networking/ssb/patchwork-classic/default.nix b/nixpkgs/pkgs/applications/networking/ssb/patchwork-classic/default.nix
new file mode 100644
index 000000000000..1f8d0cba6d05
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ssb/patchwork-classic/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchurl, lib, makeWrapper,
+  # build dependencies
+  alsaLib, atk, cairo, cups, dbus, expat, fontconfig,
+  freetype, gdk_pixbuf, glib, gnome2, nspr, nss, xorg,
+  glibc, systemd
+}:
+
+stdenv.mkDerivation rec {
+
+  version = "2.12.0";
+
+  name = "patchwork-classic-${version}";
+
+  src = fetchurl {
+    url    = "https://github.com/ssbc/patchwork-classic-electron/releases/download/v2.12.0/ssb-patchwork-electron_2.12.0_linux-amd64.deb";
+    sha256 = "1rvp07cgqwv7ac319p0qwpfxd7l8f53m1rlvvig7qf7q23fnmbsj";
+  };
+
+  sourceRoot = ".";
+
+  unpackCmd = ''
+    ar p "$src" data.tar.xz | tar xJ
+  '';
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -R usr/share opt $out/
+
+    # fix the path in the desktop file
+    substituteInPlace \
+      $out/share/applications/ssb-patchwork-electron.desktop \
+      --replace /opt/ $out/opt/
+
+    # symlink the binary to bin/
+    ln -s $out/opt/ssb-patchwork-electron/ssb-patchwork-electron $out/bin/patchwork-classic
+  '';
+
+
+  preFixup = let
+    packages = [
+      alsaLib
+      atk
+      cairo
+      cups
+      dbus
+      expat
+      fontconfig
+      freetype
+      gdk_pixbuf
+      glib
+      gnome2.GConf
+      gnome2.gtk
+      gnome2.pango
+      nspr
+      nss
+      xorg.libX11
+      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
+      glibc
+    ];
+    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/ssb-patchwork-electron" \
+      $out/opt/ssb-patchwork-electron/ssb-patchwork-electron
+
+    # patch libnode
+    patchelf \
+      --set-rpath "${libPath}" \
+      $out/opt/ssb-patchwork-electron/libnode.so
+
+    # libffmpeg is for some reason  not executable
+    chmod a+x $out/opt/ssb-patchwork-electron/libffmpeg.so
+
+    # fix missing libudev
+    ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/ssb-patchwork-electron/libudev.so.1
+    wrapProgram $out/opt/ssb-patchwork-electron/ssb-patchwork-electron \
+      --prefix LD_LIBRARY_PATH : $out/opt/ssb-patchwork-electron
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Electron wrapper for Patchwork Classic: run as a desktop app outside the browser";
+    homepage    = "https://github.com/ssbc/patchwork-classic-electron";
+    license     = licenses.gpl3; 
+    maintainers = with maintainers; [ mrVanDalo ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/super-productivity/default.nix b/nixpkgs/pkgs/applications/networking/super-productivity/default.nix
new file mode 100644
index 000000000000..9bb4254c64a2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/super-productivity/default.nix
@@ -0,0 +1,105 @@
+{ 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 {
+  name = "super-productivity-${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/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix b/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix
new file mode 100644
index 000000000000..e4ba29d3a9f8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/acd_cli/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, buildPythonApplication, fuse
+, appdirs, colorama, dateutil, requests, requests_toolbelt
+, fusepy, sqlalchemy }:
+
+buildPythonApplication rec {
+  name = pname + "-" + version;
+  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/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix
new file mode 100644
index 000000000000..fae838a7d5f8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/backintime/common.nix
@@ -0,0 +1,46 @@
+{stdenv, fetchFromGitHub, makeWrapper, gettext, python3Packages, rsync, cron, openssh, sshfs-fuse, encfs }:
+
+let
+  inherit (python3Packages) python dbus-python keyring;
+in stdenv.mkDerivation rec {
+  version = "1.1.24";
+
+  name = "backintime-common-${version}";
+
+  src = fetchFromGitHub {
+    owner = "bit-team";
+    repo = "backintime";
+    rev = "v${version}";
+    sha256 = "0g6gabnr60ns8854hijdddbanks7319q4n3fj5l6rc4xsq0qck18";
+  };
+
+  buildInputs = [ makeWrapper gettext python dbus-python keyring openssh cron rsync sshfs-fuse encfs ];
+
+  installFlags = [ "DEST=$(out)" ];
+
+  preConfigure = "cd common";
+
+  dontAddPrefix = true;
+
+  preFixup =
+    ''
+    substituteInPlace "$out/bin/backintime" \
+      --replace "=\"/usr/share" "=\"$prefix/share"
+    wrapProgram "$out/bin/backintime" \
+      --prefix PYTHONPATH : "$PYTHONPATH" \
+      --prefix PATH : "$prefix/bin:$PATH"
+    '';
+
+  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/nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix b/nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix
new file mode 100644
index 000000000000..26288f9f6e65
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/backintime/qt4.nix
@@ -0,0 +1,28 @@
+{stdenv, makeWrapper, gettext, backintime-common, python3, python3Packages }:
+
+stdenv.mkDerivation rec {
+  inherit (backintime-common) version src installFlags;
+
+  name = "backintime-qt4-${version}";
+
+  buildInputs = [ makeWrapper gettext python3 python3Packages.pyqt4 backintime-common python3 ];
+
+  preConfigure = "cd qt4";
+  configureFlags = [  ];
+
+  dontAddPrefix = true;
+
+  preFixup =
+      ''
+      substituteInPlace "$out/bin/backintime-qt4" \
+        --replace "=\"/usr/share" "=\"$prefix/share"
+
+      wrapProgram "$out/bin/backintime-qt4" \
+        --prefix PYTHONPATH : "${backintime-common}/share/backintime/common:$PYTHONPATH" \
+        --prefix PATH : "${backintime-common}/bin:$PATH"
+    '';
+
+  meta = with stdenv.lib; {
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/sync/casync/default.nix b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix
new file mode 100644
index 000000000000..8d9b941e26e4
--- /dev/null
+++ b/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 rec {
+  name = "casync-${version}";
+  version = "2-152-ge4a3c5e";
+
+  src = fetchFromGitHub {
+    owner  = "systemd";
+    repo   = "casync";
+    rev    = "e4a3c5efc8f11e0e99f8cc97bd417665d92b40a9";
+    sha256 = "0zx6zvj5a6rr3w9s207rvpfw7gwssiqmp1p3c75bsirmz4nmsdf0";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/sync/desync/default.nix b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix
new file mode 100644
index 000000000000..e8cca04203b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "desync-${version}";
+  version = "0.3.0";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/folbricht/desync";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "folbricht";
+    repo = "desync";
+    sha256 = "1h2i6ai7q1mg2ysd3cnas96rb8g0bpp1v3hh7ip9nrfxhlplyyda";
+  };
+
+  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; # windows temporarily broken in 0.3.0 release
+    maintainers = [ maintainers.chaduffy ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix b/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix
new file mode 100644
index 000000000000..2342fb76f0c9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/desync/deps.nix
@@ -0,0 +1,129 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/datadog/zstd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/datadog/zstd";
+      rev = "940731c8fc259059120b0e617a69d54dcd7c3eee";
+      sha256 = "04nmljnk54xm2k4ydhdiidazk3765jk8h4hvcsymkrsggrfyrjfx";
+    };
+  }
+  {
+    goPackagePath = "github.com/dchest/siphash";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dchest/siphash";
+      rev = "34f201214d993633bb24f418ba11736ab8b55aa7";
+      sha256 = "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k";
+    };
+  }
+  {
+    goPackagePath = "github.com/folbricht/tempfile";
+    fetch = {
+      type = "git";
+      url = "https://github.com/folbricht/tempfile";
+      rev = "ee190cb5934293f187a9d43ee34de7d5cf9ceb83";
+      sha256 = "0vz08qvbniqxc24vhmcbq5ncnz97ncp4jbxgcf0hziazxfp114z3";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-ini/ini";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-ini/ini";
+      rev = "fa25069db393aecc09b71267d0489b357781c860";
+      sha256 = "0fs1c48hni5gc1fyz65d138jpmqm1sqpb7vw5vhx0j6lmj1nf45z";
+    };
+  }
+  {
+    goPackagePath = "github.com/hanwen/go-fuse";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hanwen/go-fuse";
+      rev = "1d35017e97018335f348413b3aeed67468d80f7b";
+      sha256 = "11rggvkd6lc5lcpsfvc9iip4z9cingzpkpshaskv2cirbxdynyi8";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/fs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/fs";
+      rev = "1455def202f6e05b95cc7bfc7e8ae67ae5141eba";
+      sha256 = "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q";
+    };
+  }
+  {
+    goPackagePath = "github.com/minio/minio-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/minio/minio-go";
+      rev = "f01ef22c977052d716c74724874f932a16f047bb";
+      sha256 = "0pn1likcwnzb2j4hi4r1ib3xlp31h2vgwyc7xnm1iv7f8l4gk2hc";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/go-homedir";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-homedir";
+      rev = "ae18d6b8b3205b561c79e8e5f69bff09736185f4";
+      sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
+    };
+  }
+  {
+    goPackagePath = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev = "c059e472caf75dbe73903f6521a20abac245b17f";
+      sha256 = "07xg8ym776j2w0k8445ii82lx8yz358cp1z96r739y13i1anqdzi";
+    };
+  }
+  {
+    goPackagePath = "github.com/pkg/sftp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/sftp";
+      rev = "08de04f133f27844173471167014e1a753655ac8";
+      sha256 = "090q4xmjbllwl3rpj1hzp0iw3qw1yvp6r3kf5cgw44ai57z96271";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "0e37d006457bf46f9e6692014ba72ef82c33022c";
+      sha256 = "1fj8rvrhgv5j8pmckzphvm3sqkzhcqp3idkxvgv13qrjdfycsa5r";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "2f5d2388922f370f4355f327fcf4cfe9f5583908";
+      sha256 = "03s92ygxfrd2c1m4697sd6iksgbar6c007w1yf3h6wmd79vr5dxs";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "d47a0f3392421c5624713c9a19fe781f651f8a50";
+      sha256 = "01dqcv7vnynwhlmb28fn50svjb9kfj04nk7frvf7mh4jd3qnrsnv";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "905a57155faa8230500121607930ebb9dd8e139c";
+      sha256 = "1qlvvb44j9ss3mkb5035i20xsd6sm0n05sqpqbi8gjw64g086zcb";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix
new file mode 100644
index 000000000000..b0315ee3477d
--- /dev/null
+++ b/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 {
+  name = "lsyncd-${version}";
+  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/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix
new file mode 100644
index 000000000000..4325c8ea88ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cmake, qtbase }:
+
+stdenv.mkDerivation rec {
+  name = "rclone-browser-${version}";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "mmozeiko";
+    repo = "RcloneBrowser";
+    rev = version;
+    sha256 = "1ldradd5c606mfkh46y4mhcvf9kbjhamw0gahksp9w43h5dh3ir7";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  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/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
new file mode 100644
index 000000000000..af01b89dc764
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "rclone-${version}";
+  version = "1.45";
+
+  goPackagePath = "github.com/ncw/rclone";
+  subPackages = [ "." ];
+
+  src = fetchFromGitHub {
+    owner = "ncw";
+    repo = "rclone";
+    rev = "v${version}";
+    sha256 = "06xg0ibv9pnrnmabh1kblvxx1pk8h5rmkr9mjbymv497sx3zgz26";
+  };
+
+  outputs = [ "bin" "out" "man" ];
+
+  postInstall = ''
+    install -D -m644 $src/rclone.1 $man/share/man/man1/rclone.1
+  '';
+
+  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 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix
new file mode 100644
index 000000000000..fc4bc6c0671e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/rsync/base.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+rec {
+  version = "3.1.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 = "1h0011dj6jgqpgribir4anljjv7bbrdcs8g91pbsmzf5zr75bk2m";
+  };
+  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 = "167vk463bb3xl9c4gsbxms111dk1ip7pq8y361xc0xfa427q9hhd";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Fast incremental file transfer utility";
+    homepage = https://rsync.samba.org/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
new file mode 100644
index 000000000000..0b4d580cd209
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/rsync/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, perl, libiconv, zlib, popt
+, enableACLs ? true, acl ? null
+, enableCopyDevicesPatch ? false
+}:
+
+assert enableACLs -> acl != 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;
+  nativeBuildInputs = [perl];
+
+  configureFlags = ["--with-nobody-group=nogroup"];
+
+  meta = base.meta // {
+    description = "A fast incremental file transfer utility";
+    maintainers = with stdenv.lib.maintainers; [ peti ehmry kampfschlaefer ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
new file mode 100644
index 000000000000..e5c04798aab8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/rsync/rrsync.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, fetchpatch, perl, rsync }:
+
+let
+  base = import ./base.nix { inherit stdenv fetchurl; };
+in
+stdenv.mkDerivation rec {
+  name = "rrsync-${base.version}";
+
+  src = base.src;
+
+  buildInputs = [ rsync ];
+  nativeBuildInputs = [perl];
+
+  # Skip configure and build phases.
+  # We just want something from the support directory
+  configurePhase = "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/nixpkgs/pkgs/applications/networking/sync/unison/default.nix b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
new file mode 100644
index 000000000000..ed48bce7b2e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix
@@ -0,0 +1,42 @@
+{stdenv, fetchurl, ocaml, lablgtk, fontschumachermisc, xset, makeWrapper, ncurses
+, enableX11 ? true}:
+
+stdenv.mkDerivation (rec {
+
+  name = "unison-2.48.4";
+  src = fetchurl {
+    url = "http://www.seas.upenn.edu/~bcpierce/unison/download/releases/stable/${name}.tar.gz";
+    sha256 = "30aa53cd671d673580104f04be3cf81ac1e20a2e8baaf7274498739d59e99de8";
+  };
+
+  buildInputs = [ ocaml makeWrapper ncurses ];
+
+  preBuild = (if enableX11 then ''
+    sed -i "s|\(OCAMLOPT=.*\)$|\1 -I $(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)|" Makefile.OCaml
+  '' else "") + ''
+  echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> fsmonitor/linux/Makefile
+  '';
+
+  makeFlags = "INSTALLDIR=$(out)/bin/" + (if enableX11 then " UISTYLE=gtk2" else "")
+    + (if ! ocaml.nativeCompilers then " NATIVE=false" else "");
+
+  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 | grep -q \"${fontschumachermisc}\" || ${xset}/bin/xset +fp \"${fontschumachermisc}/lib/X11/fonts/misc\")"
+    done
+  '' else "";
+
+  dontStrip = !ocaml.nativeCompilers;
+
+  meta = {
+    homepage = http://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/nixpkgs/pkgs/applications/networking/syncplay/default.nix b/nixpkgs/pkgs/applications/networking/syncplay/default.nix
new file mode 100644
index 000000000000..b8c905345bd8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/syncplay/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  name = "syncplay-${version}";
+  version = "1.6.1";
+
+  format = "other";
+
+  src = fetchurl {
+    url = https://github.com/Syncplay/syncplay/archive/v1.6.1.tar.gz;
+    sha256 = "15rhbc3r7l012d330hb64p8bhcpy4ydy89iv34c34a1r554b8k97";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ pyside twisted ];
+
+  makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ];
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix
new file mode 100644
index 000000000000..389d32d5a7cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/syncthing-gtk/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall
+, gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook
+, gnome3, buildPythonApplication, dateutil, pyinotify, pygobject3
+, bcrypt, gobject-introspection }:
+
+buildPythonApplication rec {
+  version = "0.9.4";
+  name = "syncthing-gtk-${version}";
+
+  src = fetchFromGitHub {
+    owner = "syncthing";
+    repo = "syncthing-gtk";
+    rev = "v${version}";
+    sha256 = "0d3rjd1xjd7zravks9a2ph7gv1cm8wxaxkkvl1fvcx15v7f3hff9";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    # For setup hook populating GI_TYPELIB_PATH
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    gtk3 librsvg libappindicator-gtk3
+    libnotify gnome3.adwaita-icon-theme
+    # Schemas with proxy configuration
+    gnome3.gsettings-desktop-schemas
+  ];
+
+  propagatedBuildInputs = [
+    dateutil pyinotify pygobject3 bcrypt
+  ];
+
+  patches = [
+    (fetchpatch {
+      url = https://github.com/syncthing/syncthing-gtk/commit/b2535e5a9cdb31c4987ab7af37f62d58d38255b7.patch;
+      sha256 = "047v79wz2a9334gbzywlqwpacrk53s26ksvfqaddk06avv8742w7";
+    })
+    (substituteAll {
+      src = ./paths.patch;
+      killall = "${killall}/bin/killall";
+      syncthing = "${syncthing}/bin/syncthing";
+    })
+  ];
+
+  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;
+    maintainers = with maintainers; [ ];
+    platforms = syncthing.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch b/nixpkgs/pkgs/applications/networking/syncthing-gtk/paths.patch
new file mode 100644
index 000000000000..0ba5a4f2db84
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch b/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch
new file mode 100644
index 000000000000..58ac15253aed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/syncthing/add-stcli-target.patch
@@ -0,0 +1,17 @@
+diff --git i/build.go w/build.go
+index 7d400d6f..1b5e1d25 100644
+--- i/build.go
++++ w/build.go
+@@ -175,6 +175,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",
++		buildPkg:    "github.com/syncthing/syncthing/cmd/stcli",
++		binaryName:  "stcli", // .exe will be added automatically for Windows builds
++	},
+ }
+ 
+ func init() {
diff --git a/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
new file mode 100644
index 000000000000..b084e4af972a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
@@ -0,0 +1,109 @@
+{ buildGoPackage, fetchpatch, stdenv, lib, procps, fetchFromGitHub }:
+
+let
+  common = { stname, target, postInstall ? "" }:
+    buildGoPackage rec {
+      version = "0.14.54";
+      name = "${stname}-${version}";
+
+      src = fetchFromGitHub {
+        owner  = "syncthing";
+        repo   = "syncthing";
+        rev    = "v${version}";
+        sha256 = "0l73ka71l6gxv46wmlyzj8zhfpfj3vf6nv6x3x0z25ymr3wa2fza";
+      };
+
+      goPackagePath = "github.com/syncthing/syncthing";
+
+      patches = [
+        ./add-stcli-target.patch
+        (fetchpatch {
+          url = "https://github.com/syncthing/syncthing/commit/e7072feeb7669948c3e43f55d21aec15481c33ba.patch";
+          sha256 = "1pcybww2vdx45zhd1sd53v7fp40vfgkwqgy8flv7hxw2paq8hxd4";
+        })
+      ];
+      BUILD_USER="nix";
+      BUILD_HOST="nix";
+
+      buildPhase = ''
+        runHook preBuild
+        pushd go/src/${goPackagePath}
+        go run build.go -no-upgrade -version v${version} build ${target}
+        popd
+        runHook postBuild
+      '';
+
+      installPhase = ''
+        pushd go/src/${goPackagePath}
+        runHook preInstall
+        install -Dm755 ${target} $bin/bin/${target}
+        runHook postInstall
+        popd
+      '';
+
+      inherit postInstall;
+
+      meta = with lib; {
+        homepage = https://www.syncthing.net/;
+        description = "Open Source Continuous File Synchronization";
+        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/nixpkgs/pkgs/applications/networking/tcpkali/default.nix b/nixpkgs/pkgs/applications/networking/tcpkali/default.nix
new file mode 100644
index 000000000000..8a056e21692b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/tcpkali/default.nix
@@ -0,0 +1,22 @@
+{stdenv, autoreconfHook, fetchFromGitHub, bison}:
+
+let version = "1.1.1"; in
+
+stdenv.mkDerivation rec {
+  name = "tcpkali-${version}";
+  src = fetchFromGitHub {
+    owner = "machinezone";
+    repo = "tcpkali";
+    rev = "v${version}";
+    sha256 = "09ky3cccaphcqc6nhfs00pps99lasmzc2pf5vk0gi8hlqbbhilxf";
+  };
+  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/nixpkgs/pkgs/applications/networking/testssl/default.nix b/nixpkgs/pkgs/applications/networking/testssl/default.nix
new file mode 100644
index 000000000000..4a1f71f4b4f7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/testssl/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, makeWrapper, lib
+, dnsutils, coreutils, openssl, nettools, utillinux, procps }:
+
+let
+  version = "2.9.5-7";
+
+in stdenv.mkDerivation rec {
+  name = "testssl.sh-${version}";
+
+  src = fetchFromGitHub {
+    owner = "drwetter";
+    repo = "testssl.sh";
+    rev = "v${version}";
+    sha256 = "02xp0yi53xf6jw6v633zs2ws2iyyvq3mlkimg0cv3zvj7nw9x5wr";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [
+    coreutils # for pwd and printf
+    dnsutils  # for dig
+    nettools  # for hostname
+    openssl   # for openssl
+    procps    # for ps
+    utillinux # for hexdump
+  ];
+
+  postPatch = ''
+    substituteInPlace testssl.sh                                               \
+      --replace /bin/pwd                    pwd                                \
+      --replace TESTSSL_INSTALL_DIR:-\"\"   TESTSSL_INSTALL_DIR:-\"$out\"
+  '';
+
+  installPhase = ''
+    install -Dt $out/bin testssl.sh
+
+    wrapProgram $out/bin/testssl.sh                                            \
+      --prefix PATH ':' ${lib.makeBinPath buildInputs}
+
+    cp -r etc $out
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/transporter/default.nix b/nixpkgs/pkgs/applications/networking/transporter/default.nix
new file mode 100644
index 000000000000..c5b329b5f0a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/transporter/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkgconfig
+, granite
+, vala_0_40
+, python3
+, gnome3
+, libxml2
+, gettext
+, gobject-introspection
+, appstream-glib
+, desktop-file-utils
+, magic-wormhole
+, wrapGAppsHook }:
+
+let
+  pname = "Transporter";
+  version = "1.3.3";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "bleakgrey";
+    repo = pname;
+    rev = version;
+    sha256 = "19zb2yqmyyhk5vgh6p278b76shlq0r8ykk1ks8zzr187nr5lf5k1";
+  };
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    gettext
+    gobject-introspection # For setup hook
+    libxml2
+    meson
+    ninja
+    pkgconfig
+    vala_0_40
+    python3
+    wrapGAppsHook
+  ];
+
+  buildInputs = with gnome3; [
+    defaultIconTheme # If I omit this there's no icons in KDE
+    glib
+    granite
+    gsettings-desktop-schemas
+    gtk3
+    libgee
+    magic-wormhole
+  ];
+
+  prePatch = ''
+  # The paths were hardcoded
+  substituteInPlace ./src/WormholeInterface.vala \
+    --replace /bin/wormhole ${magic-wormhole}/bin/wormhole
+  '';
+
+  postPatch = ''
+    chmod +x ./meson/post_install.py
+    patchShebangs ./meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple magic-wormhole client";
+    homepage    = https://github.com/bleakgrey/Transporter;
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ worldofpeace ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/tsung/default.nix b/nixpkgs/pkgs/applications/networking/tsung/default.nix
new file mode 100644
index 000000000000..0ee6d45e369a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/tsung/default.nix
@@ -0,0 +1,50 @@
+{ fetchurl, stdenv, lib, makeWrapper,
+  erlang,
+  python2, python2Packages,
+  perl, perlPackages,
+  gnuplot }:
+
+stdenv.mkDerivation rec {
+  name = "tsung-${version}";
+  version = "1.7.0";
+  src = fetchurl {
+    url = "http://tsung.erlang-projects.org/dist/tsung-${version}.tar.gz";
+    sha256 = "6394445860ef34faedf8c46da95a3cb206bc17301145bc920151107ffa2ce52a";
+  };
+
+  buildInputs = [ makeWrapper ];
+  propagatedBuildInputs = [
+    erlang
+    gnuplot
+    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 "${lib.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/nixpkgs/pkgs/applications/networking/umurmur/default.nix b/nixpkgs/pkgs/applications/networking/umurmur/default.nix
new file mode 100644
index 000000000000..a1fe790b1190
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/umurmur/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, openssl, protobufc, libconfig }:
+
+stdenv.mkDerivation rec {
+  name = "umurmur-${version}";
+  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/nixpkgs/pkgs/applications/networking/vnstat/default.nix b/nixpkgs/pkgs/applications/networking/vnstat/default.nix
new file mode 100644
index 000000000000..289d1dffc961
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/vnstat/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, gd, ncurses, sqlite }:
+
+stdenv.mkDerivation rec {
+  name = "vnstat-${version}";
+  version = "2.1";
+
+  src = fetchurl {
+    sha256 = "0yk0x6bg9f36dsslhayyyi8fg04yvzjzqkjmlrcsrv6nnggchb6i";
+    url = "https://humdi.net/vnstat/${name}.tar.gz";
+  };
+
+  buildInputs = [ gd ncurses sqlite ];
+
+  postPatch = ''
+    substituteInPlace src/cfg.c --replace /usr/local $out
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
new file mode 100644
index 000000000000..3dba90f964f5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, granite, gtk3
+, gnome3, json-glib, libsoup, clutter, clutter-gtk, libchamplain, webkitgtk
+, libappindicator, desktop-file-utils, appstream, gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "meteo";
+  version = "0.8.5";
+
+  name = "${pname}-${version}";
+
+  src = fetchFromGitLab {
+    owner = "bitseater";
+    repo = pname;
+    rev = version;
+    sha256 = "1mc2djhkg0nzcjmy87l1wqwni48vgpqh8s1flr90pipk12a1mh7n";
+  };
+
+  nativeBuildInputs = [
+    appstream
+    desktop-file-utils
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    clutter
+    clutter-gtk
+    gnome3.geocode-glib
+    gtk3
+    json-glib
+    libappindicator
+    libchamplain
+    libsoup
+    webkitgtk
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  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/nixpkgs/pkgs/applications/networking/znc/default.nix b/nixpkgs/pkgs/applications/networking/znc/default.nix
new file mode 100644
index 000000000000..2f736dd5856d
--- /dev/null
+++ b/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 {
+  name = "znc-${version}";
+  version = "1.7.1";
+
+  src = fetchurl {
+    url = "https://znc.in/releases/archive/${name}.tar.gz";
+    sha256 = "1i1r1lh9q2mr1bg520zrvrlwhrhy6wibrin78wjxq1gab1qymks4";
+  };
+
+  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/nixpkgs/pkgs/applications/networking/znc/modules.nix b/nixpkgs/pkgs/applications/networking/znc/modules.nix
new file mode 100644
index 000000000000..42d2093ee3a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/znc/modules.nix
@@ -0,0 +1,138 @@
+{ 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 rec {
+
+  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-2015-08-27";
+    module_name = "clientbuffer";
+
+    src = fetchFromGitHub {
+      owner = "jpnurmi";
+      repo = "znc-clientbuffer";
+      rev = "fe0f368e1fcab2b89d5c94209822d9b616cea840";
+      sha256 = "1s8bqqlwy9kmcpmavil558rd2b0wigjlzp2lpqpcqrd1cg25g4a7";
+    };
+
+    meta = with stdenv.lib; {
+      description = "ZNC module for client specific buffers";
+      homepage = https://github.com/jpnurmi/znc-clientbuffer;
+      license = licenses.asl20;
+      maintainers = with maintainers; [ hrdinka ];
+    };
+  };
+
+  fish = zncDerivation rec {
+    name = "znc-fish-${version}";
+    version = "git-2014-10-10";
+    module_name = "fish";
+
+    src = fetchFromGitHub {
+      # this fork works with ZNC 1.6
+      owner = "jarrydpage";
+      repo = "znc-fish";
+      rev = "9c580e018a1a08374e814fc06f551281cff827de";
+      sha256 = "0yvs0jkwwp18qxqvw1dvir91ggczz56ka00k0zlsb81csdi8xfvl";
+    };
+
+    meta = {
+      description = "ZNC FiSH module";
+      homepage = https://github.com/dctrwatson/znc-fish;
+      maintainers = [ stdenv.lib.maintainers.offline ];
+    };
+  };
+
+  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/nixpkgs/pkgs/applications/office/abiword/default.nix b/nixpkgs/pkgs/applications/office/abiword/default.nix
new file mode 100644
index 000000000000..8dd127715aeb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/abiword/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig, gtk3, fribidi
+, libpng, popt, libgsf, enchant, wv, librsvg, bzip2, libjpeg, perl
+, boost, libxslt, goffice, wrapGAppsHook, iconTheme
+}:
+
+stdenv.mkDerivation rec {
+  name = "abiword-${version}";
+  version = "3.0.2";
+
+  src = fetchurl {
+    url = "https://www.abisource.com/downloads/abiword/${version}/source/${name}.tar.gz";
+    sha256 = "08imry821g81apdwym3gcs4nss0l9j5blqk31j5rv602zmcd9gxg";
+  };
+
+  enableParallelBuilding = true;
+
+  patches = [
+    # https://bugzilla.abisource.com/show_bug.cgi?id=13791
+    (fetchurl {
+      url = https://bugzilla.abisource.com/attachment.cgi?id=5860;
+      sha256 = "02p8kz02xm1197zcpzjs010mna9hxsbq5lwgxr8b7qhh9yxja7al";
+    })
+  ];
+
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+
+  buildInputs = [
+    gtk3 librsvg bzip2 fribidi libpng popt
+    libgsf enchant wv libjpeg perl boost libxslt goffice iconTheme
+  ];
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/aesop/default.nix b/nixpkgs/pkgs/applications/office/aesop/default.nix
new file mode 100644
index 000000000000..74a56b1f6caf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/aesop/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, fetchpatch, vala_0_40, pkgconfig, meson, ninja, python3, granite, gtk3
+, gnome3, desktop-file-utils, json-glib, libsoup, poppler, gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "aesop";
+  version = "1.0.7";
+
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "lainsce";
+    repo = pname;
+    rev = version;
+    sha256 = "17hjg4qcy8q9xl170yapbhn9vdsn3jf537jsggq51pp0fnhvsnqs";
+  };
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
+    gnome3.libgee
+    granite
+    gtk3
+    json-glib
+    libsoup
+    poppler
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The simplest PDF viewer around";
+    homepage = https://github.com/lainsce/aesop;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ worldofpeace ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c.patch b/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c.patch
new file mode 100644
index 000000000000..ebf2f0900d98
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/antiword/10_fix_buffer_overflow_wordole_c.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/nixpkgs/pkgs/applications/office/antiword/default.nix b/nixpkgs/pkgs/applications/office/antiword/default.nix
new file mode 100644
index 000000000000..96a518a7a28f
--- /dev/null
+++ b/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.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/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix b/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix
new file mode 100644
index 000000000000..be31f5fd102f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchzip, jre }:
+
+stdenv.mkDerivation rec {
+  name = "atlassian-cli-${version}";
+  version = "7.8.0";
+  
+  src = fetchzip {
+    url  = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${name}-distribution.zip";
+    sha256  = "111s4d9m6vxq8jwh1d6ar1f4n5zmyjg7gi2vl3aq63kxbfld9vw7";
+    extraPostFetch = "chmod go-w $out";
+  };
+  
+  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/nixpkgs/pkgs/applications/office/atlassian-cli/wrapper.sh b/nixpkgs/pkgs/applications/office/atlassian-cli/wrapper.sh
new file mode 100755
index 000000000000..80b60dbc468c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/office/autokey/default.nix b/nixpkgs/pkgs/applications/office/autokey/default.nix
new file mode 100644
index 000000000000..e4b89ef36100
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/autokey/default.nix
@@ -0,0 +1,38 @@
+{ lib, python3Packages, fetchFromGitHub, wrapGAppsHook, gobject-introspection
+, gnome3, 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 gnome3.gtksourceview
+    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/nixpkgs/pkgs/applications/office/autokey/remove-requires-dbus-python.patch b/nixpkgs/pkgs/applications/office/autokey/remove-requires-dbus-python.patch
new file mode 100644
index 000000000000..73372e435291
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/office/beancount/bean-add.nix b/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
new file mode 100644
index 000000000000..cfd7a4eda202
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+stdenv.mkDerivation rec {
+  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; [ ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/office/bookworm/default.nix b/nixpkgs/pkgs/applications/office/bookworm/default.nix
new file mode 100644
index 000000000000..04b2072967ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/bookworm/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchFromGitHub, fetchpatch, vala_0_40, python3, python2, pkgconfig, libxml2, meson, ninja, gtk3, granite, gnome3
+, gobject-introspection, sqlite, poppler, poppler_utils, html2text, curl, gnugrep, coreutils, bash, unzip, unar, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  pname = "bookworm";
+  version = "unstable-2018-11-19";
+
+  src = fetchFromGitHub {
+    owner = "babluboy";
+    repo = pname;
+    rev = "4c3061784ff42151cac77d12bf2a28bf831fdfc5";
+    sha256 = "0yrqxa60xlvz249kx966z5krx8i7h17ac0hjgq9p8f0irzy5yp0n";
+  };
+
+  nativeBuildInputs = [
+    bash
+    gobject-introspection
+    libxml2
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
+    wrapGAppsHook
+  ];
+
+  buildInputs = with gnome3; [
+    glib
+    gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
+    granite
+    gtk3
+    html2text
+    libgee
+    poppler
+    python2
+    sqlite
+    webkitgtk
+  ];
+
+  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/nixpkgs/pkgs/applications/office/calligra/default.nix b/nixpkgs/pkgs/applications/office/calligra/default.nix
new file mode 100644
index 000000000000..a7c6165bdd2b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/calligra/default.nix
@@ -0,0 +1,69 @@
+{
+  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, 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.1.0";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/${name}.tar.xz";
+    sha256 = "0w782k0hprpb6viixnqz34sp0z5csv3prdby46z22qqkcipcs638";
+  };
+
+  patches = [ ./qt5_11.patch ];
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+
+  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 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";
+
+  postInstall = ''
+    for i in $out/bin/*; do
+      wrapProgram $i \
+        --prefix PATH ':' "${pstoedit.out}/bin" \
+        --prefix XDG_DATA_DIRS ':' "${breeze-icons}/share"
+    done
+  '';
+
+  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/nixpkgs/pkgs/applications/office/calligra/qt5_11.patch b/nixpkgs/pkgs/applications/office/calligra/qt5_11.patch
new file mode 100644
index 000000000000..66ff8c6eedcd
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/office/cb2bib/default.nix b/nixpkgs/pkgs/applications/office/cb2bib/default.nix
new file mode 100644
index 000000000000..1faf47d680aa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/cb2bib/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, qmake, qtbase, qtwebkit, qtx11extras, lzo, libX11 }:
+
+stdenv.mkDerivation rec {
+  name = pname + "-" + version;
+  pname = "cb2bib";
+  version = "1.9.9";
+  src = fetchurl {
+    url = "https://www.molspaces.com/dl/progs/${name}.tar.gz";
+    sha256 = "12x7zv964r26cfmf3yx5pa8ihc5bd9p199w2g4vc0sb44izryg47";
+  };
+  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/nixpkgs/pkgs/applications/office/fava/default.nix b/nixpkgs/pkgs/applications/office/fava/default.nix
new file mode 100644
index 000000000000..29ea9ff2910f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/fava/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, python3, beancount }:
+
+let
+  inherit (python3.pkgs) buildPythonApplication fetchPypi;
+in
+buildPythonApplication rec {
+  pname = "fava";
+  version = "1.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c4eba4203bddaa7bc9d54971d2afeeebab0bc80ce89be1375a41a07c4e82b62f";
+  };
+
+  doCheck = false;
+
+  propagatedBuildInputs = with python3.pkgs;
+    [ flask dateutil pygments wheel markdown2 flaskbabel tornado
+      click beancount ];
+
+  meta = {
+    homepage = https://beancount.github.io/fava;
+    description = "Web interface for beancount";
+    license = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/gnucash/2.4.nix b/nixpkgs/pkgs/applications/office/gnucash/2.4.nix
new file mode 100644
index 000000000000..40c91d6488d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/gnucash/2.4.nix
@@ -0,0 +1,91 @@
+{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk2, libgnomeui, libofx
+, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui
+, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper, libglade
+, libgsf, libart_lgpl, perlPackages, aqbanking, gwenhywfar, hicolor-icon-theme
+, pcre
+}:
+
+/* If you experience GConf errors when running GnuCash on NixOS, see
+ * http://wiki.nixos.org/wiki/Solve_GConf_errors_when_running_GNOME_applications
+ * for a possible solution.
+ */
+
+stdenv.mkDerivation rec {
+  name = "gnucash-2.4.15";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
+    sha256 = "058mgfwic6a2g7jq6iip5hv45md1qaxy25dj4lvlzjjr141wm4gx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    libxml2 gconf glib gtk2 libgnomeui libgtkhtml gtkhtml
+    libgnomeprint goffice enchant gettext intltool perl guile slibGuile
+    swig isocodes bzip2 makeWrapper libofx libglade libgsf libart_lgpl
+    perlPackages.DateManip perlPackages.FinanceQuote aqbanking gwenhywfar
+    hicolor-icon-theme pcre
+  ];
+  propagatedUserEnvPkgs = [ gconf ];
+
+  configureFlags = [
+    "CFLAGS=-O3"
+    "CXXFLAGS=-O3"
+    "--disable-dbi"
+    "--enable-ofx"
+    "--enable-aqbanking"
+  ];
+
+  postInstall = ''
+    # Auto-updaters don't make sense in Nix.
+    rm $out/bin/gnc-fq-update
+
+    sed -i $out/bin/update-gnucash-gconf \
+       -e 's|--config-source=[^ ]* --install-schema-file|--makefile-install-rule|'
+
+    for prog in $(echo "$out/bin/"*)
+    do
+      # Don't wrap the gnc-fq-* scripts, since gnucash calls them as
+      # "perl <script>', i.e. they must be Perl scripts.
+      if [[ $prog =~ gnc-fq ]]; then continue; fi
+      wrapProgram "$prog"                                               \
+        --set SCHEME_LIBRARY_PATH "$SCHEME_LIBRARY_PATH"                \
+        --prefix GUILE_LOAD_PATH ":" "$GUILE_LOAD_PATH"                 \
+        --prefix LD_LIBRARY_PATH ":" "${libgnomeui}/lib/libglade/2.0"   \
+        --prefix LD_LIBRARY_PATH ":" "${libbonoboui}/lib/libglade/2.0"  \
+        --prefix PERL5LIB ":" "$PERL5LIB"                               \
+        --set GCONF_CONFIG_SOURCE 'xml::~/.gconf'                       \
+        --prefix PATH ":" "$out/bin:${stdenv.lib.makeBinPath [ perl gconf ]}"
+    done
+  '';
+
+  # The following settings fix failures in the test suite. It's not required otherwise.
+  NIX_LDFLAGS = "-rpath=${guile}/lib -rpath=${glib.out}/lib";
+  preCheck = "export GNC_DOT_DIR=$PWD/dot-gnucash";
+
+  doCheck = false;      # https://github.com/NixOS/nixpkgs/issues/11084
+
+  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/nixpkgs/pkgs/applications/office/gnucash/2.6.nix b/nixpkgs/pkgs/applications/office/gnucash/2.6.nix
new file mode 100644
index 000000000000..471d2d757d96
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/gnucash/2.6.nix
@@ -0,0 +1,116 @@
+{ fetchurl, fetchpatch, stdenv, intltool, pkgconfig, file, makeWrapper
+, libxml2, libxslt, perl, perlPackages, gconf, guile
+, glib, gtk2, libofx, aqbanking, gwenhywfar, libgnomecanvas, goffice
+, webkit, glibcLocales, gsettings-desktop-schemas, dconf
+, gettext, swig, slibGuile, enchant, bzip2, isocodes, libdbi, libdbiDrivers
+, pango, gdk_pixbuf, hicolor-icon-theme
+}:
+
+/*
+Two cave-ats right now:
+  1. HTML reports are broken
+  2. You need to have dconf installed (GNOME3 should have it automatically,
+     otherwise put it in environment.systemPackages), for settings
+*/
+
+stdenv.mkDerivation rec {
+  name = "gnucash-2.6.18-1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
+    sha256 = "1794qi7lkn1kbnhzk08wawacfcphbln3ngdl3q0qax5drv7hnwv8";
+  };
+
+  patches = [
+    (fetchpatch {
+     sha256 = "11nlf9j7jm1i37mfcmmnkplxr3nlf257fxd01095vd65i2rn1m8h";
+     name = "fix-brittle-test.patch";
+     url = "https://github.com/Gnucash/gnucash/commit/42ac55e03a1a84739f4a5b7a247c31d91c0adc4a.patch";
+    })
+  ];
+
+  nativeBuildInputs = [ intltool pkgconfig file makeWrapper ];
+
+  buildInputs = [
+    # general
+    libxml2 libxslt glibcLocales gettext swig enchant
+    bzip2 isocodes
+    # glib, gtk...
+    glib gtk2 goffice webkit hicolor-icon-theme
+    # gnome...
+    dconf gconf libgnomecanvas gsettings-desktop-schemas
+    # financial
+    libofx aqbanking gwenhywfar
+    # perl
+    perl perlPackages.FinanceQuote perlPackages.DateManip
+    # guile
+    guile slibGuile
+    # database backends
+    libdbi libdbiDrivers
+  ];
+
+  postPatch = ''
+    patchShebangs ./src
+  '';
+
+  configureFlags = [
+    "CFLAGS=-O3"
+    "CXXFLAGS=-O3"
+    "--enable-dbi"
+    "--with-dbi-dbd-dir=${libdbiDrivers}/lib/dbd/"
+    "--enable-ofx"
+    "--enable-aqbanking"
+  ];
+
+  postInstall = ''
+    # Auto-updaters don't make sense in Nix.
+    rm $out/bin/gnc-fq-update
+
+    #sed -i $out/bin/update-gnucash-gconf \
+    #   -e 's|--config-source=[^ ]* --install-schema-file|--makefile-install-rule|'
+
+    for prog in $(echo "$out/bin/"*)
+    do
+      # Don't wrap the gnc-fq-* scripts, since gnucash calls them as
+      # "perl <script>', i.e. they must be Perl scripts.
+      if [[ $prog =~ gnc-fq ]]; then continue; fi
+      wrapProgram "$prog"                                               \
+        --set SCHEME_LIBRARY_PATH "$SCHEME_LIBRARY_PATH"                \
+        --prefix GUILE_LOAD_PATH ":" "$GUILE_LOAD_PATH"                 \
+        --prefix PERL5LIB ":" "$PERL5LIB"                               \
+        --set GCONF_CONFIG_SOURCE 'xml::~/.gconf'                       \
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${name}" \
+        --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"  \
+        --prefix PATH ":" "$out/bin:${stdenv.lib.makeBinPath [ perl gconf ]}"
+    done
+  '';
+
+  # The following settings fix failures in the test suite. It's not required otherwise.
+  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ guile glib gtk2 pango gdk_pixbuf ];
+  preCheck = "export GNC_DOT_DIR=$PWD/dot-gnucash";
+  doCheck = true;
+
+  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/nixpkgs/pkgs/applications/office/gnucash/default.nix b/nixpkgs/pkgs/applications/office/gnucash/default.nix
new file mode 100644
index 000000000000..e3c03eef9b92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/gnucash/default.nix
@@ -0,0 +1,109 @@
+{ fetchurl, stdenv, pkgconfig, makeWrapper, cmake, gtest
+, boost, icu, libxml2, libxslt, gettext, swig, isocodes, gtk3, glibcLocales
+, webkit, 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 {
+  name = "gnucash-${version}";
+  version = "3.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
+    sha256 = "0grr5qi5rn1xvr7qx5d7mcxa2mcgycy2b325ry73bb485a6yv5l3";
+  };
+
+  nativeBuildInputs = [ pkgconfig makeWrapper cmake gtest ];
+
+  buildInputs = [
+    boost icu libxml2 libxslt gettext swig isocodes gtk3 glibcLocales
+    webkit dconf hicolor-icon-theme libofx aqbanking gwenhywfar libdbi
+    libdbiDrivers guile
+    perlWrapper perl
+  ] ++ (with perlPackages; [ FinanceQuote DateManip ]);
+
+  propagatedUserEnvPkgs = [ dconf ];
+
+  # glib-2.58 deprecrated g_type_class_add_private
+  # Should probably be removed next version bump
+  CXXFLAGS = [ "-Wno-deprecated-declarations" ];
+
+  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/${name}" \
+      --prefix XDG_DATA_DIRS : "${hicolor-icon-theme}/share" \
+      --prefix PERL5LIB ":" "$PERL5LIB" \
+      --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
+  '';
+
+  # TODO: The following tests FAILED:
+  #   61 - test-gnc-timezone (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
+    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/nixpkgs/pkgs/applications/office/gnumeric/default.nix b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
new file mode 100644
index 000000000000..5d0985b0ba2e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, pkgconfig, intltool, perlPackages
+, goffice, gnome3, makeWrapper, gtk3, bison, pythonPackages
+, itstool
+}:
+
+let
+  inherit (pythonPackages) python pygobject3;
+in stdenv.mkDerivation rec {
+  pname = "gnumeric";
+  version = "1.12.44";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0147962c6ybdsj57rz95nla0rls7g545wc2n7pz59zmzyd5pksk0";
+  };
+
+  configureFlags = [ "--disable-component" ];
+
+  nativeBuildInputs = [ pkgconfig intltool bison itstool makeWrapper ];
+
+  # ToDo: optional libgda, introspection?
+  buildInputs = [
+    goffice gtk3 gnome3.defaultIconTheme
+    python pygobject3
+  ] ++ (with perlPackages; [ perl XMLParser ]);
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    for f in "$out"/bin/gnumeric-*; do
+      wrapProgram $f \
+        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
+        ${stdenv.lib.optionalString (!stdenv.isDarwin) "--prefix GIO_EXTRA_MODULES : '${stdenv.lib.getLib gnome3.dconf}/lib/gio/modules'"}
+    done
+  '';
+
+  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/nixpkgs/pkgs/applications/office/grisbi/default.nix b/nixpkgs/pkgs/applications/office/grisbi/default.nix
new file mode 100644
index 000000000000..7c07082b3041
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/grisbi/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, gtk, pkgconfig, libofx, intltool, wrapGAppsHook
+, hicolor-icon-theme, libsoup, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "grisbi-${version}";
+  version = "1.0.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/grisbi/${name}.tar.bz2";
+    sha256 = "1rh2iqvi7lpz5l57vn7qk9azil3y1g65mfbi9hhbx956knh9bpf6";
+  };
+
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+  buildInputs = [ gtk libofx intltool hicolor-icon-theme libsoup
+    gnome3.defaultIconTheme ];
+
+  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 = "http://grisbi.org";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ layus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/homebank/default.nix b/nixpkgs/pkgs/applications/office/homebank/default.nix
new file mode 100644
index 000000000000..12b5aef898d1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/homebank/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, gtk, pkgconfig, libofx, intltool, wrapGAppsHook
+, hicolor-icon-theme, libsoup, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "homebank-5.2.2";
+  src = fetchurl {
+    url = "http://homebank.free.fr/public/${name}.tar.gz";
+    sha256 = "19cm49p2x6nwia2yvwj3fv7jxbhw0vx4bs1zqbfvdr5vzwgj5j5c";
+  };
+
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+  buildInputs = [ gtk libofx intltool hicolor-icon-theme libsoup
+    gnome3.defaultIconTheme ];
+
+  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/nixpkgs/pkgs/applications/office/ib/controller/default.nix b/nixpkgs/pkgs/applications/office/ib/controller/default.nix
new file mode 100644
index 000000000000..b39617e02db2
--- /dev/null
+++ b/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";
+  name = "ib-controller-${version}";
+
+  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/nixpkgs/pkgs/applications/office/ib/tws/default.nix b/nixpkgs/pkgs/applications/office/ib/tws/default.nix
new file mode 100644
index 000000000000..59ecb5a5c3b7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ib/tws/default.nix
@@ -0,0 +1,96 @@
+{ stdenv, requireFile, jdk }:
+
+stdenv.mkDerivation rec {
+  version = "9542";
+  name = "ib-tws-${version}";
+
+  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/nixpkgs/pkgs/applications/office/impressive/default.nix b/nixpkgs/pkgs/applications/office/impressive/default.nix
new file mode 100644
index 000000000000..8946bbab9316
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/impressive/default.nix
@@ -0,0 +1,68 @@
+{ fetchurl, stdenv, python2, makeWrapper, lib
+, SDL, ghostscript, pdftk, dejavu_fonts }:
+
+let
+  version = "0.12.0";
+  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.
+
+    name = "impressive-${version}";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/impressive/Impressive-${version}.tar.gz";
+      sha256 = "0zaqq3yvd296mfr5bxpj2hqlk7vrb0rsbgd4dc1l5ag46giqvivx";
+    };
+
+    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/nixpkgs/pkgs/applications/office/jabref/default.nix b/nixpkgs/pkgs/applications/office/jabref/default.nix
new file mode 100644
index 000000000000..5dfd03570121
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/jabref/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem, jdk, jre, wrapGAppsHook, gtk3, gsettings-desktop-schemas }:
+
+stdenv.mkDerivation rec {
+  version = "3.8.1";
+  name = "jabref-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/JabRef/jabref/releases/download/v${version}/JabRef-${version}.jar";
+    sha256 = "11asfym74zdq46i217z5n6vc79gylcx8xn7nvwacfqmym0bz79cg";
+  };
+
+  desktopItem = makeDesktopItem {
+    comment =  meta.description;
+    name = "jabref";
+    desktopName = "JabRef";
+    genericName = "Bibliography manager";
+    categories = "Application;Office;";
+    icon = "jabref";
+    exec = "jabref";
+  };
+
+  buildInputs = [ makeWrapper jdk wrapGAppsHook gtk3 gsettings-desktop-schemas ];
+
+  unpackPhase = "#";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/java $out/share/icons
+
+    cp -r ${desktopItem}/share/applications $out/share/
+
+    jar xf $src images/icons/JabRef-icon-mac.svg
+    cp images/icons/JabRef-icon-mac.svg $out/share/icons/jabref.svg
+
+    ln -s $src $out/share/java/jabref-${version}.jar
+    makeWrapper ${jre}/bin/java $out/bin/jabref \
+      --add-flags "-jar $out/share/java/jabref-${version}.jar"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Open source bibliography reference manager";
+    homepage = http://jabref.sourceforge.net;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.gebner ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/jameica/default.nix b/nixpkgs/pkgs/applications/office/jameica/default.nix
new file mode 100644
index 000000000000..61cc3ea78f05
--- /dev/null
+++ b/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.2";
+  _build = "450";
+  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 = "Application;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 = "197n35lvx51k6cbp3fhndvfb38sikl4mjqcd42fgvn2khy2sij68";
+  };
+
+  # 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/nixpkgs/pkgs/applications/office/keepnote/default.nix b/nixpkgs/pkgs/applications/office/keepnote/default.nix
new file mode 100644
index 000000000000..2e0b3f3fed7d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/office/kexi/default.nix b/nixpkgs/pkgs/applications/office/kexi/default.nix
new file mode 100644
index 000000000000..66fde2497e3f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/kexi/default.nix
@@ -0,0 +1,54 @@
+{
+  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, mysql, marble, postgresql
+}:
+
+mkDerivation rec {
+  pname = "kexi";
+  version = "3.1.0";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/src/${name}.tar.xz";
+    sha256 = "1ysj44qq75wglw4d080l3gfw47695gapf29scxhb1g3py55csmbd";
+  };
+
+  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 mysql.connector-c marble postgresql
+  ];
+
+  propagatedUserEnvPkgs = [ kproperty ];
+
+  patches = [
+    (fetchpatch {
+      url = "https://phabricator.kde.org/file/data/6iwzltiifyqwjnzbvyo6/PHID-FILE-li4a7j35wkdkm2qdtnp4/D11503.diff";
+      sha256 = "0yj717m4x1zb4xjy1ayhz78xkxpawxgsvjgvf5iw81jnlr8absq9";
+    })
+  ];
+
+  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/nixpkgs/pkgs/applications/office/kmymoney/default.nix b/nixpkgs/pkgs/applications/office/kmymoney/default.nix
new file mode 100644
index 000000000000..4a91840077ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/kmymoney/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, lib, fetchurl, doxygen, extra-cmake-modules, graphviz, kdoctools
+, fetchpatch
+
+, akonadi, alkimia, aqbanking, gmp, gwenhywfar, kactivities, karchive
+, kcmutils, kcontacts, kdewebkit, kdiagram, kholidays, kidentitymanagement
+, kitemmodels, libical, libofx, qgpgme
+
+# Needed for running tests:
+, qtbase, xvfb_run
+
+# For weboob, which only supports Python 2.x:
+, python2Packages
+}:
+
+stdenv.mkDerivation rec {
+  name = "kmymoney-${version}";
+  version = "5.0.1";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/kmymoney/${version}/src/${name}.tar.xz";
+    sha256 = "1c9apnvc07y17pzy4vygry1dai5ass2z7j354lrcppa85b18yvnx";
+  };
+
+  # Fix build with Qt 5.11.
+  patches = lib.singleton (fetchpatch {
+    url = "https://cgit.kde.org/kmymoney.git/patch/?id="
+        + "e5198a902996b27bf9abde0ad24af82d55ab5dc1";
+    sha256 = "1h2f1xznf7343s26fh94x8n2ci0pijk5j86f24lvghawsw848316";
+  });
+
+  # 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 python2Packages.wrapPython
+  ];
+
+  buildInputs = [
+    akonadi alkimia aqbanking gmp gwenhywfar kactivities karchive kcmutils
+    kcontacts kdewebkit kdiagram kholidays kidentitymanagement kitemmodels
+    libical libofx qgpgme
+
+    # Put it into buildInputs so that CMake can find it, even though we patch
+    # it into the interface later.
+    python2Packages.weboob
+  ];
+
+  weboobPythonPath = [ python2Packages.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 = let
+    pluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}";
+  in lib.optionalString doInstallCheck ''
+    QT_PLUGIN_PATH=${lib.escapeShellArg pluginPath} \
+      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/nixpkgs/pkgs/applications/office/ledger-web/Gemfile b/nixpkgs/pkgs/applications/office/ledger-web/Gemfile
new file mode 100644
index 000000000000..77e8024da3a3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ledger-web/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'ledger_web'
diff --git a/nixpkgs/pkgs/applications/office/ledger-web/Gemfile.lock b/nixpkgs/pkgs/applications/office/ledger-web/Gemfile.lock
new file mode 100644
index 000000000000..290adb0e8e3d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ledger-web/Gemfile.lock
@@ -0,0 +1,61 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    backports (3.6.8)
+    database_cleaner (1.5.3)
+    diff-lcs (1.2.5)
+    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.12.1)
+    pg (0.18.4)
+    rack (1.6.11)
+    rack-protection (1.5.3)
+      rack
+    rack-test (0.6.3)
+      rack (>= 1.0)
+    rspec (3.5.0)
+      rspec-core (~> 3.5.0)
+      rspec-expectations (~> 3.5.0)
+      rspec-mocks (~> 3.5.0)
+    rspec-core (3.5.2)
+      rspec-support (~> 3.5.0)
+    rspec-expectations (3.5.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.5.0)
+    rspec-mocks (3.5.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.5.0)
+    rspec-support (3.5.0)
+    sequel (4.37.0)
+    sinatra (1.4.7)
+      rack (~> 1.5)
+      rack-protection (~> 1.4)
+      tilt (>= 1.3, < 3)
+    sinatra-contrib (1.4.7)
+      backports (>= 2.0)
+      multi_json
+      rack-protection
+      rack-test
+      sinatra (~> 1.4.0)
+      tilt (>= 1.3, < 3)
+    sinatra-session (1.0.0)
+      sinatra (>= 1.0)
+    tilt (2.0.5)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  ledger_web
+
+BUNDLED WITH
+   1.16.4
diff --git a/nixpkgs/pkgs/applications/office/ledger-web/default.nix b/nixpkgs/pkgs/applications/office/ledger-web/default.nix
new file mode 100644
index 000000000000..6f571bd2a1b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ledger-web/default.nix
@@ -0,0 +1,23 @@
+{ lib, bundlerEnv, ruby
+, withPostgresql ? true, postgresql
+, withSqlite ? false, sqlite
+}:
+
+bundlerEnv rec {
+  name = "ledger-web-${version}";
+
+  version = (import ./gemset.nix).ledger_web.version;
+  inherit ruby;
+  gemdir = ./.;
+
+  buildInputs =    lib.optional withPostgresql postgresql
+                ++ lib.optional withSqlite sqlite;
+
+  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 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/ledger-web/gemset.nix b/nixpkgs/pkgs/applications/office/ledger-web/gemset.nix
new file mode 100644
index 000000000000..acd1bed25a08
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ledger-web/gemset.nix
@@ -0,0 +1,172 @@
+{
+  backports = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zcgqw7m7jb8n7b2jwla5cq0nw9wsgddxfmn0a9v89ihzd4i1a5k";
+      type = "gem";
+    };
+    version = "3.6.8";
+  };
+  database_cleaner = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fx6zmqznklmkbjl6f713jyl11d4g9q220rcl86m2jp82r8kfwjj";
+      type = "gem";
+    };
+    version = "1.5.3";
+  };
+  diff-lcs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  directory_watcher = {
+    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"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i4vagaiyayymlr41rsy4lg2cl1r011ib0ql9dgjadfy6imb4kqh";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  multi_json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wpc23ls6v2xbk3l1qncsbz16npvmw8p0b38l8czdzri18mp51xk";
+      type = "gem";
+    };
+    version = "1.12.1";
+  };
+  pg = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32";
+      type = "gem";
+    };
+    version = "0.18.4";
+  };
+  rack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g9926ln2lw12lfxm4ylq1h6nl0rafl10za3xvjzc87qvnqic87f";
+      type = "gem";
+    };
+    version = "1.6.11";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r";
+      type = "gem";
+    };
+    version = "1.5.3";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
+      type = "gem";
+    };
+    version = "0.6.3";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16g3mmih999f0b6vcz2c3qsc7ks5zy4lj1rzjh8hf6wk531nvc6s";
+      type = "gem";
+    };
+    version = "3.5.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12yndf7y6g3s1306bv1aycsmd0gjy5m172spdhx54svca2fcpzy1";
+      type = "gem";
+    };
+    version = "3.5.2";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bbqfrb1x8gmwf8x2xhhwvvlhwbbafq4isbvlibxi6jk602f09gs";
+      type = "gem";
+    };
+    version = "3.5.0";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nl3ksivh9wwrjjd47z5dggrwx40v6gpb3a0gzbp1gs06a5dmk24";
+      type = "gem";
+    };
+    version = "3.5.0";
+  };
+  rspec-support = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10vf3k3d472y573mag2kzfsfrf6rv355s13kadnpryk8d36yq5r0";
+      type = "gem";
+    };
+    version = "3.5.0";
+  };
+  sequel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11vdpr3r4dwhcan16gs4gjm2k21y9qz7ri5w2zz54pmnxp499cjw";
+      type = "gem";
+    };
+    version = "4.37.0";
+  };
+  sinatra = {
+    dependencies = ["rack" "rack-protection" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b81kbr65mmcl9cdq2r6yc16wklyp798rxkgmm5pr9fvsj7jwmxp";
+      type = "gem";
+    };
+    version = "1.4.7";
+  };
+  sinatra-contrib = {
+    dependencies = ["backports" "multi_json" "rack-protection" "rack-test" "sinatra" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vi3i0icbi2figiayxpvxbqpbn1syma7w4p4zw5mav1ln4c7jnfr";
+      type = "gem";
+    };
+    version = "1.4.7";
+  };
+  sinatra-session = {
+    dependencies = ["sinatra"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "183xl8i4d2hc03afd1i52gwn2xi3vzrv02g22llhfy5wkmm44gmq";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  tilt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lgk8bfx24959yq1cn55php3321wddw947mgj07bxfnwyipy9hqf";
+      type = "gem";
+    };
+    version = "2.0.5";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/office/ledger/2.6.3.nix b/nixpkgs/pkgs/applications/office/ledger/2.6.3.nix
new file mode 100644
index 000000000000..49b258c43fdb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ledger/2.6.3.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, emacs, gmp, pcre, expat }:
+
+stdenv.mkDerivation rec {
+  name = "ledger2-2.6.3";
+
+  src = fetchurl {
+    url = "https://github.com/downloads/ledger/ledger/${name}.tar.gz";
+    sha256 = "05zpnypcwgck7lwk00pbdlcwa347xsqifxh4zsbbn01m98bx1v5k";
+  };
+
+  buildInputs = [ emacs gmp pcre expat ];
+
+  configureFlags = [
+    "CPPFLAGS=-DNDEBUG"
+    "CFLAGS=-O3"
+    "CXXFLAGS=-O3"
+  ];
+
+  doCheck = true;
+
+  # Patchelf breaks the hard-coded rpath to ledger's libamounts.0.so and
+  # libledger-2.6.3.so. Fortunately, libtool chooses proper rpaths to
+  # begin with, so we can just disable patchelf to avoid the issue.
+  dontPatchELF = true;
+
+  meta = {
+    homepage = http://ledger-cli.org/;
+    description = "A double-entry accounting system with a command-line reporting interface";
+    license = "BSD";
+
+    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 = stdenv.lib.platforms.all;
+    broken = true; # https://hydra.nixos.org/build/59124559/nixlog/1
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/ledger/default.nix b/nixpkgs/pkgs/applications/office/ledger/default.nix
new file mode 100644
index 000000000000..387a71aa04ee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ledger/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, cmake, boost, gmp, mpfr, libedit, python
+, texinfo, gnused, usePython ? true }:
+
+stdenv.mkDerivation rec {
+  name = "ledger-${version}";
+  version = "3.1.1";
+
+  src = fetchFromGitHub {
+    owner  = "ledger";
+    repo   = "ledger";
+    rev    = "v${version}";
+    sha256 = "1j4p7djkmdmd858hylrsc3inamh9z0vkfl98s9wiqfmrzw51pmxp";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [
+    (boost.override { enablePython = usePython; })
+    gmp mpfr libedit python texinfo gnused
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" (stdenv.lib.optionalString usePython "-DUSE_PYTHON=true") ];
+
+  # Skip byte-compiling of emacs-lisp files because this is currently
+  # broken in ledger...
+  postInstall = ''
+    mkdir -p $out/share/emacs/site-lisp/
+    cp -v "$src/lisp/"*.el $out/share/emacs/site-lisp/
+  '';
+
+  meta = with stdenv.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; [ the-kenny jwiegley ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/README.md b/nixpkgs/pkgs/applications/office/libreoffice/README.md
new file mode 100644
index 000000000000..eb21fe2f441e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/README.md
@@ -0,0 +1,10 @@
+LibreOffice
+===========
+
+To generate `libreoffice-srcs.nix`:
+
+    nix-shell default-gen-shell.nix --run generate
+
+To generate `libreoffice-srcs-still.nix`:
+
+    nix-shell still-gen-shell.nix --run generate
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/default-gen-shell.nix b/nixpkgs/pkgs/applications/office/libreoffice/default-gen-shell.nix
new file mode 100644
index 000000000000..366030971237
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/default-gen-shell.nix
@@ -0,0 +1,29 @@
+{ pkgs ? (import <nixpkgs> {}) }:
+
+with pkgs;
+
+let
+
+  primary-src = callPackage ./default-primary-src.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 > libreoffice-srcs.nix
+    }
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/default-primary-src.nix b/nixpkgs/pkgs/applications/office/libreoffice/default-primary-src.nix
new file mode 100644
index 000000000000..98a83a33f272
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/default-primary-src.nix
@@ -0,0 +1,17 @@
+{ fetchurl }:
+
+rec {
+  major = "6";
+  minor = "1";
+  patch = "3";
+  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 = "0i4gf3qi16fg7dxq2l4vhkwh4f5lx7xd1ilpzcw26vccqkv3hvyl";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/default.nix b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
new file mode 100644
index 000000000000..95df061de5a2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
@@ -0,0 +1,295 @@
+{ stdenv, fetchurl, pam, python3, libxslt, perl, ArchiveZip, gettext
+, IOCompress, zlib, libjpeg, expat, freetype, libwpd
+, libxml2, db, sablotron, curl, fontconfig, libsndfile, neon
+, bison, flex, zip, unzip, gtk3, gtk2, libmspack, getopt, file, cairo, which
+, icu, boost, jdk, ant, cups, xorg, libcmis
+, openssl, gperf, cppunit, GConf, ORBit2, poppler, utillinux
+, librsvg, gnome_vfs, libGLU_combined, bsh, CoinMP, libwps, libabw
+, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
+, libwpg, dbus-glib, qt4, clucene_core, libcdr, lcms, vigra
+, unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
+, fontsConf, pkgconfig, bluez5, libtool, carlito
+, libatomic_ops, graphite2, harfbuzz, libodfgen, libzmf
+, librevenge, libe-book, libmwaw, glm, glew, gst_all_1
+, gdb, commonsLogging, librdf_rasqal, wrapGAppsHook
+, defaultIconTheme, glib, ncurses, epoxy, gpgme
+, langs ? [ "ca" "cs" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "nl" "pl" "ru" "sl" "zh-CN" ]
+, withHelp ? true
+, kdeIntegration ? false
+}:
+
+let
+  primary-src = import ./default-primary-src.nix { inherit fetchurl; };
+in
+
+let inherit (primary-src) major minor subdir version; in
+
+let
+  lib = stdenv.lib;
+  langsSpaces = lib.concatStringsSep " " langs;
+
+  fetchSrc = {name, sha256}: fetchurl {
+    url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
+    inherit sha256;
+  };
+
+  srcs = {
+    third_party =
+      map (x : ((fetchurl {inherit (x) url sha256 name;}) // {inherit (x) md5name md5;}))
+      ((import ./libreoffice-srcs.nix) ++ [
+        (rec {
+          name = "unowinreg.dll";
+          url = "https://dev-www.libreoffice.org/extern/${md5name}";
+          sha256 = "1infwvv1p6i21scywrldsxs22f62x85mns4iq8h6vr6vlx3fdzga";
+          md5 = "185d60944ea767075d27247c3162b3bc";
+          md5name = "${md5}-${name}";
+        })
+      ]);
+
+    translations = fetchSrc {
+      name = "translations";
+      sha256 = "1cry3gkvk71jf71jk4pff320axfid2wqjdnhkj2z718g4pp54dwf";
+    };
+
+    # TODO: dictionaries
+
+    help = fetchSrc {
+      name = "help";
+      sha256 = "0q26zb2lq2cnkq0cn9ds3qwa981ljz0lyw13pa6f62nvrnwwqgwa";
+    };
+
+  };
+in stdenv.mkDerivation rec {
+  name = "libreoffice-${version}";
+
+  inherit (primary-src) src;
+
+  # For some reason librdf_redland sometimes refers to rasqal.h instead
+  # of rasqal/rasqal.h
+  NIX_CFLAGS_COMPILE = [ "-I${librdf_rasqal}/include/rasqal" ];
+
+  patches = [ ./xdg-open-brief.patch ];
+
+  postUnpack = ''
+    mkdir -v $sourceRoot/src
+  '' + (lib.flip lib.concatMapStrings srcs.third_party (f: ''
+      ln -sfv ${f} $sourceRoot/src/${f.md5name}
+      ln -sfv ${f} $sourceRoot/src/${f.name}
+    ''))
+  + ''
+    ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
+    ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
+  '';
+
+  postPatch = ''
+    sed -e 's@/usr/bin/xdg-open@xdg-open@g' -i shell/source/unix/exec/shellexec.cxx
+
+    # 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++'
+  '';
+
+  QT4DIR = qt4;
+
+  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
+      # 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
+      # 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 -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
+    ''
+    # 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; 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"
+      substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
+      substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=libreoffice"
+    done
+
+    cp -r sysui/desktop/icons  "$out/share"
+    sed -re 's@Icon=libreoffice(dev)?[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
+  '';
+
+  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"
+    (lib.enableFeature kdeIntegration "kde4")
+    "--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"
+
+    "--with-alloc=system"
+
+    # Without these, configure does not finish
+    "--without-junit"
+
+    "--disable-libnumbertext" # system-libnumbertext"
+
+    # 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-libpagemaker"
+    "--without-system-libstaroffice"
+    "--without-system-libepubgen"
+    "--without-system-libqxp"
+    "--without-system-mdds"
+    # https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
+    "--without-system-orcus"
+    "--without-system-xmlsec"
+  ];
+
+  checkPhase = ''
+    make unitcheck
+    make slowcheck
+  '';
+
+  buildInputs = with xorg;
+    [ ant ArchiveZip autoconf automake bison boost cairo clucene_core
+      IOCompress cppunit cups curl db dbus-glib expat file flex fontconfig
+      freetype GConf getopt gnome_vfs gperf gtk3 gtk2
+      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_combined mythes gst_all_1.gstreamer
+      gst_all_1.gst-plugins-base glib
+      neon nspr nss openldap openssl ORBit2 pam perl pkgconfig poppler
+      python3 sablotron sane-backends unzip vigra which zip zlib
+      mdds bluez5 libcmis libwps libabw libzmf libtool
+      libxshmfence libatomic_ops graphite2 harfbuzz gpgme utillinux
+      librevenge libe-book libmwaw glm glew ncurses epoxy
+      libodfgen CoinMP librdf_rasqal defaultIconTheme gettext
+    ]
+    ++ lib.optional kdeIntegration kdelibs4;
+  nativeBuildInputs = [ wrapGAppsHook gdb ];
+
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/download-list-builder.sh b/nixpkgs/pkgs/applications/office/libreoffice/download-list-builder.sh
new file mode 100644
index 000000000000..c054e2c72cbe
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py b/nixpkgs/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py
new file mode 100755
index 000000000000..636f36cb383b
--- /dev/null
+++ b/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 'http://dev-www.libreoffice.org/src/{}{}'.format(
+            x.get('subdir', ''), x['tarball'])
+    else:
+        return 'http://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/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-additions.json b/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-additions.json
new file mode 100644
index 000000000000..5b4363189f7f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix b/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
new file mode 100644
index 000000000000..4ab15a3a91e6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
@@ -0,0 +1,835 @@
+[
+  {
+    name = "libabw-0.1.2.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libabw-0.1.2.tar.xz";
+    sha256 = "0b72944d5af81dda0a5c5803ee84cbac4b81441a4d767aa57029adc6744c2485";
+    md5 = "";
+    md5name = "0b72944d5af81dda0a5c5803ee84cbac4b81441a4d767aa57029adc6744c2485-libabw-0.1.2.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_65_1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/boost_1_65_1.tar.bz2";
+    sha256 = "9807a5d16566c57fd74fb522764e0b134a8bbe6b6e8967b83afefd30dcd3be81";
+    md5 = "";
+    md5name = "9807a5d16566c57fd74fb522764e0b134a8bbe6b6e8967b83afefd30dcd3be81-boost_1_65_1.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.14.10.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/cairo-1.14.10.tar.xz";
+    sha256 = "7e87878658f2c9951a14fc64114d4958c0e65ac47530b8ac3078b2ce41b66a09";
+    md5 = "";
+    md5name = "7e87878658f2c9951a14fc64114d4958c0e65ac47530b8ac3078b2ce41b66a09-cairo-1.14.10.tar.xz";
+  }
+  {
+    name = "libcdr-0.1.4.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.4.tar.xz";
+    sha256 = "e7a7e8b00a3df5798110024d7061fe9d1c3330277d2e4fa9213294f966a4a66d";
+    md5 = "";
+    md5name = "e7a7e8b00a3df5798110024d7061fe9d1c3330277d2e4fa9213294f966a4a66d-libcdr-0.1.4.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.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libcmis-0.5.1.tar.gz";
+    sha256 = "6acbdf22ecdbaba37728729b75bfc085ee5a4b49a6024757cfb86ccd3da27b0e";
+    md5 = "";
+    md5name = "6acbdf22ecdbaba37728729b75bfc085ee5a4b49a6024757cfb86ccd3da27b0e-libcmis-0.5.1.tar.gz";
+  }
+  {
+    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.61.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/curl-7.61.1.tar.gz";
+    sha256 = "eaa812e9a871ea10dbe8e1d3f8f12a64a8e3e62aeab18cb23742e2f1727458ae";
+    md5 = "";
+    md5name = "eaa812e9a871ea10dbe8e1d3f8f12a64a8e3e62aeab18cb23742e2f1727458ae-curl-7.61.1.tar.gz";
+  }
+  {
+    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.3.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libepoxy-1.3.1.tar.bz2";
+    sha256 = "1d8668b0a259c709899e1c4bab62d756d9002d546ce4f59c9665e2fc5f001a64";
+    md5 = "";
+    md5name = "1d8668b0a259c709899e1c4bab62d756d9002d546ce4f59c9665e2fc5f001a64-libepoxy-1.3.1.tar.bz2";
+  }
+  {
+    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.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libepubgen-0.1.0.tar.bz2";
+    sha256 = "730bd1cbeee166334faadbc06c953a67b145c3c4754a3b503482066dae4cd633";
+    md5 = "";
+    md5name = "730bd1cbeee166334faadbc06c953a67b145c3c4754a3b503482066dae4cd633-libepubgen-0.1.0.tar.bz2";
+  }
+  {
+    name = "libetonyek-0.1.7.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libetonyek-0.1.7.tar.xz";
+    sha256 = "69dbe10d4426d52f09060d489f8eb90dfa1df592e82eb0698d9dbaf38cc734ac";
+    md5 = "";
+    md5name = "69dbe10d4426d52f09060d489f8eb90dfa1df592e82eb0698d9dbaf38cc734ac-libetonyek-0.1.7.tar.xz";
+  }
+  {
+    name = "expat-2.2.5.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/expat-2.2.5.tar.bz2";
+    sha256 = "d9dc32efba7e74f788fcc4f212a43216fc37cf5f23f4c2339664d473353aedf6";
+    md5 = "";
+    md5name = "d9dc32efba7e74f788fcc4f212a43216fc37cf5f23f4c2339664d473353aedf6-expat-2.2.5.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-fonts-ttf-1.07.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz";
+    sha256 = "61a7e2b6742a43c73e8762cdfeaf6dfcf9abdd2cfa0b099a9854d69bc4cfee5c";
+    md5 = "134d8262145fc793c6af494dcace3e71";
+    md5name = "134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz";
+  }
+  {
+    name = "liberation-fonts-ttf-2.00.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.tar.gz";
+    sha256 = "7890278a6cd17873c57d9cd785c2d230d9abdea837e96516019c5885dd271504";
+    md5 = "5c781723a0d9ed6188960defba8e91cf";
+    md5name = "5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.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 = "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.109.zip";
+    url = "http://dev-www.libreoffice.org/src/amiri-0.109.zip";
+    sha256 = "97ee6e40d87f4b31de15d9a93bb30bf27bf308f0814f4ee9c47365b027402ad6";
+    md5 = "";
+    md5name = "97ee6e40d87f4b31de15d9a93bb30bf27bf308f0814f4ee9c47365b027402ad6-amiri-0.109.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.6.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/ReemKufi-0.6.tar.gz";
+    sha256 = "4dfbd8b227ea062ca1742fb15d707f0b74398f9ddb231892554f0959048e809b";
+    md5 = "";
+    md5name = "4dfbd8b227ea062ca1742fb15d707f0b74398f9ddb231892554f0959048e809b-ReemKufi-0.6.tar.gz";
+  }
+  {
+    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.8.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/freetype-2.8.1.tar.bz2";
+    sha256 = "e5435f02e02d2b87bb8e4efdcaa14b1f78c9cf3ab1ed80f94b6382fb6acc7d78";
+    md5 = "";
+    md5name = "e5435f02e02d2b87bb8e4efdcaa14b1f78c9cf3ab1ed80f94b6382fb6acc7d78-freetype-2.8.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.10.tgz";
+    url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.10.tgz";
+    sha256 = "aa5e58356cd084000609ebbd93fef456a1bc0ab9e46fea20e81552fb286232a9";
+    md5 = "";
+    md5name = "aa5e58356cd084000609ebbd93fef456a1bc0ab9e46fea20e81552fb286232a9-graphite2-minimal-1.3.10.tgz";
+  }
+  {
+    name = "harfbuzz-1.7.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/harfbuzz-1.7.0.tar.bz2";
+    sha256 = "042742d6ec67bc6719b69cf38a3fba24fbd120e207e3fdc18530dc730fb6a029";
+    md5 = "";
+    md5name = "042742d6ec67bc6719b69cf38a3fba24fbd120e207e3fdc18530dc730fb6a029-harfbuzz-1.7.0.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.6.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/hunspell-1.6.2.tar.gz";
+    sha256 = "3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce180cac4d6f4c4";
+    md5 = "";
+    md5name = "3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce180cac4d6f4c4-hunspell-1.6.2.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-60_2-src.tgz";
+    url = "http://dev-www.libreoffice.org/src/icu4c-60_2-src.tgz";
+    sha256 = "f073ea8f35b926d70bb33e6577508aa642a8b316a803f11be20af384811db418";
+    md5 = "";
+    md5name = "f073ea8f35b926d70bb33e6577508aa642a8b316a803f11be20af384811db418-icu4c-60_2-src.tgz";
+  }
+  {
+    name = "icu4c-60_2-data.zip";
+    url = "http://dev-www.libreoffice.org/src/icu4c-60_2-data.zip";
+    sha256 = "68f42ad0c9e0a5a5af8eba0577ba100833912288bad6e4d1f42ff480bbcfd4a9";
+    md5 = "";
+    md5name = "68f42ad0c9e0a5a5af8eba0577ba100833912288bad6e4d1f42ff480bbcfd4a9-icu4c-60_2-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.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libjpeg-turbo-1.5.2.tar.gz";
+    sha256 = "9098943b270388727ae61de82adec73cf9f0dbb240b3bc8b172595ebf405b528";
+    md5 = "";
+    md5name = "9098943b270388727ae61de82adec73cf9f0dbb240b3bc8b172595ebf405b528-libjpeg-turbo-1.5.2.tar.gz";
+  }
+  {
+    name = "language-subtag-registry-2018-03-30.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2018-03-30.tar.bz2";
+    sha256 = "b7ad618b7db518155f00490a11b861496864f18b23b4b537eb80bfe84ca6f854";
+    md5 = "";
+    md5name = "b7ad618b7db518155f00490a11b861496864f18b23b4b537eb80bfe84ca6f854-language-subtag-registry-2018-03-30.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.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/lcms2-2.8.tar.gz";
+    sha256 = "66d02b229d2ea9474e62c2b6cd6720fde946155cd1d0d2bffdab829790a0fb22";
+    md5 = "";
+    md5name = "66d02b229d2ea9474e62c2b6cd6720fde946155cd1d0d2bffdab829790a0fb22-lcms2-2.8.tar.gz";
+  }
+  {
+    name = "libassuan-2.4.3.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libassuan-2.4.3.tar.bz2";
+    sha256 = "22843a3bdb256f59be49842abf24da76700354293a066d82ade8134bb5aa2b71";
+    md5 = "";
+    md5name = "22843a3bdb256f59be49842abf24da76700354293a066d82ade8134bb5aa2b71-libassuan-2.4.3.tar.bz2";
+  }
+  {
+    name = "libatomic_ops-7_2d.zip";
+    url = "http://dev-www.libreoffice.org/src/libatomic_ops-7_2d.zip";
+    sha256 = "cf5c52f08a2067ae4fe7c8919e3c1ccf3ee917f1749e0bcc7efffff59c68d9ad";
+    md5 = "";
+    md5name = "cf5c52f08a2067ae4fe7c8919e3c1ccf3ee917f1749e0bcc7efffff59c68d9ad-libatomic_ops-7_2d.zip";
+  }
+  {
+    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 = "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.25.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/xmlsec1-1.2.25.tar.gz";
+    sha256 = "967ca83edf25ccb5b48a3c4a09ad3405a63365576503bf34290a42de1b92fcd2";
+    md5 = "";
+    md5name = "967ca83edf25ccb5b48a3c4a09ad3405a63365576503bf34290a42de1b92fcd2-xmlsec1-1.2.25.tar.gz";
+  }
+  {
+    name = "libxml2-2.9.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libxml2-2.9.8.tar.gz";
+    sha256 = "0b74e51595654f958148759cfef0993114ddccccbb6f31aee018f3558e8e2732";
+    md5 = "";
+    md5name = "0b74e51595654f958148759cfef0993114ddccccbb6f31aee018f3558e8e2732-libxml2-2.9.8.tar.gz";
+  }
+  {
+    name = "libxslt-1.1.32.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libxslt-1.1.32.tar.gz";
+    sha256 = "526ecd0abaf4a7789041622c3950c0e7f2c4c8835471515fd77eec684a355460";
+    md5 = "";
+    md5name = "526ecd0abaf4a7789041622c3950c0e7f2c4c8835471515fd77eec684a355460-libxslt-1.1.32.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 = "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.3.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/mdds-1.3.1.tar.bz2";
+    sha256 = "dcb8cd2425567a5a5ec164afea475bce57784bca3e352ad4cbdd3d1a7e08e5a1";
+    md5 = "";
+    md5name = "dcb8cd2425567a5a5ec164afea475bce57784bca3e352ad4cbdd3d1a7e08e5a1-mdds-1.3.1.tar.bz2";
+  }
+  {
+    name = "mDNSResponder-576.30.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/mDNSResponder-576.30.4.tar.gz";
+    sha256 = "4737cb51378377e11d0edb7bcdd1bec79cbdaa7b27ea09c13e3006e58f8d92c0";
+    md5 = "";
+    md5name = "4737cb51378377e11d0edb7bcdd1bec79cbdaa7b27ea09c13e3006e58f8d92c0-mDNSResponder-576.30.4.tar.gz";
+  }
+  {
+    name = "libmspub-0.1.3.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libmspub-0.1.3.tar.xz";
+    sha256 = "f0225f0ff03f6bec4847d7c2d8719a36cafc4b97a09e504b610372cc5b981c97";
+    md5 = "";
+    md5name = "f0225f0ff03f6bec4847d7c2d8719a36cafc4b97a09e504b610372cc5b981c97-libmspub-0.1.3.tar.xz";
+  }
+  {
+    name = "libmwaw-0.3.13.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.13.tar.xz";
+    sha256 = "db55c728448f9c795cd71a0bb6043f6d4744e3e001b955a018a2c634981d5aea";
+    md5 = "";
+    md5name = "db55c728448f9c795cd71a0bb6043f6d4744e3e001b955a018a2c634981d5aea-libmwaw-0.3.13.tar.xz";
+  }
+  {
+    name = "mysql-connector-c++-1.1.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/7239a4430efd4d0189c4f24df67f08e5-mysql-connector-c++-1.1.4.tar.gz";
+    sha256 = "a25f14dad39e93a2f9cdf09166ee53981f7212dce829e4208e07a522963a8585";
+    md5 = "7239a4430efd4d0189c4f24df67f08e5";
+    md5name = "7239a4430efd4d0189c4f24df67f08e5-mysql-connector-c++-1.1.4.tar.gz";
+  }
+  {
+    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.38-with-nspr-4.19.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/nss-3.38-with-nspr-4.19.tar.gz";
+    sha256 = "f271ec73291fa3e4bd4b59109f8035cc3a192fc33886f40ed4f9ee4b31c746e9";
+    md5 = "";
+    md5name = "f271ec73291fa3e4bd4b59109f8035cc3a192fc33886f40ed4f9ee4b31c746e9-nss-3.38-with-nspr-4.19.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+ODFTOOLKIT-460+ODFTOOLKIT-475.jar";
+    url = "http://dev-www.libreoffice.org/src/../extern/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies+ODFTOOLKIT-460+ODFTOOLKIT-475.jar";
+    sha256 = "702413413a5d8076c17fe79c0808dfba145a7260020f6c8627ea529a0cf83769";
+    md5 = "";
+    md5name = "702413413a5d8076c17fe79c0808dfba145a7260020f6c8627ea529a0cf83769-odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies+ODFTOOLKIT-460+ODFTOOLKIT-475.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.2m.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/openssl-1.0.2m.tar.gz";
+    sha256 = "8c6ff15ec6b319b50788f42c7abc2890c08ba5a1cdcd3810eb9092deada37b0f";
+    md5 = "";
+    md5name = "8c6ff15ec6b319b50788f42c7abc2890c08ba5a1cdcd3810eb9092deada37b0f-openssl-1.0.2m.tar.gz";
+  }
+  {
+    name = "liborcus-0.13.3.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/liborcus-0.13.3.tar.gz";
+    sha256 = "62e76de1fd3101e77118732b860354121b40a87bbb1ebfeb8203477fffac16e9";
+    md5 = "";
+    md5name = "62e76de1fd3101e77118732b860354121b40a87bbb1ebfeb8203477fffac16e9-liborcus-0.13.3.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-3235.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/pdfium-3235.tar.bz2";
+    sha256 = "7dc0d33fc24b1612865f5e173d48800ba3f2db891c57e3f92b9d2ce56ffeb72f";
+    md5 = "";
+    md5name = "7dc0d33fc24b1612865f5e173d48800ba3f2db891c57e3f92b9d2ce56ffeb72f-pdfium-3235.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.34.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libpng-1.6.34.tar.xz";
+    sha256 = "2f1e960d92ce3b3abd03d06dfec9637dfbd22febf107a536b44f7a47c60659f6";
+    md5 = "";
+    md5name = "2f1e960d92ce3b3abd03d06dfec9637dfbd22febf107a536b44f7a47c60659f6-libpng-1.6.34.tar.xz";
+  }
+  {
+    name = "poppler-0.66.0.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/poppler-0.66.0.tar.xz";
+    sha256 = "2c096431adfb74bc2f53be466889b7646e1b599f28fa036094f3f7235cc9eae7";
+    md5 = "";
+    md5name = "2c096431adfb74bc2f53be466889b7646e1b599f28fa036094f3f7235cc9eae7-poppler-0.66.0.tar.xz";
+  }
+  {
+    name = "postgresql-9.2.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2";
+    sha256 = "db61d498105a7d5fe46185e67ac830c878cdd7dc1f82a87f06b842217924c461";
+    md5 = "c0b4799ea9850eae3ead14f0a60e9418";
+    md5name = "c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2";
+  }
+  {
+    name = "Python-3.5.5.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/Python-3.5.5.tar.xz";
+    sha256 = "063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009";
+    md5 = "";
+    md5name = "063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009-Python-3.5.5.tar.xz";
+  }
+  {
+    name = "libqxp-0.0.1.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libqxp-0.0.1.tar.xz";
+    sha256 = "8c257f6184ff94aefa7c9fa1cfae82083d55a49247266905c71c53e013f95c73";
+    md5 = "";
+    md5name = "8c257f6184ff94aefa7c9fa1cfae82083d55a49247266905c71c53e013f95c73-libqxp-0.0.1.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.5.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libstaroffice-0.0.5.tar.xz";
+    sha256 = "315507add58068aa6d5c437e7c2a6fd1abe684515915152c6cf338fc588da982";
+    md5 = "";
+    md5name = "315507add58068aa6d5c437e7c2a6fd1abe684515915152c6cf338fc588da982-libstaroffice-0.0.5.tar.xz";
+  }
+  {
+    name = "swingExSrc.zip";
+    url = "http://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+    sha256 = "64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1";
+    md5 = "35c94d2df8893241173de1d16b6034c0";
+    md5name = "35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+  }
+  {
+    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.6.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libvisio-0.1.6.tar.xz";
+    sha256 = "fe1002d3671d53c09bc65e47ec948ec7b67e6fb112ed1cd10966e211a8bb50f9";
+    md5 = "";
+    md5name = "fe1002d3671d53c09bc65e47ec948ec7b67e6fb112ed1cd10966e211a8bb50f9-libvisio-0.1.6.tar.xz";
+  }
+  {
+    name = "libwpd-0.10.2.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libwpd-0.10.2.tar.xz";
+    sha256 = "323f68beaf4f35e5a4d7daffb4703d0566698280109210fa4eaa90dea27d6610";
+    md5 = "";
+    md5name = "323f68beaf4f35e5a4d7daffb4703d0566698280109210fa4eaa90dea27d6610-libwpd-0.10.2.tar.xz";
+  }
+  {
+    name = "libwpg-0.3.2.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libwpg-0.3.2.tar.xz";
+    sha256 = "57faf1ab97d63d57383ac5d7875e992a3d190436732f4083310c0471e72f8c33";
+    md5 = "";
+    md5name = "57faf1ab97d63d57383ac5d7875e992a3d190436732f4083310c0471e72f8c33-libwpg-0.3.2.tar.xz";
+  }
+  {
+    name = "libwps-0.4.8.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libwps-0.4.8.tar.xz";
+    sha256 = "e478e825ef33f6a434a19ff902c5469c9da7acc866ea0d8ab610a8b2aa94177e";
+    md5 = "";
+    md5name = "e478e825ef33f6a434a19ff902c5469c9da7acc866ea0d8ab610a8b2aa94177e-libwps-0.4.8.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/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs.nix b/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
new file mode 100644
index 000000000000..ce3b3533bec3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
@@ -0,0 +1,856 @@
+[
+  {
+    name = "libabw-0.1.2.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libabw-0.1.2.tar.xz";
+    sha256 = "0b72944d5af81dda0a5c5803ee84cbac4b81441a4d767aa57029adc6744c2485";
+    md5 = "";
+    md5name = "0b72944d5af81dda0a5c5803ee84cbac4b81441a4d767aa57029adc6744c2485-libabw-0.1.2.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_66_0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/boost_1_66_0.tar.bz2";
+    sha256 = "5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9";
+    md5 = "";
+    md5name = "5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9-boost_1_66_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.14.10.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/cairo-1.14.10.tar.xz";
+    sha256 = "7e87878658f2c9951a14fc64114d4958c0e65ac47530b8ac3078b2ce41b66a09";
+    md5 = "";
+    md5name = "7e87878658f2c9951a14fc64114d4958c0e65ac47530b8ac3078b2ce41b66a09-cairo-1.14.10.tar.xz";
+  }
+  {
+    name = "libcdr-0.1.4.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.4.tar.xz";
+    sha256 = "e7a7e8b00a3df5798110024d7061fe9d1c3330277d2e4fa9213294f966a4a66d";
+    md5 = "";
+    md5name = "e7a7e8b00a3df5798110024d7061fe9d1c3330277d2e4fa9213294f966a4a66d-libcdr-0.1.4.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.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libcmis-0.5.1.tar.gz";
+    sha256 = "6acbdf22ecdbaba37728729b75bfc085ee5a4b49a6024757cfb86ccd3da27b0e";
+    md5 = "";
+    md5name = "6acbdf22ecdbaba37728729b75bfc085ee5a4b49a6024757cfb86ccd3da27b0e-libcmis-0.5.1.tar.gz";
+  }
+  {
+    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.61.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/curl-7.61.1.tar.gz";
+    sha256 = "eaa812e9a871ea10dbe8e1d3f8f12a64a8e3e62aeab18cb23742e2f1727458ae";
+    md5 = "";
+    md5name = "eaa812e9a871ea10dbe8e1d3f8f12a64a8e3e62aeab18cb23742e2f1727458ae-curl-7.61.1.tar.gz";
+  }
+  {
+    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.3.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libepoxy-1.3.1.tar.bz2";
+    sha256 = "1d8668b0a259c709899e1c4bab62d756d9002d546ce4f59c9665e2fc5f001a64";
+    md5 = "";
+    md5name = "1d8668b0a259c709899e1c4bab62d756d9002d546ce4f59c9665e2fc5f001a64-libepoxy-1.3.1.tar.bz2";
+  }
+  {
+    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.8.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libetonyek-0.1.8.tar.xz";
+    sha256 = "9dc92347aee0cc9ed57b175a3e21f9d96ebe55d30fecb10e841d1050794ed82d";
+    md5 = "";
+    md5name = "9dc92347aee0cc9ed57b175a3e21f9d96ebe55d30fecb10e841d1050794ed82d-libetonyek-0.1.8.tar.xz";
+  }
+  {
+    name = "expat-2.2.5.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/expat-2.2.5.tar.bz2";
+    sha256 = "d9dc32efba7e74f788fcc4f212a43216fc37cf5f23f4c2339664d473353aedf6";
+    md5 = "";
+    md5name = "d9dc32efba7e74f788fcc4f212a43216fc37cf5f23f4c2339664d473353aedf6-expat-2.2.5.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-fonts-ttf-1.07.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz";
+    sha256 = "61a7e2b6742a43c73e8762cdfeaf6dfcf9abdd2cfa0b099a9854d69bc4cfee5c";
+    md5 = "134d8262145fc793c6af494dcace3e71";
+    md5name = "134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz";
+  }
+  {
+    name = "liberation-fonts-ttf-2.00.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.tar.gz";
+    sha256 = "7890278a6cd17873c57d9cd785c2d230d9abdea837e96516019c5885dd271504";
+    md5 = "5c781723a0d9ed6188960defba8e91cf";
+    md5name = "5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.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 = "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.8.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/freetype-2.8.1.tar.bz2";
+    sha256 = "e5435f02e02d2b87bb8e4efdcaa14b1f78c9cf3ab1ed80f94b6382fb6acc7d78";
+    md5 = "";
+    md5name = "e5435f02e02d2b87bb8e4efdcaa14b1f78c9cf3ab1ed80f94b6382fb6acc7d78-freetype-2.8.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.10.tgz";
+    url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.10.tgz";
+    sha256 = "aa5e58356cd084000609ebbd93fef456a1bc0ab9e46fea20e81552fb286232a9";
+    md5 = "";
+    md5name = "aa5e58356cd084000609ebbd93fef456a1bc0ab9e46fea20e81552fb286232a9-graphite2-minimal-1.3.10.tgz";
+  }
+  {
+    name = "harfbuzz-1.8.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/harfbuzz-1.8.4.tar.bz2";
+    sha256 = "3c592f86fa0da69e2e0e98cae9f5d5b61def3bb7948aa00ca45748f27fa545fd";
+    md5 = "";
+    md5name = "3c592f86fa0da69e2e0e98cae9f5d5b61def3bb7948aa00ca45748f27fa545fd-harfbuzz-1.8.4.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.6.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/hunspell-1.6.2.tar.gz";
+    sha256 = "3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce180cac4d6f4c4";
+    md5 = "";
+    md5name = "3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce180cac4d6f4c4-hunspell-1.6.2.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-61_1-src.tgz";
+    url = "http://dev-www.libreoffice.org/src/icu4c-61_1-src.tgz";
+    sha256 = "d007f89ae8a2543a53525c74359b65b36412fa84b3349f1400be6dcf409fafef";
+    md5 = "";
+    md5name = "d007f89ae8a2543a53525c74359b65b36412fa84b3349f1400be6dcf409fafef-icu4c-61_1-src.tgz";
+  }
+  {
+    name = "icu4c-61_1-data.zip";
+    url = "http://dev-www.libreoffice.org/src/icu4c-61_1-data.zip";
+    sha256 = "d149ed0985b5a6e16a9d8ed66f105dd58fd334c276779f74241cfa656ed2830a";
+    md5 = "";
+    md5name = "d149ed0985b5a6e16a9d8ed66f105dd58fd334c276779f74241cfa656ed2830a-icu4c-61_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.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libjpeg-turbo-1.5.2.tar.gz";
+    sha256 = "9098943b270388727ae61de82adec73cf9f0dbb240b3bc8b172595ebf405b528";
+    md5 = "";
+    md5name = "9098943b270388727ae61de82adec73cf9f0dbb240b3bc8b172595ebf405b528-libjpeg-turbo-1.5.2.tar.gz";
+  }
+  {
+    name = "language-subtag-registry-2018-04-23.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2018-04-23.tar.bz2";
+    sha256 = "14c21f4533ca74e3af9e09184d6756a750d0cd46099015ba8c595e48499aa878";
+    md5 = "";
+    md5name = "14c21f4533ca74e3af9e09184d6756a750d0cd46099015ba8c595e48499aa878-language-subtag-registry-2018-04-23.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.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/lcms2-2.8.tar.gz";
+    sha256 = "66d02b229d2ea9474e62c2b6cd6720fde946155cd1d0d2bffdab829790a0fb22";
+    md5 = "";
+    md5name = "66d02b229d2ea9474e62c2b6cd6720fde946155cd1d0d2bffdab829790a0fb22-lcms2-2.8.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_2d.zip";
+    url = "http://dev-www.libreoffice.org/src/libatomic_ops-7_2d.zip";
+    sha256 = "cf5c52f08a2067ae4fe7c8919e3c1ccf3ee917f1749e0bcc7efffff59c68d9ad";
+    md5 = "";
+    md5name = "cf5c52f08a2067ae4fe7c8919e3c1ccf3ee917f1749e0bcc7efffff59c68d9ad-libatomic_ops-7_2d.zip";
+  }
+  {
+    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.4.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libnumbertext-1.0.4.tar.xz";
+    sha256 = "349258f4c3a8b090893e847b978b22e8dc1343d4ada3bfba811b97144f1dd67b";
+    md5 = "";
+    md5name = "349258f4c3a8b090893e847b978b22e8dc1343d4ada3bfba811b97144f1dd67b-libnumbertext-1.0.4.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.25.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/xmlsec1-1.2.25.tar.gz";
+    sha256 = "967ca83edf25ccb5b48a3c4a09ad3405a63365576503bf34290a42de1b92fcd2";
+    md5 = "";
+    md5name = "967ca83edf25ccb5b48a3c4a09ad3405a63365576503bf34290a42de1b92fcd2-xmlsec1-1.2.25.tar.gz";
+  }
+  {
+    name = "libxml2-2.9.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libxml2-2.9.8.tar.gz";
+    sha256 = "0b74e51595654f958148759cfef0993114ddccccbb6f31aee018f3558e8e2732";
+    md5 = "";
+    md5name = "0b74e51595654f958148759cfef0993114ddccccbb6f31aee018f3558e8e2732-libxml2-2.9.8.tar.gz";
+  }
+  {
+    name = "libxslt-1.1.32.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libxslt-1.1.32.tar.gz";
+    sha256 = "526ecd0abaf4a7789041622c3950c0e7f2c4c8835471515fd77eec684a355460";
+    md5 = "";
+    md5name = "526ecd0abaf4a7789041622c3950c0e7f2c4c8835471515fd77eec684a355460-libxslt-1.1.32.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.3.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/mdds-1.3.1.tar.bz2";
+    sha256 = "dcb8cd2425567a5a5ec164afea475bce57784bca3e352ad4cbdd3d1a7e08e5a1";
+    md5 = "";
+    md5name = "dcb8cd2425567a5a5ec164afea475bce57784bca3e352ad4cbdd3d1a7e08e5a1-mdds-1.3.1.tar.bz2";
+  }
+  {
+    name = "mDNSResponder-576.30.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/mDNSResponder-576.30.4.tar.gz";
+    sha256 = "4737cb51378377e11d0edb7bcdd1bec79cbdaa7b27ea09c13e3006e58f8d92c0";
+    md5 = "";
+    md5name = "4737cb51378377e11d0edb7bcdd1bec79cbdaa7b27ea09c13e3006e58f8d92c0-mDNSResponder-576.30.4.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.14.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.14.tar.xz";
+    sha256 = "aca8bf1ce55ed83adbea82c70d4c8bebe8139f334b3481bf5a6e407f91f33ce9";
+    md5 = "";
+    md5name = "aca8bf1ce55ed83adbea82c70d4c8bebe8139f334b3481bf5a6e407f91f33ce9-libmwaw-0.3.14.tar.xz";
+  }
+  {
+    name = "mysql-connector-c++-1.1.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/7239a4430efd4d0189c4f24df67f08e5-mysql-connector-c++-1.1.4.tar.gz";
+    sha256 = "a25f14dad39e93a2f9cdf09166ee53981f7212dce829e4208e07a522963a8585";
+    md5 = "7239a4430efd4d0189c4f24df67f08e5";
+    md5name = "7239a4430efd4d0189c4f24df67f08e5-mysql-connector-c++-1.1.4.tar.gz";
+  }
+  {
+    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.38-with-nspr-4.19.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/nss-3.38-with-nspr-4.19.tar.gz";
+    sha256 = "f271ec73291fa3e4bd4b59109f8035cc3a192fc33886f40ed4f9ee4b31c746e9";
+    md5 = "";
+    md5name = "f271ec73291fa3e4bd4b59109f8035cc3a192fc33886f40ed4f9ee4b31c746e9-nss-3.38-with-nspr-4.19.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+ODFTOOLKIT-460+ODFTOOLKIT-475.jar";
+    url = "http://dev-www.libreoffice.org/src/../extern/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies+ODFTOOLKIT-460+ODFTOOLKIT-475.jar";
+    sha256 = "702413413a5d8076c17fe79c0808dfba145a7260020f6c8627ea529a0cf83769";
+    md5 = "";
+    md5name = "702413413a5d8076c17fe79c0808dfba145a7260020f6c8627ea529a0cf83769-odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies+ODFTOOLKIT-460+ODFTOOLKIT-475.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.2p.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/openssl-1.0.2p.tar.gz";
+    sha256 = "50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00";
+    md5 = "";
+    md5name = "50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00-openssl-1.0.2p.tar.gz";
+  }
+  {
+    name = "liborcus-0.13.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/liborcus-0.13.4.tar.gz";
+    sha256 = "bc01b1b3e9091416f498840d3c19a1aa2704b448100e7f6b80eefe88aab06d5b";
+    md5 = "";
+    md5name = "bc01b1b3e9091416f498840d3c19a1aa2704b448100e7f6b80eefe88aab06d5b-liborcus-0.13.4.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-3426.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/pdfium-3426.tar.bz2";
+    sha256 = "80331b48166501a192d65476932f17044eeb5f10faa6ea50f4f175169475c957";
+    md5 = "";
+    md5name = "80331b48166501a192d65476932f17044eeb5f10faa6ea50f4f175169475c957-pdfium-3426.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.34.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libpng-1.6.34.tar.xz";
+    sha256 = "2f1e960d92ce3b3abd03d06dfec9637dfbd22febf107a536b44f7a47c60659f6";
+    md5 = "";
+    md5name = "2f1e960d92ce3b3abd03d06dfec9637dfbd22febf107a536b44f7a47c60659f6-libpng-1.6.34.tar.xz";
+  }
+  {
+    name = "poppler-0.66.0.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/poppler-0.66.0.tar.xz";
+    sha256 = "2c096431adfb74bc2f53be466889b7646e1b599f28fa036094f3f7235cc9eae7";
+    md5 = "";
+    md5name = "2c096431adfb74bc2f53be466889b7646e1b599f28fa036094f3f7235cc9eae7-poppler-0.66.0.tar.xz";
+  }
+  {
+    name = "postgresql-9.2.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2";
+    sha256 = "db61d498105a7d5fe46185e67ac830c878cdd7dc1f82a87f06b842217924c461";
+    md5 = "c0b4799ea9850eae3ead14f0a60e9418";
+    md5name = "c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2";
+  }
+  {
+    name = "Python-3.5.5.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/Python-3.5.5.tar.xz";
+    sha256 = "063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009";
+    md5 = "";
+    md5name = "063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009-Python-3.5.5.tar.xz";
+  }
+  {
+    name = "libqxp-0.0.1.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libqxp-0.0.1.tar.xz";
+    sha256 = "8c257f6184ff94aefa7c9fa1cfae82083d55a49247266905c71c53e013f95c73";
+    md5 = "";
+    md5name = "8c257f6184ff94aefa7c9fa1cfae82083d55a49247266905c71c53e013f95c73-libqxp-0.0.1.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.6.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libvisio-0.1.6.tar.xz";
+    sha256 = "fe1002d3671d53c09bc65e47ec948ec7b67e6fb112ed1cd10966e211a8bb50f9";
+    md5 = "";
+    md5name = "fe1002d3671d53c09bc65e47ec948ec7b67e6fb112ed1cd10966e211a8bb50f9-libvisio-0.1.6.tar.xz";
+  }
+  {
+    name = "libwpd-0.10.2.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libwpd-0.10.2.tar.xz";
+    sha256 = "323f68beaf4f35e5a4d7daffb4703d0566698280109210fa4eaa90dea27d6610";
+    md5 = "";
+    md5name = "323f68beaf4f35e5a4d7daffb4703d0566698280109210fa4eaa90dea27d6610-libwpd-0.10.2.tar.xz";
+  }
+  {
+    name = "libwpg-0.3.2.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libwpg-0.3.2.tar.xz";
+    sha256 = "57faf1ab97d63d57383ac5d7875e992a3d190436732f4083310c0471e72f8c33";
+    md5 = "";
+    md5name = "57faf1ab97d63d57383ac5d7875e992a3d190436732f4083310c0471e72f8c33-libwpg-0.3.2.tar.xz";
+  }
+  {
+    name = "libwps-0.4.9.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libwps-0.4.9.tar.xz";
+    sha256 = "13beb0c733bb1544a542b6ab1d9d205f218e9a2202d1d4cac056f79f6db74922";
+    md5 = "";
+    md5name = "13beb0c733bb1544a542b6ab1d9d205f218e9a2202d1d4cac056f79f6db74922-libwps-0.4.9.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/nixpkgs/pkgs/applications/office/libreoffice/still-gen-shell.nix b/nixpkgs/pkgs/applications/office/libreoffice/still-gen-shell.nix
new file mode 100644
index 000000000000..c5c17c2aaad0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/still-gen-shell.nix
@@ -0,0 +1,29 @@
+{ pkgs ? (import <nixpkgs> {}) }:
+
+with pkgs;
+
+let
+
+  primary-src = callPackage ./still-primary-src.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 > libreoffice-srcs-still.nix
+    }
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/still-primary-src.nix b/nixpkgs/pkgs/applications/office/libreoffice/still-primary-src.nix
new file mode 100644
index 000000000000..29f8006d63ee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/still-primary-src.nix
@@ -0,0 +1,17 @@
+{ fetchurl }:
+
+rec {
+  major = "6";
+  minor = "0";
+  patch = "7";
+  tweak = "3";
+
+  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 = "0wjcnra06d9z51kjb5njlpy4d8zd8wqfvkif2kc6mzhrsz5kqqxr";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/still.nix b/nixpkgs/pkgs/applications/office/libreoffice/still.nix
new file mode 100644
index 000000000000..ff8823e3d9cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/still.nix
@@ -0,0 +1,293 @@
+{ stdenv, fetchurl, pam, python3, libxslt, perl, ArchiveZip, gettext
+, IOCompress, zlib, libjpeg, expat, freetype, libwpd
+, libxml2, db, sablotron, curl, fontconfig, libsndfile, neon
+, bison, flex, zip, unzip, gtk3, gtk2, libmspack, getopt, file, cairo, which
+, icu, boost, jdk, ant, cups, xorg, libcmis
+, openssl, gperf, cppunit, GConf, ORBit2, poppler, utillinux
+, librsvg, gnome_vfs, libGLU_combined, bsh, CoinMP, libwps, libabw
+, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
+, libwpg, dbus-glib, qt4, clucene_core, libcdr, lcms, vigra
+, unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
+, fontsConf, pkgconfig, bluez5, libtool, carlito
+, libatomic_ops, graphite2, harfbuzz, libodfgen, libzmf
+, librevenge, libe-book, libmwaw, glm, glew, gst_all_1
+, gdb, commonsLogging, librdf_rasqal, wrapGAppsHook
+, defaultIconTheme, glib, ncurses, epoxy, gpgme
+, langs ? [ "ca" "cs" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "nl" "pl" "ru" "sl" "zh-CN" ]
+, withHelp ? true
+, kdeIntegration ? false
+}:
+
+let
+  primary-src = import ./still-primary-src.nix { inherit fetchurl; };
+in
+
+let inherit (primary-src) major minor subdir version; in
+
+let
+  lib = stdenv.lib;
+  langsSpaces = lib.concatStringsSep " " langs;
+
+  fetchSrc = {name, sha256}: fetchurl {
+    url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
+    inherit sha256;
+  };
+
+  srcs = {
+    third_party =
+      map (x : ((fetchurl {inherit (x) url sha256 name;}) // {inherit (x) md5name md5;}))
+      ((import ./libreoffice-srcs-still.nix) ++ [
+        (rec {
+          name = "unowinreg.dll";
+          url = "https://dev-www.libreoffice.org/extern/${md5name}";
+          sha256 = "1infwvv1p6i21scywrldsxs22f62x85mns4iq8h6vr6vlx3fdzga";
+          md5 = "185d60944ea767075d27247c3162b3bc";
+          md5name = "${md5}-${name}";
+        })
+      ]);
+
+    translations = fetchSrc {
+      name = "translations";
+      sha256 = "1rk8f77gwqyrnrxpfrvmr03n49bb09idxwzzindxxgcagh3d0p5f";
+    };
+
+    # TODO: dictionaries
+
+    help = fetchSrc {
+      name = "help";
+      sha256 = "076xq1vlsyi2fv3r7rw595075pi08slbzwwc5h9gda3frx1jkj4i";
+    };
+
+  };
+in stdenv.mkDerivation rec {
+  name = "libreoffice-${version}";
+
+  inherit (primary-src) src;
+
+  # For some reason librdf_redland sometimes refers to rasqal.h instead
+  # of rasqal/rasqal.h
+  NIX_CFLAGS_COMPILE = [ "-I${librdf_rasqal}/include/rasqal" ];
+
+  patches = [ ./xdg-open-brief.patch ];
+
+  postUnpack = ''
+    mkdir -v $sourceRoot/src
+  '' + (lib.flip lib.concatMapStrings srcs.third_party (f: ''
+      ln -sfv ${f} $sourceRoot/src/${f.md5name}
+      ln -sfv ${f} $sourceRoot/src/${f.name}
+    ''))
+  + ''
+    ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
+    ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
+  '';
+
+  postPatch = ''
+    sed -e 's@/usr/bin/xdg-open@xdg-open@g' -i shell/source/unix/exec/shellexec.cxx
+
+    # 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++'
+  '';
+
+  QT4DIR = qt4;
+
+  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
+      # 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
+      # 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 -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
+    ''
+    # 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; 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"
+      substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=libreoffice"
+      substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=libreoffice"
+    done
+
+    cp -r sysui/desktop/icons  "$out/share"
+    sed -re 's@Icon=libreoffice(dev)?[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
+  '';
+
+  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"
+    (lib.enableFeature kdeIntegration "kde4")
+    "--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"
+
+    "--with-alloc=system"
+
+    # Without these, configure does not finish
+    "--without-junit"
+
+    # 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-libpagemaker"
+    "--without-system-libstaroffice"
+    "--without-system-libepubgen"
+    "--without-system-libqxp"
+    "--without-system-mdds"
+    # https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
+    "--without-system-orcus"
+    "--without-system-xmlsec"
+  ];
+
+  checkPhase = ''
+    make unitcheck
+    make slowcheck
+  '';
+
+  buildInputs = with xorg;
+    [ ant ArchiveZip autoconf automake bison boost cairo clucene_core
+      IOCompress cppunit cups curl db dbus-glib expat file flex fontconfig
+      freetype GConf getopt gnome_vfs gperf gtk3 gtk2
+      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_combined mythes gst_all_1.gstreamer
+      gst_all_1.gst-plugins-base glib
+      neon nspr nss openldap openssl ORBit2 pam perl pkgconfig poppler
+      python3 sablotron sane-backends unzip vigra which zip zlib
+      mdds bluez5 libcmis libwps libabw libzmf libtool
+      libxshmfence libatomic_ops graphite2 harfbuzz gpgme utillinux
+      librevenge libe-book libmwaw glm glew ncurses epoxy
+      libodfgen CoinMP librdf_rasqal defaultIconTheme gettext
+    ]
+    ++ lib.optional kdeIntegration kdelibs4;
+  nativeBuildInputs = [ wrapGAppsHook gdb ];
+
+  passthru = {
+    inherit srcs jdk;
+  };
+
+  requiredSystemFeatures = [ "big-parallel" ];
+
+  meta = with lib; {
+    description = "Comprehensive, professional-quality productivity suite (Still/stable release)";
+    homepage = https://libreoffice.org/;
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/wrapper.nix b/nixpkgs/pkgs/applications/office/libreoffice/wrapper.nix
new file mode 100644
index 000000000000..ce8910d76d45
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/office/libreoffice/wrapper.sh b/nixpkgs/pkgs/applications/office/libreoffice/wrapper.sh
new file mode 100644
index 000000000000..cff8f200e2bc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/wrapper.sh
@@ -0,0 +1,18 @@
+#!@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"
+    mkdir "$dbus_tmp_dir"
+    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
+
+"@libreoffice@/bin/$(basename "$0")" "$@"
+code="$?"
+
+test -n "$dbus_socket_dir" && rm -rf "$dbus_socket_dir"
+exit "$code"
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/xdg-open-brief.patch b/nixpkgs/pkgs/applications/office/libreoffice/xdg-open-brief.patch
new file mode 100644
index 000000000000..0a2f02e71fed
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/office/libreoffice/xdg-open.patch b/nixpkgs/pkgs/applications/office/libreoffice/xdg-open.patch
new file mode 100644
index 000000000000..3ff7e5d80f7a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/libreoffice/xdg-open.patch
@@ -0,0 +1,25 @@
+diff --git a/shell/source/unix/exec/shellexec.cxx b/shell/source/unix/exec/shellexec.cxx
+--- a/shell/source/unix/exec/shellexec.cxx
++++ b/shell/source/unix/exec/shellexec.cxx
+@@ -150,7 +150,7 @@ void SAL_CALL ShellExec::execute( const OUString& aCommand, const OUString& aPar
+         if (std::getenv("LIBO_FLATPAK") != nullptr) {
+             aBuffer.append("/app/bin/xdg-open");
+         } else {
+-            aBuffer.append("/usr/bin/xdg-open");
++            aBuffer.append("xdg-open");
+         }
+ #endif
+         aBuffer.append(" ");
+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/nixpkgs/pkgs/applications/office/marp/default.nix b/nixpkgs/pkgs/applications/office/marp/default.nix
new file mode 100644
index 000000000000..cdda46d4837f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/marp/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, atomEnv, libXScrnSaver, gtk2 }:
+
+stdenv.mkDerivation rec {
+  name = "marp-${version}";
+  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/nixpkgs/pkgs/applications/office/mendeley/default.nix b/nixpkgs/pkgs/applications/office/mendeley/default.nix
new file mode 100644
index 000000000000..aa9317d2ffd6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/mendeley/default.nix
@@ -0,0 +1,144 @@
+{ fetchurl, stdenv, 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
+}:
+
+let
+  arch32 = "i686-linux";
+
+  arch = if stdenv.hostPlatform.system == arch32
+    then "i386"
+    else "amd64";
+
+  shortVersion = "1.19.1-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 "0fcyl5i8xdgb5j0x1643qc0j74d8p11jczvqmgqkqh0wgid1y1ad"
+    else "1dzwa2cnn9xakrhhq159fhh71gw5wlbf017rrikdlia694m8akq6";
+
+  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
+
+stdenv.mkDerivation {
+  name = "mendeley-${version}";
+
+  src = fetchurl {
+    url = url;
+    sha256 = sha256;
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ dpkg which ] ++ deps;
+
+  propagatedUserEnvPkgs = [ gconf ];
+
+  unpackPhase = "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
+    paxmark m $out/bin/mendeleydesktop
+
+    wrapProgram $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 stdenv writeScript; };
+
+  meta = with stdenv.lib; {
+    homepage = http://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/nixpkgs/pkgs/applications/office/mendeley/update.nix b/nixpkgs/pkgs/applications/office/mendeley/update.nix
new file mode 100644
index 000000000000..147c95b8e7bd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/mendeley/update.nix
@@ -0,0 +1,61 @@
+{ stdenv, writeScript }:
+
+writeScript "update-mendeley" ''
+  #!${stdenv.shell}
+  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/nixpkgs/pkgs/applications/office/mmex/default.nix b/nixpkgs/pkgs/applications/office/mmex/default.nix
new file mode 100644
index 000000000000..3ddca8fe7620
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/mmex/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, sqlite, wxGTK30, gettext }:
+
+
+let
+  version = "1.3.3";
+in
+  stdenv.mkDerivation {
+    name = "money-manager-ex-${version}";
+
+    src = fetchgit {
+      url = "https://github.com/moneymanagerex/moneymanagerex.git";
+      rev = "refs/tags/v${version}";
+      sha256 = "0r4n93z3scv0i0zqflsxwv7j4yl8jy3gr0m4l30y1q8qv0zj9n74";
+    };
+
+    buildInputs = [ sqlite wxGTK30 gettext ];
+
+    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/nixpkgs/pkgs/applications/office/moneyplex/default.nix b/nixpkgs/pkgs/applications/office/moneyplex/default.nix
new file mode 100644
index 000000000000..9f4ed80e6d80
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/moneyplex/default.nix
@@ -0,0 +1,121 @@
+{ stdenv, fetchurl, patchelf, coreutils, pcsclite
+, zlib, glib, gdk_pixbuf, gtk2, cairo, pango, libX11, atk, openssl }:
+
+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 rec {
+  name = "moneyplex-${version}";
+  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
+    #!${stdenv.shell}
+
+    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/nixpkgs/pkgs/applications/office/mytetra/default.nix b/nixpkgs/pkgs/applications/office/mytetra/default.nix
new file mode 100644
index 000000000000..5dae3c9f85c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/mytetra/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, qmake, qtsvg, makeWrapper, xdg_utils }:
+
+let
+  version = "1.43.27";
+in stdenv.mkDerivation rec {
+  name = "mytetra-${version}";
+  src = fetchurl {
+    url = "https://github.com/xintrea/mytetra_dev/archive/v.${version}.tar.gz";
+    sha256 = "1gzr11jy1bvnp28w2ar3wmh76g55jn9nra5la5qasnal6b5pg28h";
+  };
+
+  nativeBuildInputs = [ qmake makeWrapper ];
+  buildInputs = [ qtsvg ];
+
+  hardeningDisable = [ "format" ];
+
+  preBuild = ''
+    substituteInPlace mytetra.pro \
+      --replace /usr/local/bin $out/bin \
+      --replace /usr/share $out/share
+
+    substituteInPlace 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/nixpkgs/pkgs/applications/office/osmo/default.nix b/nixpkgs/pkgs/applications/office/osmo/default.nix
new file mode 100644
index 000000000000..20f8b428f0db
--- /dev/null
+++ b/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 {
+  name = "osmo-${version}";
+  version = "0.4.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/osmo-pim/${name}.tar.gz";
+    sha256 = "1gjd4w9jckfpqr9n0bw0w25h3qhfyzw1xvilh3hqdadfinwyal2v";
+  };
+
+  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/nixpkgs/pkgs/applications/office/paperwork/backend.nix b/nixpkgs/pkgs/applications/office/paperwork/backend.nix
new file mode 100644
index 000000000000..7f82780fbe92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/paperwork/backend.nix
@@ -0,0 +1,47 @@
+{ buildPythonPackage, lib, fetchFromGitLab
+
+, isPy3k, isPyPy
+
+, pyenchant, simplebayes, pillow, pycountry, whoosh, termcolor
+, python-Levenshtein, pyinsane2, pygobject3, pyocr, natsort
+
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "paperwork-backend";
+  version = "1.2.4";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    repo = "paperwork";
+    group = "World";
+    owner = "OpenPaperwork";
+    rev = version;
+    sha256 = "0wjjiw99aswmppnhzq3jir0p5p78r3m8hjinhdirkgm6h7skq5p4";
+  };
+
+  sourceRoot = "source/paperwork-backend";
+
+  # Python 2.x is not supported.
+  disabled = !isPy3k && !isPyPy;
+
+  patchPhase = ''
+    echo 'version = "${version}"' > paperwork_backend/_version.py
+  '';
+
+  preCheck = "\"$out/bin/paperwork-shell\" chkdeps paperwork_backend";
+
+  propagatedBuildInputs = [
+    pyenchant simplebayes pillow pycountry whoosh termcolor
+    python-Levenshtein pyinsane2 pygobject3 pyocr natsort
+    pkgs.poppler_gi pkgs.gtk3
+  ];
+
+  meta = {
+    description = "Backend part of Paperwork (Python API, no UI)";
+    homepage = https://openpaper.work/;
+    license = lib.licenses.gpl3Plus;
+    maintainers = [ lib.maintainers.aszlig ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/paperwork/default.nix b/nixpkgs/pkgs/applications/office/paperwork/default.nix
new file mode 100644
index 000000000000..a48b6e1e1168
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/paperwork/default.nix
@@ -0,0 +1,81 @@
+{ lib, python3Packages, fetchFromGitLab, gtk3, cairo
+, aspellDicts, buildEnv
+, gnome3, hicolor-icon-theme, librsvg
+, xvfb_run, dbus, libnotify
+}:
+
+python3Packages.buildPythonApplication rec {
+  inherit (python3Packages.paperwork-backend) version src;
+  name = "paperwork-${version}";
+
+  sourceRoot = "source/paperwork-gtk";
+
+  # Patch out a few paths that assume that we're using the FHS:
+  postPatch = ''
+    themeDir="$(echo "${gnome3.defaultIconTheme}/share/icons/"*)"
+    sed -i -e "s,/usr/share/icons/gnome,$themeDir," src/paperwork/deps.py
+
+    sed -i -e 's,sys\.prefix,"",g' \
+      src/paperwork/frontend/aboutdialog/__init__.py \
+      src/paperwork/frontend/mainwindow/__init__.py \
+      setup.py
+
+    sed -i -e '/^UI_FILES_DIRS = \[/,/^\]$/ {
+      c UI_FILES_DIRS = ["'"$out/share/paperwork"'"]
+    }' src/paperwork/frontend/util/__init__.py
+
+    sed -i -e '/^LOCALE_PATHS = \[/,/^\]$/ {
+      c LOCALE_PATHS = ["'"$out/share"'"]
+    }' src/paperwork/paperwork.py
+
+    sed -i -e 's/"icon"/"icon-name"/g' \
+      src/paperwork/frontend/mainwindow/mainwindow.glade
+
+    sed -i -e 's/"logo"/"logo-icon-name"/g' \
+      src/paperwork/frontend/aboutdialog/aboutdialog.glade
+
+    cat - ../AUTHORS.py > src/paperwork/_version.py <<EOF
+    # -*- coding: utf-8 -*-
+    version = "${version}"
+    authors_code=""
+    EOF
+  '';
+
+  ASPELL_CONF = "dict-dir ${buildEnv {
+    name = "aspell-all-dicts";
+    paths = lib.collect lib.isDerivation aspellDicts;
+  }}/lib/aspell";
+
+  checkInputs = [ xvfb_run dbus.daemon ];
+  buildInputs = [
+    gnome3.defaultIconTheme hicolor-icon-theme libnotify librsvg
+  ];
+
+  # 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 \
+      paperwork-shell chkdeps paperwork
+  '';
+
+  propagatedBuildInputs = with python3Packages; [
+    paperwork-backend pypillowfight gtk3 cairo pyxdg dateutil
+  ];
+
+  makeWrapperArgs = [
+    "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
+    "--set GDK_PIXBUF_MODULE_FILE \"$GDK_PIXBUF_MODULE_FILE\""
+    "--prefix XDG_DATA_DIRS : \"$out/share\""
+    "--suffix XDG_DATA_DIRS : \"$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\""
+  ];
+
+  meta = {
+    description = "A personal document manager for scanned documents";
+    homepage = https://openpaper.work/;
+    license = lib.licenses.gpl3Plus;
+    maintainers = [ lib.maintainers.aszlig ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/pinpoint/default.nix b/nixpkgs/pkgs/applications/office/pinpoint/default.nix
new file mode 100644
index 000000000000..680b3fd40d72
--- /dev/null
+++ b/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 {
+  name = "pinpoint-${version}";
+  version = "0.1.8";
+  src = fetchurl {
+    url = "http://ftp.gnome.org/pub/GNOME/sources/pinpoint/0.1/${name}.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/nixpkgs/pkgs/applications/office/planner/default.nix b/nixpkgs/pkgs/applications/office/planner/default.nix
new file mode 100644
index 000000000000..7bc02e786e16
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/planner/default.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, fetchFromGitLab
+, pkgconfig
+, intltool
+, automake111x
+, autoconf
+, libtool
+, gnome2
+, libxslt
+, python
+}:
+
+let version = "unstable-2018-03-25";
+
+in stdenv.mkDerivation {
+  name = "planner-${version}";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = "planner";
+    rev = "2a2bf11d96a7f5d64f05c9053661baa848e47797";
+    sha256 = "1bhh05kkbnhibldc1fc7kv7bwf8aa1vh4q379syqd3jbas8y521g";
+  };
+
+  # planner-popup-button.c:81:2: error: 'g_type_class_add_private' is deprecated [-Werror=deprecated-declarations]
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+  nativeBuildInputs = with gnome2; [
+    pkgconfig
+    intltool
+    automake111x
+    autoconf
+    libtool
+    gnome-common
+    gtk-doc
+    scrollkeeper
+  ];
+
+  buildInputs = with gnome2; [
+    GConf
+    gtk
+    libgnomecanvas
+    libgnomeui
+    libglade
+    libxslt
+    python
+  ];
+
+  preConfigure = ''./autogen.sh'';
+
+  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/nixpkgs/pkgs/applications/office/ppl-address-book/Gemfile b/nixpkgs/pkgs/applications/office/ppl-address-book/Gemfile
new file mode 100644
index 000000000000..0039c4366963
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ppl-address-book/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'ppl'
diff --git a/nixpkgs/pkgs/applications/office/ppl-address-book/Gemfile.lock b/nixpkgs/pkgs/applications/office/ppl-address-book/Gemfile.lock
new file mode 100644
index 000000000000..5054bb8b9c8b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ppl-address-book/Gemfile.lock
@@ -0,0 +1,34 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    colored (1.2)
+    greencard (0.0.5)
+    i18n (0.7.0)
+    inifile (2.0.2)
+    mail (2.5.3)
+      i18n (>= 0.4.0)
+      mime-types (~> 1.16)
+      treetop (~> 1.4.8)
+    mime-types (1.25.1)
+    morphine (0.1.1)
+    polyglot (0.3.5)
+    ppl (2.4.0)
+      colored (= 1.2)
+      greencard (= 0.0.5)
+      inifile (= 2.0.2)
+      mail (= 2.5.3)
+      morphine (= 0.1.1)
+      rugged (= 0.17.0.b6)
+    rugged (0.17.0.b6)
+    treetop (1.4.15)
+      polyglot
+      polyglot (>= 0.3.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  ppl
+
+BUNDLED WITH
+   1.12.5
diff --git a/nixpkgs/pkgs/applications/office/ppl-address-book/default.nix b/nixpkgs/pkgs/applications/office/ppl-address-book/default.nix
new file mode 100644
index 000000000000..f15affaa8d67
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ppl-address-book/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, bundlerEnv, ruby, makeWrapper, which }:
+
+let
+  pname = "ppl-address-book";
+
+  version = (import ./gemset.nix).ppl.version;
+
+  env = bundlerEnv rec {
+    name = "${pname}-env-${version}";
+    inherit ruby;
+    gemdir = ./.;
+
+    gemConfig.rugged = attrs: { buildInputs = [ which ]; };
+  };
+
+in stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  phases = [ "installPhase" ];
+
+  buildInputs = [ env makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    makeWrapper ${env}/bin/ppl $out/bin/ppl
+  '';
+
+  meta = with lib; {
+    description = "Address book software for command-line users";
+    homepage    = http://ppladdressbook.org/;
+    license     = with licenses; mit;
+    maintainers = with maintainers; [ chris-martin ];
+    platforms   = platforms.unix;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/office/ppl-address-book/gemset.nix b/nixpkgs/pkgs/applications/office/ppl-address-book/gemset.nix
new file mode 100644
index 000000000000..e8229f6153fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/ppl-address-book/gemset.nix
@@ -0,0 +1,90 @@
+{
+  colored = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b0x5jmsyi0z69bm6sij1k89z7h0laag3cb4mdn7zkl9qmxb90lx";
+      type = "gem";
+    };
+    version = "1.2";
+  };
+  greencard = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11pxrl1w8c7m7rmnnmdaplrv53qgylyvkv8bzsfyjna7k16hynvq";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  i18n = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  inifile = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03rpacxnrnisjhd2zhc7629ica958bkdbakicl5kipw1wbprck25";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  mail = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1afr3acz7vsvr4gp6wnrkw1iwbjhf14mh8g8mlm40r86wcwzr39k";
+      type = "gem";
+    };
+    version = "2.5.3";
+  };
+  mime-types = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8";
+      type = "gem";
+    };
+    version = "1.25.1";
+  };
+  morphine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05aw93cijd1gq39ikw2dw3i2c79bjq05kvxrs81mqxqdlini5wwa";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  polyglot = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  ppl = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vpp4s12ggbk5kpl9z1i7vi9vvghgxrc8my35yk8knckg5waxg47";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  rugged = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "025rj3rkj5yxf4pjj1s8x4yzshlyni3hgrjwhggg54nvw6b688qi";
+      type = "gem";
+    };
+    version = "0.17.0.b6";
+  };
+  treetop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zqj5y0mvfvyz11nhsb4d5ch0i0rfcyj64qx19mw4qhg3hh8z9pz";
+      type = "gem";
+    };
+    version = "1.4.15";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/office/qnotero/default.nix b/nixpkgs/pkgs/applications/office/qnotero/default.nix
new file mode 100644
index 000000000000..ad571cd8b186
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/qnotero/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, python3Packages
+}:
+
+python3Packages.buildPythonPackage rec {
+  name = "qnotero-${version}";
+
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "smathot";
+    repo = "qnotero";
+    rev = "release/${version}";
+    name = "qnotero-${version}-src";
+    sha256 = "1d5a9k1llzn9q1qv1bfwc7gfflabh4riplz9jj0hf04b279y1bj0";
+  };
+
+  propagatedBuildInputs = [ python3Packages.pyqt4 ];
+
+  patchPhase = ''
+      substituteInPlace ./setup.py \
+        --replace "/usr/share" "usr/share"
+
+      substituteInPlace ./libqnotero/_themes/default.py \
+         --replace "/usr/share" "$out/usr/share"
+  '';
+
+  meta = {
+    description = "Quick access to Zotero references";
+    homepage = http://www.cogsci.nl/software/qnotero;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.nico202 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/scribus/default.nix b/nixpkgs/pkgs/applications/office/scribus/default.nix
new file mode 100644
index 000000000000..76bf7ac6893e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/scribus/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, freetype, lcms, libtiff, libxml2
+, libart_lgpl, qt4, python2, cups, fontconfig, libjpeg
+, zlib, libpng, xorg, cairo, podofo, aspell, boost, cmake }:
+
+let
+  pythonEnv = python2.withPackages(ps: [ps.tkinter]);
+in stdenv.mkDerivation rec {
+  name = "scribus-1.4.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/scribus/scribus/${name}.tar.xz";
+    sha256 = "1v2ziq3k0yjz35nk5plcbc1jpi53p9v1cq1z3spch9lwlns3bls2";
+  };
+
+  enableParallelBuilding = true;
+
+  buildInputs = with xorg;
+    [ pkgconfig cmake freetype lcms libtiff libxml2 libart_lgpl qt4
+      pythonEnv cups fontconfig
+      libjpeg zlib libpng podofo aspell cairo
+      boost # for internal 2geom library
+      libXaw libXext libX11 libXtst libXi libXinerama
+      libpthreadstubs libXau libXdmcp
+    ];
+
+  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/nixpkgs/pkgs/applications/office/scribus/unstable.nix b/nixpkgs/pkgs/applications/office/scribus/unstable.nix
new file mode 100644
index 000000000000..4b1595db42a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/scribus/unstable.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchsvn, makeWrapper, pkgconfig, cmake, qtbase, cairo, pixman,
+boost, cups, fontconfig, freetype, hunspell, libjpeg, libtiff, libxml2, lcms2,
+podofo, poppler, poppler_data, python2, harfbuzz, qtimageformats, qttools }:
+
+let
+  pythonEnv = python2.withPackages(ps: [ps.tkinter ps.pillow]);
+  revision = "22730";
+in 
+stdenv.mkDerivation rec {
+  name = "scribus-unstable-${version}";
+  version = "2018-10-13";
+
+  src = fetchsvn {
+    url = "svn://scribus.net/trunk/Scribus";
+    rev = revision;
+    sha256 = "1nlg4qva0fach8fi07r1pakjjlijishpwzlgpnxyaz7r31yjaw63";
+  };
+
+  enableParallelBuilding = true;
+
+  buildInputs = [
+    makeWrapper pkgconfig cmake qtbase cairo pixman boost cups fontconfig
+    freetype hunspell libjpeg libtiff libxml2 lcms2 podofo poppler
+    poppler_data pythonEnv harfbuzz qtimageformats qttools
+  ];
+
+  postFixup = ''
+    wrapProgram $out/bin/scribus \
+      --prefix QT_PLUGIN_PATH : "${qtbase}/${qtbase.qtPluginPrefix}"
+  '';
+
+  meta = {
+    maintainers = [ stdenv.lib.maintainers.erictapen ];
+    platforms = stdenv.lib.platforms.linux;
+    description = "Desktop Publishing (DTP) and Layout program for Linux";
+    homepage = http://www.scribus.net;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/skanlite/default.nix b/nixpkgs/pkgs/applications/office/skanlite/default.nix
new file mode 100644
index 000000000000..416c86397f86
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/skanlite/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, cmake, extra-cmake-modules, qtbase,
+  kcoreaddons, kdoctools, ki18n, kio, kxmlgui, ktextwidgets,
+  libksane
+}:
+
+let
+  minorVersion = "2.0";
+in stdenv.mkDerivation rec {
+  name = "skanlite-2.0.1";
+
+  src = fetchurl {
+    url    = "mirror://kde/stable/skanlite/${minorVersion}/${name}.tar.xz";
+    sha256 = "0dh2v8029gkhcf3pndcxz1zk2jgpihgd30lmplgirilxdq9l2i9v";
+  };
+
+  nativeBuildInputs = [ cmake kdoctools extra-cmake-modules ];
+
+  buildInputs = [
+    qtbase
+    kcoreaddons kdoctools ki18n kio kxmlgui ktextwidgets
+    libksane
+  ];
+
+  enableParallelBuilding = true;
+
+  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/nixpkgs/pkgs/applications/office/skrooge/default.nix b/nixpkgs/pkgs/applications/office/skrooge/default.nix
new file mode 100644
index 000000000000..5168b2fef533
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/skrooge/default.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, lib, fetchurl,
+  cmake, extra-cmake-modules, qtwebkit, 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 {
+  name = "skrooge-${version}";
+  version = "2.17.0";
+
+  src = fetchurl {
+    url = "http://download.kde.org/stable/skrooge/${name}.tar.xz";
+    sha256 = "0v83bcabchsz5fs0iv5i75ps01sga48hq4cx29dajcq3kf9xgwhr";
+  };
+
+  nativeBuildInputs = [
+    cmake extra-cmake-modules kdoctools shared-mime-info
+  ];
+
+  buildInputs = [
+    qtwebkit 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"
+  ];
+
+  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/nixpkgs/pkgs/applications/office/spice-up/default.nix b/nixpkgs/pkgs/applications/office/spice-up/default.nix
new file mode 100644
index 000000000000..a32ad677c257
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/spice-up/default.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, fetchFromGitHub
+, gettext
+, libxml2
+, pkgconfig
+, gtk3
+, granite
+, gnome3
+, gobject-introspection
+, json-glib
+, cmake
+, ninja
+, libgudev
+, libevdev
+, libsoup
+, vala_0_40
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "spice-up-${version}";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "Philip-Scott";
+    repo = "Spice-up";
+    rev = version;
+    sha256 = "1qb1hlw7g581dmgg5mh832ixjkcgqm3lqzj6xma2cz8wdncwwjaq";
+  };
+
+  USER = "nix-build-user";
+
+  nativeBuildInputs = [
+    pkgconfig
+    wrapGAppsHook
+    vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
+    cmake
+    ninja
+    gettext
+    libxml2
+    gobject-introspection # For setup hook
+  ];
+  buildInputs = [
+    gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
+    gnome3.libgee
+    granite
+    gtk3
+    json-glib
+    libevdev
+    libgudev
+    libsoup
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Create simple and beautiful presentations on the Linux desktop";
+    homepage = https://github.com/Philip-Scott/Spice-up;
+    maintainers = with maintainers; [ samdroid-apps ];
+    platforms = platforms.linux;
+    # The COPYING file has GPLv3; some files have GPLv2+ and some have GPLv3+
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/tagainijisho/default.nix b/nixpkgs/pkgs/applications/office/tagainijisho/default.nix
new file mode 100644
index 000000000000..24542041cc87
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/office/timetrap/Gemfile b/nixpkgs/pkgs/applications/office/timetrap/Gemfile
new file mode 100644
index 000000000000..3ce845d11c10
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/timetrap/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'timetrap'
diff --git a/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock b/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock
new file mode 100644
index 000000000000..f71f4eaa4085
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock
@@ -0,0 +1,19 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    chronic (0.10.2)
+    sequel (4.43.0)
+    sqlite3 (1.3.13)
+    timetrap (1.15.1)
+      chronic (~> 0.10.2)
+      sequel (~> 4.43.0)
+      sqlite3 (~> 1.3.3)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  timetrap
+
+BUNDLED WITH
+   1.10.6
diff --git a/nixpkgs/pkgs/applications/office/timetrap/default.nix b/nixpkgs/pkgs/applications/office/timetrap/default.nix
new file mode 100644
index 000000000000..20dd27fa2873
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/timetrap/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerEnv, ruby }:
+
+bundlerEnv rec {
+  name = "timetrap-${version}";
+
+  version = (import gemset).timetrap.version;
+  inherit ruby;
+  gemdir = ./.;
+  gemset = ./gemset.nix;
+
+  meta = with lib; {
+    description = "A simple command line time tracker written in ruby";
+    homepage = https://github.com/samg/timetrap;
+    license = licenses.mit;
+    maintainers = [ maintainers.jerith666 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/timetrap/gemset.nix b/nixpkgs/pkgs/applications/office/timetrap/gemset.nix
new file mode 100644
index 000000000000..5764016573fc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/timetrap/gemset.nix
@@ -0,0 +1,35 @@
+{
+  chronic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  sequel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "121z4sq2m4vsgxwy8hs6d12cc1i4xa5rjiv0nbviyj87jldxapw0";
+      type = "gem";
+    };
+    version = "4.43.0";
+  };
+  sqlite3 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
+      type = "gem";
+    };
+    version = "1.3.13";
+  };
+  timetrap = {
+    dependencies = ["chronic" "sequel" "sqlite3"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ylaz9q99hbxnw6h1df6wphmh68fj847d1l4f9jylcx3nzzp5cyd";
+      type = "gem";
+    };
+    version = "1.15.1";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix b/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix
new file mode 100644
index 000000000000..77a602954438
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl }:
+let
+  version = "2.11.0";
+in stdenv.mkDerivation {
+  name = "todo.txt-cli-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/ginatrapani/todo.txt-cli/releases/download/v${version}/todo.txt_cli-${version}.tar.gz";
+    sha256 = "0majx8lcvhh8ji54qi0sxr833wchdss95fjc92byd8g3lfz27rsz";
+  };
+
+  installPhase = ''
+    install -vd $out/bin
+    install -vm 755 todo.sh $out/bin
+    install -vd $out/etc/bash_completion.d
+    install -vm 644 todo_completion $out/etc/bash_completion.d/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/nixpkgs/pkgs/applications/office/todoman/default.nix b/nixpkgs/pkgs/applications/office/todoman/default.nix
new file mode 100644
index 000000000000..3f4953fc12a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/todoman/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, python3, glibcLocales, fetchpatch }:
+
+let
+  inherit (python3.pkgs) buildPythonApplication fetchPypi;
+in
+buildPythonApplication rec {
+  pname = "todoman";
+  version = "3.5.0";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "051qjdpwif06x7qspnb4pfwdhb8nnmz99yqcp4kla5hv0n3jh0w9";
+  };
+
+    LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux
+      "${glibcLocales}/lib/locale/locale-archive";
+    LANG = "en_US.UTF-8";
+    LC_TYPE = "en_US.UTF-8";
+
+  buildInputs = [ glibcLocales ];
+  propagatedBuildInputs = with python3.pkgs;
+    [ atomicwrites click click-log configobj humanize icalendar parsedatetime
+      python-dateutil pyxdg tabulate urwid ];
+
+  checkInputs = with python3.pkgs;
+    [ flake8 flake8-import-order freezegun hypothesis pytest pytestrunner pytestcov ];
+
+  makeWrapperArgs = [ "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive"
+                      "--set CHARSET en_us.UTF-8" ];
+
+  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/nixpkgs/pkgs/applications/office/treesheets/default.nix b/nixpkgs/pkgs/applications/office/treesheets/default.nix
new file mode 100644
index 000000000000..d0a4953c426b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/treesheets/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, wxGTK, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name    = "treesheets-${version}";
+  version = "2018-08-18";
+
+  src = fetchFromGitHub {
+    owner  = "aardappel";
+    repo   = "treesheets";
+    rev    = "3af41d99c8f9f32603a36ab64af3560b6d61dd73";
+    sha256 = "147y8ggh3clwjgsi15z8i4jnzlkh8p17mmlg532jym53zzbcva65";
+  };
+
+  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/nixpkgs/pkgs/applications/office/tryton/default.nix b/nixpkgs/pkgs/applications/office/tryton/default.nix
new file mode 100644
index 000000000000..833cb7fc56a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/tryton/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, python2Packages
+, pkgconfig
+, librsvg
+, gobject-introspection
+, atk
+, gtk3
+, gtkspell3
+, gnome3
+, goocanvas2
+}:
+
+with stdenv.lib;
+
+python2Packages.buildPythonApplication rec {
+  pname = "tryton";
+  version = "4.8.5";
+  src = python2Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "43759d22b061a7a392a534d19a045fafd442ce98a0e390ee830127367dcaf4b4";
+  };
+  nativeBuildInputs = [ pkgconfig gobject-introspection ];
+  propagatedBuildInputs = with python2Packages; [
+    chardet
+    dateutil
+    pygtk
+    librsvg
+    pygobject3
+    goocalendar
+    cdecimal
+  ];
+  buildInputs = [
+    atk
+    gtk3
+    gnome3.defaultIconTheme
+    gtkspell3
+    goocanvas2
+  ];
+  makeWrapperArgs = [
+    ''--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"''
+    ''--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH"''
+    ''--suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"''
+  ];
+  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/nixpkgs/pkgs/applications/office/trytond/default.nix b/nixpkgs/pkgs/applications/office/trytond/default.nix
new file mode 100644
index 000000000000..dc63acd6db64
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/trytond/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, python2Packages
+, withPostgresql ? true }:
+
+with stdenv.lib;
+
+python2Packages.buildPythonApplication rec {
+  pname = "trytond";
+  version = "4.8.4";
+  src = python2Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "1935045b1b4674de602b4279a9cfd0a14431624a28ccb490234cffecb81fbca7";
+  };
+
+  # Tells the tests which database to use
+  DB_NAME = ":memory:";
+
+  buildInputs = with python2Packages; [
+    mock
+  ];
+  propagatedBuildInputs = with python2Packages; ([
+    dateutil
+    lxml
+    polib
+    python-sql
+    relatorio
+    werkzeug
+    wrapt
+    ipaddress
+
+    # extra dependencies
+    bcrypt
+    pydot
+    python-Levenshtein
+    simplejson
+    cdecimal
+    html2text
+  ] ++ stdenv.lib.optional withPostgresql psycopg2);
+  meta = {
+    description = "The server of the Tryton application platform";
+    longDescription = ''
+      The server 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; [ udono johbo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/tudu/default.nix b/nixpkgs/pkgs/applications/office/tudu/default.nix
new file mode 100644
index 000000000000..dea3ea9731b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/tudu/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, ncurses }:
+stdenv.mkDerivation rec {
+
+  name = "tudu-${version}";
+  version = "0.10.2";
+
+  src = fetchurl {
+    url = "https://code.meskio.net/tudu/${name}.tar.gz";
+    sha256 = "1xsncvd1c6v8y0dzc5mspy9rrwc89pabhz6r2lihsirk83h2rqym";
+  };
+
+  buildInputs = [ ncurses ];
+
+  meta = {
+    description = "ncurses-based hierarchical todo list manager with vim-like keybindings";
+    homepage = https://code.meskio.net/tudu/;
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/watson/default.nix b/nixpkgs/pkgs/applications/office/watson/default.nix
new file mode 100644
index 000000000000..e0f0c58b4506
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/watson/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, pythonPackages, fetchpatch }:
+
+with pythonPackages;
+
+buildPythonApplication rec {
+  pname = "td-watson";
+  version = "1.5.2";
+
+  src = fetchPypi {
+    inherit version pname;
+    sha256 = "6e03d44a9278807fe5245e9ed0943f13ffb88e11249a02655c84cb86260b27c8";
+  };
+
+  # uses tox, test invocation fails
+  doCheck = true;
+  checkPhase = ''
+    py.test -vs tests
+ '';
+
+  patches = [
+    (fetchpatch {
+      url = https://github.com/TailorDev/Watson/commit/f5760c71cbc22de4e12ede8f6f7257515a9064d3.patch;
+      sha256 = "0s9h26915ilpbd0qhmvk77r3gmrsdrl5l7dqxj0l5q66fp0z6b0g";
+    })
+  ];
+
+  checkInputs = [ py pytest pytest-datafiles mock pytest-mock pytestrunner ];
+  propagatedBuildInputs = [ requests click arrow ];
+
+  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 ] ;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/wordgrinder/default.nix b/nixpkgs/pkgs/applications/office/wordgrinder/default.nix
new file mode 100644
index 000000000000..8efe9b368a07
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/wordgrinder/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, pkgconfig, makeWrapper
+, lua52Packages, libXft, ncurses, ninja, readline, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "wordgrinder-${version}";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    repo = "wordgrinder";
+    owner = "davidgiven";
+    rev = "${version}";
+    sha256 = "19n4vn8zyvcvgwygm63d3jcmiwh6a2ikrrqqmkm8fvhdvwkqgr9k";
+  };
+
+  makeFlags = [
+    "PREFIX=$(out)"
+    "LUA_INCLUDE=${lua52Packages.lua}/include"
+    "LUA_LIB=${lua52Packages.lua}/lib/liblua.so"
+  ] ++ stdenv.lib.optional stdenv.isLinux "XFT_PACKAGE=--libs=\{-lX11 -lXft\}";
+
+  dontUseNinjaBuild = true;
+  dontUseNinjaInstall = true;
+
+  nativeBuildInputs = [
+    pkgconfig
+    makeWrapper
+    ninja
+  ];
+
+  buildInputs = [
+    libXft
+    lua52Packages.lua
+    ncurses
+    readline
+    zlib
+  ];
+
+  # 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; [ ];
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/wpsoffice/default.nix b/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
new file mode 100644
index 000000000000..4c83d67f7cda
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchurl
+, libX11, glib, xorg, fontconfig, freetype
+, zlib, libpng12, libICE, libXrender, cups }:
+
+let
+  bits = if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64"
+         else "x86";
+
+  version = "10.1.0.5672";
+in stdenv.mkDerivation rec{
+  name = "wpsoffice-${version}";
+
+  src = fetchurl {
+    name = "${name}.tar.xz";
+    url = "http://kdl.cc.ksosoft.com/wps-community/download/a21/wps-office_${version}~a21_${bits}.tar.xz";
+    sha256 = if bits == "x86_64" then
+      "0mi3n9kplf82gd0g2m0np957agy53p4g1qh81pbban49r4n0ajcz" else
+      "1dk400ap5qwdhjvn8lnk602f5akayr391fkljxdkrpn5xac01m97";
+  };
+
+  meta = {
+    description = "Office program originally named Kingsoft Office";
+    homepage = http://wps-community.org/;
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    hydraPlatforms = [];
+    license = stdenv.lib.licenses.unfreeRedistributable;
+  };
+
+  libPath = stdenv.lib.makeLibraryPath [
+    libX11
+    libpng12
+    glib
+    xorg.libSM
+    xorg.libXext
+    fontconfig
+    zlib
+    freetype
+    libICE
+    cups
+    libXrender
+  ];
+
+  dontPatchELF = true;
+
+  # wpsoffice uses `/build` in its own build system making nix things there
+  # references to nix own build directory
+  noAuditTmpdir = true;
+
+  installPhase = ''
+    prefix=$out/opt/kingsoft/wps-office
+    mkdir -p $prefix
+    cp -r . $prefix
+
+    # Avoid forbidden reference error due use of patchelf
+    rm -r $PWD
+
+    mkdir $out/bin
+    for i in wps wpp et; do
+      patchelf \
+        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --force-rpath --set-rpath "$prefix/office6:$libPath" \
+        $prefix/office6/$i
+
+      substitute $prefix/$i $out/bin/$i \
+        --replace /opt/kingsoft/wps-office $prefix
+      chmod +x $out/bin/$i
+
+      substituteInPlace $prefix/resource/applications/wps-office-$i.desktop \
+        --replace /usr/bin $out/bin
+    done
+
+    # China fonts
+    mkdir -p $prefix/resource/fonts/wps-office $out/etc/fonts/conf.d
+    ln -s $prefix/fonts/* $prefix/resource/fonts/wps-office
+    ln -s $prefix/fontconfig/*.conf $out/etc/fonts/conf.d
+
+    ln -s $prefix/resource $out/share
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/office/zanshin/default.nix b/nixpkgs/pkgs/applications/office/zanshin/default.nix
new file mode 100644
index 000000000000..f8785616c5e6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/zanshin/default.nix
@@ -0,0 +1,39 @@
+{
+  mkDerivation, lib,
+  fetchFromGitHub,
+  extra-cmake-modules,
+  qtbase, boost,
+  akonadi-calendar, akonadi-notes, akonadi-search, kidentitymanagement, kontactinterface, kldap,
+  krunner, kwallet
+}:
+
+mkDerivation rec {
+  pname = "zanshin";
+  version = "2017-11-25";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "KDE";
+    repo = "zanshin";
+    rev = "3df91dd81682d2ccfe542c4582dc1d5f98537c89";
+    sha256 = "18wx7bdqzp81xmwi266gphh2lfbcp5s0fzyp654gki40yhkqph6m";
+  };
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    qtbase boost
+    akonadi-calendar akonadi-notes akonadi-search kidentitymanagement kontactinterface kldap
+    krunner kwallet
+  ];
+
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/zim/default.nix b/nixpkgs/pkgs/applications/office/zim/default.nix
new file mode 100644
index 000000000000..a3e2bdd4d1e0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/zim/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, python2Packages }:
+
+#
+# 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).
+#
+
+python2Packages.buildPythonApplication rec {
+  name = "zim-${version}";
+  version = "0.69";
+
+  src = fetchurl {
+    url = "http://zim-wiki.org/downloads/${name}.tar.gz";
+    sha256 = "1j04l1914iw87b0jd3r1czrh0q491fdgbqbi0biacxiri5q0i6a1";
+  };
+
+  propagatedBuildInputs = with python2Packages; [ pyGtkGlade pyxdg pygobject2 ];
+
+  preBuild = ''
+    export HOME=$TMP
+
+    sed -i '/zim_install_class,/d' setup.py
+  '';
+
+
+  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/nixpkgs/pkgs/applications/office/zotero/default.nix b/nixpkgs/pkgs/applications/office/zotero/default.nix
new file mode 100644
index 000000000000..b070958b756b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/zotero/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, buildFHSUserEnv, makeDesktopItem, runCommand, bash, wrapGAppsHook, gsettings-desktop-schemas, gtk3, gnome3 }:
+
+let
+version = "5.0.35.1";
+meta = with stdenv.lib; {
+  homepage = https://www.zotero.org;
+  description = "Collect, organize, cite, and share your research sources";
+  license = licenses.agpl3;
+  platforms = platforms.linux;
+};
+
+zoteroSrc = stdenv.mkDerivation rec {
+  inherit version;
+  name = "zotero-${version}-pkg";
+
+  src = fetchurl {
+    url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
+    sha256 = "0d2imvp84svllrnja1dl4nldp634z632g5xkm2q9v7j3dwbzw1hw";
+  };
+
+  buildInputs= [ wrapGAppsHook gsettings-desktop-schemas gtk3 gnome3.adwaita-icon-theme gnome3.dconf ];
+  phases = [ "unpackPhase" "installPhase" "fixupPhase"];
+
+  installPhase = ''
+    mkdir -p $out/data
+    cp -r * $out/data
+    mkdir $out/bin
+    ln -s $out/data/zotero $out/bin/zotero
+  '';
+};
+
+fhsEnv = buildFHSUserEnv {
+  name = "zotero-fhs-env";
+  targetPkgs = pkgs: with pkgs; with xorg; [
+    gtk3 dbus-glib
+    libXt nss
+    libX11
+  ];
+};
+
+desktopItem = makeDesktopItem rec {
+  name = "zotero-${version}";
+  exec = "zotero -url %U";
+  icon = "zotero";
+  type = "Application";
+  comment = meta.description;
+  desktopName = "Zotero";
+  genericName = "Reference Management";
+  categories = "Office;Database;";
+  startupNotify = "true";
+};
+
+in runCommand "zotero-${version}" { inherit meta; } ''
+  mkdir -p $out/bin $out/share/applications
+  cat >$out/bin/zotero <<EOF
+#!${bash}/bin/bash
+${fhsEnv}/bin/zotero-fhs-env ${zoteroSrc}/bin/zotero
+EOF
+  chmod +x $out/bin/zotero
+
+  cp ${desktopItem}/share/applications/* $out/share/applications/
+
+  for size in 16 32 48 256; do
+    install -Dm444 ${zoteroSrc}/data/chrome/icons/default/default$size.png \
+      $out/share/icons/hicolor/''${size}x''${size}/apps/zotero.png
+  done
+''
diff --git a/nixpkgs/pkgs/applications/office/zotero/zotero.sh b/nixpkgs/pkgs/applications/office/zotero/zotero.sh
new file mode 100644
index 000000000000..8941097fc422
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/astronomy/astrolabe-generator/default.nix b/nixpkgs/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
new file mode 100644
index 000000000000..3150d41ca9f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, jre, makeWrapper, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "astrolabe-generator-${version}";
+  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 = [ maintainers.genesis ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix b/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
new file mode 100644
index 000000000000..e3ceffd34c19
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl, freeglut, gtk2, gtkglext, libjpeg_turbo, libtheora, libXmu
+, lua, libGLU_combined, 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_combined 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/nixpkgs/pkgs/applications/science/astronomy/gildas/aarch64.patch b/nixpkgs/pkgs/applications/science/astronomy/gildas/aarch64.patch
new file mode 100644
index 000000000000..40696a03dec7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/astronomy/gildas/clang.patch b/nixpkgs/pkgs/applications/science/astronomy/gildas/clang.patch
new file mode 100644
index 000000000000..4d6654a99aee
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix b/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
new file mode 100644
index 000000000000..ef3a0ba40f28
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, gtk2-x11 , pkgconfig , python27 , gfortran , lesstif
+, cfitsio , getopt , perl , groff , which
+}:
+
+let
+  python27Env = python27.withPackages(ps: with ps; [ numpy ]);
+in
+
+stdenv.mkDerivation rec {
+  srcVersion = "dec18a";
+  version = "20181201_a";
+  name = "gildas-${version}";
+
+  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.gz"
+      "http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.gz" ];
+    sha256 = "f295b5b7f999c0d746a52b307af7b7bdbed0d9b3d87100a6a102e0cc64f3a9bd";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ pkgconfig groff perl getopt gfortran which ];
+
+  buildInputs = [ gtk2-x11 lesstif cfitsio python27Env ];
+
+  patches = [ ./wrapper.patch ./clang.patch ./aarch64.patch ];
+
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument";
+
+  configurePhase=''
+    substituteInPlace admin/wrapper.sh --replace '%%OUT%%' $out
+    substituteInPlace admin/wrapper.sh --replace '%%PYTHONHOME%%' ${python27Env}
+    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/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch b/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch
new file mode 100644
index 000000000000..2e470a1e9cdc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch
@@ -0,0 +1,19 @@
+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,15 @@
++#!/bin/sh -e
++
++export GAG_ROOT_DIR="%%OUT%%"
++export GAG_PATH="${GAG_ROOT_DIR}/etc"
++export GAG_EXEC_SYSTEM="libexec"
++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/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix b/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix
new file mode 100644
index 000000000000..9bacf6d90417
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, intltool
+, gtk3, glib, curl, goocanvas2, gpsd
+, hamlib, wrapGAppsHook
+}:
+
+let
+  version = "2.2.1";
+in stdenv.mkDerivation {
+  name = "gpredict-${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/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix b/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
new file mode 100644
index 000000000000..03d0018f237b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, SDL, SDL_ttf, SDL_image, libSM, libICE, libGLU_combined, 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_combined 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/nixpkgs/pkgs/applications/science/astronomy/openspace/assets.patch b/nixpkgs/pkgs/applications/science/astronomy/openspace/assets.patch
new file mode 100644
index 000000000000..38c17ad4593a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/astronomy/openspace/config.patch b/nixpkgs/pkgs/applications/science/astronomy/openspace/config.patch
new file mode 100644
index 000000000000..826edea09071
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/astronomy/openspace/constexpr.patch b/nixpkgs/pkgs/applications/science/astronomy/openspace/constexpr.patch
new file mode 100644
index 000000000000..d9fc91d7c277
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/astronomy/openspace/default.nix b/nixpkgs/pkgs/applications/science/astronomy/openspace/default.nix
new file mode 100644
index 000000000000..ee3a71cf1813
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/openspace/default.nix
@@ -0,0 +1,89 @@
+{ stdenv, fetchFromGitHub, fetchurl, makeWrapper, cmake
+, curl, boost, gdal, glew, soil
+, libX11, libXi, libXxf86vm, libXcursor, libXrandr, libXinerama }:
+
+stdenv.mkDerivation rec {
+  version = "0.11.1";
+  name    = "openspace-${version}";
+  
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/astronomy/openspace/vrpn.patch b/nixpkgs/pkgs/applications/science/astronomy/openspace/vrpn.patch
new file mode 100644
index 000000000000..9386d0257b7f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
new file mode 100644
index 000000000000..eb7ba2a8c9c4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -0,0 +1,38 @@
+{ mkDerivation, lib, fetchFromGitHub
+, cmake, freetype, libpng, libGLU_combined, openssl, perl, libiconv
+, qtscript, qtserialport, qttools
+, qtmultimedia, qtlocation, makeWrapper, qtbase
+}:
+
+mkDerivation rec {
+  name = "stellarium-${version}";
+  version = "0.18.3";
+
+  src = fetchFromGitHub {
+    owner = "Stellarium";
+    repo = "stellarium";
+    rev = "v${version}";
+    sha256 = "1cnwfk3vdsxh8gacw22qik401z0kpzd1ralbg9ph2cjqx9x2m1s1";
+  };
+
+  nativeBuildInputs = [ cmake perl ];
+
+  buildInputs = [
+    freetype libpng libGLU_combined openssl libiconv qtscript qtserialport qttools
+    qtmultimedia qtlocation qtbase makeWrapper
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/stellarium \
+      --prefix QT_PLUGIN_PATH : "${qtbase}/lib/qt-5.${lib.versions.minor qtbase.version}/plugins"
+  '';
+
+  meta = with lib; {
+    description = "Free open-source planetarium";
+    homepage = http://stellarium.org/;
+    license = licenses.gpl2;
+
+    platforms = platforms.linux; # should be mesaPlatforms, but we don't have qt on darwin
+    maintainers = with maintainers; [ peti ma27 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix b/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix
new file mode 100644
index 000000000000..fef4ca1907fd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, imake, gccmakedep, libXt, libXext }:
+
+stdenv.mkDerivation rec {
+  name = "xearth-${version}";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "http://xearth.org/${name}.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/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix b/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix
new file mode 100644
index 000000000000..7abd83b6dc12
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, pkgconfig, freetype, pango, libpng, libtiff, giflib
+, libjpeg, netpbm}:
+
+stdenv.mkDerivation rec {
+  name = "xplanet-1.3.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/xplanet/${name}.tar.gz";
+    sha256 = "0hml2v228wi2r61m1pgka7h96rl92b6apk0iigm62miyp4mp9ys4";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ freetype pango libpng libtiff giflib libjpeg netpbm ];
+
+  patches = [
+    ./giflib.patch
+    ./gcc6.patch
+  ];
+
+  meta = {
+    description = "Renders an image of the earth or other planets into the X root window";
+    homepage = http://xplanet.sourceforge.net;
+    license = "GPL";
+    maintainers = [ stdenv.lib.maintainers.sander ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/astronomy/xplanet/gcc6.patch b/nixpkgs/pkgs/applications/science/astronomy/xplanet/gcc6.patch
new file mode 100644
index 000000000000..b30385a50f83
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/xplanet/gcc6.patch
@@ -0,0 +1,128 @@
+diff --git c/src/libannotate/addArcs.cpp i/src/libannotate/addArcs.cpp
+index 2ee06c0..0ff5478 100644
+--- c/src/libannotate/addArcs.cpp
++++ i/src/libannotate/addArcs.cpp
+@@ -258,7 +258,7 @@ addArcs(PlanetProperties *planetProperties, Planet *planet,
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+                 readArcFile(line, planet, view, projection,
+                             planetProperties, annotationMap);
+             
+@@ -292,7 +292,7 @@ addArcs(View *view, multimap<double, Annotation *> &annotationMap)
+         {
+             ifstream inFile(arcFile.c_str());
+             char *line = new char[256];
+-            while (inFile.getline (line, 256, '\n') != NULL)
++            while (inFile.getline (line, 256, '\n'))
+                 readArcFile(line, NULL, view, NULL, NULL, annotationMap);
+ 
+             inFile.close();
+diff --git c/src/libannotate/addMarkers.cpp i/src/libannotate/addMarkers.cpp
+index 6a8a835..b35d820 100644
+--- c/src/libannotate/addMarkers.cpp
++++ i/src/libannotate/addMarkers.cpp
+@@ -423,7 +423,7 @@ addMarkers(PlanetProperties *planetProperties, Planet *planet,
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+             {
+                 unsigned char color[3];
+                 memcpy(color, planetProperties->MarkerColor(), 3);
+@@ -469,7 +469,7 @@ addMarkers(View *view, const int width, const int height,
+         {
+             ifstream inFile(markerFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+             {
+                 unsigned char color[3];
+                 memcpy(color, options->Color(), 3);
+diff --git c/src/libannotate/addSatellites.cpp i/src/libannotate/addSatellites.cpp
+index 2634339..c9ff0b0 100644
+--- c/src/libannotate/addSatellites.cpp
++++ i/src/libannotate/addSatellites.cpp
+@@ -488,10 +488,10 @@ loadSatelliteVector(PlanetProperties *planetProperties)
+         {
+             ifstream inFile(tleFile.c_str());
+             char lines[3][80];
+-            while (inFile.getline(lines[0], 80) != NULL)
++            while (inFile.getline(lines[0], 80))
+             {
+-                if ((inFile.getline(lines[1], 80) == NULL) 
+-                    || (inFile.getline(lines[2], 80) == NULL))
++                if ((inFile.getline(lines[1], 80))
++                    || (inFile.getline(lines[2], 80)))
+                 {
+                     ostringstream errStr;
+                     errStr << "Malformed TLE file (" << tleFile << ")?\n";
+@@ -542,7 +542,7 @@ addSatellites(PlanetProperties *planetProperties, Planet *planet,
+         {
+             ifstream inFile(satFile.c_str());
+             char *line = new char[MAX_LINE_LENGTH];
+-            while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
++            while (inFile.getline (line, MAX_LINE_LENGTH, '\n'))
+                 readSatelliteFile(line, planet, view, projection,
+                                   planetProperties, annotationMap);
+             
+diff --git c/src/libmultiple/RayleighScattering.cpp i/src/libmultiple/RayleighScattering.cpp
+index d885173..7c25c1c 100644
+--- c/src/libmultiple/RayleighScattering.cpp
++++ i/src/libmultiple/RayleighScattering.cpp
+@@ -369,7 +369,7 @@ RayleighScattering::readConfigFile(string configFile)
+ 
+     diskTemplate_.clear();
+     limbTemplate_.clear();
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -439,7 +439,7 @@ RayleighScattering::readBlock(ifstream &inFile,
+     values.clear();
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+@@ -470,7 +470,7 @@ RayleighScattering::readValue(ifstream &inFile,
+                               double &value)
+ {
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         int i = 0;
+         while (isDelimiter(line[i]))
+diff --git c/src/libmultiple/drawStars.cpp i/src/libmultiple/drawStars.cpp
+index ff07c49..22e41a0 100644
+--- c/src/libmultiple/drawStars.cpp
++++ i/src/libmultiple/drawStars.cpp
+@@ -41,7 +41,7 @@ drawStars(DisplayBase *display, View *view)
+     ifstream inFile(starMap.c_str());
+ 
+     char line[MAX_LINE_LENGTH];
+-    while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
++    while (inFile.getline(line, MAX_LINE_LENGTH, '\n'))
+     {
+         if (line[0] == '#') continue;
+ 
+diff --git c/src/readConfig.cpp i/src/readConfig.cpp
+index cc1964f..2946690 100644
+--- c/src/readConfig.cpp
++++ i/src/readConfig.cpp
+@@ -550,7 +550,7 @@ readConfigFile(string configFile, PlanetProperties *planetProperties[])
+ 
+         ifstream inFile(configFile.c_str());
+         char *line = new char[256];
+-        while (inFile.getline(line, 256, '\n') != NULL)
++        while (inFile.getline(line, 256, '\n'))
+             readConfig(line, planetProperties);
+         
+         // This condition will only be true if [default] is the only
diff --git a/nixpkgs/pkgs/applications/science/astronomy/xplanet/giflib.patch b/nixpkgs/pkgs/applications/science/astronomy/xplanet/giflib.patch
new file mode 100644
index 000000000000..653b9c8dc7d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/astronomy/xplanet/giflib.patch
@@ -0,0 +1,141 @@
+diff -wbBur xplanet-1.3.0/src/libimage/gif.c xplanet-1.3.0.my/src/libimage/gif.c
+--- xplanet-1.3.0/src/libimage/gif.c	2006-03-26 01:50:51.000000000 +0300
++++ xplanet-1.3.0.my/src/libimage/gif.c	2014-05-29 18:59:14.830652716 +0400
+@@ -20,7 +20,7 @@
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+-
++#define FALSE 0
+ #include <gif_lib.h>
+ 
+ /*
+@@ -42,11 +42,11 @@
+     int color_index;
+     unsigned char *ptr = NULL;
+ 
+-    infile = DGifOpenFileName(filename);
++    infile = DGifOpenFileName(filename, NULL);
+ 
+     if (infile == NULL)
+     {
+-        PrintGifError();
++        printf("%s\n", GifErrorString(GIF_ERROR));
+         return(0);
+     }
+ 
+@@ -54,7 +54,7 @@
+     {
+         if (DGifGetRecordType(infile, &record_type) == GIF_ERROR) 
+         {
+-            PrintGifError();
++            printf("%s\n", GifErrorString(GIF_ERROR));
+             return(0);
+         }
+ 
+@@ -63,7 +63,7 @@
+         case IMAGE_DESC_RECORD_TYPE:
+             if (DGifGetImageDesc(infile) == GIF_ERROR)
+             {
+-                PrintGifError();
++                printf("%s\n", GifErrorString(GIF_ERROR));
+                 return(0);
+             }
+ 
+@@ -107,14 +107,14 @@
+             GifByteType *ext;
+             if (DGifGetExtension(infile, &ext_code, &ext) == GIF_ERROR) 
+             {
+-                PrintGifError();
++                printf("%s\n", GifErrorString(GIF_ERROR));
+                 return(0);
+             }
+             while (ext != NULL) 
+             {
+                 if (DGifGetExtensionNext(infile, &ext) == GIF_ERROR) 
+                 {
+-                    PrintGifError();
++                    printf("%s\n", GifErrorString(GIF_ERROR));
+                     return(0);
+                 }
+             }
+@@ -154,7 +154,7 @@
+     
+     free(buffer);
+ 
+-    DGifCloseFile(infile);
++    DGifCloseFile(infile, NULL);
+     return(1);
+ }
+ 
+@@ -178,7 +178,7 @@
+         return(0);
+     }
+ 
+-    colormap = MakeMapObject(colormap_size, NULL);
++    colormap = GifMakeMapObject(colormap_size, NULL);
+ 
+     for (i = 0; i < width * height; i++)
+     {
+@@ -187,10 +187,10 @@
+         blue[i]  = (GifByteType) rgb[3*i+2];
+     }
+   
+-    if (QuantizeBuffer(width, height, &colormap_size, red, green, blue,   
++    if (GifQuantizeBuffer(width, height, &colormap_size, red, green, blue,   
+                        buffer, colormap->Colors) == GIF_ERROR)
+     {
+-        PrintGifError();
++        printf("%s\n", GifErrorString(GIF_ERROR));
+         return(0);
+     }
+ 
+@@ -198,24 +198,24 @@
+     free(green);
+     free(blue);
+ 
+-    outfile = EGifOpenFileName((char *) filename, FALSE);
++    outfile = EGifOpenFileName((char *) filename, FALSE, NULL);
+     if (outfile == NULL)
+     {
+-        PrintGifError();
++        printf("%s\n", GifErrorString(GIF_ERROR));
+         return(0);
+     }
+ 
+     if (EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap)
+         == GIF_ERROR)
+     {
+-        PrintGifError();
++        printf("%s\n", GifErrorString(GIF_ERROR));
+         return(0);
+     }
+ 
+     if (EGifPutImageDesc(outfile, 0, 0, width, height, FALSE, NULL)
+         == GIF_ERROR)
+     {
+-        PrintGifError();
++        printf("%s\n", GifErrorString(GIF_ERROR));
+         return(0);
+     }
+ 
+@@ -224,7 +224,7 @@
+     {
+         if (EGifPutLine(outfile, ptr, width) == GIF_ERROR)
+         {
+-            PrintGifError();
++            printf("%s\n", GifErrorString(GIF_ERROR));
+             return(0);
+         }
+         ptr += width;
+@@ -232,8 +232,8 @@
+ 
+     EGifSpew(outfile);
+ 
+-    if (EGifCloseFile(outfile) == GIF_ERROR) 
+-        PrintGifError();
++    if (EGifCloseFile(outfile, NULL) == GIF_ERROR) 
++        printf("%s\n", GifErrorString(GIF_ERROR));
+ 
+     free(buffer);
+ 
diff --git a/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix b/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix
new file mode 100644
index 000000000000..dbcfead6b1ea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/EZminc/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, libminc, bicpl, itk, fftwFloat, gsl }:
+
+stdenv.mkDerivation rec { pname = "EZminc";
+  name  = "${pname}-2017-08-29";
+
+  src = fetchFromGitHub {
+    owner  = "BIC-MNI";
+    repo   = pname;
+    rev    = "4e017236cb6e7f6e07507446b18b759c584b6fc3";
+    sha256 = "1pg06x42pgsg7zy7dz9wf6ajakkm2n8by64lg9z64qi8qqy82b8v";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ itk libminc bicpl fftwFloat gsl ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/"
+                 "-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/nixpkgs/pkgs/applications/science/biology/N3/default.nix b/nixpkgs/pkgs/applications/science/biology/N3/default.nix
new file mode 100644
index 000000000000..3502ac3e51b7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/N3/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper,
+  perl, MNI-Perllib, GetoptTabular,
+  libminc, EBTKS }:
+
+stdenv.mkDerivation rec {
+  pname = "N3";
+  name  = "${pname}-2017-09-18";
+
+  src = fetchFromGitHub {
+    owner  = "BIC-MNI";
+    repo   = pname;
+    rev    = "2fdd939f0f2b24a4039bc6a8ade4a190a1d8e75d";
+    sha256 = "13z21c4r09hna3q1csvcn4i7ws5ixbdaja6ch421xv6nydjh2w5g";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ libminc EBTKS ];
+  propagatedBuildInputs = [ perl MNI-Perllib GetoptTabular ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" "-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 = "MRI non-uniformity correction for MINC files";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.unix;
+    license   = licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/ants/default.nix b/nixpkgs/pkgs/applications/science/biology/ants/default.nix
new file mode 100644
index 000000000000..f54bd9af0288
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/ants/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, itk, vtk }:
+
+stdenv.mkDerivation rec {
+  _name    = "ANTs";
+  _version = "2.2.0";
+  name  = "${_name}-${_version}";
+
+  src = fetchFromGitHub {
+    owner  = "ANTsX";
+    repo   = "ANTs";
+    rev    = "37ad4e20be3a5ecd26c2e4e41b49e778a0246c3d";
+    sha256 = "1hrdwv3m9xh3yf7l0rm2ggxc2xzckfb8srs88g485ibfszx7i03q";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ itk vtk ];
+
+  cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE"
+                 # as cmake otherwise tries to download test data:
+                 "-DBUILD_TESTING=FALSE" ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    for file in $out/bin/*; do
+      wrapProgram $file --set ANTSPATH "$out/bin"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/ANTxS/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/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix b/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
new file mode 100644
index 000000000000..539d7c224463
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bcftools/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, htslib, zlib, bzip2, lzma, curl, perl, python, bash }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "bcftools";
+  version = "1.9";
+
+  src = fetchurl {
+    url = "https://github.com/samtools/bcftools/releases/download/${version}/${name}.tar.bz2";
+    sha256 = "1j3h638i8kgihzyrlnpj82xg1b23sijibys9hvwari3fy7kd0dkg";
+  };
+
+  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.mimadrid ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix b/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix
new file mode 100644
index 000000000000..406f42e9ad7b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bedtools/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchFromGitHub, zlib, python}:
+
+stdenv.mkDerivation rec {
+  name = "bedtools-${version}";
+  version = "2.27.1";
+
+  src = fetchFromGitHub {
+    owner = "arq5x";
+    repo = "bedtools2";
+    rev = "v${version}";
+    sha256 = "1pk68y052rm2m24yfmy82ms8p6kd6xcqxxgi7n0a1sbh89wllm6s";
+  };
+
+  buildInputs = [ zlib python ];
+  cc = if stdenv.cc.isClang then "clang++" else "g++";
+  buildPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cc} -j $NIX_BUILD_CORES";
+  installPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${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/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix b/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix
new file mode 100644
index 000000000000..e97b5d1a3f4f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bowtie2/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, zlib, tbb, python, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "bowtie2";
+  version = "2.3.4.3";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "BenLangmead";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zl3cf327y2p7p03cavymbh7b00djc7lncfaqih33n96iy9q8ibp";
+  };
+
+  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/nixpkgs/pkgs/applications/science/biology/bwa/default.nix b/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
new file mode 100644
index 000000000000..d1dbacf053fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  name    = "bwa-${version}";
+  version = "0.7.17";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/bio-bwa/${name}.tar.bz2";
+    sha256 = "1zfhv2zg9v1icdlq4p9ssc8k01mca5d1bd87w71py2swfi74s6yy";
+  };
+
+  buildInputs = [ zlib ];
+
+  installPhase = ''
+    install -vD bwa $out/bin/bwa
+  '';
+
+  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 = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix b/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix
new file mode 100644
index 000000000000..c04bc84c156d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, cmake, coreutils, perl, bicpl, libminc, zlib, minc_tools,
+  makeWrapper, GetoptTabular, MNI-Perllib }:
+
+stdenv.mkDerivation rec {
+  pname = "conglomerate";
+  name  = "${pname}-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 perl GetoptTabular MNI-Perllib ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" "-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/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix b/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
new file mode 100644
index 000000000000..781ceb3df59e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, libyamlcpp
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.0.20170130";
+  name = "dcm2niix-${version}";
+
+  src = fetchFromGitHub {
+    owner = "rordenlab";
+    repo = "dcm2niix";
+    rev = "v${version}";
+    sha256 = "1f2nzd8flp1rfn725bi64z7aw3ccxyyygzarxijw6pvgl476i532";
+  };
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libyamlcpp ];
+
+  meta = with stdenv.lib; {
+    description = "dcm2niix 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/nixpkgs/pkgs/applications/science/biology/diamond/default.nix b/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
new file mode 100644
index 000000000000..854e91b2fcbb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/science/biology/diamond/diamond-0.8.36-no-warning.patch b/nixpkgs/pkgs/applications/science/biology/diamond/diamond-0.8.36-no-warning.patch
new file mode 100644
index 000000000000..a16d475c5564
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix b/nixpkgs/pkgs/applications/science/biology/ecopcr/default.nix
new file mode 100644
index 000000000000..9e1b16ff9449
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/emboss/default.nix b/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
new file mode 100644
index 000000000000..2110a9bcfaba
--- /dev/null
+++ b/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     = "GPL2";
+    homepage    = http://emboss.sourceforge.net/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix b/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix
new file mode 100644
index 000000000000..1a15dcf6197d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/freebayes/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, zlib, bzip2, lzma }:
+
+stdenv.mkDerivation rec {
+  name    = "freebayes-${version}";
+  version = "2017-08-23";
+
+  src = fetchFromGitHub {
+    name = "freebayes-${version}-src";
+    owner  = "ekg";
+    repo   = "freebayes";
+    rev    = "8d2b3a060da473e1f4f89be04edfce5cba63f1d3";
+    sha256 = "0yyrgk2639lz1yvg4jf0ccahnkic31dy77q05pb3i28rjf37v45z";
+    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/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix b/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix
new file mode 100644
index 000000000000..9ccf54a81133
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix
@@ -0,0 +1,49 @@
+{stdenv, fetchurl, unzip, which, python}:
+
+stdenv.mkDerivation rec {
+  name = "hisat2-${version}";
+  version = "2.1.0";
+
+  src = fetchurl {
+    url = "ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-${version}-source.zip";
+    sha256 = "10g73sdf6vqqfhhd92hliw7bbpkb8v4pp5012r5l21zws7p7d8l9";
+  };
+
+  buildInputs = [ unzip  which python ];
+
+  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 \
+       hisatgenotype_build_genome.py \
+       hisatgenotype_extract_reads.py \
+       hisatgenotype_extract_vars.py \
+       hisatgenotype_hla_cyp.py \
+       hisatgenotype_locus.py \
+       hisatgenotype.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/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix b/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
new file mode 100644
index 000000000000..e43d48db55f3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "3.2.1";
+  name = "hmmer-${version}";
+
+  src = fetchurl {
+    url = "http://eddylab.org/software/hmmer/${name}.tar.gz";
+    sha256 = "171bivy6xhgjsz5nv53n81pc3frnwz29ylblawk2bv46szwjjqd5";
+  };
+
+  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 = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/igv/default.nix b/nixpkgs/pkgs/applications/science/biology/igv/default.nix
new file mode 100644
index 000000000000..1804f854c48c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/igv/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, unzip, jre }:
+
+stdenv.mkDerivation rec {
+  name = "igv-${version}";
+  version = "2.4.16";
+
+  src = fetchurl {
+    url = "https://data.broadinstitute.org/igv/projects/downloads/2.4/IGV_${version}.zip";
+    sha256 = "0bsl20zw7sgw16xadh1hmlg6d6ijyb1dhpnyvf4kxk3nk0abrmn1";
+  };
+
+  buildInputs = [ unzip jre ];
+
+  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#${jre}/bin/java#g' $out/share/igv.sh
+
+    ln -s $out/share/igv.sh $out/bin/igv
+
+    chmod +x $out/bin/igv
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.broadinstitute.org/igv/;
+    description = "A visualization tool for interactive exploration of genomic datasets";
+    license = licenses.lgpl21;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.mimadrid ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix b/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix
new file mode 100644
index 000000000000..7ba054a592ea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/inormalize/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper,
+  perl, GetoptTabular, MNI-Perllib,
+  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 = [ perl GetoptTabular MNI-Perllib ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" "-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/nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch b/nixpkgs/pkgs/applications/science/biology/inormalize/lgmask-interp.patch
new file mode 100644
index 000000000000..953bce9a1848
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch b/nixpkgs/pkgs/applications/science/biology/inormalize/nu_correct_norm-interp.patch
new file mode 100644
index 000000000000..75dc46a799ce
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/iv/default.nix b/nixpkgs/pkgs/applications/science/biology/iv/default.nix
new file mode 100644
index 000000000000..f204d9bbca96
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/iv/default.nix
@@ -0,0 +1,31 @@
+{ 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
+      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/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix b/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
new file mode 100644
index 000000000000..d80ffea9a780
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cmake, hdf5, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "kallisto-${version}";
+  version = "0.43.1";
+
+  src = fetchFromGitHub {
+    repo = "kallisto";
+    owner = "pachterlab";
+    rev = "v${version}";
+    sha256 = "04697pf7jvy7vw126s1rn09q4iab9223jvb1nb0jn7ilwkq7pgwz";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  
+  buildInputs = [ hdf5 zlib ];
+
+  meta = with stdenv.lib; {
+    description = "kallisto is a program for quantifying abundances of transcripts from RNA-Seq data";
+    homepage = https://pachterlab.github.io/kallisto;
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.arcadio ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix b/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix
new file mode 100644
index 000000000000..c680eda95d2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, flex, bison, perl, TextFormat, libminc, libjpeg, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "minc-tools";
+  name  = "${pname}-2017-09-11";
+
+  src = fetchFromGitHub {
+    owner  = "BIC-MNI";
+    repo   = pname;
+    rev    = "5b7c40425cd4f67a018055cb85c0157ee50a3056";
+    sha256 = "0zkcs05svp1gj5h0cdgc0k20c7lrk8m7wg3ks3xc5mkaiannj8g7";
+  };
+
+  nativeBuildInputs = [ cmake flex bison makeWrapper ];
+  buildInputs = [ libminc libjpeg zlib ];
+  propagatedBuildInputs = [ perl TextFormat ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" ];
+
+  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/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix b/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix
new file mode 100644
index 000000000000..9084dfb2e1c3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/minc-widgets/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper,
+  perl, GetoptTabular, MNI-Perllib,
+  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 = [ 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/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix b/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix
new file mode 100644
index 000000000000..ae278f76792b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "minimap2";
+  version = "2.10";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "lh3";
+    rev = "v${version}";
+    sha256 = "0b35w14j9h2q9qbh3sxc518mcx0ifsvwqr1nv70rv6mgy1cqqkw0";
+  };
+
+  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/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix b/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix
new file mode 100644
index 000000000000..076ecd03a1b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/mni_autoreg/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, perl, GetoptTabular, MNI-Perllib, libminc }:
+
+stdenv.mkDerivation rec {
+  pname = "mni_autoreg";
+  name  = "${pname}-2017-09-22";
+
+  src = fetchFromGitHub {
+    owner = "BIC-MNI";
+    repo = pname;
+    rev = "ab99e29987dc029737785baebf24896ec37a2d76";
+    sha256 = "0axl069nv57vmb2wvqq7s9v3bfxwspzmk37bxm4973ai1irgppjq";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ libminc ];
+  propagatedBuildInputs = [ perl GetoptTabular MNI-Perllib ];
+
+  cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/" "-DBUILD_TESTING=FALSE" ];
+  # 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/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix b/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix
new file mode 100644
index 000000000000..3cd83a5cdd27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix
@@ -0,0 +1,45 @@
+{stdenv, fetchFromGitHub, nim, htslib, pcre}:
+
+let
+  hts-nim = fetchFromGitHub {
+    owner = "brentp";
+    repo = "hts-nim";
+    rev = "v0.2.5";
+    sha256 = "1fma99rjqxgg9dihkd10hm1jjp5amsk5wsxnvq1lk4mcsjix5xqb";
+  };
+
+  docopt = fetchFromGitHub {
+    owner = "docopt";
+    repo = "docopt.nim";
+    rev = "v0.6.5";
+    sha256 = "0yx79m4jkdcazwlky55nwf39zj5kdhymrrdrjq29mahiwx83x5zr";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "mosdepth-${version}";
+  version = "0.2.3";
+
+  src = fetchFromGitHub {
+    owner = "brentp";
+    repo = "mosdepth";
+    rev = "v${version}";
+    sha256 = "1b9frrwhcvay3alhn0d02jccc2qlbij1732hzq9nhwnr4kvsvxx7";
+  };
+
+  buildInputs = [ nim ];
+
+  buildPhase = ''
+    HOME=$TMPDIR
+    nim -p:${hts-nim}/src -p:${docopt}/src c --nilseqs:on -d:release mosdepth.nim
+  '';
+  installPhase = "install -Dt $out/bin mosdepth";
+  fixupPhase = "patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc htslib pcre ]} $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/nixpkgs/pkgs/applications/science/biology/mrbayes/builder.sh b/nixpkgs/pkgs/applications/science/biology/mrbayes/builder.sh
new file mode 100644
index 000000000000..5b3a54946fc9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix b/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
new file mode 100644
index 000000000000..1dd92af58eb1
--- /dev/null
+++ b/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 = {
+    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     = "GPL2";
+    homepage    = http://mrbayes.csit.fsu.edu/;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/muscle/default.nix b/nixpkgs/pkgs/applications/science/biology/muscle/default.nix
new file mode 100644
index 000000000000..9cbabc7ab37e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/muscle/muscle-3.8.31-no-static.patch b/nixpkgs/pkgs/applications/science/biology/muscle/muscle-3.8.31-no-static.patch
new file mode 100644
index 000000000000..7f4b2129518d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/ncbi-tools/default.nix b/nixpkgs/pkgs/applications/science/biology/ncbi-tools/default.nix
new file mode 100644
index 000000000000..1c24ef092542
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/neuron/default.nix b/nixpkgs/pkgs/applications/science/biology/neuron/default.nix
new file mode 100644
index 000000000000..35710fd1fe1f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/neuron/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, fetchurl
+, pkgconfig
+, automake
+, autoconf
+, libtool
+, ncurses
+, readline
+, which
+, python ? null
+, mpi ? null
+, iv
+}:
+
+stdenv.mkDerivation rec {
+  name = "neuron-${version}";
+  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);' ""
+  '';
+
+  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 ];
+    platforms   = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch b/nixpkgs/pkgs/applications/science/biology/neuron/neuron-carbon-disable.patch
new file mode 100644
index 000000000000..923bffb1c338
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix b/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix
new file mode 100644
index 000000000000..9f24046b3bf6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/niftyreg/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchurl, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+  pname   = "niftyreg";
+  version = "1.3.9";
+  name    = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/nifty_reg-${version}/nifty_reg-${version}.tar.gz";
+    sha256 = "07v9v9s41lvw72wpb1jgh2nzanyc994779bd35p76vg8mzifmprl";
+  };
+
+  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/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix b/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix
new file mode 100644
index 000000000000..671ee4b95c65
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/niftyseg/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchurl, cmake, eigen, zlib }:
+
+stdenv.mkDerivation rec {
+  pname   = "niftyseg";
+  version = "1.0";
+  name = "${pname}-${version}";
+  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.linux;
+    license   = licenses.bsd3;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/paml/default.nix b/nixpkgs/pkgs/applications/science/biology/paml/default.nix
new file mode 100644
index 000000000000..fe25a04c420a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/paml/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  version = "4.9h";
+  name = "paml-${version}";
+  src = fetchurl {
+    url = "http://abacus.gene.ucl.ac.uk/software/paml${version}.tgz";
+    sha256 = "1czdfb3naadq0d3y42isrbyja33c3p28k8dv9mxlx2h19b7zcfv2";
+  };
+
+  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/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix b/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
new file mode 100644
index 000000000000..ad37a3a7dabf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, jre, makeWrapper}:
+
+stdenv.mkDerivation rec {
+  name = "picard-tools-${version}";
+  version = "2.18.20";
+
+  src = fetchurl {
+    url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
+    sha256 = "0dx6fxn6d7mawkah242fdi9wm8pdzmm4m004fb9ak2fsvrs2m5pk";
+  };
+
+  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/nixpkgs/pkgs/applications/science/biology/platypus/default.nix b/nixpkgs/pkgs/applications/science/biology/platypus/default.nix
new file mode 100644
index 000000000000..323ca90f0a2a
--- /dev/null
+++ b/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 rec {
+  name = "platypus-unstable-${version}";
+  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/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix b/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix
new file mode 100644
index 000000000000..2efb59f536f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, zlib, openblas, darwin}:
+
+stdenv.mkDerivation rec {
+  name = "plink-ng-${version}";
+  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 [ openblas ]) ;
+
+  buildPhase = ''
+    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 ""}
+    make ZLIB=-lz ${if stdenv.isDarwin then "" else "BLASFLAGS=-lopenblas"} -f 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/nixpkgs/pkgs/applications/science/biology/plink/default.nix b/nixpkgs/pkgs/applications/science/biology/plink/default.nix
new file mode 100644
index 000000000000..cc48a0cb13a9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/plink/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, zlib, unzip }:
+
+stdenv.mkDerivation {
+  name = "plink-1.07";
+
+  src = fetchurl {
+    url = "http://pngu.mgh.harvard.edu/~purcell/plink/dist/plink-1.07-src.zip";
+    sha256 = "4af56348443d0c6a1db64950a071b1fcb49cc74154875a7b43cccb4b6a7f482b";
+  };
+
+  buildInputs = [ zlib unzip ] ;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp plink $out/bin
+  '';
+  
+  meta = {
+    description = "Whole genome association toolkit";
+    homepage = http://pngu.mgh.harvard.edu/~purcell/plink/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.all;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/poretools/default.nix b/nixpkgs/pkgs/applications/science/biology/poretools/default.nix
new file mode 100755
index 000000000000..3bb9ea06fd46
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/poretools/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, pythonPackages, fetchFromGitHub }:
+
+pythonPackages.buildPythonPackage rec {
+  pname = "poretools";
+  version = "unstable-2016-07-10";
+  name = "${pname}-${version}";
+
+  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 = http://poretools.readthedocs.io/en/latest/;
+    maintainers = [stdenv.lib.maintainers.rybern];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/raxml/default.nix b/nixpkgs/pkgs/applications/science/biology/raxml/default.nix
new file mode 100644
index 000000000000..140f70323194
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/raxml/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromGitHub
+, pkgs
+, mpi ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "RAxML";
+  version = "8.2.12";
+  name = "${pname}-${version}";
+
+  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/nixpkgs/pkgs/applications/science/biology/samtools/default.nix b/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
new file mode 100644
index 000000000000..c4b4bb522c40
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/samtools/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, zlib, htslib, perl, ncurses ? null }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "samtools";
+  version = "1.9";
+
+  src = fetchurl {
+    url = "https://github.com/samtools/samtools/releases/download/${version}/${name}.tar.bz2";
+    sha256 = "10ilqbmm7ri8z431sn90lvbjwizd0hhkf9rcqw8j823hf26nhgq8";
+  };
+
+  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 = [ maintainers.mimadrid ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch b/nixpkgs/pkgs/applications/science/biology/samtools/samtools-0.1.19-no-curses.patch
new file mode 100644
index 000000000000..a7782a1a0264
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix b/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix
new file mode 100644
index 000000000000..a811bc4412f2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "samtools";
+  version = "0.1.19";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/samtools/${name}.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/nixpkgs/pkgs/applications/science/biology/seaview/default.nix b/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
new file mode 100644
index 000000000000..17cf903ae49c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, coreutils, fltk, libjpeg }:
+
+stdenv.mkDerivation rec {
+  version = "4.7";
+  name = "seaview-${version}";
+
+  src = fetchurl {
+    url = "ftp://pbil.univ-lyon1.fr/pub/mol_phylogeny/seaview/archive/seaview_${version}.tar.gz";
+    sha256 = "0fhyq7dcn0izhwcfin9ajsr7kmmsqm9f1np1rmhzg4digfwqb29n";
+  };
+
+  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/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix b/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix
new file mode 100644
index 000000000000..9c2d273b0881
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/snpeff/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, jre, unzip, makeWrapper}:
+
+stdenv.mkDerivation rec {
+  name = "snpeff-${version}";
+  version = "4.3q";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/snpeff/snpEff_v4_3q_core.zip";
+    sha256 = "0sxz8zy8wrzcy01hyb1cirwbxqyjw30a2x3q6p4l7zmw2szi7mn1";
+  };
+
+  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/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix b/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix
new file mode 100644
index 000000000000..4bbd6a320035
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchFromGitHub, cmake, zlib, ncurses}:
+
+stdenv.mkDerivation rec {
+  name = "somatic-sniper-${version}";
+  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/nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch b/nixpkgs/pkgs/applications/science/biology/somatic-sniper/somatic-sniper.patch
new file mode 100644
index 000000000000..9af04c0a0696
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/biology/star/default.nix b/nixpkgs/pkgs/applications/science/biology/star/default.nix
new file mode 100644
index 000000000000..cbe38649503b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/star/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "star-${version}";
+  version = "2.6.1d";
+
+  src = fetchFromGitHub {
+    repo = "STAR";
+    owner = "alexdobin";
+    rev = version;
+    sha256 = "1h0j8qj95a0brv7p3gxmg3z7z6f4670jzjg56kzyc33k8dmzxvli";
+  };
+
+  sourceRoot = "source/source";
+  
+  postPatch = "sed 's:/bin/rm:rm:g' -i Makefile";
+  
+  buildInputs = [ zlib ];
+  
+  buildPhase = "make STAR STARlong";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp STAR STARlong $out/bin
+  '';
+  
+  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/nixpkgs/pkgs/applications/science/biology/strelka/default.nix b/nixpkgs/pkgs/applications/science/biology/strelka/default.nix
new file mode 100644
index 000000000000..1527f5d3ddad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/strelka/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchFromGitHub, cmake, zlib, python2}:
+
+stdenv.mkDerivation rec {
+  name = "strelka-${version}";
+  version = "2.9.5";
+
+  src = fetchFromGitHub {
+    owner = "Illumina";
+    repo = "strelka";
+    rev = "v${version}";
+    sha256 = "0x4a6nkx1jnyag9svghsdjz1fz6q7qx5pn77wphdfnk81f9yspf8";
+  };
+
+  buildInputs = [ cmake zlib python2 ];
+
+  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/nixpkgs/pkgs/applications/science/biology/varscan/default.nix b/nixpkgs/pkgs/applications/science/biology/varscan/default.nix
new file mode 100644
index 000000000000..f685031e87e4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/varscan/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, jre, makeWrapper}:
+
+stdenv.mkDerivation rec {
+  name = "varscan-${version}";
+  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/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix b/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix
new file mode 100755
index 000000000000..a6f52ae97b59
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/vcftools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, zlib, autoreconfHook, pkgconfig, perl }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  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/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix b/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix
new file mode 100644
index 000000000000..78cda9d115ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/avogadro/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, cmake, qt4, zlib, eigen, openbabel, pkgconfig, libGLU_combined, 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 libGLU_combined libX11 ];
+
+  nativeBuildInputs = [ cmake pkgconfig doxygen ];
+
+  NIX_CFLAGS_COMPILE = "-include ${libGLU_combined}/include/GL/glu.h";
+
+  meta = {
+    description = "Molecule editor and visualizer";
+    maintainers = [ ];
+    platforms = stdenv.lib.platforms.mesaPlatforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
new file mode 100644
index 000000000000..92f997900d53
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, gtk2, pkgconfig }:
+
+with stdenv.lib;
+
+let version = "2.48"; in
+stdenv.mkDerivation {
+  name = "gwyddion-${version}";
+  src = fetchurl {
+    url = "mirror://sourceforge/gwyddion/files/gwyddion/${version}/gwyddion-${version}.tar.xz";
+    sha256 = "119iw58ac2wn4cas6js8m7r1n4gmmkga6b1y711xzcyjp9hshgwx";
+  };
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 ];
+  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 = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
new file mode 100644
index 000000000000..b748d26bb2a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
@@ -0,0 +1,54 @@
+{ 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.29.29";
+  pname = "jmol";
+  name = "${pname}-${version}";
+
+  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 = "0j3075lwagfvwzyh0mas9pj2fm8zdqn5ak0w0byz8s57azsrc3w4";
+  };
+
+  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; [ timokau mounium ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix b/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix
new file mode 100644
index 000000000000..76a19d410ef8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, which, gfortran, libGLU, xorg } :
+
+stdenv.mkDerivation rec {
+  version = "5.8.2";
+  name = "molden-${version}";
+
+  src = fetchurl {
+    url = "ftp://ftp.cmbi.ru.nl/pub/molgraph/molden/molden${version}.tar.gz";
+    sha256 = "1lhjx8fa8xynnlk5g6ipvchhfnz6j5lgqxlsifx82pbbnbm6mps4";
+  };
+
+  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/nixpkgs/pkgs/applications/science/chemistry/molden/dont_register_file_types.patch b/nixpkgs/pkgs/applications/science/chemistry/molden/dont_register_file_types.patch
new file mode 100644
index 000000000000..75ce593ed29a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix b/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
new file mode 100644
index 000000000000..2dd3c9b64c43
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, symlinkJoin, gfortran, perl, procps
+, libyaml, libxc, fftw, openblas, gsl, netcdf, arpack
+}:
+
+let
+  version = "8.3";
+  fftwAll = symlinkJoin { name ="ftw-dev-out"; paths = [ fftw.dev fftw.out ]; };
+
+in stdenv.mkDerivation {
+  name = "octopus-${version}";
+
+  src = fetchurl {
+    url = "http://www.tddft.org/programs/octopus/down.php?file=${version}/octopus-${version}.tar.gz";
+    sha256 = "0nr3qmyfhp6fy8qrp4p43pl5xxfqgqg5g1c2775hxhpsi29xr7zf";
+  };
+
+  nativeBuildInputs = [ perl procps fftw.dev ];
+  buildInputs = [ libyaml gfortran libxc openblas gsl fftw.out netcdf arpack ];
+
+  configureFlags = [
+    "--with-yaml-prefix=${libyaml}"
+    "--with-blas=-lopenblas"
+    "--with-lapack=-lopenblas"
+    "--with-fftw-prefix=${fftwAll}"
+    "--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 = http://octopus-code.org;
+    maintainers = with maintainers; [ markuskowa ];
+    license = licenses.gpl2;
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix b/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
new file mode 100644
index 000000000000..70e79023c0ff
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, pkgs, fetchFromGitLab, cmake, gfortran, perl
+, openblas, hdf5-cpp, python3, texlive
+, armadillo, openmpi, globalarrays, openssh
+, makeWrapper
+} :
+
+let
+  version = "18.09";
+  gitLabRev = "v${version}";
+
+  python = python3.withPackages (ps : with ps; [ six pyparsing ]);
+
+in stdenv.mkDerivation {
+  name = "openmolcas-${version}";
+
+  src = fetchFromGitLab {
+    owner = "Molcas";
+    repo = "OpenMolcas";
+    rev = gitLabRev;
+    sha256 = "1di1ygifx7ycfpwh25mv76xlv15wqfdmqzjsg5nani2d5z0arri2";
+  };
+
+  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}"
+  ];
+
+  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/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix b/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix
new file mode 100644
index 000000000000..7b482d82e2fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, makeDesktopItem
+, python3, python3Packages
+, glew, freeglut, libpng, libxml2, tk, freetype, msgpack }:
+
+
+with stdenv.lib;
+
+let
+  pname = "pymol";
+  ver_maj = "2";
+  ver_min = "1";
+  version = "${ver_maj}.${ver_min}.0";
+  description = "A Python-enhanced molecular graphics tool";
+
+  desktopItem = makeDesktopItem {
+    name = "${pname}";
+    exec = "${pname}";
+    desktopName = "PyMol Molecular Graphics System";
+    genericName = "Molecular Modeler";
+    comment = description;
+    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 {
+  name = "pymol-${version}";
+  src = fetchurl {
+    url = "mirror://sourceforge/project/pymol/pymol/${ver_maj}/pymol-v${version}.tar.bz2";
+    sha256 = "1qpacd5w4r9a0nm5iqmkd92ym3ai00dp7v61cwd6jgakk6wfps3s";
+  };
+
+  buildInputs = [ python3Packages.numpy glew freeglut libpng libxml2 tk freetype msgpack ];
+  NIX_CFLAGS_COMPILE = "-I ${libxml2.dev}/include/libxml2";
+
+  installPhase = ''
+    python setup.py install --home=$out
+    cp -r ${desktopItem}/share/ $out/
+    runHook postInstall
+  '';
+
+  postInstall = with python3Packages; ''
+    wrapProgram $out/bin/pymol \
+      --prefix PYTHONPATH : ${makeSearchPathOutput "lib" python3.sitePackages [ Pmw tkinter ]}
+  '';
+
+  meta = {
+    description = description;
+    homepage = https://www.pymol.org/;
+    license = licenses.psfl;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix b/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
new file mode 100644
index 000000000000..7a7f1b3596d3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/quantum-espresso/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl
+, gfortran, fftw, openblas
+, mpi ? null
+}:
+
+stdenv.mkDerivation rec {
+  version = "6.3";
+  name = "quantum-espresso-${version}";
+
+  src = fetchurl {
+    url = "https://gitlab.com/QEF/q-e/-/archive/qe-${version}/q-e-qe-${version}.tar.gz";
+    sha256 = "1738z3nhkzcrgnhnfg1r4lipbwvcrcprwhzjbjysnylmzbzwhrs0";
+  };
+
+  passthru = {
+    inherit mpi;
+  };
+
+  preConfigure = ''
+    patchShebangs configure
+  '';
+
+  # remove after 6.3 version:
+  # makefile needs to ignore install directory easier than applying patch
+  preInstall = ''
+    printf "\n.PHONY: install\n" >> Makefile
+  '';
+
+  buildInputs = [ fftw openblas 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/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix b/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix
new file mode 100644
index 000000000000..eb17a68b8aae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl
+, gfortran, openblas
+, mpi ? null, scalapack
+}:
+
+stdenv.mkDerivation rec {
+  version = "4.1-b3";
+  name = "siesta-${version}";
+
+  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 = [ openblas 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="-lopenblas -lscalapack"
+    );
+  '' else ''
+    makeFlagsArray=(
+      COMP_LIBS="" LIBS="-lopenblas"
+    );
+  '';
+
+  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/nixpkgs/pkgs/applications/science/electronics/adms/default.nix b/nixpkgs/pkgs/applications/science/electronics/adms/default.nix
new file mode 100644
index 000000000000..236225959f7a
--- /dev/null
+++ b/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.6";
+  name = "adms-${version}";
+
+  src = fetchFromGitHub {
+    owner = "Qucs";
+    repo = "adms";
+    rev = "release-${version}";
+    sha256 = "1pcwq5khzdq4x33lid9hq967gv78dr5i4f2sk8m8rwkfqb9vdzrg";
+  };
+
+  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/nixpkgs/pkgs/applications/science/electronics/alliance/default.nix b/nixpkgs/pkgs/applications/science/electronics/alliance/default.nix
new file mode 100644
index 000000000000..97d1db83a162
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/alliance/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchurl
+, xproto, motif, libX11, libXt, libXpm, bison
+, flex, automake, autoconf, libtool
+}:
+
+stdenv.mkDerivation rec {
+  name = "alliance-${version}";
+  version = "5.1.1";
+
+  src = fetchurl {
+    url = "http://www-asim.lip6.fr/pub/alliance/distribution/5.0/${name}.tar.bz2";
+    sha256 = "046c9qwl1vbww0ljm4xyxf5jpz9nq62b2q0wdz9xjimgh4c207w1";
+  };
+
+
+  nativeBuildInputs = [ libtool automake autoconf flex ];
+  buildInputs = [ xproto motif xproto libX11 libXt libXpm bison ];
+
+  sourceRoot = "alliance/src/";
+
+  configureFlags = [
+    "--prefix=$(out)"
+    "--disable-static"
+  ];
+
+  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 = ''
+    #!${stdenv.shell}
+    cp -v -r -n --no-preserve=mode  $out/etc/* /etc/ > /etc/alliance-install.log
+  '';
+
+  allianceUnInstaller = ''
+    #!${stdenv.shell}
+    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/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix b/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix
new file mode 100644
index 000000000000..016760bde020
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix b/nixpkgs/pkgs/applications/science/electronics/bitscope/common.nix
new file mode 100644
index 000000000000..64777b5a0ac8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/electronics/bitscope/packages.nix b/nixpkgs/pkgs/applications/science/electronics/bitscope/packages.nix
new file mode 100644
index 000000000000..58e01f4f9f49
--- /dev/null
+++ b/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 rec {
+    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/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix b/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix
new file mode 100644
index 000000000000..8f81a03044be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchFromGitHub, cmake, qtbase, qttools, qtsvg, qwt }:
+
+stdenv.mkDerivation rec {
+  name = "caneda-${version}";
+  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/nixpkgs/pkgs/applications/science/electronics/caneda/gcc6.patch b/nixpkgs/pkgs/applications/science/electronics/caneda/gcc6.patch
new file mode 100644
index 000000000000..04c8f4502b2d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix b/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
new file mode 100644
index 000000000000..af3844f47312
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, autoreconfHook,
+glib, libzip, boost, fftw, qtbase,
+libusb, makeWrapper, libsigrok4dsl, libsigrokdecode4dsl
+}:
+
+stdenv.mkDerivation rec {
+  name = "dsview-${version}";
+
+  version = "0.99";
+
+  src = fetchFromGitHub {
+      owner = "DreamSourceLab";
+      repo = "DSView";
+      rev = version;
+      sha256 = "189i3baqgn8k3aypalayss0g489xi0an9hmvyggvxmgg1cvcwka2";
+  };
+
+  postUnpack = ''
+    export sourceRoot=$sourceRoot/DSView
+  '';
+
+  patches = [
+    # Fix absolute install paths
+    ./install.patch
+  ];
+
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+
+  buildInputs = [
+   boost fftw qtbase libusb libzip libsigrokdecode4dsl libsigrok4dsl
+  ];
+
+  enableParallelBuilding = true;
+
+  postFixup = ''
+    wrapProgram $out/bin/DSView --suffix QT_PLUGIN_PATH : \
+      ${qtbase.bin}/${qtbase.qtPluginPrefix}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc";
+    homepage = http://www.dreamsourcelab.com/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bachp ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/dsview/install.patch b/nixpkgs/pkgs/applications/science/electronics/dsview/install.patch
new file mode 100644
index 000000000000..e30a28d80fa3
--- /dev/null
+++ b/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
+@@ -403,8 +403,8 @@ install(DIRECTORY res DESTINATION share/${PROJECT_NAME})
+ install(FILES icons/logo.png DESTINATION share/${PROJECT_NAME} RENAME logo.png)
+ install(FILES ../NEWS DESTINATION share/${PROJECT_NAME} RENAME NEWS)
+ install(FILES ../ug.pdf DESTINATION share/${PROJECT_NAME} RENAME ug.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/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix b/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix
new file mode 100644
index 000000000000..4a681907e192
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrok4dsl.nix
@@ -0,0 +1,28 @@
+{ stdenv, pkgconfig, autoreconfHook,
+glib, libzip, libserialport, check, libusb, libftdi,
+systemd, alsaLib, dsview
+}:
+
+stdenv.mkDerivation rec {
+  inherit (dsview) version src;
+
+  name = "libsigrok4dsl-${version}";
+
+  postUnpack = ''
+    export sourceRoot=$sourceRoot/libsigrok4DSL
+  '';
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+
+  buildInputs = [
+    glib libzip libserialport libusb libftdi systemd check alsaLib
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A fork of the sigrok library for usage with DSView";
+    homepage = http://www.dreamsourcelab.com/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bachp ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrokdecode4dsl.nix b/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrokdecode4dsl.nix
new file mode 100644
index 000000000000..58f32f2ae6cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/dsview/libsigrokdecode4dsl.nix
@@ -0,0 +1,27 @@
+{ stdenv, pkgconfig, autoreconfHook,
+glib, check, python3, dsview
+}:
+
+stdenv.mkDerivation rec {
+  inherit (dsview) version src;
+
+  name = "libsigrokdecode4dsl-${version}";
+
+  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 = http://www.dreamsourcelab.com/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bachp ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
new file mode 100644
index 000000000000..b97ede413963
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -0,0 +1,83 @@
+{ stdenv, fetchurl, makeDesktopItem, patchelf
+, libXrender, libXrandr, libXcursor, libX11, libXext, libXi, libxcb
+, cups , 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
+  stdenv.mkDerivation rec {
+    name = "eagle-${version}";
+    version = "9.1.2";
+
+    src = fetchurl {
+      url = "https://eagle-updates.circuits.io/downloads/${builtins.replaceStrings ["."] ["_"] version}/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
+      sha256 = "0y7ahl9z5a7l9cjk8hzmyv6ga8chlry5rr8v116q5mnsgs4i11an";
+    };
+
+    desktopItem = makeDesktopItem {
+      name = "eagle";
+      exec = "eagle";
+      icon = "eagle";
+      comment = "Schematic capture and PCB layout";
+      desktopName = "Eagle";
+      genericName = "Schematic editor";
+      categories = "Application;Development;";
+    };
+
+    buildInputs =
+      [ libXrender libXrandr libXcursor libX11 libXext libXi libxcb
+        libGL glib nss nspr expat alsaLib
+        qtbase qtdeclarative qtsvg qtlocation qtwebchannel qtwebengine
+      ];
+
+    doConfigure = false;
+    doBuild = false;
+
+    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/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix
new file mode 100644
index 000000000000..d5720440f7cc
--- /dev/null
+++ b/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
+}:
+
+let
+
+  libPath = stdenv.lib.makeLibraryPath
+    [ zlib freetype fontconfig openssl libXrender libXrandr libXcursor libX11
+      libXext libXi libxcb cups
+    ];
+
+in
+
+stdenv.mkDerivation rec {
+  name = "eagle-${version}";
+  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 = "Application;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
+    #!${stdenv.shell}
+    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/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7_fixer.c b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7_fixer.c
new file mode 100644
index 000000000000..da9da4dcbd3a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix b/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
new file mode 100644
index 000000000000..ab5088543102
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchpatch, fetchFromGitHub, qmake, pkgconfig
+, qtbase, qtsvg, qtserialport, boost, libgit2
+}:
+
+stdenv.mkDerivation rec {
+  name = "fritzing-${version}";
+  version = "0.9.3b";
+
+  src = fetchFromGitHub {
+    owner = "fritzing";
+    repo = "fritzing-app";
+    rev = version;
+    sha256 = "0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3";
+  };
+
+  parts = fetchFromGitHub {
+    owner = "fritzing";
+    repo = "fritzing-parts";
+    rev = version;
+    sha256 = "1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1";
+  };
+
+  patches = [(fetchpatch {
+    name = "0001-Squashed-commit-of-the-following.patch";
+    url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-Squashed-commit-of-the-following.patch?h=fritzing";
+    sha256 = "1cv6myidxhy28i8m8v13ghzkvx5978p9dcd8v7885y0l1h3108mf";
+  })];
+
+  buildInputs = [ qtbase qtsvg qtserialport boost libgit2 ];
+
+  nativeBuildInputs = [ qmake pkgconfig ];
+
+  qmakeFlags = [ "phoenix.pro" ];
+
+  preConfigure = ''
+    ln -s "$parts" parts
+  '';
+
+  meta = {
+    description = "An open source prototyping tool for Arduino-based projects";
+    homepage = http://fritzing.org/;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ stdenv.lib.maintainers.robberer ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/geda/default.nix b/nixpkgs/pkgs/applications/science/electronics/geda/default.nix
new file mode 100644
index 000000000000..93fe7b6ba77a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/geda/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, guile, gtk2, flex, gawk, perl }:
+
+stdenv.mkDerivation rec {
+  name = "geda-${version}";
+  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/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix b/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix
new file mode 100644
index 000000000000..c0821c8a9ab9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, pkgconfig, gettext, libtool, automake, autoconf, cairo, gtk2, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "gerbv-${version}";
+  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/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix b/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
new file mode 100644
index 000000000000..214a918fa348
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, gtk2, gperf, pkgconfig, bzip2, tcl, tk, judy, xz}:
+
+stdenv.mkDerivation rec {
+  name = "gtkwave-${version}";
+  version = "3.3.97";
+
+  src = fetchurl {
+    url    = "mirror://sourceforge/gtkwave/${name}.tar.gz";
+    sha256 = "0jy5qk0b0np9xsxgnvv8jjgyw81l170wrm5q04qs48wpw7d0rm3v";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ gtk2 gperf bzip2 tcl tk judy xz ];
+
+  configureFlags = [ "--with-tcl=${tcl}/lib" "--with-tk=${tk}/lib" "--enable-judy" ];
+
+  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/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
new file mode 100644
index 000000000000..5d0165eb6dda
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
@@ -0,0 +1,72 @@
+{ wxGTK, lib, stdenv, fetchurl, cmake, libGLU_combined, zlib
+, libX11, gettext, glew, glm, cairo, curl, openssl, boost, pkgconfig
+, doxygen, pcre, libpthreadstubs, libXdmcp
+, wrapGAppsHook
+, oceSupport ? true, opencascade
+, ngspiceSupport ? true, libngspice
+, swig, python, pythonPackages
+}:
+
+assert ngspiceSupport -> libngspice != null;
+
+with lib;
+stdenv.mkDerivation rec {
+  name = "kicad-${version}";
+  series = "5.0";
+  version = "5.0.1";
+
+  src = fetchurl {
+    url = "https://launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz";
+    sha256 = "0skig2wdxxc2677m8a8m1xrg3pkhqiqnmkcyr2hv0b2j30rzdr2z";
+  };
+
+  postPatch = ''
+    substituteInPlace CMakeModules/KiCadVersion.cmake \
+      --replace no-vcs-found ${version}
+  '';
+
+  cmakeFlags = [
+    "-DKICAD_SCRIPTING=ON"
+    "-DKICAD_SCRIPTING_MODULES=ON"
+    "-DKICAD_SCRIPTING_WXPYTHON=ON"
+    # nix installs wxPython headers in wxPython package, not in wxwidget
+    # as assumed. We explicitely set the header location.
+    "-DCMAKE_CXX_FLAGS=-I${pythonPackages.wxPython}/include/wx-3.0"
+  ] ++ optionals (oceSupport) [ "-DKICAD_USE_OCE=ON" "-DOCE_DIR=${opencascade}" ]
+    ++ optional (ngspiceSupport) "-DKICAD_SPICE=ON";
+
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    pkgconfig
+    wrapGAppsHook
+    pythonPackages.wrapPython
+  ];
+  pythonPath = [ pythonPackages.wxPython ];
+  propagatedBuildInputs = [ pythonPackages.wxPython ];
+
+  buildInputs = [
+    libGLU_combined zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs
+    cairo curl openssl boost
+    swig python
+  ] ++ optional (oceSupport) opencascade
+    ++ optional (ngspiceSupport) libngspice;
+
+  # this breaks other applications in kicad
+  dontWrapGApps = true;
+
+  preFixup = ''
+    buildPythonPath "$out $pythonPath"
+    gappsWrapperArgs+=(--set PYTHONPATH "$program_PYTHONPATH")
+
+    wrapProgram "$out/bin/kicad" "''${gappsWrapperArgs[@]}"
+  '';
+
+  meta = {
+    description = "Free Software EDA Suite";
+    homepage = http://www.kicad-pcb.org/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ berce ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/unstable.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/unstable.nix
new file mode 100644
index 000000000000..a9a4c32a0b45
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/unstable.nix
@@ -0,0 +1,56 @@
+{ wxGTK, lib, stdenv, fetchFromGitHub, cmake, libGLU_combined, zlib
+, libX11, gettext, glew, glm, cairo, curl, openssl, boost, pkgconfig
+, doxygen, pcre, libpthreadstubs, libXdmcp
+
+, oceSupport ? true, opencascade
+, ngspiceSupport ? true, libngspice
+, scriptingSupport ? true, swig, python, wxPython
+}:
+
+assert ngspiceSupport -> libngspice != null;
+
+with lib;
+stdenv.mkDerivation rec {
+  name = "kicad-unstable-${version}";
+  version = "2018-06-12";
+
+  src = fetchFromGitHub {
+    owner = "KICad";
+    repo = "kicad-source-mirror";
+    rev = "bc7bd107d980da147ad515aeae0469ddd55c2368";
+    sha256 = "11nsx52pd3jr2wbzr11glmcs1a9r7z1mqkqx6yvlm0awbgd8qlv8";
+  };
+
+  postPatch = ''
+    substituteInPlace CMakeModules/KiCadVersion.cmake \
+      --replace no-vcs-found ${version}
+  '';
+
+  cmakeFlags =
+    optionals (oceSupport) [ "-DKICAD_USE_OCE=ON" "-DOCE_DIR=${opencascade}" ]
+    ++ optional (ngspiceSupport) "-DKICAD_SPICE=ON"
+    ++ optionals (scriptingSupport) [
+      "-DKICAD_SCRIPTING=ON"
+      "-DKICAD_SCRIPTING_MODULES=ON"
+      "-DKICAD_SCRIPTING_WXPYTHON=ON"
+      # nix installs wxPython headers in wxPython package, not in wxwidget
+      # as assumed. We explicitely set the header location.
+      "-DCMAKE_CXX_FLAGS=-I${wxPython}/include/wx-3.0"
+    ];
+
+  nativeBuildInputs = [ cmake doxygen pkgconfig ];
+  buildInputs = [
+    libGLU_combined zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs
+    cairo curl openssl boost
+  ] ++ optional (oceSupport) opencascade
+    ++ optional (ngspiceSupport) libngspice
+    ++ optionals (scriptingSupport) [ swig python wxPython ];
+
+  meta = {
+    description = "Free Software EDA Suite, Nightly Development Build";
+    homepage = http://www.kicad-pcb.org/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ berce ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix b/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
new file mode 100644
index 000000000000..bc6e5e33ea24
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/librepcb/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, qtbase, qttools, qmake }:
+
+stdenv.mkDerivation rec {
+  name = "librepcb-${version}";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "LibrePCB";
+    repo = "LibrePCB";
+    fetchSubmodules = true;
+    rev = "d7458d3b3e126499902e1a66a0ef889f516a7c97";
+    sha256 = "19wh0398fzzpd65nh4mmc4jllkrgcrwxvxdby0gb5wh1sqyaqac4";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ qtbase ];
+
+  qmakeFlags = ["-r"];
+
+  postInstall = ''
+      mkdir -p $out/share/librepcb/fontobene
+      cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/
+    '';
+
+  meta = with stdenv.lib; {
+    description = "A free EDA software to develop printed circuit boards";
+    homepage = http://librepcb.org/;
+    maintainers = with maintainers; [ luz ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix b/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix
new file mode 100644
index 000000000000..4777c89e876b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/ngspice/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, bison, flex
+, readline, libX11, libICE, libXaw, libXmu, libXext, libXt, fftw }:
+
+stdenv.mkDerivation {
+  name = "ngspice-29";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ngspice/ngspice-29.tar.gz";
+    sha256 = "0jjwz73naq7l9yhwdqbpnrfckywp2ffkppivxjv8w92zq7xhyvcd";
+  };
+
+  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/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix b/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix
new file mode 100644
index 000000000000..b9bbcd695f17
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/pcb/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, gtk2, bison, intltool, flex
+, netpbm, imagemagick, dbus, xlibsWrapper, libGLU_combined
+, shared-mime-info, tcl, tk, gnome2, pangox_compat, gd, xorg
+}:
+
+stdenv.mkDerivation rec {
+  name = "pcb-${version}";
+  version = "20140316";
+
+  src = fetchurl {
+    url = "http://ftp.geda-project.org/pcb/pcb-20140316/${name}.tar.gz";
+    sha256 = "0l6944hq79qsyp60i5ai02xwyp8l47q7xdm3js0jfkpf72ag7i42";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    gtk2 bison intltool flex netpbm imagemagick dbus xlibsWrapper
+    libGLU_combined tcl shared-mime-info tk
+    gnome2.gtkglext pangox_compat 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/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix b/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
new file mode 100644
index 000000000000..4e86d1d917f8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, cmake, glib, boost, libsigrok
+, libsigrokdecode, libserialport, libzip, udev, libusb1, libftdi1, glibmm
+, pcre, librevisa, python3, qtbase, qtsvg
+}:
+
+stdenv.mkDerivation rec {
+  name = "pulseview-0.4.0";
+
+  src = fetchurl {
+    url = "https://sigrok.org/download/source/pulseview/${name}.tar.gz";
+    sha256 = "1f8f2342d5yam98mmcb8f9g2vslcwv486bmi4x45pxn68l82ky3q";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    glib boost libsigrok libsigrokdecode libserialport libzip udev libusb1 libftdi1 glibmm
+    pcre librevisa python3 qtbase qtsvg
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Qt-based LA/scope/MSO GUI for sigrok (a signal analysis software suite)";
+    homepage = https://sigrok.org/;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix b/nixpkgs/pkgs/applications/science/electronics/qfsm/default.nix
new file mode 100644
index 000000000000..6ca3f80cefd3
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/electronics/qfsm/drop-hardcoded-prefix.patch b/nixpkgs/pkgs/applications/science/electronics/qfsm/drop-hardcoded-prefix.patch
new file mode 100644
index 000000000000..965d67ac5526
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/electronics/qfsm/gcc6-fixes.patch b/nixpkgs/pkgs/applications/science/electronics/qfsm/gcc6-fixes.patch
new file mode 100644
index 000000000000..5cedc6476397
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/electronics/qucs/cmakelists.patch b/nixpkgs/pkgs/applications/science/electronics/qucs/cmakelists.patch
new file mode 100644
index 000000000000..27066f09c84e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/electronics/qucs/default.nix b/nixpkgs/pkgs/applications/science/electronics/qucs/default.nix
new file mode 100644
index 000000000000..1a5fbf90d10b
--- /dev/null
+++ b/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";
+  name = "qucs-${version}";
+
+  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/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix b/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
new file mode 100644
index 000000000000..ab2b75917b92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, tcl, tk, libX11, glibc, which, yacc, flex, imake, xproto, 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 xproto ];
+  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/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
new file mode 100644
index 000000000000..fdee3e013ded
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, perl, flex, bison }:
+
+stdenv.mkDerivation rec {
+  name    = "verilator-${version}";
+  version = "4.008";
+
+  src = fetchurl {
+    url    = "https://www.veripool.org/ftp/${name}.tgz";
+    sha256 = "1b0cj7bb2a3hrfaziix7p9idcpbygapdl0nrfr3pbdxxsgnzdknm";
+  };
+
+  enableParallelBuilding = true;
+  buildInputs = [ perl flex bison ];
+
+  postInstall = ''
+    sed -i -e '3a\#!/usr/bin/env perl' -e '1,3d' $out/bin/{verilator,verilator_coverage,verilator_profcfunc}
+  '';
+
+  meta = {
+    description = "Fast and robust (System)Verilog simulator/compiler";
+    homepage    = "https://www.veripool.org/wiki/verilator";
+    license     = stdenv.lib.licenses.lgpl3;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix b/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix
new file mode 100644
index 000000000000..c4268b54c20b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, autoconf, gperf, flex, bison }:
+
+stdenv.mkDerivation rec {
+  name = "iverilog-${version}";
+  version = "2018.12.15";
+
+  src = fetchFromGitHub {
+    owner = "steveicarus";
+    repo = "iverilog";
+    rev = "7cd078e7ab184069b3b458fe6df7e83962254816";
+    sha256 = "1zc7lsa77dbsxjfz7vdgclmg97r0kw08xss7yfs4vyv5v5gnn98d";
+  };
+
+  patchPhase = ''
+    chmod +x $PWD/autoconf.sh
+    $PWD/autoconf.sh
+  '';
+
+  buildInputs = [ autoconf gperf flex bison ];
+
+  meta = {
+    description = "Icarus Verilog compiler";
+    repositories.git = https://github.com/steveicarus/iverilog.git;
+    homepage = http://www.icarus.com;
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [winden];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix b/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix
new file mode 100644
index 000000000000..418144e6af7b
--- /dev/null
+++ b/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.9.73";
+  name = "xcircuit-${version}";
+  inherit (stdenv.lib) getBin;
+
+in stdenv.mkDerivation {
+  inherit name version;
+
+  src = fetchurl {
+    url = "http://opencircuitdesign.com/xcircuit/archive/${name}.tgz";
+    sha256 = "1kj9hayipplzm4960kx48vxddqj154qnxkccaqj9cnkp62b7q3jg";
+  };
+
+  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 = [ maintainers.spacefrogg ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix b/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix
new file mode 100644
index 000000000000..829caacb55cb
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/electronics/xoscope/gtkdepre.diff b/nixpkgs/pkgs/applications/science/electronics/xoscope/gtkdepre.diff
new file mode 100644
index 000000000000..993df9cb5503
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/geometry/drgeo/default.nix b/nixpkgs/pkgs/applications/science/geometry/drgeo/default.nix
new file mode 100644
index 000000000000..e233b91bbc91
--- /dev/null
+++ b/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 {
+  name = "drgeo-${version}";
+  version = "1.1.0";
+
+  hardeningDisable = [ "format" ];
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ofset/${name}.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/nixpkgs/pkgs/applications/science/geometry/drgeo/struct.patch b/nixpkgs/pkgs/applications/science/geometry/drgeo/struct.patch
new file mode 100644
index 000000000000..7364cae5f58d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix b/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix
new file mode 100644
index 000000000000..3a2dbf180ee3
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix b/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix
new file mode 100644
index 000000000000..b655cc48c731
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl}: 
+
+let version = "1.5.0"; in
+stdenv.mkDerivation {
+  name = "tetgen-${version}";
+
+  src = fetchurl {
+    url = "http://wias-berlin.de/software/tetgen/1.5/src/tetgen${version}.tar.gz";
+    sha256 = "1www3x2r6r7pck43ismlwy82x0j6xj2qiwvfs2pn687gsmhlh4ad";
+  };
+
+  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/nixpkgs/pkgs/applications/science/logic/abc/default.nix b/nixpkgs/pkgs/applications/science/logic/abc/default.nix
new file mode 100644
index 000000000000..6e7a3cfc88ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/abc/default.nix
@@ -0,0 +1,31 @@
+{ fetchFromGitHub, stdenv, readline, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "abc-verifier-${version}";
+  version = "2018-07-08";
+
+  src = fetchFromGitHub {
+    owner = "berkeley-abc";
+    repo = "abc";
+    rev    = "24407e13db4b8ca16c3996049b2d33ec3722de39";
+    sha256 = "1rckji7nk81n6v1yajz7daqwipxacv7zlafknvmbiwji30j47sq5";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ readline ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv abc $out/bin
+  '';
+
+  meta = {
+    description = "A tool for squential logic synthesis and formal verification";
+    homepage    = https://people.eecs.berkeley.edu/~alanmi/abc;
+    license     = stdenv.lib.licenses.mit;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/abella/default.nix b/nixpkgs/pkgs/applications/science/logic/abella/default.nix
new file mode 100644
index 000000000000..7d71a56fa23e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/abella/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, rsync, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+  name = "abella-${version}";
+  version = "2.0.5";
+
+  src = fetchurl {
+    url = "http://abella-prover.org/distributions/${name}.tar.gz";
+    sha256 = "0bry4pj6p9y7sg79ygdksynml4rdsjhqi959vnnwwsbaysa3bci0";
+  };
+
+  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/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix b/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
new file mode 100644
index 000000000000..729aef4e21c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/acgtk/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, dune, ocamlPackages }:
+
+stdenv.mkDerivation {
+
+  name = "acgtk-1.5.0";
+
+  src = fetchurl {
+    url = http://calligramme.loria.fr/acg/software/acg-1.5.0-20181019.tar.gz;
+    sha256 = "14n003gxzw5w79hlpw1ja4nq97jqf9zqyg00ihvpxw4bv9jlm8jm";
+  };
+
+  buildInputs = [ dune ] ++ (with ocamlPackages; [
+    ocaml findlib ansiterminal cairo2 fmt logs menhir mtime ocf
+  ]);
+
+  buildPhase = "dune build";
+
+  inherit (dune) installPhase;
+
+  meta = with stdenv.lib; {
+    homepage = http://calligramme.loria.fr/acg/;
+    description = "A toolkit for developing ACG signatures and lexicon";
+    license = licenses.cecill20;
+    inherit (ocamlPackages.ocaml.meta) platforms;
+    maintainers = [ maintainers.jirkamarsik ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/aiger/default.nix b/nixpkgs/pkgs/applications/science/logic/aiger/default.nix
new file mode 100644
index 000000000000..03524fc6b222
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/aiger/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, picosat }:
+
+stdenv.mkDerivation rec {
+  name = "aiger-${version}";
+  version = "1.9.9";
+
+  src = fetchurl {
+    url    = "http://fmv.jku.at/aiger/${name}.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.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix b/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
new file mode 100644
index 000000000000..794430ebbe84
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
@@ -0,0 +1,23 @@
+{ fetchurl, stdenv, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+  name = "alt-ergo-${version}";
+  version = "2.2.0";
+
+  src = fetchurl {
+    url    = "https://alt-ergo.ocamlpro.com/download_manager.php?target=${name}.tar.gz";
+    name   = "${name}.tar.gz";
+    sha256 = "106zfgisq6qxr7dlk8z7gi68ly7qff4frn8wab2g8z2nkkwla92w";
+  };
+
+  buildInputs = with ocamlPackages;
+    [ ocaml findlib camlzip ocamlgraph zarith lablgtk ocplib-simplex psmt2-frontend menhir num ];
+
+  meta = {
+    description = "High-performance theorem prover and SMT solver";
+    homepage    = "https://alt-ergo.ocamlpro.com/";
+    license     = stdenv.lib.licenses.ocamlpro_nc;
+    platforms   = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/aspino/default.nix b/nixpkgs/pkgs/applications/science/logic/aspino/default.nix
new file mode 100644
index 000000000000..bf8d3cf03b83
--- /dev/null
+++ b/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 rec {
+  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 ma27 ];
+    platforms = platforms.unix;
+    license = licenses.asl20;
+    homepage = http://alviano.net/software/maxino/;
+    # See pkgs/applications/science/logic/glucose/default.nix
+    badPlatforms = [ "aarch64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/avy/0001-no-static-boost-libs.patch b/nixpkgs/pkgs/applications/science/logic/avy/0001-no-static-boost-libs.patch
new file mode 100644
index 000000000000..a53142faba66
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/avy/0001-no-static-boost-libs.patch
@@ -0,0 +1,12 @@
+diff --git a/avy/CMakeLists.txt b/avy/CMakeLists.txt
+index 5913076..b0453b5 100644
+--- a/avy/CMakeLists.txt
++++ b/avy/CMakeLists.txt
+@@ -23,7 +23,6 @@ if (CUSTOM_BOOST_ROOT)
+   set (Boost_NO_SYSTEM_PATHS "ON")
+ endif()
+ 
+-set (Boost_USE_STATIC_LIBS ON)
+ find_package (Boost 1.46.1 REQUIRED program_options)
+ IF (Boost_FOUND)
+   include_directories (${Boost_INCLUDE_DIRS})
diff --git a/nixpkgs/pkgs/applications/science/logic/avy/default.nix b/nixpkgs/pkgs/applications/science/logic/avy/default.nix
new file mode 100644
index 000000000000..6c2d2f0a062f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/avy/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchgit, cmake, zlib, boost }:
+
+stdenv.mkDerivation rec {
+  name = "avy-${version}";
+  version = "2017.10.16";
+
+  src = fetchgit {
+    url    = "https://bitbucket.org/arieg/extavy";
+    rev    = "c75c83379c38d6ea1046d0caee95aef77283ffe3";
+    sha256 = "0zcycnypg4q5g710bnkjpycaawmibc092vmyhgfbixkgq9fb5lfh";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [ cmake zlib boost.out boost.dev ];
+  NIX_CFLAGS_COMPILE = [ "-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}
+  '';
+
+  patches =
+    [ ./0001-no-static-boost-libs.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/nixpkgs/pkgs/applications/science/logic/avy/glucose-fenv.patch b/nixpkgs/pkgs/applications/science/logic/avy/glucose-fenv.patch
new file mode 100644
index 000000000000..dd19f7ec80e7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/avy/minisat-fenv.patch b/nixpkgs/pkgs/applications/science/logic/avy/minisat-fenv.patch
new file mode 100644
index 000000000000..686d5a1c5b49
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/beluga/default.nix b/nixpkgs/pkgs/applications/science/logic/beluga/default.nix
new file mode 100644
index 000000000000..da0e9bf1c1dd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/beluga/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, ocamlPackages, omake }:
+
+stdenv.mkDerivation {
+  name = "beluga-20180403";
+
+  src = fetchFromGitHub {
+    owner  = "Beluga-lang";
+    repo   = "Beluga";
+    rev    = "046aa59f008be70a7c4700b723bed0214ea8b687";
+    sha256 = "0m68y0r0wdw3mg2jks68bihaww7sg305zdfnic1rkndq2cxv0mld";
+  };
+
+  nativeBuildInputs = with ocamlPackages; [ findlib ocamlbuild omake ];
+  buildInputs = with ocamlPackages; [ ocaml ulex ocaml_extlib ];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r bin $out/
+
+    mkdir -p $out/share/beluga
+    cp -r tools/ examples/ $out/share/beluga
+
+    mkdir -p $out/share/emacs/site-lisp/beluga/
+    cp -r tools/beluga-mode.el $out/share/emacs/site-lisp/beluga
+  '';
+
+  meta = {
+    description = "A functional language for reasoning about formal systems";
+    homepage    = http://complogic.cs.mcgill.ca/beluga/;
+    license     = stdenv.lib.licenses.gpl3Plus;
+    maintainers = [ stdenv.lib.maintainers.bcdarwin ];
+    platforms   = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/boolector/default.nix b/nixpkgs/pkgs/applications/science/logic/boolector/default.nix
new file mode 100644
index 000000000000..8e0ad22bba18
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/boolector/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub
+, cmake, lingeling, btor2tools
+}:
+
+stdenv.mkDerivation rec {
+  name    = "boolector-${version}";
+  version = "3.0.0";
+
+  src = fetchFromGitHub {
+    owner  = "boolector";
+    repo   = "boolector";
+    rev    = "refs/tags/${version}";
+    sha256 = "15i3ni5klss423m57wcy1gx0m5wfrjmglapwg85pm7fb3jj1y7sz";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ lingeling btor2tools ];
+
+  cmakeFlags =
+    [ "-DSHARED=ON"
+      "-DUSE_LINGELING=YES"
+      "-DBTOR2_INCLUDE_DIR=${btor2tools.dev}/include"
+      "-DBTOR2_LIBRARIES=${btor2tools.lib}/lib/libbtor2parser.so"
+      "-DLINGELING_INCLUDE_DIR=${lingeling.dev}/include"
+      "-DLINGELING_LIBRARIES=${lingeling.lib}/lib/liblgl.a"
+    ];
+
+  installPhase = ''
+    mkdir -p $out/bin $lib/lib $dev/include
+
+    cp -vr bin/* $out/bin
+    cp -vr lib/* $lib/lib
+
+    rm -rf $out/bin/{examples,test}
+
+    cd ../src
+    find . -iname '*.h' -exec cp --parents '{}' $dev/include \;
+    rm -rf $dev/include/tests
+  '';
+
+  outputs = [ "out" "dev" "lib" ];
+
+  meta = with stdenv.lib; {
+    description = "An extremely fast SMT solver for bit-vectors and arrays";
+    homepage    = https://boolector.github.io;
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/btor2tools/default.nix b/nixpkgs/pkgs/applications/science/logic/btor2tools/default.nix
new file mode 100644
index 000000000000..ed3d9e638121
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/btor2tools/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "btor2tools-${version}";
+  version = "pre55_8c150b39";
+
+  src = fetchFromGitHub {
+    owner  = "boolector";
+    repo   = "btor2tools";
+    rev    = "8c150b39cdbcdef4247344acf465d75ef642365d";
+    sha256 = "1r5pid4x567nms02ajjrz3v0zj18k0fi5pansrmc2907rnx2acxx";
+  };
+
+  configurePhase = "./configure.sh -shared";
+
+  installPhase = ''
+    mkdir -p $out $dev/include/btor2parser/ $lib/lib
+
+    cp -vr bin $out
+    cp -v  src/btor2parser/btor2parser.h $dev/include/btor2parser
+    cp -v  build/libbtor2parser.* $lib/lib
+  '';
+
+  outputs = [ "out" "dev" "lib" ];
+
+  meta = with stdenv.lib; {
+    description = "Fast SAT solver";
+    homepage    = http://fmv.jku.at/lingeling/;
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/cedille/default.nix b/nixpkgs/pkgs/applications/science/logic/cedille/default.nix
new file mode 100644
index 000000000000..0817ebe0654b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/cedille/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, lib, fetchFromGitHub, alex, happy, Agda, agdaIowaStdlib,
+  buildPlatform, buildPackages, ghcWithPackages, fetchpatch }:
+let
+  options-patch =
+    fetchpatch {
+      url = https://github.com/cedille/cedille/commit/ee62b0fabde6c4f7299a3778868519255cc4a64f.patch;
+      name = "options.patch";
+      sha256 = "19xzn9sqpfnfqikqy1x9lb9mb6722kbgvrapl6cf8ckcw8cfj8cz";
+      };
+in
+stdenv.mkDerivation rec {
+  version = "1.0.0";
+  name = "cedille-${version}";
+  src = fetchFromGitHub {
+    owner = "cedille";
+    repo = "cedille";
+    rev = "v${version}";
+    sha256 = "08c2vgg8i6l3ws7hd5gsj89mki36lxm7x7s8hi1qa5gllq04a832";
+  };
+  buildInputs = [ alex happy Agda (ghcWithPackages (ps: [ps.ieee])) ];
+
+  patches = [options-patch];
+
+  LANG = "en_US.UTF-8";
+  LOCALE_ARCHIVE =
+    lib.optionalString (buildPlatform.libc == "glibc")
+      "${buildPackages.glibcLocales}/lib/locale/locale-archive";
+
+  postPatch = ''
+    patchShebangs create-libraries.sh
+    cp -r ${agdaIowaStdlib.src} ial
+    chmod -R 755 ial
+  '';
+
+  outputs = ["out" "lib"];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv cedille $out/bin/cedille
+    mv lib $lib
+  '';
+
+  meta = {
+    description = "An interactive theorem-prover and dependently typed programming language, based on extrinsic (aka Curry-style) type theory.";
+    homepage = https://cedille.github.io/;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.mpickering ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/celf/default.nix b/nixpkgs/pkgs/applications/science/logic/celf/default.nix
new file mode 100644
index 000000000000..708270f772fd
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/coq/default.nix b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
new file mode 100644
index 000000000000..5fab9788a94a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
@@ -0,0 +1,151 @@
+# - 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
+, ocamlPackages, ncurses
+, buildIde ? true
+, 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+beta1" = "1yxv2klqal3mh6symi3gc6gv3xm684zlld2c0b6ijhjmp865cin8";
+  }."${version}";
+  coq-version = builtins.substring 0 3 version;
+  ideFlags = if buildIde then "-lablgtkdir ${ocamlPackages.lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
+  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 {
+  name = "coq-${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 ];
+  buildInputs = [ ncurses ] ++ (with ocamlPackages; [ ocaml findlib camlp5 num ])
+  ++ stdenv.lib.optional buildIde ocamlPackages.lablgtk;
+
+  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 = ''
+    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/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix b/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix
new file mode 100644
index 000000000000..d76462ca9380
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/coq2html/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, ocaml }:
+
+let 
+  version = "20170720";
+in
+
+stdenv.mkDerivation {
+  name = "coq2html-${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 = "coq2html is an 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/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix b/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
new file mode 100644
index 000000000000..4d96339149af
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, python, xxd }:
+
+stdenv.mkDerivation rec {
+  name = "cryptominisat-${version}";
+  version = "5.0.1";
+
+  src = fetchFromGitHub {
+    owner  = "msoos";
+    repo   = "cryptominisat";
+    rev    = version;
+    sha256 = "0cpw5d9vplxvv3aaplhnga55gz1hy29p7s4pkw1306knkbhlzvkb";
+  };
+
+  buildInputs = [ python xxd ];
+  nativeBuildInputs = [ cmake ];
+
+  patches = [(fetchpatch rec {
+    name = "fix-exported-library-name.patch";
+    url = "https://github.com/msoos/cryptominisat/commit/7a47795cbe5ad5a899731102d297f234bcade077.patch";
+    sha256 = "11hf3cfqs4cykn7rlgjglq29lzqfxvlm0f20qasi0kdrz01cr30f";
+  })];
+
+  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/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix b/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix
new file mode 100644
index 000000000000..df9e58af08bb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ocaml }:
+
+stdenv.mkDerivation rec {
+  name = "cryptoverif-${version}";
+  version = "2.00";
+
+  src = fetchurl {
+    url    = "http://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/cryptoverif${version}.tar.gz";
+    sha256 = "0g8pkj58b48zk4c0sgpln0qhbj82v75mz3w6cl3w5bvmxsbkwvy1";
+  };
+
+  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    = "http://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/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix b/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix
new file mode 100644
index 000000000000..91eaaeeb0e40
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+  name = "cubicle-${version}";
+  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; [ lucas8 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/cvc3/cvc3-2.4.1-gccv6-fix.patch b/nixpkgs/pkgs/applications/science/logic/cvc3/cvc3-2.4.1-gccv6-fix.patch
new file mode 100644
index 000000000000..1fb3516b8c27
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix b/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
new file mode 100644
index 000000000000..703ce6fd5086
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, flex, bison, gmp, perl }:
+
+stdenv.mkDerivation rec {
+    name = "cvc3-${version}";
+    version = "2.4.1";
+
+    src = fetchurl {
+      url = "http://www.cs.nyu.edu/acsys/cvc3/releases/${version}/${name}.tar.gz";
+      sha256 = "1xxcwhz3y6djrycw8sm6xz83wb4hb12rd1n0skvc7fng0rh1snym";
+    };
+
+  buildInputs = [ gmp flex bison perl ];
+
+  patches = [ ./cvc3-2.4.1-gccv6-fix.patch ];
+
+  preConfigure = ''
+    sed -e "s@ /bin/bash@bash@g" -i Makefile.std
+    find . -exec sed -e "s@/usr/bin/perl@${perl}/bin/perl@g" -i '{}' ';'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A prover for satisfiability modulo theory (SMT)";
+    maintainers = with maintainers;
+      [ raskin ];
+    platforms = platforms.linux;
+    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/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix b/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
new file mode 100644
index 000000000000..cddcbef7a035
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, cln, gmp, swig, pkgconfig
+, readline, libantlr3c, boost, jdk, autoreconfHook
+, python3, antlr3_4
+}:
+
+stdenv.mkDerivation rec {
+  name = "cvc4-${version}";
+  version = "1.6";
+
+  src = fetchurl {
+    url = "https://cvc4.cs.stanford.edu/downloads/builds/src/cvc4-${version}.tar.gz";
+    sha256 = "1iw793zsi48q91lxpf8xl8lnvv0jsj4whdad79rakywkm1gbs62w";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ gmp 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/
+  '';
+
+  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/nixpkgs/pkgs/applications/science/logic/cvc4/minisat-fenv.patch b/nixpkgs/pkgs/applications/science/logic/cvc4/minisat-fenv.patch
new file mode 100644
index 000000000000..686d5a1c5b49
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix b/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix
new file mode 100644
index 000000000000..50454847baf1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "drat-trim-2017-08-31";
+
+  src = fetchFromGitHub {
+    owner = "marijnheule";
+    repo = "drat-trim";
+    rev = "37ac8f874826ffa3500a00698910e137498defac";
+    sha256 = "1m9q47dfnvdli1z3kb1jvvbm0dgaw725k1aw6h9w00bggqb91bqh";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile --replace gcc cc
+  '';
+
+  installPhase = ''
+    install -Dt $out/bin drat-trim
+  '';
+
+  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.
+    '';
+    homepage = https://www.cs.utexas.edu/~marijn/drat-trim/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kini ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.nix b/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.nix
new file mode 100644
index 000000000000..e1eb9a2dcc3b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.upstream b/nixpkgs/pkgs/applications/science/logic/ekrhyper/default.upstream
new file mode 100644
index 000000000000..310e93ea53fd
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/elan/default.nix b/nixpkgs/pkgs/applications/science/logic/elan/default.nix
new file mode 100644
index 000000000000..f0b912c57fc5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/elan/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, pkgconfig, curl, openssl, zlib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  name = "elan-${version}";
+  version = "0.7.1";
+
+  cargoSha256 = "0vv7kr7rc3lvas7ngp5dp99ajjd5v8k5937ish7zqz1k4970q2f1";
+
+  src = fetchFromGitHub {
+    owner = "kha";
+    repo = "elan";
+    rev = "v${version}";
+    sha256 = "0x5s1wm78yx5ci63wrmlkzm6k3281p33gn4dzw25k5s4vx0p9n24";
+  };
+
+  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; 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 stdenv.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/nixpkgs/pkgs/applications/science/logic/eprover/default.nix b/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
new file mode 100644
index 000000000000..4d8e7b17b2bc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, which }:
+
+stdenv.mkDerivation rec {
+  name = "eprover-${version}";
+  version = "2.2";
+
+  src = fetchurl {
+    url = "https://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_${version}/E.tgz";
+    sha256 = "08ihpwgkz0l7skr42iw8lm202kqr51i792bs61qsbnk9gsjlab1c";
+  };
+
+  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/nixpkgs/pkgs/applications/science/logic/gappa/default.nix b/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
new file mode 100644
index 000000000000..71114d2f9e12
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, gmp, mpfr, boost }:
+
+stdenv.mkDerivation {
+  name = "gappa-1.2";
+
+  src = fetchurl {
+    url = https://gforge.inria.fr/frs/download.php/file/34787/gappa-1.2.0.tar.gz;
+    sha256 = "03hfzmaf5jm54sjpbks20q7qixpmagrfbnyyc276vgmiyslk4dkh";
+  };
+
+  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/nixpkgs/pkgs/applications/science/logic/glucose/default.nix b/nixpkgs/pkgs/applications/science/logic/glucose/default.nix
new file mode 100644
index 000000000000..bc8d372ce42c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/glucose/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, zlib }:
+stdenv.mkDerivation rec {
+  name = "glucose-${version}";
+  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/${name}/"
+    install -Dm0755 ../{LICEN?E,README*,Changelog*} "$out/share/doc/${name}/"
+  '';
+
+  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/nixpkgs/pkgs/applications/science/logic/glucose/syrup.nix b/nixpkgs/pkgs/applications/science/logic/glucose/syrup.nix
new file mode 100644
index 000000000000..30af3216737c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/glucose/syrup.nix
@@ -0,0 +1,24 @@
+{ stdenv, zlib, glucose }:
+stdenv.mkDerivation rec {
+  name = "glucose-syrup-${version}";
+  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/${name}/"
+    install -Dm0755 ../{LICEN?E,README*,Changelog*} "$out/share/doc/${name}/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Modern, parallel SAT solver (parallel version)";
+    license = licenses.unfreeRedistributable;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ gebner ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/hol/default.nix b/nixpkgs/pkgs/applications/science/logic/hol/default.nix
new file mode 100644
index 000000000000..d6a1eb6cbf71
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix b/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix
new file mode 100644
index 000000000000..91be7dca1173
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/hol_light/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, 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 =
+    ''
+      #!/bin/sh
+      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-2018-09-30";
+
+  src = fetchFromGitHub {
+    owner  = "jrh13";
+    repo   = "hol-light";
+    rev    = "27e09dd27834de46e917057710e9d8ded51a4c9f";
+    sha256 = "1p0rm08wnc2lsrh3xzhlq3zdhzqcv1lbqnkwx3aybrqhbg1ixc1d";
+  };
+
+  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 z77z vbgl ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/iprover/default.nix b/nixpkgs/pkgs/applications/science/logic/iprover/default.nix
new file mode 100644
index 000000000000..d3950349711b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/iprover/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, ocaml, eprover, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "iprover-${version}";
+  version = "2018_Jul_24_11h";
+
+  src = fetchurl {
+    url = "http://www.cs.man.ac.uk/~korovink/iprover/iprover_${version}.tar.gz";
+    sha256 = "1iqim11flzm56aaysasl5whajcv1gq31hkidaqfr8ww7kwl1h06p";
+  };
+
+  buildInputs = [ ocaml eprover zlib ];
+
+  preConfigure = ''patchShebangs .'';
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp iproveropt "$out/bin"
+
+    mkdir -p "$out/share/${name}"
+    cp *.p "$out/share/${name}"
+    echo -e "#! /bin/sh\\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/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix b/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
new file mode 100644
index 000000000000..ffe508569553
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, perl, nettools, java, polyml, z3 }:
+# nettools needed for hostname
+
+let
+  dirname = "Isabelle2017";
+in
+
+stdenv.mkDerivation {
+  name = "isabelle-2017";
+  inherit dirname;
+
+  src = if stdenv.isDarwin
+    then fetchurl {
+      url = "http://isabelle.in.tum.de/website-${dirname}/dist/${dirname}.dmg";
+      sha256 = "1awgg39i72pivwfijdwffvil3glnpimjz2x04qbl5la2j6la48nb";
+    }
+    else fetchurl {
+      url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
+      sha256 = "01v1zrajyfamjq5b8v18qr3ffivjckifsvvx2vs13di6wsnmm9gw";
+    };
+
+  buildInputs = [ perl polyml z3 ]
+             ++ stdenv.lib.optionals (!stdenv.isDarwin) [ nettools java ];
+
+  sourceRoot = dirname;
+
+  postPatch = ''
+    ENV=$(type -p env)
+    patchShebangs "."
+    substituteInPlace lib/Tools/env \
+      --replace /usr/bin/env $ENV
+    substituteInPlace lib/Tools/install \
+      --replace /usr/bin/env $ENV
+    sed -i 's|isabelle_java java|${java}/bin/java|g' lib/Tools/java
+    substituteInPlace etc/settings \
+      --subst-var-by ML_HOME "${polyml}/bin"
+    substituteInPlace contrib/jdk/etc/settings \
+      --replace ISABELLE_JDK_HOME= '#ISABELLE_JDK_HOME='
+    substituteInPlace contrib/polyml-*/etc/settings \
+      --replace '$POLYML_HOME/$ML_PLATFORM' ${polyml}/bin \
+      --replace '$POLYML_HOME/$PLATFORM/polyml' ${polyml}/bin/poly
+    substituteInPlace lib/scripts/run-polyml* lib/scripts/polyml-version \
+      --replace '$ML_HOME/poly' ${polyml}/bin/poly
+    substituteInPlace contrib/z3*/etc/settings \
+      --replace '$Z3_HOME/z3' '${z3}/bin/z3'
+
+    for comp in contrib/jdk contrib/polyml*; 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 = {
+    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 = http://isabelle.in.tum.de/;
+    license = "LGPL";
+    maintainers = [ stdenv.lib.maintainers.jwiegley ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/jonprl/default.nix b/nixpkgs/pkgs/applications/science/logic/jonprl/default.nix
new file mode 100644
index 000000000000..a95d1201cbd6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/jonprl/default.nix
@@ -0,0 +1,34 @@
+{ fetchgit, stdenv, smlnj, which }:
+
+stdenv.mkDerivation rec {
+  name    = "jonprl-${version}";
+  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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/lci/default.nix b/nixpkgs/pkgs/applications/science/logic/lci/default.nix
new file mode 100644
index 000000000000..d7f047b84e0f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/lci/default.nix
@@ -0,0 +1,16 @@
+{stdenv, fetchurl, readline}: 
+stdenv.mkDerivation rec {
+  version = "0.6";
+  name = "lci-${version}";
+  src = fetchurl {
+    url = "mirror://sourceforge/lci/${name}.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/nixpkgs/pkgs/applications/science/logic/lean/default.nix b/nixpkgs/pkgs/applications/science/logic/lean/default.nix
new file mode 100644
index 000000000000..16fdab59ea02
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/lean/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, cmake, gmp }:
+
+stdenv.mkDerivation rec {
+  name = "lean-${version}";
+  version = "3.4.1";
+
+  src = fetchFromGitHub {
+    owner  = "leanprover";
+    repo   = "lean";
+    rev    = "v${version}";
+    sha256 = "0ww8azlyy3xikhd7nh96f507sg23r53zvayij1mwv5513vmblhhw";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ gmp ];
+  enableParallelBuilding = true;
+
+  preConfigure = ''
+    cd src
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Automatic and interactive theorem prover";
+    homepage    = "http://leanprover.github.io";
+    license     = licenses.asl20;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice gebner ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/lean2/default.nix b/nixpkgs/pkgs/applications/science/logic/lean2/default.nix
new file mode 100644
index 000000000000..4e1415d3961d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/lean2/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, cmake, gmp, mpfr, python
+, gperftools, ninja, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "lean2-${version}";
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/leo2/default.nix b/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
new file mode 100644
index 000000000000..be337a1c258e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, makeWrapper, eprover, ocaml, perl, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "leo2-${version}";
+  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/nixpkgs/pkgs/applications/science/logic/leo2/default.upstream b/nixpkgs/pkgs/applications/science/logic/leo2/default.upstream
new file mode 100644
index 000000000000..52b8ed1cdaa2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix b/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix
new file mode 100644
index 000000000000..000587a22e67
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/lingeling/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub
+, aiger
+}:
+
+stdenv.mkDerivation rec {
+  name = "lingeling-${version}";
+  # 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.linux;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/logisim/default.nix b/nixpkgs/pkgs/applications/science/logic/logisim/default.nix
new file mode 100644
index 000000000000..db784237ea91
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/logisim/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+let version = "2.7.1"; in
+
+stdenv.mkDerivation {
+  name = "logisim-${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/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix b/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
new file mode 100644
index 000000000000..c77e0327fb6b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "ltl2ba-${version}";
+  version = "1.2";
+
+  src = fetchurl {
+    url    = "http://www.lsv.ens-cachan.fr/~gastin/ltl2ba/${name}.tar.gz";
+    sha256 = "0vzv5g7v87r41cvdafxi6yqnk7glzxrzgavy8213k59f6v11dzlx";
+  };
+
+  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/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix b/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix
new file mode 100644
index 000000000000..dc32e84279a8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/mcrl2/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, cmake, libGLU_combined, qt5, boost}:
+
+stdenv.mkDerivation rec {
+  version = "201707";
+  build_nr = "1";
+  name = "mcrl2-${version}";
+
+  src = fetchurl {
+    url = "https://www.mcrl2.org/download/release/mcrl2-${version}.${build_nr}.tar.gz";
+    sha256 = "1c8h94ja7271ph61zrcgnjgblxppld6v22f7f900prjgzbcfy14m";
+  };
+
+  buildInputs = [ cmake libGLU_combined 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/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix b/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix
new file mode 100644
index 000000000000..1601a74e1899
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, perl, mlton }:
+
+stdenv.mkDerivation rec {
+  name = "metis-prover-${version}";
+  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/nixpkgs/pkgs/applications/science/logic/minisat/clang.diff b/nixpkgs/pkgs/applications/science/logic/minisat/clang.diff
new file mode 100644
index 000000000000..5b5072c71f3f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/minisat/clang.diff
@@ -0,0 +1,45 @@
+diff -aur minisat/core/SolverTypes.h minisat.clang/core/SolverTypes.h
+--- minisat/core/SolverTypes.h	2010-07-10 18:07:36.000000000 +0200
++++ minisat.clang/core/SolverTypes.h	2016-05-13 12:14:50.759671959 +0200
+@@ -47,7 +47,7 @@
+     int     x;
+ 
+     // Use this as a constructor:
+-    friend Lit mkLit(Var var, bool sign = false);
++    //friend Lit mkLit(Var var, bool sign = false);
+ 
+     bool operator == (Lit p) const { return x == p.x; }
+     bool operator != (Lit p) const { return x != p.x; }
+@@ -55,7 +55,7 @@
+ };
+ 
+ 
+-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 -aur minisat/utils/Options.h minisat.clang/utils/Options.h
+--- minisat/utils/Options.h	2010-07-10 18:07:36.000000000 +0200
++++ minisat.clang/utils/Options.h	2016-05-13 12:14:50.759671959 +0200
+@@ -282,15 +282,15 @@
+         if (range.begin == INT64_MIN)
+             fprintf(stderr, "imin");
+         else
+-            fprintf(stderr, "%4"PRIi64, range.begin);
++            fprintf(stderr, "%4" PRIi64, range.begin);
+ 
+         fprintf(stderr, " .. ");
+         if (range.end == INT64_MAX)
+             fprintf(stderr, "imax");
+         else
+-            fprintf(stderr, "%4"PRIi64, range.end);
++            fprintf(stderr, "%4" PRIi64, range.end);
+ 
+-        fprintf(stderr, "] (default: %"PRIi64")\n", value);
++        fprintf(stderr, "] (default: %" PRIi64 ")\n", value);
+         if (verbose){
+             fprintf(stderr, "\n        %s\n", description);
+             fprintf(stderr, "\n");
+Only in minisat.clang/utils: Options.o
+Only in minisat.clang/utils: System.o
diff --git a/nixpkgs/pkgs/applications/science/logic/minisat/darwin.patch b/nixpkgs/pkgs/applications/science/logic/minisat/darwin.patch
new file mode 100644
index 000000000000..f2b618d6bb3a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/minisat/darwin.patch
@@ -0,0 +1,26 @@
+https://github.com/fasterthanlime/homebrew-mingw/blob/master/Library/Formula/minisat.rb
+
+diff --git a/utils/System.cc b/utils/System.cc
+index a7cf53f..feeaf3c 100644
+--- a/utils/System.cc
++++ b/utils/System.cc
+@@ -78,16 +78,17 @@ double Minisat::memUsed(void) {
+     struct rusage ru;
+     getrusage(RUSAGE_SELF, &ru);
+     return (double)ru.ru_maxrss / 1024; }
+-double MiniSat::memUsedPeak(void) { return memUsed(); }
++double Minisat::memUsedPeak(void) { return memUsed(); }
+ 
+ 
+ #elif defined(__APPLE__)
+ #include <malloc/malloc.h>
+ 
+-double Minisat::memUsed(void) {
++double Minisat::memUsed() {
+     malloc_statistics_t t;
+     malloc_zone_statistics(NULL, &t);
+     return (double)t.max_size_in_use / (1024*1024); }
++double Minisat::memUsedPeak() { return memUsed(); }
+ 
+ #else
+ double Minisat::memUsed() { 
diff --git a/nixpkgs/pkgs/applications/science/logic/minisat/default.nix b/nixpkgs/pkgs/applications/science/logic/minisat/default.nix
new file mode 100644
index 000000000000..4b2116680d50
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/minisat/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "minisat-${version}";
+  version = "2.2.0";
+
+  src = fetchurl {
+    url = "http://minisat.se/downloads/${name}.tar.gz";
+    sha256 = "023qdnsb6i18yrrawlhckm47q8x0sl7chpvvw3gssfyw3j2pv5cj";
+  };
+
+  patches =
+    [ ./darwin.patch ]
+    ++ stdenv.lib.optionals stdenv.cc.isClang [ ./clang.diff ];
+
+  buildInputs = [ zlib ];
+
+  preBuild = "cd simp";
+  makeFlags = [ "r" "MROOT=.." ];
+  installPhase = ''
+    mkdir -p $out/bin
+    cp minisat_release $out/bin/minisat
+  '';
+
+  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/nixpkgs/pkgs/applications/science/logic/minisat/unstable.nix b/nixpkgs/pkgs/applications/science/logic/minisat/unstable.nix
new file mode 100644
index 000000000000..f1a42f8215e3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/minisat/unstable.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, zlib, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "minisat-unstable-2013-09-25";
+
+  src = fetchFromGitHub {
+    owner = "niklasso";
+    repo = "minisat";
+    rev = "37dc6c67e2af26379d88ce349eb9c4c6160e8543";
+    sha256 = "091hf3qkm197s5r7xcr3m07xsdwyz2rqk1hc9kj0hn13imz09irq";
+  };
+
+  buildInputs = [ zlib ];
+  nativeBuildInputs =  [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "Compact and readable SAT solver";
+    maintainers = with maintainers; [ mic92 ];
+    platforms = platforms.unix;
+    license = licenses.mit;
+    homepage = http://minisat.se/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/monosat/default.nix b/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
new file mode 100644
index 000000000000..54bedc7c5e97
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, 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    = "2deeadeff214e975c9f7508bc8a24fa05a1a0c32";
+  sha256 = "09yhym2lxmn3xbhw5fcxawnmvms5jd9fw9m7x2wzil7yvy4vwdjn";
+
+  pname   = "monosat";
+  version = substring 0 7 sha256;
+
+  src = fetchFromGitHub {
+    owner = "sambayless";
+    repo  = pname;
+    inherit rev sha256;
+  };
+
+  core = stdenv.mkDerivation rec {
+    name = "${pname}-${version}";
+    inherit src;
+    buildInputs = [ cmake zlib gmp jdk8 ];
+
+    cmakeFlags = [ "-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;
+    };
+  };
+
+  python = { buildPythonPackage, cython }: buildPythonPackage {
+    inherit pname version src;
+
+    # The top-level "source" is what fetchFromGitHub gives us. The rest is inside the repo
+    sourceRoot = "source/src/monosat/api/python/";
+
+    propagatedBuildInputs = [ core cython ];
+
+    # This tells setup.py to use cython
+    MONOSAT_CYTHON = true;
+
+    # The relative paths here don't make sense for our Nix build
+    # Also, let's use cython since it should produce faster bindings
+    # 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...
+    postPatch = ''
+
+      substituteInPlace setup.py \
+        --replace '../../../../libmonosat.dylib' '${core}/lib/libmonosat.dylib' \
+        --replace '../../../../libmonosat.so'  '${core}/lib/libmonosat.so'
+    '';
+  };
+in core
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix b/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
new file mode 100644
index 000000000000..48546a86112b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, zlib, gmp }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix b/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix
new file mode 100644
index 000000000000..f9f021b15f07
--- /dev/null
+++ b/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 {
+  name = "opensmt-${version}";
+  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/nixpkgs/pkgs/applications/science/logic/ott/default.nix b/nixpkgs/pkgs/applications/science/logic/ott/default.nix
new file mode 100644
index 000000000000..d21487ef92fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/ott/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, pkgconfig, ocaml }:
+
+stdenv.mkDerivation rec {
+  name = "ott-${version}";
+  version = "0.28";
+
+  src = fetchFromGitHub {
+    owner = "ott-lang";
+    repo = "ott";
+    rev = version;
+    sha256 = "0mzbrvqayqpns9zzg4m1scxx24dv9askhn51dawyb9pisvlyvai0";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ocaml ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp src/ott.opt $out/bin
+    ln -s $out/bin/ott.opt $out/bin/ott
+
+    mkdir -p $out/share/emacs/site-lisp
+    cp emacs/ott-mode.el $out/share/emacs/site-lisp
+    '';
+
+  meta = {
+    description = "Ott: 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/nixpkgs/pkgs/applications/science/logic/otter/default.nix b/nixpkgs/pkgs/applications/science/logic/otter/default.nix
new file mode 100644
index 000000000000..b19650eb8630
--- /dev/null
+++ b/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 = "http://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/nixpkgs/pkgs/applications/science/logic/picosat/default.nix b/nixpkgs/pkgs/applications/science/logic/picosat/default.nix
new file mode 100644
index 000000000000..638996e853b8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/picosat/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name    = "picosat-${version}";
+  version = "965";
+
+  src = fetchurl {
+    url = "http://fmv.jku.at/picosat/${name}.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/nixpkgs/pkgs/applications/science/logic/poly/default.nix b/nixpkgs/pkgs/applications/science/logic/poly/default.nix
new file mode 100644
index 000000000000..2f765572f9ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/poly/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchFromGitHub, gmp, cmake, python}:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "libpoly";
+  version = "0.1.7";
+
+  src = fetchFromGitHub {
+    owner = "SRI-CSL";
+    repo = "libpoly";
+    rev = "v${version}";
+    sha256 = "0i5ar4lhs88glk0rvkmag656ii434i6i1q5dspx6d0kyg78fii64";
+  };
+
+  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/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix b/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix
new file mode 100644
index 000000000000..4abfdf9162c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/potassco/clingo.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "clingo";
+  version = "5.3.0";
+
+  src = fetchzip {
+    url = "https://github.com/potassco/clingo/archive/v${version}.tar.gz";
+    sha256 = "01czx26p8gv81ahrh650x208hjhd8bx1kb688fmk1m4pw4yg5bfv";
+  };
+
+  buildInputs = [];
+  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/nixpkgs/pkgs/applications/science/logic/potassco/clingo.upstream b/nixpkgs/pkgs/applications/science/logic/potassco/clingo.upstream
new file mode 100644
index 000000000000..062577d1451b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix b/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix
new file mode 100644
index 000000000000..1f6620a2872d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, pkgconfig, ncurses, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+  name = "prooftree-${version}";
+  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/nixpkgs/pkgs/applications/science/logic/prover9/default.nix b/nixpkgs/pkgs/applications/science/logic/prover9/default.nix
new file mode 100644
index 000000000000..f96532b7038b
--- /dev/null
+++ b/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 = http://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/nixpkgs/pkgs/applications/science/logic/proverif/default.nix b/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
new file mode 100644
index 000000000000..c70ee610199f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+  name = "proverif-${version}";
+  version = "2.00";
+
+  src = fetchurl {
+    url    = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
+    sha256 = "0vjphj85ch9q39vc7sd6n4vxy5bplp017vlshk989yhfwb00r37y";
+  };
+
+  buildInputs = with ocamlPackages; [ ocaml findlib lablgtk ];
+
+  buildPhase = "./build";
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./proverif      $out/bin
+    cp ./proveriftotex $out/bin
+  '';
+
+  meta = {
+    description = "Cryptographic protocol verifier in the Dolev-Yao model";
+    homepage    = "http://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/nixpkgs/pkgs/applications/science/logic/redprl/default.nix b/nixpkgs/pkgs/applications/science/logic/redprl/default.nix
new file mode 100644
index 000000000000..9da2647d1138
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/sad/default.nix b/nixpkgs/pkgs/applications/science/logic/sad/default.nix
new file mode 100644
index 000000000000..426f1928938c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/sad/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, ghc, 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 = [ ghc spass ];
+  patches = [
+    ./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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/sad/monoid.patch b/nixpkgs/pkgs/applications/science/logic/sad/monoid.patch
new file mode 100644
index 000000000000..da9c21bcae91
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/logic/sad/patch b/nixpkgs/pkgs/applications/science/logic/sad/patch
new file mode 100644
index 000000000000..a5b1d6177083
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/sad/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/nixpkgs/pkgs/applications/science/logic/sapic/default.nix b/nixpkgs/pkgs/applications/science/logic/sapic/default.nix
new file mode 100644
index 000000000000..27efe865a9d9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/sapic/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, unzip, ocaml }:
+
+stdenv.mkDerivation rec {
+  name = "sapic-${version}";
+  version = "0.9";
+
+  src = fetchurl {
+    url    = "http://sapic.gforge.inria.fr/${name}.zip";
+    sha256 = "1ckl090lpyfh90mkjhnpcys5grs3nrl9wlbn9nfkxxnaivn2yx9y";
+  };
+
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ ocaml ];
+  patches = [ ./native.patch ]; # create a native binary, not a bytecode one
+
+  buildPhase = "make depend && make";
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./sapic $out/bin
+  '';
+
+  meta = {
+    description = "Stateful applied Pi Calculus for protocol verification";
+    homepage    = http://sapic.gforge.inria.fr/;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/sapic/native.patch b/nixpkgs/pkgs/applications/science/logic/sapic/native.patch
new file mode 100644
index 000000000000..6e0b98113df2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/sapic/native.patch
@@ -0,0 +1,38 @@
+diff --git a/Makefile b/Makefile
+index a1de94d..f9e2eb8 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,8 +1,8 @@
+ TARGET = sapic
+-OBJS=lexer.cmo apip.cmo  firsttranslation.cmo main.cmo #secondtranslation.cmo thirdtranslation.cmo main.cmo
++OBJS=lexer.cmx apip.cmx firsttranslation.cmx main.cmx
+ 
+ sapic: $(OBJS)
+-	ocamlc -o $@ $(OBJS)
++	ocamlopt.opt -o $@ $(OBJS)
+ 
+ depend:
+ 	ocamldep *.ml *.mli > .depend
+@@ -13,17 +13,17 @@ clean:
+ 	rm -rf *.cmi *.cmo $(TARGET)
+ 	rm -rf apip.ml apip.mli lexer.ml lexer.mli
+ 
+-.SUFFIXES: .ml .mli .mll .mly .cmo .cmi
++.SUFFIXES: .ml .mli .mll .mly .cmo .cmi .cmx
+ 
+-.ml.cmo:
+-	ocamlc -c $<
++.ml.cmx:
++	ocamlopt.opt -c $<
+ .mli.cmi:
+-	ocamlc -c $<
++	ocamlopt.opt -c $<
+ .mll.ml:
+ 	ocamllex $<
+ .mly.ml:
+ 	ocamlyacc $<
+ .ml.mli:
+-	ocamlc -i $< > $@
++	ocamlopt.opt -i $< > $@
+ 
+ -include .depend
diff --git a/nixpkgs/pkgs/applications/science/logic/satallax/default.nix b/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
new file mode 100644
index 000000000000..b9dd90f601f5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
@@ -0,0 +1,66 @@
+{stdenv, fetchurl, ocaml, zlib, which, eprover, makeWrapper, coq}:
+stdenv.mkDerivation rec {
+  name = "satallax-${version}";
+  version = "2.7";
+
+  buildInputs = [ocaml zlib which eprover makeWrapper coq];
+  src = fetchurl {
+    url = "https://www.ps.uni-saarland.de/~cebrown/satallax/downloads/${name}.tar.gz";
+    sha256 = "1kvxn8mc35igk4vigi5cp7w3wpxk2z3bgwllfm4n3h2jfs0vkpib";
+  };
+
+  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/nixpkgs/pkgs/applications/science/logic/saw-tools/default.nix b/nixpkgs/pkgs/applications/science/logic/saw-tools/default.nix
new file mode 100644
index 000000000000..32ebdad51d94
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/saw-tools/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, gmp4, ncurses, zlib, clang_35 }:
+
+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 rec {
+  name    = "saw-tools-${version}";
+  version = "0.1.1-20150731";
+
+  src = saw-bin;
+
+  installPhase = ''
+    mkdir -p $out/lib $out/share
+
+    mv bin $out/bin
+    mv doc $out/share
+
+    # Hack around lack of libtinfo in NixOS
+    ln -s ${ncurses.out}/lib/libncursesw.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_35}/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/nixpkgs/pkgs/applications/science/logic/spass/default.nix b/nixpkgs/pkgs/applications/science/logic/spass/default.nix
new file mode 100644
index 000000000000..2bb2b911d491
--- /dev/null
+++ b/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 rec {
+  name = "spass-${version}";
+  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/nixpkgs/pkgs/applications/science/logic/statverif/default.nix b/nixpkgs/pkgs/applications/science/logic/statverif/default.nix
new file mode 100644
index 000000000000..9e51849a93b9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/statverif/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, ocaml }:
+
+stdenv.mkDerivation rec {
+  name = "statverif-${version}";
+  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    = "http://markryan.eu/research/statverif/";
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/stp/default.nix b/nixpkgs/pkgs/applications/science/logic/stp/default.nix
new file mode 100644
index 000000000000..081dc788163b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/stp/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, cmake, boost, bison, flex, fetchFromGitHub, perl, python3, python3Packages, zlib, minisatUnstable, cryptominisat }:
+
+stdenv.mkDerivation rec {
+  version = "2.2.0";
+  name = "stp-${version}";
+
+  src = fetchFromGitHub {
+    owner = "stp";
+    repo = "stp";
+    rev    = "stp-${version}";
+    sha256 = "1jh23wjm62nnqfx447g2y53bbangq04hjrvqc35v9xxpcjgj3i49";
+  };
+
+  buildInputs = [ boost zlib minisatUnstable 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"
+    )
+  '';
+
+  # `make -f lib/Interface/CMakeFiles/cppinterface.dir/build.make lib/Interface/CMakeFiles/cppinterface.dir/cpp_interface.cpp.o`:
+  # include/stp/AST/UsefulDefs.h:41:29: fatal error: stp/AST/ASTKind.h: No such file or directory
+  enableParallelBuilding = false;
+
+  meta = with stdenv.lib; {
+    description = "Simple Theorem Prover";
+    maintainers = with maintainers; [ ];
+    platforms = platforms.linux;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix b/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
new file mode 100644
index 000000000000..e21c274370c8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, yosys, python3 }:
+
+stdenv.mkDerivation rec {
+  name = "symbiyosys-${version}";
+  version = "2018.09.12";
+
+  src = fetchFromGitHub {
+    owner  = "yosyshq";
+    repo   = "symbiyosys";
+    rev    = "e90bcb588e97118af0cdba23fae562fb0efbf294";
+    sha256 = "16nlimpdc3g6lghwqpyirgrr1d9mgk4wg3c06fvglzaicvjixnfr";
+  };
+
+  buildInputs = [ python3 yosys ];
+
+  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
+
+    # Fix up shebang and Yosys imports
+    patchShebangs $out/bin/sby
+    substituteInPlace $out/bin/sby \
+      --replace "##yosys-sys-path##" \
+                "sys.path += [p + \"/share/yosys/python3/\" for p in [\"$out\", \"${yosys}\"]]"
+  '';
+  meta = {
+    description = "Tooling for Yosys-based verification flows";
+    homepage    = https://symbiyosys.readthedocs.io/;
+    license     = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+    platforms   = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix
new file mode 100644
index 000000000000..9056eab71ea3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/default.nix
@@ -0,0 +1,102 @@
+{ haskellPackages, mkDerivation, fetchFromGitHub, lib
+# the following are non-haskell dependencies
+, makeWrapper, which, maude, graphviz, sapic
+}:
+
+let
+  version = "1.4.0";
+  src = fetchFromGitHub {
+    owner  = "tamarin-prover";
+    repo   = "tamarin-prover";
+    rev    = "7ced07a69f8e93178f9a95797479277a736ae572";
+    sha256 = "02pyw22h90228g6qybjpdvpcm9d5lh96f5qwmy2hv2bylz05z3nn";
+  };
+
+  # 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;
+    patches = [ ./ghc-8.4-support-utils.patch ];
+    libraryHaskellDepends = with haskellPackages; [
+      base base64-bytestring binary blaze-builder bytestring containers
+      deepseq dlist fclabels mtl pretty safe SHA syb time transformers
+    ];
+  });
+
+  tamarin-prover-term = mkDerivation (common "tamarin-prover-term" (src + "/lib/term") // {
+    postPatch = replaceSymlinks;
+    patches = [ ./ghc-8.4-support-term.patch ];
+    libraryHaskellDepends = (with haskellPackages; [
+      attoparsec base binary bytestring containers deepseq dlist HUnit
+      mtl process safe
+    ]) ++ [ tamarin-prover-utils ];
+  });
+
+  tamarin-prover-theory = mkDerivation (common "tamarin-prover-theory" (src + "/lib/theory") // {
+    postPatch = replaceSymlinks;
+    patches = [ ./ghc-8.4-support-theory.patch ];
+    doHaddock = false; # broken
+    libraryHaskellDepends = (with haskellPackages; [
+      aeson aeson-pretty base binary bytestring containers deepseq dlist
+      fclabels mtl parallel parsec process safe text transformers uniplate
+    ]) ++ [ tamarin-prover-utils tamarin-prover-term ];
+  });
+
+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";
+
+  # Fix problem with MonadBaseControl not being found
+  patchPhase = ''
+    sed -ie 's,\(import *\)Control\.Monad$,&\
+    \1Control.Monad.Trans.Control,' src/Web/Handler.hs
+
+    sed -ie 's~\( *, \)mtl~&\
+    \1monad-control~' tamarin-prover.cabal
+  '';
+
+  # wrap the prover to be sure it can find maude, sapic, etc
+  executableToolDepends = [ makeWrapper which maude graphviz sapic ];
+  postInstall = ''
+    wrapProgram $out/bin/tamarin-prover \
+      --prefix PATH : ${lib.makeBinPath [ which maude graphviz sapic ]}
+    # 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/{spthy,sapic}.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; [
+    base binary binary-orphans blaze-builder blaze-html bytestring
+    cmdargs conduit containers monad-control deepseq directory fclabels file-embed
+    filepath gitrev http-types HUnit lifted-base mtl monad-unlift parsec process
+    resourcet safe shakespeare tamarin-prover-term
+    template-haskell text threads time wai warp yesod-core yesod-static
+  ]) ++ [ tamarin-prover-utils
+          tamarin-prover-term
+          tamarin-prover-theory
+        ];
+})
diff --git a/nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-term.patch b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-term.patch
new file mode 100644
index 000000000000..f93919faf54e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-term.patch
@@ -0,0 +1,109 @@
+From a08f6e400772899b9b0fc16befc50391cd70696b Mon Sep 17 00:00:00 2001
+From: Felix Yan <felixonmars@archlinux.org>
+Date: Fri, 18 May 2018 16:24:41 +0800
+Subject: [PATCH] GHC 8.4 support
+
+---
+ src/Term/Maude/Signature.hs          |  8 ++--
+ src/Term/Rewriting/Definitions.hs    | 23 ++++++----
+ src/Term/Unification.hs              |  4 +-
+ 11 files changed, 79 insertions(+), 48 deletions(-)
+
+diff --git a/src/Term/Maude/Signature.hs b/src/Term/Maude/Signature.hs
+index 98c25d9f..1a4ce82f 100644
+--- a/src/Term/Maude/Signature.hs
++++ b/src/Term/Maude/Signature.hs
+@@ -104,9 +104,9 @@ maudeSig msig@(MaudeSig {enableDH,enableBP,enableMSet,enableXor,enableDiff=_,stF
+           `S.union` dhReducibleFunSig `S.union` bpReducibleFunSig `S.union` xorReducibleFunSig
+ 
+ -- | A monoid instance to combine maude signatures.
+-instance Monoid MaudeSig where
+-    (MaudeSig dh1 bp1 mset1 xor1 diff1 stFunSyms1 stRules1 _ _) `mappend`
+-      (MaudeSig dh2 bp2 mset2 xor2 diff2 stFunSyms2 stRules2 _ _) =
++instance Semigroup MaudeSig where
++    MaudeSig dh1 bp1 mset1 xor1 diff1 stFunSyms1 stRules1 _ _ <>
++      MaudeSig dh2 bp2 mset2 xor2 diff2 stFunSyms2 stRules2 _ _ =
+           maudeSig (mempty {enableDH=dh1||dh2
+                            ,enableBP=bp1||bp2
+                            ,enableMSet=mset1||mset2
+@@ -114,6 +114,8 @@ instance Monoid MaudeSig where
+                            ,enableDiff=diff1||diff2
+                            ,stFunSyms=S.union stFunSyms1 stFunSyms2
+                            ,stRules=S.union stRules1 stRules2})
++
++instance Monoid MaudeSig where
+     mempty = MaudeSig False False False False False S.empty S.empty S.empty S.empty
+ 
+ -- | Non-AC function symbols.
+diff --git a/src/Term/Rewriting/Definitions.hs b/src/Term/Rewriting/Definitions.hs
+index bd942b6a..18562e4e 100644
+--- a/src/Term/Rewriting/Definitions.hs
++++ b/src/Term/Rewriting/Definitions.hs
+@@ -44,10 +44,12 @@ evalEqual (Equal l r) = l == r
+ instance Functor Equal where
+     fmap f (Equal lhs rhs) = Equal (f lhs) (f rhs)
+ 
++instance Semigroup a => Semigroup (Equal a) where
++    (Equal l1 r1) <> (Equal l2 r2) =
++        Equal (l1 <> l2) (r1 <> r2)
++
+ instance Monoid a => Monoid (Equal a) where
+     mempty                                = Equal mempty mempty
+-    (Equal l1 r1) `mappend` (Equal l2 r2) =
+-        Equal (l1 `mappend` l2) (r1 `mappend` r2)
+ 
+ instance Foldable Equal where
+     foldMap f (Equal l r) = f l `mappend` f r
+@@ -104,14 +106,15 @@ instance Functor Match where
+     fmap _ NoMatch             = NoMatch
+     fmap f (DelayedMatches ms) = DelayedMatches (fmap (f *** f) ms)
+ 
++instance Semigroup (Match a) where
++    NoMatch            <> _                  = NoMatch
++    _                  <> NoMatch            = NoMatch
++    DelayedMatches ms1 <> DelayedMatches ms2 =
++        DelayedMatches (ms1 <> ms2)
++
+ instance Monoid (Match a) where
+     mempty = DelayedMatches []
+ 
+-    NoMatch            `mappend` _                  = NoMatch
+-    _                  `mappend` NoMatch            = NoMatch
+-    DelayedMatches ms1 `mappend` DelayedMatches ms2 =
+-        DelayedMatches (ms1 `mappend` ms2)
+-
+ 
+ instance Foldable Match where
+     foldMap _ NoMatch             = mempty
+@@ -136,10 +139,12 @@ data RRule a = RRule a a
+ instance Functor RRule where
+     fmap f (RRule lhs rhs) = RRule (f lhs) (f rhs)
+ 
++instance Monoid a => Semigroup (RRule a) where
++    (RRule l1 r1) <> (RRule l2 r2) =
++        RRule (l1 <> l2) (r1 <> r2)
++
+ instance Monoid a => Monoid (RRule a) where
+     mempty                                = RRule mempty mempty
+-    (RRule l1 r1) `mappend` (RRule l2 r2) =
+-        RRule (l1 `mappend` l2) (r1 `mappend` r2)
+ 
+ instance Foldable RRule where
+     foldMap f (RRule l r) = f l `mappend` f r
+diff --git a/src/Term/Unification.hs b/src/Term/Unification.hs
+index e1de0163..7ce6bb41 100644
+--- a/src/Term/Unification.hs
++++ b/src/Term/Unification.hs
+@@ -265,9 +265,11 @@ unifyRaw l0 r0 = do
+ 
+ data MatchFailure = NoMatcher | ACProblem
+ 
++instance Semigroup MatchFailure where
++  _ <> _ = NoMatcher
++
+ instance Monoid MatchFailure where
+   mempty = NoMatcher
+-  mappend _ _ = NoMatcher
+ 
+ -- | Ensure that the computed substitution @sigma@ satisfies
+ -- @t ==_AC apply sigma p@ after the delayed equations are solved.
diff --git a/nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-theory.patch b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-theory.patch
new file mode 100644
index 000000000000..f7393e37f1b2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-theory.patch
@@ -0,0 +1,130 @@
+From a08f6e400772899b9b0fc16befc50391cd70696b Mon Sep 17 00:00:00 2001
+From: Felix Yan <felixonmars@archlinux.org>
+Date: Fri, 18 May 2018 16:24:41 +0800
+Subject: [PATCH] GHC 8.4 support
+
+---
+ src/Theory/Proof.hs                | 43 +++++++++++--------
+ 11 files changed, 79 insertions(+), 48 deletions(-)
+
+diff --git a/src/Theory/Constraint/Solver/Reduction.hs b/src/Theory/Constraint/Solver/Reduction.hs
+index ddbc965a..6daadd0d 100644
+--- a/src/Theory/Constraint/Solver/Reduction.hs
++++ b/src/Theory/Constraint/Solver/Reduction.hs
+@@ -139,13 +139,14 @@ execReduction m ctxt se fs =
+ data ChangeIndicator = Unchanged | Changed
+        deriving( Eq, Ord, Show )
+ 
++instance Semigroup ChangeIndicator where
++    Changed   <> _         = Changed
++    _         <> Changed   = Changed
++    Unchanged <> Unchanged = Unchanged
++
+ instance Monoid ChangeIndicator where
+     mempty = Unchanged
+ 
+-    Changed   `mappend` _         = Changed
+-    _         `mappend` Changed   = Changed
+-    Unchanged `mappend` Unchanged = Unchanged
+-
+ -- | Return 'True' iff there was a change.
+ wasChanged :: ChangeIndicator -> Bool
+ wasChanged Changed   = True
+diff --git a/src/Theory/Constraint/System/Guarded.hs b/src/Theory/Constraint/System/Guarded.hs
+index f98fc7c2..2aac8ce2 100644
+--- a/src/Theory/Constraint/System/Guarded.hs
++++ b/src/Theory/Constraint/System/Guarded.hs
+@@ -435,7 +435,7 @@ gall ss atos gf               = GGuarded All ss atos gf
+ 
+ -- | Local newtype to avoid orphan instance.
+ newtype ErrorDoc d = ErrorDoc { unErrorDoc :: d }
+-    deriving( Monoid, NFData, Document, HighlightDocument )
++    deriving( Monoid, Semigroup, NFData, Document, HighlightDocument )
+ 
+ -- | @formulaToGuarded fm@ returns a guarded formula @gf@ that is
+ -- equivalent to @fm@ under the assumption that this is possible.
+diff --git a/src/Theory/Proof.hs b/src/Theory/Proof.hs
+index 74fb77b1..7971b9fc 100644
+--- a/src/Theory/Proof.hs
++++ b/src/Theory/Proof.hs
+@@ -388,17 +388,19 @@ data ProofStatus =
+        | TraceFound         -- ^ There is an annotated solved step
+     deriving ( Show, Generic, NFData, Binary )
+ 
++instance Semigroup ProofStatus where
++    TraceFound <> _                        = TraceFound
++    _ <> TraceFound                        = TraceFound
++    IncompleteProof <> _                   = IncompleteProof
++    _ <> IncompleteProof                   = IncompleteProof
++    _ <> CompleteProof                     = CompleteProof
++    CompleteProof <> _                     = CompleteProof
++    UndeterminedProof <> UndeterminedProof = UndeterminedProof
++
++
+ instance Monoid ProofStatus where
+     mempty = CompleteProof
+ 
+-    mappend TraceFound _                        = TraceFound
+-    mappend _ TraceFound                        = TraceFound
+-    mappend IncompleteProof _                   = IncompleteProof
+-    mappend _ IncompleteProof                   = IncompleteProof
+-    mappend _ CompleteProof                     = CompleteProof
+-    mappend CompleteProof _                     = CompleteProof
+-    mappend UndeterminedProof UndeterminedProof = UndeterminedProof
+-
+ -- | The status of a 'ProofStep'.
+ proofStepStatus :: ProofStep (Maybe a) -> ProofStatus
+ proofStepStatus (ProofStep _         Nothing ) = UndeterminedProof
+@@ -560,10 +562,12 @@ newtype Prover =  Prover
+               -> Maybe IncrementalProof    -- resulting proof
+           }
+ 
++instance Semigroup Prover where
++    p1 <> p2 = Prover $ \ctxt d se ->
++        runProver p1 ctxt d se >=> runProver p2 ctxt d se
++
+ instance Monoid Prover where
+     mempty          = Prover $ \_  _ _ -> Just
+-    p1 `mappend` p2 = Prover $ \ctxt d se ->
+-        runProver p1 ctxt d se >=> runProver p2 ctxt d se
+ 
+ -- | Provers whose sequencing is handled via the 'Monoid' instance.
+ --
+@@ -579,10 +583,12 @@ newtype DiffProver =  DiffProver
+               -> Maybe IncrementalDiffProof    -- resulting proof
+           }
+ 
++instance Semigroup DiffProver where
++    p1 <> p2 = DiffProver $ \ctxt d se ->
++        runDiffProver p1 ctxt d se >=> runDiffProver p2 ctxt d se
++
+ instance Monoid DiffProver where
+     mempty          = DiffProver $ \_  _ _ -> Just
+-    p1 `mappend` p2 = DiffProver $ \ctxt d se ->
+-        runDiffProver p1 ctxt d se >=> runDiffProver p2 ctxt d se
+ 
+ -- | Map the proof generated by the prover.
+ mapProverProof :: (IncrementalProof -> IncrementalProof) -> Prover -> Prover
+@@ -784,15 +790,16 @@ runAutoDiffProver (AutoProver heuristic bound cut) =
+ -- | The result of one pass of iterative deepening.
+ data IterDeepRes = NoSolution | MaybeNoSolution | Solution ProofPath
+ 
++instance Semigroup IterDeepRes where
++    x@(Solution _)   <> _                = x
++    _                <> y@(Solution _)   = y
++    MaybeNoSolution  <> _                = MaybeNoSolution
++    _                <> MaybeNoSolution  = MaybeNoSolution
++    NoSolution       <> NoSolution       = NoSolution
++
+ instance Monoid IterDeepRes where
+     mempty = NoSolution
+ 
+-    x@(Solution _)   `mappend` _                = x
+-    _                `mappend` y@(Solution _)   = y
+-    MaybeNoSolution  `mappend` _                = MaybeNoSolution
+-    _                `mappend` MaybeNoSolution  = MaybeNoSolution
+-    NoSolution       `mappend` NoSolution       = NoSolution
+-
+ -- | @cutOnSolvedDFS prf@ removes all other cases if an attack is found. The
+ -- attack search is performed using a parallel DFS traversal with iterative
+ -- deepening.
diff --git a/nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-utils.patch b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-utils.patch
new file mode 100644
index 000000000000..d6cd6d73f99e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/tamarin-prover/ghc-8.4-support-utils.patch
@@ -0,0 +1,140 @@
+From a08f6e400772899b9b0fc16befc50391cd70696b Mon Sep 17 00:00:00 2001
+From: Felix Yan <felixonmars@archlinux.org>
+Date: Fri, 18 May 2018 16:24:41 +0800
+Subject: [PATCH] GHC 8.4 support
+
+---
+ src/Extension/Data/Bounded.hs       | 10 ++++-
+ src/Extension/Data/Monoid.hs        | 14 +++---
+ src/Logic/Connectives.hs            |  4 +-
+ src/Text/PrettyPrint/Class.hs       |  4 +-
+ src/Text/PrettyPrint/Html.hs        |  6 ++-
+ 11 files changed, 79 insertions(+), 48 deletions(-)
+
+
+diff --git a/src/Extension/Data/Bounded.hs b/src/Extension/Data/Bounded.hs
+index 5f166006..f416a44c 100644
+--- a/src/Extension/Data/Bounded.hs
++++ b/src/Extension/Data/Bounded.hs
+@@ -11,19 +11,25 @@ module Extension.Data.Bounded (
+   ) where
+ 
+ -- import Data.Monoid
++import Data.Semigroup
+ 
+ -- | A newtype wrapper for a monoid of the maximum of a bounded type.
+ newtype BoundedMax a = BoundedMax {getBoundedMax :: a}
+     deriving( Eq, Ord, Show )
+ 
++instance (Ord a, Bounded a) => Semigroup (BoundedMax a) where
++    BoundedMax x <> BoundedMax y = BoundedMax (max x y)
++
+ instance (Ord a, Bounded a) => Monoid (BoundedMax a) where
+     mempty                                  = BoundedMax minBound
+-    (BoundedMax x) `mappend` (BoundedMax y) = BoundedMax (max x y)
++    mappend = (<>)
+ 
+ -- | A newtype wrapper for a monoid of the minimum of a bounded type.
+ newtype BoundedMin a = BoundedMin {getBoundedMin :: a}
+     deriving( Eq, Ord, Show )
+ 
++instance (Ord a, Bounded a) => Semigroup (BoundedMin a) where
++    BoundedMin x <> BoundedMin y = BoundedMin (min x y)
++
+ instance (Ord a, Bounded a) => Monoid (BoundedMin a) where
+     mempty                                  = BoundedMin maxBound
+-    (BoundedMin x) `mappend` (BoundedMin y) = BoundedMin (min x y)
+\ No newline at end of file
+diff --git a/src/Extension/Data/Monoid.hs b/src/Extension/Data/Monoid.hs
+index 83655c34..9ce2f91b 100644
+--- a/src/Extension/Data/Monoid.hs
++++ b/src/Extension/Data/Monoid.hs
+@@ -18,6 +18,7 @@ module Extension.Data.Monoid (
+   ) where
+ 
+ import Data.Monoid
++import Data.Semigroup
+ 
+ #if __GLASGOW_HASKELL__ < 704
+ 
+@@ -38,10 +39,13 @@ newtype MinMax a = MinMax { getMinMax :: Maybe (a, a) }
+ minMaxSingleton :: a -> MinMax a
+ minMaxSingleton x = MinMax (Just (x, x))
+ 
++instance Ord a => Semigroup (MinMax a) where
++    MinMax Nothing             <> y                          = y
++    x                          <> MinMax Nothing             = x
++    MinMax (Just (xMin, xMax)) <> MinMax (Just (yMin, yMax)) =
++       MinMax (Just (min xMin yMin, max xMax yMax))
++
++
+ instance Ord a => Monoid (MinMax a) where
+     mempty = MinMax Nothing
+-
+-    MinMax Nothing             `mappend` y                          = y
+-    x                          `mappend` MinMax Nothing             = x
+-    MinMax (Just (xMin, xMax)) `mappend` MinMax (Just (yMin, yMax)) =
+-       MinMax (Just (min xMin yMin, max xMax yMax))
++    mappend = (<>)
+diff --git a/src/Logic/Connectives.hs b/src/Logic/Connectives.hs
+index 2e441172..7206cc2c 100644
+--- a/src/Logic/Connectives.hs
++++ b/src/Logic/Connectives.hs
+@@ -23,12 +23,12 @@ import Control.DeepSeq
+ 
+ -- | A conjunction of atoms of type a.
+ newtype Conj a = Conj { getConj :: [a] }
+-  deriving (Monoid, Foldable, Traversable, Eq, Ord, Show, Binary,
++  deriving (Monoid, Semigroup, Foldable, Traversable, Eq, Ord, Show, Binary,
+             Functor, Applicative, Monad, Alternative, MonadPlus, Typeable, Data, NFData)
+ 
+ -- | A disjunction of atoms of type a.
+ newtype Disj a = Disj { getDisj :: [a] }
+-  deriving (Monoid, Foldable, Traversable, Eq, Ord, Show, Binary,
++  deriving (Monoid, Semigroup, Foldable, Traversable, Eq, Ord, Show, Binary,
+             Functor, Applicative, Monad, Alternative, MonadPlus, Typeable, Data, NFData)
+ 
+ instance MonadDisj Disj where
+diff --git a/src/Text/PrettyPrint/Class.hs b/src/Text/PrettyPrint/Class.hs
+index f5eb42fe..13be6515 100644
+--- a/src/Text/PrettyPrint/Class.hs
++++ b/src/Text/PrettyPrint/Class.hs
+@@ -187,9 +187,11 @@ instance Document Doc where
+   nest i (Doc d) = Doc $ P.nest i d
+   caseEmptyDoc yes no (Doc d) = if P.isEmpty d then yes else no
+ 
++instance Semigroup Doc where
++    Doc d1 <> Doc d2 = Doc $ (P.<>) d1 d2
++
+ instance Monoid Doc where
+     mempty = Doc $ P.empty
+-    mappend (Doc d1) (Doc d2) = Doc $ (P.<>) d1 d2
+   
+ ------------------------------------------------------------------------------
+ -- Additional combinators
+diff --git a/src/Text/PrettyPrint/Html.hs b/src/Text/PrettyPrint/Html.hs
+index 3de5e307..10103eb7 100644
+--- a/src/Text/PrettyPrint/Html.hs
++++ b/src/Text/PrettyPrint/Html.hs
+@@ -90,7 +90,7 @@ attribute (key,value) = " " ++ key ++ "=\"" ++ escapeHtmlEntities value ++ "\""
+ 
+ -- | A 'Document' transformer that adds proper HTML escaping.
+ newtype HtmlDoc d = HtmlDoc { getHtmlDoc :: d }
+-    deriving( Monoid )
++    deriving( Monoid, Semigroup )
+ 
+ -- | Wrap a document such that HTML markup can be added without disturbing the
+ -- layout.
+@@ -182,9 +182,11 @@ getNoHtmlDoc = runIdentity . unNoHtmlDoc
+ instance NFData d => NFData (NoHtmlDoc d) where
+     rnf = rnf . getNoHtmlDoc
+ 
++instance Semigroup d => Semigroup (NoHtmlDoc d) where
++  (<>) = liftA2 (<>)
++
+ instance Monoid d => Monoid (NoHtmlDoc d) where
+   mempty = pure mempty
+-  mappend = liftA2 mappend
+ 
+ instance Document d => Document (NoHtmlDoc d) where
+   char = pure . char
diff --git a/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix b/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
new file mode 100644
index 000000000000..b1eb171b20b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/tlaplus/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, jdk, jre, ant
+}:
+
+stdenv.mkDerivation rec {
+  name = "tlaplus-${version}";
+  version = "1.5.6";
+
+  src = fetchFromGitHub {
+    owner  = "tlaplus";
+    repo   = "tlaplus";
+    rev    = "refs/tags/v${version}";
+    sha256 = "0966mvgxamknj4hsp980qbxwda886w1dv309kn7isxn0420lfv4f";
+  };
+
+  buildInputs = [ makeWrapper jdk ant ];
+
+  buildPhase = "ant -f tlatools/customBuild.xml compile dist";
+  installPhase = ''
+    mkdir -p $out/share/java $out/bin
+    cp 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/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix b/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix
new file mode 100644
index 000000000000..7d35f5f91df3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix
@@ -0,0 +1,54 @@
+{ fetchurl
+, stdenv
+, ocaml, isabelle, cvc3, perl, wget, which
+}:
+
+stdenv.mkDerivation rec {
+  name = "tlaps-${version}";
+  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 = [ stdenv.lib.maintainers.badi ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix b/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
new file mode 100644
index 000000000000..f1116a27c0be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -0,0 +1,77 @@
+{ lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
+, jre, swt, gtk, libXtst, glib
+}:
+
+let
+  version = "1.5.7";
+  arch = "x86_64";
+
+  desktopItem = makeDesktopItem rec {
+    name = "TLA+Toolbox";
+    exec = "tla-toolbox";
+    icon = "tla-toolbox";
+    comment = "IDE for TLA+";
+    desktopName = name;
+    genericName = comment;
+    categories = "Application;Development";
+    extraEntries = ''
+      StartupWMClass=TLA+ Toolbox
+    '';
+  };
+
+
+in stdenv.mkDerivation {
+  name = "tla-toolbox-${version}";
+  src = fetchzip {
+    url = "https://tla.msr-inria.inria.fr/tlatoolbox/products/TLAToolbox-${version}-linux.gtk.${arch}.zip";
+    sha256 = "0lg9sizpw5mkcnwwvmgqigkizjyz2lf1wrg48h7mg7wcv3macy4q";
+  };
+
+  buildInputs = [ makeWrapper  ];
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp -r "$src" "$out/toolbox"
+    chmod +w "$out/toolbox" "$out/toolbox/toolbox"
+
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      "$out/toolbox/toolbox"
+
+    makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
+      --run "set -x; cd $out/toolbox" \
+      --add-flags "-data ~/.tla-toolbox" \
+      --prefix PATH : "${jre}/bin" \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ swt gtk libXtst glib ]}"
+
+    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 = [ stdenv.lib.maintainers.badi ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/tptp/default.nix b/nixpkgs/pkgs/applications/science/logic/tptp/default.nix
new file mode 100644
index 000000000000..24971b500d3f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/tptp/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, yap, tcsh, perl, patchelf }:
+
+stdenv.mkDerivation rec {
+  name = "TPTP-${version}";
+  version = "7.2.0";
+
+  src = fetchurl {
+    urls = [
+      "http://www.cs.miami.edu/~tptp/TPTP/Distribution/TPTP-v${version}.tgz"
+      "http://www.cs.miami.edu/~tptp/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/nixpkgs/pkgs/applications/science/logic/twelf/default.nix b/nixpkgs/pkgs/applications/science/logic/twelf/default.nix
new file mode 100644
index 000000000000..74f8875fcebe
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/twelf/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, pkgconfig, smlnj, rsync }:
+
+stdenv.mkDerivation rec {
+  name = "twelf-${version}";
+  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/nixpkgs/pkgs/applications/science/logic/vampire/default.nix b/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
new file mode 100644
index 000000000000..8ad70531d543
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchFromGitHub, fetchpatch, z3, zlib, git }:
+
+stdenv.mkDerivation rec {
+  version = "4.2.2";
+  name = "vampire-${version}";
+
+  src = fetchFromGitHub {
+    owner = "vprover";
+    repo = "vampire";
+    rev = version;
+    sha256 = "0d1klprlgqrcn8r5ywgvsahr4qz96ayl67ry5jks946v0k94m1k1";
+    fetchSubmodules = true;
+    leaveDotGit = true;
+  };
+
+  nativeBuildInputs = [ git ];
+  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/nixpkgs/pkgs/applications/science/logic/verifast/default.nix b/nixpkgs/pkgs/applications/science/logic/verifast/default.nix
new file mode 100644
index 000000000000..22eb5d07f1c1
--- /dev/null
+++ b/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 {
+  name    = "verifast-${version}";
+  version = "18.02";
+
+  src = fetchurl {
+    url    = "https://github.com/verifast/verifast/releases/download/${version}/${name}-linux.tar.gz";
+    sha256 = "19050be23b6d5e471690421fee59f84c58b29e38379fb86b8f3713a206a4423e";
+  };
+
+  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.msrla;
+    platforms   = [ "x86_64-linux" ];
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/verit/default.nix b/nixpkgs/pkgs/applications/science/logic/verit/default.nix
new file mode 100644
index 000000000000..ca3673d7bf97
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/verit/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, autoreconfHook, gmp, flex, bison }:
+
+stdenv.mkDerivation rec {
+  name = "veriT-${version}";
+  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/nixpkgs/pkgs/applications/science/logic/why3/default.nix b/nixpkgs/pkgs/applications/science/logic/why3/default.nix
new file mode 100644
index 000000000000..58609e856c3b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/why3/default.nix
@@ -0,0 +1,27 @@
+{ fetchurl, stdenv, ocamlPackages, coq }:
+
+stdenv.mkDerivation rec {
+  name    = "why3-${version}";
+  version = "1.1.0";
+
+  src = fetchurl {
+    url    = https://gforge.inria.fr/frs/download.php/file/37767/why3-1.1.0.tar.gz;
+    sha256 = "199ziq8mv3r24y3dd1n2r8k2gy09p7kdyyhkg9qn1vzfd2fxwzc1";
+  };
+
+  buildInputs = (with ocamlPackages; [
+      ocaml findlib num lablgtk ocamlgraph zarith menhir ]) ++
+    stdenv.lib.optionals (ocamlPackages.ocaml == coq.ocaml ) [
+      coq coq.camlp5
+    ];
+
+  installTargets = [ "install" "install-lib" ];
+
+  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/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix b/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
new file mode 100644
index 000000000000..313fe5a9f1dd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "workcraft-${version}";
+  version = "3.1.9";
+
+  src = fetchurl {
+    url = "https://github.com/workcraft/workcraft/releases/download/v${version}/workcraft-v${version}-linux.tar.gz";
+    sha256 = "0d1mi8jffwr7irp215j9rfpa3nmwxrx6mv13bh7vn0qf6i0aw0xi";
+  };
+
+  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/nixpkgs/pkgs/applications/science/logic/yices/default.nix b/nixpkgs/pkgs/applications/science/logic/yices/default.nix
new file mode 100644
index 000000000000..0ab08db67465
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/yices/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, gmp-static, gperf, autoreconfHook, libpoly }:
+
+stdenv.mkDerivation rec {
+  name    = "yices-${version}";
+  version = "2.6.1";
+
+  src = fetchurl {
+    url = "https://github.com/SRI-CSL/yices2/archive/Yices-${version}.tar.gz";
+    name = "${name}-src.tar.gz";
+    sha256 = "14xvflv14qn8ssm8rklvckp6l1q94vn49qz2snz73j40nwzshaww";
+  };
+
+  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 = builtins.concatStringsSep "." (stdenv.lib.take 2 (stdenv.lib.splitString "." 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 = [ maintainers.thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/z3/default.nix b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
new file mode 100644
index 000000000000..28a7e783ff3f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, python, fixDarwinDylibNames }:
+
+stdenv.mkDerivation rec {
+  name = "z3-${version}";
+  version = "4.8.3";
+
+  src = fetchFromGitHub {
+    owner  = "Z3Prover";
+    repo   = "z3";
+    rev    = name;
+    sha256 = "0p5gdmhd32x6zwmx7j5cgwh4jyfxa9yapym95nlmyfaqzak92qar";
+  };
+
+  buildInputs = [ python fixDarwinDylibNames ];
+  propagatedBuildInputs = [ python.pkgs.setuptools ];
+  enableParallelBuilding = true;
+
+  configurePhase = ''
+    ${python.interpreter} scripts/mk_make.py --prefix=$out --python --pypkgdir=$out/${python.sitePackages}
+    cd build
+  '';
+
+  postInstall = ''
+    mkdir -p $dev $lib $python/lib
+
+    mv $out/lib/python*  $python/lib/
+    mv $out/lib          $lib/lib
+    mv $out/include      $dev/include
+
+    ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
+  '';
+
+  outputs = [ "out" "lib" "dev" "python" ];
+
+  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 = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
new file mode 100644
index 000000000000..802a03bd4c7a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, python2Packages, fetchurl }:
+  python2Packages.buildPythonApplication rec {
+    name = "labelImg-${version}";
+    version = "1.6.0";
+    src = fetchurl {
+      url = "https://github.com/tzutalin/labelImg/archive/v${version}.tar.gz";
+      sha256 = "126kc4r7xm9170kh7snqsfkkc868m5bcnswrv7b4cq9ivlrdwbm4";
+    };
+    propagatedBuildInputs = with python2Packages; [
+      pyqt4
+      lxml
+    ];
+    preBuild = ''
+      make qt4py2
+    '';
+    meta = with stdenv.lib; {
+      description = "LabelImg is 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/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/default.nix
new file mode 100644
index 000000000000..517edd0d7799
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, callPackage
+, lib
+, fetchurl
+, unzip
+, licenseAccepted ? 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 = "3.17";
+  name = "sc2-headless-${version}";
+
+  src = fetchurl {
+    url = "https://blzdistsc2-a.akamaihd.net/Linux/SC2.${version}.zip";
+    sha256 = "1biyxpf7n95hali1pw30h91rhzrj6sbwrx6s52d00mlnwdhmf2v0";
+  };
+
+  unpackCmd = ''
+    unzip -P 'iagreetotheeula' $curSrc
+  '';
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r . "$out"
+    rm -r $out/Libs
+
+    cp -r "${maps.minigames}"/* "$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/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/maps.nix b/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/maps.nix
new file mode 100644
index 000000000000..4300a0a1b385
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/machine-learning/sc2-headless/maps.nix
@@ -0,0 +1,11 @@
+{ fetchzip
+}:
+
+{
+  minigames = fetchzip {
+    url = "https://github.com/deepmind/pysc2/releases/download/v1.2/mini_games.zip";
+    sha256 = "19f873ilcdsf50g2v0s2zzmxil1bqncsk8nq99bzy87h0i7khkla";
+    stripRoot = false;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
new file mode 100644
index 000000000000..8de78092bd84
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, ccache, cmake, ctags, swig
+# data, compression
+, bzip2, curl, hdf5, json_c, lzma, lzo, protobuf, snappy
+# maths
+, openblasCompat, eigen, nlopt, lp_solve, colpack
+# libraries
+, libarchive, libxml2
+# extra support
+, pythonSupport ? true, pythonPackages ? null
+, opencvSupport ? false, opencv ? null
+}:
+
+assert pythonSupport -> pythonPackages != null;
+assert opencvSupport -> opencv != null;
+
+stdenv.mkDerivation rec {
+  pname = "shogun";
+  version = "6.0.0";
+  name = pname + "-" + version;
+
+  src = fetchFromGitHub {
+    owner = pname + "-toolbox";
+    repo = pname;
+    rev = pname + "_" + version;
+    sha256 = "0f2zwzvn5apvwypkfkq371xp7c5bdb4g1fwqfh8c2d57ysjxhmgf";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "Fix-meta-example-parser-bug-in-parallel-builds.patch";
+      url = "https://github.com/shogun-toolbox/shogun/commit/ecd6a8f11ac52748e89d27c7fab7f43c1de39f05.patch";
+      sha256 = "1hrwwrj78sxhwcvgaz7n4kvh5y9snfcc4jf5xpgji5hjymnl311n";
+    })
+    (fetchpatch {
+      url = "https://github.com/awild82/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
+      sha256 = "158hqv4xzw648pmjbwrhxjp7qcppqa7kvriif87gn3zdn711c49s";
+    })
+  ];
+
+  CCACHE_DIR=".ccache";
+
+  buildInputs = with lib; [
+      openblasCompat bzip2 ccache cmake colpack curl ctags eigen hdf5 json_c lp_solve lzma lzo
+      protobuf nlopt snappy swig (libarchive.dev) libxml2
+    ]
+    ++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
+    ++ optional  (opencvSupport) opencv;
+
+  cmakeFlags = with lib; []
+    ++ (optional (pythonSupport) "-DPythonModular=ON")
+    ++ (optional (opencvSupport) "-DOpenCV=ON")
+    ;
+
+  # Previous attempts to fix parallel builds (see patch above) were not entirely successful.
+  # Sporadic build failures still exist. Dislable parallel builds for now.
+  enableParallelBuilding = false;
+
+  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/nixpkgs/pkgs/applications/science/machine-learning/torch/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/torch/default.nix
new file mode 100644
index 000000000000..bdeeaad189a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/machine-learning/torch/default.nix
@@ -0,0 +1,10 @@
+{ callPackage, fetchgit, lua } :
+let
+  src = fetchgit {
+    url = "https://github.com/grwlf/torch-distro";
+    rev = "f972c4253b14b95b53aefe7b24efa496223e73f2";
+    sha256 = "1lhjhivhyypaic33vj1nsghshsajf7vi6gwsclaf3nqdl27d1h1s";
+  };
+
+in
+  callPackage (import ./torch-distro.nix) { inherit lua src; }
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/torch/torch-distro.nix b/nixpkgs/pkgs/applications/science/machine-learning/torch/torch-distro.nix
new file mode 100644
index 000000000000..9c4f24021430
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/machine-learning/torch/torch-distro.nix
@@ -0,0 +1,336 @@
+{ luarocks, lib , stdenv,  readline,  makeWrapper,
+  less, ncurses, cmake, coreutils, fetchgit, libuuid, czmq, openssl,
+  gnuplot, lua, src, libjpeg, libpng
+} :
+
+let
+
+  common_meta = {
+    homepage = http://torch.ch;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ smironov ];
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+  };
+
+  distro_src = src;
+
+  default_luarocks = luarocks;
+
+  pkgs_gnuplot = gnuplot;
+
+  luapkgs = rec {
+
+    luarocks = default_luarocks.override {
+      inherit lua;
+    };
+
+    buildLuaRocks = { rockspec ? "", luadeps ? [] , buildInputs ? []
+                    , preBuild ? "" , postInstall ? ""
+                    , runtimeDeps ? [] ,  ... }@args :
+      let
+
+        luadeps_ =
+          luadeps ++
+          (lib.concatMap (d : if d ? luadeps then d.luadeps else []) luadeps);
+
+        runtimeDeps_ =
+          runtimeDeps ++
+          (lib.concatMap (d : if d ? runtimeDeps then d.runtimeDeps else []) luadeps) ++
+          [ lua coreutils ];
+
+        mkcfg = ''
+          export LUAROCKS_CONFIG=config.lua
+          cat >config.lua <<EOF
+            rocks_trees = {
+                 { name = [[system]], root = [[${luarocks}]] }
+               ${lib.concatImapStrings (i : dep :  ", { name = [[dep${toString i}]], root = [[${dep}]] }") luadeps_}
+            };
+
+            variables = {
+              LUA_BINDIR = "$out/bin";
+              LUA_INCDIR = "$out/include";
+              LUA_LIBDIR = "$out/lib/lua/${lua.luaversion}";
+            };
+          EOF
+        '';
+
+      in
+      stdenv.mkDerivation (args // {
+
+        name = "${args.name}-${lua.luaversion}";
+
+        inherit preBuild postInstall;
+
+        inherit luadeps runtimeDeps;
+
+        phases = [ "unpackPhase" "patchPhase" "buildPhase"];
+
+        buildInputs = runtimeDeps ++ buildInputs ++ [ makeWrapper lua ];
+
+        buildPhase = ''
+          eval "$preBuild"
+          ${mkcfg}
+          eval "`${luarocks}/bin/luarocks --deps-mode=all --tree=$out path`"
+          ${luarocks}/bin/luarocks make --deps-mode=all --tree=$out ${rockspec}
+
+          for p in $out/bin/*; do
+            wrapProgram $p \
+              --suffix LD_LIBRARY_PATH ';' "${lib.makeLibraryPath runtimeDeps_}" \
+              --suffix PATH ';' "${lib.makeBinPath runtimeDeps_}" \
+              --suffix LUA_PATH ';' "\"$LUA_PATH\"" \
+              --suffix LUA_PATH ';' "\"$out/share/lua/${lua.luaversion}/?.lua;$out/share/lua/${lua.luaversion}/?/init.lua\"" \
+              --suffix LUA_CPATH ';' "\"$LUA_CPATH\"" \
+              --suffix LUA_CPATH ';' "\"$out/lib/lua/${lua.luaversion}/?.so;$out/lib/lua/${lua.luaversion}/?/init.so\""
+          done
+
+          eval "$postInstall"
+        '';
+      });
+
+    # FIXME: doesn't installs lua-files for some reason
+    # lua-cjson = buildLuaPackage {
+    #   name = "lua-cjson";
+    #   src = ./extra/lua-cjson;
+    #   rockspec = "lua-cjson-2.1devel-1.rockspec";
+    # };
+
+    lua-cjson = stdenv.mkDerivation rec {
+      name = "lua-cjson";
+      src = "${distro_src}/extra/lua-cjson";
+
+      preConfigure = ''
+        makeFlags="PREFIX=$out LUA_LIBRARY=$out/lib/lua"
+      '';
+
+      buildInputs = [lua];
+
+      installPhase = ''
+        make install-extra $makeFlags
+      '';
+      meta.broken = true;
+    };
+
+    luafilesystem = buildLuaRocks {
+      name = "filesystem";
+      src = "${distro_src}/extra/luafilesystem";
+      luadeps = [lua-cjson];
+      rockspec = "rockspecs/luafilesystem-1.6.3-1.rockspec";
+    };
+
+    penlight = buildLuaRocks {
+      name = "penlight";
+      src = "${distro_src}/extra/penlight";
+      luadeps = [luafilesystem];
+    };
+
+    luaffifb = buildLuaRocks {
+      name = "luaffifb";
+      src = "${distro_src}/extra/luaffifb";
+      meta.broken = true;
+    };
+
+    sundown = buildLuaRocks rec {
+      name = "sundown";
+      src = "${distro_src}/pkg/sundown";
+      rockspec = "rocks/${name}-scm-1.rockspec";
+      meta.broken = true; # 2018-04-11
+    };
+
+    cwrap = buildLuaRocks rec {
+      name = "cwrap";
+      src = "${distro_src}/pkg/cwrap";
+      rockspec = "rocks/${name}-scm-1.rockspec";
+    };
+
+    paths = buildLuaRocks rec {
+      name = "paths";
+      src = "${distro_src}/pkg/paths";
+      buildInputs = [cmake];
+      rockspec = "rocks/${name}-scm-1.rockspec";
+    };
+
+    torch = buildLuaRocks rec {
+      name = "torch";
+      src = "${distro_src}/pkg/torch";
+      luadeps = [ paths cwrap ];
+      buildInputs = [ cmake ];
+      rockspec = "rocks/torch-scm-1.rockspec";
+      preBuild = ''
+        substituteInPlace ${rockspec} \
+          --replace '"sys >= 1.0"' ' '
+        export LUA_PATH="$src/?.lua;$LUA_PATH"
+      '';
+      meta = common_meta // {
+        description = "Torch is a machine-learning library";
+        longDescription = ''
+          Torch is the main package in [Torch7](http://torch.ch) where data
+          structures for multi-dimensional tensors and mathematical operations
+          over these are defined. Additionally, it provides many utilities for
+          accessing files, serializing objects of arbitrary types and other
+          useful utilities.
+        '';
+      };
+    };
+
+    dok = buildLuaRocks rec {
+      name = "dok";
+      src = "${distro_src}/pkg/dok";
+      luadeps = [sundown];
+      rockspec = "rocks/${name}-scm-1.rockspec";
+    };
+
+    sys = buildLuaRocks rec {
+      name = "sys";
+      luadeps = [torch];
+      buildInputs = [readline cmake];
+      src = "${distro_src}/pkg/sys";
+      rockspec = "sys-1.1-0.rockspec";
+      preBuild = ''
+        export Torch_DIR=${torch}/share/cmake/torch
+      '';
+    };
+
+    xlua = buildLuaRocks rec {
+      name = "xlua";
+      luadeps = [torch sys];
+      src = "${distro_src}/pkg/xlua";
+      rockspec = "xlua-1.0-0.rockspec";
+    };
+
+    nn = buildLuaRocks rec {
+      name = "nn";
+      luadeps = [torch luaffifb];
+      buildInputs = [cmake];
+      src = "${distro_src}/extra/nn";
+      rockspec = "rocks/nn-scm-1.rockspec";
+      preBuild = ''
+        export Torch_DIR=${torch}/share/cmake/torch
+      '';
+    };
+
+    graph = buildLuaRocks rec {
+      name = "graph";
+      luadeps = [ torch ];
+      buildInputs = [cmake];
+      src = "${distro_src}/extra/graph";
+      rockspec = "rocks/graph-scm-1.rockspec";
+      preBuild = ''
+        export Torch_DIR=${torch}/share/cmake/torch
+      '';
+    };
+
+    nngraph = buildLuaRocks rec {
+      name = "nngraph";
+      luadeps = [ torch nn graph ];
+      buildInputs = [cmake];
+      src = "${distro_src}/extra/nngraph";
+      preBuild = ''
+        export Torch_DIR=${torch}/share/cmake/torch
+      '';
+    };
+
+    image = buildLuaRocks rec {
+      name = "image";
+      luadeps = [ torch dok sys xlua ];
+      buildInputs = [cmake libjpeg libpng];
+      src = "${distro_src}/pkg/image";
+      rockspec = "image-1.1.alpha-0.rockspec";
+      preBuild = ''
+        export Torch_DIR=${torch}/share/cmake/torch
+      '';
+    };
+
+    optim = buildLuaRocks rec {
+      name = "optim";
+      luadeps = [ torch ];
+      buildInputs = [cmake];
+      src = "${distro_src}/pkg/optim";
+      rockspec = "optim-1.0.5-0.rockspec";
+      preBuild = ''
+        export Torch_DIR=${torch}/share/cmake/torch
+      '';
+    };
+
+    gnuplot = buildLuaRocks rec {
+      name = "gnuplot";
+      luadeps = [ torch paths ];
+      runtimeDeps = [ pkgs_gnuplot less ];
+      src = "${distro_src}/pkg/gnuplot";
+      rockspec = "rocks/gnuplot-scm-1.rockspec";
+    };
+
+    unsup = buildLuaRocks rec {
+      name = "unsup";
+      luadeps = [ torch xlua optim ];
+      buildInputs = [ cmake ];
+      src = fetchgit {
+        url = "https://github.com/koraykv/unsup";
+        rev = "1d4632e716dc3c82feecc7dd4b22549df442859f";
+        sha256 = "0npjq3y1cfmk026sdijcw3f766innrmb3qggnxsz62grczhfvgls";
+      };
+      rockspec = "unsup-0.1-0.rockspec";
+      preBuild = ''
+        export Torch_DIR=${torch}/share/cmake/torch
+      '';
+      meta.broken = true;
+    };
+
+    trepl = buildLuaRocks rec {
+      name = "trepl";
+      luadeps = [torch gnuplot paths penlight graph nn nngraph image gnuplot optim sys dok unsup];
+      runtimeDeps = [ ncurses readline ];
+      src = "${distro_src}/exe/trepl";
+      meta = common_meta // {
+        description = "A pure Lua REPL for Lua(JIT), with heavy support for Torch types.";
+      };
+    };
+
+    lbase64 = buildLuaRocks rec {
+      name = "lbase64";
+      src = fetchgit {
+        url = "https://github.com/LuaDist2/lbase64";
+        rev = "1e9e4f1e0bf589a0ed39f58acc185ec5e213d207";
+        sha256 = "1i1fpy9v6r4w3lrmz7bmf5ppq65925rv90gx39b3pykfmn0hcb9c";
+      };
+      meta.broken = true; # 2018-04-11
+    };
+
+    luuid = stdenv.mkDerivation rec {
+      name = "luuid";
+      src = fetchgit {
+        url = "https://github.com/LuaDist/luuid";
+        sha256 = "062gdf1rild11jg46vry93hcbb36b4527pf1dy7q9fv89f7m2nav";
+      };
+
+      preConfigure = ''
+        cmakeFlags="-DLUA_LIBRARY=${lua}/lib/lua/${lua.luaversion} -DINSTALL_CMOD=$out/lib/lua/${lua.luaversion} -DINSTALL_MOD=$out/lib/lua/${lua.luaversion}"
+      '';
+
+      buildInputs = [cmake libuuid lua];
+      meta = {
+        # FIXME: set the exact revision for src
+        broken = true;
+      };
+    };
+
+    # Doesn't work due to missing deps (according to luarocs).
+    itorch = buildLuaRocks rec {
+      name = "itorch";
+      luadeps = [torch gnuplot paths penlight graph nn nngraph image gnuplot
+                  optim sys dok lbase64 lua-cjson luuid];
+      buildInputs = [czmq openssl];
+      src = "${distro_src}/extra/iTorch";
+      meta = {
+        # FIXME: figure out whats wrong with deps
+        broken = true;
+      };
+    };
+
+
+  };
+
+in
+
+luapkgs
+
+
diff --git a/nixpkgs/pkgs/applications/science/math/LiE/default.nix b/nixpkgs/pkgs/applications/science/math/LiE/default.nix
new file mode 100644
index 000000000000..e0b0bc11f05f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/LiE/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl
+, bison, readline }:
+
+stdenv.mkDerivation rec {
+  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.
+  name = "lie-${version}";
+
+  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/nixpkgs/pkgs/applications/science/math/R/default.nix b/nixpkgs/pkgs/applications/science/math/R/default.nix
new file mode 100644
index 000000000000..4283ebd931a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/R/default.nix
@@ -0,0 +1,108 @@
+{ stdenv, fetchurl, bzip2, gfortran, libX11, libXmu, libXt, libjpeg, libpng
+, libtiff, ncurses, pango, pcre, perl, readline, tcl, texLive, tk, xz, zlib
+, less, texinfo, graphviz, icu, pkgconfig, bison, imake, which, jdk, openblas
+, curl, Cocoa, Foundation, libobjc, libcxx, tzdata
+, withRecommendedPackages ? true
+, enableStrictBarrier ? false
+, javaSupport ? (!stdenv.hostPlatform.isAarch32 && !stdenv.hostPlatform.isAarch64)
+}:
+
+stdenv.mkDerivation rec {
+  name = "R-3.5.2";
+
+  src = fetchurl {
+    url = "https://cran.r-project.org/src/base/R-3/${name}.tar.gz";
+    sha256 = "0qjvdic1qd5vndc4f0wjndpm0x18lbvbcc8nkix8saqgy8y8qgg5";
+  };
+
+  dontUseImakeConfigure = true;
+
+  buildInputs = [
+    bzip2 gfortran libX11 libXmu libXt libXt libjpeg libpng libtiff ncurses
+    pango pcre perl readline texLive xz zlib less texinfo graphviz icu
+    pkgconfig bison imake which openblas curl
+  ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ tcl tk ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa Foundation libobjc libcxx ]
+    ++ stdenv.lib.optional javaSupport jdk;
+
+  patches = [ ./no-usr-local-search-paths.patch ];
+
+  prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace configure --replace "-install_name libR.dylib" "-install_name $out/lib/R/lib/libR.dylib"
+  '';
+
+  preConfigure = ''
+    configureFlagsArray=(
+      --disable-lto
+      --with${stdenv.lib.optionalString (!withRecommendedPackages) "out"}-recommended-packages
+      --with-blas="-L${openblas}/lib -lopenblas"
+      --with-lapack="-L${openblas}/lib -lopenblas"
+      --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"}
+      --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"
+      ${stdenv.lib.optionalString javaSupport "JAVA_HOME=\"${jdk}\""}
+      RANLIB=$(type -p ranlib)
+      R_SHELL="${stdenv.shell}"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+      --without-tcltk
+      --without-aqua
+      --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" ];
+
+  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 = [ maintainers.peti ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/R/no-usr-local-search-paths.patch b/nixpkgs/pkgs/applications/science/math/R/no-usr-local-search-paths.patch
new file mode 100644
index 000000000000..6c7f6d4ee02a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/R/setup-hook.sh b/nixpkgs/pkgs/applications/science/math/R/setup-hook.sh
new file mode 100644
index 000000000000..6951e2a4b61b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/almonds/default.nix b/nixpkgs/pkgs/applications/science/math/almonds/default.nix
new file mode 100644
index 000000000000..b5d9632c551d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/bcal/default.nix b/nixpkgs/pkgs/applications/science/math/bcal/default.nix
new file mode 100644
index 000000000000..61eb1fd3ce4e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/bcal/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, python3Packages, readline }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "bcal-${version}";
+  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/nixpkgs/pkgs/applications/science/math/bliss/default.nix b/nixpkgs/pkgs/applications/science/math/bliss/default.nix
new file mode 100644
index 000000000000..1b7a97360079
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/bliss/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, unzip, doxygen }:
+
+stdenv.mkDerivation rec {
+  name = "bliss-${version}";
+  version = "0.73";
+
+  src = fetchurl {
+    url = "http://www.tcs.hut.fi/Software/bliss/${name}.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 = "bliss is 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/nixpkgs/pkgs/applications/science/math/caffe/darwin.patch b/nixpkgs/pkgs/applications/science/math/caffe/darwin.patch
new file mode 100644
index 000000000000..e8fa6a683f73
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/caffe/default.nix b/nixpkgs/pkgs/applications/science/math/caffe/default.nix
new file mode 100644
index 000000000000..e56c63e01bf0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/caffe/default.nix
@@ -0,0 +1,126 @@
+{ stdenv, lib, runCommand
+, fetchFromGitHub
+, fetchurl
+, cmake
+, boost
+, google-gflags
+, glog
+, hdf5-cpp
+, opencv3
+, protobuf
+, doxygen
+, openblas
+, Accelerate, CoreGraphics, CoreVideo
+, lmdbSupport ? true, lmdb
+, leveldbSupport ? true, leveldb, snappy
+, cudaSupport ? stdenv.isLinux, cudatoolkit
+, cudnnSupport ? false, cudnn ? null
+, ncclSupport ? false, nccl ? null
+, pythonSupport ? false, python ? null, numpy ? null
+}:
+
+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 {
+  name = "caffe-${version}";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "BVLC";
+    repo = "caffe";
+    rev = version;
+    sha256 = "104jp3cm823i3cdph7hgsnj6l77ygbwsy35mdmzhmsi4jxprd9j3";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ cmake doxygen ];
+
+  cmakeFlags =
+    [ (if pythonSupport then "-Dpython_version=${python.version}" 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 google-gflags glog protobuf hdf5-cpp opencv3 openblas ]
+                ++ 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.optional pythonSupport python.pkgs.protobuf;
+
+  outputs = [ "bin" "out"];
+  propagatedBuildOutputs = []; # otherwise propagates out -> bin cycle
+
+  patches = [ ./darwin.patch ];
+
+  preConfigure = 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
+  '' + lib.optionalString (python.isPy3 or false) ''
+    sed -i \
+      -e 's,"python-py''${boost_py_version}",python3,g' \
+      -e 's,''${Boost_PYTHON-PY''${boost_py_version}_FOUND},''${Boost_PYTHON3_FOUND},g' \
+      cmake/Dependencies.cmake
+  '';
+
+  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/nixpkgs/pkgs/applications/science/math/calc/default.nix b/nixpkgs/pkgs/applications/science/math/calc/default.nix
new file mode 100644
index 000000000000..24cddfb9a1c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/calc/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, lib, fetchurl, utillinux, makeWrapper
+, enableReadline ? true, readline, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "calc-${version}";
+  version = "2.12.7.2";
+
+  src = fetchurl {
+    urls = [
+      "https://github.com/lcn2/calc/releases/download/${version}/${name}.tar.bz2"
+      "http://www.isthe.com/chongo/src/calc/${name}.tar.bz2"
+    ];
+    sha256 = "147wmbajcxv6wp92j6pizq4plrr1sb7jirifr1477bx33hc49bsp";
+  };
+
+  patchPhase = ''
+    substituteInPlace Makefile \
+      --replace 'all: check_include' 'all:' \
+      --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 = [ utillinux makeWrapper ]
+             ++ lib.optionals enableReadline [ readline ncurses ];
+
+  makeFlags = [
+    "T=$(out)"
+    "INCDIR=${lib.getDev stdenv.cc.libc}/include"
+    "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/nixpkgs/pkgs/applications/science/math/cbc/default.nix b/nixpkgs/pkgs/applications/science/math/cbc/default.nix
new file mode 100644
index 000000000000..93aefbca2160
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/cbc/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchurl, zlib, bzip2 }:
+
+stdenv.mkDerivation {
+  name = "cbc-2.9.9";
+
+  src = fetchurl {
+    url = "https://www.coin-or.org/download/source/Cbc/Cbc-2.9.9.tgz";
+    sha256 = "1w8axdzm05xf5y13c31w7rc5z6ywxqxiwafnxcq3p195kgj0915a";
+  };
+
+  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;
+    description = "A mixed integer programming solver";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/clp/default.nix b/nixpkgs/pkgs/applications/science/math/clp/default.nix
new file mode 100644
index 000000000000..4899ebe42d77
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/clp/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation rec {
+  version = "1.16.11";
+  name = "clp-${version}";
+  src = fetchurl {
+    url = "https://www.coin-or.org/download/source/Clp/Clp-${version}.tgz";
+    sha256 = "0fazlqpp845186nmixa9f1xfxqqkdr1xj4va7q29m8594ca4a9dm";
+  };
+
+  propagatedBuildInputs = [ zlib ];
+
+  doCheck = true;
+
+  meta = {
+    license = stdenv.lib.licenses.epl10;
+    homepage = https://projects.coin-or.org/Clp;
+    description = "An open-source linear programming solver written in C++";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/cntk/default.nix b/nixpkgs/pkgs/applications/science/math/cntk/default.nix
new file mode 100644
index 000000000000..fe5c77be8b22
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/cntk/default.nix
@@ -0,0 +1,92 @@
+{ lib, stdenv, fetchgit, fetchFromGitHub, cmake
+, openblas, opencv3, libzip, boost, protobuf, openmpi
+, onebitSGDSupport ? false
+, cudaSupport ? false, cudatoolkit, nvidia_x11
+, cudnnSupport ? false, cudnn
+}:
+
+assert cudnnSupport -> cudaSupport;
+
+let
+  # Old specific version required for CNTK.
+  cub = fetchFromGitHub {
+    owner = "NVlabs";
+    repo = "cub";
+    rev = "1.7.4";
+    sha256 = "0ksd5n1lxqhm5l5cd2lps4cszhjkf6gmzahaycs7nxb06qci8c66";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "CNTK-${version}";
+  version = "2.4";
+
+  # Submodules
+  src = fetchgit {
+    url = "https://github.com/Microsoft/CNTK";
+    rev = "v${version}";
+    sha256 = "0m28wb0ljixcpi14g3gcfiraimh487yxqhd9yrglgyvjb69x597y";
+  };
+
+  patches = [ ./fix_std_bind.patch ];
+
+  nativeBuildInputs = [ cmake ];
+
+  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
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = https://github.com/Microsoft/CNTK;
+    description = "An open source deep-learning toolkit";
+    license = if onebitSGDSupport then licenses.unfreeRedistributable else licenses.mit;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/cntk/fix_std_bind.patch b/nixpkgs/pkgs/applications/science/math/cntk/fix_std_bind.patch
new file mode 100644
index 000000000000..df97a0c66669
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/cntk/fix_std_bind.patch
@@ -0,0 +1,11 @@
+diff -ru3 CNTK-old/Source/CNTKv2LibraryDll/EvaluatorWrapper.h CNTK-new/Source/CNTKv2LibraryDll/EvaluatorWrapper.h
+--- CNTK-old/Source/CNTKv2LibraryDll/EvaluatorWrapper.h	1970-01-01 03:00:01.000000000 +0300
++++ CNTK-new/Source/CNTKv2LibraryDll/EvaluatorWrapper.h	2018-02-25 18:16:16.330269647 +0300
+@@ -9,6 +9,7 @@
+ #include <boost/noncopyable.hpp>
+ #include <memory>
+ #include <vector>
++#include <functional>
+ 
+ #include "CNTKLibrary.h"
+ #include "CNTKLibraryC.h"
diff --git a/nixpkgs/pkgs/applications/science/math/colpack/default.nix b/nixpkgs/pkgs/applications/science/math/colpack/default.nix
new file mode 100644
index 000000000000..94e0a44226d4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/colpack/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, gettext }:
+
+stdenv.mkDerivation rec {
+
+  pname = "ColPack";
+  version = "1.0.10";
+  name = pname + "-" + version;
+
+  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/nixpkgs/pkgs/applications/science/math/cplex/default.nix b/nixpkgs/pkgs/applications/science/math/cplex/default.nix
new file mode 100644
index 000000000000..fe3913648f87
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/cplex/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, makeWrapper, openjdk, gtk2, xorg, glibcLocales, releasePath }:
+
+# 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 {
+  name = "cplex-${version}";
+  version = "128";
+  
+  src =
+    if builtins.isNull releasePath 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
+  '';
+  
+  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/nixpkgs/pkgs/applications/science/math/csdp/default.nix b/nixpkgs/pkgs/applications/science/math/csdp/default.nix
new file mode 100644
index 000000000000..9b402fe0ac94
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/csdp/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchurl, blas, gfortran, liblapack }:
+
+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 liblapack ];
+
+  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/nixpkgs/pkgs/applications/science/math/ecm/default.nix b/nixpkgs/pkgs/applications/science/math/ecm/default.nix
new file mode 100644
index 000000000000..7b768f7077e7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/eukleides/default.nix b/nixpkgs/pkgs/applications/science/math/eukleides/default.nix
new file mode 100644
index 000000000000..6d1c778d1e0e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/form/default.nix b/nixpkgs/pkgs/applications/science/math/form/default.nix
new file mode 100644
index 000000000000..88f2367e3340
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/form/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, gmp, zlib }:
+
+stdenv.mkDerivation rec {
+  version = "4.2.0";
+  name = "form-${version}";
+
+  # 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.0/form-4.2.0.tar.gz";
+    sha256 = "19528aphn4hvm151lyyhd7wz0bp2s3rla8jv6s7d8jwfp5ljzysm";
+  };
+
+  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/nixpkgs/pkgs/applications/science/math/fricas/default.nix b/nixpkgs/pkgs/applications/science/math/fricas/default.nix
new file mode 100644
index 000000000000..7d1f738641a6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/gap/default.nix b/nixpkgs/pkgs/applications/science/math/gap/default.nix
new file mode 100644
index 000000000000..2927701dbd71
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/gap/default.nix
@@ -0,0 +1,103 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, m4
+, gmp
+# don't remove any packages -- results in a ~1.3G size increase
+# see https://github.com/NixOS/nixpkgs/pull/38754 for a discussion
+, keepAllPackages ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gap";
+  # https://www.gap-system.org/Releases/
+  # newer versions (4.9.0) are available, but still considered beta (https://github.com/gap-system/gap/wiki/GAP-4.9-release-notes)
+  version = "4r8p10";
+  pkgVer = "2018_01_15-13_02";
+  name = "${pname}-${version}";
+
+  src = let
+    # 4r8p10 -> 48
+    majorminor = stdenv.lib.replaceStrings ["r"] [""] (
+      builtins.head (stdenv.lib.splitString "p" version) # 4r8p10 -> 4r8
+    );
+  in
+    fetchurl {
+    url = "https://www.gap-system.org/pub/gap/gap${majorminor}/tar.bz2/gap${version}_${pkgVer}.tar.bz2";
+    sha256 = "0wzfdjnn6sfiaizbk5c7x44rhbfayis4lf57qbqqg84c7dqlwr6f";
+  };
+
+  # remove all non-essential packages (which take up a lot of space)
+  preConfigure = stdenv.lib.optionalString (!keepAllPackages) ''
+    find pkg -type d -maxdepth 1 -mindepth 1 \
+       -not -name 'GAPDoc-*' \
+       -not -name 'autpgrp*' \
+       -exec echo "Removing package {}" \; \
+       -exec rm -r {} \;
+  '';
+
+  configureFlags = [ "--with-gmp=system" ];
+  buildInputs = [ m4 gmp ];
+
+  patches = [
+    #  fix infinite loop in writeandcheck() when writing an error message fails.
+    (fetchpatch {
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/gap/patches/writeandcheck.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+      sha256 = "1r1511x4kc2i2mbdq1b61rb6p3misvkf1v5qy3z6fmn6vqwziaz1";
+    })
+  ];
+
+  doCheck = true;
+  checkTarget = "testinstall";
+  # "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";
+
+  preCheck = ''
+    # gap tests check that the home directory exists
+    export HOME="$TMP/gap-home"
+    mkdir -p "$HOME"
+  '';
+
+  postCheck = ''
+    # The testsuite doesn't exit with a non-zero exit code on failure.
+    # It leaves its logs in dev/log however.
+
+    # grep for error messages
+    if grep ^##### dev/log/*; then
+        exit 1
+    fi
+  '';
+
+  postBuild = ''
+    pushd pkg
+    bash ../bin/BuildPackages.sh
+    popd
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/bin" "$out/share/gap/"
+
+    cp -r . "$out/share/gap/build-dir"
+
+    sed -e "/GAP_DIR=/aGAP_DIR='$out/share/gap/build-dir/'" -i "$out/share/gap/build-dir/bin/gap.sh"
+
+    ln -s "$out/share/gap/build-dir/bin/gap.sh" "$out/bin/gap"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Computational discrete algebra system";
+    maintainers = with maintainers;
+    [
+      raskin
+      chrisjefferson
+    ];
+    platforms = platforms.all;
+    # keeping all packages increases the package size considerably, wchich
+    # 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 = stdenv.lib.optionals (!keepAllPackages) meta.platforms;
+    license = licenses.gpl2;
+    homepage = http://gap-system.org/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/geogebra/default.nix b/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
new file mode 100644
index 000000000000..755a60940388
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, jre, makeDesktopItem, makeWrapper, language ? "en_US" }:
+
+stdenv.mkDerivation rec {
+  name = "geogebra-${version}";
+  version = "5-0-472-0";
+
+  preferLocalBuild = true;
+
+  src = fetchurl {
+    urls = [
+      "https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
+      "http://web.archive.org/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
+    ];
+    sha256 = "1f56k5r5wf2l27sgp2vjpvx7wl72gizwxs0a6hngk15nzzka87v9";
+  };
+
+  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;";
+  };
+
+  buildInputs = [ 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"
+  '';
+
+  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 = platforms.all;
+    hydraPlatforms = [];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/gfan/default.nix b/nixpkgs/pkgs/applications/science/math/gfan/default.nix
new file mode 100644
index 000000000000..d2d1ddb65846
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/gfan/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, gmp, mpir, cddlib}:
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "gfan";
+  version = "0.6.2";
+
+  src = fetchurl {
+    url = "http://home.math.au.dk/jensen/software/gfan/gfan${version}.tar.gz";
+    sha256 = "02pihqb1lb76a0xbfwjzs1cd6ay3ldfxsm8dvsbl6qs3vkjxax56";
+  };
+
+  patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile --replace "-fno-guess-branch-probability" ""
+  '';
+
+  buildFlags = [ "CC=cc" "CXX=c++" "cddnoprefix=1" ];
+  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/nixpkgs/pkgs/applications/science/math/giac/default.nix b/nixpkgs/pkgs/applications/science/math/giac/default.nix
new file mode 100644
index 000000000000..ad82d7572e34
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/giac/default.nix
@@ -0,0 +1,112 @@
+{ stdenv, fetchurl, fetchpatch, texlive, bison, flex, liblapack
+, gmp, mpfr, pari, ntl, gsl, blas, mpfi, ecm, glpk, nauty
+, readline, gettext, libpng, libao, gfortran, perl
+, enableGUI ? false, libGLU_combined ? null, xorg ? null, fltk ? null
+}:
+
+assert enableGUI -> libGLU_combined != null && xorg != null && fltk != null;
+
+stdenv.mkDerivation rec {
+  name = "${attr}-${version}";
+  attr = if enableGUI then "giac-with-xcas" else "giac";
+  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)
+    liblapack
+  ] ++ stdenv.lib.optionals enableGUI [
+    libGLU_combined 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;
+    ## xcas is buildable on darwin but there are specific instructions I could
+    ## not test
+    platforms = platforms.linux;
+    maintainers = [ maintainers.symphorien ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/ginac/default.nix b/nixpkgs/pkgs/applications/science/math/ginac/default.nix
new file mode 100644
index 000000000000..18a5281bebb0
--- /dev/null
+++ b/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.7.4";
+
+  src = fetchurl {
+    url    = "${meta.homepage}/${name}.tar.bz2";
+    sha256 = "1vvqv73yk9klbq0mz239zzw77rlp72qcvzci4j1v6rafvji1616n";
+  };
+
+  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/nixpkgs/pkgs/applications/science/math/glsurf/default.nix b/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
new file mode 100644
index 000000000000..4de683cdce90
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, ocamlPackages, libGLU_combined, freeglut
+, mysql, mpfr, gmp, libtiff, libjpeg, libpng, giflib
+}:
+
+stdenv.mkDerivation {
+  name = "glsurf-3.3.1";
+
+  src = fetchurl {
+    url = "https://lama.univ-savoie.fr/~raffalli/glsurf/glsurf-3.3.1.tar.gz";
+    sha256 = "0w8xxfnw2snflz8wdr2ca9f5g91w5vbyp1hwlx1v7vg83d4bwqs7";
+  };
+
+  buildInputs = [ freeglut libGLU_combined mysql.connector-c 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 = http://www.lama.univ-savoie.fr/~raffalli/glsurf;
+    description = "A program to draw implicit surfaces and curves";
+    license = stdenv.lib.licenses.lgpl21;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/gmsh/default.nix b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
new file mode 100644
index 000000000000..c689ae98b7ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, cmake, openblasCompat, gfortran, gmm, fltk, libjpeg
+, zlib, libGLU_combined, libGLU, xorg }:
+
+let version = "4.0.7"; in
+
+stdenv.mkDerivation {
+  name = "gmsh-${version}";
+
+  src = fetchurl {
+    url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
+    sha256 = "c6572320d0ffdf7d2488e113861bc4bd9c38a29f7fc5b67957f6fbcb63fbdbd5";
+  };
+
+  buildInputs = [ cmake openblasCompat gmm fltk libjpeg zlib libGLU_combined
+    libGLU xorg.libXrender xorg.libXcursor xorg.libXfixes xorg.libXext
+    xorg.libXft xorg.libXinerama xorg.libX11 xorg.libSM xorg.libICE
+  ];
+
+  nativeBuildInputs = [ gfortran ];
+
+  enableParallelBuilding = true;
+
+  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/nixpkgs/pkgs/applications/science/math/gurobi/default.nix b/nixpkgs/pkgs/applications/science/math/gurobi/default.nix
new file mode 100644
index 000000000000..d4a4133d06e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/gurobi/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, autoPatchelfHook, python }:
+
+stdenv.mkDerivation rec {
+  name = "gurobi-${version}";
+  version = "8.0.1";
+
+  src = with stdenv.lib; fetchurl {
+    url = "http://packages.gurobi.com/${versions.majorMinor version}/gurobi${version}_linux64.tar.gz";
+    sha256 = "0y3lb0mngnyn7ql4s2n8qxnr1d2xcjdpdhpdjdxc4sc8f2w2ih18";
+  };
+
+  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/
+  '';
+
+  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/nixpkgs/pkgs/applications/science/math/hmetis/default.nix b/nixpkgs/pkgs/applications/science/math/hmetis/default.nix
new file mode 100644
index 000000000000..9eab9ca39992
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/hmetis/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, ghostscript }:
+
+stdenv.mkDerivation rec {
+  name = "hmetis-${version}";
+  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/nixpkgs/pkgs/applications/science/math/jags/default.nix b/nixpkgs/pkgs/applications/science/math/jags/default.nix
new file mode 100644
index 000000000000..1d1fb96a4739
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/jags/default.nix
@@ -0,0 +1,19 @@
+{stdenv, fetchurl, gfortran, openblas}:
+
+stdenv.mkDerivation rec {
+  name = "JAGS-4.3.0";
+  src = fetchurl {
+    url = "mirror://sourceforge/mcmc-jags/${name}.tar.gz";
+    sha256 = "1z3icccg2ic56vmhyrpinlsvpq7kcaflk1731rgpvz9bk1bxvica";
+  };
+  buildInputs = [gfortran openblas];
+  configureFlags = [ "--with-blas=-lopenblas" "--with-lapack=-lopenblas" ];
+
+  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/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix b/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
new file mode 100644
index 000000000000..0cf834c8cdea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+
+  name = "lp_solve-${version}";
+  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
+    cp -v bin/*/* $out/lib
+    )
+    (
+    cd lp_solve*/lp_solve
+    bash ccc
+    mkdir -pv $out/bin
+    cp -v bin/*/* $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/nixpkgs/pkgs/applications/science/math/lp_solve/isnan.patch b/nixpkgs/pkgs/applications/science/math/lp_solve/isnan.patch
new file mode 100644
index 000000000000..bc1983d4423d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/lrcalc/default.nix b/nixpkgs/pkgs/applications/science/math/lrcalc/default.nix
new file mode 100644
index 000000000000..9e02b08c8ad0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/lrcalc/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromBitbucket
+, fetchpatch
+, autoreconfHook
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.2";
+  pname = "lrcalc";
+  name = "${pname}-${version}";
+
+  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 = with maintainers; [ timokau ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/mathematica/10.nix b/nixpkgs/pkgs/applications/science/math/mathematica/10.nix
new file mode 100644
index 000000000000..c6802c3719e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/10.nix
@@ -0,0 +1,136 @@
+{ stdenv
+, coreutils
+, patchelf
+, requireFile
+, alsaLib
+, fontconfig
+, freetype
+, gcc
+, glib
+, ncurses
+, opencv
+, 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";
+
+  name = "mathematica-${version}";
+
+  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
+    opencv
+    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/nixpkgs/pkgs/applications/science/math/mathematica/9.nix b/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
new file mode 100644
index 000000000000..1023e7ca3d5c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/9.nix
@@ -0,0 +1,122 @@
+{ stdenv
+, coreutils
+, patchelf
+, requireFile
+, alsaLib
+, fontconfig
+, freetype
+, gcc
+, glib
+, ncurses
+, opencv
+, 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 rec {
+    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
+    opencv
+    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/nixpkgs/pkgs/applications/science/math/mathematica/default.nix b/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
new file mode 100644
index 000000000000..165a56605579
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/default.nix
@@ -0,0 +1,148 @@
+{ stdenv
+, coreutils
+, patchelf
+, callPackage
+, alsaLib
+, dbus
+, fontconfig
+, freetype
+, gcc
+, glib
+, ncurses
+, opencv
+, openssl
+, unixODBC
+, xkeyboard_config
+, xorg
+, zlib
+, libxml2
+, libuuid
+, lang ? "en"
+, libGL
+, libGLU
+}:
+
+let
+  l10n =
+    with stdenv.lib;
+    with callPackage ./l10ns.nix {};
+    flip (findFirst (l: l.lang == lang)) l10ns
+      (throw "Language '${lang}' not supported");
+in
+stdenv.mkDerivation rec {
+  inherit (l10n) version name src;
+
+  buildInputs = [
+    coreutils
+    patchelf
+    alsaLib
+    coreutils
+    dbus
+    fontconfig
+    freetype
+    gcc.cc
+    gcc.libc
+    glib
+    ncurses
+    opencv
+    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/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix b/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
new file mode 100644
index 000000000000..2158021c7548
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
@@ -0,0 +1,33 @@
+{ lib, requireFile }:
+
+with lib;
+{
+  l10ns = flip map
+  [
+    {
+      version = "11.2.0";
+      lang = "en";
+      language = "English";
+      sha256 = "4a1293cc1c404303aa1cab1bd273c7be151d37ac5ed928fbbb18e9c5ab2d8df9";
+    }
+    {
+      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;
+    };
+  });
+}
diff --git a/nixpkgs/pkgs/applications/science/math/maxima/default.nix b/nixpkgs/pkgs/applications/science/math/maxima/default.nix
new file mode 100644
index 000000000000..9f6e281849d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/maxima/default.nix
@@ -0,0 +1,100 @@
+{ stdenv, fetchurl, fetchpatch, sbcl, texinfo, perl, python, makeWrapper, rlwrap ? null
+, tk ? null, gnuplot ? null, ecl ? null, ecl-fasl ? false
+}:
+
+let
+  name    = "maxima";
+  version = "5.41.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 = "0x0n81z0s4pl8nwpf7ivlsbvsdphm9w42250g7qdkizl0132by6s";
+  };
+
+  buildInputs = stdenv.lib.filter (x: x != null) [
+    sbcl ecl texinfo perl python makeWrapper
+  ];
+
+  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";
+    })
+
+    # upstream bug https://sourceforge.net/p/maxima/bugs/2520/ (not fixed)
+    # introduced in https://trac.sagemath.org/ticket/13364
+    (fetchpatch {
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/0001-taylor2-Avoid-blowing-the-stack-when-diff-expand-isn.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+      sha256 = "0xa0b6cr458zp7lc7qi0flv5ar0r3ivsqhjl0c3clv86di2y522d";
+    })
+  ] ++ 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";
+    })
+    # There are some transient test failures. I hope this disables all those tests.
+    # If those test failures ever happen in the non-ecl version, that should be
+    # reportetd upstream.
+    ./known-ecl-failures.patch
+  ];
+
+  # Failures in the regression test suite won't abort the build process. We run
+  # the suite only so that potential errors show up in the build log. See also:
+  # https://sourceforge.net/tracker/?func=detail&aid=3365831&group_id=4933&atid=104933.
+  doCheck = true;
+
+  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/nixpkgs/pkgs/applications/science/math/maxima/known-ecl-failures.patch b/nixpkgs/pkgs/applications/science/math/maxima/known-ecl-failures.patch
new file mode 100644
index 000000000000..f1d612d993e6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/maxima/known-ecl-failures.patch
@@ -0,0 +1,21 @@
+diff --git a/tests/testsuite.lisp b/tests/testsuite.lisp
+index 45a81f4..36c35b8 100644
+--- a/tests/testsuite.lisp
++++ b/tests/testsuite.lisp
+@@ -25,13 +25,14 @@
+         ((mlist simp) "rtest10" 24 25)
+         ((mlist) "rtest11" #+(or gcl cmucl ccl64) 158 #+(or gcl cmucl ccl64) 174 #+gcl 175)
+         "rtest13" "rtest13s"
+-        "rtest14"
++        ;; "rtest14" ;; some tests sometimes fail with ecl, hard to reproduce. Observed failing: 250, 267, 297, 307, 310, 312, 315, 319
+         "rtest15"
+ 	;; ccl versions 1.11 and earlier fail test 50.  Mark it as a
+ 	;; known failure.  Presumably 1.12 will have this fixed.
+         ((mlist simp) "rtest16" #+ccl 50)
+         "rtestode" "rtestode_zp"
+-        "rtest3" "rtest8"
++        "rtest3"
++        ((mlist simp) "rtest8" 104) ;; fails with ecl
+         ((mlist simp) "rtest12" 76 78)
+         "rexamples"
+         ((mlist simp) "rtesthyp" 105 112 113 123 124 128)
diff --git a/nixpkgs/pkgs/applications/science/math/msieve/default.nix b/nixpkgs/pkgs/applications/science/math/msieve/default.nix
new file mode 100644
index 000000000000..6e1926810df0
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/mxnet/default.nix b/nixpkgs/pkgs/applications/science/math/mxnet/default.nix
new file mode 100644
index 000000000000..990d3f1a5d59
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/mxnet/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, lib, fetchurl, bash, cmake
+, opencv, gtest, openblas, liblapack, perl
+, cudaSupport ? false, cudatoolkit, nvidia_x11
+, cudnnSupport ? false, cudnn
+}:
+
+assert cudnnSupport -> cudaSupport;
+
+stdenv.mkDerivation rec {
+  name = "mxnet-${version}";
+  version = "1.2.1";
+
+  # Fetching from git does not work at the time (1.2.1) due to an
+  # incorrect hash in one of the submodules. The provided tarballs
+  # contain all necessary sources.
+  src = fetchurl {
+    url = "https://github.com/apache/incubator-mxnet/releases/download/${version}/apache-mxnet-src-${version}-incubating.tar.gz";
+    sha256 = "053zbdgs4j8l79ipdz461zc7wyfbfcflmi5bw7lj2q08zm1glnb2";
+  };
+
+  nativeBuildInputs = [ cmake perl ];
+
+  buildInputs = [ opencv gtest openblas liblapack ]
+              ++ lib.optionals cudaSupport [ cudatoolkit nvidia_x11 ]
+              ++ lib.optional cudnnSupport cudnn;
+
+  cmakeFlags =
+    (if cudaSupport then [
+      "-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/nixpkgs/pkgs/applications/science/math/nasc/default.nix b/nixpkgs/pkgs/applications/science/math/nasc/default.nix
new file mode 100644
index 000000000000..4afaa5194db8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/nasc/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, pkgconfig
+, gtk3
+, granite
+, gnome3
+, cmake
+, vala_0_40
+, libqalculate
+, gobject-introspection
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "nasc-${version}";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "parnold-x";
+    repo = "nasc";
+    rev = version;
+    sha256 = "13y5fnm7g3xgdxmdydlgly73nigh8maqbf9d6c9bpyzxkxq1csy5";
+  };
+
+  postPatch = ''
+    # libqalculatenasc.so is not installed, and nasc fails to start
+    substituteInPlace libqalculatenasc/CMakeLists.txt --replace SHARED STATIC
+  '';
+
+  nativeBuildInputs = [
+    pkgconfig
+    wrapGAppsHook
+    vala_0_40 # should be `elementary.vala` when elementary attribute set is merged
+    cmake
+    gobject-introspection # for setup-hook
+  ];
+
+  buildInputs = [
+    gnome3.defaultIconTheme # should be `elementary.defaultIconTheme`when elementary attribute set is merged
+    gnome3.gtksourceview
+    gnome3.libgee
+    gnome3.libsoup
+    granite
+    gtk3
+    libqalculate
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Do maths like a normal person";
+    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 = with maintainers; [ samdroid-apps ];
+    platforms = platforms.linux;
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/nauty/default.nix b/nixpkgs/pkgs/applications/science/math/nauty/default.nix
new file mode 100644
index 000000000000..5b431f419261
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/nauty/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl}:
+stdenv.mkDerivation rec {
+  name = "nauty-${version}";
+  version = "26r11";
+  src = fetchurl {
+    url = "http://pallini.di.uniroma1.it/nauty${version}.tar.gz";
+    sha256 = "05z6mk7c31j70md83396cdjmvzzip1hqb88pfszzc6k4gy8h3m2y";
+  };
+  outputs = [ "out" "dev" ];
+  buildInputs = [];
+  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 = {
+    inherit version;
+    description = ''Programs for computing automorphism groups of graphs and digraphs'';
+    license = stdenv.lib.licenses.asl20;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = http://pallini.di.uniroma1.it/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/palp/default.nix b/nixpkgs/pkgs/applications/science/math/palp/default.nix
new file mode 100644
index 000000000000..e9fd21b46d8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/palp/default.nix
@@ -0,0 +1,86 @@
+{ 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)
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.1";
+  dim = toString dimensions;
+  name = "palp-${dim}d-${version}";
+
+  src = fetchurl {
+    url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/palp-${version}.tar.gz";
+    sha256 = "1s7s2lc5f0ig1yy7ygsh3sddm3sbq4mxwybqsj8lp9wjdxs7qfrs";
+  };
+
+  hardeningDisable = [
+    "format"
+    "strictoverflow" # causes runtime failure (tested in checkPhase)
+  ];
+
+  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;
+    # 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 = with maintainers; [ timokau ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/pari/default.nix b/nixpkgs/pkgs/applications/science/math/pari/default.nix
new file mode 100644
index 000000000000..32e4d81acec0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/pari/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl
+, gmp, readline, libX11, tex, perl
+, withThread ? true, libpthreadstubs
+}:
+
+assert withThread -> libpthreadstubs != null;
+
+stdenv.mkDerivation rec {
+
+  name = "pari-${version}";
+  version = "2.11.1";
+
+  src = fetchurl {
+    url = "https://pari.math.u-bordeaux.fr/pub/pari/unix/${name}.tar.gz";
+    sha256 = "1jfax92jpydjd02fwl30r6b8kfzqqd6sm4yx94gidyz9lqjb7a94";
+  };
+
+  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 raskin AndersonTorres ];
+    platforms   = platforms.linux ++ platforms.darwin;
+    updateWalker = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix b/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix
new file mode 100644
index 000000000000..4915e42025b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/pari/gp2c.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl
+, pari, perl }:
+
+stdenv.mkDerivation rec {
+
+  name = "gp2c-${version}";
+  version = "0.0.11pl1";
+
+  src = fetchurl {
+    url = "https://pari.math.u-bordeaux.fr/pub/pari/GP2C/${name}.tar.gz";
+    sha256 = "1c6f6vmncw032kfzrfyr8bynw6yd3faxpy2285r009fmr0zxfs5s";
+  };
+
+  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 ];
+  };
+}
+# TODO: add it as "source file" for default package
diff --git a/nixpkgs/pkgs/applications/science/math/pcalc/default.nix b/nixpkgs/pkgs/applications/science/math/pcalc/default.nix
new file mode 100644
index 000000000000..3e7d9898a656
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/pcalc/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit, bison2, flex }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "pcalc-${version}";
+  version = "20141224";
+
+  src = fetchgit {
+    url = git://git.code.sf.net/p/pcalc/code;
+    rev = "181d60d3c880da4344fef7138065943eb3b9255f";
+    sha256 = "1hd5bh20j5xzvv6qa0fmzmv0h8sf38r7zgi7y0b6nk17pjq33v90";
+  };
+
+  makeFlags = [ "DESTDIR= BINDIR=$(out)/bin" ];
+  buildInputs = [ bison2 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/nixpkgs/pkgs/applications/science/math/perseus/default.nix b/nixpkgs/pkgs/applications/science/math/perseus/default.nix
new file mode 100644
index 000000000000..2d150d0c30e9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/polymake/default.nix b/nixpkgs/pkgs/applications/science/math/polymake/default.nix
new file mode 100644
index 000000000000..4fba231f094d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/polymake/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl
+, ninja, libxml2, libxslt, readline, perl, gmp, mpfr, boost
+, bliss, ppl, singular, cddlib, lrs, nauty
+, ant, openjdk
+, perlPackages
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  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/nixpkgs/pkgs/applications/science/math/pspp/default.nix b/nixpkgs/pkgs/applications/science/math/pspp/default.nix
new file mode 100644
index 000000000000..c53e87caa9ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/pspp/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, libxml2, readline, zlib, perl, cairo, gtk3, gsl
+, pkgconfig, gtksourceview, pango, gettext
+, makeWrapper, gsettings-desktop-schemas, hicolor-icon-theme
+, gnome3
+}:
+
+stdenv.mkDerivation rec {
+  name = "pspp-1.0.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/pspp/${name}.tar.gz";
+    sha256 = "1r8smr5057993h90nx0mdnff8nxw9x546zzh6qpy4h3xblp1la5s";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxml2 readline zlib perl cairo gtk3 gsl
+    gtksourceview pango gettext
+    makeWrapper gsettings-desktop-schemas hicolor-icon-theme ];
+
+  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 gnome3.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/nixpkgs/pkgs/applications/science/math/pynac/default.nix b/nixpkgs/pkgs/applications/science/math/pynac/default.nix
new file mode 100644
index 000000000000..9bbb695a331b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/pynac/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkgconfig
+, flint
+, gmp
+, python2
+, singular
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.7.22";
+  name = "pynac-${version}";
+
+  src = fetchFromGitHub {
+    owner = "pynac";
+    repo = "pynac";
+    rev = "pynac-${version}";
+    sha256 = "1ribm5vpbgsja4hbca1ckw4ln9kjkv608aaqsvxxvbs4z76ys6yi";
+  };
+
+  buildInputs = [
+    flint
+    gmp
+    singular
+    singular
+    python2
+  ];
+
+  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 = with maintainers; [ timokau ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix b/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
new file mode 100644
index 000000000000..42dc28534092
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, intltool, autoreconfHook, pkgconfig, libqalculate, gtk3, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "qalculate-gtk-${version}";
+  version = "2.8.2";
+
+  src = fetchFromGitHub {
+    owner = "qalculate";
+    repo = "qalculate-gtk";
+    rev = "v${version}";
+    sha256 = "0vdrpnarbwhappwgp38jjndnq30h1lh8hbk75i9rhkb7x4kblqfi";
+  };
+
+  patchPhase = ''
+    substituteInPlace src/main.cc --replace 'getPackageDataDir().c_str()' \"$out/share\"
+  '';
+
+  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 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix b/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
new file mode 100644
index 000000000000..2dd4778234df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, fetchpatch, gmp }:
+stdenv.mkDerivation rec {
+  name = "ratpoints-${version}";
+  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/nixpkgs/pkgs/applications/science/math/ries/default.nix b/nixpkgs/pkgs/applications/science/math/ries/default.nix
new file mode 100644
index 000000000000..4b237a01a3e5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/ripser/default.nix b/nixpkgs/pkgs/applications/science/math/ripser/default.nix
new file mode 100644
index 000000000000..5e0b7fc300ba
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/ripser/default.nix
@@ -0,0 +1,66 @@
+{ 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 {
+  name = "ripser-${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/nixpkgs/pkgs/applications/science/math/sage/README.md b/nixpkgs/pkgs/applications/science/math/sage/README.md
new file mode 100644
index 000000000000..26e91fc63133
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/sage/default.nix b/nixpkgs/pkgs/applications/science/math/sage/default.nix
new file mode 100644
index 000000000000..46e60a2b81e4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/default.nix
@@ -0,0 +1,181 @@
+{ 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) fetchurl 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 pynac singular;
+        linbox = pkgs.linbox.override { withSage = true; };
+      };
+    };
+  };
+
+  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;
+    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 rWrapper ecl singular palp flint pynac pythonEnv;
+    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;
+  };
+
+  # 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;
+    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
+
+  # needs to be rWrapper, standard "R" doesn't include default packages
+  rWrapper = pkgs.rWrapper.override {
+    # https://trac.sagemath.org/ticket/25674
+    R = pkgs.R.overrideAttrs (attrs: rec {
+      name = "R-3.4.4";
+      doCheck = false;
+      src = fetchurl {
+        url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
+        sha256 = "0dq3jsnwsb5j3fhl0wi3p5ycv8avf8s5j1y4ap3d2mkjmcppvsdk";
+      };
+    });
+  };
+
+  arb = pkgs.arb.override { inherit flint; };
+
+  singular = pkgs.singular.override { inherit flint; };
+
+  # *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/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix b/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
new file mode 100644
index 000000000000..9ec8d5cd83e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
@@ -0,0 +1,48 @@
+{ writeTextFile
+, pari_data
+, pari
+, singular
+, maxima-ecl
+, conway_polynomials
+, graphs
+, elliptic_curves
+, polytopes_db
+, gap-libgap-compatible
+, 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 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-libgap-compatible}/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/nixpkgs/pkgs/applications/science/math/sage/flask-oldsessions.nix b/nixpkgs/pkgs/applications/science/math/sage/flask-oldsessions.nix
new file mode 100644
index 000000000000..85e35736d030
--- /dev/null
+++ b/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 = with maintainers; [ timokau ];
+    homepage = https://github.com/mitsuhiko/flask-oldsessions;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/sage/flask-openid.nix b/nixpkgs/pkgs/applications/science/math/sage/flask-openid.nix
new file mode 100644
index 000000000000..9043fabd9b4a
--- /dev/null
+++ b/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 = with maintainers; [ timokau ];
+    homepage = https://pythonhosted.org/Flask-OpenID/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch b/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/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/nixpkgs/pkgs/applications/science/math/sage/patches/giac-1.5.0.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/giac-1.5.0.patch
new file mode 100644
index 000000000000..58090b241d2d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/patches/giac-1.5.0.patch
@@ -0,0 +1,14 @@
+--- a/src/sage/interfaces/giac.py	2018-12-08 22:11:56.285500644 +0100
++++ b/src/sage/interfaces/giac.py	2018-12-08 22:11:56.285500644 +0100
+@@ -617,10 +617,7 @@
+             '4\n3'
+             sage: s='g(x):={\nx+1;\nx+2;\n}'
+             sage: giac(s)
+-            (x)->{
+-            x+1;
+-            x+2;
+-            }
++            (x)->[x+1,x+2]
+             sage: giac.g(5)
+             7
+         """
diff --git a/nixpkgs/pkgs/applications/science/math/sage/patches/numpy-1.15.1.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/numpy-1.15.1.patch
new file mode 100644
index 000000000000..9e855ba4ad94
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/patches/numpy-1.15.1.patch
@@ -0,0 +1,911 @@
+diff --git a/src/doc/en/faq/faq-usage.rst b/src/doc/en/faq/faq-usage.rst
+index 2347a1190d..f5b0fe71a4 100644
+--- a/src/doc/en/faq/faq-usage.rst
++++ b/src/doc/en/faq/faq-usage.rst
+@@ -338,7 +338,7 @@ ints. For example::
+     sage: RealNumber = float; Integer = int
+     sage: from scipy import stats
+     sage: stats.ttest_ind(list([1,2,3,4,5]),list([2,3,4,5,.6]))
+-    Ttest_indResult(statistic=0.076752955645333687, pvalue=0.94070490247380478)
++    Ttest_indResult(statistic=0.0767529..., pvalue=0.940704...)
+     sage: stats.uniform(0,15).ppf([0.5,0.7])
+     array([  7.5,  10.5])
+ 
+diff --git a/src/doc/en/thematic_tutorials/numerical_sage/cvxopt.rst b/src/doc/en/thematic_tutorials/numerical_sage/cvxopt.rst
+index 314811c42b..e5f54ec4c2 100644
+--- a/src/doc/en/thematic_tutorials/numerical_sage/cvxopt.rst
++++ b/src/doc/en/thematic_tutorials/numerical_sage/cvxopt.rst
+@@ -48,11 +48,13 @@ we could do the following.
+     sage: B = numpy.array([1.0]*5)
+     sage: B.shape=(5,1)
+     sage: print(B)
+-    [[ 1.]
+-     [ 1.]
+-     [ 1.]
+-     [ 1.]
+-     [ 1.]]
++    [[1.]
++     [1.]
++     [1.]
++     [1.]
++     [1.]]
++
++
+     sage: print(A)
+     [ 2.00e+00  3.00e+00     0         0         0    ]
+     [ 3.00e+00     0      4.00e+00     0      6.00e+00]
+diff --git a/src/doc/en/thematic_tutorials/numerical_sage/numpy.rst b/src/doc/en/thematic_tutorials/numerical_sage/numpy.rst
+index 5b89cd75ee..e50b2ea5d4 100644
+--- a/src/doc/en/thematic_tutorials/numerical_sage/numpy.rst
++++ b/src/doc/en/thematic_tutorials/numerical_sage/numpy.rst
+@@ -84,7 +84,7 @@ well as take slices
+     sage: l[3]
+     3.0
+     sage: l[3:6]
+-    array([ 3.,  4.,  5.])
++    array([3., 4., 5.])
+ 
+ You can do basic arithmetic operations
+ 
+@@ -147,11 +147,11 @@ also do matrix vector multiplication, and matrix addition
+     sage: n = numpy.matrix([[1,2],[3,4]],dtype=float)
+     sage: v = numpy.array([[1],[2]],dtype=float)
+     sage: n*v
+-    matrix([[  5.],
+-            [ 11.]])
++    matrix([[ 5.],
++            [11.]])
+     sage: n+n
+-    matrix([[ 2.,  4.],
+-            [ 6.,  8.]])
++    matrix([[2., 4.],
++            [6., 8.]])
+ 
+ If ``n`` was created with :meth:`numpy.array`, then to do matrix vector
+ multiplication, you would use ``numpy.dot(n,v)``.
+@@ -170,11 +170,11 @@ to manipulate
+             22.,  23.,  24.])
+     sage: n.shape=(5,5)
+     sage: n
+-    array([[  0.,   1.,   2.,   3.,   4.],
+-           [  5.,   6.,   7.,   8.,   9.],
+-           [ 10.,  11.,  12.,  13.,  14.],
+-           [ 15.,  16.,  17.,  18.,  19.],
+-           [ 20.,  21.,  22.,  23.,  24.]])
++    array([[ 0.,  1.,  2.,  3.,  4.],
++           [ 5.,  6.,  7.,  8.,  9.],
++           [10., 11., 12., 13., 14.],
++           [15., 16., 17., 18., 19.],
++           [20., 21., 22., 23., 24.]])
+ 
+ This changes the one-dimensional array into a `5\times 5` array.
+ 
+@@ -187,8 +187,8 @@ NumPy arrays can be sliced as well
+     sage: n=numpy.array(range(25),dtype=float)
+     sage: n.shape=(5,5)
+     sage: n[2:4,1:3]
+-    array([[ 11.,  12.],
+-           [ 16.,  17.]])
++    array([[11., 12.],
++           [16., 17.]])
+ 
+ It is important to note that the sliced matrices are references to
+ the original
+@@ -224,8 +224,8 @@ Some particularly useful commands are
+ 
+     sage: x=numpy.arange(0,2,.1,dtype=float)
+     sage: x
+-    array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ,
+-            1.1,  1.2,  1.3,  1.4,  1.5,  1.6,  1.7,  1.8,  1.9])
++    array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2,
++           1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])
+ 
+ You can see that :meth:`numpy.arange` creates an array of floats increasing by 0.1
+ from 0 to 2. There is a useful command :meth:`numpy.r_` that is best explained by example
+@@ -240,10 +240,11 @@ from 0 to 2. There is a useful command :meth:`numpy.r_` that is best explained b
+     sage: Integer=int
+     sage: n=r_[0.0:5.0]
+     sage: n
+-    array([ 0.,  1.,  2.,  3.,  4.])
++    array([0., 1., 2., 3., 4.])
+     sage: n=r_[0.0:5.0, [0.0]*5]
+     sage: n
+-    array([ 0.,  1.,  2.,  3.,  4.,  0.,  0.,  0.,  0.,  0.])
++    array([0., 1., 2., 3., 4., 0., 0., 0., 0., 0.])
++
+ 
+ :meth:`numpy.r_` provides a shorthand for constructing NumPy arrays efficiently.
+ Note in the above ``0.0:5.0`` was shorthand for ``0.0, 1.0, 2.0, 3.0, 4.0``.
+@@ -255,7 +256,7 @@ intervals. We can do this as follows
+ ::
+ 
+     sage: r_[0.0:5.0:11*j]
+-    array([ 0. ,  0.5,  1. ,  1.5,  2. ,  2.5,  3. ,  3.5,  4. ,  4.5,  5. ])
++    array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ])
+ 
+ The notation ``0.0:5.0:11*j`` expands to a list of 11 equally space
+ points between 0 and 5 including both endpoints. Note that ``j`` is the
+@@ -287,23 +288,23 @@ an equally spaced grid with `\Delta x = \Delta y = .25` for
+     sage: y=numpy.r_[0.0:1.0:5*j]
+     sage: xx,yy= meshgrid(x,y)
+     sage: xx
+-    array([[ 0.  ,  0.25,  0.5 ,  0.75,  1.  ],
+-           [ 0.  ,  0.25,  0.5 ,  0.75,  1.  ],
+-           [ 0.  ,  0.25,  0.5 ,  0.75,  1.  ],
+-           [ 0.  ,  0.25,  0.5 ,  0.75,  1.  ],
+-           [ 0.  ,  0.25,  0.5 ,  0.75,  1.  ]])
++    array([[0.  , 0.25, 0.5 , 0.75, 1.  ],
++           [0.  , 0.25, 0.5 , 0.75, 1.  ],
++           [0.  , 0.25, 0.5 , 0.75, 1.  ],
++           [0.  , 0.25, 0.5 , 0.75, 1.  ],
++           [0.  , 0.25, 0.5 , 0.75, 1.  ]])
+     sage: yy
+-    array([[ 0.  ,  0.  ,  0.  ,  0.  ,  0.  ],
+-           [ 0.25,  0.25,  0.25,  0.25,  0.25],
+-           [ 0.5 ,  0.5 ,  0.5 ,  0.5 ,  0.5 ],
+-           [ 0.75,  0.75,  0.75,  0.75,  0.75],
+-           [ 1.  ,  1.  ,  1.  ,  1.  ,  1.  ]])
++    array([[0.  , 0.  , 0.  , 0.  , 0.  ],
++           [0.25, 0.25, 0.25, 0.25, 0.25],
++           [0.5 , 0.5 , 0.5 , 0.5 , 0.5 ],
++           [0.75, 0.75, 0.75, 0.75, 0.75],
++           [1.  , 1.  , 1.  , 1.  , 1.  ]])
+     sage: f(xx,yy)
+-    array([[ 0.    ,  0.0625,  0.25  ,  0.5625,  1.    ],
+-           [ 0.0625,  0.125 ,  0.3125,  0.625 ,  1.0625],
+-           [ 0.25  ,  0.3125,  0.5   ,  0.8125,  1.25  ],
+-           [ 0.5625,  0.625 ,  0.8125,  1.125 ,  1.5625],
+-           [ 1.    ,  1.0625,  1.25  ,  1.5625,  2.    ]])
++    array([[0.    , 0.0625, 0.25  , 0.5625, 1.    ],
++           [0.0625, 0.125 , 0.3125, 0.625 , 1.0625],
++           [0.25  , 0.3125, 0.5   , 0.8125, 1.25  ],
++           [0.5625, 0.625 , 0.8125, 1.125 , 1.5625],
++           [1.    , 1.0625, 1.25  , 1.5625, 2.    ]])
+ 
+ You can see that :meth:`numpy.meshgrid` produces a pair of matrices, here denoted
+ `xx` and `yy`, such that `(xx[i,j],yy[i,j])` has coordinates
+@@ -324,7 +325,7 @@ equation `Ax=b` do
+     sage: b=numpy.array(range(1,6))
+     sage: x=linalg.solve(A,b)
+     sage: numpy.dot(A,x)
+-    array([ 1.,  2.,  3.,  4., 5.])
++    array([1., 2., 3., 4., 5.])
+ 
+ This creates a random 5x5 matrix ``A``, and solves `Ax=b` where
+ ``b=[0.0,1.0,2.0,3.0,4.0]``. There are many other routines in the :mod:`numpy.linalg`
+diff --git a/src/sage/calculus/riemann.pyx b/src/sage/calculus/riemann.pyx
+index 60f37f7557..4ac3dedf1d 100644
+--- a/src/sage/calculus/riemann.pyx
++++ b/src/sage/calculus/riemann.pyx
+@@ -1191,30 +1191,30 @@ cpdef complex_to_spiderweb(np.ndarray[COMPLEX_T, ndim = 2] z_values,
+         sage: zval = numpy.array([[0, 1, 1000],[.2+.3j,1,-.3j],[0,0,0]],dtype = numpy.complex128)
+         sage: deriv = numpy.array([[.1]],dtype = numpy.float64)
+         sage: complex_to_spiderweb(zval, deriv,deriv, 4,4,[0,0,0],1,False,0.001)
+-        array([[[ 1.,  1.,  1.],
+-                [ 1.,  1.,  1.],
+-                [ 1.,  1.,  1.]],
++        array([[[1., 1., 1.],
++                [1., 1., 1.],
++                [1., 1., 1.]],
+         <BLANKLINE>
+-               [[ 1.,  1.,  1.],
+-                [ 0.,  0.,  0.],
+-                [ 1.,  1.,  1.]],
++               [[1., 1., 1.],
++                [0., 0., 0.],
++                [1., 1., 1.]],
+         <BLANKLINE>
+-               [[ 1.,  1.,  1.],
+-                [ 1.,  1.,  1.],
+-                [ 1.,  1.,  1.]]])
++               [[1., 1., 1.],
++                [1., 1., 1.],
++                [1., 1., 1.]]])
+ 
+         sage: complex_to_spiderweb(zval, deriv,deriv, 4,4,[0,0,0],1,True,0.001)
+-        array([[[ 1.        ,  1.        ,  1.        ],
+-                [ 1.        ,  0.05558355,  0.05558355],
+-                [ 0.17301243,  0.        ,  0.        ]],
++        array([[[1.        , 1.        , 1.        ],
++                [1.        , 0.05558355, 0.05558355],
++                [0.17301243, 0.        , 0.        ]],
+         <BLANKLINE>
+-               [[ 1.        ,  0.96804683,  0.48044583],
+-                [ 0.        ,  0.        ,  0.        ],
+-                [ 0.77351965,  0.5470393 ,  1.        ]],
++               [[1.        , 0.96804683, 0.48044583],
++                [0.        , 0.        , 0.        ],
++                [0.77351965, 0.5470393 , 1.        ]],
+         <BLANKLINE>
+-               [[ 1.        ,  1.        ,  1.        ],
+-                [ 1.        ,  1.        ,  1.        ],
+-                [ 1.        ,  1.        ,  1.        ]]])
++               [[1.        , 1.        , 1.        ],
++                [1.        , 1.        , 1.        ],
++                [1.        , 1.        , 1.        ]]])
+      """
+     cdef Py_ssize_t i, j, imax, jmax
+     cdef FLOAT_T x, y, mag, arg, width, target, precision, dmag, darg
+@@ -1279,14 +1279,14 @@ cpdef complex_to_rgb(np.ndarray[COMPLEX_T, ndim = 2] z_values):
+         sage: from sage.calculus.riemann import complex_to_rgb
+         sage: import numpy
+         sage: complex_to_rgb(numpy.array([[0, 1, 1000]], dtype = numpy.complex128))
+-        array([[[ 1.        ,  1.        ,  1.        ],
+-                [ 1.        ,  0.05558355,  0.05558355],
+-                [ 0.17301243,  0.        ,  0.        ]]])
++        array([[[1.        , 1.        , 1.        ],
++                [1.        , 0.05558355, 0.05558355],
++                [0.17301243, 0.        , 0.        ]]])
+ 
+         sage: complex_to_rgb(numpy.array([[0, 1j, 1000j]], dtype = numpy.complex128))
+-        array([[[ 1.        ,  1.        ,  1.        ],
+-                [ 0.52779177,  1.        ,  0.05558355],
+-                [ 0.08650622,  0.17301243,  0.        ]]])
++        array([[[1.        , 1.        , 1.        ],
++                [0.52779177, 1.        , 0.05558355],
++                [0.08650622, 0.17301243, 0.        ]]])
+ 
+ 
+     TESTS::
+diff --git a/src/sage/combinat/fully_packed_loop.py b/src/sage/combinat/fully_packed_loop.py
+index 0a9bd61267..d2193cc2d6 100644
+--- a/src/sage/combinat/fully_packed_loop.py
++++ b/src/sage/combinat/fully_packed_loop.py
+@@ -72,11 +72,11 @@ def _make_color_list(n, colors=None,  color_map=None, randomize=False):
+         sage: _make_color_list(5, ['blue', 'red'])
+         ['blue', 'red', 'blue', 'red', 'blue']
+         sage: _make_color_list(5, color_map='summer')
+-        [(0.0, 0.5, 0.40000000000000002),
+-         (0.25098039215686274, 0.62549019607843137, 0.40000000000000002),
+-         (0.50196078431372548, 0.75098039215686274, 0.40000000000000002),
+-         (0.75294117647058822, 0.87647058823529411, 0.40000000000000002),
+-         (1.0, 1.0, 0.40000000000000002)]
++        [(0.0, 0.5, 0.4),
++         (0.25098039215686274, 0.6254901960784314, 0.4),
++         (0.5019607843137255, 0.7509803921568627, 0.4),
++         (0.7529411764705882, 0.8764705882352941, 0.4),
++         (1.0, 1.0, 0.4)]
+         sage: _make_color_list(8, ['blue', 'red'], randomize=True)
+         ['blue', 'blue', 'red', 'blue', 'red', 'red', 'red', 'blue']
+     """
+diff --git a/src/sage/finance/time_series.pyx b/src/sage/finance/time_series.pyx
+index 28779365df..3ab0282861 100644
+--- a/src/sage/finance/time_series.pyx
++++ b/src/sage/finance/time_series.pyx
+@@ -111,8 +111,8 @@ cdef class TimeSeries:
+ 
+             sage: import numpy
+             sage: v = numpy.array([[1,2], [3,4]], dtype=float); v
+-            array([[ 1.,  2.],
+-                   [ 3.,  4.]])
++            array([[1., 2.],
++                   [3., 4.]])
+             sage: finance.TimeSeries(v)
+             [1.0000, 2.0000, 3.0000, 4.0000]
+             sage: finance.TimeSeries(v[:,0])
+@@ -2100,14 +2100,14 @@ cdef class TimeSeries:
+ 
+             sage: w[0] = 20
+             sage: w
+-            array([ 20. ,  -3. ,   4.5,  -2. ])
++            array([20. , -3. ,  4.5, -2. ])
+             sage: v
+             [20.0000, -3.0000, 4.5000, -2.0000]
+ 
+         If you want a separate copy do not give the ``copy=False`` option. ::
+ 
+             sage: z = v.numpy(); z
+-            array([ 20. ,  -3. ,   4.5,  -2. ])
++            array([20. , -3. ,  4.5, -2. ])
+             sage: z[0] = -10
+             sage: v
+             [20.0000, -3.0000, 4.5000, -2.0000]
+diff --git a/src/sage/functions/hyperbolic.py b/src/sage/functions/hyperbolic.py
+index aff552f450..7a6df931e7 100644
+--- a/src/sage/functions/hyperbolic.py
++++ b/src/sage/functions/hyperbolic.py
+@@ -214,7 +214,7 @@ class Function_coth(GinacFunction):
+             sage: import numpy
+             sage: a = numpy.arange(2, 5)
+             sage: coth(a)
+-            array([ 1.03731472,  1.00496982,  1.00067115])
++            array([1.03731472, 1.00496982, 1.00067115])
+         """
+         return 1.0 / tanh(x)
+ 
+@@ -267,7 +267,7 @@ class Function_sech(GinacFunction):
+             sage: import numpy
+             sage: a = numpy.arange(2, 5)
+             sage: sech(a)
+-            array([ 0.26580223,  0.09932793,  0.03661899])
++            array([0.26580223, 0.09932793, 0.03661899])
+         """
+         return 1.0 / cosh(x)
+ 
+@@ -318,7 +318,7 @@ class Function_csch(GinacFunction):
+             sage: import numpy
+             sage: a = numpy.arange(2, 5)
+             sage: csch(a)
+-            array([ 0.27572056,  0.09982157,  0.03664357])
++            array([0.27572056, 0.09982157, 0.03664357])
+         """
+         return 1.0 / sinh(x)
+ 
+@@ -586,7 +586,7 @@ class Function_arccoth(GinacFunction):
+             sage: import numpy
+             sage: a = numpy.arange(2,5)
+             sage: acoth(a)
+-            array([ 0.54930614,  0.34657359,  0.25541281])
++            array([0.54930614, 0.34657359, 0.25541281])
+         """
+         return arctanh(1.0 / x)
+ 
+diff --git a/src/sage/functions/orthogonal_polys.py b/src/sage/functions/orthogonal_polys.py
+index ed6365bef4..99b8b04dad 100644
+--- a/src/sage/functions/orthogonal_polys.py
++++ b/src/sage/functions/orthogonal_polys.py
+@@ -810,12 +810,12 @@ class Func_chebyshev_T(ChebyshevFunction):
+             sage: z2 = numpy.array([[1,2],[1,2]])
+             sage: z3 = numpy.array([1,2,3.])
+             sage: chebyshev_T(1,z)
+-            array([ 1.,  2.])
++            array([1., 2.])
+             sage: chebyshev_T(1,z2)
+-            array([[ 1.,  2.],
+-                   [ 1.,  2.]])
++            array([[1., 2.],
++                   [1., 2.]])
+             sage: chebyshev_T(1,z3)
+-            array([ 1.,  2.,  3.])
++            array([1., 2., 3.])
+             sage: chebyshev_T(z,0.1)
+             array([ 0.1 , -0.98])
+         """
+@@ -1095,12 +1095,12 @@ class Func_chebyshev_U(ChebyshevFunction):
+             sage: z2 = numpy.array([[1,2],[1,2]])
+             sage: z3 = numpy.array([1,2,3.])
+             sage: chebyshev_U(1,z)
+-            array([ 2.,  4.])
++            array([2., 4.])
+             sage: chebyshev_U(1,z2)
+-            array([[ 2.,  4.],
+-                   [ 2.,  4.]])
++            array([[2., 4.],
++                   [2., 4.]])
+             sage: chebyshev_U(1,z3)
+-            array([ 2.,  4.,  6.])
++            array([2., 4., 6.])
+             sage: chebyshev_U(z,0.1)
+             array([ 0.2 , -0.96])
+         """
+diff --git a/src/sage/functions/other.py b/src/sage/functions/other.py
+index 1883daa3e6..9885222817 100644
+--- a/src/sage/functions/other.py
++++ b/src/sage/functions/other.py
+@@ -389,7 +389,7 @@ class Function_ceil(BuiltinFunction):
+             sage: import numpy
+             sage: a = numpy.linspace(0,2,6)
+             sage: ceil(a)
+-            array([ 0.,  1.,  1.,  2.,  2.,  2.])
++            array([0., 1., 1., 2., 2., 2.])
+ 
+         Test pickling::
+ 
+@@ -553,7 +553,7 @@ class Function_floor(BuiltinFunction):
+             sage: import numpy
+             sage: a = numpy.linspace(0,2,6)
+             sage: floor(a)
+-            array([ 0.,  0.,  0.,  1.,  1.,  2.])
++            array([0., 0., 0., 1., 1., 2.])
+             sage: floor(x)._sympy_()
+             floor(x)
+ 
+@@ -869,7 +869,7 @@ def sqrt(x, *args, **kwds):
+             sage: import numpy
+             sage: a = numpy.arange(2,5)
+             sage: sqrt(a)
+-            array([ 1.41421356,  1.73205081,  2.        ])
++            array([1.41421356, 1.73205081, 2.        ])
+         """
+         if isinstance(x, float):
+             return math.sqrt(x)
+diff --git a/src/sage/functions/spike_function.py b/src/sage/functions/spike_function.py
+index 1e021de3fe..56635ca98f 100644
+--- a/src/sage/functions/spike_function.py
++++ b/src/sage/functions/spike_function.py
+@@ -157,7 +157,7 @@ class SpikeFunction:
+             sage: S = spike_function([(-3,4),(-1,1),(2,3)]); S
+             A spike function with spikes at [-3.0, -1.0, 2.0]
+             sage: P = S.plot_fft_abs(8)
+-            sage: p = P[0]; p.ydata
++            sage: p = P[0]; p.ydata  # abs tol 1e-8
+             [5.0, 5.0, 3.367958691924177, 3.367958691924177, 4.123105625617661, 4.123105625617661, 4.759921664218055, 4.759921664218055]
+         """
+         w = self.vector(samples = samples, xmin=xmin, xmax=xmax)
+@@ -176,8 +176,8 @@ class SpikeFunction:
+             sage: S = spike_function([(-3,4),(-1,1),(2,3)]); S
+             A spike function with spikes at [-3.0, -1.0, 2.0]
+             sage: P = S.plot_fft_arg(8)
+-            sage: p = P[0]; p.ydata
+-            [0.0, 0.0, -0.211524990023434..., -0.211524990023434..., 0.244978663126864..., 0.244978663126864..., -0.149106180027477..., -0.149106180027477...]
++            sage: p = P[0]; p.ydata  # abs tol 1e-8
++            [0.0, 0.0, -0.211524990023434, -0.211524990023434, 0.244978663126864, 0.244978663126864, -0.149106180027477, -0.149106180027477]
+         """
+         w = self.vector(samples = samples, xmin=xmin, xmax=xmax)
+         xmin, xmax = self._ranges(xmin, xmax)
+diff --git a/src/sage/functions/trig.py b/src/sage/functions/trig.py
+index 501e7ff6b6..5f760912f0 100644
+--- a/src/sage/functions/trig.py
++++ b/src/sage/functions/trig.py
+@@ -724,7 +724,7 @@ class Function_arccot(GinacFunction):
+             sage: import numpy
+             sage: a = numpy.arange(2, 5)
+             sage: arccot(a)
+-            array([ 0.46364761,  0.32175055,  0.24497866])
++            array([0.46364761, 0.32175055, 0.24497866])
+         """
+         return math.pi/2 - arctan(x)
+ 
+@@ -780,7 +780,7 @@ class Function_arccsc(GinacFunction):
+             sage: import numpy
+             sage: a = numpy.arange(2, 5)
+             sage: arccsc(a)
+-            array([ 0.52359878,  0.33983691,  0.25268026])
++            array([0.52359878, 0.33983691, 0.25268026])
+         """
+         return arcsin(1.0/x)
+ 
+@@ -838,7 +838,7 @@ class Function_arcsec(GinacFunction):
+             sage: import numpy
+             sage: a = numpy.arange(2, 5)
+             sage: arcsec(a)
+-            array([ 1.04719755,  1.23095942,  1.31811607])
++            array([1.04719755, 1.23095942, 1.31811607])
+         """
+         return arccos(1.0/x)
+ 
+@@ -913,13 +913,13 @@ class Function_arctan2(GinacFunction):
+             sage: a = numpy.linspace(1, 3, 3)
+             sage: b = numpy.linspace(3, 6, 3)
+             sage: atan2(a, b)
+-            array([ 0.32175055,  0.41822433,  0.46364761])
++            array([0.32175055, 0.41822433, 0.46364761])
+ 
+             sage: atan2(1,a)
+-            array([ 0.78539816,  0.46364761,  0.32175055])
++            array([0.78539816, 0.46364761, 0.32175055])
+ 
+             sage: atan2(a, 1)
+-            array([ 0.78539816,  1.10714872,  1.24904577])
++            array([0.78539816, 1.10714872, 1.24904577])
+ 
+         TESTS::
+ 
+diff --git a/src/sage/matrix/constructor.pyx b/src/sage/matrix/constructor.pyx
+index 12136f1773..491bf22e62 100644
+--- a/src/sage/matrix/constructor.pyx
++++ b/src/sage/matrix/constructor.pyx
+@@ -503,8 +503,8 @@ def matrix(*args, **kwds):
+         [7 8 9]
+         Full MatrixSpace of 3 by 3 dense matrices over Integer Ring
+         sage: n = matrix(QQ, 2, 2, [1, 1/2, 1/3, 1/4]).numpy(); n
+-        array([[ 1.        ,  0.5       ],
+-               [ 0.33333333,  0.25      ]])
++        array([[1.        , 0.5       ],
++               [0.33333333, 0.25      ]])
+         sage: matrix(QQ, n)
+         [  1 1/2]
+         [1/3 1/4]
+diff --git a/src/sage/matrix/matrix_double_dense.pyx b/src/sage/matrix/matrix_double_dense.pyx
+index 66e54a79a4..0498334f4b 100644
+--- a/src/sage/matrix/matrix_double_dense.pyx
++++ b/src/sage/matrix/matrix_double_dense.pyx
+@@ -606,6 +606,9 @@ cdef class Matrix_double_dense(Matrix_dense):
+             [ 3.0 + 9.0*I 4.0 + 16.0*I 5.0 + 25.0*I]
+             [6.0 + 36.0*I 7.0 + 49.0*I 8.0 + 64.0*I]
+             sage: B.condition()
++            doctest:warning
++            ...
++            ComplexWarning: Casting complex values to real discards the imaginary part
+             203.851798...
+             sage: B.condition(p='frob')
+             203.851798...
+@@ -654,9 +657,7 @@ cdef class Matrix_double_dense(Matrix_dense):
+             True
+             sage: B = A.change_ring(CDF)
+             sage: B.condition()
+-            Traceback (most recent call last):
+-            ...
+-            LinAlgError: Singular matrix
++            +Infinity
+ 
+         Improper values of ``p`` are caught.  ::
+ 
+@@ -2519,7 +2520,7 @@ cdef class Matrix_double_dense(Matrix_dense):
+             sage: P.is_unitary(algorithm='orthonormal')
+             Traceback (most recent call last):
+             ...
+-            ValueError: failed to create intent(cache|hide)|optional array-- must have defined dimensions but got (0,)
++            error: ((lwork==-1)||(lwork >= MAX(1,2*n))) failed for 3rd keyword lwork: zgees:lwork=0
+ 
+         TESTS::
+ 
+@@ -3635,8 +3636,8 @@ cdef class Matrix_double_dense(Matrix_dense):
+             [0.0 1.0 2.0]
+             [3.0 4.0 5.0]
+             sage: m.numpy()
+-            array([[ 0.,  1.,  2.],
+-                   [ 3.,  4.,  5.]])
++            array([[0., 1., 2.],
++                   [3., 4., 5.]])
+ 
+         Alternatively, numpy automatically calls this function (via
+         the magic :meth:`__array__` method) to convert Sage matrices
+@@ -3647,16 +3648,16 @@ cdef class Matrix_double_dense(Matrix_dense):
+             [0.0 1.0 2.0]
+             [3.0 4.0 5.0]
+             sage: numpy.array(m)
+-            array([[ 0.,  1.,  2.],
+-                   [ 3.,  4.,  5.]])
++            array([[0., 1., 2.],
++                   [3., 4., 5.]])
+             sage: numpy.array(m).dtype
+             dtype('float64')
+             sage: m = matrix(CDF, 2, range(6)); m
+             [0.0 1.0 2.0]
+             [3.0 4.0 5.0]
+             sage: numpy.array(m)
+-            array([[ 0.+0.j,  1.+0.j,  2.+0.j],
+-                   [ 3.+0.j,  4.+0.j,  5.+0.j]])
++            array([[0.+0.j, 1.+0.j, 2.+0.j],
++                   [3.+0.j, 4.+0.j, 5.+0.j]])
+             sage: numpy.array(m).dtype
+             dtype('complex128')
+ 
+diff --git a/src/sage/matrix/special.py b/src/sage/matrix/special.py
+index ccbd208810..c3f9a65093 100644
+--- a/src/sage/matrix/special.py
++++ b/src/sage/matrix/special.py
+@@ -706,7 +706,7 @@ def diagonal_matrix(arg0=None, arg1=None, arg2=None, sparse=True):
+ 
+         sage: import numpy
+         sage: entries = numpy.array([1.2, 5.6]); entries
+-        array([ 1.2,  5.6])
++        array([1.2, 5.6])
+         sage: A = diagonal_matrix(3, entries); A
+         [1.2 0.0 0.0]
+         [0.0 5.6 0.0]
+@@ -716,7 +716,7 @@ def diagonal_matrix(arg0=None, arg1=None, arg2=None, sparse=True):
+ 
+         sage: j = numpy.complex(0,1)
+         sage: entries = numpy.array([2.0+j, 8.1, 3.4+2.6*j]); entries
+-        array([ 2.0+1.j ,  8.1+0.j ,  3.4+2.6j])
++        array([2. +1.j , 8.1+0.j , 3.4+2.6j])
+         sage: A = diagonal_matrix(entries); A
+         [2.0 + 1.0*I         0.0         0.0]
+         [        0.0         8.1         0.0]
+diff --git a/src/sage/modules/free_module_element.pyx b/src/sage/modules/free_module_element.pyx
+index 37d92c1282..955d083b34 100644
+--- a/src/sage/modules/free_module_element.pyx
++++ b/src/sage/modules/free_module_element.pyx
+@@ -988,7 +988,7 @@ cdef class FreeModuleElement(Vector):   # abstract base class
+             sage: v.numpy()
+             array([1, 2, 5/6], dtype=object)
+             sage: v.numpy(dtype=float)
+-            array([ 1.        ,  2.        ,  0.83333333])
++            array([1.        , 2.        , 0.83333333])
+             sage: v.numpy(dtype=int)
+             array([1, 2, 0])
+             sage: import numpy
+@@ -999,7 +999,7 @@ cdef class FreeModuleElement(Vector):   # abstract base class
+         be more efficient but may have unintended consequences::
+ 
+             sage: v.numpy(dtype=None)
+-            array([ 1.        ,  2.        ,  0.83333333])
++            array([1.        , 2.        , 0.83333333])
+ 
+             sage: w = vector(ZZ, [0, 1, 2^63 -1]); w
+             (0, 1, 9223372036854775807)
+diff --git a/src/sage/modules/vector_double_dense.pyx b/src/sage/modules/vector_double_dense.pyx
+index 39fc2970de..2badf98284 100644
+--- a/src/sage/modules/vector_double_dense.pyx
++++ b/src/sage/modules/vector_double_dense.pyx
+@@ -807,13 +807,13 @@ cdef class Vector_double_dense(FreeModuleElement):
+ 
+             sage: v = vector(CDF,4,range(4))
+             sage: v.numpy()
+-            array([ 0.+0.j,  1.+0.j,  2.+0.j,  3.+0.j])
++            array([0.+0.j, 1.+0.j, 2.+0.j, 3.+0.j])
+             sage: v = vector(CDF,0)
+             sage: v.numpy()
+             array([], dtype=complex128)
+             sage: v = vector(RDF,4,range(4))
+             sage: v.numpy()
+-            array([ 0.,  1.,  2.,  3.])
++            array([0., 1., 2., 3.])
+             sage: v = vector(RDF,0)
+             sage: v.numpy()
+             array([], dtype=float64)
+@@ -823,11 +823,11 @@ cdef class Vector_double_dense(FreeModuleElement):
+             sage: import numpy
+             sage: v = vector(CDF, 3, range(3))
+             sage: v.numpy()
+-            array([ 0.+0.j,  1.+0.j,  2.+0.j])
++            array([0.+0.j, 1.+0.j, 2.+0.j])
+             sage: v.numpy(dtype=numpy.float64)
+-            array([ 0.,  1.,  2.])
++            array([0., 1., 2.])
+             sage: v.numpy(dtype=numpy.float32)
+-            array([ 0.,  1.,  2.], dtype=float32)
++            array([0., 1., 2.], dtype=float32)
+         """
+         if dtype is None or dtype is self._vector_numpy.dtype:
+             from copy import copy
+diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx
+index ad9693da62..758fb709b7 100644
+--- a/src/sage/plot/complex_plot.pyx
++++ b/src/sage/plot/complex_plot.pyx
+@@ -61,9 +61,9 @@ cdef inline double mag_to_lightness(double r):
+ 
+         sage: from sage.plot.complex_plot import complex_to_rgb
+         sage: complex_to_rgb([[0, 1, 10]])
+-        array([[[ 0.        ,  0.        ,  0.        ],
+-                [ 0.77172568,  0.        ,  0.        ],
+-                [ 1.        ,  0.22134776,  0.22134776]]])
++        array([[[0.        , 0.        , 0.        ],
++                [0.77172568, 0.        , 0.        ],
++                [1.        , 0.22134776, 0.22134776]]])
+     """
+     return atan(log(sqrt(r)+1)) * (4/PI) - 1
+ 
+@@ -82,13 +82,13 @@ def complex_to_rgb(z_values):
+ 
+         sage: from sage.plot.complex_plot import complex_to_rgb
+         sage: complex_to_rgb([[0, 1, 1000]])
+-        array([[[ 0.        ,  0.        ,  0.        ],
+-                [ 0.77172568,  0.        ,  0.        ],
+-                [ 1.        ,  0.64421177,  0.64421177]]])
++        array([[[0.        , 0.        , 0.        ],
++                [0.77172568, 0.        , 0.        ],
++                [1.        , 0.64421177, 0.64421177]]])
+         sage: complex_to_rgb([[0, 1j, 1000j]])
+-        array([[[ 0.        ,  0.        ,  0.        ],
+-                [ 0.38586284,  0.77172568,  0.        ],
+-                [ 0.82210588,  1.        ,  0.64421177]]])
++        array([[[0.        , 0.        , 0.        ],
++                [0.38586284, 0.77172568, 0.        ],
++                [0.82210588, 1.        , 0.64421177]]])
+     """
+     import numpy
+     cdef unsigned int i, j, imax, jmax
+diff --git a/src/sage/plot/histogram.py b/src/sage/plot/histogram.py
+index 5d28473731..fc4b2046c0 100644
+--- a/src/sage/plot/histogram.py
++++ b/src/sage/plot/histogram.py
+@@ -53,10 +53,17 @@ class Histogram(GraphicPrimitive):
+         """
+         import numpy as np
+         self.datalist=np.asarray(datalist,dtype=float)
++        if 'normed' in options:
++            from sage.misc.superseded import deprecation
++            deprecation(25260, "the 'normed' option is deprecated. Use 'density' instead.")
+         if 'linestyle' in options:
+             from sage.plot.misc import get_matplotlib_linestyle
+             options['linestyle'] = get_matplotlib_linestyle(
+                     options['linestyle'], return_type='long')
++        if options.get('range', None):
++            # numpy.histogram performs type checks on "range" so this must be
++            # actual floats
++            options['range'] = [float(x) for x in options['range']]
+         GraphicPrimitive.__init__(self, options)
+ 
+     def get_minmax_data(self):
+@@ -80,10 +87,14 @@ class Histogram(GraphicPrimitive):
+             {'xmax': 4.0, 'xmin': 0, 'ymax': 2, 'ymin': 0}
+ 
+         TESTS::
+-
+             sage: h = histogram([10,3,5], normed=True)[0]
+-            sage: h.get_minmax_data()  # rel tol 1e-15
+-            {'xmax': 10.0, 'xmin': 3.0, 'ymax': 0.4761904761904765, 'ymin': 0}
++            doctest:warning...:
++            DeprecationWarning: the 'normed' option is deprecated. Use 'density' instead.
++            See https://trac.sagemath.org/25260 for details.
++            sage: h.get_minmax_data()
++            doctest:warning ...:
++            VisibleDeprecationWarning: Passing `normed=True` on non-uniform bins has always been broken, and computes neither the probability density function nor the probability mass function. The result is only correct if the bins are uniform, when density=True will produce the same result anyway. The argument will be removed in a future version of numpy.
++            {'xmax': 10.0, 'xmin': 3.0, 'ymax': 0.476190476190..., 'ymin': 0}
+         """
+         import numpy
+ 
+@@ -152,7 +163,7 @@ class Histogram(GraphicPrimitive):
+                 'rwidth': 'The relative width of the bars as a fraction of the bin width',
+                 'cumulative': '(True or False) If True, then a histogram is computed in which each bin gives the counts in that bin plus all bins for smaller values.  Negative values give a reversed direction of accumulation.',
+                 'range': 'A list [min, max] which define the range of the histogram. Values outside of this range are treated as outliers and omitted from counts.',
+-                'normed': 'Deprecated alias for density',
++                'normed': 'Deprecated. Use density instead.',
+                 'density': '(True or False) If True, the counts are normalized to form a probability density. (n/(len(x)*dbin)',
+                 'weights': 'A sequence of weights the same length as the data list. If supplied, then each value contributes its associated weight to the bin count.',
+                 'stacked': '(True or False) If True, multiple data are stacked on top of each other.',
+@@ -199,7 +210,7 @@ class Histogram(GraphicPrimitive):
+             subplot.hist(self.datalist.transpose(), **options)
+ 
+ 
+-@options(aspect_ratio='automatic',align='mid', weights=None, range=None, bins=10, edgecolor='black')
++@options(aspect_ratio='automatic', align='mid', weights=None, range=None, bins=10, edgecolor='black')
+ def histogram(datalist, **options):
+     """
+     Computes and draws the histogram for list(s) of numerical data.
+@@ -231,8 +242,9 @@ def histogram(datalist, **options):
+     - ``linewidth`` -- (float) width of the lines defining the bars
+     - ``linestyle`` -- (default: 'solid') Style of the line. One of 'solid'
+       or '-', 'dashed' or '--', 'dotted' or ':', 'dashdot' or '-.'
+-    - ``density`` -- (boolean - default: False) If True, the counts are
+-      normalized to form a probability density.
++    - ``density`` -- (boolean - default: False) If True, the result is the
++      value of the probability density function at the bin, normalized such
++      that the integral over the range is 1.
+     - ``range`` -- A list [min, max] which define the range of the
+       histogram. Values outside of this range are treated as outliers and
+       omitted from counts
+diff --git a/src/sage/plot/line.py b/src/sage/plot/line.py
+index 23f5e61446..3b1b51d7cf 100644
+--- a/src/sage/plot/line.py
++++ b/src/sage/plot/line.py
+@@ -502,14 +502,12 @@ def line2d(points, **options):
+     from sage.plot.all import Graphics
+     from sage.plot.plot import xydata_from_point_list
+     from sage.rings.all import CC, CDF
++    points = list(points) # make sure points is a python list
+     if points in CC or points in CDF:
+         pass
+     else:
+-        try:
+-            if not points:
+-                return Graphics()
+-        except ValueError: # numpy raises a ValueError if not empty
+-            pass
++        if len(points) == 0:
++            return Graphics()
+     xdata, ydata = xydata_from_point_list(points)
+     g = Graphics()
+     g._set_extra_kwds(Graphics._extract_kwds_for_show(options))
+diff --git a/src/sage/plot/plot_field.py b/src/sage/plot/plot_field.py
+index 0025098a8d..23c80902f3 100644
+--- a/src/sage/plot/plot_field.py
++++ b/src/sage/plot/plot_field.py
+@@ -49,9 +49,10 @@ class PlotField(GraphicPrimitive):
+             sage: r.xpos_array
+             [0.0, 0.0, 1.0, 1.0]
+             sage: r.yvec_array
+-            masked_array(data = [0.0 0.70710678118... 0.70710678118... 0.89442719...],
+-                         mask = [False False False False],
+-                   fill_value = 1e+20)
++            masked_array(data=[0.0, 0.70710678118..., 0.70710678118...,
++                               0.89442719...],
++                         mask=[False, False, False, False],
++                   fill_value=1e+20)
+ 
+         TESTS:
+ 
+diff --git a/src/sage/plot/streamline_plot.py b/src/sage/plot/streamline_plot.py
+index f3da57c370..3806f4b32f 100644
+--- a/src/sage/plot/streamline_plot.py
++++ b/src/sage/plot/streamline_plot.py
+@@ -38,16 +38,14 @@ class StreamlinePlot(GraphicPrimitive):
+             sage: r.options()['plot_points']
+             2
+             sage: r.xpos_array
+-            array([ 0.,  1.])
++            array([0., 1.])
+             sage: r.yvec_array
+-            masked_array(data =
+-             [[1.0 1.0]
+-             [0.5403023058681398 0.5403023058681398]],
+-                         mask =
+-             [[False False]
+-             [False False]],
+-                   fill_value = 1e+20)
+-            <BLANKLINE>
++            masked_array(
++              data=[[1.0, 1.0],
++                    [0.5403023058681398, 0.5403023058681398]],
++              mask=[[False, False],
++                    [False, False]],
++              fill_value=1e+20)
+ 
+         TESTS:
+ 
+diff --git a/src/sage/probability/probability_distribution.pyx b/src/sage/probability/probability_distribution.pyx
+index 1b119e323f..3290b00695 100644
+--- a/src/sage/probability/probability_distribution.pyx
++++ b/src/sage/probability/probability_distribution.pyx
+@@ -130,7 +130,17 @@ cdef class ProbabilityDistribution:
+              0.0,
+              1.4650000000000003]
+             sage: b
+-            [0.0, 0.20000000000000001, 0.40000000000000002, 0.60000000000000009, 0.80000000000000004, 1.0, 1.2000000000000002, 1.4000000000000001, 1.6000000000000001, 1.8, 2.0]
++            [0.0,
++             0.2,
++             0.4,
++             0.6000000000000001,
++             0.8,
++             1.0,
++             1.2000000000000002,
++             1.4000000000000001,
++             1.6,
++             1.8,
++             2.0]
+         """
+         import pylab
+         l = [float(self.get_random_element()) for _ in range(num_samples)]
+diff --git a/src/sage/rings/rational.pyx b/src/sage/rings/rational.pyx
+index 12ca1b222b..9bad7dae0c 100644
+--- a/src/sage/rings/rational.pyx
++++ b/src/sage/rings/rational.pyx
+@@ -1041,7 +1041,7 @@ cdef class Rational(sage.structure.element.FieldElement):
+             dtype('O')
+ 
+             sage: numpy.array([1, 1/2, 3/4])
+-            array([ 1.  ,  0.5 ,  0.75])
++            array([1.  , 0.5 , 0.75])
+         """
+         if mpz_cmp_ui(mpq_denref(self.value), 1) == 0:
+             if mpz_fits_slong_p(mpq_numref(self.value)):
+diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx
+index 9b90c8833e..1ce05b937d 100644
+--- a/src/sage/rings/real_mpfr.pyx
++++ b/src/sage/rings/real_mpfr.pyx
+@@ -1439,7 +1439,7 @@ cdef class RealNumber(sage.structure.element.RingElement):
+ 
+             sage: import numpy
+             sage: numpy.arange(10.0)
+-            array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.])
++            array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
+             sage: numpy.array([1.0, 1.1, 1.2]).dtype
+             dtype('float64')
+             sage: numpy.array([1.000000000000000000000000000000000000]).dtype
+diff --git a/src/sage/schemes/elliptic_curves/height.py b/src/sage/schemes/elliptic_curves/height.py
+index de31fe9883..7a33ea6f5b 100644
+--- a/src/sage/schemes/elliptic_curves/height.py
++++ b/src/sage/schemes/elliptic_curves/height.py
+@@ -1627,18 +1627,18 @@ class EllipticCurveCanonicalHeight:
+         even::
+ 
+             sage: H.wp_on_grid(v,4)
+-            array([[ 25.43920182,   5.28760943,   5.28760943,  25.43920182],
+-            [  6.05099485,   1.83757786,   1.83757786,   6.05099485],
+-            [  6.05099485,   1.83757786,   1.83757786,   6.05099485],
+-            [ 25.43920182,   5.28760943,   5.28760943,  25.43920182]])
++            array([[25.43920182,  5.28760943,  5.28760943, 25.43920182],
++                   [ 6.05099485,  1.83757786,  1.83757786,  6.05099485],
++                   [ 6.05099485,  1.83757786,  1.83757786,  6.05099485],
++                   [25.43920182,  5.28760943,  5.28760943, 25.43920182]])
+ 
+         The array of values on the half-grid::
+ 
+             sage: H.wp_on_grid(v,4,True)
+-            array([[ 25.43920182,   5.28760943],
+-            [  6.05099485,   1.83757786],
+-            [  6.05099485,   1.83757786],
+-            [ 25.43920182,   5.28760943]])
++            array([[25.43920182,  5.28760943],
++                   [ 6.05099485,  1.83757786],
++                   [ 6.05099485,  1.83757786],
++                   [25.43920182,  5.28760943]])
+         """
+         tau = self.tau(v)
+         fk, err = self.fk_intervals(v, 15, CDF)
+diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx
+index 9da38002e8..d61e74bf82 100644
+--- a/src/sage/symbolic/ring.pyx
++++ b/src/sage/symbolic/ring.pyx
+@@ -1136,7 +1136,7 @@ cdef class NumpyToSRMorphism(Morphism):
+         sage: cos(numpy.int('2'))
+         cos(2)
+         sage: numpy.cos(numpy.int('2'))
+-        -0.41614683654714241
++        -0.4161468365471424
+     """
+     cdef _intermediate_ring
+ 
diff --git a/nixpkgs/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch
new file mode 100644
index 000000000000..49cdfd189b92
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch
new file mode 100644
index 000000000000..1b64f39fe60f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch b/nixpkgs/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch
new file mode 100644
index 000000000000..64dd6fd93777
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch
@@ -0,0 +1,71 @@
+commit f1c59929c3c180ac283334c2b3c901ac8c82f6b1
+Author: Timo Kaufmann <timokau@zoho.com>
+Date:   Sat Oct 20 20:07:41 2018 +0200
+
+    Revert "Something related to the sphinxbuild seems to be leaking memory"
+    
+    This reverts commit 7d85dc796c58c3de57401bc22d3587b94e205091.
+
+diff --git a/src/sage_setup/docbuild/__init__.py b/src/sage_setup/docbuild/__init__.py
+index 0b24b1a60b..084c3f89d7 100644
+--- a/src/sage_setup/docbuild/__init__.py
++++ b/src/sage_setup/docbuild/__init__.py
+@@ -265,29 +265,35 @@ class DocBuilder(object):
+     # import the customized builder for object.inv files
+     inventory = builder_helper('inventory')
+ 
+-def build_many(target, args):
+-    # Pool() uses an actual fork() to run each new instance. This is important
+-    # for performance reasons, i.e., don't use a forkserver when it becomes
+-    # available with Python 3: Here, sage is already initialized which is quite
+-    # costly, with a forkserver we would have to reinitialize it for every
+-    # document we build. At the same time, don't serialize this by taking the
+-    # pool (and thus the call to fork()) out completely: The call to Sphinx
+-    # leaks memory, so we need to build each document in its own process to
+-    # control the RAM usage.
+-    from multiprocessing import Pool
+-    pool = Pool(NUM_THREADS, maxtasksperchild=1)
+-    # map_async handles KeyboardInterrupt correctly. Plain map and
+-    # apply_async does not, so don't use it.
+-    x = pool.map_async(target, args, 1)
+-    try:
+-        ret = x.get(99999)
+-        pool.close()
+-        pool.join()
+-    except Exception:
+-        pool.terminate()
+-        if ABORT_ON_ERROR:
+-            raise
+-    return ret
++if NUM_THREADS > 1:
++    def build_many(target, args):
++        from multiprocessing import Pool
++        pool = Pool(NUM_THREADS, maxtasksperchild=1)
++        # map_async handles KeyboardInterrupt correctly. Plain map and
++        # apply_async does not, so don't use it.
++        x = pool.map_async(target, args, 1)
++        try:
++            ret = x.get(99999)
++            pool.close()
++            pool.join()
++        except Exception:
++            pool.terminate()
++            if ABORT_ON_ERROR:
++                raise
++        return ret
++else:
++    def build_many(target, args):
++        results = []
++
++        for arg in args:
++            try:
++                results.append(target(arg))
++            except Exception:
++                if ABORT_ON_ERROR:
++                    raise
++
++        return results
++
+ 
+ ##########################################
+ #      Parallel Building Ref Manual      #
diff --git a/nixpkgs/pkgs/applications/science/math/sage/pybrial.nix b/nixpkgs/pkgs/applications/science/math/sage/pybrial.nix
new file mode 100644
index 000000000000..f5cb39603c32
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/pybrial.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+}:
+# 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 = "1.2.3";
+
+    # included with BRiAl source
+    src = fetchFromGitHub {
+      owner = "BRiAl";
+      repo = "BRiAl";
+      rev = "${version}";
+      sha256 = "0qy4cwy7qrk4zg151cmws5cglaa866z461cnj9wdnalabs7v7qbg";
+    };
+
+    sourceRoot = "source/sage-brial";
+
+    meta = with stdenv.lib; {
+      description = "python implementation of BRiAl";
+      license = licenses.gpl2;
+      maintainers = with maintainers; [ timokau ];
+    };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/sage/python-openid.nix b/nixpkgs/pkgs/applications/science/math/sage/python-openid.nix
new file mode 100644
index 000000000000..184eaf29bdd3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/python-openid.nix
@@ -0,0 +1,42 @@
+{ 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 = [
+    django
+    twill
+    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 ];
+  checkPhase = ''
+    nosetests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "OpenID library for Python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ timokau ];
+    homepage = https://github.com/openid/python-openid/;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
new file mode 100644
index 000000000000..c071f8945506
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
@@ -0,0 +1,170 @@
+{ stdenv
+, lib
+, writeTextFile
+, python
+, sagelib
+, env-locations
+, gfortran
+, bash
+, coreutils
+, gnused
+, gnugrep
+, binutils
+, pythonEnv
+, python3
+, pkg-config
+, pari
+, gap-libgap-compatible
+, libgap
+, ecl
+, maxima-ecl
+, singular
+, giac
+, palp
+, rWrapper
+, gfan
+, cddlib
+, jmol
+, tachyon
+, glpk
+, eclib
+, sympow
+, nauty
+, sqlite
+, ppl
+, ecm
+, lcalc
+, rubiks
+, flintqs
+, openblasCompat
+, flint
+, gmp
+, mpfr
+, pynac
+, zlib
+, gsl
+, ntl
+, jdk
+}:
+
+# 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
+  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-libgap-compatible
+    libgap
+    ecl
+    maxima-ecl
+    singular
+    giac
+    palp
+    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
+  ]
+  ));
+in
+writeTextFile rec {
+  name = "sage-env";
+  destination = "/${name}";
+  text = ''
+    export PKG_CONFIG_PATH='${lib.concatStringsSep ":" (map (pkg: "${pkg}/lib/pkgconfig") [
+        # This is only needed in the src/sage/misc/cython.py test and I'm not
+        # sure if there's really a usecase for it outside of the tests. However
+        # since singular and openblas are runtime dependencies anyways, it doesn't
+        # really hurt to include.
+        singular
+        openblasCompat
+      ])
+    }'
+    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}:$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
+        libgap
+        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
+        libgap
+        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"
+  '';
+} // {
+  lib = sagelib; # equivalent of `passthru`, which `writeTextFile` doesn't support
+}
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
new file mode 100644
index 000000000000..5dc73e26a596
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
@@ -0,0 +1,144 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+}:
+
+# 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.4";
+  name = "sage-src-${version}";
+
+  src = fetchFromGitHub {
+    owner = "sagemath";
+    repo = "sage";
+    rev = version;
+    sha256 = "0gips1hagiz9m7s21bg5as8hrrm2x5k47h1bsq0pc46iplfwmv2d";
+  };
+
+  # 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";
+    })
+
+    # 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
+
+    # Revert the commit that made the sphinx build fork even in the single thread
+    # case. For some yet unknown reason, that breaks the docbuild on nix and archlinux.
+    # See https://groups.google.com/forum/#!msg/sage-packaging/VU4h8IWGFLA/mrmCMocYBwAJ.
+    # https://trac.sagemath.org/ticket/26608
+    ./patches/revert-sphinx-always-fork.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
+  ];
+
+  # 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, ...}@args: (
+      fetchpatch ({
+        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
+    # 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;
+    })
+
+    # https://trac.sagemath.org/ticket/25260
+    ./patches/numpy-1.15.1.patch
+
+    # https://trac.sagemath.org/ticket/26315
+    ./patches/giac-1.5.0.patch
+
+    # needed for ntl update
+    # https://trac.sagemath.org/ticket/25532
+    (fetchpatch {
+      name = "lcalc-c++11.patch";
+      url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/sagemath-lcalc-c++11.patch?h=packages/sagemath&id=0e31ae526ab7c6b5c0bfacb3f8b1c4fd490035aa";
+      sha256 = "0p5wnvbx65i7cp0bjyaqgp4rly8xgnk12pqwaq3dqby0j2bk6ijb";
+    })
+
+    (fetchpatch {
+      name = "cython-0.29.patch";
+      url = "https://git.sagemath.org/sage.git/patch/?h=f77de1d0e7f90ee12761140500cb8cbbb789ab20";
+      sha256 = "14wrpy8jgbnpza1j8a2nx8y2r946y82pll1fv3cn6gpfmm6640l3";
+    })
+    # https://trac.sagemath.org/ticket/26360
+    (fetchpatch {
+      name = "arb-2.15.1.patch";
+      url = "https://git.sagemath.org/sage.git/patch/?id=30cc778d46579bd0c7537ed33e8d7a4f40fd5c31";
+      sha256 = "13vc2q799dh745sm59xjjabllfj0sfjzcacf8k59kwj04x755d30";
+    })
+
+    # https://trac.sagemath.org/ticket/26326
+    # needs to be split because there is a merge commit in between
+    (fetchSageDiff {
+      name = "networkx-2.2-1.patch";
+      base = "8.4";
+      rev = "68f5ad068184745b38ba6716bf967c8c956c52c5";
+      sha256 = "112b5ywdqgyzgvql2jj5ss8la9i8rgnrzs8vigsfzg4shrcgh9p6";
+    })
+    (fetchSageDiff {
+      name = "networkx-2.2-2.patch";
+      base = "626485bbe5f33bf143d6dfba4de9c242f757f59b~1";
+      rev = "db10d327ade93711da735a599a67580524e6f7b4";
+      sha256 = "09v87id25fa5r9snfn4mv79syhc77jxfawj5aizmdpwdmpgxjk1f";
+    })
+  ];
+
+  patches = nixPatches ++ 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 '#!${stdenv.shell}
+    python "$@"' > build/bin/sage-python23
+
+    # 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/nixpkgs/pkgs/applications/science/math/sage/sage-tests.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-tests.nix
new file mode 100644
index 000000000000..1f400db18fcb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-tests.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, lib
+, sage-with-env
+, makeWrapper
+, files ? null # "null" means run all tests
+, longTests ? true # run tests marked as "long time"
+}:
+
+# 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 "";
+  relpathToArg = relpath: lib.escapeShellArg "${src}/${relpath}"; # paths need to be absolute
+  testFileList = lib.concatStringsSep " " (map relpathToArg files);
+in
+stdenv.mkDerivation rec {
+  version = src.version;
+  name = "sage-tests-${version}";
+  inherit src;
+
+  buildInputs = [
+    makeWrapper
+    sage-with-env
+  ];
+
+  unpackPhase = "#do nothing";
+  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"
+
+    # "--long" tests are in the order of 1h, without "--long" its 1/2h
+    "sage" -t --timeout=0 --nthreads "$NIX_BUILD_CORES" --optional=sage ${patienceSpecifier} ${testArgs}
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
new file mode 100644
index 000000000000..c5db392f1036
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix
@@ -0,0 +1,128 @@
+{ stdenv
+, lib
+, makeWrapper
+, sage-env
+, openblasCompat
+, pkg-config
+, three
+, singular
+, libgap
+, gap-libgap-compatible
+, giac
+, maxima-ecl
+, pari
+, gmp
+, gfan
+, python2
+, flintqs
+, eclib
+, ntl
+, ecm
+, pynac
+, pythonEnv
+}:
+
+# 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
+    openblasCompat # lots of segfaults with regular (64 bit) openblas
+    singular
+    three
+    pynac
+    giac
+    libgap
+    gap-libgap-compatible
+    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 isNull dep 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;
+  name = "sage-with-env-${version}";
+  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
+  '';
+
+  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/nixpkgs/pkgs/applications/science/math/sage/sage.nix b/nixpkgs/pkgs/applications/science/math/sage/sage.nix
new file mode 100644
index 000000000000..ac255643a348
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage.nix
@@ -0,0 +1,67 @@
+{ 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;
+  name = "sage-${version}";
+  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
+  ];
+
+  unpackPhase = "#do nothing";
+  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;
+    doc = sagedoc;
+    lib = sage-with-env.env.lib;
+    kernelspec = jupyter-kernel-definition;
+  };
+
+  meta = with stdenv.lib; {
+    description = "Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ timokau ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix b/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
new file mode 100644
index 000000000000..cc1a4fc61e0c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/sagedoc.nix
@@ -0,0 +1,81 @@
+{ stdenv
+, sage-with-env
+, python
+, maxima-ecl
+, tachyon
+, jmol
+, cddlib
+}:
+
+stdenv.mkDerivation rec {
+  version = src.version;
+  name = "sagedoc-${version}";
+  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"
+
+    ${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/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix b/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
new file mode 100644
index 000000000000..03b1ecd2c0b7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
@@ -0,0 +1,140 @@
+{ sage-src
+, perl
+, buildPythonPackage
+, arb
+, openblasCompat
+, brial
+, cliquer
+, cypari2
+, cysignals
+, cython
+, ecl
+, eclib
+, ecm
+, flint
+, gd
+, givaro
+, glpk
+, gsl
+, iml
+, jinja2
+, lcalc
+, lrcalc
+, libgap
+, linbox
+, m4ri
+, m4rie
+, libmpc
+, mpfi
+, ntl
+, numpy
+, pari
+, pkgconfig
+, planarity
+, ppl
+, pynac
+, python
+, ratpoints
+, readline
+, rankwidth
+, symmetrica
+, zn_poly
+, fflas-ffpack
+, boost
+, singular
+, pip
+, jupyter_core
+, libhomfly
+, libbraiding
+}:
+
+# 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;
+  name = "sagelib-${version}";
+  src = sage-src;
+
+  nativeBuildInputs = [
+    iml
+    perl
+    jupyter_core
+  ];
+
+  buildInputs = [
+    gd
+    readline
+  ];
+
+  propagatedBuildInputs = [
+    cypari2
+    jinja2
+    numpy
+    pkgconfig
+    boost
+    arb
+    brial
+    cliquer
+    ecl
+    eclib
+    ecm
+    fflas-ffpack
+    flint
+    givaro
+    glpk
+    gsl
+    lcalc
+    libgap
+    libmpc
+    linbox
+    lrcalc
+    m4ri
+    m4rie
+    mpfi
+    ntl
+    openblasCompat
+    pari
+    planarity
+    ppl
+    pynac
+    rankwidth
+    ratpoints
+    singular
+    symmetrica
+    zn_poly
+    pip
+    cython
+    cysignals
+    libhomfly
+    libbraiding
+  ];
+
+  buildPhase = ''
+    export SAGE_ROOT="$PWD"
+    export SAGE_LOCAL="$SAGE_ROOT"
+    export SAGE_SHARE="$SAGE_LOCAL/share"
+    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"
+
+    cd src
+    source bin/sage-dist-helpers
+
+    ${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/nixpkgs/pkgs/applications/science/math/sage/sagenb.nix b/nixpkgs/pkgs/applications/science/math/sage/sagenb.nix
new file mode 100644
index 000000000000..bbd403177f32
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/sage/sagenb.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, fetchpatch
+, 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 = "2018-06-26"; # not 1.0.1 because of new flask syntax
+
+  src = fetchFromGitHub {
+    owner = "sagemath";
+    repo = "sagenb";
+    rev = "b360a0172e15501fb0163d02dce713a561fee2af";
+    sha256 = "12anydw0v9w23rbc0a94bqmjhjdir9h820c5zdhipw9ccdcc2jlf";
+  };
+
+  propagatedBuildInputs = [
+    twisted
+    flask
+    flask-oldsessions
+    flask-openid
+    flask-autoindex
+    flask-babel
+  ];
+
+  # tests depend on sage
+  doCheck = false;
+
+  patches = [
+    # work with latest flask-babel
+    (fetchpatch {
+      url = "https://github.com/sagemath/sagenb/commit/ba065eca63dd34a383e4c7ba7561430a90fcd087.patch";
+      sha256 = "1lamzsrgymdd618imrasjp6ivhw2aynh83gkybsd7pm1rzjcq4x8";
+    })
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Sage Notebook";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ timokau ];
+  };
+
+  # 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/nixpkgs/pkgs/applications/science/math/scilab-bin/default.nix b/nixpkgs/pkgs/applications/science/math/scilab-bin/default.nix
new file mode 100644
index 000000000000..c3a74d14bc0a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/scilab-bin/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchurl, lib, xorg }:
+
+let
+  name = "scilab-bin-${ver}";
+
+  ver = "6.0.1";
+
+  majorVer = builtins.elemAt (lib.splitString "." ver) 0;
+
+  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 rec {
+  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
+        "1scswlznc14vyzg0gqa1q9gcpwx05kz1sbn563463mzkdp7nd35d"
+      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/nixpkgs/pkgs/applications/science/math/scilab/default.nix b/nixpkgs/pkgs/applications/science/math/scilab/default.nix
new file mode 100644
index 000000000000..96b7dec19c21
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/scilab/default.nix
@@ -0,0 +1,66 @@
+{stdenv, fetchurl, lib, gfortran
+, ncurses
+, withXaw3d ? false
+#, withPVMlib ? false
+, tcl, tk, withTk ? false
+, gtk2, withGtk ? false # working ?
+#, withF2c ? false
+, ocaml, withOCaml ? false
+#, withJava ? false
+#, atlasMath, withAtlas ? false
+, xlibsWrapper, withX ? false
+}:
+
+stdenv.mkDerivation rec {
+  version = "4.1.2";
+  name = "scilab-${version}";
+  src = fetchurl {
+    url = "https://www.scilab.org/download/${version}/${name}-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/nixpkgs/pkgs/applications/science/math/scotch/default.nix b/nixpkgs/pkgs/applications/science/math/scotch/default.nix
new file mode 100644
index 000000000000..8fa020ba07c9
--- /dev/null
+++ b/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";
+  name = "scotch-${version}";
+  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/nixpkgs/pkgs/applications/science/math/singular/default.nix b/nixpkgs/pkgs/applications/science/math/singular/default.nix
new file mode 100644
index 000000000000..24063216db04
--- /dev/null
+++ b/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 {
+  name = "singular-${version}";
+  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 = with maintainers; [ raskin timokau ];
+    # 32 bit x86 fails with some link error: `undefined reference to `__divmoddi4@GCC_7.0.0'`
+    platforms = subtractLists platforms.i686 platforms.linux;
+    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/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix b/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix
new file mode 100644
index 000000000000..d36b135531c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, lib, fetchgit, cmake, qtbase, qttools }:
+
+mkDerivation rec {
+  name = "speedcrunch-${version}";
+  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/nixpkgs/pkgs/applications/science/math/symmetrica/default.nix b/nixpkgs/pkgs/applications/science/math/symmetrica/default.nix
new file mode 100644
index 000000000000..bc971606cd08
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/symmetrica/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+}:
+stdenv.mkDerivation rec {
+  name = "symmetrica-${version}";
+  version = "2.0";
+
+  src = fetchurl {
+    url = "http://www.algorithm.uni-bayreuth.de/en/research/SYMMETRICA/SYM2_0_tar.gz";
+    sha256 = "1qhfrbd5ybb0sinl9pad64rscr08qvlfzrzmi4p4hk61xn6phlmz";
+    name = "symmetrica-2.0.tar.gz";
+  };
+
+  sourceRoot = ".";
+
+  patches = [
+      # don't show banner ("SYMMETRICA VERSION X - STARTING)
+      # it doesn't contain very much helpful information and a banner is not ideal for a library
+      (fetchpatch {
+        url = "https://git.sagemath.org/sage.git/plain/build/pkgs/symmetrica/patches/de.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+        sha256 = "0df0vqixcfpzny6dkhyj87h8aznz3xn3zfwwlj8pd10bpb90k6gb";
+      })
+
+      # use int32_t and uint32_t for type INT
+      # see https://trac.sagemath.org/ticket/13413
+      (fetchpatch {
+        name = "fix_64bit_integer_overflow.patch";
+        url = "https://git.sagemath.org/sage.git/plain/build/pkgs/symmetrica/patches/int32.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
+        sha256 = "0p33c85ck4kd453z687ni4bdcqr1pqx2756j7aq11bf63vjz4cyz";
+      })
+
+      (fetchpatch {
+        url = "https://git.sagemath.org/sage.git/plain/build/pkgs/symmetrica/patches/return_values.patch?id=1615f58890e8f9881c4228c78a6b39b9aab1303a";
+        sha256 = "0dmczkicwl50sivc07w3wm3jpfk78wm576dr25999jdj2ipsb7nk";
+      })
+  ];
+
+  postPatch = ''
+    substituteInPlace makefile --replace gcc cc
+  '';
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    mkdir -p "$out"/{lib,share/doc/symmetrica,include/symmetrica}
+    ar crs libsymmetrica.a *.o
+    ranlib libsymmetrica.a
+    cp libsymmetrica.a "$out/lib"
+    cp *.h "$out/include/symmetrica"
+    cp README *.doc "$out/share/doc/symmetrica"
+  '';
+
+  meta = {
+    inherit version;
+    description = ''A collection of routines for representation theory and combinatorics'';
+    license = stdenv.lib.licenses.publicDomain;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.unix;
+    homepage = http://www.algorithm.uni-bayreuth.de/en/research/SYMMETRICA/index.html;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/weka/default.nix b/nixpkgs/pkgs/applications/science/math/weka/default.nix
new file mode 100644
index 000000000000..3bfb22dad936
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/weka/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, jre, unzip, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "weka-${version}";
+  version = "3.9.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/weka/${stdenv.lib.replaceChars ["."]["-"] name}.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.mimadrid ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
new file mode 100644
index 000000000000..67cdaa4055ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub
+, wrapGAppsHook, cmake, gettext
+, maxima, wxGTK, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "wxmaxima-${version}";
+  version = "18.02.0";
+
+  src = fetchFromGitHub {
+    owner = "andrejv";
+    repo = "wxmaxima";
+    rev = "Version-${version}";
+    sha256 = "0s7bdykc77slqix28cyaa6x8wvxrn8461mkdgxflvi2apwsl56aa";
+  };
+
+  buildInputs = [ wxGTK maxima gnome3.defaultIconTheme ];
+
+  nativeBuildInputs = [ wrapGAppsHook cmake gettext ];
+
+  preConfigure = ''
+    gappsWrapperArgs+=(--prefix PATH ":" ${maxima}/bin)
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Cross platform GUI for the computer algebra system Maxima";
+    license = licenses.gpl2;
+    homepage = http://wxmaxima.sourceforge.net;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.peti ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/yacas/default.nix b/nixpkgs/pkgs/applications/science/math/yacas/default.nix
new file mode 100644
index 000000000000..c02ef73df119
--- /dev/null
+++ b/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 {
+  name = "yacas-${version}";
+  version = "1.6.1";
+
+  src = fetchFromGitHub {
+    owner = "grzegorzmazur";
+    repo = "yacas";
+    rev = "v${version}";
+    sha256 = "0awvlvf607r4hwl1vkhs6jq2s6ig46c66pmr4vspj2cdnypx99cc";
+  };
+
+  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/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix b/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
new file mode 100644
index 000000000000..ff25bc974900
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, rpmextract, makeWrapper, patchelf, qt4, zlib, libX11, libXt, libSM, libICE, libXext, libGLU_combined }:
+
+with stdenv.lib;
+stdenv.mkDerivation {
+  name = "aliza";
+  src = fetchurl {
+    # Hosted on muoniurn's google drive
+    url = "https://drive.google.com/uc?export=download&id=1zMYfSUqMaYuvuF41zAFUC5ndR55wD7Ip";
+    sha256 = "0prlmzz8qbqqkr0plk781afq25dvy4pv89vlgccpim79psqlchl3";
+    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_combined ];
+  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 = http://www.aliza-dicom-viewer.com;
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ mounium ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/boinc/default.nix b/nixpkgs/pkgs/applications/science/misc/boinc/default.nix
new file mode 100644
index 000000000000..3571d705e311
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/boinc/default.nix
@@ -0,0 +1,46 @@
+{ fetchFromGitHub, stdenv, autoconf, automake, pkgconfig, m4, curl,
+libGLU_combined, 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}";
+  name = "boinc-${version}";
+
+  src = fetchFromGitHub {
+    name = "${name}-src";
+    owner = "BOINC";
+    repo = "boinc";
+    rev = "client_release/${majorVersion}/${version}";
+    sha256 = "0nicpkag18xq0libfqqvs0im22mijpsxzfk272iwdd9l0lmgfvyd";
+  };
+
+  nativeBuildInputs = [ libtool automake autoconf m4 pkgconfig ];
+
+  buildInputs = [
+    curl libGLU_combined 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 = http://boinc.berkeley.edu/;
+    license = stdenv.lib.licenses.lgpl2Plus;
+    platforms = stdenv.lib.platforms.linux;  # arbitrary choice
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix b/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
new file mode 100644
index 000000000000..36c7884d108b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "cytoscape-${version}";
+  version = "3.6.1";
+
+  src = fetchurl {
+    url = "http://chianti.ucsd.edu/${name}/${name}.tar.gz";
+    sha256 = "1pkdilv1nw6vvdxk71bwjngr8yafrsqwaqvlakhp8yb342r1jd4s";
+  };
+
+  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.mimadrid];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/fityk/default.nix b/nixpkgs/pkgs/applications/science/misc/fityk/default.nix
new file mode 100644
index 000000000000..8d0336f58282
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/gephi/default.nix b/nixpkgs/pkgs/applications/science/misc/gephi/default.nix
new file mode 100644
index 000000000000..b81f188a91bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/gephi/default.nix
@@ -0,0 +1,64 @@
+{ 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 rec {
+  name = "gephi-${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/nixpkgs/pkgs/applications/science/misc/golly/beta.nix b/nixpkgs/pkgs/applications/science/misc/golly/beta.nix
new file mode 100644
index 000000000000..83b9c5a04a19
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/golly/beta.nix
@@ -0,0 +1,51 @@
+{stdenv, fetchgit
+, wxGTK, perl, python2, zlib, libGLU_combined, libX11
+, automake, autoconf
+}:
+
+stdenv.mkDerivation rec {
+  name = "golly-${version}";
+  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_combined libX11
+  ];
+
+  # Link against Python explicitly as it is needed for scripts
+  makeFlags=[
+    "AM_LDFLAGS="
+  ];
+  NIX_LDFLAGS="-lpython${python2.majorVersion} -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)")"
+
+    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/nixpkgs/pkgs/applications/science/misc/golly/default.nix b/nixpkgs/pkgs/applications/science/misc/golly/default.nix
new file mode 100644
index 000000000000..cfa4dca4b0de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/golly/default.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU_combined, libX11}:
+stdenv.mkDerivation rec {
+  baseName="golly";
+  version = "3.2";
+  name="${baseName}-${version}";
+
+  src = fetchurl {
+    sha256 = "0cg9mbwmf4q6qxhqlnzrxh9y047banxdb8pd3hgj3smmja2zf0jd";
+    url="mirror://sourceforge/project/golly/golly/golly-${version}/golly-${version}-src.tar.gz";
+  };
+
+  buildInputs = [
+    wxGTK perl python2 zlib libGLU_combined libX11
+  ];
+
+  setSourceRoot = ''
+    sourceRoot=$(echo */gui-wx/configure)
+  '';
+
+  # Link against Python explicitly as it is needed for scripts
+  makeFlags=[
+    "AM_LDFLAGS="
+  ];
+  NIX_LDFLAGS="-lpython${python2.majorVersion} -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/nixpkgs/pkgs/applications/science/misc/golly/default.upstream b/nixpkgs/pkgs/applications/science/misc/golly/default.upstream
new file mode 100644
index 000000000000..e8ce81586a8d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/gplates/boostfix.patch b/nixpkgs/pkgs/applications/science/misc/gplates/boostfix.patch
new file mode 100644
index 000000000000..e429600b7095
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/gplates/boostfix.patch
@@ -0,0 +1,612 @@
+--- a/src/app-logic/ApplicationState.h
++++ b/src/app-logic/ApplicationState.h
+@@ -33,6 +33,7 @@
+ #include <boost/shared_ptr.hpp>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "FeatureCollectionFileState.h"

+ #include "Layer.h"

+ #include "LayerTaskRegistry.h"

+@@ -48,6 +49,7 @@
+ #include "model/ModelInterface.h"

+ #include "model/types.h"

+ #include "model/WeakReferenceCallback.h"

++#endif

+ 

+ ////////////////////////////////////////////////////////////////////////////////////////////////

+ // NOTE: Please use forward declarations (and boost::scoped_ptr) instead of including headers

+--- a/src/app-logic/CoRegistrationLayerTask.h
++++ b/src/app-logic/CoRegistrationLayerTask.h
+@@ -32,11 +32,13 @@
+ #include <QObject>

+ #include <QString>

+ 

++#ifndef Q_MOC_RUN

+ #include "CoRegistrationLayerParams.h"

+ #include "CoRegistrationLayerProxy.h"

+ #include "LayerTask.h"

+ 

+ #include "model/FeatureCollectionHandle.h"

++#endif

+ 

+ namespace GPlatesAppLogic

+ {

+--- a/src/app-logic/RasterLayerTask.h
++++ b/src/app-logic/RasterLayerTask.h
+@@ -32,11 +32,13 @@
+ #include <QObject>

+ #include <QString>

+ 

++#ifndef Q_MOC_RUN

+ #include "LayerTask.h"

+ #include "RasterLayerParams.h"

+ #include "RasterLayerProxy.h"

+ 

+ #include "model/FeatureCollectionHandle.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/app-logic/ReconstructGraph.h
++++ b/src/app-logic/ReconstructGraph.h
+@@ -46,6 +46,7 @@
+ #include <boost/lambda/construct.hpp>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "FeatureCollectionFileState.h"

+ #include "Layer.h"

+ #include "Reconstruction.h"

+@@ -53,6 +54,7 @@
+ 

+ #include "model/FeatureCollectionHandle.h"

+ #include "model/WeakReferenceCallback.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/app-logic/ReconstructLayerTask.h
++++ b/src/app-logic/ReconstructLayerTask.h
+@@ -33,6 +33,7 @@
+ #include <QObject>

+ #include <QString>

+ 

++#ifndef Q_MOC_RUN

+ #include "LayerTask.h"

+ #include "ReconstructLayerProxy.h"

+ #include "ReconstructLayerParams.h"

+@@ -42,6 +43,7 @@
+ #include "maths/types.h"

+ 

+ #include "model/FeatureCollectionHandle.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/app-logic/ReconstructScalarCoverageLayerParams.h
++++ b/src/app-logic/ReconstructScalarCoverageLayerParams.h
+@@ -30,6 +30,7 @@
+ #include <boost/optional.hpp>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "LayerParams.h"

+ #include "ReconstructScalarCoverageLayerProxy.h"

+ #include "ReconstructScalarCoverageParams.h"

+@@ -38,6 +39,7 @@
+ #include "property-values/ValueObjectType.h"

+ 

+ #include "utils/SubjectObserverToken.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/app-logic/ReconstructScalarCoverageLayerTask.h
++++ b/src/app-logic/ReconstructScalarCoverageLayerTask.h
+@@ -30,12 +30,14 @@
+ #include <boost/shared_ptr.hpp>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "LayerTask.h"

+ #include "ReconstructScalarCoverageLayerParams.h"

+ #include "ReconstructScalarCoverageLayerProxy.h"

+ #include "ScalarCoverageFeatureProperties.h"

+ 

+ #include "model/FeatureCollectionHandle.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/app-logic/TopologyNetworkResolverLayerTask.h
++++ b/src/app-logic/TopologyNetworkResolverLayerTask.h
+@@ -33,6 +33,7 @@
+ #include <QObject>

+ #include <QString>

+ 

++#ifndef Q_MOC_RUN

+ #include "LayerParams.h"

+ #include "LayerTask.h"

+ #include "ReconstructLayerProxy.h"

+@@ -41,6 +42,7 @@
+ #include "TopologyNetworkResolverLayerProxy.h"

+ 

+ #include "model/FeatureCollectionHandle.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/app-logic/VelocityFieldCalculatorLayerTask.h
++++ b/src/app-logic/VelocityFieldCalculatorLayerTask.h
+@@ -32,9 +32,11 @@
+ #include <QObject>

+ #include <QString>

+ 

++#ifndef Q_MOC_RUN

+ #include "LayerTask.h"

+ #include "VelocityFieldCalculatorLayerParams.h"

+ #include "VelocityFieldCalculatorLayerProxy.h"

++#endif

+ 

+ #include "model/FeatureCollectionHandle.h"

+ 

+--- a/src/data-mining/CoRegConfigurationTable.h
++++ b/src/data-mining/CoRegConfigurationTable.h
+@@ -28,6 +28,7 @@
+ 

+ #include <vector>

+ #include <map>

++#ifndef Q_MOC_RUN

+ #include <boost/operators.hpp>

+ 

+ #include "CoRegFilter.h"

+@@ -44,6 +45,7 @@
+ #include "scribe/Transcribe.h"

+ #include "scribe/TranscribeContext.h"

+ 

++#endif

+ 

+ namespace GPlatesDataMining

+ {

+--- a/src/gui/CommandServer.h
++++ b/src/gui/CommandServer.h
+@@ -38,9 +38,11 @@
+ #include <QRegExp>

+ #include <QtXml/QXmlStreamReader>

+ 

++#ifndef Q_MOC_RUN

+ #include "app-logic/ApplicationState.h"

+ 

+ #include "presentation/ViewState.h"

++#endif

+ 

+ namespace GPlatesGui

+ {

+--- a/src/gui/FeatureTableModel.h
++++ b/src/gui/FeatureTableModel.h
+@@ -32,8 +32,10 @@
+ #include <QItemSelection>

+ #include <QHeaderView>

+ 

++#ifndef Q_MOC_RUN

+ #include "app-logic/Layer.h"

+ #include "app-logic/ReconstructionGeometry.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/gui/TopologyTools.h
++++ b/src/gui/TopologyTools.h
+@@ -35,6 +35,7 @@
+ #include <QDebug>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "TopologySectionsContainer.h"

+ 

+ #include "app-logic/Layer.h"

+@@ -64,6 +65,7 @@
+ #include "utils/UnicodeStringUtils.h"

+ 

+ #include "view-operations/RenderedGeometryCollection.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/opengl/GLVisualLayers.h
++++ b/src/opengl/GLVisualLayers.h
+@@ -35,6 +35,7 @@
+ #include <boost/shared_ptr.hpp>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "GLAgeGridMaskSource.h"

+ #include "GLContext.h"

+ #include "GLLight.h"

+@@ -79,6 +80,7 @@
+ 

+ #include "view-operations/RenderedGeometry.h"

+ #include "view-operations/ScalarField3DRenderParameters.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/presentation/VisualLayer.h
++++ b/src/presentation/VisualLayer.h
+@@ -32,6 +32,7 @@
+ #include <QString>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "VisualLayerParams.h"

+ #include "VisualLayerType.h"

+ 

+@@ -42,6 +43,7 @@
+ #include "model/FeatureCollectionHandle.h"

+ 

+ #include "view-operations/RenderedGeometryCollection.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/presentation/VisualLayers.h
++++ b/src/presentation/VisualLayers.h
+@@ -34,6 +34,7 @@
+ #include <boost/weak_ptr.hpp>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "VisualLayer.h"

+ 

+ #include "app-logic/FeatureCollectionFileState.h"

+@@ -42,6 +43,7 @@
+ #include "gui/Symbol.h"

+ 

+ #include "view-operations/RenderedGeometryCollection.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/qt-widgets/AssignReconstructionPlateIdsDialog.h
++++ b/src/qt-widgets/AssignReconstructionPlateIdsDialog.h
+@@ -39,6 +39,7 @@
+ #include "GPlatesDialog.h"

+ #include "InformationDialog.h"

+ 

++#ifndef Q_MOC_RUN

+ #include "app-logic/AssignPlateIds.h"

+ 

+ #include "file-io/File.h"

+@@ -47,6 +48,7 @@
+ #include "model/ModelInterface.h"

+ 

+ #include "presentation/VisualLayer.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/qt-widgets/CoRegistrationLayerConfigurationDialog.h
++++ b/src/qt-widgets/CoRegistrationLayerConfigurationDialog.h
+@@ -38,6 +38,7 @@
+ 

+ #include "OpenDirectoryDialog.h"

+ 

++#ifndef Q_MOC_RUN

+ #include "app-logic/ApplicationState.h"

+ #include "app-logic/Layer.h"

+ #include "app-logic/LayerInputChannelName.h"

+@@ -45,6 +46,7 @@
+ 

+ #include "data-mining/CheckAttrTypeVisitor.h"

+ #include "data-mining/CoRegConfigurationTable.h"

++#endif

+ 

+ #include "global/PointerTraits.h"

+ 

+--- a/src/qt-widgets/CoRegistrationOptionsWidget.h
++++ b/src/qt-widgets/CoRegistrationOptionsWidget.h
+@@ -31,6 +31,7 @@
+ #include "CoRegistrationLayerConfigurationDialog.h"

+ #include "CoRegistrationOptionsWidgetUi.h"

+ #include "LayerOptionsWidget.h"

++#ifndef Q_MOC_RUN

+ #include "CoRegistrationResultTableDialog.h"

+ 

+ #include "app-logic/CoRegistrationLayerTask.h"

+@@ -41,7 +42,7 @@
+ #include "file-io/File.h"

+ 

+ #include "presentation/VisualLayer.h"

+-

++#endif

+ 

+ namespace GPlatesAppLogic

+ {

+--- a/src/qt-widgets/CoRegistrationResultTableDialog.h
++++ b/src/qt-widgets/CoRegistrationResultTableDialog.h
+@@ -36,6 +36,7 @@
+ #include <QEvent>

+ #include <qevent.h>

+ 

++#ifndef Q_MOC_RUN

+ #include "CoRegistrationResultTableDialogUi.h"

+ #include "SaveFileDialog.h"

+ 

+@@ -43,6 +44,7 @@
+ #include "data-mining/OpaqueDataToQString.h"

+ 

+ #include "presentation/VisualLayer.h"

++#endif

+ 

+ namespace GPlatesPresentation

+ {

+--- a/src/qt-widgets/DrawStyleDialog.h
++++ b/src/qt-widgets/DrawStyleDialog.h
+@@ -33,6 +33,7 @@
+ #include <QMutex>

+ #include <QMutexLocker>

+ 

++#ifndef Q_MOC_RUN

+ #include "DrawStyleDialogUi.h"

+ #include "GPlatesDialog.h"

+ #include "PythonArgumentWidget.h"

+@@ -41,6 +42,7 @@
+ #include "gui/PythonConfiguration.h"

+ 

+ #include "presentation/Application.h"

++#endif

+ 

+ namespace GPlatesAppLogic

+ {

+--- a/src/qt-widgets/EditTableActionWidget.h
++++ b/src/qt-widgets/EditTableActionWidget.h
+@@ -27,8 +27,11 @@
+ #define GPLATES_QTWIDGETS_EDITTABLEACTIONWIDGET_H

+ 

+ #include <QWidget>

++

++#ifndef Q_MOC_RUN

+ #include "app-logic/ApplicationState.h"

+ #include "EditTableActionWidgetUi.h"

++#endif

+ 

+ namespace GPlatesQtWidgets

+ {

+--- a/src/qt-widgets/GlobeCanvas.h
++++ b/src/qt-widgets/GlobeCanvas.h
+@@ -41,6 +41,7 @@
+ #include <QPainter>

+ #include <QtOpenGL/qgl.h>

+ 

++#ifndef Q_MOC_RUN

+ #include "gui/ColourScheme.h"

+ #include "gui/Globe.h"

+ #include "gui/ViewportZoom.h"

+@@ -58,6 +59,7 @@
+ #include "qt-widgets/SceneView.h"

+ 

+ #include "view-operations/RenderedGeometryFactory.h"

++#endif

+ 

+ 

+ namespace GPlatesGui

+--- a/src/qt-widgets/LogDialog.h
++++ b/src/qt-widgets/LogDialog.h
+@@ -34,7 +34,9 @@
+ #include "GPlatesDialog.h"

+ #include "LogDialogUi.h"

+ 

++#ifndef Q_MOC_RUN

+ #include "app-logic/ApplicationState.h"

++#endif

+ 

+ 

+ namespace GPlatesGui

+--- a/src/qt-widgets/MapCanvas.h
++++ b/src/qt-widgets/MapCanvas.h
+@@ -39,6 +39,7 @@
+ #include <QSize>

+ #include <QTransform>

+ 

++#ifndef Q_MOC_RUN

+ #include "gui/ColourScheme.h"

+ #include "gui/Map.h"

+ #include "gui/TextOverlay.h"

+@@ -47,6 +48,7 @@
+ #include "opengl/GLMatrix.h"

+ #include "opengl/GLOffScreenContext.h"

+ #include "opengl/GLVisualLayers.h"

++#endif

+ 

+ 

+ namespace GPlatesGui

+--- a/src/qt-widgets/MapView.h
++++ b/src/qt-widgets/MapView.h
+@@ -36,6 +36,7 @@
+ #include <QGLWidget>

+ #include <QMouseEvent>

+ 

++#ifndef Q_MOC_RUN

+ #include "gui/ColourScheme.h"

+ 

+ #include "maths/LatLonPoint.h"

+@@ -44,6 +45,7 @@
+ #include "opengl/GLVisualLayers.h"

+ 

+ #include "qt-widgets/SceneView.h"

++#endif

+ 

+ 

+ namespace GPlatesGui

+--- a/src/qt-widgets/MergeReconstructionLayersDialog.h
++++ b/src/qt-widgets/MergeReconstructionLayersDialog.h
+@@ -33,7 +33,9 @@
+ 

+ #include "MergeReconstructionLayersDialogUi.h"

+ 

++#ifndef Q_MOC_RUN

+ #include "app-logic/Layer.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/qt-widgets/RasterLayerOptionsWidget.h
++++ b/src/qt-widgets/RasterLayerOptionsWidget.h
+@@ -31,6 +31,7 @@
+ #include <QString>

+ #include <QToolButton>

+ 

++#ifndef Q_MOC_RUN

+ #include "RasterLayerOptionsWidgetUi.h"

+ 

+ #include "LayerOptionsWidget.h"

+@@ -40,6 +41,7 @@
+ 

+ #include "gui/BuiltinColourPaletteType.h"

+ #include "gui/RasterColourPalette.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/qt-widgets/ReconstructScalarCoverageLayerOptionsWidget.h
++++ b/src/qt-widgets/ReconstructScalarCoverageLayerOptionsWidget.h
+@@ -28,6 +28,7 @@
+ 

+ #include <utility>

+ 

++#ifndef Q_MOC_RUN

+ #include "ReconstructScalarCoverageLayerOptionsWidgetUi.h"

+ 

+ #include "LayerOptionsWidget.h"

+@@ -37,6 +38,7 @@
+ 

+ #include "gui/BuiltinColourPaletteType.h"

+ #include "gui/RasterColourPalette.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/qt-widgets/ScalarField3DLayerOptionsWidget.h
++++ b/src/qt-widgets/ScalarField3DLayerOptionsWidget.h
+@@ -30,6 +30,7 @@
+ #include <vector>

+ #include <QSlider>

+ 

++#ifndef Q_MOC_RUN

+ #include "ScalarField3DLayerOptionsWidgetUi.h"

+ 

+ #include "LayerOptionsWidget.h"

+@@ -41,6 +42,7 @@
+ #include "gui/RasterColourPalette.h"

+ 

+ #include "view-operations/ScalarField3DRenderParameters.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/qt-widgets/TotalReconstructionPolesDialog.h
++++ b/src/qt-widgets/TotalReconstructionPolesDialog.h
+@@ -32,12 +32,14 @@
+ #include <boost/weak_ptr.hpp>

+ #include <QDialog>

+ 

++#ifndef Q_MOC_RUN

+ #include "TotalReconstructionPolesDialogUi.h"

+ 

+ #include "GPlatesDialog.h"

+ #include "SaveFileDialog.h"

+ 

+ #include "presentation/VisualLayer.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/qt-widgets/VisualLayersComboBox.h
++++ b/src/qt-widgets/VisualLayersComboBox.h
+@@ -32,8 +32,10 @@
+ #include <QComboBox>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "presentation/VisualLayer.h"

+ #include "presentation/VisualLayerType.h"

++#endif

+ 

+ 

+ namespace GPlatesPresentation

+--- a/src/qt-widgets/VisualLayerWidget.h
++++ b/src/qt-widgets/VisualLayerWidget.h
+@@ -36,11 +36,13 @@
+ #include <QMenu>

+ #include <QStackedWidget>

+ 

++#ifndef Q_MOC_RUN

+ #include "VisualLayerWidgetUi.h"

+ 

+ #include "app-logic/Layer.h"

+ 

+ #include "gui/Colour.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/view-operations/InternalGeometryBuilder.h
++++ b/src/view-operations/InternalGeometryBuilder.h
+@@ -30,9 +30,11 @@
+ #include <vector>

+ #include <boost/optional.hpp>

+ 

++#ifndef Q_MOC_RUN

+ #include "maths/GeometryOnSphere.h"

+ #include "maths/GeometryType.h"

+ #include "maths/PointOnSphere.h"

++#endif

+ 

+ namespace GPlatesViewOperations

+ {

+--- a/src/view-operations/RenderedGeometryCollection.h
++++ b/src/view-operations/RenderedGeometryCollection.h
+@@ -39,7 +39,9 @@
+ #include <boost/foreach.hpp>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "RenderedGeometryLayer.h"

++#endif

+ 

+ namespace GPlatesViewOperations

+ {

+--- a/src/view-operations/RenderedGeometryFactory.h
++++ b/src/view-operations/RenderedGeometryFactory.h
+@@ -33,6 +33,7 @@
+ #include <QString>

+ #include <QFont>

+ 

++#ifndef Q_MOC_RUN

+ #include "RenderedGeometry.h"

+ #include "RenderedColouredEdgeSurfaceMesh.h"

+ #include "RenderedColouredTriangleSurfaceMesh.h"

+@@ -62,6 +63,7 @@
+ #include "property-values/TextContent.h"

+ 

+ #include "view-operations/ScalarField3DRenderParameters.h"

++#endif

+ 

+ 

+ namespace GPlatesAppLogic

+--- a/src/view-operations/RenderedGeometryLayer.h
++++ b/src/view-operations/RenderedGeometryLayer.h
+@@ -35,10 +35,12 @@
+ #include <boost/optional.hpp>

+ #include <QObject>

+ 

++#ifndef Q_MOC_RUN

+ #include "RenderedGeometry.h"

+ 

+ #include "maths/CubeQuadTreeLocation.h"

+ 

++#endif

+ 

+ namespace GPlatesMaths

+ {

diff --git a/nixpkgs/pkgs/applications/science/misc/gplates/default.nix b/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
new file mode 100644
index 000000000000..8b6c7497e547
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, qt4, qwt6_qt4, libGLU_combined, glew, gdal_1_11, cgal
+, proj, boost, cmake, python2, doxygen, graphviz, gmp }:
+
+stdenv.mkDerivation rec {
+  name = "gplates-${version}";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gplates/${name}-unixsrc.tar.bz2";
+    sha256 = "02scnjj5nlc2d2c8lbx0xvj8gg1bgkjliv3wxsx564c55a9x69qw";
+  };
+
+  patches = [
+    ./boostfix.patch
+  ];
+
+  buildInputs = [
+    qt4 qwt6_qt4 libGLU_combined glew gdal_1_11 cgal proj boost cmake python2
+    doxygen graphviz gmp
+  ];
+
+  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;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/megam/default.nix b/nixpkgs/pkgs/applications/science/misc/megam/default.nix
new file mode 100644
index 000000000000..8cd119c7b7b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/megam/default.nix
@@ -0,0 +1,46 @@
+{ fetchurl, stdenv, ocaml, makeWrapper, ncurses }:
+
+let version = "0.92"; in
+stdenv.mkDerivation rec {
+  name = "megam-${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/nixpkgs/pkgs/applications/science/misc/megam/ocaml-3.12.patch b/nixpkgs/pkgs/applications/science/misc/megam/ocaml-3.12.patch
new file mode 100644
index 000000000000..8265acf6e4a7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/megam/ocaml-includes.patch b/nixpkgs/pkgs/applications/science/misc/megam/ocaml-includes.patch
new file mode 100644
index 000000000000..b3a56643448c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/motu-client/default.nix b/nixpkgs/pkgs/applications/science/misc/motu-client/default.nix
new file mode 100644
index 000000000000..d4367ef7e2d3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/motu-client/default.nix
@@ -0,0 +1,23 @@
+{ python27Packages, fetchurl, lib } :
+python27Packages.buildPythonApplication rec {
+  pname = "motu-client";
+  version = "1.5.00";
+
+  src = fetchurl {
+    url = "https://github.com/quiet-oceans/motuclient-setuptools/archive/${version}.tar.gz";
+    sha256 = "1iqsws3wa2gpb36ms21xmaxfi83i8p8cdya4cxpn4r47c8mz74x8";
+  };
+
+  meta = with lib; {
+    homepage = https://github.com/quiet-oceans/motuclient-setuptools;
+    description = "CLI to query oceanographic data to Motu servers";
+    longDescription = ''
+      Access data from (motu)[https://sourceforge.net/projects/cls-motu/] servers.
+      This is a refactored fork of the original release in order to simplify integration,
+      deployment and packaging. Upstream code can be found at
+      https://sourceforge.net/projects/cls-motu/ .
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.lsix ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix b/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix
new file mode 100644
index 000000000000..76f958cc3a81
--- /dev/null
+++ b/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 {
+  name = "netlogo-${version}";
+  version = "6.0.4";
+
+  src = fetchurl {
+    url = "https://ccl.northwestern.edu/netlogo/${version}/NetLogo-${version}-64.tgz";
+    sha256 = "0dcd9df4dfb218826a74f9df42163fa588908a1dfe58864106936f8dfb76acec";
+  };
+
+  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/nixpkgs/pkgs/applications/science/misc/openmodelica/default.nix b/nixpkgs/pkgs/applications/science/misc/openmodelica/default.nix
new file mode 100644
index 000000000000..9e9a10a011ec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/openmodelica/default.nix
@@ -0,0 +1,57 @@
+{stdenv, fetchgit, fetchsvn, autoconf, automake, libtool, gfortran, clang, cmake, gnumake,
+hwloc, jre, liblapack, blas, hdf5, expat, ncurses, readline, qt4, webkit, which,
+lp_solve, omniorb, sqlite, libatomic_ops, pkgconfig, file, gettext, flex, bison,
+doxygen, boost, openscenegraph, gnome2, pangox_compat, 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 liblapack blas hdf5 expat ncurses readline qt4 webkit which
+    lp_solve omniorb sqlite libatomic_ops pkgconfig file gettext flex bison
+    doxygen boost openscenegraph gnome2.gtkglext pangox_compat 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 [ liblapack blas ]}"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "OpenModelica is 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/nixpkgs/pkgs/applications/science/misc/openmodelica/fakegit.nix b/nixpkgs/pkgs/applications/science/misc/openmodelica/fakegit.nix
new file mode 100644
index 000000000000..de69626cd3ee
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-git.nix b/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-git.nix
new file mode 100644
index 000000000000..aae5ab321fbe
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-svn.nix b/nixpkgs/pkgs/applications/science/misc/openmodelica/src-libs-svn.nix
new file mode 100644
index 000000000000..244da64fb4e6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/openmodelica/src-main.nix b/nixpkgs/pkgs/applications/science/misc/openmodelica/src-main.nix
new file mode 100644
index 000000000000..99e82259bfe6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-git.sh b/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-git.sh
new file mode 100755
index 000000000000..481a89796415
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-svn.sh b/nixpkgs/pkgs/applications/science/misc/openmodelica/update-src-libs-svn.sh
new file mode 100755
index 000000000000..972bc7d61f13
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix b/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix
new file mode 100644
index 000000000000..c3e1cd60bf0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchgit, pkgconfig, cmake
+, libjpeg ? null
+, zlib ? null
+, libpng ? null
+, eigen ? null
+, libtiff ? null
+, enableExamples ? false
+, enableDocs ? false }:
+
+stdenv.mkDerivation rec {
+  version = "1.3";
+  name = "openmvg-${version}";
+
+  src = fetchgit {
+    url = "https://www.github.com/openmvg/openmvg.git";
+
+    # Tag v1.1
+    rev = "refs/tags/v${version}";
+    sha256 = "1cf1gbcl8zvxp4rr6f6vaxwcg0yzc4xban2b5p9zy1m4k1f81zyb";
+    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 = http://openmvg.readthedocs.io/en/latest/;
+    license = stdenv.lib.licenses.mpl20;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ mdaiter ];
+    broken = true; # 2018-04-11
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix b/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix
new file mode 100644
index 000000000000..b665d5f4f687
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/openmvs/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake
+, eigen, opencv, ceres-solver, cgal, boost, vcg
+, gmp, mpfr, glog, google-gflags, libjpeg_turbo }:
+
+stdenv.mkDerivation rec {
+  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 google-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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/root/5.nix b/nixpkgs/pkgs/applications/science/misc/root/5.nix
new file mode 100644
index 000000000000..7f43dfb328a8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/root/5.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, cmake, pcre, pkgconfig, python2
+, libX11, libXpm, libXft, libXext, libGLU_combined, zlib, libxml2, lzma, gsl_1
+, Cocoa, OpenGL, noSplash ? false }:
+
+stdenv.mkDerivation rec {
+  name = "root-${version}";
+  version = "5.34.36";
+
+  src = fetchurl {
+    url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
+    sha256 = "1kbx1jxc0i5xfghpybk8927a0wamxyayij9c74zlqm0595gqx1pw";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake pcre python2 zlib libxml2 lzma gsl_1 ]
+    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU_combined ]
+    ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
+    ;
+
+  patches = [
+    ./sw_vers_root5.patch
+  ];
+
+  preConfigure = ''
+    patchShebangs build/unix/
+    ln -s ${stdenv.lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/
+  '' + 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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/root/default.nix b/nixpkgs/pkgs/applications/science/misc/root/default.nix
new file mode 100644
index 000000000000..2ec1ded68a26
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/root/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, cmake, pcre, pkgconfig, python2
+, libX11, libXpm, libXft, libXext, libGLU_combined, zlib, libxml2, lz4, lzma, gsl, xxHash
+, Cocoa, OpenGL, noSplash ? false }:
+
+stdenv.mkDerivation rec {
+  name = "root-${version}";
+  version = "6.12.06";
+
+  src = fetchurl {
+    url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
+    sha256 = "1557b9sdragsx9i15qh6lq7fn056bgi87d31kxdl4vl0awigvp5f";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake pcre python2 zlib libxml2 lz4 lzma gsl xxHash ]
+    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU_combined ]
+    ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
+    ;
+
+  patches = [
+    ./sw_vers.patch
+  ];
+
+  preConfigure = ''
+    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"
+    "-Ddavix=OFF"
+    "-Ddcache=OFF"
+    "-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"
+    "-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;
+
+  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/nixpkgs/pkgs/applications/science/misc/root/setup-hook.sh b/nixpkgs/pkgs/applications/science/misc/root/setup-hook.sh
new file mode 100644
index 000000000000..fc2b697d8a82
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/root/setup-hook.sh
@@ -0,0 +1,9 @@
+thisroot () {
+    # Workaround thisroot.sh dependency on man
+    if [ -z "${MANPATH}" ]; then
+        MANPATH=:
+    fi
+    source @out@/bin/thisroot.sh
+}
+
+postHooks+=(thisroot)
diff --git a/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch b/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch
new file mode 100644
index 000000000000..df0ef79d0a0f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/root/sw_vers.patch
@@ -0,0 +1,90 @@
+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} MATCHES 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,27 +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)
+-  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")
+@@ -135,7 +100,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
+@@ -304,7 +304,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/nixpkgs/pkgs/applications/science/misc/root/sw_vers_root5.patch b/nixpkgs/pkgs/applications/science/misc/root/sw_vers_root5.patch
new file mode 100644
index 000000000000..f044bed91f3d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/sasview/default.nix b/nixpkgs/pkgs/applications/science/misc/sasview/default.nix
new file mode 100644
index 000000000000..ed6fa3ae886b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/sasview/local_config.patch b/nixpkgs/pkgs/applications/science/misc/sasview/local_config.patch
new file mode 100644
index 000000000000..5b6c3436494a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/sasview/pyparsing-fix.patch b/nixpkgs/pkgs/applications/science/misc/sasview/pyparsing-fix.patch
new file mode 100644
index 000000000000..c3cd164a899a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/sasview/xhtml2pdf.nix b/nixpkgs/pkgs/applications/science/misc/sasview/xhtml2pdf.nix
new file mode 100644
index 000000000000..8eff2057928a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
new file mode 100644
index 000000000000..258073e4080b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix
@@ -0,0 +1,112 @@
+{ stdenv, fetchFromGitHub, 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 {
+  name = "simgrid-${version}";
+  version = "3.21";
+
+  src = fetchFromGitHub {
+    owner = "simgrid";
+    repo = "simgrid";
+    rev = "v${replaceChars ["."] ["_"] version}";
+    sha256 = "1v0dwlww2wl56ms8lvg5zwffzbmz3sjzpkqc73f714mrc9g02bxs";
+  };
+
+  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:
+  # http://simgrid.gforge.inria.fr/simgrid/latest/doc/install.html#install_cmake_list
+  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 = optionalString 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;
+
+  checkPhase = ''
+    runHook preCheck
+
+    ctest -j $NIX_BUILD_CORES --output-on-failure -E smpi-replay-multiple
+
+    runHook postCheck
+  '';
+
+  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 = http://simgrid.gforge.inria.fr/;
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ mickours ];
+    platforms = ["x86_64-linux"];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
new file mode 100644
index 000000000000..6f04d436877f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
@@ -0,0 +1,42 @@
+{
+  stdenv
+, python
+}:
+
+python.buildPythonPackage rec {
+  pname = "snakemake";
+  version = "5.2.2";
+
+  propagatedBuildInputs = with python; [
+    appdirs
+    ConfigArgParse
+    datrie
+    docutils
+    jsonschema
+    pyyaml
+    ratelimiter
+    requests
+    wrapt
+  ];
+
+  src = python.fetchPypi {
+    inherit pname version;
+    sha256 = "adffe7e24b4a613a9e8bf0a2a320b3cea236d86afb9132bb0bbbc08b8e35a3a3";
+  };
+
+  doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
+
+  meta = with stdenv.lib; {
+    homepage = http://snakemake.bitbucket.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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/misc/tulip/default.nix b/nixpkgs/pkgs/applications/science/misc/tulip/default.nix
new file mode 100644
index 000000000000..7db2e6a12c20
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/tulip/default.nix
@@ -0,0 +1,38 @@
+{ fetchurl, stdenv, libxml2, freetype, libGLU_combined, glew, qt4
+, cmake, makeWrapper, libjpeg, python }:
+
+let version = "5.1.0"; in
+stdenv.mkDerivation rec {
+  name = "tulip-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/auber/${name}_src.tar.gz";
+    sha256 = "1i70y8b39gkpxfalr9844pa3l4bnnyw5y7ngxdqibil96k2b9q9h";
+  };
+
+  buildInputs = [ libxml2 freetype glew libGLU_combined 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/nixpkgs/pkgs/applications/science/misc/vite/default.nix b/nixpkgs/pkgs/applications/science/misc/vite/default.nix
new file mode 100644
index 000000000000..64482ddd74bc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/misc/vite/default.nix
@@ -0,0 +1,44 @@
+{ fetchsvn, stdenv, cmake, qt4, libGLU_combined }:
+
+# 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_combined ];
+
+  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; [ fuuzetsu ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix b/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
new file mode 100644
index 000000000000..1986f3b75ec1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl
+, gfortran, mpi
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.10";
+  name = "DL_POLY_Classic-${version}";
+
+  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/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
new file mode 100644
index 000000000000..5f7b15f82d23
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -0,0 +1,55 @@
+
+{ stdenv, fetchurl, cmake,
+  singlePrec ? true,
+  mpiEnabled ? false,
+  fftw,
+  openmpi
+}:
+
+
+stdenv.mkDerivation {
+  name = "gromacs-2018.4";
+
+  src = fetchurl {
+    url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2018.4.tar.gz";
+    sha256 = "14d8mbck1lrmz97vvy322irk557wxh0zdd6n962lm69hqxcf8bkg";
+  };
+
+  buildInputs = [cmake fftw]
+  ++ (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/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix b/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
new file mode 100644
index 000000000000..f4491053e4c8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchFromGitHub
+, libpng, gzip, fftw, openblas
+, 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";
+  name = "lammps-${version}";
+
+  src = fetchFromGitHub {
+    owner = "lammps";
+    repo = "lammps";
+    rev = "${version}";
+    sha256 = "1dlifm9wm1jcw2zwal3fnzzl41ng08c7v48w6hx2mz84zljg1nsj";
+  };
+
+  passthru = {
+    inherit mpi;
+    inherit packages;
+  };
+
+  buildInputs = [ fftw libpng openblas 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/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix b/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix
new file mode 100644
index 000000000000..ad86ff61471c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "quantomatic-${version}";
+  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/nixpkgs/pkgs/applications/science/physics/sacrifice/compat.patch b/nixpkgs/pkgs/applications/science/physics/sacrifice/compat.patch
new file mode 100644
index 000000000000..c66b91b76280
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix b/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix
new file mode 100644
index 000000000000..64b88dcc3d4f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, boost, hepmc, lhapdf, pythia, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "sacrifice-${version}";
+  version = "1.0.0";
+
+  src = fetchurl {
+    url = "https://www.hepforge.org/archive/agile/Sacrifice-1.0.0.tar.gz";
+    sha256 = "10bvpq63kmszy1habydwncm0j1dgvam0fkrmvkgbkvf804dcjp6g";
+  };
+
+  buildInputs = [ boost hepmc lhapdf pythia ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  patches = [
+    ./compat.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=${hepmc}"
+    "--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/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix b/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix
new file mode 100644
index 000000000000..66a9bebacf0d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/physics/sherpa/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, gfortran, hepmc, fastjet, lhapdf, rivet, sqlite }:
+
+stdenv.mkDerivation rec {
+  name = "sherpa-${version}";
+  version = "2.2.5";
+
+  src = fetchurl {
+    url = "https://www.hepforge.org/archive/sherpa/SHERPA-MC-${version}.tar.gz";
+    sha256 = "0rv14j8gvjjr3darb0wcradlmsnyq915jz7v2yybrjzqfbsr3zb5";
+  };
+
+  buildInputs = [ gfortran sqlite lhapdf rivet ];
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--with-sqlite3=${sqlite.dev}"
+    "--enable-hepmc2=${hepmc}"
+    "--enable-fastjet=${fastjet}"
+    "--enable-lhapdf=${lhapdf}"
+    "--enable-rivet=${rivet}"
+  ];
+
+  CXXFLAGS = "-std=c++11"; # needed for rivet on OSX
+
+  meta = {
+    description = "Simulation of High-Energy Reactions of PArticles in lepton-lepton, lepton-photon, photon-photon, lepton-hadron and hadron-hadron collisions";
+    license     = stdenv.lib.licenses.gpl2;
+    homepage    = https://sherpa.hepforge.org;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ veprbl ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/physics/xfitter/calling_convention.patch b/nixpkgs/pkgs/applications/science/physics/xfitter/calling_convention.patch
new file mode 100644
index 000000000000..5b216b6e0928
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/physics/xfitter/calling_convention.patch
@@ -0,0 +1,355 @@
+diff --git a/DY/src/finterface.cc b/DY/src/finterface.cc
+index 0405786..eb171d0 100644
+--- 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_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,24 +116,20 @@ 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();
+ }
+ 
+@@ -155,6 +149,4 @@ int dy_release_()
+   for (; idc != gCalcs.end() ; idc++){
+     delete (idc->second);
+   }
+-
+-  return 1;
+ }
+diff --git a/FastNLO/src/FastNLOInterface.cc b/FastNLO/src/FastNLOInterface.cc
+index 20f8a75..a6dac79 100644
+--- 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
+index 7da88b1..96576a3 100644
+--- 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/ftheor_eval.cc b/src/ftheor_eval.cc
+index 1dd4e8b..8bc7991 100644
+--- 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
+index 4b20b68..549c521 100644
+--- 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/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix b/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix
new file mode 100644
index 000000000000..833370f81443
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/physics/xfitter/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, apfel, apfelgrid, applgrid, blas, gfortran, lhapdf, liblapack, libyaml, lynx, mela, root5, qcdnum, which }:
+
+stdenv.mkDerivation rec {
+  name = "xfitter-${version}";
+  version = "2.0.0";
+
+  src = fetchurl {
+    name = "${name}.tgz";
+    url = "https://www.xfitter.org/xFitter/xFitter/DownloadPage?action=AttachFile&do=get&target=${name}.tgz";
+    sha256 = "0j47s8laq3aqjlgp769yicvgyzqjb738a3rqss51d9fjrihi2515";
+  };
+
+  patches = [
+    ./calling_convention.patch
+  ];
+
+  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 liblapack mela root5 qcdnum ]
+    # 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" ];
+
+  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/nixpkgs/pkgs/applications/science/programming/fdr/default.nix b/nixpkgs/pkgs/applications/science/programming/fdr/default.nix
new file mode 100644
index 000000000000..3bfb70f5ce8e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/programming/fdr/default.nix
@@ -0,0 +1,69 @@
+{stdenv, fetchurl, qtbase, qtx11extras, ncurses, 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
+    ncurses
+    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"
+    # Hack around lack of libtinfo in NixOS
+    ln -s ${ncurses.out}/lib/libncursesw.so.6 $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/nixpkgs/pkgs/applications/science/programming/plm/default.nix b/nixpkgs/pkgs/applications/science/programming/plm/default.nix
new file mode 100644
index 000000000000..c454ad377686
--- /dev/null
+++ b/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}";
+  name = "plm-${version}";
+
+  src = fetchurl {
+    url = "http://webloria.loria.fr/~quinson/Teaching/PLM/plm-${major}_${minor}.jar";
+    sha256 = "0m17cxa3nxi2cbswqvlfzp0mlfi3wrkw8ry2xhkxy6aqzm2mlgcc";
+    name = "${name}.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/nixpkgs/pkgs/applications/science/programming/scyther/cli.nix b/nixpkgs/pkgs/applications/science/programming/scyther/cli.nix
new file mode 100644
index 000000000000..152b71217743
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/programming/scyther/cli.nix
@@ -0,0 +1,32 @@
+{ stdenv, glibc, flex, bison, cmake
+, version, src, meta }:
+stdenv.mkDerivation {
+  name = "scyther-cli-${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/nixpkgs/pkgs/applications/science/programming/scyther/default.nix b/nixpkgs/pkgs/applications/science/programming/scyther/default.nix
new file mode 100644
index 000000000000..e0993a580193
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/programming/scyther/default.nix
@@ -0,0 +1,79 @@
+{ 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 = "Scyther is 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 {
+    name = "scyther-gui-${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/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix b/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
new file mode 100644
index 000000000000..2d579a803698
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, qmake
+, qtbase, qtscript, qtwebkit, qtserialport, qtsvg, qtdeclarative, qtquickcontrols2
+, alsaLib, libsndfile, flite, openssl, udev, SDL2
+}:
+
+stdenv.mkDerivation rec {
+  name = "apmplanner2-${version}";
+  version = "2.0.26";
+  src = fetchFromGitHub {
+    owner = "ArduPilot";
+    repo = "apm_planner";
+    rev = "${version}";
+    sha256 = "0bnyi1r8k8ij5sq2zqv7mfbrxm0xdw97qrx3sk4rinqv2g6h6di4";
+  };
+
+  qtInputs = [
+    qtbase qtscript qtwebkit qtserialport qtsvg qtdeclarative qtquickcontrols2
+  ];
+
+  buildInputs = [ alsaLib libsndfile flite openssl udev SDL2 ] ++ qtInputs;
+  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 = http://ardupilot.org/planner2/;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ stdenv.lib.maintainers.wucke13 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/robotics/gazebo/6.nix b/nixpkgs/pkgs/applications/science/robotics/gazebo/6.nix
new file mode 100644
index 000000000000..0d1aa4a9085f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/robotics/gazebo/6.nix
@@ -0,0 +1,8 @@
+{ stdenv, fetchurl, callPackage, ignition, gazeboSimulator, ... } @ args:
+
+callPackage ./default.nix (args // rec {
+  version = "6.5.1";
+  src-sha256 = "96260aa23f1a1f24bc116f8e359d31f3bc65011033977cb7fb2c64d574321908";
+  sdformat = gazeboSimulator.sdformat3;
+})
+
diff --git a/nixpkgs/pkgs/applications/science/robotics/gazebo/default.nix b/nixpkgs/pkgs/applications/science/robotics/gazebo/default.nix
new file mode 100644
index 000000000000..98ccd92c4ee5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/robotics/gazebo/default.nix
@@ -0,0 +1,84 @@
+{ stdenv, fetchurl, cmake, pkgconfig, boost, protobuf, freeimage
+  , boost-build, boost_process
+  , xorg_sys_opengl, tbb, ogre, tinyxml-2
+  , libtar, glxinfo,  libusb, libxslt, ignition
+  , pythonPackages, utillinux
+
+  # these deps are hidden; cmake doesn't catch them
+  , gazeboSimulator, sdformat ? gazeboSimulator.sdformat, curl, tinyxml, qt4
+  , xlibsWrapper
+  , withIgnitionTransport ? true
+  , libav, withLibAvSupport ? true
+  , openal, withAudioSupport ? false
+  , withQuickBuild ? false, withHeadless ? false, withLowMemorySupport ? false
+  , doxygen, withDocs ? true
+  , bullet, withBulletEngineSupport ? false
+  , graphviz, withModelEditorSchematicView ? true # graphviz needed for this view
+  , gdal, withDigitalElevationTerrainsSupport ? true
+  , gts, withConstructiveSolidGeometrySupport ? true
+  , hdf5, withHdf5Support ? true
+  , version ? "7.0.0"
+  , src-sha256 ? "127q2g93kvmak2b6vhl13xzg56h09v14s4pki8wv7aqjv0c3whbl"
+  , ...
+}: with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  inherit version;
+  name = "gazebo-${version}";
+
+  src = fetchurl {
+    url = "https://osrf-distributions.s3.amazonaws.com/gazebo/releases/${name}.tar.bz2";
+    sha256 = src-sha256;
+  };
+
+  enableParallelBuilding = true; # gazebo needs this so bad
+  cmakeFlags = [
+  "-DCMAKE_INSTALL_LIBDIR:PATH=lib"
+  "-DCMAKE_INSTALL_INCLUDEDIR=include" ]
+    ++ optional withQuickBuild [ "-DENABLE_TESTS_COMPILATION=False" ]
+    ++ optional withLowMemorySupport [ "-DUSE_LOW_MEMORY_TESTS=True" ]
+    ++ optional withHeadless [ "-DENABLE_SCREEN_TESTS=False" ];
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  propagatedNativeBuildInputs = [ boost boost-build boost_process protobuf ];
+
+  buildInputs = [
+    #cmake boost protobuf
+    freeimage
+    xorg_sys_opengl
+    tbb
+    ogre
+    tinyxml-2
+    libtar
+    glxinfo
+    libusb
+    libxslt
+    ignition.math2
+    sdformat
+    pythonPackages.pyopengl
+
+    # TODO: add these hidden deps to cmake configuration & submit upstream
+    curl
+    tinyxml
+    xlibsWrapper
+    qt4
+  ] ++ optional stdenv.isLinux utillinux # on Linux needs uuid/uuid.h
+    ++ optional withDocs doxygen
+    ++ optional withLibAvSupport libav  #TODO: package rubygem-ronn and put it here
+    ++ optional withAudioSupport openal
+    ++ optional withBulletEngineSupport bullet
+    ++ optional withIgnitionTransport ignition.transport
+    ++ optional withModelEditorSchematicView graphviz
+    ++ optional withDigitalElevationTerrainsSupport gdal
+    ++ optional withConstructiveSolidGeometrySupport gts
+    ++ optional withHdf5Support hdf5;
+
+  meta = with stdenv.lib; {
+    homepage = http://gazebosim.org/;
+    description = "Multi-robot simulator for outdoor environments";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ pxc ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/0001-fix-gcc-cmath-namespace-issues.patch b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/0001-fix-gcc-cmath-namespace-issues.patch
new file mode 100644
index 000000000000..e6c9ca38a989
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/0001-fix-gcc-cmath-namespace-issues.patch
@@ -0,0 +1,140 @@
+From fffc383c10c7c194e427d78c83802c3b910fa1c2 Mon Sep 17 00:00:00 2001
+From: Patrick Callahan <pxcallahan@gmail.com>
+Date: Thu, 24 Mar 2016 18:17:57 -0700
+Subject: [PATCH] fix gcc cmath namespace issues
+
+---
+ src/Vehicle/Vehicle.cc        | 6 +++---
+ src/comm/QGCFlightGearLink.cc | 4 ++--
+ src/comm/QGCJSBSimLink.cc     | 4 ++--
+ src/uas/UAS.cc                | 8 ++++----
+ src/ui/QGCDataPlot2D.cc       | 4 ++--
+ 5 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc
+index a0d3605..205b1de 100644
+--- a/src/Vehicle/Vehicle.cc
++++ b/src/Vehicle/Vehicle.cc
+@@ -638,17 +638,17 @@ void Vehicle::setLongitude(double longitude){
+ 
+ void Vehicle::_updateAttitude(UASInterface*, double roll, double pitch, double yaw, quint64)
+ {
+-    if (isinf(roll)) {
++    if (std::isinf(roll)) {
+         _rollFact.setRawValue(0);
+     } else {
+         _rollFact.setRawValue(roll * (180.0 / M_PI));
+     }
+-    if (isinf(pitch)) {
++    if (std::isinf(pitch)) {
+         _pitchFact.setRawValue(0);
+     } else {
+         _pitchFact.setRawValue(pitch * (180.0 / M_PI));
+     }
+-    if (isinf(yaw)) {
++    if (std::isinf(yaw)) {
+         _headingFact.setRawValue(0);
+     } else {
+         yaw = yaw * (180.0 / M_PI);
+diff --git a/src/comm/QGCFlightGearLink.cc b/src/comm/QGCFlightGearLink.cc
+index 2a520fb..886aecf 100644
+--- a/src/comm/QGCFlightGearLink.cc
++++ b/src/comm/QGCFlightGearLink.cc
+@@ -230,7 +230,7 @@ void QGCFlightGearLink::updateControls(quint64 time, float rollAilerons, float p
+     Q_UNUSED(systemMode);
+     Q_UNUSED(navMode);
+ 
+-    if(!isnan(rollAilerons) && !isnan(pitchElevator) && !isnan(yawRudder) && !isnan(throttle))
++    if(!std::isnan(rollAilerons) && !std::isnan(pitchElevator) && !std::isnan(yawRudder) && !std::isnan(throttle))
+     {
+         QString state("%1\t%2\t%3\t%4\t%5\n");
+         state = state.arg(rollAilerons).arg(pitchElevator).arg(yawRudder).arg(true).arg(throttle);
+@@ -240,7 +240,7 @@ void QGCFlightGearLink::updateControls(quint64 time, float rollAilerons, float p
+     }
+     else
+     {
+-        qDebug() << "HIL: Got NaN values from the hardware: isnan output: roll: " << isnan(rollAilerons) << ", pitch: " << isnan(pitchElevator) << ", yaw: " << isnan(yawRudder) << ", throttle: " << isnan(throttle);
++        qDebug() << "HIL: Got NaN values from the hardware: std::isnan output: roll: " << std::isnan(rollAilerons) << ", pitch: " << std::isnan(pitchElevator) << ", yaw: " << std::isnan(yawRudder) << ", throttle: " << std::isnan(throttle);
+     }
+ }
+ 
+diff --git a/src/comm/QGCJSBSimLink.cc b/src/comm/QGCJSBSimLink.cc
+index 1210621..89db371 100644
+--- a/src/comm/QGCJSBSimLink.cc
++++ b/src/comm/QGCJSBSimLink.cc
+@@ -242,7 +242,7 @@ void QGCJSBSimLink::updateControls(quint64 time, float rollAilerons, float pitch
+     Q_UNUSED(systemMode);
+     Q_UNUSED(navMode);
+ 
+-    if(!isnan(rollAilerons) && !isnan(pitchElevator) && !isnan(yawRudder) && !isnan(throttle))
++    if(!std::isnan(rollAilerons) && !std::isnan(pitchElevator) && !std::isnan(yawRudder) && !std::isnan(throttle))
+     {
+         QString state("%1\t%2\t%3\t%4\t%5\n");
+         state = state.arg(rollAilerons).arg(pitchElevator).arg(yawRudder).arg(true).arg(throttle);
+@@ -250,7 +250,7 @@ void QGCJSBSimLink::updateControls(quint64 time, float rollAilerons, float pitch
+     }
+     else
+     {
+-        qDebug() << "HIL: Got NaN values from the hardware: isnan output: roll: " << isnan(rollAilerons) << ", pitch: " << isnan(pitchElevator) << ", yaw: " << isnan(yawRudder) << ", throttle: " << isnan(throttle);
++        qDebug() << "HIL: Got NaN values from the hardware: isnan output: roll: " << std::isnan(rollAilerons) << ", pitch: " << std::isnan(pitchElevator) << ", yaw: " << std::isnan(yawRudder) << ", throttle: " << std::isnan(throttle);
+     }
+     //qDebug() << "Updated controls" << state;
+ }
+diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc
+index 4d5c1c2..ac88852 100644
+--- a/src/uas/UAS.cc
++++ b/src/uas/UAS.cc
+@@ -558,7 +558,7 @@ void UAS::receiveMessage(mavlink_message_t message)
+ 

+             setAltitudeAMSL(hud.alt);

+             setGroundSpeed(hud.groundspeed);

+-            if (!isnan(hud.airspeed))

++            if (!std::isnan(hud.airspeed))

+                 setAirSpeed(hud.airspeed);

+             speedZ = -hud.climb;

+             emit altitudeChanged(this, altitudeAMSL, altitudeRelative, -speedZ, time);

+@@ -654,7 +654,7 @@ void UAS::receiveMessage(mavlink_message_t message)
+ 

+                     float vel = pos.vel/100.0f;

+                     // Smaller than threshold and not NaN

+-                    if ((vel < 1000000) && !isnan(vel) && !isinf(vel)) {

++                    if ((vel < 1000000) && !std::isnan(vel) && !std::isinf(vel)) {

+                         setGroundSpeed(vel);

+                         emit speedChanged(this, groundSpeed, airSpeed, time);

+                     } else {

+@@ -1439,8 +1439,8 @@ void UAS::setExternalControlSetpoint(float roll, float pitch, float yaw, float t
+     if (countSinceLastTransmission++ >= 5) {

+         sendCommand = true;

+         countSinceLastTransmission = 0;

+-    } else if ((!isnan(roll) && roll != manualRollAngle) || (!isnan(pitch) && pitch != manualPitchAngle) ||

+-             (!isnan(yaw) && yaw != manualYawAngle) || (!isnan(thrust) && thrust != manualThrust) ||

++    } else if ((!std::isnan(roll) && roll != manualRollAngle) || (!std::isnan(pitch) && pitch != manualPitchAngle) ||

++             (!std::isnan(yaw) && yaw != manualYawAngle) || (!std::isnan(thrust) && thrust != manualThrust) ||

+              buttons != manualButtons) {

+         sendCommand = true;

+ 

+diff --git a/src/ui/QGCDataPlot2D.cc b/src/ui/QGCDataPlot2D.cc
+index 2e530b2..9d5a774 100644
+--- a/src/ui/QGCDataPlot2D.cc
++++ b/src/ui/QGCDataPlot2D.cc
+@@ -535,7 +535,7 @@ void QGCDataPlot2D::loadCsvLog(QString file, QString xAxisName, QString yAxisFil
+                 {
+                     bool okx = true;
+                     x = text.toDouble(&okx);
+-                    if (okx && !isnan(x) && !isinf(x))
++                    if (okx && !std::isnan(x) && !std::isinf(x))
+                     {
+                         headerfound = true;
+                     }
+@@ -561,7 +561,7 @@ void QGCDataPlot2D::loadCsvLog(QString file, QString xAxisName, QString yAxisFil
+                         y = text.toDouble(&oky);
+                         // Only INF is really an issue for the plot
+                         // NaN is fine
+-                        if (oky && !isnan(y) && !isinf(y) && text.length() > 0 && text != " " && text != "\n" && text != "\r" && text != "\t")
++                        if (oky && !std::isnan(y) && !std::isinf(y) && text.length() > 0 && text != " " && text != "\n" && text != "\r" && text != "\t")
+                         {
+                             // Only append definitely valid values
+                             xValues.value(curveName)->append(x);
+-- 
+2.7.4
+
diff --git a/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
new file mode 100644
index 000000000000..eae5d3766d6d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchgit, git,  SDL2, udev, doxygen
+, qtbase, qtlocation, qtserialport, qtdeclarative, qtconnectivity, qtxmlpatterns
+, qtsvg, qtquick1, qtquickcontrols, qtgraphicaleffects, qmake, qtspeech
+, makeWrapper
+, gst_all_1, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+  name = "qgroundcontrol-${version}";
+  version = "3.3.0";
+
+  qtInputs = [
+    qtbase qtlocation qtserialport qtdeclarative qtconnectivity qtxmlpatterns qtsvg
+    qtquick1 qtquickcontrols qtgraphicaleffects qtspeech
+  ];
+
+  gstInputs = with gst_all_1; [
+    gstreamer gst-plugins-base
+  ];
+
+  enableParallelBuilding = true;
+  buildInputs = [ SDL2 udev doxygen git ] ++ gstInputs ++ qtInputs;
+  nativeBuildInputs = [ pkgconfig makeWrapper qmake ];
+
+  preConfigure = ''
+    mkdir build
+    cd build
+  '';
+
+  qmakeFlags = [
+    # Default install tries to copy Qt files into package
+    "CONFIG+=QGC_DISABLE_BUILD_SETUP"
+    "../qgroundcontrol.pro"
+  ];
+
+  installPhase = ''
+    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
+  '';
+
+  postInstall = ''
+    wrapProgram "$out/bin/qgroundcontrol" \
+      --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
+  '';
+
+  # TODO: package mavlink so we can build from a normal source tarball
+  src = fetchgit {
+    url = "https://github.com/mavlink/qgroundcontrol.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "0abjm0wywp24qlgg9w8g35ijprjg5csq4fgba9caaiwvmpfbhmpw";
+    fetchSubmodules = true;
+  };
+
+  meta = with stdenv.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; [ pxc ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/robotics/yarp/default.nix b/nixpkgs/pkgs/applications/science/robotics/yarp/default.nix
new file mode 100644
index 000000000000..507481cddab2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/robotics/yarp/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, ace
+}:
+
+stdenv.mkDerivation rec {
+  name = "yarp-${version}";
+  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/nixpkgs/pkgs/applications/science/spyder/default.nix b/nixpkgs/pkgs/applications/science/spyder/default.nix
new file mode 100644
index 000000000000..71def712db6c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/spyder/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, python3, makeDesktopItem }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "spyder";
+  version = "3.2.8";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "0iwcby2bxvayz0kp282yh864br55w6gpd8rqcdj1cp3jbn3q6vg5";
+  };
+
+  # Somehow setuptools can't find pyqt5. Maybe because the dist-info folder is missing?
+  postPatch = ''
+    sed -i -e '/pyqt5/d' setup.py
+  '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    jedi pycodestyle psutil pyflakes rope numpy scipy matplotlib pylint
+    numpydoc qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle
+  ];
+
+  # There is no test for spyder
+  doCheck = false;
+
+  desktopItem = makeDesktopItem {
+    name = "Spyder";
+    exec = "spyder";
+    icon = "spyder";
+    comment = "Scientific Python Development Environment";
+    desktopName = "Spyder";
+    genericName = "Python IDE";
+    categories = "Application;Development;Editor;IDE;";
+  };
+
+  # Create desktop item
+  postInstall = ''
+    mkdir -p $out/share/icons
+    cp spyder/images/spyder.svg $out/share/icons
+    cp -r $desktopItem/share/applications/ $out/share
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Scientific python development environment";
+    longDescription = ''
+      Spyder (previously known as Pydee) is a powerful interactive development
+      environment for the Python language with advanced editing, interactive
+      testing, debugging and introspection features.
+    '';
+    homepage = https://github.com/spyder-ide/spyder/;
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/search/catfish/default.nix b/nixpkgs/pkgs/applications/search/catfish/default.nix
new file mode 100644
index 000000000000..ab34c6bec922
--- /dev/null
+++ b/nixpkgs/pkgs/applications/search/catfish/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, file, which, intltool, gobject-introspection,
+  findutils, xdg_utils, gnome3, pythonPackages, hicolor-icon-theme,
+  wrapGAppsHook
+}:
+
+pythonPackages.buildPythonApplication rec {
+  majorver = "1.4";
+  minorver = "6";
+  version = "${majorver}.${minorver}";
+  pname = "catfish";
+
+  src = fetchurl {
+    url = "https://archive.xfce.org/src/apps/${pname}/${majorver}/${pname}-${version}.tar.bz2";
+    sha256 = "1gxdk5gx0gjq95jhdbpiq39cxpzd4vmw00a78f0wg2i6qlafxjp1";
+  };
+
+  nativeBuildInputs = [
+    pythonPackages.distutils_extra
+    file
+    which
+    intltool
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gnome3.gtk
+    gnome3.dconf
+    pythonPackages.pyxdg
+    pythonPackages.ptyprocess
+    pythonPackages.pycairo
+    hicolor-icon-theme
+  ];
+
+  propagatedBuildInputs = [
+    pythonPackages.pygobject3
+    pythonPackages.pexpect
+    xdg_utils
+    findutils
+  ];
+
+  # Explicitly set the prefix dir in "setup.py" because setuptools is
+  # not using "$out" as the prefix when installing catfish data. In
+  # particular the variable "__catfish_data_directory__" in
+  # "catfishconfig.py" is being set to a subdirectory in the python
+  # path in the store.
+  postPatch = ''
+    sed -i "/^        if self.root/i\\        self.prefix = \"$out\"" setup.py
+  '';
+
+  # Disable check because there is no test in the source distribution
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://docs.xfce.org/apps/catfish/start;
+    description = "A handy file search tool";
+    longDescription = ''
+      Catfish is a handy file searching tool. The interface is
+      intentionally lightweight and simple, using only GTK+3.
+      You can configure it to your needs by using several command line
+      options.
+    '';
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/search/doodle/default.nix b/nixpkgs/pkgs/applications/search/doodle/default.nix
new file mode 100644
index 000000000000..ba9fbee5d969
--- /dev/null
+++ b/nixpkgs/pkgs/applications/search/doodle/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libextractor, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "doodle-0.7.0";
+
+  buildInputs = [ libextractor gettext ];
+
+  src = fetchurl {
+    url = "https://grothoff.org/christian/doodle/download/${name}.tar.gz";
+    sha256 = "0ayx5q7chzll9sv3miq35xl36r629cvgdzphf379kxzlzhjldy3j";
+  };
+
+  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/nixpkgs/pkgs/applications/search/grepcidr/default.nix b/nixpkgs/pkgs/applications/search/grepcidr/default.nix
new file mode 100644
index 000000000000..69fc0e76932c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/search/grepcidr/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "grepcidr-${version}";
+  version = "2.0";
+
+  src = fetchurl {
+    url = "http://www.pc-tools.net/files/unix/${name}.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/nixpkgs/pkgs/applications/search/grepm/default.nix b/nixpkgs/pkgs/applications/search/grepm/default.nix
new file mode 100644
index 000000000000..99c149b79d9d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/search/grepm/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, perlPackages, mutt }:
+
+stdenv.mkDerivation rec {
+  name = "grepm-${version}";
+  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/nixpkgs/pkgs/applications/search/recoll/default.nix b/nixpkgs/pkgs/applications/search/recoll/default.nix
new file mode 100644
index 000000000000..15c78fd81bb5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/search/recoll/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, lib, bison
+, qt4, xapian, file, python, perl
+, djvulibre, groff, libxslt, unzip, poppler_utils, antiword, catdoc, lyx
+, libwpd, unrtf, untex
+, ghostscript, gawk, gnugrep, gnused, gnutar, gzip, libiconv, zlib
+, withGui ? true }:
+
+assert stdenv.hostPlatform.system != "powerpc-linux";
+
+stdenv.mkDerivation rec {
+  ver = "1.24.4";
+  name = "recoll-${ver}";
+
+  src = fetchurl {
+    url = "https://www.lesbonscomptes.com/recoll/${name}.tar.gz";
+    sha256 = "0b1rz679gbv2qy5b5jgr25h1dk8560iac16lq0h2021nrv6ix74q";
+  };
+
+  configureFlags = [ "--enable-recollq" ]
+    ++ lib.optionals (!withGui) [ "--disable-qtgui" "--disable-x11mon" ]
+    ++ (if stdenv.isLinux then [ "--with-inotify" ] else [ "--without-inotify" ]);
+
+  buildInputs = [ xapian file python bison zlib ]
+    ++ lib.optional withGui qt4
+    ++ lib.optional stdenv.isDarwin libiconv;
+
+  patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i 's/-Wl,--no-undefined -Wl,--warn-unresolved-symbols//' Makefile.am
+    sed -i 's/-Wl,--no-undefined -Wl,--warn-unresolved-symbols//' Makefile.in
+  '';
+
+  # 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 = ''
+    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 = http://www.lesbonscomptes.com/recoll/;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.jcumming ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/search/recoll/nodeblayout.patch b/nixpkgs/pkgs/applications/search/recoll/nodeblayout.patch
new file mode 100644
index 000000000000..39988423ae1f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/search/recoll/nodeblayout.patch
@@ -0,0 +1,12 @@
+diff -ru recoll-1.21.3-orig/recollinstall.in recoll-1.21.3/recollinstall.in
+--- recoll-1.21.3-orig/recollinstall.in	2015-09-28 08:08:42.000000000 +0100
++++ recoll-1.21.3/recollinstall.in	2015-12-13 22:48:30.361776374 +0000
+@@ -45,9 +45,6 @@
+    mandir=$DESTDIR/$mandir
+    ROOTFORPYTHON="--root=${DESTDIR}"
+ fi
+-if test -f /etc/debian_version ; then
+-   OPTSFORPYTHON=--install-layout=deb
+-fi
+ 
+ echo "Installing to $PREFIX"
diff --git a/nixpkgs/pkgs/applications/search/recoll/versionawk.patch b/nixpkgs/pkgs/applications/search/recoll/versionawk.patch
new file mode 100644
index 000000000000..a03ffbc16df1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/search/recoll/versionawk.patch
@@ -0,0 +1,12 @@
+diff -ru recoll-1.21.3-orig/filters/rclpdf recoll-1.21.3/filters/rclpdf
+--- recoll-1.21.3-orig/filters/rclpdf	2015-09-28 08:08:15.000000000 +0100
++++ recoll-1.21.3/filters/rclpdf	2015-12-14 21:37:01.984945925 +0000
+@@ -129,7 +129,7 @@
+ {
+     # Test poppler version: at some point before 0.24, poppler began
+     # to properly escape text inside the header (but not the body).
+-    XYZ=`pdftotext -v 2>&1 | awk '/pdftotext/{print $3}'`
++    XYZ=`pdftotext -v 2>&1 | awk '/version/{print $3}'`
+     MAJOR=`echo $XYZ | cut -d. -f 1`
+     MINOR=`echo $XYZ | cut -d. -f 2`
+     escapeheader=1
diff --git a/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch b/nixpkgs/pkgs/applications/version-management/arch/configure-tmpdir.patch
new file mode 100644
index 000000000000..2b39322ca22f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/arch/default.nix b/nixpkgs/pkgs/applications/version-management/arch/default.nix
new file mode 100644
index 000000000000..bc62004065b3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/arch/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, which, diffutils, gnupatch, gnutar }:
+
+stdenv.mkDerivation rec {
+  name = "tla-1.3.5";
+  
+  src = fetchurl {
+    url = "ftp://ftp.gnu.org/old-gnu/gnu-arch/" + name + ".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/nixpkgs/pkgs/applications/version-management/bazaar/CVE-2017-14176.patch b/nixpkgs/pkgs/applications/version-management/bazaar/CVE-2017-14176.patch
new file mode 100644
index 000000000000..a34ab0c6eb10
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/bazaar/CVE-2017-14176.patch
@@ -0,0 +1,149 @@
+diff --git a/bzrlib/tests/test_ssh_transport.py b/bzrlib/tests/test_ssh_transport.py
+index 9e37c3b..fe9f219 100644
+--- a/bzrlib/tests/test_ssh_transport.py
++++ b/bzrlib/tests/test_ssh_transport.py
+@@ -22,6 +22,7 @@ from bzrlib.transport.ssh import (
+     SSHCorpSubprocessVendor,
+     LSHSubprocessVendor,
+     SSHVendorManager,
++    StrangeHostname,
+     )
+ 
+ 
+@@ -161,6 +162,19 @@ class SSHVendorManagerTests(TestCase):
+ 
+ class SubprocessVendorsTests(TestCase):
+ 
++    def test_openssh_command_tricked(self):
++        vendor = OpenSSHSubprocessVendor()
++        self.assertEqual(
++            vendor._get_vendor_specific_argv(
++                "user", "-oProxyCommand=blah", 100, command=["bzr"]),
++            ["ssh", "-oForwardX11=no", "-oForwardAgent=no",
++                "-oClearAllForwardings=yes",
++                "-oNoHostAuthenticationForLocalhost=yes",
++                "-p", "100",
++                "-l", "user",
++                "--",
++                "-oProxyCommand=blah", "bzr"])
++
+     def test_openssh_command_arguments(self):
+         vendor = OpenSSHSubprocessVendor()
+         self.assertEqual(
+@@ -171,6 +185,7 @@ class SubprocessVendorsTests(TestCase):
+                 "-oNoHostAuthenticationForLocalhost=yes",
+                 "-p", "100",
+                 "-l", "user",
++                "--",
+                 "host", "bzr"]
+             )
+ 
+@@ -184,9 +199,16 @@ class SubprocessVendorsTests(TestCase):
+                 "-oNoHostAuthenticationForLocalhost=yes",
+                 "-p", "100",
+                 "-l", "user",
+-                "-s", "host", "sftp"]
++                "-s", "--", "host", "sftp"]
+             )
+ 
++    def test_openssh_command_tricked(self):
++        vendor = SSHCorpSubprocessVendor()
++        self.assertRaises(
++            StrangeHostname,
++            vendor._get_vendor_specific_argv,
++                "user", "-oProxyCommand=host", 100, command=["bzr"])
++
+     def test_sshcorp_command_arguments(self):
+         vendor = SSHCorpSubprocessVendor()
+         self.assertEqual(
+@@ -209,6 +231,13 @@ class SubprocessVendorsTests(TestCase):
+                 "-s", "sftp", "host"]
+             )
+ 
++    def test_lsh_command_tricked(self):
++        vendor = LSHSubprocessVendor()
++        self.assertRaises(
++            StrangeHostname,
++            vendor._get_vendor_specific_argv,
++                "user", "-oProxyCommand=host", 100, command=["bzr"])
++
+     def test_lsh_command_arguments(self):
+         vendor = LSHSubprocessVendor()
+         self.assertEqual(
+@@ -231,6 +260,13 @@ class SubprocessVendorsTests(TestCase):
+                 "--subsystem", "sftp", "host"]
+             )
+ 
++    def test_plink_command_tricked(self):
++        vendor = PLinkSubprocessVendor()
++        self.assertRaises(
++            StrangeHostname,
++            vendor._get_vendor_specific_argv,
++                "user", "-oProxyCommand=host", 100, command=["bzr"])
++
+     def test_plink_command_arguments(self):
+         vendor = PLinkSubprocessVendor()
+         self.assertEqual(
+diff --git a/bzrlib/transport/ssh.py b/bzrlib/transport/ssh.py
+index eecaa26..6f22341 100644
+--- a/bzrlib/transport/ssh.py
++++ b/bzrlib/transport/ssh.py
+@@ -46,6 +46,10 @@ else:
+     from paramiko.sftp_client import SFTPClient
+ 
+ 
++class StrangeHostname(errors.BzrError):
++    _fmt = "Refusing to connect to strange SSH hostname %(hostname)s"
++
++
+ SYSTEM_HOSTKEYS = {}
+ BZR_HOSTKEYS = {}
+ 
+@@ -360,6 +364,11 @@ class SubprocessVendor(SSHVendor):
+     # tests, but beware of using PIPE which may hang due to not being read.
+     _stderr_target = None
+ 
++    @staticmethod
++    def _check_hostname(arg):
++        if arg.startswith('-'):
++            raise StrangeHostname(hostname=arg)
++
+     def _connect(self, argv):
+         # Attempt to make a socketpair to use as stdin/stdout for the SSH
+         # subprocess.  We prefer sockets to pipes because they support
+@@ -424,9 +433,9 @@ class OpenSSHSubprocessVendor(SubprocessVendor):
+         if username is not None:
+             args.extend(['-l', username])
+         if subsystem is not None:
+-            args.extend(['-s', host, subsystem])
++            args.extend(['-s', '--', host, subsystem])
+         else:
+-            args.extend([host] + command)
++            args.extend(['--', host] + command)
+         return args
+ 
+ register_ssh_vendor('openssh', OpenSSHSubprocessVendor())
+@@ -439,6 +448,7 @@ class SSHCorpSubprocessVendor(SubprocessVendor):
+ 
+     def _get_vendor_specific_argv(self, username, host, port, subsystem=None,
+                                   command=None):
++        self._check_hostname(host)
+         args = [self.executable_path, '-x']
+         if port is not None:
+             args.extend(['-p', str(port)])
+@@ -460,6 +470,7 @@ class LSHSubprocessVendor(SubprocessVendor):
+ 
+     def _get_vendor_specific_argv(self, username, host, port, subsystem=None,
+                                   command=None):
++        self._check_hostname(host)
+         args = [self.executable_path]
+         if port is not None:
+             args.extend(['-p', str(port)])
+@@ -481,6 +492,7 @@ class PLinkSubprocessVendor(SubprocessVendor):
+ 
+     def _get_vendor_specific_argv(self, username, host, port, subsystem=None,
+                                   command=None):
++        self._check_hostname(host)
+         args = [self.executable_path, '-x', '-a', '-ssh', '-2', '-batch']
+         if port is not None:
+             args.extend(['-P', str(port)])
diff --git a/nixpkgs/pkgs/applications/version-management/bazaar/add_certificates.patch b/nixpkgs/pkgs/applications/version-management/bazaar/add_certificates.patch
new file mode 100644
index 000000000000..18fac36daec5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/bazaar/add_certificates.patch
@@ -0,0 +1,11 @@
+diff -ru orig/bzrlib/transport/http/_urllib2_wrappers.py bzr-2.7.0/bzrlib/transport/http/_urllib2_wrappers.py
+--- orig/bzr-2.7.0/bzrlib/transport/http/_urllib2_wrappers.py	2016-02-01 20:49:17.000000000 +0100
++++ bzr-2.7.0/bzrlib/transport/http/_urllib2_wrappers.py	2016-06-18 23:15:21.089511349 +0200
+@@ -95,6 +95,7 @@
+     u"/usr/local/share/certs/ca-root-nss.crt",  # FreeBSD
+     # XXX: Needs checking, can't trust the interweb ;) -- vila 2012-01-25
+     u'/etc/openssl/certs/ca-certificates.crt',  # Solaris
++    u'@certPath@',
+ ]
+
+
diff --git a/nixpkgs/pkgs/applications/version-management/bazaar/default.nix b/nixpkgs/pkgs/applications/version-management/bazaar/default.nix
new file mode 100644
index 000000000000..097c1e86a897
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/bazaar/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, python2Packages
+, withSFTP ? true
+ }:
+
+python2Packages.buildPythonApplication rec {
+  version = "2.7";
+  release = ".0";
+  name = "bazaar-${version}${release}";
+
+  src = fetchurl {
+    url = "https://launchpad.net/bzr/${version}/${version}${release}/+download/bzr-${version}${release}.tar.gz";
+    sha256 = "1cysix5k3wa6y7jjck3ckq3abls4gvz570s0v0hxv805nwki4i8d";
+  };
+
+  doCheck = false;
+
+  propagatedBuildInputs = []
+  ++ stdenv.lib.optionals withSFTP [ python2Packages.paramiko ];
+
+  patches = [
+    # Bazaar can't find the certificates alone
+    ./add_certificates.patch
+    ./CVE-2017-14176.patch
+  ];
+  postPatch = ''
+    substituteInPlace bzrlib/transport/http/_urllib2_wrappers.py \
+      --subst-var-by certPath /etc/ssl/certs/ca-certificates.crt
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://bazaar-vcs.org/;
+    description = "A distributed version control system that Just Works";
+    platforms = platforms.unix;
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/bazaar/tools.nix b/nixpkgs/pkgs/applications/version-management/bazaar/tools.nix
new file mode 100644
index 000000000000..d16ea2710503
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/bazaar/tools.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  name = "bzr-tools-${version}";
+  version = "2.6.0";
+
+  src = fetchurl {
+    url = "https://launchpad.net/bzrtools/stable/${version}/+download/bzrtools-${version}.tar.gz";
+    sha256 = "0n3zzc6jf5866kfhmrnya1vdr2ja137a45qrzsz8vz6sc6xgn5wb";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Bazaar plugins";
+    homepage = http://wiki.bazaar.canonical.com/BzrTools;
+    platforms = platforms.unix;
+    license = licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix b/nixpkgs/pkgs/applications/version-management/bitkeeper/default.nix
new file mode 100644
index 000000000000..26397380d57f
--- /dev/null
+++ b/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 {
+  name = "bitkeeper-${version}";
+  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/nixpkgs/pkgs/applications/version-management/blackbox/default.nix b/nixpkgs/pkgs/applications/version-management/blackbox/default.nix
new file mode 100644
index 000000000000..569606d2fdb6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/blackbox/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "1.20170611";
+  pname   = "blackbox";
+  name    = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "stackexchange";
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "1jnzhlj54c0szw9l9wib07i2375pbm402bx9wagspcmwc0qw43p6";
+  };
+
+  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/nixpkgs/pkgs/applications/version-management/bugseverywhere/default.nix b/nixpkgs/pkgs/applications/version-management/bugseverywhere/default.nix
new file mode 100644
index 000000000000..7c41a60a7253
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/bugseverywhere/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, pythonPackages, fetchurl }:
+
+#
+# Upstream stopped development of this package. If this package does not build
+# anymore, feel free to remove it by reverting the appropriate patch
+# (git log --grep bugseverywhere)
+#
+pythonPackages.buildPythonApplication rec {
+    version = "1.1.1";
+    name = "bugseverywhere-${version}";
+
+    src = fetchurl {
+      url =
+      "mirror://pypi/b/bugs-everywhere/bugs-everywhere-${version}.tar.gz";
+      sha256 = "1ikm3ckwpimwcvx32vy7gh5gbp7q750j3327m17nvrj99g3daz2d";
+    };
+
+    # There are no tests in the repository.
+    doCheck = false;
+
+    buildInputs = with pythonPackages; [
+        jinja2
+        cherrypy
+    ];
+
+    meta = with stdenv.lib; {
+        description = "Bugtracker supporting distributed revision control";
+        homepage = http://www.bugseverywhere.org/;
+        license = licenses.gpl2Plus;
+        platforms = platforms.all;
+        maintainers = [ ];
+    };
+}
+
diff --git a/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/cvs-fast-export/default.nix
new file mode 100644
index 000000000000..1a5ce6e369ef
--- /dev/null
+++ b/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,
+ python27, rcs, cvs, git,
+ coreutils, rsync}:
+with stdenv; with lib;
+mkDerivation rec {
+  name = "cvs-fast-export-${meta.version}";
+  meta = {
+    version = "1.32";
+    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.32.tar.gz";
+    sha256 = "5bfb9a5650517d337a96a598795b50bc40ce12172854a6581267e7be3dbcfb97";
+  };
+
+  buildInputs = [
+    flex bison asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt
+    python27 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/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2012-0804.patch
new file mode 100644
index 000000000000..cd2b324729fb
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch b/nixpkgs/pkgs/applications/version-management/cvs/CVE-2017-12836.patch
new file mode 100644
index 000000000000..950079423685
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/cvs/default.nix b/nixpkgs/pkgs/applications/version-management/cvs/default.nix
new file mode 100644
index 000000000000..2063149dd784
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch b/nixpkgs/pkgs/applications/version-management/cvs/getcwd-chroot.patch
new file mode 100644
index 000000000000..3f827a1e6981
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix b/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix
new file mode 100644
index 000000000000..a2ebb8195db4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/cvs2svn/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchurl, makeWrapper
+, python2Packages
+, cvs, subversion, git, bazaar
+}:
+
+python2Packages.buildPythonApplication  rec {
+  name = "cvs2svn-${version}";
+  version = "2.5.0";
+
+  src = fetchurl {
+    url = "http://cvs2svn.tigris.org/files/documents/1462/49543/${name}.tar.gz";
+    sha256 = "1ska0z15sjhyfi860rjazz9ya1gxbf5c0h8dfqwz88h7fccd22b4";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  checkInputs = [ subversion git bazaar ];
+
+  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/nixpkgs/pkgs/applications/version-management/cvsps/default.nix b/nixpkgs/pkgs/applications/version-management/cvsps/default.nix
new file mode 100644
index 000000000000..aa3bcb273949
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/cvsps/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, fetchpatch, cvs, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "cvsps-${version}";
+  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/nixpkgs/pkgs/applications/version-management/diffuse/default.nix b/nixpkgs/pkgs/applications/version-management/diffuse/default.nix
new file mode 100644
index 000000000000..fa6d4fe1890d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/diffuse/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, python27Packages, makeWrapper }:
+
+let
+  inherit (python27Packages) pygtk python;
+in stdenv.mkDerivation rec {
+  version = "0.4.8";
+  name = "diffuse-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/diffuse/diffuse/${version}/${name}.tar.bz2";
+    sha256 = "0ayz8bywmk1z3zicb0a7hbxliqpc7xym60s0mawzqllkpadvgly1";
+  };
+
+  buildInputs = [ python pygtk makeWrapper ];
+
+  buildPhase = ''
+    python ./install.py --prefix="$out" --sysconfdir="$out/etc" --pythonbin="${python}/bin/python"
+    wrapProgram "$out/bin/diffuse" --prefix PYTHONPATH : $PYTHONPATH:${pygtk}/lib/${python.libPrefix}/site-packages/gtk-2.0
+  '';
+
+  # no-op, everything is done in buildPhase
+  installPhase = "true";
+
+  # NOTE: diffuse installs a .desktop file itself
+
+  meta = with stdenv.lib; {
+    description = "Graphical diff and merge tool";
+    homepage = http://diffuse.sourceforge.net/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/fossil/default.nix b/nixpkgs/pkgs/applications/version-management/fossil/default.nix
new file mode 100644
index 000000000000..cf58731b46c2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/fossil/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, libiconv, fetchurl, zlib, openssl, tcl, readline, sqlite, ed, which
+, tcllib, withJson ? true
+}:
+
+stdenv.mkDerivation rec {
+  name = "fossil-${version}";
+  version = "2.7";
+
+  src = fetchurl {
+    urls =
+      [
+        "https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
+      ];
+    name = "${name}.tar.gz";
+    sha256 = "0g032502lx4l1lvkczh8v7g0i90vbyriw0lmvi3mwjfp668ka91c";
+  };
+
+  buildInputs = [ zlib openssl readline sqlite which ed ]
+             ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+  nativeBuildInputs = [ tcl ];
+
+  doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+  preCheck = ''
+    export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}"
+  '';
+  configureFlags = stdenv.lib.optional withJson "--json";
+
+  preBuild=''
+    export USER=nonexistent-but-specified-user
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    INSTALLDIR=$out/bin make install
+  '';
+
+  meta = {
+    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 = stdenv.lib.licenses.bsd2;
+    platforms = with stdenv.lib.platforms; all;
+    maintainers = [ #Add your name here!
+      stdenv.lib.maintainers.z77z
+      stdenv.lib.maintainers.viric
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gerrit/default.nix b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
new file mode 100644
index 000000000000..0475a8ae76ca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "gerrit-${version}";
+  version = "2.14.6";
+
+  src = fetchurl {
+    url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
+    sha256 = "0fsqwfsnyb4nbxgb1i1mp0vshl0mk8bwqlddzqr9x2v99mbca28q";
+  };
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "1qrmvqqnlbabqz4yx06vi030ci12v0063iq2palxmbj3whrzv9la";
+
+  buildCommand = ''
+    mkdir -p "$out"/webapps/
+    ln -s ${src} "$out"/webapps/gerrit-${version}.war
+  '';
+
+  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; [ jammerful ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
new file mode 100644
index 000000000000..0d7729684163
--- /dev/null
+++ b/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 = "http://central.maven.org/maven2/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/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile
new file mode 100644
index 000000000000..8ed325154711
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/Gemfile.lock
new file mode 100644
index 000000000000..61159eb3ee9e
--- /dev/null
+++ b/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
+   1.13.6
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
new file mode 100644
index 000000000000..341b50f0ef22
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
@@ -0,0 +1,19 @@
+{ lib, bundlerEnv, ruby }:
+
+bundlerEnv rec {
+  name = "bitbucket-server-cli-${version}";
+
+  version = (import ./gemset.nix).atlassian-stash.version;
+  inherit ruby;
+  gemdir = ./.;
+
+  pname = "atlassian-stash";
+
+  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 ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/gemset.nix
new file mode 100644
index 000000000000..a7c1406665e7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix
new file mode 100644
index 000000000000..5bfd74344e8c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/cgit/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, fetchurl, openssl, zlib, asciidoc, libxml2, libxslt
+, docbook_xsl, pkgconfig, luajit
+, groff, gzip, bzip2, xz
+, python, wrapPython, pygments, markdown
+}:
+
+stdenv.mkDerivation rec {
+  name = "cgit-${version}";
+  version = "1.2.1";
+
+  src = fetchurl {
+    url = "https://git.zx2c4.com/cgit/snapshot/${name}.tar.xz";
+    sha256 = "1gw2j5xc5qdx2hwiwkr8h6kgya7v9d9ff9j32ga1dys0cca7qm1w";
+  };
+
+  # 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.18.0.tar.xz";
+    sha256 = "14hfwfkrci829a9316hnvkglnqqw1p03cw9k56p4fcb078wbwh4b";
+  };
+
+  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|"xz"|"${xz.bin}/bin/xz"|' \
+        -i ui-snapshot.c
+
+    substituteInPlace filters/html-converters/man2html \
+      --replace 'groff' '${groff}/bin/groff'
+  '';
+
+  # 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"
+  '';
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix
new file mode 100644
index 000000000000..1af1870928ba
--- /dev/null
+++ b/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 rec {
+  name = "darcs-to-git-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix
new file mode 100644
index 000000000000..9ee5df118308
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix
@@ -0,0 +1,156 @@
+/* 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 { };
+
+  darcsToGit = callPackage ./darcs-to-git { };
+
+  diff-so-fancy = callPackage ./diff-so-fancy { };
+
+  ghq = callPackage ./ghq { };
+
+  git = appendToName "minimal" gitBase;
+
+  git-absorb = callPackage ./git-absorb {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  git-appraise = callPackage ./git-appraise {};
+
+  git-fame = callPackage ./git-fame {};
+
+  # The full-featured Git.
+  gitFull = gitBase.override {
+    svnSupport = true;
+    guiSupport = true;
+    sendEmailSupport = !stdenv.isDarwin;
+    withLibsecret = !stdenv.isDarwin;
+  };
+
+  # Git with SVN support, but without GUI.
+  gitSVN = lowPrio (appendToName "with-svn" (gitBase.override {
+    svnSupport = true;
+  }));
+
+  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-rclone = callPackage ./git-annex-remote-rclone { };
+
+  git-bug = callPackage ./git-bug { };
+
+  # support for bugzilla
+  git-bz = callPackage ./git-bz { };
+
+  git-codeowners = callPackage ./git-codeowners { };
+
+  git-cola = callPackage ./git-cola { };
+
+  git-crypt = callPackage ./git-crypt { };
+
+  git-dit = callPackage ./git-dit {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
+  git-extras = callPackage ./git-extras { };
+
+  git-hub = callPackage ./git-hub { };
+
+  git-imerge = callPackage ./git-imerge { };
+
+  git-octopus = callPackage ./git-octopus { };
+
+  git-open = callPackage ./git-open { };
+
+  git-radar = callPackage ./git-radar { };
+
+  git-recent = callPackage ./git-recent {
+    utillinux = if stdenv.isLinux then utillinuxMinimal else utillinux;
+  };
+
+  git-remote-hg = callPackage ./git-remote-hg { };
+
+  git-reparent = callPackage ./git-reparent { };
+
+  git-secret = callPackage ./git-secret { };
+
+  git-secrets = callPackage ./git-secrets { };
+
+  git-stree = callPackage ./git-stree { };
+
+  git-sync = callPackage ./git-sync { };
+
+  git-test = callPackage ./git-test { };
+
+  git2cl = callPackage ./git2cl { };
+
+  gitFastExport = callPackage ./fast-export { };
+
+  gitRemoteGcrypt = callPackage ./git-remote-gcrypt { };
+
+  gitflow = callPackage ./gitflow { };
+
+  grv = callPackage ./grv { };
+
+  hub = callPackage ./hub {
+    inherit (darwin) Security;
+  };
+
+  hubUnstable = throw "use gitAndTools.hub instead";
+
+  lab = callPackage ./lab { };
+
+  pre-commit = callPackage ./pre-commit { };
+
+  pass-git-helper = python3Packages.callPackage ./pass-git-helper { };
+
+  qgit = qt5.callPackage ./qgit { };
+
+  stgit = callPackage ./stgit {
+  };
+
+  subgit = callPackage ./subgit { };
+
+  svn2git = callPackage ./svn2git {
+    git = gitSVN;
+  };
+
+  svn-all-fast-export = libsForQt5.callPackage ./svn-all-fast-export { };
+
+  tig = callPackage ./tig { };
+
+  topGit = callPackage ./topgit { };
+
+  transcrypt = callPackage ./transcrypt { };
+
+} // lib.optionalAttrs (config.allowAliases or true) (with self; {
+  # aliases
+  gitAnnex = git-annex;
+  svn_all_fast_export = svn-all-fast-export;
+});
+in
+  self
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
new file mode 100644
index 000000000000..988911d2eb7b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
@@ -0,0 +1,48 @@
+{stdenv, git, perl, ncurses, coreutils, fetchFromGitHub, makeWrapper, ...}:
+
+stdenv.mkDerivation rec {
+  name = "diff-so-fancy-${version}";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "so-fancy";
+    repo = "diff-so-fancy";
+    rev = "v${version}";
+    sha256 = "0j8dxfl4js7agwdpcvxwigzpp0lik33h7s3vsjg0pd413h2j4mvz";
+  };
+
+  # Perl is needed here for patchShebangs
+  nativeBuildInputs = [ perl makeWrapper ];
+
+  buildPhase = null;
+
+  installPhase = ''
+    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"
+  '';
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
new file mode 100644
index 000000000000..fd50febb4699
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchgit, mercurial, makeWrapper, subversion}:
+
+with stdenv.lib;
+stdenv.mkDerivation {
+  name = "fast-export";
+
+  src = fetchgit {
+    url = git://repo.or.cz/fast-export.git;
+    rev = "d202200fd9daa75cdb37d4cf067d4ca00e269535";
+    sha256 = "0m4llsg9rx4sza1kf39kxsdvhi6y87a18wm5k19c5r2h3vpylwcc";
+  };
+
+  buildInputs = [mercurial.python mercurial makeWrapper subversion];
+
+  dontBuild = true; # skip svn for now
+
+  # TODO also support svn stuff
+  # moving .py files into lib directory so that you can't pick the wrong file from PATH.
+  # This requires redefining ROOT
+  installPhase = ''
+    sed -i "s@/usr/bin/env.*@$(type -p python)@" *.py
+    l=$out/libexec/git-fast-export
+    mkdir -p $out/{bin,doc/git-fast-export} $l
+    sed -i "s@ROOT=.*@ROOT=$l@" *.sh
+    mv *.sh $out/bin
+    mv *.py $l
+    for p in $out/bin/*.sh; do
+      wrapProgram $p \
+        --prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages or []}" \
+        --prefix PATH : "$(dirname $(type -p python))":$l
+    done
+  '';
+
+  meta = {
+    description = "Import svn, mercurial into git";
+    homepage = https://repo.or.cz/w/fast-export.git;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.koral ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
new file mode 100644
index 000000000000..84a441641dfa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "ghq-${version}";
+  version = "0.8.0";
+
+  goPackagePath = "github.com/motemen/ghq";
+
+  src = fetchFromGitHub {
+    owner = "motemen";
+    repo = "ghq";
+    rev = "v${version}";
+    sha256 = "1gdi0sbmq9kfi8hzd0dpgmhbmcf8q93jy3x08dd8smayrhbbwmld";
+  };
+
+  goDeps = ./deps.nix;
+
+  buildFlagsArray = ''
+    -ldflags=
+      -X=main.Version=${version}
+  '';
+
+  postInstall = ''
+    install -m 444 -D ${src}/zsh/_ghq $bin/share/zsh/site-functions/_ghq
+  '';
+
+  meta = {
+    description = "Remote repository management made easy";
+    homepage = https://github.com/motemen/ghq;
+    maintainers = with stdenv.lib.maintainers; [ sigma ];
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/deps.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/deps.nix
new file mode 100644
index 000000000000..1df37aa0f21f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/deps.nix
@@ -0,0 +1,38 @@
+[
+  {
+    goPackagePath = "github.com/daviddengcn/go-colortext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/daviddengcn/go-colortext";
+      rev = "805cee6e0d43c72ba1d4e3275965ff41e0da068a";
+      sha256 = "0z0ggqnprqchnd8zyrz99w53kr4sgv372lyx12z5nsh9q342pmyf";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/go-homedir";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-homedir";
+      rev = "b8bc1bf767474819792c23f32d8286a45736f1c6";
+      sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
+    };
+  }
+  {
+    goPackagePath = "github.com/motemen/go-colorine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/motemen/go-colorine";
+      rev = "49ff36b8fa42db28092361cd20dcefd0b03b1472";
+      sha256 = "1rfi5gggf2sxb52whgxfl37p22r2xp27rndixbiicw6swllmml9l";
+    };
+  }
+  {
+    goPackagePath = "github.com/urfave/cli";
+    fetch = {
+      type = "git";
+      url = "https://github.com/urfave/cli";
+      rev = "f017f86fccc5a039a98f23311f34fdf78b014f78";
+      sha256 = "1biq4wl4z8l0ycinb39mfavnk13d0qnqqdplqybl7klxmk67cvhv";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
new file mode 100644
index 000000000000..17e2bfee40b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-absorb/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  name = "git-absorb-${version}";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner  = "tummychow";
+    repo   = "git-absorb";
+    rev    = "refs/tags/${version}";
+    sha256 = "1dm442lyk7f44bshm2ajync5pzdwvdc5xfpw2lkvjzxflmh5572z";
+  };
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+  cargoSha256 = "0fvxs09b9x38vp0psvlvbj09myxrhabp95pp3nz7nxsgr7fxflrr";
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "git commit --fixup, but automatic";
+    license = [ licenses.bsd3 ];
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix
new file mode 100644
index 000000000000..ba64a065d281
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-metadata-gui/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, pyqt5, git-annex-adapter }:
+
+buildPythonApplication rec {
+  name = "git-annex-metadata-gui-${version}";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "alpernebbi";
+    repo = "git-annex-metadata-gui";
+    rev = "v${version}";
+    sha256 = "03kch67k0q9lcs817906g864wwabkn208aiqvbiyqp1qbg99skam";
+  };
+
+  prePatch = ''
+    substituteInPlace setup.py --replace "'PyQt5', " ""
+  '';
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix
new file mode 100644
index 000000000000..4d0f33730e45
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+  name = "git-annex-remote-b2-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-b2/deps.nix
new file mode 100644
index 000000000000..479b3e7d6372
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-annex-remote-rclone/default.nix
new file mode 100644
index 000000000000..c368dcd487e8
--- /dev/null
+++ b/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 {
+  name = "git-annex-remote-rclone-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
new file mode 100644
index 000000000000..185ed38b5db0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "git-appraise-unstable-${version}";
+  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;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.vdemeester ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix
new file mode 100644
index 000000000000..7a47ed9a992d
--- /dev/null
+++ b/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";
+
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "esc";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0b0zdq7d7k7f6p3wwc799347fraphbr20rxd1ysnc4xi1cj4wpmi";
+  };
+
+  buildInputs = [ git graphviz ];
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
new file mode 100644
index 000000000000..eabc9258e29a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "git-bug-${version}";
+  version = "0.4.0";
+  rev = "2ab2412771d58a1b1f3bfeb5a6e9da2e683b0e12";
+  goPackagePath = "github.com/MichaelMure/git-bug";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "MichaelMure";
+    repo = "git-bug";
+    sha256 = "1zyvyg0p5h71wvyxrzkr1bwddxm3x8p44n6wh9ccfdxp8d2k6k25";
+  };
+
+  goDeps = ./deps.nix;
+
+  postInstall = ''
+    cd go/src/${goPackagePath}
+    install -D -m 0644 misc/bash_completion/git-bug "$bin/etc/bash_completion.d/git-bug"
+    install -D -m 0644 misc/zsh_completion/git-bug "$bin/share/zsh/site-functions/git-bug"
+    install -D -m 0644 -t "$bin/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;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ royneary ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/deps.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/deps.nix
new file mode 100644
index 000000000000..77d79602a9c1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/deps.nix
@@ -0,0 +1,417 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/99designs/gqlgen";
+    fetch = {
+      type = "git";
+      url = "https://github.com/99designs/gqlgen";
+      rev =  "636435b68700211441303f1a5ed92f3768ba5774";
+      sha256 = "0d4sr6kpyn3zq3kpvk8lizy7hdpcw3fjmv7fbv2m1k9w8fzjawrz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/agnivade/levenshtein";
+    fetch = {
+      type = "git";
+      url = "https://github.com/agnivade/levenshtein";
+      rev =  "3d21ba515fe27b856f230847e856431ae1724adc";
+      sha256 = "0dym3k3ycsj0zj0p4dhdp7gd2hm7c7pyh2wii1mdbmpdyipy99cd";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cheekybits/genny";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cheekybits/genny";
+      rev =  "9127e812e1e9e501ce899a18121d316ecb52e4ba";
+      sha256 = "1z57ga9c2sjnl5ngqgb1ap0zqv36sk0rarm02bbbkipz4m9yabjg";
+    };
+  }
+  {
+    goPackagePath  = "github.com/corpix/uarand";
+    fetch = {
+      type = "git";
+      url = "https://github.com/corpix/uarand";
+      rev =  "2b8494104d86337cdd41d0a49cbed8e4583c0ab4";
+      sha256 = "06ml5m8l9wbr96gvyg6z1syawn797f8kmq74nhgry3vqpngyb6yn";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cpuguy83/go-md2man";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cpuguy83/go-md2man";
+      rev =  "20f5889cbdc3c73dbd2862796665e7c465ade7d1";
+      sha256 = "1w22dfdamsq63b5rvalh9k2y7rbwfkkjs7vm9vd4a13h2ql70lg2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "8991bc29aa16c548c550c7ff78260e27b9ab7c73";
+      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+    };
+  }
+  {
+    goPackagePath  = "github.com/dustin/go-humanize";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dustin/go-humanize";
+      rev =  "9f541cc9db5d55bce703bd99987c9d5cb8eea45e";
+      sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev =  "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4";
+      sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-test/deep";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-test/deep";
+      rev =  "6592d9cc0a499ad2d5f574fde80a2b5c5cc3b4f5";
+      sha256 = "0f4rbdl6qmlq4bzh0443i634bm675bbrkyzwp8wkc1yhdl9qsij7";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "aa810b61a9c79d51363740d207bb46cf8e620ed5";
+      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/go-cmp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-cmp";
+      rev =  "3af367b6b30c263d47e8895973edcca9a49cf029";
+      sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/context";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/context";
+      rev =  "08b5f424b9271eedf6f9f0ce86cb9396ed337a42";
+      sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/mux";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/mux";
+      rev =  "e3702bed27f0d39777b0b37b664b6280e8ef8fbf";
+      sha256 = "0pvzm23hklxysspnz52mih6h1q74vfrdhjfm1l3sa9r8hhqmmld2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/websocket";
+      rev =  "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
+      sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/hashicorp/golang-lru";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/golang-lru";
+      rev =  "20f1fb78b0740ba8c3cb143a61e86ba5c8669768";
+      sha256 = "12k2cp2k615fjvfa5hyb9k2alian77wivds8s65diwshwv41939f";
+    };
+  }
+  {
+    goPackagePath  = "github.com/icrowley/fake";
+    fetch = {
+      type = "git";
+      url = "https://github.com/icrowley/fake";
+      rev =  "4178557ae428460c3780a381c824a1f3aceb6325";
+      sha256 = "1mv4bxfphaqbvacy49v4lf4gf2nmadzpmjq0jbdx93wi5bnkc977";
+    };
+  }
+  {
+    goPackagePath  = "github.com/inconshreveable/mousetrap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/inconshreveable/mousetrap";
+      rev =  "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
+      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jroimartin/gocui";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jroimartin/gocui";
+      rev =  "c055c87ae801372cd74a0839b972db4f7697ae5f";
+      sha256 = "1b1cbjg925l1c5v3ls8amni9716190yzf847cqs9wjnj82z8qa47";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-colorable";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-colorable";
+      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
+      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev =  "0360b2af4f38e8d38c7fce2a9f4e702702d73a39";
+      sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev =  "9e777a8366cce605130a531d2cd6363d07ad7317";
+      sha256 = "0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/mapstructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/mapstructure";
+      rev =  "fa473d140ef3c6adf42d6b391fe76707f1f243c8";
+      sha256 = "0f06q4fpzg0c370cvmpsl0iq2apl5nkbz5cd3nba5x5ysmshv1lm";
+    };
+  }
+  {
+    goPackagePath  = "github.com/nsf/termbox-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nsf/termbox-go";
+      rev =  "5c94acc5e6eb520f1bcd183974e01171cc4c23b3";
+      sha256 = "1fi8imdgwvlsgifw2qfl3ww0lsrgkfsimkzz7bnrq41nar78s0fw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/phayes/freeport";
+    fetch = {
+      type = "git";
+      url = "https://github.com/phayes/freeport";
+      rev =  "b8543db493a5ed890c5499e935e2cad7504f3a04";
+      sha256 = "1gwaan8fwmc5lfx4dzymq0jd6z2l1frg83jkmjpm4kw8ay4vr11q";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/russross/blackfriday";
+    fetch = {
+      type = "git";
+      url = "https://github.com/russross/blackfriday";
+      rev =  "55d61fa8aa702f59229e6cff85793c22e580eaf5";
+      sha256 = "0qmavm5d14kj6im6sqzpqnlhpy524428vkn4hnfwknndr9rycmn0";
+    };
+  }
+  {
+    goPackagePath  = "github.com/shurcooL/githubv4";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/githubv4";
+      rev =  "b5f70540eee0ebfb6a27b52fc5b131be76415539";
+      sha256 = "0hrjk16l8jwkhrbzcasp4dflv6hl24hcc4q2md5rn6i8f73dl18h";
+    };
+  }
+  {
+    goPackagePath  = "github.com/shurcooL/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/go";
+      rev =  "9e1955d9fb6e1ee2345ba1f5e71669263e719e27";
+      sha256 = "1lad9bvs75jsn61cfza19739c2c057k0bqxg2b4xz3z3l4w1mkqj";
+    };
+  }
+  {
+    goPackagePath  = "github.com/shurcooL/graphql";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/graphql";
+      rev =  "365899397c9ad12805631fe4c9b2a64be9d74818";
+      sha256 = "10n4id76zpj5g4hr1ry8d9v5cvm039rygrpgdk4ygk198vhr0gwm";
+    };
+  }
+  {
+    goPackagePath  = "github.com/shurcooL/httpfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/httpfs";
+      rev =  "809beceb23714880abc4a382a00c05f89d13b1cc";
+      sha256 = "1hvj5q5kjw83z7f77y03fqfg7fps7pqj2cj2c38x752m0pq4j2w3";
+    };
+  }
+  {
+    goPackagePath  = "github.com/shurcooL/vfsgen";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/vfsgen";
+      rev =  "62bca832be04bd2bcaabd3b68a6b19a7ec044411";
+      sha256 = "1lh8sw7qxs43jj8k9pfn91kfy2033p3il9bcb63whz8zhqw2a16y";
+    };
+  }
+  {
+    goPackagePath  = "github.com/skratchdot/open-golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/skratchdot/open-golang";
+      rev =  "75fb7ed4208cf72d323d7d02fd1a5964a7a9073c";
+      sha256 = "1b67imqbsdvg19vif1q1dfmapxy3v2anagacbql95fwnnw0v8jga";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/cobra";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cobra";
+      rev =  "ef82de70bb3f60c65fb8eebacbb2d122ef517385";
+      sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/pflag";
+      rev =  "583c0c0531f06d5278b7d917446061adc344b5cd";
+      sha256 = "0nr4mdpfhhk94hq4ymn5b2sxc47b29p1akxd8b0hx4dvdybmipb5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev =  "f35b8ab0b5a2cef36673838d662e249dd9c94686";
+      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+    };
+  }
+  {
+    goPackagePath  = "github.com/vektah/gqlgen";
+    fetch = {
+      type = "git";
+      url = "https://github.com/vektah/gqlgen";
+      rev =  "636435b68700211441303f1a5ed92f3768ba5774";
+      sha256 = "0d4sr6kpyn3zq3kpvk8lizy7hdpcw3fjmv7fbv2m1k9w8fzjawrz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/vektah/gqlparser";
+    fetch = {
+      type = "git";
+      url = "https://github.com/vektah/gqlparser";
+      rev =  "14e83ae06ec152e6d0afb9766a00e0c0918aa8fc";
+      sha256 = "162j259402pa2wb4645z6gplx5g1a2sfk393k2svwgws3bg2bws2";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "0e37d006457bf46f9e6692014ba72ef82c33022c";
+      sha256 = "1fj8rvrhgv5j8pmckzphvm3sqkzhcqp3idkxvgv13qrjdfycsa5r";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "2f5d2388922f370f4355f327fcf4cfe9f5583908";
+      sha256 = "03s92ygxfrd2c1m4697sd6iksgbar6c007w1yf3h6wmd79vr5dxs";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/oauth2";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/oauth2";
+      rev =  "d2e6202438beef2727060aa7cabdd924d92ebfd9";
+      sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "ac767d655b305d4e9612f5f6e33120b9176c4ad4";
+      sha256 = "1ds29n5lh4j21hmzxz7vk7hv1k6sixc7f0zsdc9xqdg0j7d212zm";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev =  "a434f64ace81347eff0fb4a32bc80a235e0ad762";
+      sha256 = "0zngnxrxjync4caz6ikmv5v0cn895iqhqmzqg9qddfm5bvl2a2my";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/appengine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/appengine";
+      rev =  "ae0ab99deb4dc413a2b4bd6c8bdd0eb67f1e4d06";
+      sha256 = "1iabxnqgxvvn1239i6fvfl375vlbvhfrc03m1x2rvalmx4d6w9c7";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+  {
+    goPackagePath  = "gotest.tools";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gotestyourself/gotest.tools";
+      rev =  "b6e20af1ed078cd01a6413b734051a292450b4cb";
+      sha256 = "11k6hmfhaf0qxpddp3i5kfpacdx51q6pv4n1kn3jnf1hjs0yny2k";
+    };
+  }
+]
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bz/default.nix
new file mode 100644
index 000000000000..c14a027b4abe
--- /dev/null
+++ b/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 rec {
+  name = "git-bz-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix
new file mode 100644
index 000000000000..206a4af91212
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-codeowners/default.nix
@@ -0,0 +1,21 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+rustPlatform.buildRustPackage rec {
+  name = "git-codeowners-${version}";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "softprops";
+    repo = "git-codeowners";
+    rev = "v${version}";
+    sha256 = "0bzq4ridzb4l1zqrj1r0vlzkjpgfaqwky5jf49cwjhz4ybwrfpkq";
+  };
+
+  cargoSha256 = "0rdmv9s86xba1zkl2j5rgix6k7pkkxqmpar03sak2fjrd7mh8iz0";
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
new file mode 100644
index 000000000000..4b15d03d2007
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pythonPackages, gettext, git }:
+
+let
+  inherit (pythonPackages) buildPythonApplication pyqt5 sip pyinotify;
+in buildPythonApplication rec {
+  name = "git-cola-${version}";
+  version = "3.2";
+
+  src = fetchFromGitHub {
+    owner = "git-cola";
+    repo = "git-cola";
+    rev = "v${version}";
+    sha256 = "1ivaqhvdbmlp0lmrwb2pv3kjqlcpqbxbinbvjjn3g81r4avjs7yy";
+  };
+
+  buildInputs = [ git gettext ];
+  propagatedBuildInputs = [ pyqt5 sip pyinotify ];
+
+  doCheck = false;
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
new file mode 100644
index 000000000000..2163855d00e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-crypt/default.nix
@@ -0,0 +1,47 @@
+{ fetchFromGitHub, git, gnupg1compat, makeWrapper, openssl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "git-crypt-${version}";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "AGWA";
+    repo = "git-crypt";
+    rev = "${version}";
+    sha256 = "13m9y0m6gc3mlw3pqv9x4i0him2ycbysizigdvdanhh514kga602";
+    inherit name;
+  };
+
+  buildInputs = [ openssl makeWrapper ];
+
+  patchPhase = ''
+    substituteInPlace commands.cpp \
+      --replace '(escape_shell_arg(our_exe_path()))' '= "git-crypt"'
+  '';
+
+  installPhase = ''
+    make install PREFIX=$out
+    wrapProgram $out/bin/* --prefix PATH : $out/bin:${git}/bin:${gnupg1compat}/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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix
new file mode 100644
index 000000000000..9c362276383c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-dit/default.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, fetchFromGitHub
+, openssl
+, zlib
+, libssh
+, cmake
+, perl
+, pkgconfig
+, rustPlatform
+, curl
+, libiconv
+, CoreFoundation
+, Security
+}:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "git-dit-${version}";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "neithernut";
+    repo = "git-dit";
+    rev = "v${version}";
+    sha256 = "1sx6sc2dj3l61gbiqz8vfyhw5w4xjdyfzn1ixz0y8ipm579yc7a2";
+  };
+
+  cargoSha256 = "08zbvjwjdpv2sbj6mh73py82inhs18jvmh8m9k4l94fcz6ykgqwr";
+
+  nativeBuildInputs = [
+    cmake
+    pkgconfig
+    perl
+  ];
+
+  buildInputs = [
+    openssl
+    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";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
new file mode 100644
index 000000000000..7b6dd8aacb44
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "git-extras-${version}";
+  version = "4.6.0";
+
+  src = fetchurl {
+    url = "https://github.com/tj/git-extras/archive/${version}.tar.gz";
+    sha256 = "1jp5wi2h4jqbrjv0iqa45s0f9h3n5k1dxs89jkhg5n5k9jjs7fp3";
+  };
+
+  dontBuild = true;
+
+  installFlags = [ "DESTDIR=$(out) PREFIX=" ];
+
+  postInstall = ''
+    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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile
new file mode 100644
index 000000000000..17373f02b44d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/Gemfile.lock
new file mode 100644
index 000000000000..0ac7907fe55d
--- /dev/null
+++ b/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
+   1.14.6
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix
new file mode 100644
index 000000000000..9ca7a67a53e7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, bundlerEnv, ruby }:
+
+bundlerEnv rec {
+  inherit ruby;
+
+  pname = "git_fame";
+
+  gemdir = ./.;
+
+  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 ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-fame/gemset.nix
new file mode 100644
index 000000000000..49b4af4ef6d3
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix
new file mode 100644
index 000000000000..ba126bb476c1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-hub/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, gitMinimal, python2Packages }:
+
+stdenv.mkDerivation rec {
+  name = "git-hub-${version}";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    sha256 = "1lizjyi8vac1p1anbnh6qrr176rwxp5yjc1787asw437sackkwza";
+    rev = "v${version}";
+    repo = "git-hub";
+    owner = "sociomantic-tsunami";
+  };
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix
new file mode 100644
index 000000000000..10e786222710
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+stdenv.mkDerivation rec {
+  name = "git-imerge-${version}";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "mhagger";
+    repo = "git-imerge";
+    rev = "v${version}";
+    sha256 = "0vi1w3f0yk4gqhxj2hzqafqq28rihyhyfnp8x7xzib96j2si14a4";
+  };
+
+  buildInputs = [ pythonPackages.python pythonPackages.wrapPython ];
+
+  makeFlags = "PREFIX= DESTDIR=$(out)" ; 
+ 
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mhagger/git-imerge;
+    description = "Perform a merge between two branches incrementally";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.spwhitt ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-octopus/default.nix
new file mode 100644
index 000000000000..f8d871bdcf30
--- /dev/null
+++ b/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 {
+  name = "git-octopus-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-open/default.nix
new file mode 100644
index 000000000000..dc3fbbed1995
--- /dev/null
+++ b/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 {
+  name = "git-open-${version}";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "paulirish";
+    repo = "git-open";
+    rev = "v${version}";
+    sha256 = "0lprzrjsqrg83gixfaiw26achgd8l7s56jknsjss4p7y0w1fxm05";
+  };
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix
new file mode 100644
index 000000000000..d72df8028759
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-radar/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchFromGitHub}:
+
+stdenv.mkDerivation rec {
+  name = "git-radar-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
new file mode 100644
index 000000000000..c52a78ff0076
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-recent/default.nix
@@ -0,0 +1,35 @@
+{stdenv, git, less, fetchFromGitHub, makeWrapper
+# utillinuxMinimal is included because we need the column command
+, utillinux
+}:
+
+stdenv.mkDerivation rec {
+  name = "git-recent-${version}";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "paulirish";
+    repo = "git-recent";
+    rev = "v${version}";
+    sha256 = "06r1jzmzdv3d4vxdh5qyf5g5rgavxfmh2rpbs7a7byg3k7d77hpn";
+  };
+
+  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 utillinux ]}"
+  '';
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix
new file mode 100644
index 000000000000..adfdb9a541c1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, docutils, makeWrapper, gnupg1compat, curl, rsync }:
+
+stdenv.mkDerivation rec {
+  name = "git-remote-gcrypt-${version}";
+  version = "1.1";
+  rev = version;
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "spwhitton";
+    repo = "git-remote-gcrypt";
+    sha256 = "0mhz5mqnr35rk7j4wyhp7hzmqgv8r554n9qlm4iw565bz7acvq24";
+  };
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [ docutils makeWrapper ];
+
+  installPhase = ''
+    prefix="$out" ./install.sh
+    wrapProgram "$out/bin/git-remote-gcrypt" \
+      --prefix PATH ":" "${stdenv.lib.makeBinPath [ gnupg1compat curl rsync ]}"
+  '';
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
new file mode 100644
index 000000000000..f30813cf1201
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, mercurial, makeWrapper,
+  asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
+}:
+
+stdenv.mkDerivation rec {
+  rev = "e716a9e1a9e460a45663694ba4e9e8894a8452b2";
+  version = "0.2-${rev}";
+  name = "git-remote-hg-${version}";
+
+  src = fetchgit {
+    inherit rev;
+    url = "git://github.com/fingolfin/git-remote-hg.git";
+    sha256 = "0cmlfdxfabrs3x10mfjfap8wz67s8xk2pjn2wlcj9k2v84gji60m";
+  };
+
+  buildInputs = [ mercurial.python mercurial makeWrapper
+    asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt libxml2
+  ];
+
+  doCheck = false;
+
+  installFlags = "HOME=\${out} install-doc";
+
+  postInstall = ''
+    wrapProgram $out/bin/git-remote-hg \
+      --prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages or []}"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/felipec/git-remote-hg;
+    description = "Semi-official Mercurial bridge from Git project, once installed, it allows you to clone, fetch and push to and from Mercurial repositories as if they were Git ones";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.garbas ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
new file mode 100644
index 000000000000..03435ec834ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, makeWrapper, git, gnused }:
+
+stdenv.mkDerivation rec {
+  name = "git-reparent-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
new file mode 100644
index 000000000000..5c6c22ac9ccd
--- /dev/null
+++ b/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.2.4";
+  repo = "git-secret";
+
+in stdenv.mkDerivation {
+  name = "${repo}-${version}";
+
+  src = fetchFromGitHub {
+    inherit repo;
+    owner = "sobolevn";
+    rev = "v${version}";
+    sha256 = "0lx2rjyhy3xh6ik755lbbl40v7a7ayyqk68jj8mnv42f2vhd66xl";
+  };
+
+  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 = http://git-secret.io;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.lo1tuma ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix
new file mode 100644
index 000000000000..fb85bb7da463
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-secrets/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, makeWrapper, git, coreutils }:
+
+stdenv.mkDerivation rec {
+  name = "git-secrets-${version}";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "awslabs";
+    repo = "git-secrets";
+    rev = "${version}";
+    sha256 = "14jsm4ks3k5d9iq3jr23829izw040pqpmv7dz8fhmvx6qz8fybzg";
+  };
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix
new file mode 100644
index 000000000000..6a52983e83ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-stree/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchFromGitHub, ... }:
+
+stdenv.mkDerivation rec {
+  name = "git-stree-${version}";
+  version = "0.4.5";
+
+  src = fetchFromGitHub {
+    owner = "tdd";
+    repo = "git-stree";
+    rev = "0.4.5";
+    sha256 = "0y5h44n38w6rhy9m591dvibxpfggj3q950ll7y4h49bhpks4m0l9";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin $out/etc/bash_completion.d
+    install -m 0755 git-stree $out/bin/
+    install -m 0644 git-stree-completion.bash $out/etc/bash_completion.d/
+  '';
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
new file mode 100644
index 000000000000..7ba7d8ec2434
--- /dev/null
+++ b/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 {
+  name = "git-sync-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix
new file mode 100644
index 000000000000..1150f008299c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-test/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, makeWrapper, git }:
+
+stdenv.mkDerivation rec {
+  name = "git-test-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
new file mode 100644
index 000000000000..88704ef281eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -0,0 +1,322 @@
+{ fetchurl, stdenv, buildPackages
+, curl, openssl, zlib, expat, perl, python, gettext, cpio
+, gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
+, openssh, pcre2
+, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
+, libxslt, tcl, tk, makeWrapper, libiconv
+, svnSupport, subversionClient, perlLibs, smtpPerlLibs
+, perlSupport ? true
+, guiSupport
+, withManual ? true
+, pythonSupport ? true
+, withpcre2 ? true
+, sendEmailSupport
+, darwin
+, withLibsecret ? false
+, pkgconfig, glib, libsecret
+}:
+
+assert sendEmailSupport -> perlSupport;
+assert svnSupport -> perlSupport;
+
+let
+  version = "2.19.2";
+  svn = subversionClient.override { perlBindings = perlSupport; };
+in
+
+stdenv.mkDerivation {
+  name = "git-${version}";
+
+  src = fetchurl {
+    url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
+    sha256 = "1scbggzghkzzfqg4ky3qh7h9w87c3zya4ls5disz7dbx56is7sgw";
+  };
+
+  outputs = [ "out" ] ++ stdenv.lib.optional perlSupport "gitweb";
+
+  hardeningDisable = [ "format" ];
+
+  enableParallelBuilding = true;
+
+  ## Patch
+
+  patches = [
+    ./docbook2texi.patch
+    ./git-sh-i18n.patch
+    ./ssh-path.patch
+    ./git-send-email-honor-PATH.patch
+    ./installCheck-path.patch
+  ];
+
+  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 perl ]
+    ++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
+         docbook_xsl docbook_xml_dtd_45 libxslt ];
+  buildInputs = [curl openssl zlib expat cpio makeWrapper libiconv]
+    ++ stdenv.lib.optionals perlSupport [ 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"
+  ];
+
+  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=${perl}/bin/perl"] else ["NO_PERL=1"])
+  ++ (if pythonSupport then ["PYTHON_PATH=${python}/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";
+
+
+  postBuild = ''
+    make -C contrib/subtree
+  '' + (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 "install-doc"}
+      rm -rf contrib/subtree
+
+      # Install contrib stuff.
+      mkdir -p $out/share/git
+      cp -a contrib $out/share/git/
+      ln -s "$out/share/git/contrib/credential/netrc/git-credential-netrc" $out/bin/
+      mkdir -p $out/share/emacs/site-lisp
+      ln -s "$out/share/git/contrib/emacs/"*.el $out/share/emacs/site-lisp/
+      mkdir -p $out/etc/bash_completion.d
+      ln -s $out/share/git/contrib/completion/git-completion.bash $out/etc/bash_completion.d/
+      ln -s $out/share/git/contrib/completion/git-prompt.sh $out/etc/bash_completion.d/
+
+      # 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 ", '${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,stash,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 ''
+      # put in separate package for simpler maintenance
+      mv $out/share/gitweb $gitweb/
+
+      # wrap perl commands
+      gitperllib=$out/lib/perl5/site_perl
+      for i in ${builtins.toString perlLibs}; do
+        gitperllib=$gitperllib:$i/lib/perl5/site_perl
+      done
+      wrapProgram $out/libexec/git-core/git-cvsimport \
+                  --set GITPERLLIB "$gitperllib"
+      wrapProgram $out/libexec/git-core/git-add--interactive \
+                  --set GITPERLLIB "$gitperllib"
+      wrapProgram $out/libexec/git-core/git-archimport \
+                  --set GITPERLLIB "$gitperllib"
+      wrapProgram $out/libexec/git-core/git-instaweb \
+                  --set GITPERLLIB "$gitperllib"
+      wrapProgram $out/libexec/git-core/git-cvsexportcommit \
+                  --set GITPERLLIB "$gitperllib"
+    ''
+
+   + (if svnSupport then
+
+      ''# wrap git-svn
+        gitperllib=$out/lib/perl5/site_perl
+        for i in ${builtins.toString perlLibs} ${svn.out}; do
+          gitperllib=$gitperllib:$i/lib/perl5/site_perl
+        done
+        wrapProgram $out/libexec/git-core/git-svn     \
+                     --set GITPERLLIB "$gitperllib"   \
+                     --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
+        gitperllib=$out/lib/perl5/site_perl
+        for i in ${builtins.toString smtpPerlLibs}; do
+          gitperllib=$gitperllib:$i/lib/perl5/site_perl
+        done
+        wrapProgram $out/libexec/git-core/git-send-email \
+                     --set GITPERLLIB "$gitperllib" ''
+       else '' # replace git-send-email by notification script
+        notSupported $out/libexec/git-core/git-send-email
+       '')
+
+   + stdenv.lib.optionalString withManual ''# Install man pages and Info manual
+       make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-info \
+         -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
+     '' 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
+    cat > $out/etc/gitconfig << EOF
+[credential]
+	helper = osxkeychain
+EOF
+  '';
+
+
+  ## InstallCheck
+
+  doCheck = false;
+  doInstallCheck = true;
+
+  installCheckTarget = "test";
+
+  # see also installCheckFlagsArray
+  installCheckFlags = "DEFAULT_TEST_TARGET=prove";
+
+  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 "/^ *test_expect_.*$pattern/,/^ *' *\$/{s/^/#/}"
+      fi
+    }
+
+    # Shared permissions are forbidden in sandbox builds.
+    disable_test t0001-init shared
+    disable_test t1301-shared-repo
+
+    # 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 t7005-editor "editor with a space"
+    disable_test t7005-editor "core.editor with a space"
+
+    # Tested to fail: 2.18.0
+    disable_test t9902-completion "sourcing the completion script clears cached --options"
+
+    # As of 2.19.0, t5562 refers to #!/usr/bin/perl
+    patchShebangs t/t5562/invoke-with-content-length.pl
+  '' + 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;
+
+    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; [ peti the-kenny wmertens ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch
new file mode 100644
index 000000000000..ab5bb3c3a6c7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/docbook2texi.patch
@@ -0,0 +1,37 @@
+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
+--- a/Documentation/Makefile
++++ b/Documentation/Makefile
+@@ -122,7 +122,7 @@
+ 
+ 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
+@@ -240,7 +240,7 @@
+ man5: $(DOC_MAN5)
+ man7: $(DOC_MAN7)
+ 
+-info: git.info gitman.info
++info: git.info
+ 
+ pdf: user-manual.pdf
+ 
+@@ -256,10 +256,9 @@
+ 
+ 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/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch
new file mode 100644
index 000000000000..6b93d061a3be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-send-email-honor-PATH.patch
@@ -0,0 +1,26 @@
+diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
+--- a/Documentation/git-send-email.txt
++++ b/Documentation/git-send-email.txt
+@@ -208,8 +208,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
+--- a/git-send-email.perl
++++ b/git-send-email.perl
+@@ -944,8 +944,7 @@ if (defined $reply_to) {
+ }
+
+ 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/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch
new file mode 100644
index 000000000000..216c0e56b44c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/git-sh-i18n.patch
@@ -0,0 +1,94 @@
+--- a/git-sh-i18n.sh
++++ b/git-sh-i18n.sh
+@@ -15,87 +15,11 @@
+ fi
+ export TEXTDOMAINDIR
+
+-# First decide what scheme to use...
+-GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
+-if test -n "$GIT_GETTEXT_POISON"
+-then
+-	GIT_INTERNAL_GETTEXT_SH_SCHEME=poison
+-elif test -n "@@USE_GETTEXT_SCHEME@@"
+-then
+-	GIT_INTERNAL_GETTEXT_SH_SCHEME="@@USE_GETTEXT_SCHEME@@"
+-elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"
+-then
+-	: no probing necessary
+-elif type gettext.sh >/dev/null 2>&1
+-then
+-	# GNU libintl's gettext.sh
+-	GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
+-elif test "$(gettext -h 2>&1)" = "-h"
+-then
+-	# gettext binary exists but no gettext.sh. likely to be a gettext
+-	# binary on a Solaris or something that is not GNU libintl and
+-	# lack eval_gettext.
+-	GIT_INTERNAL_GETTEXT_SH_SCHEME=gettext_without_eval_gettext
+-fi
+-export GIT_INTERNAL_GETTEXT_SH_SCHEME
+-
+-# ... and then follow that decision.
+-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_without_eval_gettext)
+-	# Solaris has a gettext(1) but no eval_gettext(1)
+-	eval_gettext () {
+-		gettext "$1" | (
+-			export PATH $(git sh-i18n--envsubst --variables "$1");
+-			git sh-i18n--envsubst "$1"
+-		)
+-	}
+-
+-	eval_ngettext () {
+-		ngettext "$1" "$2" "$3" | (
+-			export PATH $(git sh-i18n--envsubst --variables "$2");
+-			git sh-i18n--envsubst "$2"
+-		)
+-	}
+-	;;
+-poison)
+-	# Emit garbage so that tests that incorrectly rely on translatable
+-	# strings will fail.
+-	gettext () {
+-		printf "%s" "# GETTEXT POISON #"
+-	}
+-
+-	eval_gettext () {
+-		printf "%s" "# GETTEXT POISON #"
+-	}
+-
+-	eval_ngettext () {
+-		printf "%s" "# GETTEXT POISON #"
+-	}
+-	;;
+-*)
+-	gettext () {
+-		printf "%s" "$1"
+-	}
+-
+-	eval_gettext () {
+-		printf "%s" "$1" | (
+-			export PATH $(git sh-i18n--envsubst --variables "$1");
+-			git sh-i18n--envsubst "$1"
+-		)
+-	}
++# GNU gettext
++export GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
++export PATH=@gettext@/bin:$PATH
+
+-	eval_ngettext () {
+-		(test "$3" = 1 && printf "%s" "$1" || printf "%s" "$2") | (
+-			export PATH $(git sh-i18n--envsubst --variables "$2");
+-			git sh-i18n--envsubst "$2"
+-		)
+-	}
+-	;;
+-esac
++. @gettext@/bin/gettext.sh
+
+ # Git-specific wrapper functions
+ gettextln () {
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch
new file mode 100644
index 000000000000..8c68fb9f186b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/installCheck-path.patch
@@ -0,0 +1,12 @@
+diff --git a/t/test-lib.sh b/t/test-lib.sh
+--- a/t/test-lib.sh
++++ b/t/test-lib.sh
+@@ -923,7 +923,7 @@
+ 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:$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:
+ 	git_bin_dir="$GIT_BUILD_DIR/bin-wrappers"
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/ssh-path.patch
new file mode 100644
index 000000000000..addb1dbc5e06
--- /dev/null
+++ b/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 c3a014c5b..fbca3262b 100644
+--- a/connect.c
++++ b/connect.c
+@@ -1010,7 +1010,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 480a6b30d..781720424 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/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git2cl/default.nix
new file mode 100644
index 000000000000..044800fe73a6
--- /dev/null
+++ b/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 = http://josefsson.org/git2cl/;
+    description = "Convert git logs to GNU style ChangeLog files";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
new file mode 100644
index 000000000000..698de486b5be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
@@ -0,0 +1,42 @@
+{ pkgs, stdenv, fetchFromGitHub }:
+
+with pkgs.lib;
+
+stdenv.mkDerivation rec {
+  pname = "gitflow";
+  version = "1.11.0";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "petervanderdoes";
+    repo = pname;
+    rev = version;
+    sha256 = "0zk53g0wd5n1zlhkwlfp124i6agx8kl0cwvy0dia3jh1p51vsc1q";
+  };
+
+  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 jgeerds ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
new file mode 100644
index 000000000000..ce251e11d328
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, git, gzip, perlPackages, fetchFromGitHub
+, gitwebTheme ? false }:
+
+let
+  gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
+  gitwebThemeSrc = fetchFromGitHub {
+    owner = "kogakure";
+    repo = "gitweb-theme";
+    rev = "049b88e664a359f8ec25dc6f531b7e2aa60dd1a2";
+    sha256 = "0wksqma41z36dbv6w6iplkjfdm0ha3njp222fakyh4lismajr71p";
+  };
+in stdenv.mkDerivation {
+  name = "gitweb-${stdenv.lib.getVersion git}";
+
+  src = git.gitweb;
+
+  installPhase = ''
+      mkdir $out
+      mv * $out
+
+      # 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/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/lib/perl5/site_perl\";" \
+              "$out/gitweb.cgi"
+      done
+
+      ${stdenv.lib.optionalString gitwebTheme "cp ${gitwebThemeSrc}/* $out/static"}
+  '';
+
+  meta = git.meta // {
+    maintainers = with stdenv.lib.maintainers; [ gnidorah ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix
new file mode 100644
index 000000000000..dd080799557b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/grv/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildGo19Package, fetchFromGitHub, curl, libgit2_0_27, ncurses, pkgconfig, readline }:
+let
+  version = "0.3.0";
+in
+buildGo19Package {
+  name = "grv-${version}";
+
+  buildInputs = [ ncurses readline curl libgit2_0_27 ];
+  nativeBuildInputs = [ pkgconfig ];
+
+  goPackagePath = "github.com/rgburke/grv";
+
+  src = fetchFromGitHub {
+    owner = "rgburke";
+    repo = "grv";
+    rev = "v${version}";
+    sha256 = "00v502mwnpv09l7fsbq3s72i5fz5dxbildwxgw0r8zzf6d54xrgl";
+    fetchSubmodules = true;
+  };
+
+  postPatch = ''
+    rm util/update_latest_release.go
+  '';
+
+  buildFlagsArray = [ "-ldflags=" "-X main.version=${version}" ];
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix
new file mode 100644
index 000000000000..acb82253406b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/hub/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, ronn, ruby, groff, Security, utillinux }:
+
+buildGoPackage rec {
+  name = "hub-${version}";
+  version = "2.6.1";
+
+  goPackagePath = "github.com/github/hub";
+
+  src = fetchFromGitHub {
+    owner = "github";
+    repo = "hub";
+    rev = "v${version}";
+    sha256 = "1gq8nmzdsqicjgam3h48l0dad46dn9mx9blr1413rc2cp9qmg7d4";
+  };
+
+  nativeBuildInputs = [ groff ronn utillinux ];
+  buildInputs = [ ruby ] ++
+    stdenv.lib.optional stdenv.isDarwin Security;
+
+  postPatch = ''
+    mkdir bin
+    ln -s ${ronn}/bin/ronn bin/ronn
+    patchShebangs .
+  '';
+
+  postInstall = ''
+    cd go/src/${goPackagePath}
+    install -D etc/hub.zsh_completion "$bin/share/zsh/site-functions/_hub"
+    install -D etc/hub.bash_completion.sh "$bin/etc/bash_completion.d/hub.bash_completion.sh"
+    install -D etc/hub.fish_completion  "$bin/share/fish/vendor_completions.d/hub.fish"
+
+    make man-pages
+    cp -vr --parents share/man/man[1-9]/*.[1-9] $bin/
+  '';
+
+  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; [ the-kenny ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
new file mode 100644
index 000000000000..f2d1f1d85568
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "lab-${version}";
+  version = "0.14.0";
+
+  goPackagePath = "github.com/zaquestion/lab";
+
+  src = fetchFromGitHub {
+    owner = "zaquestion";
+    repo = "lab";
+    rev = "v${version}";
+    sha256 = "0dqahzm721kpps4i33qgk78y982n8gj5afpk73qyzbraf5y3cw92";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with stdenv.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.unlicense;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/deps.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/deps.nix
new file mode 100644
index 000000000000..03959300b435
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/deps.nix
@@ -0,0 +1,327 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/avast/retry-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/avast/retry-go";
+      rev =  "5469272a8171235352a56af37e5f7facf814423f";
+      sha256 = "0ql8x5c99sh1f4vdd5614zd0bi4z8z19228vm4xkvii11bsj8dx6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cpuguy83/go-md2man";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cpuguy83/go-md2man";
+      rev =  "20f5889cbdc3c73dbd2862796665e7c465ade7d1";
+      sha256 = "1w22dfdamsq63b5rvalh9k2y7rbwfkkjs7vm9vd4a13h2ql70lg2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "346938d642f2ec3594ed81d874461961cd0faa76";
+      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
+    };
+  }
+  {
+    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 =  "b23993cbb6353f0e6aa98d0ee318a34728f628b9";
+      sha256 = "0d7irqpx2fa9vkxgkhf04yiwazsm10fxh0yk86x5crflhph5fv8a";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gdamore/tcell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gdamore/tcell";
+      rev =  "2f258105ca8ce35819115b49f5ac58197241653e";
+      sha256 = "1sji4fjd7i70lc6l19zhz718xld96k0h1sb1as1mmrx0iv858xaz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "b4deda0973fb4c70b50d226b1af49f3da59f5265";
+      sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/go-querystring";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-querystring";
+      rev =  "53e6ce116135b80d037921a7fdd5138cf32d7a8a";
+      sha256 = "0lkbm067nhmxk66pyjx59d77dbjjzwyi43gdvzyx2f8m1942rq7f";
+    };
+  }
+  {
+    goPackagePath  = "github.com/hashicorp/hcl";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/hcl";
+      rev =  "ef8a98b0bbce4a65b5aa4c368430a80ddc533168";
+      sha256 = "1qalfsc31fra7hcw2lc3s20aj7al62fq3j5fn5kga3mg99b82nyr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/inconshreveable/mousetrap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/inconshreveable/mousetrap";
+      rev =  "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
+      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
+    };
+  }
+  {
+    goPackagePath  = "github.com/lucasb-eyer/go-colorful";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lucasb-eyer/go-colorful";
+      rev =  "231272389856c976b7500c4fffcc52ddf06ff4eb";
+      sha256 = "161n224v46mln3swzv0009ffj9fxg2n814l9vqs3zh9dq1dmj0jn";
+    };
+  }
+  {
+    goPackagePath  = "github.com/lunixbochs/vtclean";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lunixbochs/vtclean";
+      rev =  "2d01aacdc34a083dca635ba869909f5fc0cd4f41";
+      sha256 = "1ss88dyx5hr4imvpg5lixvp0cf7c2qm4x9m8mdgshjpm92g5rqmf";
+    };
+  }
+  {
+    goPackagePath  = "github.com/magiconair/properties";
+    fetch = {
+      type = "git";
+      url = "https://github.com/magiconair/properties";
+      rev =  "c3beff4c2358b44d0493c7dda585e7db7ff28ae6";
+      sha256 = "04ccjc9nd1wffvw24ixyfw3v5g48zq7pbq1wz1zg9cyqyxy14qgr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev =  "9e777a8366cce605130a531d2cd6363d07ad7317";
+      sha256 = "0vkrfrz3fzn5n6ix4k8s0cg0b448459sldq8bp4riavsxm932jzb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mitchellh/mapstructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/mapstructure";
+      rev =  "00c29f56e2386353d58c599509e8dc3801b0d716";
+      sha256 = "1vw8fvhax0d567amgvxr7glcl12lvzg2sbzs007q5k5bbwn1szyb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pelletier/go-toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pelletier/go-toml";
+      rev =  "acdc4509485b587f5e675510c4f2c63e90ff68a8";
+      sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/rivo/tview";
+    fetch = {
+      type = "git";
+      url = "https://github.com/rivo/tview";
+      rev =  "f855bee0205c35e6a055b86cc341effea0f446ce";
+      sha256 = "0jn9r3gzvm3gr72rb7zz2g8794nnl56l8flqfav00pfk0qiqp8xw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/russross/blackfriday";
+    fetch = {
+      type = "git";
+      url = "https://github.com/russross/blackfriday";
+      rev =  "55d61fa8aa702f59229e6cff85793c22e580eaf5";
+      sha256 = "0qmavm5d14kj6im6sqzpqnlhpy524428vkn4hnfwknndr9rycmn0";
+    };
+  }
+  {
+    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/cobra";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cobra";
+      rev =  "615425954c3b0d9485a7027d4d451fdcdfdee84e";
+      sha256 = "01zsislgc72j86a1zq7xs7xj3lvxjjviz4lgn4144jzgppwanpk6";
+    };
+  }
+  {
+    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  = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev =  "12b6f73e6084dad08a7c6e575284b177ecafbc71";
+      sha256 = "01f80s0q64pw5drfgqwwk1wfwwkvd2lhbs56lhhkff4ni83k73fd";
+    };
+  }
+  {
+    goPackagePath  = "github.com/tcnksm/go-gitconfig";
+    fetch = {
+      type = "git";
+      url = "https://github.com/tcnksm/go-gitconfig";
+      rev =  "d154598bacbf4501c095a309753c5d4af66caa81";
+      sha256 = "0sz7h383h7ngrqkk35ic37kfvhlk07g4kanps8bnapwczrcm2am9";
+    };
+  }
+  {
+    goPackagePath  = "github.com/xanzy/go-gitlab";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xanzy/go-gitlab";
+      rev =  "8d21e61ce4a9b9c7fe645e48672872e9fdb71138";
+      sha256 = "1lac57ard1vrd16ri8gfyd0ck8d7xg7zbcjlz90223jp0vc3l8nv";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "e73bf333ef8920dbb52ad18d4bd38ad9d9bc76d7";
+      sha256 = "1amcpva20vff8v0lww655icaaf7388ns8xhm859whn4w4v0vanyg";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "f4c29de78a2a91c00474a2e689954305c350adf9";
+      sha256 = "02nibjrr1il8sxnr0w1s5fj7gz6ayhg3hsywf948qhc68n5adv8x";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/oauth2";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/oauth2";
+      rev =  "3d292e4d0cdc3a0113e6d207bb137145ef1de42f";
+      sha256 = "0jvivlvx7snacd6abd1prqxa7h1z6b7s6mqahn8lpqlag3asryrl";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "79b0c6888797020a994db17c8510466c72fe75d9";
+      sha256 = "0aydjw886c4dwcjg7ssb7xp39ag1529nh3ly1la71rqjr94cjnag";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev =  "f21a4dfb5e38f5895301dc265a8def02365cc3d0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/appengine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/appengine";
+      rev =  "b1f26356af11148e710935ed1ac8a7f5702c7612";
+      sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+    };
+  }
+]
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix
new file mode 100644
index 000000000000..d0d60b193437
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/pass-git-helper/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, pyxdg }:
+
+buildPythonApplication rec {
+  pname   = "pass-git-helper";
+  version = "0.4";
+
+  src = fetchFromGitHub {
+    owner  = "languitar";
+    repo   = "pass-git-helper";
+    rev    = "${version}";
+    sha256 = "1zccbmq5l6asl9qm1f90vg9467y3spmv3ayrw07qizrj43yfd9ap";
+  };
+
+  propagatedBuildInputs = [ pyxdg ];
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix
new file mode 100644
index 000000000000..331b020d8ca7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, python3Packages }:
+with python3Packages; buildPythonApplication rec {
+  pname = "pre_commit";
+  version = "1.11.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kjrq8z78b6aqhyyw07dlwf6cqls88kik6f5l07hs71fj5ddvs9w";
+  };
+
+  propagatedBuildInputs = [
+    aspy-yaml
+    cached-property
+    cfgv
+    identify
+    nodeenv
+    six
+    toml
+    virtualenv
+  ];
+
+  # Tests fail due to a missing windll dependency
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A framework for managing and maintaining multi-language pre-commit hooks";
+    homepage = https://pre-commit.com/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ borisbabic ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix
new file mode 100644
index 000000000000..0a88fbd09291
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/qgit/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, qtbase }:
+
+stdenv.mkDerivation rec {
+  name = "qgit-2.8";
+
+  src = fetchFromGitHub {
+    owner = "tibirna";
+    repo = "qgit";
+    rev = name;
+    sha256 = "01l6mz2f333x3zbfr68mizwpsh6sdsnadcavpasidiych1m5ry8f";
+  };
+
+  buildInputs = [ qtbase ];
+
+  nativeBuildInputs = [ cmake ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    license = licenses.gpl2;
+    homepage = http://libre.tibirna.org/projects/qgit/wiki/QGit;
+    description = "Graphical front-end to Git";
+    maintainers = with maintainers; [ peterhoeg ];
+    inherit (qtbase.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
new file mode 100644
index 000000000000..4f9a1c4e5442
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, python2, git }:
+
+let
+  name = "stgit-${version}";
+  version = "0.19";
+in
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchFromGitHub {
+    owner = "ctmarinas";
+    repo = "stgit";
+    rev = "v${version}";
+    sha256 = "1dzl6cnyzwbzysp82x7w1yc03g25kwan3h0zpnzhhfhg6c904sis";
+  };
+
+  buildInputs = [ python2 git ];
+
+  makeFlags = "prefix=$$out";
+
+  postInstall = ''
+    mkdir -p "$out/etc/bash_completion.d/"
+    ln -s ../../share/stgit/completion/stgit-completion.bash "$out/etc/bash_completion.d/"
+  '';
+
+  doCheck = false;
+  checkTarget = "test";
+
+  meta = with stdenv.lib; {
+    description = "A patch manager implemented on top of Git";
+    homepage = http://procode.org/stgit/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ the-kenny ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
new file mode 100644
index 000000000000..7b36a142d15d
--- /dev/null
+++ b/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.2.4";
+
+  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 = "http://subgit.com/download/${name}.zip";
+    sha256 = "13r6hi2zk46bs3j17anfc85kszlwliv2yc16qx834b3v4w68hajw";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
new file mode 100644
index 000000000000..35c6d33d74da
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn-all-fast-export/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, qmake, qtbase, qttools, subversion, apr }:
+
+let
+  version = "1.0.13";
+in
+stdenv.mkDerivation {
+  name = "svn-all-fast-export-${version}";
+
+  src = fetchFromGitHub {
+    owner = "svn-all-fast-export";
+    repo = "svn2git";
+    rev = version;
+    sha256 = "0f1qj0c4cdq46mz54wcy17g7rq1fy2q0bq3sswhr7r5a2s433x4f";
+  };
+
+  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"
+  ];
+
+  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/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
new file mode 100644
index 000000000000..d00fdd0c29e0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, ruby, makeWrapper, git }:
+
+let
+  version = "2.4.0";
+in
+stdenv.mkDerivation {
+  name = "svn2git-${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;
+
+    maintainers = [ stdenv.lib.maintainers.the-kenny ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
new file mode 100644
index 000000000000..a407f6e7ab12
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -0,0 +1,53 @@
+{ 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.4.1";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "jonas";
+    repo = pname;
+    rev = name;
+    sha256 = "0i26yfn2vjgsg1kdvhhv55jwzds7ih7cnad1xqvilqm83zh47ksd";
+  };
+
+  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
+
+    substituteInPlace contrib/tig-completion.zsh \
+      --replace 'e=$(dirname ''${funcsourcetrace[1]%:*})/tig-completion.bash' "e=$out/etc/bash_completion.d/tig-completion.bash"
+
+    install -D contrib/tig-completion.bash $out/etc/bash_completion.d/tig-completion.bash
+    install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig
+    cp contrib/vim.tigrc $out/etc/
+
+    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; [ garbas bjornfor domenkozar qknight ];
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix
new file mode 100644
index 000000000000..c183bbde7e6b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/topgit/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "topgit-0.9";
+
+  src = fetchurl {
+    url = "https://github.com/greenrd/topgit/archive/${name}.tar.gz";
+    sha256 = "1z9x42a0cmn8n2n961qcfl522nd6j9a3dpx1jbqfp24ddrk5zd94";
+  };
+
+  configurePhase = "makeFlags=prefix=$out";
+
+  postInstall = ''
+    mkdir -p "$out/share/doc/${name}" "$out/etc/bash_completion.d/"
+    mv README "$out/share/doc/${name}/"
+    mv contrib/tg-completion.bash "$out/etc/bash_completion.d/"
+  '';
+
+  meta = {
+    homepage = https://github.com/greenrd/topgit;
+    description = "TopGit manages large amount of interdependent topic branches";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ marcweber ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
new file mode 100644
index 000000000000..35e9c17438f7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, git, makeWrapper, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "transcrypt-${version}";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "elasticdog";
+    repo = "transcrypt";
+    rev = "v${version}";
+    sha256 = "1dkr69plk16wllk5bzlkchrzw63pk239dgbjhrb3mb61i065jdam";
+  };
+
+  buildInputs = [ git makeWrapper openssl ];
+
+  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 ]}"
+  '';
+
+  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/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix b/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix
new file mode 100644
index 000000000000..fd999dc17d4d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-crecord/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+  name = "git-crecord-${version}";
+  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/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix
new file mode 100644
index 000000000000..3cde046a2adf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-lfs/1.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "git-lfs-${version}";
+  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";
+  };
+
+  # Tests fail with 'lfstest-gitserver.go:46: main redeclared in this block'
+  excludedPackages = [ "test" ];
+
+  preBuild = ''
+    pushd go/src/github.com/git-lfs/git-lfs
+      go generate ./commands
+    popd
+  '';
+
+  postInstall = ''
+    rm -v $bin/bin/{man,script}
+  '';
+  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/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
new file mode 100644
index 000000000000..67c07072d41f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "git-lfs-${version}";
+  version = "2.5.2";
+
+  goPackagePath = "github.com/git-lfs/git-lfs";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "git-lfs";
+    repo = "git-lfs";
+    sha256 = "1y9l35j59d422v9hsbi117anm5d0177nspiy9r2zbjz3ygd9a4ck";
+  };
+
+  preBuild = ''
+    pushd go/src/github.com/git-lfs/git-lfs
+    go generate ./commands
+    popd
+  '';
+
+  postInstall = ''
+    rm -v $bin/bin/{man,script,cmd}
+  '';
+
+  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/nixpkgs/pkgs/applications/version-management/git-repo/default.nix b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
new file mode 100644
index 000000000000..8df7c3700a2b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, makeWrapper
+, python, git, gnupg, less, cacert
+}:
+
+stdenv.mkDerivation rec {
+  name = "git-repo-${version}";
+  version = "1.13.1";
+
+  src = fetchFromGitHub {
+    owner = "android";
+    repo = "tools_repo";
+    rev = "v${version}";
+    sha256 = "09p0xv8x7mkmibri7rcl1k4dwh2gj3c7dipkrwrsir6hrwsispd1";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ python ];
+
+  # TODO: Cleanup
+  patchPhase = ''
+    CA_PATH="$(echo '${cacert}/etc/ssl/certs/ca-bundle.crt' | sed 's/\//\\\//g')" # / -> \/
+    sed -i -E 's/urlopen\(url\)/urlopen(url, cafile="'$CA_PATH'")/' repo
+  '';
+
+  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/nixpkgs/pkgs/applications/version-management/git-review/default.nix b/nixpkgs/pkgs/applications/version-management/git-review/default.nix
new file mode 100644
index 000000000000..101770da8885
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-review/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pythonPackages} :
+
+pythonPackages.buildPythonApplication rec {
+  name = "git-review-${version}";
+  version = "1.27.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}";
+
+  postPatch = ''
+    sed -i -e '/argparse/d' requirements.txt
+  '';
+
+  src = fetchurl rec {
+    url = "https://github.com/openstack-infra/git-review/archive/${version}.tar.gz";
+    sha256 = "0smdkps9avnj58izyfc5m0amq8nafgs9iqlyaf7ncrlvypia1f3q";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [ pbr requests setuptools ];
+
+  # Don't do tests because they require gerrit which is not packaged
+  doCheck = false;
+
+  meta = {
+    homepage = https://github.com/openstack-infra/git-review;
+    description = "Tool to submit code to Gerrit";
+    license = stdenv.lib.licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix b/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix
new file mode 100644
index 000000000000..9c5ab20d364f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "git-sizer";
+  name = "${pname}-${version}";
+  version = "1.0.0";
+
+  goPackagePath = "github.com/github/git-sizer";
+
+  src = fetchFromGitHub {
+    owner = "github";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11rvqpsyl41ph0fgm62k5q2p33zgnwj1jd91rd4lkaarpcd1sg5h";
+  };
+
+  meta = with lib; {
+    description = "Compute various size metrics for a Git repository";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewbauer ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-up/default.nix b/nixpkgs/pkgs/applications/version-management/git-up/default.nix
new file mode 100644
index 000000000000..45c97868c4bf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-up/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, python2Packages, git }:
+
+python2Packages.buildPythonApplication rec {
+  version = "1.4.2";
+  name = "git-up-${version}";
+
+  src = fetchurl {
+    url = "mirror://pypi/g/git-up/${name}.zip";
+    sha256 = "121ia5gyjy7js6fbsx9z98j2qpq7rzwpsj8gnfvsbz2d69g0vl7q";
+  };
+
+  buildInputs = [ git ] ++ (with python2Packages; [ nose ]);
+  propagatedBuildInputs = with python2Packages; [ click colorama docopt GitPython six termcolor ];
+
+  # 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/${python2Packages.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;
+    broken = true; # Incompatible with Git 2.15 object store.
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
new file mode 100644
index 000000000000..eca07b81bacc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper
+, git, bash, gzip, openssh
+, sqliteSupport ? true
+}:
+
+with stdenv.lib;
+
+buildGoPackage rec {
+  name = "gitea-${version}";
+  version = "1.6.2";
+
+  src = fetchFromGitHub {
+    owner = "go-gitea";
+    repo = "gitea";
+    rev = "v${version}";
+    sha256 = "1ijxpihdg8k6gs1xpim0iviqakvjadjzp0a5ki2czykilnyg8y85";
+    # Required to generate the same checksum on MacOS due to unicode encoding differences
+    # More information: https://github.com/NixOS/nixpkgs/pull/48128
+    extraPostFetch = ''
+      rm -rf $out/integrations
+      rm -rf $out/vendor/github.com/Unknown/cae/tz/testdata
+      rm -rf $out/vendor/github.com/Unknown/cae/zip/testdata
+      rm -rf $out/vendor/gopkg.in/macaron.v1/fixtures
+    '';
+  };
+
+  patches = [ ./static-root-path.patch ];
+
+  postPatch = ''
+    patchShebangs .
+    substituteInPlace modules/setting/setting.go --subst-var data
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildFlags = optional sqliteSupport "-tags sqlite";
+  buildFlagsArray = ''
+    -ldflags=
+      -X=main.Version=${version}
+      ${optionalString sqliteSupport "-X=main.Tags=sqlite"}
+  '';
+
+  outputs = [ "bin" "out" "data" ];
+
+  postInstall = ''
+    mkdir $data
+    cp -R $src/{public,templates,options} $data
+    mkdir -p $out
+    cp -R $src/options/locale $out/locale
+
+    wrapProgram $bin/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 = [ maintainers.disassembler ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch b/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch
new file mode 100644
index 000000000000..7c36afdff84c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch
@@ -0,0 +1,13 @@
+diff --git i/modules/setting/setting.go w/modules/setting/setting.go
+index aafe2d1b..1e4a8064 100644
+--- i/modules/setting/setting.go
++++ w/modules/setting/setting.go
+@@ -730,7 +730,7 @@ func NewContext() {
+ 	LocalURL = sec.Key("LOCAL_ROOT_URL").MustString(defaultLocalURL)
+ 	OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
+ 	DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
+-	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(AppWorkPath)
++	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString("@data@")
+	AppDataPath = sec.Key("APP_DATA_PATH").MustString(path.Join(AppWorkPath, "data"))
+ 	EnableGzip = sec.Key("ENABLE_GZIP").MustBool()
+ 	EnablePprof = sec.Key("ENABLE_PPROF").MustBool(false)
diff --git a/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix b/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix
new file mode 100644
index 000000000000..2428c6cebddd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitinspector/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchzip, python2Packages}:
+
+python2Packages.buildPythonApplication rec {
+  name = "gitinspector-${version}";
+  version = "0.4.4";
+  namePrefix = "";
+
+  src = fetchzip {
+    url = "https://github.com/ejwa/gitinspector/archive/v${version}.tar.gz";
+    sha256 = "1pfsw6xldm6jigs3nhysvqaxk8a0zf8zczgfkrp920as9sya3c7m";
+    name = name + "-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/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
new file mode 100644
index 000000000000..0fcbe54be175
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
@@ -0,0 +1,107 @@
+{ stdenv, libXcomposite, libgnome-keyring, makeWrapper, udev, curl, alsaLib
+, libXfixes, atk, gtk2, libXrender, pango, gnome2, cairo, freetype, fontconfig
+, libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
+, nss, nspr, cups, fetchurl, expat, gdk_pixbuf, libXdamage, libXrandr, dbus
+, dpkg, makeDesktopItem
+}:
+
+with stdenv.lib;
+
+let
+  curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; };
+in
+stdenv.mkDerivation rec {
+  name = "gitkraken-${version}";
+  version = "4.0.5";
+
+  src = fetchurl {
+    url = "https://release.axocdn.com/linux/GitKraken-v${version}.deb";
+    sha256 = "15wxcahlnz2k3331wqv30d5gq38fqh178hv87xky9b9vyh8qpcvz";
+  };
+
+  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
+    gtk2
+    gnome2.GConf
+    libgnome-keyring
+  ];
+
+  desktopItem = makeDesktopItem {
+    name = "gitkraken";
+    exec = "gitkraken";
+    icon = "gitkraken";
+    desktopName = "GitKraken";
+    genericName = "Git Client";
+    categories = "Application;Development;";
+    comment = "Graphical Git client from Axosoft";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ dpkg ];
+
+  unpackCmd = ''
+    mkdir out
+    dpkg -x $curSrc out
+  '';
+
+  installPhase = ''
+    mkdir $out
+    pushd usr
+    pushd share
+    substituteInPlace applications/gitkraken.desktop \
+      --replace /usr/share/gitkraken $out/bin \
+      --replace Icon=app Icon=gitkraken
+    mv pixmaps/app.png pixmaps/gitkraken.png
+    popd
+    rm -rf bin/gitkraken share/lintian
+    cp -av share bin $out/
+    popd
+    ln -s $out/share/gitkraken/gitkraken $out/bin/gitkraken
+  '';
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
new file mode 100644
index 000000000000..1e0d5de0847e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -0,0 +1,32 @@
+{
+  "ce": {
+    "version": "11.5.5",
+    "repo_hash": "1dxky06im18s4kxbb33qwm22pkkhgvyjggx31164iy71zcxxj1jr",
+    "deb_hash": "0wnyfl1bb5wb8kdyarjk9y4ydla84f3alnk3m3zwmdqfg9jsqgb8",
+    "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce_11.5.5-ce.0_amd64.deb/download.deb",
+    "owner": "gitlab-org",
+    "repo": "gitlab-ce",
+    "rev": "v11.5.5",
+    "passthru": {
+      "GITALY_SERVER_VERSION": "0.129.0",
+      "GITLAB_PAGES_VERSION": "1.3.1",
+      "GITLAB_SHELL_VERSION": "8.4.1",
+      "GITLAB_WORKHORSE_VERSION": "7.1.3"
+    }
+  },
+  "ee": {
+    "version": "11.5.5",
+    "repo_hash": "1j5g0x7rxrdb39b12psjirsa3s0lhqgnxh0q3r22cgzgxv0332b8",
+    "deb_hash": "193s1f7w9lcamqnmrc7c3klmybqqra7yr16x6ay0cznwcdgirisp",
+    "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ee/packages/debian/stretch/gitlab-ee_11.5.5-ee.0_amd64.deb/download.deb",
+    "owner": "gitlab-org",
+    "repo": "gitlab-ee",
+    "rev": "v11.5.5-ee",
+    "passthru": {
+      "GITALY_SERVER_VERSION": "0.129.0",
+      "GITLAB_PAGES_VERSION": "1.3.1",
+      "GITLAB_SHELL_VERSION": "8.4.1",
+      "GITLAB_WORKHORSE_VERSION": "7.1.3"
+    }
+  }
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
new file mode 100644
index 000000000000..2ffe1141b5a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
@@ -0,0 +1,115 @@
+{ stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv
+, ruby, tzdata, git, procps, nettools
+, gitlabEnterprise ? false
+}:
+
+let
+  rubyEnv = bundlerEnv {
+    name = "gitlab-env-${version}";
+    inherit ruby;
+    gemdir = ./rubyEnv- + "${if gitlabEnterprise then "ee" else "ce"}";
+    groups = [ "default" "unicorn" "ed25519" "metrics" ];
+  };
+
+  flavour = if gitlabEnterprise then "ee" else "ce";
+  data = (builtins.fromJSON (builtins.readFile ./data.json)).${flavour};
+
+  version = data.version;
+  sources = {
+    gitlab = fetchFromGitLab {
+      owner = data.owner;
+      repo = data.repo;
+      rev = data.rev;
+      sha256 = data.repo_hash;
+    };
+    gitlabDeb = fetchurl {
+      url = data.deb_url;
+      sha256 = data.deb_hash;
+    };
+  };
+in
+
+stdenv.mkDerivation rec {
+  name = "gitlab${if gitlabEnterprise then "-ee" else ""}-${version}";
+
+  src = sources.gitlab;
+
+  buildInputs = [
+    rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler tzdata git procps nettools
+  ];
+
+  patches = [ ./remove-hardcoded-locations.patch ];
+
+  postPatch = ''
+    # 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
+
+    substituteInPlace app/controllers/admin/background_jobs_controller.rb \
+        --replace "ps -U" "${procps}/bin/ps -U"
+
+    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
+  '';
+
+  buildPhase = ''
+    mv config/gitlab.yml.example config/gitlab.yml
+
+    # Building this requires yarn, node &c, so we just get it from the deb
+    ar p ${sources.gitlabDeb} data.tar.gz | gunzip > gitlab-deb-data.tar
+    # Work around unpacking deb containing binary with suid bit
+    tar -f gitlab-deb-data.tar --delete ./opt/gitlab/embedded/bin/ksu
+    tar -xf gitlab-deb-data.tar
+
+    mv -v opt/gitlab/embedded/service/gitlab-rails/public/assets public
+    rm -rf opt # only directory in data.tar.gz
+
+    mv config/gitlab.yml config/gitlab.yml.example
+    rm -f config/secrets.yml
+    mv config config.dist
+  '';
+
+  installPhase = ''
+    rm -r tmp
+    mkdir -p $out/share
+    cp -r . $out/share/gitlab
+    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;
+    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;
+  };
+
+  meta = with lib; {
+    homepage = http://www.gitlab.com/;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ fpletz globin krav ];
+  } // (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/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
new file mode 100644
index 000000000000..016f80284da9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -0,0 +1,30 @@
+source 'https://rubygems.org'
+
+# Require bundler >= 1.16.5 to avoid this bug: https://github.com/bundler/bundler/issues/6537
+gem 'bundler', '>= 1.16.5'
+
+gem 'rugged', '~> 0.27'
+gem 'github-linguist', '~> 6.1', require: 'linguist'
+gem 'gitlab-markup', '~> 1.6.4'
+gem 'gitaly-proto', '~> 0.123.0', require: 'gitaly'
+gem 'activesupport', '~> 5.0.2'
+gem 'rdoc', '~> 4.2'
+gem 'gitlab-gollum-lib', '~> 4.2', require: false
+gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4', require: false
+gem 'grpc', '~> 1.15.0'
+gem 'sentry-raven', '~> 2.7.2', require: false
+gem 'faraday', '~> 0.12'
+
+# 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.6'
+
+group :development, :test do
+  gem 'rubocop', '~> 0.50', require: false
+  gem 'rspec', require: false
+  gem 'rspec-parameterized', require: false
+  gem 'timecop', require: false
+  gem 'factory_bot', require: false
+end
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
new file mode 100644
index 000000000000..0340853524b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -0,0 +1,170 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    abstract_type (0.0.7)
+    activesupport (5.0.6)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (~> 0.7)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+    adamantium (0.2.0)
+      ice_nine (~> 0.11.0)
+      memoizable (~> 0.4.0)
+    ast (2.4.0)
+    binding_of_caller (0.8.0)
+      debug_inspector (>= 0.0.1)
+    charlock_holmes (0.7.6)
+    coderay (1.1.2)
+    concord (0.1.5)
+      adamantium (~> 0.2.0)
+      equalizer (~> 0.0.9)
+    concurrent-ruby (1.0.5)
+    crass (1.0.4)
+    debug_inspector (0.0.3)
+    diff-lcs (1.3)
+    equalizer (0.0.11)
+    escape_utils (1.2.1)
+    factory_bot (4.11.1)
+      activesupport (>= 3.0.0)
+    faraday (0.15.3)
+      multipart-post (>= 1.2, < 3)
+    gemojione (3.3.0)
+      json
+    gitaly-proto (0.123.0)
+      grpc (~> 1.0)
+    github-linguist (6.2.0)
+      charlock_holmes (~> 0.7.6)
+      escape_utils (~> 1.2.0)
+      mime-types (>= 1.19)
+      rugged (>= 0.25.1)
+    github-markup (1.7.0)
+    gitlab-gollum-lib (4.2.7.5)
+      gemojione (~> 3.2)
+      github-markup (~> 1.6)
+      gollum-grit_adapter (~> 1.0)
+      nokogiri (>= 1.6.1, < 2.0)
+      rouge (~> 3.1)
+      sanitize (~> 4.6.4)
+      stringex (~> 2.6)
+    gitlab-gollum-rugged_adapter (0.4.4.1)
+      mime-types (>= 1.15)
+      rugged (~> 0.25)
+    gitlab-grit (2.8.2)
+      charlock_holmes (~> 0.6)
+      diff-lcs (~> 1.1)
+      mime-types (>= 1.16)
+      posix-spawn (~> 0.3)
+    gitlab-markup (1.6.4)
+    gollum-grit_adapter (1.0.1)
+      gitlab-grit (~> 2.7, >= 2.7.1)
+    google-protobuf (3.6.1)
+    googleapis-common-protos-types (1.0.2)
+      google-protobuf (~> 3.0)
+    grpc (1.15.0)
+      google-protobuf (~> 3.1)
+      googleapis-common-protos-types (~> 1.0.0)
+    i18n (0.8.1)
+    ice_nine (0.11.2)
+    json (2.1.0)
+    licensee (8.9.2)
+      rugged (~> 0.24)
+    memoizable (0.4.2)
+      thread_safe (~> 0.3, >= 0.3.1)
+    mime-types (3.2.2)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2018.0812)
+    mini_portile2 (2.3.0)
+    minitest (5.9.1)
+    multipart-post (2.0.0)
+    nokogiri (1.8.4)
+      mini_portile2 (~> 2.3.0)
+    nokogumbo (1.5.0)
+      nokogiri
+    parallel (1.12.1)
+    parser (2.5.1.2)
+      ast (~> 2.4.0)
+    posix-spawn (0.3.13)
+    powerpack (0.1.2)
+    proc_to_ast (0.1.0)
+      coderay
+      parser
+      unparser
+    procto (0.0.3)
+    rainbow (3.0.0)
+    rdoc (4.3.0)
+    rouge (3.3.0)
+    rspec (3.7.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+    rspec-core (3.7.1)
+      rspec-support (~> 3.7.0)
+    rspec-expectations (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-mocks (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-parameterized (0.4.0)
+      binding_of_caller
+      parser
+      proc_to_ast
+      rspec (>= 2.13, < 4)
+      unparser
+    rspec-support (3.7.1)
+    rubocop (0.54.0)
+      parallel (~> 1.10)
+      parser (>= 2.5)
+      powerpack (~> 0.1)
+      rainbow (>= 2.2.2, < 4.0)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (~> 1.0, >= 1.0.1)
+    ruby-progressbar (1.10.0)
+    rugged (0.27.5)
+    sanitize (4.6.6)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.4.4)
+      nokogumbo (~> 1.4)
+    sentry-raven (2.7.2)
+      faraday (>= 0.7.6, < 1.0)
+    stringex (2.8.4)
+    thread_safe (0.3.6)
+    timecop (0.9.1)
+    tzinfo (1.2.2)
+      thread_safe (~> 0.1)
+    unicode-display_width (1.4.0)
+    unparser (0.2.8)
+      abstract_type (~> 0.0.7)
+      adamantium (~> 0.2.0)
+      concord (~> 0.1.5)
+      diff-lcs (~> 1.3)
+      equalizer (~> 0.0.9)
+      parser (>= 2.3.1.2, < 2.6)
+      procto (~> 0.0.2)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  activesupport (~> 5.0.2)
+  bundler (>= 1.16.5)
+  factory_bot
+  faraday (~> 0.12)
+  gitaly-proto (~> 0.123.0)
+  github-linguist (~> 6.1)
+  gitlab-gollum-lib (~> 4.2)
+  gitlab-gollum-rugged_adapter (~> 0.4.4)
+  gitlab-markup (~> 1.6.4)
+  google-protobuf (~> 3.6)
+  grpc (~> 1.15.0)
+  licensee (~> 8.9.0)
+  rdoc (~> 4.2)
+  rspec
+  rspec-parameterized
+  rubocop (~> 0.50)
+  rugged (~> 0.27)
+  sentry-raven (~> 2.7.2)
+  timecop
+
+BUNDLED WITH
+   1.17.1
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
new file mode 100644
index 000000000000..951dbf0bf25a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitLab, buildGoPackage, ruby, bundlerEnv }:
+
+let
+  rubyEnv = bundlerEnv {
+    name = "gitaly-env";
+    inherit ruby;
+    gemdir = ./.;
+  };
+in buildGoPackage rec {
+  version = "0.129.0";
+  name = "gitaly-${version}";
+
+  src = fetchFromGitLab {
+    owner = "gitlab-org";
+    repo = "gitaly";
+    rev = "v${version}";
+    sha256 = "0lidqa0w0vy87p5xfmqrfvbyzvl9wj2p918qs2f5rc7shzm38rn6";
+  };
+
+  goPackagePath = "gitlab.com/gitlab-org/gitaly";
+
+  passthru = {
+    inherit rubyEnv;
+  };
+
+  buildInputs = [ rubyEnv.wrappedRuby ];
+
+  postInstall = ''
+    mkdir -p $ruby
+    cp -rv $src/ruby/{bin,lib} $ruby
+  '';
+
+  outputs = [ "bin" "out" "ruby" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gitlab.com/;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ roblabla ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
new file mode 100644
index 000000000000..9bf5601bf634
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -0,0 +1,562 @@
+{
+  abstract_type = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g85lqq0smj71g8a2dxb54ajjzw59c9snana4p61knryc83q3yg6";
+      type = "gem";
+    };
+    version = "5.0.6";
+  };
+  adamantium = {
+    dependencies = ["ice_nine" "memoizable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  ast = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  binding_of_caller = {
+    dependencies = ["debug_inspector"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  charlock_holmes = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  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 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  crass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  debug_inspector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  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";
+  };
+  escape_utils = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  factory_bot = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13q1b7imb591068plg4ashgsqgzarvfjz6xxn3jk6klzikz5zhg1";
+      type = "gem";
+    };
+    version = "4.11.1";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16hwxc8v0z6gkanckjhx0ffgqmzpc4ywz4dfhxpjlz2mbz8d5m52";
+      type = "gem";
+    };
+    version = "0.15.3";
+  };
+  gemojione = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  gitaly-proto = {
+    dependencies = ["grpc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16b9sdaimhcda401z2s7apf0nz6y0lxs74xhkwlz4jzf6ms44mgg";
+      type = "gem";
+    };
+    version = "0.123.0";
+  };
+  github-linguist = {
+    dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fs0i5xxsl91hnfa17ipk8cwxrg84kjg9mzxvxkd4ykldfdp353y";
+      type = "gem";
+    };
+    version = "6.2.0";
+  };
+  github-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  gitlab-gollum-lib = {
+    dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15h6a7lsfkm967d5dhjlbcm2lnl1l9akzvaq92qlxq40r5apw0kn";
+      type = "gem";
+    };
+    version = "4.2.7.5";
+  };
+  gitlab-gollum-rugged_adapter = {
+    dependencies = ["mime-types" "rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "092i02k3kd4ghk1h1l5yrvi9b180dgfxrvwni26facb2kc9f3wbi";
+      type = "gem";
+    };
+    version = "0.4.4.1";
+  };
+  gitlab-grit = {
+    dependencies = ["charlock_holmes" "diff-lcs" "mime-types" "posix-spawn"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xgs3l81ghlc5nm75n0pz7b2cj3hpscfq5iy27c483nnjn2v5mc4";
+      type = "gem";
+    };
+    version = "2.8.2";
+  };
+  gitlab-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v6w3z7smmkqnhphb4ghgpqg61vimflqzpszybji0li99f2k1jb6";
+      type = "gem";
+    };
+    version = "1.6.4";
+  };
+  gollum-grit_adapter = {
+    dependencies = ["gitlab-grit"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fcibm63v1afc0fj5rki0mm51m7nndil4cjcjjvkh3yigfn4nr4b";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  google-protobuf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf";
+      type = "gem";
+    };
+    version = "3.6.1";
+  };
+  googleapis-common-protos-types = {
+    dependencies = ["google-protobuf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  grpc = {
+    dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  i18n = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s6971zmjxszdrp59vybns9gzxpdxzdklakc5lp8nl4fx5kpxkbp";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  ice_nine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  licensee = {
+    dependencies = ["rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      type = "gem";
+    };
+    version = "8.9.2";
+  };
+  memoizable = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  mime-types-data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+      type = "gem";
+    };
+    version = "3.2018.0812";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0300naf4ilpd9sf0k8si9h9sclkizaschn8bpnri5fqmvm9ybdbq";
+      type = "gem";
+    };
+    version = "5.9.1";
+  };
+  multipart-post = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h9nml9h3m0mpvmh8jfnqvblnz5n5y3mmhgfc38avfmfzdrq9bgc";
+      type = "gem";
+    };
+    version = "1.8.4";
+  };
+  nokogumbo = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  parallel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
+      type = "gem";
+    };
+    version = "1.12.1";
+  };
+  parser = {
+    dependencies = ["ast"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zp89zg7iypncszxsjp8kiccrpbdf728jl449g6cnfkz990fyb5k";
+      type = "gem";
+    };
+    version = "2.5.1.2";
+  };
+  posix-spawn = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw";
+      type = "gem";
+    };
+    version = "0.3.13";
+  };
+  powerpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  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";
+  };
+  rainbow = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  rdoc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13ba2mhqqcsp3k97x3iz9x29xk26rv4561lfzzzibcy41vvj1n4c";
+      type = "gem";
+    };
+    version = "4.3.0";
+  };
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-parameterized = {
+    dependencies = ["binding_of_caller" "parser" "proc_to_ast" "rspec" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0arynbr6cfjhccwc8gy2xf87nybdnncsnmfwknnh8s7d4mj730p0";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  rspec-support = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rubocop = {
+    dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is";
+      type = "gem";
+    };
+    version = "0.54.0";
+  };
+  ruby-progressbar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  rugged = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6";
+      type = "gem";
+    };
+    version = "0.27.5";
+  };
+  sanitize = {
+    dependencies = ["crass" "nokogiri" "nokogumbo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv";
+      type = "gem";
+    };
+    version = "4.6.6";
+  };
+  sentry-raven = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yf2gysjw6sy1xcp2jw35z9cp83pwx33lq0qyvaqbs969j4993r4";
+      type = "gem";
+    };
+    version = "2.7.2";
+  };
+  stringex = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c5dfrjzkskzfsdvwsviq4111rwwpbk9022nxwdidz014mky5vi1";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  timecop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp";
+      type = "gem";
+    };
+    version = "0.9.1";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  unicode-display_width = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0040bsdpcmvp8w31lqi2s9s4p4h031zv52401qidmh25cgyh4a57";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  unparser = {
+    dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rh1649846ac17av30x0b0v9l45v0x1j2y1i8m1a7xdd0v4sld0z";
+      type = "gem";
+    };
+    version = "0.2.8";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
new file mode 100644
index 000000000000..c9f21047e5b6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, ruby, bundler, fetchFromGitLab, go }:
+
+stdenv.mkDerivation rec {
+  version = "8.4.1";
+  name = "gitlab-shell-${version}";
+
+  src = fetchFromGitLab {
+    owner = "gitlab-org";
+    repo = "gitlab-shell";
+    rev = "v${version}";
+    sha256 = "00jzrpdfqgrba2qi5ngc0g07p7gmip7my563hw542gg8l88d27xq";
+  };
+
+  buildInputs = [ ruby bundler go ];
+
+  patches = [ ./remove-hardcoded-locations.patch ];
+
+  installPhase = ''
+    ruby bin/compile
+    mkdir -p $out/
+    cp -R . $out/
+
+    # Nothing to install ATM for non-development but keeping the
+    # install command anyway in case that changes in the future:
+    export HOME=$(pwd)
+    bundle install -j4 --verbose --local --deployment --without development test
+  '';
+
+  # gitlab-shell will try to read its config relative to the source
+  # code by default which doesn't work in nixos because it's a
+  # read-only filesystem
+  postPatch = ''
+    substituteInPlace lib/gitlab_config.rb --replace \
+       "File.join(ROOT_PATH, 'config.yml')" \
+       "'/run/gitlab/shell-config.yml'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "SSH access and repository management app for GitLab";
+    homepage = http://www.gitlab.com/;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ fpletz globin ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
new file mode 100644
index 000000000000..7819c863a359
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
@@ -0,0 +1,58 @@
+diff --git a/go/internal/config/config.go b/go/internal/config/config.go
+index 435cb29..078c1df 100644
+--- a/go/internal/config/config.go
++++ b/go/internal/config/config.go
+@@ -2,7 +2,6 @@ package config
+ 
+ import (
+ 	"io/ioutil"
+-	"os"
+ 	"path"
+ 
+ 	yaml "gopkg.in/yaml.v2"
+@@ -26,16 +25,13 @@ type Config struct {
+ }
+ 
+ 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/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
+index 57c70f5..700569b 100644
+--- a/lib/gitlab_shell.rb
++++ b/lib/gitlab_shell.rb
+@@ -187,7 +187,8 @@ class GitlabShell # rubocop:disable Metrics/ClassLength
+ 
+     args = [executable, gitaly_address, json_args]
+     # We use 'chdir: ROOT_PATH' to let the next executable know where config.yml is.
+-    Kernel.exec(env, *args, unsetenv_others: true, chdir: ROOT_PATH)
++    # Except we don't, because we're already in the right directory on nixos!
++    Kernel.exec(env, *args, unsetenv_others: true)
+   end
+ 
+   def api
+diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb
+index 0600a18..6814f0a 100644
+--- a/lib/gitlab_keys.rb
++++ b/lib/gitlab_keys.rb
+@@ -10,7 +10,7 @@ class GitlabKeys # rubocop:disable Metrics/ClassLength
+   attr_accessor :auth_file, :key
+
+   def self.command(whatever)
+-    "#{ROOT_PATH}/bin/gitlab-shell #{whatever}"
++    "/run/current-system/sw/bin/gitlab-shell #{whatever}"
+   end
+
+   def self.command_key(key_id)
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
new file mode 100644
index 000000000000..b0d282e8799c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitLab, git, go }:
+
+stdenv.mkDerivation rec {
+  name = "gitlab-workhorse-${version}";
+
+  version = "7.1.3";
+
+  src = fetchFromGitLab {
+    owner = "gitlab-org";
+    repo = "gitlab-workhorse";
+    rev = "v${version}";
+    sha256 = "1r75jj0xb4jv5fq2ihxk0vlv43gsk523zx86076mwph1g75gi1nz";
+  };
+
+  buildInputs = [ git go ];
+
+  patches = [ ./remove-hardcoded-paths.patch ];
+
+  makeFlags = [ "PREFIX=$(out)" "VERSION=${version}" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gitlab.com/;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ fpletz globin ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/remove-hardcoded-paths.patch b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/remove-hardcoded-paths.patch
new file mode 100644
index 000000000000..d8313ecb433a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/remove-hardcoded-paths.patch
@@ -0,0 +1,12 @@
+diff --git a/internal/git/command.go b/internal/git/command.go
+index 0e5496c..5778294 100644
+--- a/internal/git/command.go
++++ b/internal/git/command.go
+@@ -19,6 +19,7 @@ func gitCommand(gl_id string, name string, args ...string) *exec.Cmd {
+ 	cmd.Env = []string{
+ 		fmt.Sprintf("HOME=%s", os.Getenv("HOME")),
+ 		fmt.Sprintf("PATH=%s", os.Getenv("PATH")),
++		fmt.Sprintf("GITLAB_SHELL_CONFIG_PATH=%s", os.Getenv("GITLAB_SHELL_CONFIG_PATH")),
+ 		fmt.Sprintf("LD_LIBRARY_PATH=%s", os.Getenv("LD_LIBRARY_PATH")),
+ 		fmt.Sprintf("GL_PROTOCOL=http"),
+ 	}
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
new file mode 100644
index 000000000000..7a2bfea0c109
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch
@@ -0,0 +1,152 @@
+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
+@@ -255,7 +255,7 @@ Settings.gitlab['user']       ||= 'git'
+ 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
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake b/nixpkgs/pkgs/applications/version-management/gitlab/reset_token.rake
new file mode 100644
index 000000000000..705b5830edfc
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile
new file mode 100644
index 000000000000..c7efa790cfd8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile
@@ -0,0 +1,433 @@
+# --- Special code for migrating to Rails 5.0 ---
+def rails5?
+  %w[1 true].include?(ENV["RAILS5"])
+end
+
+gem_versions = {}
+gem_versions['activerecord_sane_schema_dumper'] = rails5? ? '1.0'      : '0.2'
+gem_versions['default_value_for']               = rails5? ? '~> 3.0.5' : '~> 3.0.0'
+gem_versions['rails']                           = rails5? ? '5.0.7'    : '4.2.10'
+gem_versions['rails-i18n']                      = rails5? ? '~> 5.1'   : '~> 4.0.9'
+# --- The end of special code for migrating to Rails 5.0 ---
+
+source 'https://rubygems.org'
+
+gem 'rails', gem_versions['rails']
+gem 'rails-deprecated_sanitizer', '~> 1.0.3'
+
+# Responders respond_to and respond_with
+gem 'responders', '~> 2.0'
+
+gem 'sprockets', '~> 3.7.0'
+
+# Default values for AR models
+gem 'default_value_for', gem_versions['default_value_for']
+
+# Supported DBs
+gem 'mysql2', '~> 0.4.10', group: :mysql
+gem 'pg', '~> 0.18.2', group: :postgres
+
+gem 'rugged', '~> 0.27'
+gem 'grape-path-helpers', '~> 1.0'
+
+gem 'faraday', '~> 0.12'
+
+# Authentication libraries
+gem 'devise', '~> 4.4'
+gem 'doorkeeper', '~> 4.3'
+gem 'doorkeeper-openid_connect', '~> 1.5'
+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.3'
+gem 'omniauth-gitlab', '~> 1.0.2'
+gem 'omniauth-google-oauth2', '~> 0.5.3'
+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.2.0'
+gem 'omniauth-authentiq', '~> 0.3.3'
+gem 'rack-oauth2', '~> 1.2.1'
+gem 'jwt', '~> 1.5.6'
+
+# Spam and anti-bot protection
+gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails'
+gem 'akismet', '~> 2.0'
+
+# Two-factor authentication
+gem 'devise-two-factor', '~> 3.0.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.6'
+
+# Browser detection
+gem 'browser', '~> 2.5'
+
+# GPG
+gem 'gpgme'
+
+# 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.0.4', require: 'omniauth-ldap'
+gem 'net-ldap'
+
+# API
+gem 'grape', '~> 1.1'
+gem 'grape-entity', '~> 0.7.1'
+gem 'rack-cors', '~> 1.0.0', require: 'rack/cors'
+
+# GraphQL API
+gem 'graphql', '~> 1.8.0'
+gem 'graphiql-rails', '~> 1.4.10'
+
+# Disable strong_params so that Mash does not respond to :permitted?
+gem 'hashie-forbidden_attributes'
+
+# Pagination
+gem 'kaminari', '~> 1.0'
+
+# HAML
+gem 'hamlit', '~> 2.8.8'
+
+# Files attachments
+# Locked until https://github.com/carrierwaveuploader/carrierwave/pull/2332/files is merged.
+# config/initializers/carrierwave_patch.rb can be removed once that change is released.
+gem 'carrierwave', '= 1.2.3'
+gem 'mini_magick'
+
+# for backups
+gem 'fog-aws', '~> 2.0.1'
+gem 'fog-core', '~> 1.44'
+gem 'fog-google', '~> 1.7.1'
+gem 'fog-local', '~> 0.3'
+gem 'fog-openstack', '~> 0.1'
+gem 'fog-rackspace', '~> 0.1.1'
+gem 'fog-aliyun', '~> 0.2.0'
+
+# for Google storage
+gem 'google-api-client', '~> 0.23'
+
+# for aws storage
+gem 'unf', '~> 0.1.4'
+
+# Seed data
+gem 'seed-fu', '~> 2.3.7'
+
+# Markdown and HTML processing
+gem 'html-pipeline', '~> 2.8'
+gem 'deckar01-task_list', '2.0.0'
+gem 'gitlab-markup', '~> 1.6.4'
+gem 'github-markup', '~> 1.7.0', require: 'github/markup'
+gem 'redcarpet', '~> 3.4'
+gem 'commonmarker', '~> 0.17'
+gem 'RedCloth', '~> 4.3.2'
+gem 'rdoc', '~> 6.0'
+gem 'org-ruby', '~> 0.9.12'
+gem 'creole', '~> 0.5.0'
+gem 'wikicloth', '0.8.1'
+gem 'asciidoctor', '~> 1.5.6'
+gem 'asciidoctor-plantuml', '0.0.8'
+gem 'rouge', '~> 3.1'
+gem 'truncato', '~> 0.7.9'
+gem 'bootstrap_form', '~> 2.7.0'
+gem 'nokogiri', '~> 1.8.2'
+gem 'escape_utils', '~> 1.1'
+
+# Calendar rendering
+gem 'icalendar'
+
+# Diffs
+gem 'diffy', '~> 3.1.0'
+
+# Application server
+group :unicorn do
+  gem 'unicorn', '~> 5.1.0'
+  gem 'unicorn-worker-killer', '~> 0.4.4'
+end
+
+group :puma do
+  gem 'puma', '~> 3.12', require: false
+  gem 'puma_worker_killer', require: false
+end
+
+# State machine
+gem 'state_machines-activerecord', '~> 0.5.1'
+
+# Issue tags
+gem 'acts-as-taggable-on', '~> 5.0'
+
+# Background jobs
+gem 'sidekiq', '~> 5.2.1'
+gem 'sidekiq-cron', '~> 0.6.0'
+gem 'redis-namespace', '~> 1.6.0'
+
+# Cron Parser
+gem 'rufus-scheduler', '~> 3.4'
+
+# HTTP requests
+gem 'httparty', '~> 0.13.3'
+
+# 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.1.1'
+
+# Misc
+
+gem 'version_sorter', '~> 2.1.0'
+
+# Export Ruby Regex to Javascript
+gem 'js_regex', '~> 2.2.1'
+
+# User agent parsing
+gem 'device_detector'
+
+# Cache
+gem 'redis-rails', '~> 5.0.2'
+
+# Redis
+gem 'redis', '~> 3.2'
+gem 'connection_pool', '~> 2.0'
+
+# HipChat integration
+gem 'hipchat', '~> 1.5.0'
+
+# JIRA integration
+gem 'jira-ruby', '~> 1.4'
+
+# Flowdock integration
+gem 'flowdock', '~> 0.7'
+
+# Slack integration
+gem 'slack-notifier', '~> 1.5.1'
+
+# Hangouts Chat integration
+gem 'hangouts-chat', '~> 0.0.5'
+
+# Asana integration
+gem 'asana', '~> 0.6.0'
+
+# FogBugz integration
+gem 'ruby-fogbugz', '~> 0.2.1'
+
+# Kubernetes integration
+gem 'kubeclient', '~> 3.1.0'
+
+# Sanitize user input
+gem 'sanitize', '~> 4.6'
+gem 'babosa', '~> 1.0.2'
+
+# Sanitizes SVG input
+gem 'loofah', '~> 2.2'
+
+# Working with license
+gem 'licensee', '~> 8.9'
+
+# Protect against bruteforcing
+gem 'rack-attack', '~> 4.4.1'
+
+# Ace editor
+gem 'ace-rails-ap', '~> 4.1.0'
+
+# Detect and convert string character encoding
+gem 'charlock_holmes', '~> 0.7.5'
+
+# Faster blank
+gem 'fast_blank'
+
+# Parse time & duration
+gem 'chronic', '~> 0.10.2'
+gem 'chronic_duration', '~> 0.10.6'
+
+gem 'webpack-rails', '~> 0.9.10'
+gem 'rack-proxy', '~> 0.6.0'
+
+gem 'sass-rails', '~> 5.0.6'
+gem 'uglifier', '~> 2.7.2'
+
+gem 'addressable', '~> 2.5.2'
+gem 'font-awesome-rails', '~> 4.7'
+gem 'gemojione', '~> 3.3'
+gem 'gon', '~> 6.2'
+gem 'jquery-atwho-rails', '~> 1.3.2'
+gem 'request_store', '~> 1.3'
+gem 'select2-rails', '~> 3.5.9'
+gem 'virtus', '~> 1.0.1'
+gem 'base32', '~> 0.3.0'
+
+# Sentry integration
+gem 'sentry-raven', '~> 2.7'
+
+gem 'premailer-rails', '~> 1.9.7'
+
+# I18n
+gem 'ruby_parser', '~> 3.8', require: false
+gem 'rails-i18n', gem_versions['rails-i18n']
+gem 'gettext_i18n_rails', '~> 1.8.0'
+gem 'gettext_i18n_rails_js', '~> 1.3'
+gem 'gettext', '~> 3.2.2', require: false, group: :development
+
+gem 'batch-loader', '~> 1.2.1'
+
+# Perf bar
+gem 'peek', '~> 1.0.1'
+gem 'peek-gc', '~> 0.0.2'
+gem 'peek-mysql2', '~> 1.1.0', group: :mysql
+gem 'peek-pg', '~> 1.3.0', group: :postgres
+gem 'peek-rblineprof', '~> 0.2.0'
+gem 'peek-redis', '~> 1.2.0'
+gem 'gitlab-sidekiq-fetcher', require: 'sidekiq-reliable-fetch'
+
+# Metrics
+group :metrics do
+  gem 'method_source', '~> 0.8', require: false
+  gem 'influxdb', '~> 0.2', require: false
+
+  # Prometheus
+  gem 'prometheus-client-mmap', '~> 0.9.4'
+  gem 'raindrops', '~> 0.18'
+end
+
+group :development do
+  gem 'foreman', '~> 0.84.0'
+  gem 'brakeman', '~> 4.2', require: false
+
+  gem 'letter_opener_web', '~> 1.3.0'
+  gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
+
+  # Better errors handler
+  gem 'better_errors', '~> 2.1.0'
+  gem 'binding_of_caller', '~> 0.7.2'
+
+  # thin instead webrick
+  gem 'thin', '~> 1.7.0'
+end
+
+group :development, :test do
+  gem 'bootsnap', '~> 1.3'
+  gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
+  gem 'pry-byebug', '~> 3.4.1', platform: :mri
+  gem 'pry-rails', '~> 0.3.4'
+
+  gem 'awesome_print', require: false
+  gem 'fuubar', '~> 2.2.0'
+
+  gem 'database_cleaner', '~> 1.5.0'
+  gem 'factory_bot_rails', '~> 4.8.2'
+  gem 'rspec-rails', '~> 3.7.0'
+  gem 'rspec-retry', '~> 0.4.5'
+  gem 'rspec_profiling', '~> 0.0.5'
+  gem 'rspec-set', '~> 0.1.3'
+  gem 'rspec-parameterized', require: false
+
+  # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
+  gem 'minitest', '~> 5.7.0'
+
+  # Generate Fake data
+  gem 'ffaker', '~> 2.4'
+
+  gem 'capybara', '~> 2.15'
+  gem 'capybara-screenshot', '~> 1.0.0'
+  gem 'selenium-webdriver', '~> 3.12'
+
+  gem 'spring', '~> 2.0.0'
+  gem 'spring-commands-rspec', '~> 1.0.4'
+
+  gem 'gitlab-styles', '~> 2.4', require: false
+  # Pin these dependencies, otherwise a new rule could break the CI pipelines
+  gem 'rubocop', '~> 0.54.0'
+  gem 'rubocop-rspec', '~> 1.22.1'
+
+  gem 'scss_lint', '~> 0.56.0', require: false
+  gem 'haml_lint', '~> 0.26.0', require: false
+  gem 'simplecov', '~> 0.14.0', require: false
+  gem 'bundler-audit', '~> 0.5.0', require: false
+
+  gem 'benchmark-ips', '~> 2.3.0', require: false
+
+  gem 'license_finder', '~> 5.4', require: false
+  gem 'knapsack', '~> 1.16'
+
+  gem 'activerecord_sane_schema_dumper', gem_versions['activerecord_sane_schema_dumper']
+
+  gem 'stackprof', '~> 0.2.10', require: false
+
+  gem 'simple_po_parser', '~> 1.1.2', require: false
+
+  gem 'timecop', '~> 0.8.0'
+end
+
+group :test do
+  gem 'shoulda-matchers', '~> 3.1.2', require: false
+  gem 'email_spec', '~> 2.2.0'
+  gem 'json-schema', '~> 2.8.0'
+  gem 'webmock', '~> 2.3.2'
+  gem 'rails-controller-testing' if rails5? # Rails5 only gem.
+  gem 'test_after_commit', '~> 1.1' unless rails5? # Remove this gem when migrated to rails 5.0. It's been integrated to rails 5.0.
+  gem 'sham_rack', '~> 1.3.6'
+  gem 'concurrent-ruby', '~> 1.0.5'
+  gem 'test-prof', '~> 0.2.5'
+  gem 'rspec_junit_formatter'
+end
+
+gem 'octokit', '~> 4.9'
+
+gem 'mail_room', '~> 0.9.1'
+
+gem 'email_reply_trimmer', '~> 0.1'
+gem 'html2text'
+
+gem 'ruby-prof', '~> 0.17.0'
+gem 'rbtrace', '~> 0.4', require: false
+
+# OAuth
+gem 'oauth2', '~> 1.4'
+
+# Health check
+gem 'health_check', '~> 2.6.0'
+
+# System information
+gem 'vmstat', '~> 2.3.0'
+gem 'sys-filesystem', '~> 1.1.6'
+
+# SSH host key support
+gem 'net-ssh', '~> 5.0'
+gem 'sshkey', '~> 1.9.0'
+
+# Required for ED25519 SSH host key support
+group :ed25519 do
+  gem 'ed25519', '~> 1.2'
+  gem 'bcrypt_pbkdf', '~> 1.0'
+end
+
+# Gitaly GRPC client
+gem 'gitaly-proto', '~> 0.123.0', require: 'gitaly'
+gem 'grpc', '~> 1.15.0'
+
+gem 'google-protobuf', '~> 3.6'
+
+gem 'toml-rb', '~> 1.0.0', require: false
+
+# Feature toggles
+gem 'flipper', '~> 0.13.0'
+gem 'flipper-active_record', '~> 0.13.0'
+gem 'flipper-active_support_cache_store', '~> 0.13.0'
+
+# Structured logging
+gem 'lograge', '~> 0.5'
+gem 'grape_logging', '~> 1.7'
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock
new file mode 100644
index 000000000000..50e3ddef1e1d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/Gemfile.lock
@@ -0,0 +1,1154 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    RedCloth (4.3.2)
+    abstract_type (0.0.7)
+    ace-rails-ap (4.1.2)
+    actionmailer (4.2.10)
+      actionpack (= 4.2.10)
+      actionview (= 4.2.10)
+      activejob (= 4.2.10)
+      mail (~> 2.5, >= 2.5.4)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+    actionpack (4.2.10)
+      actionview (= 4.2.10)
+      activesupport (= 4.2.10)
+      rack (~> 1.6)
+      rack-test (~> 0.6.2)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.2)
+    actionview (4.2.10)
+      activesupport (= 4.2.10)
+      builder (~> 3.1)
+      erubis (~> 2.7.0)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.3)
+    activejob (4.2.10)
+      activesupport (= 4.2.10)
+      globalid (>= 0.3.0)
+    activemodel (4.2.10)
+      activesupport (= 4.2.10)
+      builder (~> 3.1)
+    activerecord (4.2.10)
+      activemodel (= 4.2.10)
+      activesupport (= 4.2.10)
+      arel (~> 6.0)
+    activerecord_sane_schema_dumper (0.2)
+      rails (>= 4, < 5)
+    activesupport (4.2.10)
+      i18n (~> 0.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
+      tzinfo (~> 1.1)
+    acts-as-taggable-on (5.0.0)
+      activerecord (>= 4.2.8)
+    adamantium (0.2.0)
+      ice_nine (~> 0.11.0)
+      memoizable (~> 0.4.0)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    aes_key_wrap (1.0.1)
+    akismet (2.0.0)
+    arel (6.0.4)
+    asana (0.6.0)
+      faraday (~> 0.9)
+      faraday_middleware (~> 0.9)
+      faraday_middleware-multi_json (~> 0.0)
+      oauth2 (~> 1.0)
+    asciidoctor (1.5.6.2)
+    asciidoctor-plantuml (0.0.8)
+      asciidoctor (~> 1.5)
+    ast (2.4.0)
+    atomic (1.1.99)
+    attr_encrypted (3.1.0)
+      encryptor (~> 3.0.0)
+    attr_required (1.0.0)
+    awesome_print (1.8.0)
+    axiom-types (0.1.1)
+      descendants_tracker (~> 0.0.4)
+      ice_nine (~> 0.11.0)
+      thread_safe (~> 0.3, >= 0.3.1)
+    babosa (1.0.2)
+    base32 (0.3.2)
+    batch-loader (1.2.1)
+    bcrypt (3.1.12)
+    bcrypt_pbkdf (1.0.0)
+    benchmark-ips (2.3.0)
+    better_errors (2.1.1)
+      coderay (>= 1.0.0)
+      erubis (>= 2.6.6)
+      rack (>= 0.9.0)
+    bindata (2.4.3)
+    binding_of_caller (0.7.2)
+      debug_inspector (>= 0.0.1)
+    bootsnap (1.3.2)
+      msgpack (~> 1.0)
+    bootstrap_form (2.7.0)
+    brakeman (4.2.1)
+    browser (2.5.3)
+    builder (3.2.3)
+    bullet (5.5.1)
+      activesupport (>= 3.0.0)
+      uniform_notifier (~> 1.10.0)
+    bundler-audit (0.5.0)
+      bundler (~> 1.2)
+      thor (~> 0.18)
+    byebug (9.0.6)
+    capybara (2.15.1)
+      addressable
+      mini_mime (>= 0.1.3)
+      nokogiri (>= 1.3.3)
+      rack (>= 1.0.0)
+      rack-test (>= 0.5.4)
+      xpath (~> 2.0)
+    capybara-screenshot (1.0.14)
+      capybara (>= 1.0, < 3)
+      launchy
+    carrierwave (1.2.3)
+      activemodel (>= 4.0.0)
+      activesupport (>= 4.0.0)
+      mime-types (>= 1.16)
+    cause (0.1)
+    charlock_holmes (0.7.6)
+    childprocess (0.9.0)
+      ffi (~> 1.0, >= 1.0.11)
+    chronic (0.10.2)
+    chronic_duration (0.10.6)
+      numerizer (~> 0.1.1)
+    chunky_png (1.3.5)
+    citrus (3.0.2)
+    coderay (1.1.2)
+    coercible (1.0.0)
+      descendants_tracker (~> 0.0.1)
+    commonmarker (0.17.13)
+      ruby-enum (~> 0.5)
+    concord (0.1.5)
+      adamantium (~> 0.2.0)
+      equalizer (~> 0.0.9)
+    concurrent-ruby (1.0.5)
+    concurrent-ruby-ext (1.0.5)
+      concurrent-ruby (= 1.0.5)
+    connection_pool (2.2.2)
+    crack (0.4.3)
+      safe_yaml (~> 1.0.0)
+    crass (1.0.4)
+    creole (0.5.0)
+    css_parser (1.5.0)
+      addressable
+    daemons (1.2.6)
+    database_cleaner (1.5.3)
+    debug_inspector (0.0.2)
+    debugger-ruby_core_source (1.3.8)
+    deckar01-task_list (2.0.0)
+      html-pipeline
+    declarative (0.0.10)
+    declarative-option (0.1.0)
+    default_value_for (3.0.2)
+      activerecord (>= 3.2.0, < 5.1)
+    descendants_tracker (0.0.4)
+      thread_safe (~> 0.3, >= 0.3.1)
+    device_detector (1.0.0)
+    devise (4.4.3)
+      bcrypt (~> 3.0)
+      orm_adapter (~> 0.1)
+      railties (>= 4.1.0, < 6.0)
+      responders
+      warden (~> 1.2.3)
+    devise-two-factor (3.0.0)
+      activesupport
+      attr_encrypted (>= 1.3, < 4, != 2)
+      devise (~> 4.0)
+      railties
+      rotp (~> 2.0)
+    diff-lcs (1.3)
+    diffy (3.1.0)
+    docile (1.1.5)
+    domain_name (0.5.20180417)
+      unf (>= 0.0.5, < 1.0.0)
+    doorkeeper (4.3.2)
+      railties (>= 4.2)
+    doorkeeper-openid_connect (1.5.0)
+      doorkeeper (~> 4.3)
+      json-jwt (~> 1.6)
+    ed25519 (1.2.4)
+    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)
+    equalizer (0.0.11)
+    erubis (2.7.0)
+    escape_utils (1.1.1)
+    et-orbi (1.0.3)
+      tzinfo
+    eventmachine (1.2.7)
+    excon (0.62.0)
+    execjs (2.6.0)
+    expression_parser (0.9.0)
+    factory_bot (4.8.2)
+      activesupport (>= 3.0.0)
+    factory_bot_rails (4.8.2)
+      factory_bot (~> 4.8.2)
+      railties (>= 3.0.0)
+    faraday (0.12.2)
+      multipart-post (>= 1.2, < 3)
+    faraday_middleware (0.12.2)
+      faraday (>= 0.7.4, < 1.0)
+    faraday_middleware-multi_json (0.0.6)
+      faraday_middleware
+      multi_json
+    fast_blank (1.0.0)
+    fast_gettext (1.6.0)
+    ffaker (2.4.0)
+    ffi (1.9.25)
+    flipper (0.13.0)
+    flipper-active_record (0.13.0)
+      activerecord (>= 3.2, < 6)
+      flipper (~> 0.13.0)
+    flipper-active_support_cache_store (0.13.0)
+      activesupport (>= 3.2, < 6)
+      flipper (~> 0.13.0)
+    flowdock (0.7.1)
+      httparty (~> 0.7)
+      multi_json
+    fog-aliyun (0.2.0)
+      fog-core (~> 1.27)
+      fog-json (~> 1.0)
+      ipaddress (~> 0.8)
+      xml-simple (~> 1.1)
+    fog-aws (2.0.1)
+      fog-core (~> 1.38)
+      fog-json (~> 1.0)
+      fog-xml (~> 0.1)
+      ipaddress (~> 0.8)
+    fog-core (1.45.0)
+      builder
+      excon (~> 0.58)
+      formatador (~> 0.2)
+    fog-google (1.7.1)
+      fog-core
+      fog-json
+      fog-xml
+      google-api-client (~> 0.23.0)
+    fog-json (1.0.2)
+      fog-core (~> 1.0)
+      multi_json (~> 1.10)
+    fog-local (0.3.1)
+      fog-core (~> 1.27)
+    fog-openstack (0.1.21)
+      fog-core (>= 1.40)
+      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.1)
+      railties (>= 3.2, < 5.1)
+    foreman (0.84.0)
+      thor (~> 0.19.1)
+    formatador (0.2.5)
+    fuubar (2.2.0)
+      rspec-core (~> 3.0)
+      ruby-progressbar (~> 1.4)
+    gemojione (3.3.0)
+      json
+    get_process_mem (0.2.0)
+    gettext (3.2.9)
+      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)
+    gitaly-proto (0.123.0)
+      grpc (~> 1.0)
+    github-markup (1.7.0)
+    gitlab-markup (1.6.4)
+    gitlab-sidekiq-fetcher (0.3.0)
+      sidekiq (~> 5)
+    gitlab-styles (2.4.1)
+      rubocop (~> 0.54.0)
+      rubocop-gitlab-security (~> 0.1.0)
+      rubocop-rspec (~> 1.19)
+    gitlab_omniauth-ldap (2.0.4)
+      net-ldap (~> 0.16)
+      omniauth (~> 1.3)
+      pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
+      rubyntlm (~> 0.5)
+    globalid (0.4.1)
+      activesupport (>= 4.2.0)
+    gon (6.2.0)
+      actionpack (>= 3.0)
+      multi_json
+      request_store (>= 1.0)
+    google-api-client (0.23.4)
+      addressable (~> 2.5, >= 2.5.1)
+      googleauth (>= 0.5, < 0.7.0)
+      httpclient (>= 2.8.1, < 3.0)
+      mime-types (~> 3.0)
+      representable (~> 3.0)
+      retriable (>= 2.0, < 4.0)
+    google-protobuf (3.6.1)
+    googleapis-common-protos-types (1.0.2)
+      google-protobuf (~> 3.0)
+    googleauth (0.6.6)
+      faraday (~> 0.12)
+      jwt (>= 1.4, < 3.0)
+      memoist (~> 0.12)
+      multi_json (~> 1.11)
+      os (>= 0.9, < 2.0)
+      signet (~> 0.7)
+    gpgme (2.0.13)
+      mini_portile2 (~> 2.1)
+    grape (1.1.0)
+      activesupport
+      builder
+      mustermann-grape (~> 1.0.0)
+      rack (>= 1.3.0)
+      rack-accept
+      virtus (>= 1.0.0)
+    grape-entity (0.7.1)
+      activesupport (>= 4.0)
+      multi_json (>= 1.3.2)
+    grape-path-helpers (1.0.6)
+      activesupport (>= 4, < 5.1)
+      grape (~> 1.0)
+      rake (~> 12)
+    grape_logging (1.7.0)
+      grape
+    graphiql-rails (1.4.10)
+      railties
+      sprockets-rails
+    graphql (1.8.1)
+    grpc (1.15.0)
+      google-protobuf (~> 3.1)
+      googleapis-common-protos-types (~> 1.0.0)
+    haml (5.0.4)
+      temple (>= 0.8.0)
+      tilt
+    haml_lint (0.26.0)
+      haml (>= 4.0, < 5.1)
+      rainbow
+      rake (>= 10, < 13)
+      rubocop (>= 0.49.0)
+      sysexits (~> 1.1)
+    hamlit (2.8.8)
+      temple (>= 0.8.0)
+      thor
+      tilt
+    hangouts-chat (0.0.5)
+    hashdiff (0.3.4)
+    hashie (3.5.7)
+    hashie-forbidden_attributes (0.1.1)
+      hashie (>= 3.0)
+    health_check (2.6.0)
+      rails (>= 4.0)
+    hipchat (1.5.2)
+      httparty
+      mimemagic
+    html-pipeline (2.8.4)
+      activesupport (>= 2)
+      nokogiri (>= 1.4)
+    html2text (0.2.0)
+      nokogiri (~> 1.6)
+    htmlentities (4.3.4)
+    http (2.2.2)
+      addressable (~> 2.3)
+      http-cookie (~> 1.0)
+      http-form_data (~> 1.0.1)
+      http_parser.rb (~> 0.6.0)
+    http-cookie (1.0.3)
+      domain_name (~> 0.5)
+    http-form_data (1.0.3)
+    http_parser.rb (0.6.0)
+    httparty (0.13.7)
+      json (~> 1.8)
+      multi_xml (>= 0.5.2)
+    httpclient (2.8.3)
+    i18n (0.9.5)
+      concurrent-ruby (~> 1.0)
+    icalendar (2.4.1)
+    ice_nine (0.11.2)
+    influxdb (0.2.3)
+      cause
+      json
+    ipaddress (0.8.3)
+    jira-ruby (1.4.1)
+      activesupport
+      multipart-post
+      oauth (~> 0.5, >= 0.5.0)
+    jquery-atwho-rails (1.3.2)
+    js_regex (2.2.1)
+      regexp_parser (>= 0.4.11, <= 0.5.0)
+    json (1.8.6)
+    json-jwt (1.9.4)
+      activesupport
+      aes_key_wrap
+      bindata
+    json-schema (2.8.0)
+      addressable (>= 2.4)
+    jwt (1.5.6)
+    kaminari (1.0.1)
+      activesupport (>= 4.1.0)
+      kaminari-actionview (= 1.0.1)
+      kaminari-activerecord (= 1.0.1)
+      kaminari-core (= 1.0.1)
+    kaminari-actionview (1.0.1)
+      actionview
+      kaminari-core (= 1.0.1)
+    kaminari-activerecord (1.0.1)
+      activerecord
+      kaminari-core (= 1.0.1)
+    kaminari-core (1.0.1)
+    kgio (2.10.0)
+    knapsack (1.16.0)
+      rake
+    kubeclient (3.1.0)
+      http (~> 2.2.2)
+      recursive-open-struct (~> 1.0, >= 1.0.4)
+      rest-client (~> 2.0)
+    launchy (2.4.3)
+      addressable (~> 2.3)
+    letter_opener (1.4.1)
+      launchy (~> 2.2)
+    letter_opener_web (1.3.0)
+      actionmailer (>= 3.2)
+      letter_opener (~> 1.0)
+      railties (>= 3.2)
+    license_finder (5.4.0)
+      bundler
+      rubyzip
+      thor
+      toml (= 0.2.0)
+      with_env (= 1.1.0)
+      xml-simple
+    licensee (8.9.2)
+      rugged (~> 0.24)
+    locale (2.1.2)
+    lograge (0.10.0)
+      actionpack (>= 4)
+      activesupport (>= 4)
+      railties (>= 4)
+      request_store (~> 1.0)
+    loofah (2.2.2)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.5.9)
+    mail (2.7.0)
+      mini_mime (>= 0.1.1)
+    mail_room (0.9.1)
+    memoist (0.16.0)
+    memoizable (0.4.2)
+      thread_safe (~> 0.3, >= 0.3.1)
+    method_source (0.9.0)
+    mime-types (3.1)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2016.0521)
+    mimemagic (0.3.0)
+    mini_magick (4.8.0)
+    mini_mime (1.0.1)
+    mini_portile2 (2.3.0)
+    minitest (5.7.0)
+    msgpack (1.2.4)
+    multi_json (1.13.1)
+    multi_xml (0.6.0)
+    multipart-post (2.0.0)
+    mustermann (1.0.3)
+    mustermann-grape (1.0.0)
+      mustermann (~> 1.0.0)
+    mysql2 (0.4.10)
+    net-ldap (0.16.0)
+    net-ssh (5.0.1)
+    netrc (0.11.0)
+    nokogiri (1.8.4)
+      mini_portile2 (~> 2.3.0)
+    nokogumbo (1.5.0)
+      nokogiri
+    numerizer (0.1.1)
+    oauth (0.5.4)
+    oauth2 (1.4.0)
+      faraday (>= 0.8, < 0.13)
+      jwt (~> 1.0)
+      multi_json (~> 1.3)
+      multi_xml (~> 0.5)
+      rack (>= 1.2, < 3)
+    octokit (4.9.0)
+      sawyer (~> 0.8.0, >= 0.5.3)
+    omniauth (1.8.1)
+      hashie (>= 3.4.6, < 3.6.0)
+      rack (>= 1.6.2, < 3)
+    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.9)
+      jwt (~> 1.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.3.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.5.3)
+      jwt (>= 1.5)
+      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.5.0)
+      oauth2 (~> 1.1)
+      omniauth (~> 1.2)
+    omniauth-oauth2-generic (0.2.2)
+      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.2.3)
+      activesupport
+      nokogiri (>= 1.4.4)
+      omniauth (~> 1.0)
+    org-ruby (0.9.12)
+      rubypants (~> 0.2)
+    orm_adapter (0.5.0)
+    os (1.0.0)
+    parallel (1.12.1)
+    parser (2.5.3.0)
+      ast (~> 2.4.0)
+    parslet (1.8.2)
+    peek (1.0.1)
+      concurrent-ruby (>= 0.9.0)
+      concurrent-ruby-ext (>= 0.9.0)
+      railties (>= 4.0.0)
+    peek-gc (0.0.2)
+      peek
+    peek-mysql2 (1.1.0)
+      atomic (>= 1.0.0)
+      mysql2
+      peek
+    peek-pg (1.3.0)
+      concurrent-ruby
+      concurrent-ruby-ext
+      peek
+      pg
+    peek-rblineprof (0.2.0)
+      peek
+      rblineprof
+    peek-redis (1.2.0)
+      atomic (>= 1.0.0)
+      peek
+      redis
+    pg (0.18.4)
+    po_to_json (1.0.1)
+      json (>= 1.6.0)
+    powerpack (0.1.1)
+    premailer (1.10.4)
+      addressable
+      css_parser (>= 1.4.10)
+      htmlentities (>= 4.0.0)
+    premailer-rails (1.9.7)
+      actionmailer (>= 3, < 6)
+      premailer (~> 1.7, >= 1.7.9)
+    proc_to_ast (0.1.0)
+      coderay
+      parser
+      unparser
+    procto (0.0.3)
+    prometheus-client-mmap (0.9.4)
+    pry (0.11.3)
+      coderay (~> 1.1.0)
+      method_source (~> 0.9.0)
+    pry-byebug (3.4.3)
+      byebug (>= 9.0, < 9.1)
+      pry (~> 0.10)
+    pry-rails (0.3.6)
+      pry (>= 0.10.4)
+    public_suffix (3.0.3)
+    puma (3.12.0)
+    puma_worker_killer (0.1.0)
+      get_process_mem (~> 0.2)
+      puma (>= 2.7, < 4)
+    pyu-ruby-sasl (0.0.3.3)
+    rack (1.6.10)
+    rack-accept (0.4.5)
+      rack (>= 0.4)
+    rack-attack (4.4.1)
+      rack
+    rack-cors (1.0.2)
+    rack-oauth2 (1.2.3)
+      activesupport (>= 2.3)
+      attr_required (>= 0.0.5)
+      httpclient (>= 2.4)
+      multi_json (>= 1.3.6)
+      rack (>= 1.1)
+    rack-protection (2.0.3)
+      rack
+    rack-proxy (0.6.0)
+      rack
+    rack-test (0.6.3)
+      rack (>= 1.0)
+    rails (4.2.10)
+      actionmailer (= 4.2.10)
+      actionpack (= 4.2.10)
+      actionview (= 4.2.10)
+      activejob (= 4.2.10)
+      activemodel (= 4.2.10)
+      activerecord (= 4.2.10)
+      activesupport (= 4.2.10)
+      bundler (>= 1.3.0, < 2.0)
+      railties (= 4.2.10)
+      sprockets-rails
+    rails-deprecated_sanitizer (1.0.3)
+      activesupport (>= 4.2.0.alpha)
+    rails-dom-testing (1.0.9)
+      activesupport (>= 4.2.0, < 5.0)
+      nokogiri (~> 1.6)
+      rails-deprecated_sanitizer (>= 1.0.1)
+    rails-html-sanitizer (1.0.4)
+      loofah (~> 2.2, >= 2.2.2)
+    rails-i18n (4.0.9)
+      i18n (~> 0.7)
+      railties (~> 4.0)
+    railties (4.2.10)
+      actionpack (= 4.2.10)
+      activesupport (= 4.2.10)
+      rake (>= 0.8.7)
+      thor (>= 0.18.1, < 2.0)
+    rainbow (3.0.0)
+    raindrops (0.18.0)
+    rake (12.3.1)
+    rb-fsevent (0.10.2)
+    rb-inotify (0.9.10)
+      ffi (>= 0.5.0, < 2)
+    rblineprof (0.3.6)
+      debugger-ruby_core_source (~> 1.3)
+    rbtrace (0.4.10)
+      ffi (>= 1.0.6)
+      msgpack (>= 0.4.3)
+      trollop (>= 1.16.2)
+    rdoc (6.0.4)
+    re2 (1.1.1)
+    recaptcha (3.0.0)
+      json
+    recursive-open-struct (1.1.0)
+    redcarpet (3.4.0)
+    redis (3.3.5)
+    redis-actionpack (5.0.2)
+      actionpack (>= 4.0, < 6)
+      redis-rack (>= 1, < 3)
+      redis-store (>= 1.1.0, < 2)
+    redis-activesupport (5.0.4)
+      activesupport (>= 3, < 6)
+      redis-store (>= 1.3, < 2)
+    redis-namespace (1.6.0)
+      redis (>= 3.0.4)
+    redis-rack (2.0.4)
+      rack (>= 1.5, < 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.4.1)
+      redis (>= 2.2, < 5)
+    regexp_parser (0.5.0)
+    representable (3.0.4)
+      declarative (< 0.1.0)
+      declarative-option (< 0.2.0)
+      uber (< 0.2.0)
+    request_store (1.3.1)
+    responders (2.4.0)
+      actionpack (>= 4.2.0, < 5.3)
+      railties (>= 4.2.0, < 5.3)
+    rest-client (2.0.2)
+      http-cookie (>= 1.0.2, < 2.0)
+      mime-types (>= 1.16, < 4.0)
+      netrc (~> 0.8)
+    retriable (3.1.2)
+    rinku (2.0.0)
+    rotp (2.1.2)
+    rouge (3.3.0)
+    rqrcode (0.7.0)
+      chunky_png
+    rqrcode-rails3 (0.1.7)
+      rqrcode (>= 0.4.2)
+    rspec (3.7.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+    rspec-core (3.7.1)
+      rspec-support (~> 3.7.0)
+    rspec-expectations (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-mocks (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-parameterized (0.4.0)
+      binding_of_caller
+      parser
+      proc_to_ast
+      rspec (>= 2.13, < 4)
+      unparser
+    rspec-rails (3.7.2)
+      actionpack (>= 3.0)
+      activesupport (>= 3.0)
+      railties (>= 3.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+      rspec-support (~> 3.7.0)
+    rspec-retry (0.4.5)
+      rspec-core
+    rspec-set (0.1.3)
+    rspec-support (3.7.1)
+    rspec_junit_formatter (0.2.3)
+      builder (< 4)
+      rspec-core (>= 2, < 4, != 2.12.0)
+    rspec_profiling (0.0.5)
+      activerecord
+      pg
+      rails
+      sqlite3
+    rubocop (0.54.0)
+      parallel (~> 1.10)
+      parser (>= 2.5)
+      powerpack (~> 0.1)
+      rainbow (>= 2.2.2, < 4.0)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (~> 1.0, >= 1.0.1)
+    rubocop-gitlab-security (0.1.1)
+      rubocop (>= 0.51)
+    rubocop-rspec (1.22.2)
+      rubocop (>= 0.52.1)
+    ruby-enum (0.7.2)
+      i18n
+    ruby-fogbugz (0.2.1)
+      crack (~> 0.4)
+    ruby-prof (0.17.0)
+    ruby-progressbar (1.9.0)
+    ruby-saml (1.7.2)
+      nokogiri (>= 1.5.10)
+    ruby_parser (3.9.0)
+      sexp_processor (~> 4.1)
+    rubyntlm (0.6.2)
+    rubypants (0.2.0)
+    rubyzip (1.2.2)
+    rufus-scheduler (3.4.0)
+      et-orbi (~> 1.0)
+    rugged (0.27.5)
+    safe_yaml (1.0.4)
+    sanitize (4.6.6)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.4.4)
+      nokogumbo (~> 1.4)
+    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)
+    sass-rails (5.0.6)
+      railties (>= 4.0.0, < 6)
+      sass (~> 3.1)
+      sprockets (>= 2.8, < 4.0)
+      sprockets-rails (>= 2.0, < 4.0)
+      tilt (>= 1.1, < 3)
+    sawyer (0.8.1)
+      addressable (>= 2.3.5, < 2.6)
+      faraday (~> 0.8, < 1.0)
+    scss_lint (0.56.0)
+      rake (>= 0.9, < 13)
+      sass (~> 3.5.3)
+    seed-fu (2.3.7)
+      activerecord (>= 3.1)
+      activesupport (>= 3.1)
+    select2-rails (3.5.9.3)
+      thor (~> 0.14)
+    selenium-webdriver (3.12.0)
+      childprocess (~> 0.5)
+      rubyzip (~> 1.2)
+    sentry-raven (2.7.2)
+      faraday (>= 0.7.6, < 1.0)
+    settingslogic (2.0.9)
+    sexp_processor (4.9.0)
+    sham_rack (1.3.6)
+      rack
+    shoulda-matchers (3.1.2)
+      activesupport (>= 4.0.0)
+    sidekiq (5.2.1)
+      connection_pool (~> 2.2, >= 2.2.2)
+      rack-protection (>= 1.5.0)
+      redis (>= 3.3.5, < 5)
+    sidekiq-cron (0.6.0)
+      rufus-scheduler (>= 3.3.0)
+      sidekiq (>= 4.2.1)
+    signet (0.11.0)
+      addressable (~> 2.3)
+      faraday (~> 0.9)
+      jwt (>= 1.5, < 3.0)
+      multi_json (~> 1.10)
+    simple_po_parser (1.1.2)
+    simplecov (0.14.1)
+      docile (~> 1.1.0)
+      json (>= 1.8, < 3)
+      simplecov-html (~> 0.10.0)
+    simplecov-html (0.10.0)
+    slack-notifier (1.5.1)
+    spring (2.0.2)
+      activesupport (>= 4.2)
+    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.1)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
+    sqlite3 (1.3.13)
+    sshkey (1.9.0)
+    stackprof (0.2.10)
+    state_machines (0.5.0)
+    state_machines-activemodel (0.5.1)
+      activemodel (>= 4.1, < 6.0)
+      state_machines (>= 0.5.0)
+    state_machines-activerecord (0.5.1)
+      activerecord (>= 4.1, < 6.0)
+      state_machines-activemodel (>= 0.5.0)
+    sys-filesystem (1.1.6)
+      ffi
+    sysexits (1.2.0)
+    temple (0.8.0)
+    test-prof (0.2.5)
+    test_after_commit (1.1.0)
+      activerecord (>= 3.2)
+    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.19.4)
+    thread_safe (0.3.6)
+    tilt (2.0.8)
+    timecop (0.8.1)
+    timfel-krb5-auth (0.8.3)
+    toml (0.2.0)
+      parslet (~> 1.8.0)
+    toml-rb (1.0.0)
+      citrus (~> 3.0, > 3.0)
+    trollop (2.1.3)
+    truncato (0.7.10)
+      htmlentities (~> 4.3.1)
+      nokogiri (~> 1.8.0, >= 1.7.0)
+    tzinfo (1.2.5)
+      thread_safe (~> 0.1)
+    u2f (0.2.1)
+    uber (0.1.0)
+    uglifier (2.7.2)
+      execjs (>= 0.3.0)
+      json (>= 1.8.0)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.5)
+    unicode-display_width (1.3.2)
+    unicorn (5.1.0)
+      kgio (~> 2.6)
+      raindrops (~> 0.7)
+    unicorn-worker-killer (0.4.4)
+      get_process_mem (~> 0)
+      unicorn (>= 4, < 6)
+    uniform_notifier (1.10.0)
+    unparser (0.2.7)
+      abstract_type (~> 0.0.7)
+      adamantium (~> 0.2.0)
+      concord (~> 0.1.5)
+      diff-lcs (~> 1.3)
+      equalizer (~> 0.0.9)
+      parser (>= 2.3.1.2, < 2.6)
+      procto (~> 0.0.2)
+    validates_hostname (1.0.6)
+      activerecord (>= 3.0)
+      activesupport (>= 3.0)
+    version_sorter (2.1.0)
+    virtus (1.0.5)
+      axiom-types (~> 0.1)
+      coercible (~> 1.0)
+      descendants_tracker (~> 0.0, >= 0.0.3)
+      equalizer (~> 0.0, >= 0.0.9)
+    vmstat (2.3.0)
+    warden (1.2.7)
+      rack (>= 1.0)
+    webmock (2.3.2)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff
+    webpack-rails (0.9.11)
+      railties (>= 3.2.0)
+    wikicloth (0.8.1)
+      builder
+      expression_parser
+      rinku
+    with_env (1.1.0)
+    xml-simple (1.1.5)
+    xpath (2.1.0)
+      nokogiri (~> 1.3)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  RedCloth (~> 4.3.2)
+  ace-rails-ap (~> 4.1.0)
+  activerecord_sane_schema_dumper (= 0.2)
+  acts-as-taggable-on (~> 5.0)
+  addressable (~> 2.5.2)
+  akismet (~> 2.0)
+  asana (~> 0.6.0)
+  asciidoctor (~> 1.5.6)
+  asciidoctor-plantuml (= 0.0.8)
+  attr_encrypted (~> 3.1.0)
+  awesome_print
+  babosa (~> 1.0.2)
+  base32 (~> 0.3.0)
+  batch-loader (~> 1.2.1)
+  bcrypt_pbkdf (~> 1.0)
+  benchmark-ips (~> 2.3.0)
+  better_errors (~> 2.1.0)
+  binding_of_caller (~> 0.7.2)
+  bootsnap (~> 1.3)
+  bootstrap_form (~> 2.7.0)
+  brakeman (~> 4.2)
+  browser (~> 2.5)
+  bullet (~> 5.5.0)
+  bundler-audit (~> 0.5.0)
+  capybara (~> 2.15)
+  capybara-screenshot (~> 1.0.0)
+  carrierwave (= 1.2.3)
+  charlock_holmes (~> 0.7.5)
+  chronic (~> 0.10.2)
+  chronic_duration (~> 0.10.6)
+  commonmarker (~> 0.17)
+  concurrent-ruby (~> 1.0.5)
+  connection_pool (~> 2.0)
+  creole (~> 0.5.0)
+  database_cleaner (~> 1.5.0)
+  deckar01-task_list (= 2.0.0)
+  default_value_for (~> 3.0.0)
+  device_detector
+  devise (~> 4.4)
+  devise-two-factor (~> 3.0.0)
+  diffy (~> 3.1.0)
+  doorkeeper (~> 4.3)
+  doorkeeper-openid_connect (~> 1.5)
+  ed25519 (~> 1.2)
+  email_reply_trimmer (~> 0.1)
+  email_spec (~> 2.2.0)
+  escape_utils (~> 1.1)
+  factory_bot_rails (~> 4.8.2)
+  faraday (~> 0.12)
+  fast_blank
+  ffaker (~> 2.4)
+  flipper (~> 0.13.0)
+  flipper-active_record (~> 0.13.0)
+  flipper-active_support_cache_store (~> 0.13.0)
+  flowdock (~> 0.7)
+  fog-aliyun (~> 0.2.0)
+  fog-aws (~> 2.0.1)
+  fog-core (~> 1.44)
+  fog-google (~> 1.7.1)
+  fog-local (~> 0.3)
+  fog-openstack (~> 0.1)
+  fog-rackspace (~> 0.1.1)
+  font-awesome-rails (~> 4.7)
+  foreman (~> 0.84.0)
+  fuubar (~> 2.2.0)
+  gemojione (~> 3.3)
+  gettext (~> 3.2.2)
+  gettext_i18n_rails (~> 1.8.0)
+  gettext_i18n_rails_js (~> 1.3)
+  gitaly-proto (~> 0.123.0)
+  github-markup (~> 1.7.0)
+  gitlab-markup (~> 1.6.4)
+  gitlab-sidekiq-fetcher
+  gitlab-styles (~> 2.4)
+  gitlab_omniauth-ldap (~> 2.0.4)
+  gon (~> 6.2)
+  google-api-client (~> 0.23)
+  google-protobuf (~> 3.6)
+  gpgme
+  grape (~> 1.1)
+  grape-entity (~> 0.7.1)
+  grape-path-helpers (~> 1.0)
+  grape_logging (~> 1.7)
+  graphiql-rails (~> 1.4.10)
+  graphql (~> 1.8.0)
+  grpc (~> 1.15.0)
+  haml_lint (~> 0.26.0)
+  hamlit (~> 2.8.8)
+  hangouts-chat (~> 0.0.5)
+  hashie-forbidden_attributes
+  health_check (~> 2.6.0)
+  hipchat (~> 1.5.0)
+  html-pipeline (~> 2.8)
+  html2text
+  httparty (~> 0.13.3)
+  icalendar
+  influxdb (~> 0.2)
+  jira-ruby (~> 1.4)
+  jquery-atwho-rails (~> 1.3.2)
+  js_regex (~> 2.2.1)
+  json-schema (~> 2.8.0)
+  jwt (~> 1.5.6)
+  kaminari (~> 1.0)
+  knapsack (~> 1.16)
+  kubeclient (~> 3.1.0)
+  letter_opener_web (~> 1.3.0)
+  license_finder (~> 5.4)
+  licensee (~> 8.9)
+  lograge (~> 0.5)
+  loofah (~> 2.2)
+  mail_room (~> 0.9.1)
+  method_source (~> 0.8)
+  mini_magick
+  minitest (~> 5.7.0)
+  mysql2 (~> 0.4.10)
+  net-ldap
+  net-ssh (~> 5.0)
+  nokogiri (~> 1.8.2)
+  oauth2 (~> 1.4)
+  octokit (~> 4.9)
+  omniauth (~> 1.8)
+  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.3)
+  omniauth-gitlab (~> 1.0.2)
+  omniauth-google-oauth2 (~> 0.5.3)
+  omniauth-kerberos (~> 0.3.0)
+  omniauth-oauth2-generic (~> 0.2.2)
+  omniauth-saml (~> 1.10)
+  omniauth-shibboleth (~> 1.3.0)
+  omniauth-twitter (~> 1.4)
+  omniauth_crowd (~> 2.2.0)
+  org-ruby (~> 0.9.12)
+  peek (~> 1.0.1)
+  peek-gc (~> 0.0.2)
+  peek-mysql2 (~> 1.1.0)
+  peek-pg (~> 1.3.0)
+  peek-rblineprof (~> 0.2.0)
+  peek-redis (~> 1.2.0)
+  pg (~> 0.18.2)
+  premailer-rails (~> 1.9.7)
+  prometheus-client-mmap (~> 0.9.4)
+  pry-byebug (~> 3.4.1)
+  pry-rails (~> 0.3.4)
+  puma (~> 3.12)
+  puma_worker_killer
+  rack-attack (~> 4.4.1)
+  rack-cors (~> 1.0.0)
+  rack-oauth2 (~> 1.2.1)
+  rack-proxy (~> 0.6.0)
+  rails (= 4.2.10)
+  rails-deprecated_sanitizer (~> 1.0.3)
+  rails-i18n (~> 4.0.9)
+  rainbow (~> 3.0)
+  raindrops (~> 0.18)
+  rblineprof (~> 0.3.6)
+  rbtrace (~> 0.4)
+  rdoc (~> 6.0)
+  re2 (~> 1.1.1)
+  recaptcha (~> 3.0)
+  redcarpet (~> 3.4)
+  redis (~> 3.2)
+  redis-namespace (~> 1.6.0)
+  redis-rails (~> 5.0.2)
+  request_store (~> 1.3)
+  responders (~> 2.0)
+  rouge (~> 3.1)
+  rqrcode-rails3 (~> 0.1.7)
+  rspec-parameterized
+  rspec-rails (~> 3.7.0)
+  rspec-retry (~> 0.4.5)
+  rspec-set (~> 0.1.3)
+  rspec_junit_formatter
+  rspec_profiling (~> 0.0.5)
+  rubocop (~> 0.54.0)
+  rubocop-rspec (~> 1.22.1)
+  ruby-fogbugz (~> 0.2.1)
+  ruby-prof (~> 0.17.0)
+  ruby-progressbar
+  ruby_parser (~> 3.8)
+  rufus-scheduler (~> 3.4)
+  rugged (~> 0.27)
+  sanitize (~> 4.6)
+  sass-rails (~> 5.0.6)
+  scss_lint (~> 0.56.0)
+  seed-fu (~> 2.3.7)
+  select2-rails (~> 3.5.9)
+  selenium-webdriver (~> 3.12)
+  sentry-raven (~> 2.7)
+  settingslogic (~> 2.0.9)
+  sham_rack (~> 1.3.6)
+  shoulda-matchers (~> 3.1.2)
+  sidekiq (~> 5.2.1)
+  sidekiq-cron (~> 0.6.0)
+  simple_po_parser (~> 1.1.2)
+  simplecov (~> 0.14.0)
+  slack-notifier (~> 1.5.1)
+  spring (~> 2.0.0)
+  spring-commands-rspec (~> 1.0.4)
+  sprockets (~> 3.7.0)
+  sshkey (~> 1.9.0)
+  stackprof (~> 0.2.10)
+  state_machines-activerecord (~> 0.5.1)
+  sys-filesystem (~> 1.1.6)
+  test-prof (~> 0.2.5)
+  test_after_commit (~> 1.1)
+  thin (~> 1.7.0)
+  timecop (~> 0.8.0)
+  toml-rb (~> 1.0.0)
+  truncato (~> 0.7.9)
+  u2f (~> 0.2.1)
+  uglifier (~> 2.7.2)
+  unf (~> 0.1.4)
+  unicorn (~> 5.1.0)
+  unicorn-worker-killer (~> 0.4.4)
+  validates_hostname (~> 1.0.6)
+  version_sorter (~> 2.1.0)
+  virtus (~> 1.0.1)
+  vmstat (~> 2.3.0)
+  webmock (~> 2.3.2)
+  webpack-rails (~> 0.9.10)
+  wikicloth (= 0.8.1)
+
+BUNDLED WITH
+   1.17.1
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix
new file mode 100644
index 000000000000..9a3944d6feab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ce/gemset.nix
@@ -0,0 +1,3455 @@
+{
+  abstract_type = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  ace-rails-ap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14wj9gsiy7rm0lvs27ffsrh92wndjksj6rlfj3n7jhv1v77w9v2h";
+      type = "gem";
+    };
+    version = "4.1.2";
+  };
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ivyjsapqgn1xfb2p8yqjrg2jldqm5r7hxrjxq6kdr05gk4fsg59";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l6agrxdaishxjx2zc2x8md95plfp39bfskzgs6v9gsdp2y2arpx";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jrx2pmkywk70z7n17gw3jrcdw3n03wdzvg45bnq8wxshl1lmbhv";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10jsa5pqklcsd2npicqxr5abjlwi53di2brpzgz35k557fkpc1z8";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  activemodel = {
+    dependencies = ["activesupport" "builder"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c4vj9xajxa906bqbcjpni74nya6rh2nbb15gl8xm0vl9zf3ll9v";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport" "arel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lws9y4p9c2vnmv3ddfpv8jh6azlddppl3fi31vahaz14ifxjk5s";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  activerecord_sane_schema_dumper = {
+    dependencies = ["rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "122c7v7lvs0gwckvx2rar07waxnx1vv0lryz322nybb69d8vbhl6";
+      type = "gem";
+    };
+    version = "0.2";
+  };
+  activesupport = {
+    dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s12j8vl8vrxfngkdlz9g8bpz9akq1z42d57mx5r537b2pji8nr7";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  acts-as-taggable-on = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kvbhlansqiz1xp5r28cv27ghbfmx4b39cv51w6xrhkb52bskn3i";
+      type = "gem";
+    };
+    version = "5.0.0";
+  };
+  adamantium = {
+    dependencies = ["ice_nine" "memoizable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  aes_key_wrap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  akismet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  arel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nfcrdiys6q6ylxiblky9jyssrw2xj96fmxmal7f4f0jj3417vj4";
+      type = "gem";
+    };
+    version = "6.0.4";
+  };
+  asana = {
+    dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bn7f3sc2f02g871jd0y6qdhixn464mflkjchp56x6kcnyqy24z6";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  asciidoctor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zq3az4836nxkc8g5wnnbzmarw7663s1ky6gf8pc04sfpa8n2l3f";
+      type = "gem";
+    };
+    version = "1.5.6.2";
+  };
+  asciidoctor-plantuml = {
+    dependencies = ["asciidoctor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x092ldl8p7svczg4lnrnp0h918acnflh7jz5qwv40ksh1fflqna";
+      type = "gem";
+    };
+    version = "0.0.8";
+  };
+  ast = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  atomic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kh9rvhjn4dndbfsk3yjq7alds6s2j70rc4k8wdwdyibab8a8gq9";
+      type = "gem";
+    };
+    version = "1.1.99";
+  };
+  attr_encrypted = {
+    dependencies = ["encryptor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  attr_required = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pawa2i7gw9ppj6fq6y288da1ncjpzsmc6kx7z63mjjvypa5q3dc";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  awesome_print = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  axiom-types = {
+    dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  babosa = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  base32 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  batch-loader = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nvmwzn8q6dkp2n8wz47z7gldj3yrj7h6syy0cwrkzi19bfvxba2";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  bcrypt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+      type = "gem";
+    };
+    version = "3.1.12";
+  };
+  bcrypt_pbkdf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  benchmark-ips = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  better_errors = {
+    dependencies = ["coderay" "erubis" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11csk41yhijqvp0dkky0cjl8kn6blw4jhr8b6v4islfvvayddcxc";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  bindata = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kxy917xyxckifmnawff65j7g6yb3wh2s45npjq9lqjbi1p86lsr";
+      type = "gem";
+    };
+    version = "2.4.3";
+  };
+  binding_of_caller = {
+    dependencies = ["debug_inspector"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15jg6dkaq2nzcd602d7ppqbdxw3aji961942w93crs6qw4n6h9yk";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
+  bootsnap = {
+    dependencies = ["msgpack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g6r784lmjfhwi046w82phsk244byq9wkj1q3lddwxg9z559bmhy";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  bootstrap_form = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sw88vi5sb48xzgwclic38jdgmcbvah2qfi3rijrlmi1wai4j1fw";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  brakeman = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v";
+      type = "gem";
+    };
+    version = "4.2.1";
+  };
+  browser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f";
+      type = "gem";
+    };
+    version = "2.5.3";
+  };
+  builder = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+      type = "gem";
+    };
+    version = "3.2.3";
+  };
+  bullet = {
+    dependencies = ["activesupport" "uniform_notifier"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdq3ckmwxnwrdm2x89zfj68h0yhiln35y8wps2nkvam4kpivyr5";
+      type = "gem";
+    };
+    version = "5.5.1";
+  };
+  bundler-audit = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  byebug = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kbfcn65rgdhi72n8x9l393b89rvi5z542459k7d1ggchpb0idb0";
+      type = "gem";
+    };
+    version = "9.0.6";
+  };
+  capybara = {
+    dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bahhwrd1rpfhci1x57yz0df9plziipljbw3p4k6mlash4wq6w92";
+      type = "gem";
+    };
+    version = "2.15.1";
+  };
+  capybara-screenshot = {
+    dependencies = ["capybara" "launchy"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xy79lf3rwn3602r4hqm9s8a03bhlf6hzwdi6345dzrkmhwwj2ij";
+      type = "gem";
+    };
+    version = "1.0.14";
+  };
+  carrierwave = {
+    dependencies = ["activemodel" "activesupport" "mime-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k9kla5ncygm97vn33lsrs7ch5zy4qqhhvc8m3khm986yaqh75qs";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  cause = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00";
+      type = "gem";
+    };
+    version = "0.1";
+  };
+  charlock_holmes = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  childprocess = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  chronic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  chronic_duration = {
+    dependencies = ["numerizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k7sx3xqbrn6s4pishh2pgr4kw6fmw63h00lh503l66k8x0qvigs";
+      type = "gem";
+    };
+    version = "0.10.6";
+  };
+  chunky_png = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn";
+      type = "gem";
+    };
+    version = "1.3.5";
+  };
+  citrus = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
+  coderay = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  coercible = {
+    dependencies = ["descendants_tracker"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  commonmarker = {
+    dependencies = ["ruby-enum"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9";
+      type = "gem";
+    };
+    version = "0.17.13";
+  };
+  concord = {
+    dependencies = ["adamantium" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  concurrent-ruby-ext = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "119l554zi3720d3rk670ldcqhsgmfii28a9z307v4mwdjckdm4gp";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  connection_pool = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  crack = {
+    dependencies = ["safe_yaml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  crass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  creole = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlr17cn044yaq4l3d9p42g3bghnamwsprq9c39xn6pxjrn5k1hy";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  daemons = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
+      type = "gem";
+    };
+    version = "1.2.6";
+  };
+  database_cleaner = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fx6zmqznklmkbjl6f713jyl11d4g9q220rcl86m2jp82r8kfwjj";
+      type = "gem";
+    };
+    version = "1.5.3";
+  };
+  debug_inspector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "109761g00dbrw5q0dfnbqg8blfm699z4jj70l4zrgf9mzn7ii50m";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  debugger-ruby_core_source = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd";
+      type = "gem";
+    };
+    version = "1.3.8";
+  };
+  deckar01-task_list = {
+    dependencies = ["html-pipeline"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6qsk712ic6vx9ydmix2ys95zwpkvdx3a9xxi8bdqlpgh1ipm9j";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  declarative = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
+      type = "gem";
+    };
+    version = "0.0.10";
+  };
+  declarative-option = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  default_value_for = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "014482mxjrc227fxv6vff6ccjr9dr0ydz52flxslsa7biq542k73";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
+  descendants_tracker = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  device_detector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  devise = {
+    dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xmxfhym0yxwb0zwmmzhdiykbpyqqm3id02g7rf3vcgbc1lqvdnj";
+      type = "gem";
+    };
+    version = "4.4.3";
+  };
+  devise-two-factor = {
+    dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  diff-lcs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      type = "gem";
+    };
+    version = "1.3";
+  };
+  diffy = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  docile = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  domain_name = {
+    dependencies = ["unf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
+      type = "gem";
+    };
+    version = "0.5.20180417";
+  };
+  doorkeeper = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "022r03i830b2lvmr0xzlj6ivlvc1zr64hy4a4bsy3flv94da77rz";
+      type = "gem";
+    };
+    version = "4.3.2";
+  };
+  doorkeeper-openid_connect = {
+    dependencies = ["doorkeeper" "json-jwt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wgrz0xcply5vl6d1m62blqwcbn4v0b27bswyws2y9wbyglz6f95";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  ed25519 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  email_reply_trimmer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz";
+      type = "gem";
+    };
+    version = "0.1.6";
+  };
+  email_spec = {
+    dependencies = ["htmlentities" "launchy" "mail"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  encryptor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  equalizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
+  erubis = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  escape_utils = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "088r5c2mz2vy2jbbx1xjbi8msnzg631ggli29nhik2spbcp1z6vh";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  et-orbi = {
+    dependencies = ["tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1apn9gzgbgs7z6p6l3rv66vrfwyfh68p2rxkybh10vx82fp6g0wi";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  eventmachine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  excon = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
+      type = "gem";
+    };
+    version = "0.62.0";
+  };
+  execjs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  expression_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  factory_bot = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
+  factory_bot_rails = {
+    dependencies = ["factory_bot" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  faraday_middleware = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  faraday_middleware-multi_json = {
+    dependencies = ["faraday_middleware" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q";
+      type = "gem";
+    };
+    version = "0.0.6";
+  };
+  fast_blank = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  fast_gettext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  ffaker = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rlfvf2iakphs3krxy1hiywr2jzmrhvhig8n8fw6rcivpz9v52ry";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  ffi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+      type = "gem";
+    };
+    version = "1.9.25";
+  };
+  flipper = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdj9y3k6padiicfraxw9ibx9fm8yi2ihh608736lq5nnbf3k6gw";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flipper-active_record = {
+    dependencies = ["activerecord" "flipper"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rgm4h5h6xcbf17z47sw8ancaxva8x4hwlxmyqpm0vzj1pnc47c1";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flipper-active_support_cache_store = {
+    dependencies = ["activesupport" "flipper"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zpikmfhadb7l1ny6xbhk5d4840im6yq0wvfsnlw718spxi4ccgk";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flowdock = {
+    dependencies = ["httparty" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  fog-aliyun = {
+    dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x66xyrw4ahyr6f9masiqmz5q6h8scv46y59crnfp8dj7r52hw8m";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  fog-aws = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00skbbgvhqzq6gpgzmw0957n0wf1y3vjgrdyq3sib0ghpyfgmig3";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  fog-core = {
+    dependencies = ["builder" "excon" "formatador"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02449kh2x3zj9xxszm02vy8zpbsrykvjrg5gj3kqcy2yizy2bhp3";
+      type = "gem";
+    };
+    version = "1.45.0";
+  };
+  fog-google = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0azs1i061ig0x1cljdy68hjskzj8d25xkq8nqf3z7qya5lmfn1z2";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  fog-json = {
+    dependencies = ["fog-core" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  fog-local = {
+    dependencies = ["fog-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q1hyga02l9civ0b9gvfdmscvwv2jr4dq87q2g3qxh2974x213mn";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  fog-openstack = {
+    dependencies = ["fog-core" "fog-json" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ii0q22bdv170f7b007k9jlph40rn7fnzd84vaxhf4zhjhaijmys";
+      type = "gem";
+    };
+    version = "0.1.21";
+  };
+  fog-rackspace = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  fog-xml = {
+    dependencies = ["fog-core" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  font-awesome-rails = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qc07vj7qyllrj7lr7wl89l5ir0gj104rc7sds2jynzmrqsamnlw";
+      type = "gem";
+    };
+    version = "4.7.0.1";
+  };
+  foreman = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06mq39lpmc17bxzlwhad9d8i0lcnbb08xr18smh2x79mm631wsw0";
+      type = "gem";
+    };
+    version = "0.84.0";
+  };
+  formatador = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+      type = "gem";
+    };
+    version = "0.2.5";
+  };
+  fuubar = {
+    dependencies = ["rspec-core" "ruby-progressbar"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  gemojione = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  get_process_mem = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "025f7v6bpbgsa2nr0hzv2riggj8qmzbwcyxfgjidpmwh5grh7j29";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  gettext = {
+    dependencies = ["locale" "text"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr";
+      type = "gem";
+    };
+    version = "3.2.9";
+  };
+  gettext_i18n_rails = {
+    dependencies = ["fast_gettext"];
+    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"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  gitaly-proto = {
+    dependencies = ["grpc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16b9sdaimhcda401z2s7apf0nz6y0lxs74xhkwlz4jzf6ms44mgg";
+      type = "gem";
+    };
+    version = "0.123.0";
+  };
+  github-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  gitlab-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v6w3z7smmkqnhphb4ghgpqg61vimflqzpszybji0li99f2k1jb6";
+      type = "gem";
+    };
+    version = "1.6.4";
+  };
+  gitlab-sidekiq-fetcher = {
+    dependencies = ["sidekiq"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dvrp4iapwfaakc3qgf7mw05blxzfywpjfr7bhswwflih0pm67l7";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  gitlab-styles = {
+    dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-rspec"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ywizn3191mjl7ibxlfajaxm5vkywwl4i9q2xh6miq37nk2q98dx";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  gitlab_omniauth-ldap = {
+    dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cpjadx852vw1gv5cm1qiqq6mclglzqajw7q572zncw4q3ji2fkv";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  gon = {
+    dependencies = ["actionpack" "multi_json" "request_store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806";
+      type = "gem";
+    };
+    version = "6.2.0";
+  };
+  google-api-client = {
+    dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05h2lca9b334ayabgs3h0mzc2wg3csvkqv1lv3iirpgf90ypbk1k";
+      type = "gem";
+    };
+    version = "0.23.4";
+  };
+  google-protobuf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf";
+      type = "gem";
+    };
+    version = "3.6.1";
+  };
+  googleapis-common-protos-types = {
+    dependencies = ["google-protobuf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  googleauth = {
+    dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1747p1dhpvz76i98xnjrvaj785y1232svm0nc8g9by6pz835gp2l";
+      type = "gem";
+    };
+    version = "0.6.6";
+  };
+  gpgme = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fclgx3pg3sihk9xn3amcf8db0q749dsqkycayn1c8x134zml3gb";
+      type = "gem";
+    };
+    version = "2.0.13";
+  };
+  grape = {
+    dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04bam0iq9sad1df361317zz4knwci905yig502khl8gm1lp1168c";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  grape-entity = {
+    dependencies = ["activesupport" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  grape-path-helpers = {
+    dependencies = ["activesupport" "grape" "rake"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13h5575xfc144wsr48sp3qngpwvh4ikz4r3m55j8jmdr6sa16rbw";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  grape_logging = {
+    dependencies = ["grape"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lg2vhk0dlnyqs2rz8wilfm039q5mbsp5nvf51asir48a1rf9yza";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  graphiql-rails = {
+    dependencies = ["railties" "sprockets-rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8";
+      type = "gem";
+    };
+    version = "1.4.10";
+  };
+  graphql = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10bnl8yjyg5x6h787cfkpd5gphl5z5jblj8fc9lbmgk27n2knssl";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  grpc = {
+    dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  haml = {
+    dependencies = ["temple" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  haml_lint = {
+    dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04illnjl9hsg7wqf8x5s108m5is9aj52g80c6nrgsksyp4vh9ynn";
+      type = "gem";
+    };
+    version = "0.26.0";
+  };
+  hamlit = {
+    dependencies = ["temple" "thor" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i";
+      type = "gem";
+    };
+    version = "2.8.8";
+  };
+  hangouts-chat = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  hashdiff = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n6hj7k7b9hazac0j48ypbak2nqi5wy4nh5cjra6xl3a92r8db0a";
+      type = "gem";
+    };
+    version = "0.3.4";
+  };
+  hashie = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb";
+      type = "gem";
+    };
+    version = "3.5.7";
+  };
+  hashie-forbidden_attributes = {
+    dependencies = ["hashie"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  health_check = {
+    dependencies = ["rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mfa180nyzz1j0abfihm5nm3lmzq99362ibcphky6rh5vwhckvm8";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  hipchat = {
+    dependencies = ["httparty" "mimemagic"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  html-pipeline = {
+    dependencies = ["activesupport" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  html2text = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  htmlentities = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+      type = "gem";
+    };
+    version = "4.3.4";
+  };
+  http = {
+    dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kcd9qp8vm1rkyp7gfh8j0dbl3zpi97vz2vbhpbcsdsa7l21a59r";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  http-cookie = {
+    dependencies = ["domain_name"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  http-form_data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j8dwwbfpf8kc0lcsqcgy29lflszd1x4d7kc0f7227892m7r6y0m";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  "http_parser.rb" = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  httparty = {
+    dependencies = ["json" "multi_xml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c9gvg6dqw2h3qyaxhrq1pzm6r69zfcmfh038wyhisqsd39g9hr2";
+      type = "gem";
+    };
+    version = "0.13.7";
+  };
+  httpclient = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+      type = "gem";
+    };
+    version = "0.9.5";
+  };
+  icalendar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  ice_nine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  influxdb = {
+    dependencies = ["cause" "json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  ipaddress = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
+      type = "gem";
+    };
+    version = "0.8.3";
+  };
+  jira-ruby = {
+    dependencies = ["activesupport" "multipart-post" "oauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14019mliqwcppj6qp2wdhh5gbvs2yh2idibag13m9a18ag965bhw";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  jquery-atwho-rails = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g8239cddyi48i5n0hq2acg9k7n7jilhby9g36zd19mwqyia16w9";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  js_regex = {
+    dependencies = ["regexp_parser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lnyd4c7lybhra3l6dai7j83lh3xapqjb340pp0h4bnqjgx52bkf";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+      type = "gem";
+    };
+    version = "1.8.6";
+  };
+  json-jwt = {
+    dependencies = ["activesupport" "aes_key_wrap" "bindata"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
+      type = "gem";
+    };
+    version = "1.9.4";
+  };
+  json-schema = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  jwt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "124zz1142bi2if7hl5pcrcamwchv4icyr5kaal9m2q6wqbdl6aw4";
+      type = "gem";
+    };
+    version = "1.5.6";
+  };
+  kaminari = {
+    dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-actionview = {
+    dependencies = ["actionview" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-activerecord = {
+    dependencies = ["activerecord" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-core = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kgio = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y6wl3vpp82rdv5g340zjgkmy6fny61wib7xylyg0d09k5f26118";
+      type = "gem";
+    };
+    version = "2.10.0";
+  };
+  knapsack = {
+    dependencies = ["rake"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q2y7mb8ii1ncdrlp46l9v2x909gdnjaid2dg5gcicj39hna36di";
+      type = "gem";
+    };
+    version = "1.16.0";
+  };
+  kubeclient = {
+    dependencies = ["http" "recursive-open-struct" "rest-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1czzdp9lfsrah2jkaddkqzmphyvnk096zm1ra6jddh626d8d53r4";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  launchy = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+      type = "gem";
+    };
+    version = "2.4.3";
+  };
+  letter_opener = {
+    dependencies = ["launchy"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pcrdbxvp2x5six8fqn8gf09bn9rd3jga76ds205yph5m8fsda21";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  letter_opener_web = {
+    dependencies = ["actionmailer" "letter_opener" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "050x5cwqbxj2cydd2pzy9vfhmpgn1w6lfbwjaax1m1vpkn3xg9bv";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  license_finder = {
+    dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01rhqm5m3m22gq6q9f1x9fh3x3wrf9khnnsycblj0xg5frdjv77v";
+      type = "gem";
+    };
+    version = "5.4.0";
+  };
+  licensee = {
+    dependencies = ["rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      type = "gem";
+    };
+    version = "8.9.2";
+  };
+  locale = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  lograge = {
+    dependencies = ["actionpack" "activesupport" "railties" "request_store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yjs6wbcj3n06d3xjqpy3qbpx0bfa12h3x2rbpc2k33ldjlkx6zy";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  mail = {
+    dependencies = ["mini_mime"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10dyifazss9mgdzdv08p47p344wmphp5pkh5i73s7c04ra8y6ahz";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  mail_room = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16b8yjd1if665mwaindwys06nkkcs0jw3dcsqvn6qbp6alfigqaa";
+      type = "gem";
+    };
+    version = "0.9.1";
+  };
+  memoist = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+      type = "gem";
+    };
+    version = "0.16.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 = "0xqj21j3vfq4ldia6i2akhn2qd84m0iqcnsl49kfpq3xk6x0dzgn";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m";
+      type = "gem";
+    };
+    version = "3.1";
+  };
+  mime-types-data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm";
+      type = "gem";
+    };
+    version = "3.2016.0521";
+  };
+  mimemagic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "101lq4bnjs7ywdcicpw3vbz9amg5gbb4va1626fybd2hawgdx8d9";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  mini_magick = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1djxfs9rxw6q6vr6wb4ndxhp1vj1zbwb55s1kf6mz9bzgmswqg0n";
+      type = "gem";
+    };
+    version = "4.8.0";
+  };
+  mini_mime = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8";
+      type = "gem";
+    };
+    version = "5.7.0";
+  };
+  msgpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  multi_json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  multi_xml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  multipart-post = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  mustermann = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  mustermann-grape = {
+    dependencies = ["mustermann"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10xdggddjl8nraq7pbli31lwgrzxzz8gp558i811lsv71fqbmhzr";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  mysql2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
+      type = "gem";
+    };
+    version = "0.4.10";
+  };
+  net-ldap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fh4l8zfsrvghanpnjxk944k7yl093qpw4759xs6f1v9kb73ihfq";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  net-ssh = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hj2i8rk5wb6235r5n19in1hkrp1fbz2bf40xmagavb5ahv7205w";
+      type = "gem";
+    };
+    version = "5.0.1";
+  };
+  netrc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h9nml9h3m0mpvmh8jfnqvblnz5n5y3mmhgfc38avfmfzdrq9bgc";
+      type = "gem";
+    };
+    version = "1.8.4";
+  };
+  nokogumbo = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  numerizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vrk9jbv4p4dcz0wzr72wrf5kajblhc5l9qf7adbcwi4qvz9xv0h";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  oauth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+      type = "gem";
+    };
+    version = "0.5.4";
+  };
+  oauth2 = {
+    dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "094hmmfms8vpm6nwglpl7jmlv85nlfzl0kik4fizgx1rg70a6mr5";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  octokit = {
+    dependencies = ["sawyer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ssn5iyax07a22mvmj0y45bfy8ali129bl1qmasp6bcg03bvk298";
+      type = "gem";
+    };
+    version = "4.9.0";
+  };
+  omniauth = {
+    dependencies = ["hashie" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1msqr4qq7mfdvl3rg89529isrv595hvjpj2gi0say4b8nwqfggmg";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  omniauth-auth0 = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  omniauth-authentiq = {
+    dependencies = ["jwt" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  omniauth-azure-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ck5616fjik0dw89xvak1mi8ijcv10lsh6n9h4107l5dys2g3jfx";
+      type = "gem";
+    };
+    version = "0.0.9";
+  };
+  omniauth-cas3 = {
+    dependencies = ["addressable" "nokogiri" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx";
+      type = "gem";
+    };
+    version = "1.1.4";
+  };
+  omniauth-facebook = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  omniauth-github = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yg7k4p95ybcsii17spqarl8rpfzkq0kb19ab6wl4lc922zgfbqc";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  omniauth-gitlab = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  omniauth-google-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rvdac08vgrxcblq8w2hqj080v2cwv3cigxdzs11gz4d538zjnym";
+      type = "gem";
+    };
+    version = "0.5.3";
+  };
+  omniauth-kerberos = {
+    dependencies = ["omniauth-multipassword" "timfel-krb5-auth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  omniauth-multipassword = {
+    dependencies = ["omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  omniauth-oauth = {
+    dependencies = ["oauth" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  omniauth-oauth2 = {
+    dependencies = ["oauth2" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kscjf1y0lnggsl4z3w5bwllqshqjlsl5kmcya5haydajdnzvdjr";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  omniauth-oauth2-generic = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  omniauth-saml = {
+    dependencies = ["omniauth" "ruby-saml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  omniauth-shibboleth = {
+    dependencies = ["omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  omniauth-twitter = {
+    dependencies = ["omniauth-oauth" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  omniauth_crowd = {
+    dependencies = ["activesupport" "nokogiri" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  org-ruby = {
+    dependencies = ["rubypants"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk";
+      type = "gem";
+    };
+    version = "0.9.12";
+  };
+  orm_adapter = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  os = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  parallel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
+      type = "gem";
+    };
+    version = "1.12.1";
+  };
+  parser = {
+    dependencies = ["ast"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f";
+      type = "gem";
+    };
+    version = "2.5.3.0";
+  };
+  parslet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88";
+      type = "gem";
+    };
+    version = "1.8.2";
+  };
+  peek = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1998vcsli215d6qrn9821gr2qip60xki2p7n2dpn8i1n68hyshcn";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  peek-gc = {
+    dependencies = ["peek"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "094h3mr9q8wzbqsj0girpyjvj4bcxax8m438igp42n75xv0bhwi9";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  peek-mysql2 = {
+    dependencies = ["atomic" "mysql2" "peek"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fzx3dwj7k6sc87jwhjk8vzp8dskv49j141xx15vvkg603j8k";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  peek-pg = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "peek" "pg"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17yk8xrh7yh57wg6vi3s8km9qd9f910n94r511mdyqd7aizlfb7c";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  peek-rblineprof = {
+    dependencies = ["peek" "rblineprof"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ywk1gvsnhrkhqq2ibwsg7099kg5m2vs4nmzy0wf65kb0ywl0m9c";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  peek-redis = {
+    dependencies = ["atomic" "peek" "redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v91cni591d9wdrmvgam20gr3504x84mh1l95da4rz5a9436jm33";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  pg = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32";
+      type = "gem";
+    };
+    version = "0.18.4";
+  };
+  po_to_json = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  powerpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  premailer = {
+    dependencies = ["addressable" "css_parser" "htmlentities"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10w6f7r6snpkcnv3byxma9b08lyqzcfxkm083scb2dr2ly4xkzyf";
+      type = "gem";
+    };
+    version = "1.10.4";
+  };
+  premailer-rails = {
+    dependencies = ["actionmailer" "premailer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05czxmx6hnykg6g23hy2ww2bf86a69njbi02sv7lrds4w776jhim";
+      type = "gem";
+    };
+    version = "1.9.7";
+  };
+  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";
+  };
+  prometheus-client-mmap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14ww8c2qy43jw3fzmq54hsljmqmlx9a7zg9sv6ddw48qy118ls10";
+      type = "gem";
+    };
+    version = "0.9.4";
+  };
+  pry = {
+    dependencies = ["coderay" "method_source"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g";
+      type = "gem";
+    };
+    version = "0.11.3";
+  };
+  pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g820bqmlq8vvh78895zgrzgmj3g6n63px7cba11s02lpz56630n";
+      type = "gem";
+    };
+    version = "3.4.3";
+  };
+  pry-rails = {
+    dependencies = ["pry"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k2d43bwmqbswfra4fkadjjbszwb11pr7qdkma91qrcrk62wqxvy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  puma = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  puma_worker_killer = {
+    dependencies = ["get_process_mem" "puma"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m08qi8mxpp20zqqjj9yzcrx0sn29n5fn5avlf1lnl0n7qa9c03i";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  pyu-ruby-sasl = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn";
+      type = "gem";
+    };
+    version = "0.0.3.3";
+  };
+  rack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0in0amn0kwvzmi8h5zg6ijrx5wpsf8h96zrfmnk1kwh2ql4sxs2q";
+      type = "gem";
+    };
+    version = "1.6.10";
+  };
+  rack-accept = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936";
+      type = "gem";
+    };
+    version = "0.4.5";
+  };
+  rack-attack = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1czx68p70x98y21dkdndsb64lrxf9qrv09wl1dbcxrypcjnpsdl1";
+      type = "gem";
+    };
+    version = "4.4.1";
+  };
+  rack-cors = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  rack-oauth2 = {
+    dependencies = ["activesupport" "attr_required" "httpclient" "multi_json" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j7fh3fyajpfwg47gyfd8spavn7lmd6dcm468w7lhnhcviy5vmyf";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z5598qipilmnf45428jnxi63ykrgvnyywa5ckpr52zv2vpd8jdp";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  rack-proxy = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
+      type = "gem";
+    };
+    version = "0.6.3";
+  };
+  rails = {
+    dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vbdlkmlh470g7msqhmcmhxhi4finv3cjg595x9viafvphnf40l";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  rails-deprecated_sanitizer = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wssfqpn00byhvp2372p99mphkcj8qx6pf6646avwr9ifvq0q1x6";
+      type = "gem";
+    };
+    version = "1.0.9";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  rails-i18n = {
+    dependencies = ["i18n" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17a02f2671pw5r2hl2n3isiz6w9wy2dxq8g52srciyl1xcmvsw01";
+      type = "gem";
+    };
+    version = "4.0.9";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "rake" "thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0snymfqj2cql0gp51i6a44avcirdridc15yggnxjj9raa9f3229p";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  rainbow = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  raindrops = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0854mial50yhvdv0d2r41xxl47v7z2f4nx49js42hygv7rf1mscz";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
+  rake = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
+      type = "gem";
+    };
+    version = "12.3.1";
+  };
+  rb-fsevent = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+      type = "gem";
+    };
+    version = "0.9.10";
+  };
+  rblineprof = {
+    dependencies = ["debugger-ruby_core_source"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  rbtrace = {
+    dependencies = ["ffi" "msgpack" "trollop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zj9xwazjp0g0fmhvc918irzcp2wyciwqzr0y199vc7r5qdr4sqv";
+      type = "gem";
+    };
+    version = "0.4.10";
+  };
+  rdoc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7";
+      type = "gem";
+    };
+    version = "6.0.4";
+  };
+  re2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  recaptcha = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pppfgica4629i8gbji6pnh681wjf03m6m1ix2ficpnqg2z7gl9n";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  recursive-open-struct = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  redcarpet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  RedCloth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy";
+      type = "gem";
+    };
+    version = "4.3.2";
+  };
+  redis = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv";
+      type = "gem";
+    };
+    version = "3.3.5";
+  };
+  redis-actionpack = {
+    dependencies = ["actionpack" "redis-rack" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63";
+      type = "gem";
+    };
+    version = "5.0.2";
+  };
+  redis-activesupport = {
+    dependencies = ["activesupport" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  redis-namespace = {
+    dependencies = ["redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  redis-rack = {
+    dependencies = ["rack" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  redis-rails = {
+    dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
+      type = "gem";
+    };
+    version = "5.0.2";
+  };
+  redis-store = {
+    dependencies = ["redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00yh8rhv91vxjlqs4ylic99m9npjxmgib2vjj8hgzk1174y6vcmq";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  regexp_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1375q2v74cccjh290d9x28fdircvy18v6h0ww7a8i66qhh1jf2pb";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  representable = {
+    dependencies = ["declarative" "declarative-option" "uber"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
+      type = "gem";
+    };
+    version = "3.0.4";
+  };
+  request_store = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  responders = {
+    dependencies = ["actionpack" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  rest-client = {
+    dependencies = ["http-cookie" "mime-types" "netrc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  retriable = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  rinku = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  rotp = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  rqrcode = {
+    dependencies = ["chunky_png"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  rqrcode-rails3 = {
+    dependencies = ["rqrcode"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg";
+      type = "gem";
+    };
+    version = "0.1.7";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-parameterized = {
+    dependencies = ["binding_of_caller" "parser" "proc_to_ast" "rspec" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0arynbr6cfjhccwc8gy2xf87nybdnncsnmfwknnh8s7d4mj730p0";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  rspec-rails = {
+    dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cdcnbv5dppwy3b4jdp5a0wd9m07a8wlqwb9yazn8i7k1k2mwgvx";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  rspec-retry = {
+    dependencies = ["rspec-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0izvxab7jvk25kaprk0i72asjyh1ip3cm70bgxlm8lpid35qjar6";
+      type = "gem";
+    };
+    version = "0.4.5";
+  };
+  rspec-set = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  rspec-support = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec_junit_formatter = {
+    dependencies = ["builder" "rspec-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hphl8iggqh1mpbbv0avf8735x6jgry5wmkqyzgv1zwnimvja1ai";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  rspec_profiling = {
+    dependencies = ["activerecord" "pg" "rails" "sqlite3"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g7q7gav26bpiprx4dhlvdh4zdrhwiky9jbmsp14gyfiabqdz4sz";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  rubocop = {
+    dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is";
+      type = "gem";
+    };
+    version = "0.54.0";
+  };
+  rubocop-gitlab-security = {
+    dependencies = ["rubocop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  rubocop-rspec = {
+    dependencies = ["rubocop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vk51h9swvgshan8vp8yjz03qv9vn5vs29i9iddhjwcwgzsganla";
+      type = "gem";
+    };
+    version = "1.22.2";
+  };
+  ruby-enum = {
+    dependencies = ["i18n"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
+  ruby-fogbugz = {
+    dependencies = ["crack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  ruby-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02z4lh1iv1d8751a1l6r4hfc9mp61gf80g4qc4l6gbync3j3hf2c";
+      type = "gem";
+    };
+    version = "0.17.0";
+  };
+  ruby-progressbar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  ruby-saml = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3";
+      type = "gem";
+    };
+    version = "1.7.2";
+  };
+  ruby_parser = {
+    dependencies = ["sexp_processor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18apbsmmivgc1schfxmkp429aijrwy8psm30dwx5cpmpjf48ir3n";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
+  rubyntlm = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+      type = "gem";
+    };
+    version = "0.6.2";
+  };
+  rubypants = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  rubyzip = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  rufus-scheduler = {
+    dependencies = ["et-orbi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0343xrx4gbld5w2ydh9d2a7pw7lllvrsa691bgjq7p9g44ry1vq8";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  rugged = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6";
+      type = "gem";
+    };
+    version = "0.27.5";
+  };
+  safe_yaml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sanitize = {
+    dependencies = ["crass" "nokogiri" "nokogumbo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv";
+      type = "gem";
+    };
+    version = "4.6.6";
+  };
+  sass = {
+    dependencies = ["sass-listen"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v";
+      type = "gem";
+    };
+    version = "3.5.5";
+  };
+  sass-listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  sass-rails = {
+    dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iji20hb8crncz14piss1b29bfb6l89sz3ai5fny3iw39vnxkdcb";
+      type = "gem";
+    };
+    version = "5.0.6";
+  };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  scss_lint = {
+    dependencies = ["rake" "sass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g";
+      type = "gem";
+    };
+    version = "0.56.0";
+  };
+  seed-fu = {
+    dependencies = ["activerecord" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi";
+      type = "gem";
+    };
+    version = "2.3.7";
+  };
+  select2-rails = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ni2k74n73y3gv56gs37gkjlh912szjf6k9j483wz41m3xvlz7fj";
+      type = "gem";
+    };
+    version = "3.5.9.3";
+  };
+  selenium-webdriver = {
+    dependencies = ["childprocess" "rubyzip"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07bl3wjkf254r3ljfl4qdazz5aw60s6nqjwrbbgq754j9b7226kz";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  sentry-raven = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yf2gysjw6sy1xcp2jw35z9cp83pwx33lq0qyvaqbs969j4993r4";
+      type = "gem";
+    };
+    version = "2.7.2";
+  };
+  settingslogic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar";
+      type = "gem";
+    };
+    version = "2.0.9";
+  };
+  sexp_processor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c6kp2qxq550hz7gsxqi37irxn3vynkz7ibgy9hfwqymf6y1jdik";
+      type = "gem";
+    };
+    version = "4.9.0";
+  };
+  sham_rack = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i";
+      type = "gem";
+    };
+    version = "1.3.6";
+  };
+  shoulda-matchers = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zvv94pqk5b5my3w1shdz7h34xf2ldhg5k4qfdpbwi2iy0j9zw2a";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  sidekiq = {
+    dependencies = ["connection_pool" "rack-protection" "redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s57vl2hwfaga73yiscak2rs7byg1q0z44wa9si9vl92qcmbik2j";
+      type = "gem";
+    };
+    version = "5.2.1";
+  };
+  sidekiq-cron = {
+    dependencies = ["rufus-scheduler" "sidekiq"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04mq83rzvq4wbc4h0rn00sawgv039j8s2p0wnlqb4sgf55gc0dzj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  signet = {
+    dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  simple_po_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  simplecov = {
+    dependencies = ["docile" "json" "simplecov-html"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww";
+      type = "gem";
+    };
+    version = "0.14.1";
+  };
+  simplecov-html = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  slack-notifier = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  spring = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  spring-commands-rspec = {
+    dependencies = ["spring"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sprockets = {
+    dependencies = ["concurrent-ruby" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  sprockets-rails = {
+    dependencies = ["actionpack" "activesupport" "sprockets"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+      type = "gem";
+    };
+    version = "3.2.1";
+  };
+  sqlite3 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
+      type = "gem";
+    };
+    version = "1.3.13";
+  };
+  sshkey = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g02lh50jd5z4l9bp7xirnfn3n1dh9lr06dv3xh0kr3yhsny059h";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  stackprof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c88j2d6ipjw5s3hgdgfww37gysgrkicawagj33hv3knijjc9ski";
+      type = "gem";
+    };
+    version = "0.2.10";
+  };
+  state_machines = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  state_machines-activemodel = {
+    dependencies = ["activemodel" "state_machines"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0chhm5hs1y83dq8haff10m66r3yrm7jab35r9xg6adn6qd8ynv2l";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  state_machines-activerecord = {
+    dependencies = ["activerecord" "state_machines-activemodel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00h07gd4kb22ahgv61r8zca9hqxaw44fnk2sc28j00c1nmwsw6r3";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  sys-filesystem = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq";
+      type = "gem";
+    };
+    version = "1.1.6";
+  };
+  sysexits = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  temple = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  test-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3";
+      type = "gem";
+    };
+    version = "0.2.5";
+  };
+  test_after_commit = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s8pz00xq28lsa1rfczm83yqwk8wcb5dqw2imlj8gldnsdapcyc2";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  text = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  thin = {
+    dependencies = ["daemons" "eventmachine" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
+      type = "gem";
+    };
+    version = "1.7.2";
+  };
+  thor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns";
+      type = "gem";
+    };
+    version = "0.19.4";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tilt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
+      type = "gem";
+    };
+    version = "2.0.8";
+  };
+  timecop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  timfel-krb5-auth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b";
+      type = "gem";
+    };
+    version = "0.8.3";
+  };
+  toml = {
+    dependencies = ["parslet"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  toml-rb = {
+    dependencies = ["citrus"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  trollop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rzx9rkacpq58dsvbbzs4cpybls1v1h36xskkfs5q2askpdr00wq";
+      type = "gem";
+    };
+    version = "2.1.3";
+  };
+  truncato = {
+    dependencies = ["htmlentities" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x4fhfi4p7ah9sshfhbk9j145s1ailbyj0dxnvqirs9kk10x2d1b";
+      type = "gem";
+    };
+    version = "0.7.10";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  u2f = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  uber = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  uglifier = {
+    dependencies = ["execjs" "json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz";
+      type = "gem";
+    };
+    version = "2.7.2";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
+      type = "gem";
+    };
+    version = "0.0.7.5";
+  };
+  unicode-display_width = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x31fgv1acywbb50prp7y4fr677c2d9gsl6wxmfcrlxbwz7nxn5n";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  unicorn = {
+    dependencies = ["kgio" "raindrops"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rcvg9381yw3wrnpny5c01mvm35caycshvfbg96wagjhscw6l72v";
+      type = "gem";
+    };
+    version = "5.1.0";
+  };
+  unicorn-worker-killer = {
+    dependencies = ["get_process_mem" "unicorn"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
+  uniform_notifier = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  unparser = {
+    dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k2asbk9k5kzq8jidy3frqcmn58i9cvaizn8f6g5xlx1pn70bx1w";
+      type = "gem";
+    };
+    version = "0.2.7";
+  };
+  validates_hostname = {
+    dependencies = ["activerecord" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04p1l0v98j4ffvaks1ig9mygx5grpbpdgz7haq3mygva9iy8ykja";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  version_sorter = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1smi0bf8pgx23014nkpfg29qnmlpgvwmn30q0ca7qrfbha2mjwdr";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  virtus = {
+    dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  vmstat = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  warden = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  webmock = {
+    dependencies = ["addressable" "crack" "hashdiff"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  webpack-rails = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fsjxw730bh4k1dfnbjm645fgjyqrh830l1z7brqbsm6306ig1rr";
+      type = "gem";
+    };
+    version = "0.9.11";
+  };
+  wikicloth = {
+    dependencies = ["builder" "expression_parser" "rinku"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  with_env = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  xml-simple = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  xpath = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ha626m6fh50fpilb9pdnmq9xl586w7c0zyidg895c3iq13rqgyw";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile
new file mode 100644
index 000000000000..fc31db6278df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile
@@ -0,0 +1,448 @@
+# --- Special code for migrating to Rails 5.0 ---
+def rails5?
+  %w[1 true].include?(ENV["RAILS5"])
+end
+
+gem_versions = {}
+gem_versions['activerecord_sane_schema_dumper'] = rails5? ? '1.0'      : '0.2'
+gem_versions['default_value_for']               = rails5? ? '~> 3.0.5' : '~> 3.0.0'
+gem_versions['rails']                           = rails5? ? '5.0.7'    : '4.2.10'
+gem_versions['rails-i18n']                      = rails5? ? '~> 5.1'   : '~> 4.0.9'
+# --- The end of special code for migrating to Rails 5.0 ---
+
+source 'https://rubygems.org'
+
+gem 'rails', gem_versions['rails']
+gem 'rails-deprecated_sanitizer', '~> 1.0.3'
+
+# Responders respond_to and respond_with
+gem 'responders', '~> 2.0'
+
+gem 'sprockets', '~> 3.7.0'
+
+# Default values for AR models
+gem 'default_value_for', gem_versions['default_value_for']
+
+# Supported DBs
+gem 'mysql2', '~> 0.4.10', group: :mysql
+gem 'pg', '~> 0.18.2', group: :postgres
+
+gem 'rugged', '~> 0.27'
+gem 'grape-path-helpers', '~> 1.0'
+
+gem 'faraday', '~> 0.12'
+
+# Authentication libraries
+gem 'devise', '~> 4.4'
+gem 'doorkeeper', '~> 4.3'
+gem 'doorkeeper-openid_connect', '~> 1.5'
+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.3'
+gem 'omniauth-gitlab', '~> 1.0.2'
+gem 'omniauth-google-oauth2', '~> 0.5.3'
+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.2.0'
+gem 'omniauth-authentiq', '~> 0.3.3'
+gem 'rack-oauth2', '~> 1.2.1'
+gem 'jwt', '~> 1.5.6'
+
+# Kerberos authentication. EE-only
+gem 'gssapi', group: :kerberos
+
+# Spam and anti-bot protection
+gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails'
+gem 'akismet', '~> 2.0'
+
+# Two-factor authentication
+gem 'devise-two-factor', '~> 3.0.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.6'
+
+# Browser detection
+gem 'browser', '~> 2.5'
+
+# GPG
+gem 'gpgme'
+
+# 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.0.4', require: 'omniauth-ldap'
+gem 'net-ldap'
+
+# API
+gem 'grape', '~> 1.1'
+gem 'grape-entity', '~> 0.7.1'
+gem 'rack-cors', '~> 1.0.0', require: 'rack/cors'
+
+# GraphQL API
+gem 'graphql', '~> 1.8.0'
+gem 'graphiql-rails', '~> 1.4.10'
+
+# Disable strong_params so that Mash does not respond to :permitted?
+gem 'hashie-forbidden_attributes'
+
+# Pagination
+gem 'kaminari', '~> 1.0'
+
+# HAML
+gem 'hamlit', '~> 2.8.8'
+
+# Files attachments
+# Locked until https://github.com/carrierwaveuploader/carrierwave/pull/2332/files is merged.
+# config/initializers/carrierwave_patch.rb can be removed once that change is released.
+gem 'carrierwave', '= 1.2.3'
+gem 'mini_magick'
+
+# for backups
+gem 'fog-aws', '~> 2.0.1'
+gem 'fog-core', '~> 1.44'
+gem 'fog-google', '~> 1.7.1'
+gem 'fog-local', '~> 0.3'
+gem 'fog-openstack', '~> 0.1'
+gem 'fog-rackspace', '~> 0.1.1'
+gem 'fog-aliyun', '~> 0.2.0'
+
+# for Google storage
+gem 'google-api-client', '~> 0.23'
+
+# for aws storage
+gem 'unf', '~> 0.1.4'
+
+# Seed data
+gem 'seed-fu', '~> 2.3.7'
+
+# Search
+gem 'elasticsearch-model', '~> 0.1.9'
+gem 'elasticsearch-rails', '~> 0.1.9'
+gem 'elasticsearch-api',   '5.0.3'
+gem 'aws-sdk'
+gem 'faraday_middleware-aws-signers-v4'
+
+# Markdown and HTML processing
+gem 'html-pipeline', '~> 2.8'
+gem 'deckar01-task_list', '2.0.0'
+gem 'gitlab-markup', '~> 1.6.4'
+gem 'github-markup', '~> 1.7.0', require: 'github/markup'
+gem 'redcarpet', '~> 3.4'
+gem 'commonmarker', '~> 0.17'
+gem 'RedCloth', '~> 4.3.2'
+gem 'rdoc', '~> 6.0'
+gem 'org-ruby', '~> 0.9.12'
+gem 'creole', '~> 0.5.0'
+gem 'wikicloth', '0.8.1'
+gem 'asciidoctor', '~> 1.5.6'
+gem 'asciidoctor-plantuml', '0.0.8'
+gem 'rouge', '~> 3.1'
+gem 'truncato', '~> 0.7.9'
+gem 'bootstrap_form', '~> 2.7.0'
+gem 'nokogiri', '~> 1.8.2'
+gem 'escape_utils', '~> 1.1'
+
+# Calendar rendering
+gem 'icalendar'
+
+# Diffs
+gem 'diffy', '~> 3.1.0'
+
+# Application server
+group :unicorn do
+  gem 'unicorn', '~> 5.1.0'
+  gem 'unicorn-worker-killer', '~> 0.4.4'
+end
+
+group :puma do
+  gem 'puma', '~> 3.12', require: false
+  gem 'puma_worker_killer', require: false
+end
+
+# State machine
+gem 'state_machines-activerecord', '~> 0.5.1'
+
+# Issue tags
+gem 'acts-as-taggable-on', '~> 5.0'
+
+# Background jobs
+gem 'sidekiq', '~> 5.2.1'
+gem 'sidekiq-cron', '~> 0.6.0'
+gem 'redis-namespace', '~> 1.6.0'
+
+# Cron Parser
+gem 'rufus-scheduler', '~> 3.4'
+
+# HTTP requests
+gem 'httparty', '~> 0.13.3'
+
+# 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.1.1'
+
+# Misc
+
+gem 'version_sorter', '~> 2.1.0'
+
+# Export Ruby Regex to Javascript
+gem 'js_regex', '~> 2.2.1'
+
+# User agent parsing
+gem 'device_detector'
+
+# Cache
+gem 'redis-rails', '~> 5.0.2'
+
+# Redis
+gem 'redis', '~> 3.2'
+gem 'connection_pool', '~> 2.0'
+
+# HipChat integration
+gem 'hipchat', '~> 1.5.0'
+
+# JIRA integration
+gem 'jira-ruby', '~> 1.4'
+
+# Flowdock integration
+gem 'flowdock', '~> 0.7'
+
+# Slack integration
+gem 'slack-notifier', '~> 1.5.1'
+
+# Hangouts Chat integration
+gem 'hangouts-chat', '~> 0.0.5'
+
+# Asana integration
+gem 'asana', '~> 0.6.0'
+
+# FogBugz integration
+gem 'ruby-fogbugz', '~> 0.2.1'
+
+# Kubernetes integration
+gem 'kubeclient', '~> 3.1.0'
+
+# Sanitize user input
+gem 'sanitize', '~> 4.6'
+gem 'babosa', '~> 1.0.2'
+
+# Sanitizes SVG input
+gem 'loofah', '~> 2.2'
+
+# Working with license
+gem 'licensee', '~> 8.9'
+
+# Protect against bruteforcing
+gem 'rack-attack', '~> 4.4.1'
+
+# Ace editor
+gem 'ace-rails-ap', '~> 4.1.0'
+
+# Detect and convert string character encoding
+gem 'charlock_holmes', '~> 0.7.5'
+
+# Faster blank
+gem 'fast_blank'
+
+# Parse time & duration
+gem 'chronic', '~> 0.10.2'
+gem 'chronic_duration', '~> 0.10.6'
+
+gem 'webpack-rails', '~> 0.9.10'
+gem 'rack-proxy', '~> 0.6.0'
+
+gem 'sass-rails', '~> 5.0.6'
+gem 'uglifier', '~> 2.7.2'
+
+gem 'addressable', '~> 2.5.2'
+gem 'font-awesome-rails', '~> 4.7'
+gem 'gemojione', '~> 3.3'
+gem 'gon', '~> 6.2'
+gem 'jquery-atwho-rails', '~> 1.3.2'
+gem 'request_store', '~> 1.3'
+gem 'select2-rails', '~> 3.5.9'
+gem 'virtus', '~> 1.0.1'
+gem 'base32', '~> 0.3.0'
+
+gem "gitlab-license", "~> 1.0"
+
+# Sentry integration
+gem 'sentry-raven', '~> 2.7'
+
+gem 'premailer-rails', '~> 1.9.7'
+
+# I18n
+gem 'ruby_parser', '~> 3.8', require: false
+gem 'rails-i18n', gem_versions['rails-i18n']
+gem 'gettext_i18n_rails', '~> 1.8.0'
+gem 'gettext_i18n_rails_js', '~> 1.3'
+gem 'gettext', '~> 3.2.2', require: false, group: :development
+
+gem 'batch-loader', '~> 1.2.1'
+
+# Perf bar
+gem 'peek', '~> 1.0.1'
+gem 'peek-gc', '~> 0.0.2'
+gem 'peek-mysql2', '~> 1.1.0', group: :mysql
+gem 'peek-pg', '~> 1.3.0', group: :postgres
+gem 'peek-rblineprof', '~> 0.2.0'
+gem 'peek-redis', '~> 1.2.0'
+gem 'gitlab-sidekiq-fetcher', require: 'sidekiq-reliable-fetch'
+
+# Metrics
+group :metrics do
+  gem 'method_source', '~> 0.8', require: false
+  gem 'influxdb', '~> 0.2', require: false
+
+  # Prometheus
+  gem 'prometheus-client-mmap', '~> 0.9.4'
+  gem 'raindrops', '~> 0.18'
+end
+
+group :development do
+  gem 'foreman', '~> 0.84.0'
+  gem 'brakeman', '~> 4.2', require: false
+
+  gem 'letter_opener_web', '~> 1.3.0'
+  gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
+
+  # Better errors handler
+  gem 'better_errors', '~> 2.1.0'
+  gem 'binding_of_caller', '~> 0.7.2'
+
+  # thin instead webrick
+  gem 'thin', '~> 1.7.0'
+end
+
+group :development, :test do
+  gem 'bootsnap', '~> 1.3'
+  gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
+  gem 'pry-byebug', '~> 3.4.1', platform: :mri
+  gem 'pry-rails', '~> 0.3.4'
+
+  gem 'awesome_print', require: false
+  gem 'fuubar', '~> 2.2.0'
+
+  gem 'database_cleaner', '~> 1.5.0'
+  gem 'factory_bot_rails', '~> 4.8.2'
+  gem 'rspec-rails', '~> 3.7.0'
+  gem 'rspec-retry', '~> 0.4.5'
+  gem 'rspec_profiling', '~> 0.0.5'
+  gem 'rspec-set', '~> 0.1.3'
+  gem 'rspec-parameterized', require: false
+
+  # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
+  gem 'minitest', '~> 5.7.0'
+
+  # Generate Fake data
+  gem 'ffaker', '~> 2.4'
+
+  gem 'capybara', '~> 2.15'
+  gem 'capybara-screenshot', '~> 1.0.0'
+  gem 'selenium-webdriver', '~> 3.12'
+
+  gem 'spring', '~> 2.0.0'
+  gem 'spring-commands-rspec', '~> 1.0.4'
+
+  gem 'gitlab-styles', '~> 2.4', require: false
+  # Pin these dependencies, otherwise a new rule could break the CI pipelines
+  gem 'rubocop', '~> 0.54.0'
+  gem 'rubocop-rspec', '~> 1.22.1'
+
+  gem 'scss_lint', '~> 0.56.0', require: false
+  gem 'haml_lint', '~> 0.26.0', require: false
+  gem 'simplecov', '~> 0.14.0', require: false
+  gem 'bundler-audit', '~> 0.5.0', require: false
+
+  gem 'benchmark-ips', '~> 2.3.0', require: false
+
+  gem 'license_finder', '~> 5.4', require: false
+  gem 'knapsack', '~> 1.16'
+
+  gem 'activerecord_sane_schema_dumper', gem_versions['activerecord_sane_schema_dumper']
+
+  gem 'stackprof', '~> 0.2.10', require: false
+
+  gem 'simple_po_parser', '~> 1.1.2', require: false
+
+  gem 'timecop', '~> 0.8.0'
+end
+
+group :test do
+  gem 'shoulda-matchers', '~> 3.1.2', require: false
+  gem 'email_spec', '~> 2.2.0'
+  gem 'json-schema', '~> 2.8.0'
+  gem 'webmock', '~> 2.3.2'
+  gem 'rails-controller-testing' if rails5? # Rails5 only gem.
+  gem 'test_after_commit', '~> 1.1' unless rails5? # Remove this gem when migrated to rails 5.0. It's been integrated to rails 5.0.
+  gem 'sham_rack', '~> 1.3.6'
+  gem 'concurrent-ruby', '~> 1.0.5'
+  gem 'test-prof', '~> 0.2.5'
+  gem 'rspec_junit_formatter'
+end
+
+gem 'octokit', '~> 4.9'
+
+gem 'mail_room', '~> 0.9.1'
+
+gem 'email_reply_trimmer', '~> 0.1'
+gem 'html2text'
+
+gem 'ruby-prof', '~> 0.17.0'
+gem 'rbtrace', '~> 0.4', require: false
+
+# OAuth
+gem 'oauth2', '~> 1.4'
+
+# Health check
+gem 'health_check', '~> 2.6.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', '~> 5.0'
+gem 'sshkey', '~> 1.9.0'
+
+# Required for ED25519 SSH host key support
+group :ed25519 do
+  gem 'ed25519', '~> 1.2'
+  gem 'bcrypt_pbkdf', '~> 1.0'
+end
+
+# Gitaly GRPC client
+gem 'gitaly-proto', '~> 0.123.0', require: 'gitaly'
+gem 'grpc', '~> 1.15.0'
+
+gem 'google-protobuf', '~> 3.6'
+
+gem 'toml-rb', '~> 1.0.0', require: false
+
+# Feature toggles
+gem 'flipper', '~> 0.13.0'
+gem 'flipper-active_record', '~> 0.13.0'
+gem 'flipper-active_support_cache_store', '~> 0.13.0'
+
+# Structured logging
+gem 'lograge', '~> 0.5'
+gem 'grape_logging', '~> 1.7'
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock
new file mode 100644
index 000000000000..42b6f0cbc48e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/Gemfile.lock
@@ -0,0 +1,1191 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    RedCloth (4.3.2)
+    abstract_type (0.0.7)
+    ace-rails-ap (4.1.2)
+    actionmailer (4.2.10)
+      actionpack (= 4.2.10)
+      actionview (= 4.2.10)
+      activejob (= 4.2.10)
+      mail (~> 2.5, >= 2.5.4)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+    actionpack (4.2.10)
+      actionview (= 4.2.10)
+      activesupport (= 4.2.10)
+      rack (~> 1.6)
+      rack-test (~> 0.6.2)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.2)
+    actionview (4.2.10)
+      activesupport (= 4.2.10)
+      builder (~> 3.1)
+      erubis (~> 2.7.0)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.3)
+    activejob (4.2.10)
+      activesupport (= 4.2.10)
+      globalid (>= 0.3.0)
+    activemodel (4.2.10)
+      activesupport (= 4.2.10)
+      builder (~> 3.1)
+    activerecord (4.2.10)
+      activemodel (= 4.2.10)
+      activesupport (= 4.2.10)
+      arel (~> 6.0)
+    activerecord_sane_schema_dumper (0.2)
+      rails (>= 4, < 5)
+    activesupport (4.2.10)
+      i18n (~> 0.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
+      tzinfo (~> 1.1)
+    acts-as-taggable-on (5.0.0)
+      activerecord (>= 4.2.8)
+    adamantium (0.2.0)
+      ice_nine (~> 0.11.0)
+      memoizable (~> 0.4.0)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    aes_key_wrap (1.0.1)
+    akismet (2.0.0)
+    arel (6.0.4)
+    asana (0.6.0)
+      faraday (~> 0.9)
+      faraday_middleware (~> 0.9)
+      faraday_middleware-multi_json (~> 0.0)
+      oauth2 (~> 1.0)
+    asciidoctor (1.5.6.2)
+    asciidoctor-plantuml (0.0.8)
+      asciidoctor (~> 1.5)
+    ast (2.4.0)
+    atomic (1.1.99)
+    attr_encrypted (3.1.0)
+      encryptor (~> 3.0.0)
+    attr_required (1.0.0)
+    awesome_print (1.8.0)
+    aws-sdk (2.9.32)
+      aws-sdk-resources (= 2.9.32)
+    aws-sdk-core (2.9.32)
+      aws-sigv4 (~> 1.0)
+      jmespath (~> 1.0)
+    aws-sdk-resources (2.9.32)
+      aws-sdk-core (= 2.9.32)
+    aws-sigv4 (1.0.0)
+    axiom-types (0.1.1)
+      descendants_tracker (~> 0.0.4)
+      ice_nine (~> 0.11.0)
+      thread_safe (~> 0.3, >= 0.3.1)
+    babosa (1.0.2)
+    base32 (0.3.2)
+    batch-loader (1.2.1)
+    bcrypt (3.1.12)
+    bcrypt_pbkdf (1.0.0)
+    benchmark-ips (2.3.0)
+    better_errors (2.1.1)
+      coderay (>= 1.0.0)
+      erubis (>= 2.6.6)
+      rack (>= 0.9.0)
+    bindata (2.4.3)
+    binding_of_caller (0.7.2)
+      debug_inspector (>= 0.0.1)
+    bootsnap (1.3.2)
+      msgpack (~> 1.0)
+    bootstrap_form (2.7.0)
+    brakeman (4.2.1)
+    browser (2.5.3)
+    builder (3.2.3)
+    bullet (5.5.1)
+      activesupport (>= 3.0.0)
+      uniform_notifier (~> 1.10.0)
+    bundler-audit (0.5.0)
+      bundler (~> 1.2)
+      thor (~> 0.18)
+    byebug (9.0.6)
+    capybara (2.15.1)
+      addressable
+      mini_mime (>= 0.1.3)
+      nokogiri (>= 1.3.3)
+      rack (>= 1.0.0)
+      rack-test (>= 0.5.4)
+      xpath (~> 2.0)
+    capybara-screenshot (1.0.14)
+      capybara (>= 1.0, < 3)
+      launchy
+    carrierwave (1.2.3)
+      activemodel (>= 4.0.0)
+      activesupport (>= 4.0.0)
+      mime-types (>= 1.16)
+    cause (0.1)
+    charlock_holmes (0.7.6)
+    childprocess (0.9.0)
+      ffi (~> 1.0, >= 1.0.11)
+    chronic (0.10.2)
+    chronic_duration (0.10.6)
+      numerizer (~> 0.1.1)
+    chunky_png (1.3.5)
+    citrus (3.0.2)
+    coderay (1.1.2)
+    coercible (1.0.0)
+      descendants_tracker (~> 0.0.1)
+    commonmarker (0.17.13)
+      ruby-enum (~> 0.5)
+    concord (0.1.5)
+      adamantium (~> 0.2.0)
+      equalizer (~> 0.0.9)
+    concurrent-ruby (1.0.5)
+    concurrent-ruby-ext (1.0.5)
+      concurrent-ruby (= 1.0.5)
+    connection_pool (2.2.2)
+    crack (0.4.3)
+      safe_yaml (~> 1.0.0)
+    crass (1.0.4)
+    creole (0.5.0)
+    css_parser (1.5.0)
+      addressable
+    daemons (1.2.6)
+    database_cleaner (1.5.3)
+    debug_inspector (0.0.2)
+    debugger-ruby_core_source (1.3.8)
+    deckar01-task_list (2.0.0)
+      html-pipeline
+    declarative (0.0.10)
+    declarative-option (0.1.0)
+    default_value_for (3.0.2)
+      activerecord (>= 3.2.0, < 5.1)
+    descendants_tracker (0.0.4)
+      thread_safe (~> 0.3, >= 0.3.1)
+    device_detector (1.0.0)
+    devise (4.4.3)
+      bcrypt (~> 3.0)
+      orm_adapter (~> 0.1)
+      railties (>= 4.1.0, < 6.0)
+      responders
+      warden (~> 1.2.3)
+    devise-two-factor (3.0.0)
+      activesupport
+      attr_encrypted (>= 1.3, < 4, != 2)
+      devise (~> 4.0)
+      railties
+      rotp (~> 2.0)
+    diff-lcs (1.3)
+    diffy (3.1.0)
+    docile (1.1.5)
+    domain_name (0.5.20180417)
+      unf (>= 0.0.5, < 1.0.0)
+    doorkeeper (4.3.2)
+      railties (>= 4.2)
+    doorkeeper-openid_connect (1.5.0)
+      doorkeeper (~> 4.3)
+      json-jwt (~> 1.6)
+    ed25519 (1.2.4)
+    elasticsearch (5.0.3)
+      elasticsearch-api (= 5.0.3)
+      elasticsearch-transport (= 5.0.3)
+    elasticsearch-api (5.0.3)
+      multi_json
+    elasticsearch-model (0.1.9)
+      activesupport (> 3)
+      elasticsearch (> 0.4)
+      hashie
+    elasticsearch-rails (0.1.9)
+    elasticsearch-transport (5.0.3)
+      faraday
+      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)
+    equalizer (0.0.11)
+    erubis (2.7.0)
+    escape_utils (1.1.1)
+    et-orbi (1.0.3)
+      tzinfo
+    eventmachine (1.2.7)
+    excon (0.62.0)
+    execjs (2.6.0)
+    expression_parser (0.9.0)
+    factory_bot (4.8.2)
+      activesupport (>= 3.0.0)
+    factory_bot_rails (4.8.2)
+      factory_bot (~> 4.8.2)
+      railties (>= 3.0.0)
+    faraday (0.12.2)
+      multipart-post (>= 1.2, < 3)
+    faraday_middleware (0.12.2)
+      faraday (>= 0.7.4, < 1.0)
+    faraday_middleware-aws-signers-v4 (0.1.7)
+      aws-sdk-resources (~> 2)
+      faraday (~> 0.9)
+    faraday_middleware-multi_json (0.0.6)
+      faraday_middleware
+      multi_json
+    fast_blank (1.0.0)
+    fast_gettext (1.6.0)
+    ffaker (2.4.0)
+    ffi (1.9.25)
+    flipper (0.13.0)
+    flipper-active_record (0.13.0)
+      activerecord (>= 3.2, < 6)
+      flipper (~> 0.13.0)
+    flipper-active_support_cache_store (0.13.0)
+      activesupport (>= 3.2, < 6)
+      flipper (~> 0.13.0)
+    flowdock (0.7.1)
+      httparty (~> 0.7)
+      multi_json
+    fog-aliyun (0.2.0)
+      fog-core (~> 1.27)
+      fog-json (~> 1.0)
+      ipaddress (~> 0.8)
+      xml-simple (~> 1.1)
+    fog-aws (2.0.1)
+      fog-core (~> 1.38)
+      fog-json (~> 1.0)
+      fog-xml (~> 0.1)
+      ipaddress (~> 0.8)
+    fog-core (1.45.0)
+      builder
+      excon (~> 0.58)
+      formatador (~> 0.2)
+    fog-google (1.7.1)
+      fog-core
+      fog-json
+      fog-xml
+      google-api-client (~> 0.23.0)
+    fog-json (1.0.2)
+      fog-core (~> 1.0)
+      multi_json (~> 1.10)
+    fog-local (0.3.1)
+      fog-core (~> 1.27)
+    fog-openstack (0.1.21)
+      fog-core (>= 1.40)
+      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.1)
+      railties (>= 3.2, < 5.1)
+    foreman (0.84.0)
+      thor (~> 0.19.1)
+    formatador (0.2.5)
+    fuubar (2.2.0)
+      rspec-core (~> 3.0)
+      ruby-progressbar (~> 1.4)
+    gemojione (3.3.0)
+      json
+    get_process_mem (0.2.0)
+    gettext (3.2.9)
+      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)
+    gitaly-proto (0.123.0)
+      grpc (~> 1.0)
+    github-markup (1.7.0)
+    gitlab-license (1.0.0)
+    gitlab-markup (1.6.4)
+    gitlab-sidekiq-fetcher (0.3.0)
+      sidekiq (~> 5)
+    gitlab-styles (2.4.1)
+      rubocop (~> 0.54.0)
+      rubocop-gitlab-security (~> 0.1.0)
+      rubocop-rspec (~> 1.19)
+    gitlab_omniauth-ldap (2.0.4)
+      net-ldap (~> 0.16)
+      omniauth (~> 1.3)
+      pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
+      rubyntlm (~> 0.5)
+    globalid (0.4.1)
+      activesupport (>= 4.2.0)
+    gon (6.2.0)
+      actionpack (>= 3.0)
+      multi_json
+      request_store (>= 1.0)
+    google-api-client (0.23.4)
+      addressable (~> 2.5, >= 2.5.1)
+      googleauth (>= 0.5, < 0.7.0)
+      httpclient (>= 2.8.1, < 3.0)
+      mime-types (~> 3.0)
+      representable (~> 3.0)
+      retriable (>= 2.0, < 4.0)
+    google-protobuf (3.6.1)
+    googleapis-common-protos-types (1.0.2)
+      google-protobuf (~> 3.0)
+    googleauth (0.6.6)
+      faraday (~> 0.12)
+      jwt (>= 1.4, < 3.0)
+      memoist (~> 0.12)
+      multi_json (~> 1.11)
+      os (>= 0.9, < 2.0)
+      signet (~> 0.7)
+    gpgme (2.0.13)
+      mini_portile2 (~> 2.1)
+    grape (1.1.0)
+      activesupport
+      builder
+      mustermann-grape (~> 1.0.0)
+      rack (>= 1.3.0)
+      rack-accept
+      virtus (>= 1.0.0)
+    grape-entity (0.7.1)
+      activesupport (>= 4.0)
+      multi_json (>= 1.3.2)
+    grape-path-helpers (1.0.6)
+      activesupport (>= 4, < 5.1)
+      grape (~> 1.0)
+      rake (~> 12)
+    grape_logging (1.7.0)
+      grape
+    graphiql-rails (1.4.10)
+      railties
+      sprockets-rails
+    graphql (1.8.1)
+    grpc (1.15.0)
+      google-protobuf (~> 3.1)
+      googleapis-common-protos-types (~> 1.0.0)
+    gssapi (1.2.0)
+      ffi (>= 1.0.1)
+    haml (5.0.4)
+      temple (>= 0.8.0)
+      tilt
+    haml_lint (0.26.0)
+      haml (>= 4.0, < 5.1)
+      rainbow
+      rake (>= 10, < 13)
+      rubocop (>= 0.49.0)
+      sysexits (~> 1.1)
+    hamlit (2.8.8)
+      temple (>= 0.8.0)
+      thor
+      tilt
+    hangouts-chat (0.0.5)
+    hashdiff (0.3.4)
+    hashie (3.5.7)
+    hashie-forbidden_attributes (0.1.1)
+      hashie (>= 3.0)
+    health_check (2.6.0)
+      rails (>= 4.0)
+    hipchat (1.5.2)
+      httparty
+      mimemagic
+    html-pipeline (2.8.4)
+      activesupport (>= 2)
+      nokogiri (>= 1.4)
+    html2text (0.2.0)
+      nokogiri (~> 1.6)
+    htmlentities (4.3.4)
+    http (2.2.2)
+      addressable (~> 2.3)
+      http-cookie (~> 1.0)
+      http-form_data (~> 1.0.1)
+      http_parser.rb (~> 0.6.0)
+    http-cookie (1.0.3)
+      domain_name (~> 0.5)
+    http-form_data (1.0.3)
+    http_parser.rb (0.6.0)
+    httparty (0.13.7)
+      json (~> 1.8)
+      multi_xml (>= 0.5.2)
+    httpclient (2.8.3)
+    i18n (0.9.5)
+      concurrent-ruby (~> 1.0)
+    icalendar (2.4.1)
+    ice_nine (0.11.2)
+    influxdb (0.2.3)
+      cause
+      json
+    ipaddress (0.8.3)
+    jira-ruby (1.4.1)
+      activesupport
+      multipart-post
+      oauth (~> 0.5, >= 0.5.0)
+    jmespath (1.3.1)
+    jquery-atwho-rails (1.3.2)
+    js_regex (2.2.1)
+      regexp_parser (>= 0.4.11, <= 0.5.0)
+    json (1.8.6)
+    json-jwt (1.9.4)
+      activesupport
+      aes_key_wrap
+      bindata
+    json-schema (2.8.0)
+      addressable (>= 2.4)
+    jwt (1.5.6)
+    kaminari (1.0.1)
+      activesupport (>= 4.1.0)
+      kaminari-actionview (= 1.0.1)
+      kaminari-activerecord (= 1.0.1)
+      kaminari-core (= 1.0.1)
+    kaminari-actionview (1.0.1)
+      actionview
+      kaminari-core (= 1.0.1)
+    kaminari-activerecord (1.0.1)
+      activerecord
+      kaminari-core (= 1.0.1)
+    kaminari-core (1.0.1)
+    kgio (2.10.0)
+    knapsack (1.16.0)
+      rake
+    kubeclient (3.1.0)
+      http (~> 2.2.2)
+      recursive-open-struct (~> 1.0, >= 1.0.4)
+      rest-client (~> 2.0)
+    launchy (2.4.3)
+      addressable (~> 2.3)
+    letter_opener (1.4.1)
+      launchy (~> 2.2)
+    letter_opener_web (1.3.0)
+      actionmailer (>= 3.2)
+      letter_opener (~> 1.0)
+      railties (>= 3.2)
+    license_finder (5.4.0)
+      bundler
+      rubyzip
+      thor
+      toml (= 0.2.0)
+      with_env (= 1.1.0)
+      xml-simple
+    licensee (8.9.2)
+      rugged (~> 0.24)
+    locale (2.1.2)
+    lograge (0.10.0)
+      actionpack (>= 4)
+      activesupport (>= 4)
+      railties (>= 4)
+      request_store (~> 1.0)
+    loofah (2.2.2)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.5.9)
+    mail (2.7.0)
+      mini_mime (>= 0.1.1)
+    mail_room (0.9.1)
+    memoist (0.16.0)
+    memoizable (0.4.2)
+      thread_safe (~> 0.3, >= 0.3.1)
+    method_source (0.9.0)
+    mime-types (3.1)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2016.0521)
+    mimemagic (0.3.0)
+    mini_magick (4.8.0)
+    mini_mime (1.0.1)
+    mini_portile2 (2.3.0)
+    minitest (5.7.0)
+    msgpack (1.2.4)
+    multi_json (1.13.1)
+    multi_xml (0.6.0)
+    multipart-post (2.0.0)
+    mustermann (1.0.3)
+    mustermann-grape (1.0.0)
+      mustermann (~> 1.0.0)
+    mysql2 (0.4.10)
+    net-ldap (0.16.0)
+    net-ntp (2.1.3)
+    net-ssh (5.0.1)
+    netrc (0.11.0)
+    nokogiri (1.8.4)
+      mini_portile2 (~> 2.3.0)
+    nokogumbo (1.5.0)
+      nokogiri
+    numerizer (0.1.1)
+    oauth (0.5.4)
+    oauth2 (1.4.0)
+      faraday (>= 0.8, < 0.13)
+      jwt (~> 1.0)
+      multi_json (~> 1.3)
+      multi_xml (~> 0.5)
+      rack (>= 1.2, < 3)
+    octokit (4.9.0)
+      sawyer (~> 0.8.0, >= 0.5.3)
+    omniauth (1.8.1)
+      hashie (>= 3.4.6, < 3.6.0)
+      rack (>= 1.6.2, < 3)
+    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.9)
+      jwt (~> 1.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.3.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.5.3)
+      jwt (>= 1.5)
+      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.5.0)
+      oauth2 (~> 1.1)
+      omniauth (~> 1.2)
+    omniauth-oauth2-generic (0.2.2)
+      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.2.3)
+      activesupport
+      nokogiri (>= 1.4.4)
+      omniauth (~> 1.0)
+    org-ruby (0.9.12)
+      rubypants (~> 0.2)
+    orm_adapter (0.5.0)
+    os (1.0.0)
+    parallel (1.12.1)
+    parser (2.5.3.0)
+      ast (~> 2.4.0)
+    parslet (1.8.2)
+    peek (1.0.1)
+      concurrent-ruby (>= 0.9.0)
+      concurrent-ruby-ext (>= 0.9.0)
+      railties (>= 4.0.0)
+    peek-gc (0.0.2)
+      peek
+    peek-mysql2 (1.1.0)
+      atomic (>= 1.0.0)
+      mysql2
+      peek
+    peek-pg (1.3.0)
+      concurrent-ruby
+      concurrent-ruby-ext
+      peek
+      pg
+    peek-rblineprof (0.2.0)
+      peek
+      rblineprof
+    peek-redis (1.2.0)
+      atomic (>= 1.0.0)
+      peek
+      redis
+    pg (0.18.4)
+    po_to_json (1.0.1)
+      json (>= 1.6.0)
+    powerpack (0.1.1)
+    premailer (1.10.4)
+      addressable
+      css_parser (>= 1.4.10)
+      htmlentities (>= 4.0.0)
+    premailer-rails (1.9.7)
+      actionmailer (>= 3, < 6)
+      premailer (~> 1.7, >= 1.7.9)
+    proc_to_ast (0.1.0)
+      coderay
+      parser
+      unparser
+    procto (0.0.3)
+    prometheus-client-mmap (0.9.4)
+    pry (0.11.3)
+      coderay (~> 1.1.0)
+      method_source (~> 0.9.0)
+    pry-byebug (3.4.3)
+      byebug (>= 9.0, < 9.1)
+      pry (~> 0.10)
+    pry-rails (0.3.6)
+      pry (>= 0.10.4)
+    public_suffix (3.0.3)
+    puma (3.12.0)
+    puma_worker_killer (0.1.0)
+      get_process_mem (~> 0.2)
+      puma (>= 2.7, < 4)
+    pyu-ruby-sasl (0.0.3.3)
+    rack (1.6.10)
+    rack-accept (0.4.5)
+      rack (>= 0.4)
+    rack-attack (4.4.1)
+      rack
+    rack-cors (1.0.2)
+    rack-oauth2 (1.2.3)
+      activesupport (>= 2.3)
+      attr_required (>= 0.0.5)
+      httpclient (>= 2.4)
+      multi_json (>= 1.3.6)
+      rack (>= 1.1)
+    rack-protection (2.0.3)
+      rack
+    rack-proxy (0.6.0)
+      rack
+    rack-test (0.6.3)
+      rack (>= 1.0)
+    rails (4.2.10)
+      actionmailer (= 4.2.10)
+      actionpack (= 4.2.10)
+      actionview (= 4.2.10)
+      activejob (= 4.2.10)
+      activemodel (= 4.2.10)
+      activerecord (= 4.2.10)
+      activesupport (= 4.2.10)
+      bundler (>= 1.3.0, < 2.0)
+      railties (= 4.2.10)
+      sprockets-rails
+    rails-deprecated_sanitizer (1.0.3)
+      activesupport (>= 4.2.0.alpha)
+    rails-dom-testing (1.0.9)
+      activesupport (>= 4.2.0, < 5.0)
+      nokogiri (~> 1.6)
+      rails-deprecated_sanitizer (>= 1.0.1)
+    rails-html-sanitizer (1.0.4)
+      loofah (~> 2.2, >= 2.2.2)
+    rails-i18n (4.0.9)
+      i18n (~> 0.7)
+      railties (~> 4.0)
+    railties (4.2.10)
+      actionpack (= 4.2.10)
+      activesupport (= 4.2.10)
+      rake (>= 0.8.7)
+      thor (>= 0.18.1, < 2.0)
+    rainbow (3.0.0)
+    raindrops (0.18.0)
+    rake (12.3.1)
+    rb-fsevent (0.10.2)
+    rb-inotify (0.9.10)
+      ffi (>= 0.5.0, < 2)
+    rblineprof (0.3.6)
+      debugger-ruby_core_source (~> 1.3)
+    rbtrace (0.4.10)
+      ffi (>= 1.0.6)
+      msgpack (>= 0.4.3)
+      trollop (>= 1.16.2)
+    rdoc (6.0.4)
+    re2 (1.1.1)
+    recaptcha (3.0.0)
+      json
+    recursive-open-struct (1.1.0)
+    redcarpet (3.4.0)
+    redis (3.3.5)
+    redis-actionpack (5.0.2)
+      actionpack (>= 4.0, < 6)
+      redis-rack (>= 1, < 3)
+      redis-store (>= 1.1.0, < 2)
+    redis-activesupport (5.0.4)
+      activesupport (>= 3, < 6)
+      redis-store (>= 1.3, < 2)
+    redis-namespace (1.6.0)
+      redis (>= 3.0.4)
+    redis-rack (2.0.4)
+      rack (>= 1.5, < 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.4.1)
+      redis (>= 2.2, < 5)
+    regexp_parser (0.5.0)
+    representable (3.0.4)
+      declarative (< 0.1.0)
+      declarative-option (< 0.2.0)
+      uber (< 0.2.0)
+    request_store (1.3.1)
+    responders (2.4.0)
+      actionpack (>= 4.2.0, < 5.3)
+      railties (>= 4.2.0, < 5.3)
+    rest-client (2.0.2)
+      http-cookie (>= 1.0.2, < 2.0)
+      mime-types (>= 1.16, < 4.0)
+      netrc (~> 0.8)
+    retriable (3.1.2)
+    rinku (2.0.0)
+    rotp (2.1.2)
+    rouge (3.3.0)
+    rqrcode (0.7.0)
+      chunky_png
+    rqrcode-rails3 (0.1.7)
+      rqrcode (>= 0.4.2)
+    rspec (3.7.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+    rspec-core (3.7.1)
+      rspec-support (~> 3.7.0)
+    rspec-expectations (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-mocks (3.7.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.7.0)
+    rspec-parameterized (0.4.0)
+      binding_of_caller
+      parser
+      proc_to_ast
+      rspec (>= 2.13, < 4)
+      unparser
+    rspec-rails (3.7.2)
+      actionpack (>= 3.0)
+      activesupport (>= 3.0)
+      railties (>= 3.0)
+      rspec-core (~> 3.7.0)
+      rspec-expectations (~> 3.7.0)
+      rspec-mocks (~> 3.7.0)
+      rspec-support (~> 3.7.0)
+    rspec-retry (0.4.5)
+      rspec-core
+    rspec-set (0.1.3)
+    rspec-support (3.7.1)
+    rspec_junit_formatter (0.2.3)
+      builder (< 4)
+      rspec-core (>= 2, < 4, != 2.12.0)
+    rspec_profiling (0.0.5)
+      activerecord
+      pg
+      rails
+      sqlite3
+    rubocop (0.54.0)
+      parallel (~> 1.10)
+      parser (>= 2.5)
+      powerpack (~> 0.1)
+      rainbow (>= 2.2.2, < 4.0)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (~> 1.0, >= 1.0.1)
+    rubocop-gitlab-security (0.1.1)
+      rubocop (>= 0.51)
+    rubocop-rspec (1.22.2)
+      rubocop (>= 0.52.1)
+    ruby-enum (0.7.2)
+      i18n
+    ruby-fogbugz (0.2.1)
+      crack (~> 0.4)
+    ruby-prof (0.17.0)
+    ruby-progressbar (1.9.0)
+    ruby-saml (1.7.2)
+      nokogiri (>= 1.5.10)
+    ruby_parser (3.9.0)
+      sexp_processor (~> 4.1)
+    rubyntlm (0.6.2)
+    rubypants (0.2.0)
+    rubyzip (1.2.2)
+    rufus-scheduler (3.4.0)
+      et-orbi (~> 1.0)
+    rugged (0.27.5)
+    safe_yaml (1.0.4)
+    sanitize (4.6.6)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.4.4)
+      nokogumbo (~> 1.4)
+    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)
+    sass-rails (5.0.6)
+      railties (>= 4.0.0, < 6)
+      sass (~> 3.1)
+      sprockets (>= 2.8, < 4.0)
+      sprockets-rails (>= 2.0, < 4.0)
+      tilt (>= 1.1, < 3)
+    sawyer (0.8.1)
+      addressable (>= 2.3.5, < 2.6)
+      faraday (~> 0.8, < 1.0)
+    scss_lint (0.56.0)
+      rake (>= 0.9, < 13)
+      sass (~> 3.5.3)
+    seed-fu (2.3.7)
+      activerecord (>= 3.1)
+      activesupport (>= 3.1)
+    select2-rails (3.5.9.3)
+      thor (~> 0.14)
+    selenium-webdriver (3.12.0)
+      childprocess (~> 0.5)
+      rubyzip (~> 1.2)
+    sentry-raven (2.7.2)
+      faraday (>= 0.7.6, < 1.0)
+    settingslogic (2.0.9)
+    sexp_processor (4.9.0)
+    sham_rack (1.3.6)
+      rack
+    shoulda-matchers (3.1.2)
+      activesupport (>= 4.0.0)
+    sidekiq (5.2.1)
+      connection_pool (~> 2.2, >= 2.2.2)
+      rack-protection (>= 1.5.0)
+      redis (>= 3.3.5, < 5)
+    sidekiq-cron (0.6.0)
+      rufus-scheduler (>= 3.3.0)
+      sidekiq (>= 4.2.1)
+    signet (0.11.0)
+      addressable (~> 2.3)
+      faraday (~> 0.9)
+      jwt (>= 1.5, < 3.0)
+      multi_json (~> 1.10)
+    simple_po_parser (1.1.2)
+    simplecov (0.14.1)
+      docile (~> 1.1.0)
+      json (>= 1.8, < 3)
+      simplecov-html (~> 0.10.0)
+    simplecov-html (0.10.0)
+    slack-notifier (1.5.1)
+    spring (2.0.2)
+      activesupport (>= 4.2)
+    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.1)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
+    sqlite3 (1.3.13)
+    sshkey (1.9.0)
+    stackprof (0.2.10)
+    state_machines (0.5.0)
+    state_machines-activemodel (0.5.1)
+      activemodel (>= 4.1, < 6.0)
+      state_machines (>= 0.5.0)
+    state_machines-activerecord (0.5.1)
+      activerecord (>= 4.1, < 6.0)
+      state_machines-activemodel (>= 0.5.0)
+    sys-filesystem (1.1.6)
+      ffi
+    sysexits (1.2.0)
+    temple (0.8.0)
+    test-prof (0.2.5)
+    test_after_commit (1.1.0)
+      activerecord (>= 3.2)
+    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.19.4)
+    thread_safe (0.3.6)
+    tilt (2.0.8)
+    timecop (0.8.1)
+    timfel-krb5-auth (0.8.3)
+    toml (0.2.0)
+      parslet (~> 1.8.0)
+    toml-rb (1.0.0)
+      citrus (~> 3.0, > 3.0)
+    trollop (2.1.3)
+    truncato (0.7.10)
+      htmlentities (~> 4.3.1)
+      nokogiri (~> 1.8.0, >= 1.7.0)
+    tzinfo (1.2.5)
+      thread_safe (~> 0.1)
+    u2f (0.2.1)
+    uber (0.1.0)
+    uglifier (2.7.2)
+      execjs (>= 0.3.0)
+      json (>= 1.8.0)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.5)
+    unicode-display_width (1.3.2)
+    unicorn (5.1.0)
+      kgio (~> 2.6)
+      raindrops (~> 0.7)
+    unicorn-worker-killer (0.4.4)
+      get_process_mem (~> 0)
+      unicorn (>= 4, < 6)
+    uniform_notifier (1.10.0)
+    unparser (0.2.7)
+      abstract_type (~> 0.0.7)
+      adamantium (~> 0.2.0)
+      concord (~> 0.1.5)
+      diff-lcs (~> 1.3)
+      equalizer (~> 0.0.9)
+      parser (>= 2.3.1.2, < 2.6)
+      procto (~> 0.0.2)
+    validates_hostname (1.0.6)
+      activerecord (>= 3.0)
+      activesupport (>= 3.0)
+    version_sorter (2.1.0)
+    virtus (1.0.5)
+      axiom-types (~> 0.1)
+      coercible (~> 1.0)
+      descendants_tracker (~> 0.0, >= 0.0.3)
+      equalizer (~> 0.0, >= 0.0.9)
+    vmstat (2.3.0)
+    warden (1.2.7)
+      rack (>= 1.0)
+    webmock (2.3.2)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff
+    webpack-rails (0.9.11)
+      railties (>= 3.2.0)
+    wikicloth (0.8.1)
+      builder
+      expression_parser
+      rinku
+    with_env (1.1.0)
+    xml-simple (1.1.5)
+    xpath (2.1.0)
+      nokogiri (~> 1.3)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  RedCloth (~> 4.3.2)
+  ace-rails-ap (~> 4.1.0)
+  activerecord_sane_schema_dumper (= 0.2)
+  acts-as-taggable-on (~> 5.0)
+  addressable (~> 2.5.2)
+  akismet (~> 2.0)
+  asana (~> 0.6.0)
+  asciidoctor (~> 1.5.6)
+  asciidoctor-plantuml (= 0.0.8)
+  attr_encrypted (~> 3.1.0)
+  awesome_print
+  aws-sdk
+  babosa (~> 1.0.2)
+  base32 (~> 0.3.0)
+  batch-loader (~> 1.2.1)
+  bcrypt_pbkdf (~> 1.0)
+  benchmark-ips (~> 2.3.0)
+  better_errors (~> 2.1.0)
+  binding_of_caller (~> 0.7.2)
+  bootsnap (~> 1.3)
+  bootstrap_form (~> 2.7.0)
+  brakeman (~> 4.2)
+  browser (~> 2.5)
+  bullet (~> 5.5.0)
+  bundler-audit (~> 0.5.0)
+  capybara (~> 2.15)
+  capybara-screenshot (~> 1.0.0)
+  carrierwave (= 1.2.3)
+  charlock_holmes (~> 0.7.5)
+  chronic (~> 0.10.2)
+  chronic_duration (~> 0.10.6)
+  commonmarker (~> 0.17)
+  concurrent-ruby (~> 1.0.5)
+  connection_pool (~> 2.0)
+  creole (~> 0.5.0)
+  database_cleaner (~> 1.5.0)
+  deckar01-task_list (= 2.0.0)
+  default_value_for (~> 3.0.0)
+  device_detector
+  devise (~> 4.4)
+  devise-two-factor (~> 3.0.0)
+  diffy (~> 3.1.0)
+  doorkeeper (~> 4.3)
+  doorkeeper-openid_connect (~> 1.5)
+  ed25519 (~> 1.2)
+  elasticsearch-api (= 5.0.3)
+  elasticsearch-model (~> 0.1.9)
+  elasticsearch-rails (~> 0.1.9)
+  email_reply_trimmer (~> 0.1)
+  email_spec (~> 2.2.0)
+  escape_utils (~> 1.1)
+  factory_bot_rails (~> 4.8.2)
+  faraday (~> 0.12)
+  faraday_middleware-aws-signers-v4
+  fast_blank
+  ffaker (~> 2.4)
+  flipper (~> 0.13.0)
+  flipper-active_record (~> 0.13.0)
+  flipper-active_support_cache_store (~> 0.13.0)
+  flowdock (~> 0.7)
+  fog-aliyun (~> 0.2.0)
+  fog-aws (~> 2.0.1)
+  fog-core (~> 1.44)
+  fog-google (~> 1.7.1)
+  fog-local (~> 0.3)
+  fog-openstack (~> 0.1)
+  fog-rackspace (~> 0.1.1)
+  font-awesome-rails (~> 4.7)
+  foreman (~> 0.84.0)
+  fuubar (~> 2.2.0)
+  gemojione (~> 3.3)
+  gettext (~> 3.2.2)
+  gettext_i18n_rails (~> 1.8.0)
+  gettext_i18n_rails_js (~> 1.3)
+  gitaly-proto (~> 0.123.0)
+  github-markup (~> 1.7.0)
+  gitlab-license (~> 1.0)
+  gitlab-markup (~> 1.6.4)
+  gitlab-sidekiq-fetcher
+  gitlab-styles (~> 2.4)
+  gitlab_omniauth-ldap (~> 2.0.4)
+  gon (~> 6.2)
+  google-api-client (~> 0.23)
+  google-protobuf (~> 3.6)
+  gpgme
+  grape (~> 1.1)
+  grape-entity (~> 0.7.1)
+  grape-path-helpers (~> 1.0)
+  grape_logging (~> 1.7)
+  graphiql-rails (~> 1.4.10)
+  graphql (~> 1.8.0)
+  grpc (~> 1.15.0)
+  gssapi
+  haml_lint (~> 0.26.0)
+  hamlit (~> 2.8.8)
+  hangouts-chat (~> 0.0.5)
+  hashie-forbidden_attributes
+  health_check (~> 2.6.0)
+  hipchat (~> 1.5.0)
+  html-pipeline (~> 2.8)
+  html2text
+  httparty (~> 0.13.3)
+  icalendar
+  influxdb (~> 0.2)
+  jira-ruby (~> 1.4)
+  jquery-atwho-rails (~> 1.3.2)
+  js_regex (~> 2.2.1)
+  json-schema (~> 2.8.0)
+  jwt (~> 1.5.6)
+  kaminari (~> 1.0)
+  knapsack (~> 1.16)
+  kubeclient (~> 3.1.0)
+  letter_opener_web (~> 1.3.0)
+  license_finder (~> 5.4)
+  licensee (~> 8.9)
+  lograge (~> 0.5)
+  loofah (~> 2.2)
+  mail_room (~> 0.9.1)
+  method_source (~> 0.8)
+  mini_magick
+  minitest (~> 5.7.0)
+  mysql2 (~> 0.4.10)
+  net-ldap
+  net-ntp
+  net-ssh (~> 5.0)
+  nokogiri (~> 1.8.2)
+  oauth2 (~> 1.4)
+  octokit (~> 4.9)
+  omniauth (~> 1.8)
+  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.3)
+  omniauth-gitlab (~> 1.0.2)
+  omniauth-google-oauth2 (~> 0.5.3)
+  omniauth-kerberos (~> 0.3.0)
+  omniauth-oauth2-generic (~> 0.2.2)
+  omniauth-saml (~> 1.10)
+  omniauth-shibboleth (~> 1.3.0)
+  omniauth-twitter (~> 1.4)
+  omniauth_crowd (~> 2.2.0)
+  org-ruby (~> 0.9.12)
+  peek (~> 1.0.1)
+  peek-gc (~> 0.0.2)
+  peek-mysql2 (~> 1.1.0)
+  peek-pg (~> 1.3.0)
+  peek-rblineprof (~> 0.2.0)
+  peek-redis (~> 1.2.0)
+  pg (~> 0.18.2)
+  premailer-rails (~> 1.9.7)
+  prometheus-client-mmap (~> 0.9.4)
+  pry-byebug (~> 3.4.1)
+  pry-rails (~> 0.3.4)
+  puma (~> 3.12)
+  puma_worker_killer
+  rack-attack (~> 4.4.1)
+  rack-cors (~> 1.0.0)
+  rack-oauth2 (~> 1.2.1)
+  rack-proxy (~> 0.6.0)
+  rails (= 4.2.10)
+  rails-deprecated_sanitizer (~> 1.0.3)
+  rails-i18n (~> 4.0.9)
+  rainbow (~> 3.0)
+  raindrops (~> 0.18)
+  rblineprof (~> 0.3.6)
+  rbtrace (~> 0.4)
+  rdoc (~> 6.0)
+  re2 (~> 1.1.1)
+  recaptcha (~> 3.0)
+  redcarpet (~> 3.4)
+  redis (~> 3.2)
+  redis-namespace (~> 1.6.0)
+  redis-rails (~> 5.0.2)
+  request_store (~> 1.3)
+  responders (~> 2.0)
+  rouge (~> 3.1)
+  rqrcode-rails3 (~> 0.1.7)
+  rspec-parameterized
+  rspec-rails (~> 3.7.0)
+  rspec-retry (~> 0.4.5)
+  rspec-set (~> 0.1.3)
+  rspec_junit_formatter
+  rspec_profiling (~> 0.0.5)
+  rubocop (~> 0.54.0)
+  rubocop-rspec (~> 1.22.1)
+  ruby-fogbugz (~> 0.2.1)
+  ruby-prof (~> 0.17.0)
+  ruby-progressbar
+  ruby_parser (~> 3.8)
+  rufus-scheduler (~> 3.4)
+  rugged (~> 0.27)
+  sanitize (~> 4.6)
+  sass-rails (~> 5.0.6)
+  scss_lint (~> 0.56.0)
+  seed-fu (~> 2.3.7)
+  select2-rails (~> 3.5.9)
+  selenium-webdriver (~> 3.12)
+  sentry-raven (~> 2.7)
+  settingslogic (~> 2.0.9)
+  sham_rack (~> 1.3.6)
+  shoulda-matchers (~> 3.1.2)
+  sidekiq (~> 5.2.1)
+  sidekiq-cron (~> 0.6.0)
+  simple_po_parser (~> 1.1.2)
+  simplecov (~> 0.14.0)
+  slack-notifier (~> 1.5.1)
+  spring (~> 2.0.0)
+  spring-commands-rspec (~> 1.0.4)
+  sprockets (~> 3.7.0)
+  sshkey (~> 1.9.0)
+  stackprof (~> 0.2.10)
+  state_machines-activerecord (~> 0.5.1)
+  sys-filesystem (~> 1.1.6)
+  test-prof (~> 0.2.5)
+  test_after_commit (~> 1.1)
+  thin (~> 1.7.0)
+  timecop (~> 0.8.0)
+  toml-rb (~> 1.0.0)
+  truncato (~> 0.7.9)
+  u2f (~> 0.2.1)
+  uglifier (~> 2.7.2)
+  unf (~> 0.1.4)
+  unicorn (~> 5.1.0)
+  unicorn-worker-killer (~> 0.4.4)
+  validates_hostname (~> 1.0.6)
+  version_sorter (~> 2.1.0)
+  virtus (~> 1.0.1)
+  vmstat (~> 2.3.0)
+  webmock (~> 2.3.2)
+  webpack-rails (~> 0.9.10)
+  wikicloth (= 0.8.1)
+
+BUNDLED WITH
+   1.17.1
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix
new file mode 100644
index 000000000000..460698bbb44a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv-ee/gemset.nix
@@ -0,0 +1,3576 @@
+{
+  abstract_type = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
+  ace-rails-ap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14wj9gsiy7rm0lvs27ffsrh92wndjksj6rlfj3n7jhv1v77w9v2h";
+      type = "gem";
+    };
+    version = "4.1.2";
+  };
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ivyjsapqgn1xfb2p8yqjrg2jldqm5r7hxrjxq6kdr05gk4fsg59";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l6agrxdaishxjx2zc2x8md95plfp39bfskzgs6v9gsdp2y2arpx";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jrx2pmkywk70z7n17gw3jrcdw3n03wdzvg45bnq8wxshl1lmbhv";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10jsa5pqklcsd2npicqxr5abjlwi53di2brpzgz35k557fkpc1z8";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  activemodel = {
+    dependencies = ["activesupport" "builder"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c4vj9xajxa906bqbcjpni74nya6rh2nbb15gl8xm0vl9zf3ll9v";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport" "arel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lws9y4p9c2vnmv3ddfpv8jh6azlddppl3fi31vahaz14ifxjk5s";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  activerecord_sane_schema_dumper = {
+    dependencies = ["rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "122c7v7lvs0gwckvx2rar07waxnx1vv0lryz322nybb69d8vbhl6";
+      type = "gem";
+    };
+    version = "0.2";
+  };
+  activesupport = {
+    dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s12j8vl8vrxfngkdlz9g8bpz9akq1z42d57mx5r537b2pji8nr7";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  acts-as-taggable-on = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kvbhlansqiz1xp5r28cv27ghbfmx4b39cv51w6xrhkb52bskn3i";
+      type = "gem";
+    };
+    version = "5.0.0";
+  };
+  adamantium = {
+    dependencies = ["ice_nine" "memoizable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  aes_key_wrap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  akismet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hqpn25iyypkwkrqaibjm5nss5jmlkrddhia7frmz94prvyjr02w";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  arel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nfcrdiys6q6ylxiblky9jyssrw2xj96fmxmal7f4f0jj3417vj4";
+      type = "gem";
+    };
+    version = "6.0.4";
+  };
+  asana = {
+    dependencies = ["faraday" "faraday_middleware" "faraday_middleware-multi_json" "oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bn7f3sc2f02g871jd0y6qdhixn464mflkjchp56x6kcnyqy24z6";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  asciidoctor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zq3az4836nxkc8g5wnnbzmarw7663s1ky6gf8pc04sfpa8n2l3f";
+      type = "gem";
+    };
+    version = "1.5.6.2";
+  };
+  asciidoctor-plantuml = {
+    dependencies = ["asciidoctor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x092ldl8p7svczg4lnrnp0h918acnflh7jz5qwv40ksh1fflqna";
+      type = "gem";
+    };
+    version = "0.0.8";
+  };
+  ast = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  atomic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kh9rvhjn4dndbfsk3yjq7alds6s2j70rc4k8wdwdyibab8a8gq9";
+      type = "gem";
+    };
+    version = "1.1.99";
+  };
+  attr_encrypted = {
+    dependencies = ["encryptor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  attr_required = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pawa2i7gw9ppj6fq6y288da1ncjpzsmc6kx7z63mjjvypa5q3dc";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  awesome_print = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14arh1ixfsd6j5md0agyzvksm5svfkvchb90fp32nn7y3avcmc2h";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  aws-sdk = {
+    dependencies = ["aws-sdk-resources"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03r754cqa0jayf1nxpcmp1anaypxwpcjyjaq5cz7i04l9jdxvsnn";
+      type = "gem";
+    };
+    version = "2.9.32";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-sigv4" "jmespath"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pq09wwb74y4m5adk4hi4zlz05q6sxjxij6g71v6nkd0z83hi34x";
+      type = "gem";
+    };
+    version = "2.9.32";
+  };
+  aws-sdk-resources = {
+    dependencies = ["aws-sdk-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15m56k12x9gzkcyhwrab1qhi3wqla0qmv84dkqcjwp44d7c2xjyi";
+      type = "gem";
+    };
+    version = "2.9.32";
+  };
+  aws-sigv4 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cnrfxbaxn86qrxhfidg10f89ka1hddihakdhcvnri0dljaw7dsz";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  axiom-types = {
+    dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10q3k04pll041mkgy0m5fn2b1lazm6ly1drdbcczl5p57lzi3zy1";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  babosa = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05rgxg4pz4bc4xk34w5grv0yp1j94wf571w84lf3xgqcbs42ip2f";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  base32 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b7y8sy6j9v1lvfzd4va88k5vg9yh0xcjzzn3llcw7yxqlcrnbjk";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  batch-loader = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nvmwzn8q6dkp2n8wz47z7gldj3yrj7h6syy0cwrkzi19bfvxba2";
+      type = "gem";
+    };
+    version = "1.2.1";
+  };
+  bcrypt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+      type = "gem";
+    };
+    version = "3.1.12";
+  };
+  bcrypt_pbkdf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  benchmark-ips = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh681m54qdsdyvpvflj1wpnj3ybspbpjkr4cnlrl4nk4yikli0j";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  better_errors = {
+    dependencies = ["coderay" "erubis" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11csk41yhijqvp0dkky0cjl8kn6blw4jhr8b6v4islfvvayddcxc";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  bindata = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kxy917xyxckifmnawff65j7g6yb3wh2s45npjq9lqjbi1p86lsr";
+      type = "gem";
+    };
+    version = "2.4.3";
+  };
+  binding_of_caller = {
+    dependencies = ["debug_inspector"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15jg6dkaq2nzcd602d7ppqbdxw3aji961942w93crs6qw4n6h9yk";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
+  bootsnap = {
+    dependencies = ["msgpack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g6r784lmjfhwi046w82phsk244byq9wkj1q3lddwxg9z559bmhy";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  bootstrap_form = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sw88vi5sb48xzgwclic38jdgmcbvah2qfi3rijrlmi1wai4j1fw";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  brakeman = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "161l4ln7x1vnqrcvbvglznf46f0lvq305vq211xaxp4fv4wwv89v";
+      type = "gem";
+    };
+    version = "4.2.1";
+  };
+  browser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f";
+      type = "gem";
+    };
+    version = "2.5.3";
+  };
+  builder = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+      type = "gem";
+    };
+    version = "3.2.3";
+  };
+  bullet = {
+    dependencies = ["activesupport" "uniform_notifier"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdq3ckmwxnwrdm2x89zfj68h0yhiln35y8wps2nkvam4kpivyr5";
+      type = "gem";
+    };
+    version = "5.5.1";
+  };
+  bundler-audit = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gr7k6m9fda7m66irxzydm8v9xbmlryjj65cagwm1zyi5f317srb";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  byebug = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kbfcn65rgdhi72n8x9l393b89rvi5z542459k7d1ggchpb0idb0";
+      type = "gem";
+    };
+    version = "9.0.6";
+  };
+  capybara = {
+    dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bahhwrd1rpfhci1x57yz0df9plziipljbw3p4k6mlash4wq6w92";
+      type = "gem";
+    };
+    version = "2.15.1";
+  };
+  capybara-screenshot = {
+    dependencies = ["capybara" "launchy"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xy79lf3rwn3602r4hqm9s8a03bhlf6hzwdi6345dzrkmhwwj2ij";
+      type = "gem";
+    };
+    version = "1.0.14";
+  };
+  carrierwave = {
+    dependencies = ["activemodel" "activesupport" "mime-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k9kla5ncygm97vn33lsrs7ch5zy4qqhhvc8m3khm986yaqh75qs";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  cause = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0digirxqlwdg79mkbn70yc7i9i1qnclm2wjbrc47kqv6236bpj00";
+      type = "gem";
+    };
+    version = "0.1";
+  };
+  charlock_holmes = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+      type = "gem";
+    };
+    version = "0.7.6";
+  };
+  childprocess = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  chronic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  chronic_duration = {
+    dependencies = ["numerizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k7sx3xqbrn6s4pishh2pgr4kw6fmw63h00lh503l66k8x0qvigs";
+      type = "gem";
+    };
+    version = "0.10.6";
+  };
+  chunky_png = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vf0axgrm95bs3y0x5gdb76xawfh210yxplj7jbwr6z7n88i1axn";
+      type = "gem";
+    };
+    version = "1.3.5";
+  };
+  citrus = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l7nhk3gkm1hdchkzzhg2f70m47pc0afxfpl6mkiibc9qcpl3hjf";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
+  coderay = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  coercible = {
+    dependencies = ["descendants_tracker"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p5azydlsz0nkxmcq0i1gzmcfq02lgxc4as7wmf47j1c6ljav0ah";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  commonmarker = {
+    dependencies = ["ruby-enum"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pmjm87p0hxnknp33cxyvkgbr1swfp9gcznssmalm9z8kwyancb9";
+      type = "gem";
+    };
+    version = "0.17.13";
+  };
+  concord = {
+    dependencies = ["adamantium" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  concurrent-ruby-ext = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "119l554zi3720d3rk670ldcqhsgmfii28a9z307v4mwdjckdm4gp";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  connection_pool = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  crack = {
+    dependencies = ["safe_yaml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+      type = "gem";
+    };
+    version = "0.4.3";
+  };
+  crass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  creole = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00rcscz16idp6dx0dk5yi5i0fz593i3r6anbn5bg2q07v3i025wm";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlr17cn044yaq4l3d9p42g3bghnamwsprq9c39xn6pxjrn5k1hy";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  daemons = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
+      type = "gem";
+    };
+    version = "1.2.6";
+  };
+  database_cleaner = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fx6zmqznklmkbjl6f713jyl11d4g9q220rcl86m2jp82r8kfwjj";
+      type = "gem";
+    };
+    version = "1.5.3";
+  };
+  debug_inspector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "109761g00dbrw5q0dfnbqg8blfm699z4jj70l4zrgf9mzn7ii50m";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  debugger-ruby_core_source = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lp5dmm8a8dpwymv6r1y6yr24wxsj0gvgb2b8i7qq9rcv414snwd";
+      type = "gem";
+    };
+    version = "1.3.8";
+  };
+  deckar01-task_list = {
+    dependencies = ["html-pipeline"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6qsk712ic6vx9ydmix2ys95zwpkvdx3a9xxi8bdqlpgh1ipm9j";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  declarative = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
+      type = "gem";
+    };
+    version = "0.0.10";
+  };
+  declarative-option = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  default_value_for = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "014482mxjrc227fxv6vff6ccjr9dr0ydz52flxslsa7biq542k73";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
+  descendants_tracker = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15q8g3fcqyb41qixn6cky0k3p86291y7xsh1jfd851dvrza1vi79";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  device_detector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zbsjj1bgwmsiqiw6x5fzbzp25xc10c02s37ggl2635ha0qzn05q";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  devise = {
+    dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xmxfhym0yxwb0zwmmzhdiykbpyqqm3id02g7rf3vcgbc1lqvdnj";
+      type = "gem";
+    };
+    version = "4.4.3";
+  };
+  devise-two-factor = {
+    dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pkldws5lga4mlv4xmcrfb0yivl6qad0l8qyb2hdb50adv6ny4gs";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  diff-lcs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+      type = "gem";
+    };
+    version = "1.3";
+  };
+  diffy = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1azibizfv91sjbzhjqj1pg2xcv8z9b8a7z6kb3wpl4hpj5hil5kj";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  docile = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  domain_name = {
+    dependencies = ["unf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
+      type = "gem";
+    };
+    version = "0.5.20180417";
+  };
+  doorkeeper = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "022r03i830b2lvmr0xzlj6ivlvc1zr64hy4a4bsy3flv94da77rz";
+      type = "gem";
+    };
+    version = "4.3.2";
+  };
+  doorkeeper-openid_connect = {
+    dependencies = ["doorkeeper" "json-jwt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wgrz0xcply5vl6d1m62blqwcbn4v0b27bswyws2y9wbyglz6f95";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  ed25519 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  elasticsearch = {
+    dependencies = ["elasticsearch-api" "elasticsearch-transport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fik4nrxyi28zy1xwi4rygn0pf1sm1gskcrvbsnmqfrsdd6l4ga4";
+      type = "gem";
+    };
+    version = "5.0.3";
+  };
+  elasticsearch-api = {
+    dependencies = ["multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0aal128hq59l5kscl2ag2cv24g1sp5ysdb4jxkqmj0b1l9rv16mw";
+      type = "gem";
+    };
+    version = "5.0.3";
+  };
+  elasticsearch-model = {
+    dependencies = ["activesupport" "elasticsearch" "hashie"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10kbsdxd192g8x60fhaxs4gqpgwag68d53flcw8rwvdm0i8smyzf";
+      type = "gem";
+    };
+    version = "0.1.9";
+  };
+  elasticsearch-rails = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "081hm2dc3l6kky027wm3s8k6lmiygg0hnrggnidchbl94nlalw2z";
+      type = "gem";
+    };
+    version = "0.1.9";
+  };
+  elasticsearch-transport = {
+    dependencies = ["faraday" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a7fak70ajdqw1ahd2gmgijka52pjjfr3chaakkxa5fk3rwwna26";
+      type = "gem";
+    };
+    version = "5.0.3";
+  };
+  email_reply_trimmer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vijywhy1acsq4187ss6w8a7ksswaf1d5np3wbj962b6rqif5vcz";
+      type = "gem";
+    };
+    version = "0.1.6";
+  };
+  email_spec = {
+    dependencies = ["htmlentities" "launchy" "mail"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yadaif80cf2ry0nvhir1s70xmm22xzncq6vfvvffdd8h02ridv0";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  encryptor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  equalizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
+  erubis = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  escape_utils = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "088r5c2mz2vy2jbbx1xjbi8msnzg631ggli29nhik2spbcp1z6vh";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  et-orbi = {
+    dependencies = ["tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1apn9gzgbgs7z6p6l3rv66vrfwyfh68p2rxkybh10vx82fp6g0wi";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  eventmachine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  excon = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
+      type = "gem";
+    };
+    version = "0.62.0";
+  };
+  execjs = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0grlxwiccbnflxs30r3h7g23xnps5knav1jyqkk3anvm8363ifjw";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  expression_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1938z3wmmdabqxlh5d5c56xfg1jc6z15p7zjyhvk7364zwydnmib";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  factory_bot = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r975ba6y0mcy3aya099gpnjn5gf1h6fbw8f3smmjay5zvin3nwx";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
+  factory_bot_rails = {
+    dependencies = ["factory_bot" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cdbp12ih2w77l331frv8gv6bv9dinn1663dy1jn0gb9ss1hwvs2";
+      type = "gem";
+    };
+    version = "4.8.2";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  faraday_middleware = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  faraday_middleware-aws-signers-v4 = {
+    dependencies = ["aws-sdk-resources" "faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y88xcbq8k2ijhsqdava5493p26k49agvnzca6vkl3qwfv3ambhp";
+      type = "gem";
+    };
+    version = "0.1.7";
+  };
+  faraday_middleware-multi_json = {
+    dependencies = ["faraday_middleware" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0651sxhzbq9xfq3hbpmrp0nbybxnm9ja3m97k386m4bqgamlvz1q";
+      type = "gem";
+    };
+    version = "0.0.6";
+  };
+  fast_blank = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  fast_gettext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s42dsy3rh9h37d16pwhswf2q9cx25v5fn3q881b5iz6fvdjixv3";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  ffaker = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rlfvf2iakphs3krxy1hiywr2jzmrhvhig8n8fw6rcivpz9v52ry";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  ffi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+      type = "gem";
+    };
+    version = "1.9.25";
+  };
+  flipper = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdj9y3k6padiicfraxw9ibx9fm8yi2ihh608736lq5nnbf3k6gw";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flipper-active_record = {
+    dependencies = ["activerecord" "flipper"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rgm4h5h6xcbf17z47sw8ancaxva8x4hwlxmyqpm0vzj1pnc47c1";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flipper-active_support_cache_store = {
+    dependencies = ["activesupport" "flipper"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zpikmfhadb7l1ny6xbhk5d4840im6yq0wvfsnlw718spxi4ccgk";
+      type = "gem";
+    };
+    version = "0.13.0";
+  };
+  flowdock = {
+    dependencies = ["httparty" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04nrvg4gzgabf5mnnhccl8bwrkvn3y4pm7a1dqzqhpvfr4m5pafg";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  fog-aliyun = {
+    dependencies = ["fog-core" "fog-json" "ipaddress" "xml-simple"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x66xyrw4ahyr6f9masiqmz5q6h8scv46y59crnfp8dj7r52hw8m";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  fog-aws = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00skbbgvhqzq6gpgzmw0957n0wf1y3vjgrdyq3sib0ghpyfgmig3";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  fog-core = {
+    dependencies = ["builder" "excon" "formatador"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02449kh2x3zj9xxszm02vy8zpbsrykvjrg5gj3kqcy2yizy2bhp3";
+      type = "gem";
+    };
+    version = "1.45.0";
+  };
+  fog-google = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0azs1i061ig0x1cljdy68hjskzj8d25xkq8nqf3z7qya5lmfn1z2";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  fog-json = {
+    dependencies = ["fog-core" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  fog-local = {
+    dependencies = ["fog-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q1hyga02l9civ0b9gvfdmscvwv2jr4dq87q2g3qxh2974x213mn";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  fog-openstack = {
+    dependencies = ["fog-core" "fog-json" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ii0q22bdv170f7b007k9jlph40rn7fnzd84vaxhf4zhjhaijmys";
+      type = "gem";
+    };
+    version = "0.1.21";
+  };
+  fog-rackspace = {
+    dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y2bli061g37l9p4w0ljqbmg830rp2qz6sf8b0ck4cnx68j7m32a";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  fog-xml = {
+    dependencies = ["fog-core" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  font-awesome-rails = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qc07vj7qyllrj7lr7wl89l5ir0gj104rc7sds2jynzmrqsamnlw";
+      type = "gem";
+    };
+    version = "4.7.0.1";
+  };
+  foreman = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06mq39lpmc17bxzlwhad9d8i0lcnbb08xr18smh2x79mm631wsw0";
+      type = "gem";
+    };
+    version = "0.84.0";
+  };
+  formatador = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+      type = "gem";
+    };
+    version = "0.2.5";
+  };
+  fuubar = {
+    dependencies = ["rspec-core" "ruby-progressbar"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlv2wisgnim29h47shvqhipbz1wgndfdr7i6y5wcfag0z2660lv";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  gemojione = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  get_process_mem = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "025f7v6bpbgsa2nr0hzv2riggj8qmzbwcyxfgjidpmwh5grh7j29";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  gettext = {
+    dependencies = ["locale" "text"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0764vj7gacn0aypm2bf6m46dzjzwzrjlmbyx6qwwwzbmi94r40wr";
+      type = "gem";
+    };
+    version = "3.2.9";
+  };
+  gettext_i18n_rails = {
+    dependencies = ["fast_gettext"];
+    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"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  gitaly-proto = {
+    dependencies = ["grpc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16b9sdaimhcda401z2s7apf0nz6y0lxs74xhkwlz4jzf6ms44mgg";
+      type = "gem";
+    };
+    version = "0.123.0";
+  };
+  github-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17g6g18gdjg63k75sfwiskjzl9i0hfcnrkcpb4fwrnb20v3jgswp";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  gitlab-license = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q26cgp3ln3b36n3sc69r6hxafkxjwdr3m0d7jlch5j7vyib9bih";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  gitlab-markup = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v6w3z7smmkqnhphb4ghgpqg61vimflqzpszybji0li99f2k1jb6";
+      type = "gem";
+    };
+    version = "1.6.4";
+  };
+  gitlab-sidekiq-fetcher = {
+    dependencies = ["sidekiq"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dvrp4iapwfaakc3qgf7mw05blxzfywpjfr7bhswwflih0pm67l7";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  gitlab-styles = {
+    dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-rspec"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ywizn3191mjl7ibxlfajaxm5vkywwl4i9q2xh6miq37nk2q98dx";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  gitlab_omniauth-ldap = {
+    dependencies = ["net-ldap" "omniauth" "pyu-ruby-sasl" "rubyntlm"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cpjadx852vw1gv5cm1qiqq6mclglzqajw7q572zncw4q3ji2fkv";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  gon = {
+    dependencies = ["actionpack" "multi_json" "request_store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q9nvnw98mbb40h7mlzn1zk40r2l29yybhinmiqhrq8a6adsv806";
+      type = "gem";
+    };
+    version = "6.2.0";
+  };
+  google-api-client = {
+    dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05h2lca9b334ayabgs3h0mzc2wg3csvkqv1lv3iirpgf90ypbk1k";
+      type = "gem";
+    };
+    version = "0.23.4";
+  };
+  google-protobuf = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf";
+      type = "gem";
+    };
+    version = "3.6.1";
+  };
+  googleapis-common-protos-types = {
+    dependencies = ["google-protobuf"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  googleauth = {
+    dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1747p1dhpvz76i98xnjrvaj785y1232svm0nc8g9by6pz835gp2l";
+      type = "gem";
+    };
+    version = "0.6.6";
+  };
+  gpgme = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fclgx3pg3sihk9xn3amcf8db0q749dsqkycayn1c8x134zml3gb";
+      type = "gem";
+    };
+    version = "2.0.13";
+  };
+  grape = {
+    dependencies = ["activesupport" "builder" "mustermann-grape" "rack" "rack-accept" "virtus"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04bam0iq9sad1df361317zz4knwci905yig502khl8gm1lp1168c";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  grape-entity = {
+    dependencies = ["activesupport" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w78wylkhdkc0s6n6d20hggbb3pl3ladzzd5lx6ack2iswybx7b9";
+      type = "gem";
+    };
+    version = "0.7.1";
+  };
+  grape-path-helpers = {
+    dependencies = ["activesupport" "grape" "rake"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13h5575xfc144wsr48sp3qngpwvh4ikz4r3m55j8jmdr6sa16rbw";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  grape_logging = {
+    dependencies = ["grape"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lg2vhk0dlnyqs2rz8wilfm039q5mbsp5nvf51asir48a1rf9yza";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  graphiql-rails = {
+    dependencies = ["railties" "sprockets-rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10q5zipwgjgaan9lfqakdkm5ry8afgkq79bkimgksn6jyyvpz6w8";
+      type = "gem";
+    };
+    version = "1.4.10";
+  };
+  graphql = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10bnl8yjyg5x6h787cfkpd5gphl5z5jblj8fc9lbmgk27n2knssl";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  grpc = {
+    dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  gssapi = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j93nsf9j57p7x4aafalvjg8hia2mmqv3aky7fmw2ck5yci343ix";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  haml = {
+    dependencies = ["temple" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  haml_lint = {
+    dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04illnjl9hsg7wqf8x5s108m5is9aj52g80c6nrgsksyp4vh9ynn";
+      type = "gem";
+    };
+    version = "0.26.0";
+  };
+  hamlit = {
+    dependencies = ["temple" "thor" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i";
+      type = "gem";
+    };
+    version = "2.8.8";
+  };
+  hangouts-chat = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dmnv3723c22683bzys8walkl6wi74xzawxjbhwqzjdbwk3bdgmx";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  hashdiff = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n6hj7k7b9hazac0j48ypbak2nqi5wy4nh5cjra6xl3a92r8db0a";
+      type = "gem";
+    };
+    version = "0.3.4";
+  };
+  hashie = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb";
+      type = "gem";
+    };
+    version = "3.5.7";
+  };
+  hashie-forbidden_attributes = {
+    dependencies = ["hashie"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1chgg5d2iddja6ww02x34g8avg11fzmzcb8yvnqlykii79zx6vis";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  health_check = {
+    dependencies = ["rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mfa180nyzz1j0abfihm5nm3lmzq99362ibcphky6rh5vwhckvm8";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  hipchat = {
+    dependencies = ["httparty" "mimemagic"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  html-pipeline = {
+    dependencies = ["activesupport" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mpj5y13jk1arqkhdk66n49kyglmci980c1l6np7pqgyjllb68ad";
+      type = "gem";
+    };
+    version = "2.8.4";
+  };
+  html2text = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kxdj8pf9pss9xgs8aac0alj5g1fi225yzdhh33lzampkazg1hii";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  htmlentities = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+      type = "gem";
+    };
+    version = "4.3.4";
+  };
+  http = {
+    dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kcd9qp8vm1rkyp7gfh8j0dbl3zpi97vz2vbhpbcsdsa7l21a59r";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  http-cookie = {
+    dependencies = ["domain_name"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  http-form_data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j8dwwbfpf8kc0lcsqcgy29lflszd1x4d7kc0f7227892m7r6y0m";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  "http_parser.rb" = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  httparty = {
+    dependencies = ["json" "multi_xml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c9gvg6dqw2h3qyaxhrq1pzm6r69zfcmfh038wyhisqsd39g9hr2";
+      type = "gem";
+    };
+    version = "0.13.7";
+  };
+  httpclient = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+      type = "gem";
+    };
+    version = "2.8.3";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+      type = "gem";
+    };
+    version = "0.9.5";
+  };
+  icalendar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xsydpp2xph00awi25axv2mwjd5p2rlgd4qb3kh05lvq795kirxd";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  ice_nine = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  influxdb = {
+    dependencies = ["cause" "json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vhg5nd88nwvfa76lqcczld916nljswwq6clsixrzi3js8ym9y1w";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  ipaddress = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
+      type = "gem";
+    };
+    version = "0.8.3";
+  };
+  jira-ruby = {
+    dependencies = ["activesupport" "multipart-post" "oauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14019mliqwcppj6qp2wdhh5gbvs2yh2idibag13m9a18ag965bhw";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  jmespath = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07w8ipjg59qavijq59hl82zs74jf3jsp7vxl9q3a2d0wpv5akz3y";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  jquery-atwho-rails = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g8239cddyi48i5n0hq2acg9k7n7jilhby9g36zd19mwqyia16w9";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  js_regex = {
+    dependencies = ["regexp_parser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lnyd4c7lybhra3l6dai7j83lh3xapqjb340pp0h4bnqjgx52bkf";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+      type = "gem";
+    };
+    version = "1.8.6";
+  };
+  json-jwt = {
+    dependencies = ["activesupport" "aes_key_wrap" "bindata"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
+      type = "gem";
+    };
+    version = "1.9.4";
+  };
+  json-schema = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11di8qyam6bmqn0fvvvf3crgaqy4sil0d406ymx0jacn3ff98ymz";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  jwt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "124zz1142bi2if7hl5pcrcamwchv4icyr5kaal9m2q6wqbdl6aw4";
+      type = "gem";
+    };
+    version = "1.5.6";
+  };
+  kaminari = {
+    dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-actionview = {
+    dependencies = ["actionview" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-activerecord = {
+    dependencies = ["activerecord" "kaminari-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kaminari-core = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  kgio = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y6wl3vpp82rdv5g340zjgkmy6fny61wib7xylyg0d09k5f26118";
+      type = "gem";
+    };
+    version = "2.10.0";
+  };
+  knapsack = {
+    dependencies = ["rake"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q2y7mb8ii1ncdrlp46l9v2x909gdnjaid2dg5gcicj39hna36di";
+      type = "gem";
+    };
+    version = "1.16.0";
+  };
+  kubeclient = {
+    dependencies = ["http" "recursive-open-struct" "rest-client"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1czzdp9lfsrah2jkaddkqzmphyvnk096zm1ra6jddh626d8d53r4";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  launchy = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+      type = "gem";
+    };
+    version = "2.4.3";
+  };
+  letter_opener = {
+    dependencies = ["launchy"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pcrdbxvp2x5six8fqn8gf09bn9rd3jga76ds205yph5m8fsda21";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  letter_opener_web = {
+    dependencies = ["actionmailer" "letter_opener" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "050x5cwqbxj2cydd2pzy9vfhmpgn1w6lfbwjaax1m1vpkn3xg9bv";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  license_finder = {
+    dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01rhqm5m3m22gq6q9f1x9fh3x3wrf9khnnsycblj0xg5frdjv77v";
+      type = "gem";
+    };
+    version = "5.4.0";
+  };
+  licensee = {
+    dependencies = ["rugged"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6d2smhg3kzcx4m2ii06akakypwhiglansk51bpx290hhc8h3pc";
+      type = "gem";
+    };
+    version = "8.9.2";
+  };
+  locale = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  lograge = {
+    dependencies = ["actionpack" "activesupport" "railties" "request_store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yjs6wbcj3n06d3xjqpy3qbpx0bfa12h3x2rbpc2k33ldjlkx6zy";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  mail = {
+    dependencies = ["mini_mime"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10dyifazss9mgdzdv08p47p344wmphp5pkh5i73s7c04ra8y6ahz";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  mail_room = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16b8yjd1if665mwaindwys06nkkcs0jw3dcsqvn6qbp6alfigqaa";
+      type = "gem";
+    };
+    version = "0.9.1";
+  };
+  memoist = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+      type = "gem";
+    };
+    version = "0.16.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 = "0xqj21j3vfq4ldia6i2akhn2qd84m0iqcnsl49kfpq3xk6x0dzgn";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m";
+      type = "gem";
+    };
+    version = "3.1";
+  };
+  mime-types-data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm";
+      type = "gem";
+    };
+    version = "3.2016.0521";
+  };
+  mimemagic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "101lq4bnjs7ywdcicpw3vbz9amg5gbb4va1626fybd2hawgdx8d9";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  mini_magick = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1djxfs9rxw6q6vr6wb4ndxhp1vj1zbwb55s1kf6mz9bzgmswqg0n";
+      type = "gem";
+    };
+    version = "4.8.0";
+  };
+  mini_mime = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rxqfakp629mp3vwda7zpgb57lcns5znkskikbfd0kriwv8i1vq8";
+      type = "gem";
+    };
+    version = "5.7.0";
+  };
+  msgpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864";
+      type = "gem";
+    };
+    version = "1.2.4";
+  };
+  multi_json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  multi_xml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  multipart-post = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  mustermann = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  mustermann-grape = {
+    dependencies = ["mustermann"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10xdggddjl8nraq7pbli31lwgrzxzz8gp558i811lsv71fqbmhzr";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  mysql2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
+      type = "gem";
+    };
+    version = "0.4.10";
+  };
+  net-ldap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fh4l8zfsrvghanpnjxk944k7yl093qpw4759xs6f1v9kb73ihfq";
+      type = "gem";
+    };
+    version = "0.16.0";
+  };
+  net-ntp = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z96m7nnb9f634cz4i6p0x89z7g9i9h97cnk5f3x3q5x090kzisv";
+      type = "gem";
+    };
+    version = "2.1.3";
+  };
+  net-ssh = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hj2i8rk5wb6235r5n19in1hkrp1fbz2bf40xmagavb5ahv7205w";
+      type = "gem";
+    };
+    version = "5.0.1";
+  };
+  netrc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h9nml9h3m0mpvmh8jfnqvblnz5n5y3mmhgfc38avfmfzdrq9bgc";
+      type = "gem";
+    };
+    version = "1.8.4";
+  };
+  nokogumbo = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09qc1c7acv9qm48vk2kzvnrq4ij8jrql1cv33nmv2nwmlggy0jyj";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  numerizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vrk9jbv4p4dcz0wzr72wrf5kajblhc5l9qf7adbcwi4qvz9xv0h";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  oauth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+      type = "gem";
+    };
+    version = "0.5.4";
+  };
+  oauth2 = {
+    dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "094hmmfms8vpm6nwglpl7jmlv85nlfzl0kik4fizgx1rg70a6mr5";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  octokit = {
+    dependencies = ["sawyer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ssn5iyax07a22mvmj0y45bfy8ali129bl1qmasp6bcg03bvk298";
+      type = "gem";
+    };
+    version = "4.9.0";
+  };
+  omniauth = {
+    dependencies = ["hashie" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1msqr4qq7mfdvl3rg89529isrv595hvjpj2gi0say4b8nwqfggmg";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  omniauth-auth0 = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0id5gn14av81kh41cq4q6c9knyvzl7vc4rs3m4pmpd43g2z6jdw2";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  omniauth-authentiq = {
+    dependencies = ["jwt" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k7vajxwplsp188xfj4mi9iqbc7f7djqh02by4mphc51hl87kcqi";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  omniauth-azure-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ck5616fjik0dw89xvak1mi8ijcv10lsh6n9h4107l5dys2g3jfx";
+      type = "gem";
+    };
+    version = "0.0.9";
+  };
+  omniauth-cas3 = {
+    dependencies = ["addressable" "nokogiri" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx";
+      type = "gem";
+    };
+    version = "1.1.4";
+  };
+  omniauth-facebook = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03zjla9i446fk1jkw7arh67c39jfhp5bhkmhvbw8vczxr1jkbbh5";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  omniauth-github = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yg7k4p95ybcsii17spqarl8rpfzkq0kb19ab6wl4lc922zgfbqc";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  omniauth-gitlab = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  omniauth-google-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rvdac08vgrxcblq8w2hqj080v2cwv3cigxdzs11gz4d538zjnym";
+      type = "gem";
+    };
+    version = "0.5.3";
+  };
+  omniauth-kerberos = {
+    dependencies = ["omniauth-multipassword" "timfel-krb5-auth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05xsv76qjxcxzrvabaar2bchv7435y8l2j0wk4zgchh3yv85kiq7";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  omniauth-multipassword = {
+    dependencies = ["omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qykp76hw80lkgb39hyzrv68hkbivc8cv0vbvrnycjh9fwfp1lv8";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  omniauth-oauth = {
+    dependencies = ["oauth" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  omniauth-oauth2 = {
+    dependencies = ["oauth2" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kscjf1y0lnggsl4z3w5bwllqshqjlsl5kmcya5haydajdnzvdjr";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  omniauth-oauth2-generic = {
+    dependencies = ["omniauth-oauth2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m6vpip3rm1spx1x9y1kjczzailsph1xqgaakqylzq3jqkv18273";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  omniauth-saml = {
+    dependencies = ["omniauth" "ruby-saml"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  omniauth-shibboleth = {
+    dependencies = ["omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04yin7j8xpr8llvank3ivzahqkc6ss5bppc7q6znzdswxmf75fxh";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  omniauth-twitter = {
+    dependencies = ["omniauth-oauth" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  omniauth_crowd = {
+    dependencies = ["activesupport" "nokogiri" "omniauth"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12g5ck05h6kr9mnp870x8pkxsadg81ca70hg8n3k8xx007lfw2q7";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  org-ruby = {
+    dependencies = ["rubypants"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x69s7aysfiwlcpd9hkvksfyld34d8kxr62adb59vjvh8hxfrjwk";
+      type = "gem";
+    };
+    version = "0.9.12";
+  };
+  orm_adapter = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  os = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  parallel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
+      type = "gem";
+    };
+    version = "1.12.1";
+  };
+  parser = {
+    dependencies = ["ast"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f";
+      type = "gem";
+    };
+    version = "2.5.3.0";
+  };
+  parslet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88";
+      type = "gem";
+    };
+    version = "1.8.2";
+  };
+  peek = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1998vcsli215d6qrn9821gr2qip60xki2p7n2dpn8i1n68hyshcn";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  peek-gc = {
+    dependencies = ["peek"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "094h3mr9q8wzbqsj0girpyjvj4bcxax8m438igp42n75xv0bhwi9";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  peek-mysql2 = {
+    dependencies = ["atomic" "mysql2" "peek"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fzx3dwj7k6sc87jwhjk8vzp8dskv49j141xx15vvkg603j8k";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  peek-pg = {
+    dependencies = ["concurrent-ruby" "concurrent-ruby-ext" "peek" "pg"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17yk8xrh7yh57wg6vi3s8km9qd9f910n94r511mdyqd7aizlfb7c";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  peek-rblineprof = {
+    dependencies = ["peek" "rblineprof"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ywk1gvsnhrkhqq2ibwsg7099kg5m2vs4nmzy0wf65kb0ywl0m9c";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  peek-redis = {
+    dependencies = ["atomic" "peek" "redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v91cni591d9wdrmvgam20gr3504x84mh1l95da4rz5a9436jm33";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  pg = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32";
+      type = "gem";
+    };
+    version = "0.18.4";
+  };
+  po_to_json = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  powerpack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  premailer = {
+    dependencies = ["addressable" "css_parser" "htmlentities"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10w6f7r6snpkcnv3byxma9b08lyqzcfxkm083scb2dr2ly4xkzyf";
+      type = "gem";
+    };
+    version = "1.10.4";
+  };
+  premailer-rails = {
+    dependencies = ["actionmailer" "premailer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05czxmx6hnykg6g23hy2ww2bf86a69njbi02sv7lrds4w776jhim";
+      type = "gem";
+    };
+    version = "1.9.7";
+  };
+  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";
+  };
+  prometheus-client-mmap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14ww8c2qy43jw3fzmq54hsljmqmlx9a7zg9sv6ddw48qy118ls10";
+      type = "gem";
+    };
+    version = "0.9.4";
+  };
+  pry = {
+    dependencies = ["coderay" "method_source"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g";
+      type = "gem";
+    };
+    version = "0.11.3";
+  };
+  pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g820bqmlq8vvh78895zgrzgmj3g6n63px7cba11s02lpz56630n";
+      type = "gem";
+    };
+    version = "3.4.3";
+  };
+  pry-rails = {
+    dependencies = ["pry"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k2d43bwmqbswfra4fkadjjbszwb11pr7qdkma91qrcrk62wqxvy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  puma = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  puma_worker_killer = {
+    dependencies = ["get_process_mem" "puma"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m08qi8mxpp20zqqjj9yzcrx0sn29n5fn5avlf1lnl0n7qa9c03i";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  pyu-ruby-sasl = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rcpjiz9lrvyb3rd8k8qni0v4ps08psympffyldmmnrqayyad0sn";
+      type = "gem";
+    };
+    version = "0.0.3.3";
+  };
+  rack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0in0amn0kwvzmi8h5zg6ijrx5wpsf8h96zrfmnk1kwh2ql4sxs2q";
+      type = "gem";
+    };
+    version = "1.6.10";
+  };
+  rack-accept = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18jdipx17b4ki33cfqvliapd31sbfvs4mv727awynr6v95a7n936";
+      type = "gem";
+    };
+    version = "0.4.5";
+  };
+  rack-attack = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1czx68p70x98y21dkdndsb64lrxf9qrv09wl1dbcxrypcjnpsdl1";
+      type = "gem";
+    };
+    version = "4.4.1";
+  };
+  rack-cors = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  rack-oauth2 = {
+    dependencies = ["activesupport" "attr_required" "httpclient" "multi_json" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j7fh3fyajpfwg47gyfd8spavn7lmd6dcm468w7lhnhcviy5vmyf";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z5598qipilmnf45428jnxi63ykrgvnyywa5ckpr52zv2vpd8jdp";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  rack-proxy = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bpbcb9ch94ha2q7gdri88ry7ch0z6ian289kah9ayxyqg19j6f4";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
+      type = "gem";
+    };
+    version = "0.6.3";
+  };
+  rails = {
+    dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vbdlkmlh470g7msqhmcmhxhi4finv3cjg595x9viafvphnf40l";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  rails-deprecated_sanitizer = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wssfqpn00byhvp2372p99mphkcj8qx6pf6646avwr9ifvq0q1x6";
+      type = "gem";
+    };
+    version = "1.0.9";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  rails-i18n = {
+    dependencies = ["i18n" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17a02f2671pw5r2hl2n3isiz6w9wy2dxq8g52srciyl1xcmvsw01";
+      type = "gem";
+    };
+    version = "4.0.9";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "rake" "thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0snymfqj2cql0gp51i6a44avcirdridc15yggnxjj9raa9f3229p";
+      type = "gem";
+    };
+    version = "4.2.10";
+  };
+  rainbow = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  raindrops = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0854mial50yhvdv0d2r41xxl47v7z2f4nx49js42hygv7rf1mscz";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
+  rake = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
+      type = "gem";
+    };
+    version = "12.3.1";
+  };
+  rb-fsevent = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf";
+      type = "gem";
+    };
+    version = "0.10.2";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+      type = "gem";
+    };
+    version = "0.9.10";
+  };
+  rblineprof = {
+    dependencies = ["debugger-ruby_core_source"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m58kdjgncwf0h1qry3qk5h4bg8sj0idykqqijqcrr09mxfd9yc6";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  rbtrace = {
+    dependencies = ["ffi" "msgpack" "trollop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zj9xwazjp0g0fmhvc918irzcp2wyciwqzr0y199vc7r5qdr4sqv";
+      type = "gem";
+    };
+    version = "0.4.10";
+  };
+  rdoc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7";
+      type = "gem";
+    };
+    version = "6.0.4";
+  };
+  re2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wf9k1hkv3z3nfkrnfyyfq9ah0l7k14awqys3h2hqz4c21pqd2i";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  recaptcha = {
+    dependencies = ["json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pppfgica4629i8gbji6pnh681wjf03m6m1ix2ficpnqg2z7gl9n";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  recursive-open-struct = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wfcyigmf5mwrxy76p0bi4sdb4h9afs8jc73pjav5cnqszljjl3c";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  redcarpet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  RedCloth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy";
+      type = "gem";
+    };
+    version = "4.3.2";
+  };
+  redis = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv";
+      type = "gem";
+    };
+    version = "3.3.5";
+  };
+  redis-actionpack = {
+    dependencies = ["actionpack" "redis-rack" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63";
+      type = "gem";
+    };
+    version = "5.0.2";
+  };
+  redis-activesupport = {
+    dependencies = ["activesupport" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  redis-namespace = {
+    dependencies = ["redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  redis-rack = {
+    dependencies = ["rack" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  redis-rails = {
+    dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
+      type = "gem";
+    };
+    version = "5.0.2";
+  };
+  redis-store = {
+    dependencies = ["redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00yh8rhv91vxjlqs4ylic99m9npjxmgib2vjj8hgzk1174y6vcmq";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  regexp_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1375q2v74cccjh290d9x28fdircvy18v6h0ww7a8i66qhh1jf2pb";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  representable = {
+    dependencies = ["declarative" "declarative-option" "uber"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
+      type = "gem";
+    };
+    version = "3.0.4";
+  };
+  request_store = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1va9x0b3ww4chcfqlmi8b14db39di1mwa7qrjbh7ma0lhndvs2zv";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  responders = {
+    dependencies = ["actionpack" "railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  rest-client = {
+    dependencies = ["http-cookie" "mime-types" "netrc"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  retriable = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  rinku = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11cakxzp7qi04d41hbqkh92n52mm4z2ba8sqyhxbmfi4kypmls9y";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  rotp = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
+      type = "gem";
+    };
+    version = "3.3.0";
+  };
+  rqrcode = {
+    dependencies = ["chunky_png"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "188n1mvc7klrlw30bai16sdg4yannmy7cz0sg0nvm6f1kjx5qflb";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  rqrcode-rails3 = {
+    dependencies = ["rqrcode"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i28rwmj24ssk91chn0g7qsnvn003y3s5a7jsrg3w4l5ckr841bg";
+      type = "gem";
+    };
+    version = "0.1.7";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0134g96wzxjlig2gxzd240gm2dxfw8izcyi2h6hjmr40syzcyx01";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zvjbymx3avxm3lf8v4gka3a862vnaxldmwvp6767bpy48nhnvjj";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fw06wm8jdj8k7wrb8xmzj0fr1wjyb0ya13x31hidnyblm41hmvy";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b02ya3qhqgmcywqv4570dlhav70r656f7dmvwg89whpkq1z1xr3";
+      type = "gem";
+    };
+    version = "3.7.0";
+  };
+  rspec-parameterized = {
+    dependencies = ["binding_of_caller" "parser" "proc_to_ast" "rspec" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0arynbr6cfjhccwc8gy2xf87nybdnncsnmfwknnh8s7d4mj730p0";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
+  rspec-rails = {
+    dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cdcnbv5dppwy3b4jdp5a0wd9m07a8wlqwb9yazn8i7k1k2mwgvx";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  rspec-retry = {
+    dependencies = ["rspec-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0izvxab7jvk25kaprk0i72asjyh1ip3cm70bgxlm8lpid35qjar6";
+      type = "gem";
+    };
+    version = "0.4.5";
+  };
+  rspec-set = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06vw8b5w1a58838cw9ssmy3r6f8vrjh54h7dp97rwv831gn5zlyk";
+      type = "gem";
+    };
+    version = "0.1.3";
+  };
+  rspec-support = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1";
+      type = "gem";
+    };
+    version = "3.7.1";
+  };
+  rspec_junit_formatter = {
+    dependencies = ["builder" "rspec-core"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hphl8iggqh1mpbbv0avf8735x6jgry5wmkqyzgv1zwnimvja1ai";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  rspec_profiling = {
+    dependencies = ["activerecord" "pg" "rails" "sqlite3"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g7q7gav26bpiprx4dhlvdh4zdrhwiky9jbmsp14gyfiabqdz4sz";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  rubocop = {
+    dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is";
+      type = "gem";
+    };
+    version = "0.54.0";
+  };
+  rubocop-gitlab-security = {
+    dependencies = ["rubocop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v0040kpx46fxz3p7dsdjgvsx89qjhwy17n8vxnqg9a7g1rfvxln";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
+  rubocop-rspec = {
+    dependencies = ["rubocop"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vk51h9swvgshan8vp8yjz03qv9vn5vs29i9iddhjwcwgzsganla";
+      type = "gem";
+    };
+    version = "1.22.2";
+  };
+  ruby-enum = {
+    dependencies = ["i18n"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
+      type = "gem";
+    };
+    version = "0.7.2";
+  };
+  ruby-fogbugz = {
+    dependencies = ["crack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jj0gpkycbrivkh2q3429vj6mbgx6axxisg69slj3c4mgvzfgchm";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  ruby-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02z4lh1iv1d8751a1l6r4hfc9mp61gf80g4qc4l6gbync3j3hf2c";
+      type = "gem";
+    };
+    version = "0.17.0";
+  };
+  ruby-progressbar = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1igh1xivf5h5g3y5m9b4i4j2mhz2r43kngh4ww3q1r80ch21nbfk";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  ruby-saml = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k9d88fa8bp5szivbwq0qi960y3r2kp6jhnkmsp3n2rvwpn936i3";
+      type = "gem";
+    };
+    version = "1.7.2";
+  };
+  ruby_parser = {
+    dependencies = ["sexp_processor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18apbsmmivgc1schfxmkp429aijrwy8psm30dwx5cpmpjf48ir3n";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
+  rubyntlm = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+      type = "gem";
+    };
+    version = "0.6.2";
+  };
+  rubypants = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vpdkrc4c8qhrxph41wqwswl28q5h5h994gy4c1mlrckqzm3hzph";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  rubyzip = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  rufus-scheduler = {
+    dependencies = ["et-orbi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0343xrx4gbld5w2ydh9d2a7pw7lllvrsa691bgjq7p9g44ry1vq8";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  rugged = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6";
+      type = "gem";
+    };
+    version = "0.27.5";
+  };
+  safe_yaml = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sanitize = {
+    dependencies = ["crass" "nokogiri" "nokogumbo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j4j2a2mkk1a70vbx959pvx0gvr1zb9snjwvsppwj28bp0p0b2bv";
+      type = "gem";
+    };
+    version = "4.6.6";
+  };
+  sass = {
+    dependencies = ["sass-listen"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v";
+      type = "gem";
+    };
+    version = "3.5.5";
+  };
+  sass-listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  sass-rails = {
+    dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iji20hb8crncz14piss1b29bfb6l89sz3ai5fny3iw39vnxkdcb";
+      type = "gem";
+    };
+    version = "5.0.6";
+  };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  scss_lint = {
+    dependencies = ["rake" "sass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01bfkrjn1i0hfg1ifwn1rs7vqwdbdw158krwr5fm6iasd9zgl10g";
+      type = "gem";
+    };
+    version = "0.56.0";
+  };
+  seed-fu = {
+    dependencies = ["activerecord" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x6gclryl0hds3zms095d2iyafcvm2kfrm7362vrkxws7r2775pi";
+      type = "gem";
+    };
+    version = "2.3.7";
+  };
+  select2-rails = {
+    dependencies = ["thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ni2k74n73y3gv56gs37gkjlh912szjf6k9j483wz41m3xvlz7fj";
+      type = "gem";
+    };
+    version = "3.5.9.3";
+  };
+  selenium-webdriver = {
+    dependencies = ["childprocess" "rubyzip"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07bl3wjkf254r3ljfl4qdazz5aw60s6nqjwrbbgq754j9b7226kz";
+      type = "gem";
+    };
+    version = "3.12.0";
+  };
+  sentry-raven = {
+    dependencies = ["faraday"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yf2gysjw6sy1xcp2jw35z9cp83pwx33lq0qyvaqbs969j4993r4";
+      type = "gem";
+    };
+    version = "2.7.2";
+  };
+  settingslogic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ria5zcrk1nf0b9yia15mdpzw0dqr6wjpbj8dsdbbps81lfsj9ar";
+      type = "gem";
+    };
+    version = "2.0.9";
+  };
+  sexp_processor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c6kp2qxq550hz7gsxqi37irxn3vynkz7ibgy9hfwqymf6y1jdik";
+      type = "gem";
+    };
+    version = "4.9.0";
+  };
+  sham_rack = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zs6hpgg87x5jrykjxgfp2i7m5aja53s5kamdhxam16wki1hid3i";
+      type = "gem";
+    };
+    version = "1.3.6";
+  };
+  shoulda-matchers = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zvv94pqk5b5my3w1shdz7h34xf2ldhg5k4qfdpbwi2iy0j9zw2a";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  sidekiq = {
+    dependencies = ["connection_pool" "rack-protection" "redis"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s57vl2hwfaga73yiscak2rs7byg1q0z44wa9si9vl92qcmbik2j";
+      type = "gem";
+    };
+    version = "5.2.1";
+  };
+  sidekiq-cron = {
+    dependencies = ["rufus-scheduler" "sidekiq"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04mq83rzvq4wbc4h0rn00sawgv039j8s2p0wnlqb4sgf55gc0dzj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  signet = {
+    dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  simple_po_parser = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08wkp4gcrd89k5yari9j94if9ffkj3rka4llcwrhdgsi3l15p5f3";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  simplecov = {
+    dependencies = ["docile" "json" "simplecov-html"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww";
+      type = "gem";
+    };
+    version = "0.14.1";
+  };
+  simplecov-html = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf";
+      type = "gem";
+    };
+    version = "0.10.0";
+  };
+  slack-notifier = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  spring = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  spring-commands-rspec = {
+    dependencies = ["spring"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  sprockets = {
+    dependencies = ["concurrent-ruby" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  sprockets-rails = {
+    dependencies = ["actionpack" "activesupport" "sprockets"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+      type = "gem";
+    };
+    version = "3.2.1";
+  };
+  sqlite3 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
+      type = "gem";
+    };
+    version = "1.3.13";
+  };
+  sshkey = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g02lh50jd5z4l9bp7xirnfn3n1dh9lr06dv3xh0kr3yhsny059h";
+      type = "gem";
+    };
+    version = "1.9.0";
+  };
+  stackprof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c88j2d6ipjw5s3hgdgfww37gysgrkicawagj33hv3knijjc9ski";
+      type = "gem";
+    };
+    version = "0.2.10";
+  };
+  state_machines = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
+  state_machines-activemodel = {
+    dependencies = ["activemodel" "state_machines"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0chhm5hs1y83dq8haff10m66r3yrm7jab35r9xg6adn6qd8ynv2l";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  state_machines-activerecord = {
+    dependencies = ["activerecord" "state_machines-activemodel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00h07gd4kb22ahgv61r8zca9hqxaw44fnk2sc28j00c1nmwsw6r3";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  sys-filesystem = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "092wj7936i5inzafi09wqh5c8dbak588q21k652dsrdjf5qi10zq";
+      type = "gem";
+    };
+    version = "1.1.6";
+  };
+  sysexits = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  temple = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  test-prof = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08nvn3c1mzgcjgk9lr3py0zjd8fjjrm3ncn9rpqkfbx429mgw2l3";
+      type = "gem";
+    };
+    version = "0.2.5";
+  };
+  test_after_commit = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s8pz00xq28lsa1rfczm83yqwk8wcb5dqw2imlj8gldnsdapcyc2";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  text = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg";
+      type = "gem";
+    };
+    version = "1.3.1";
+  };
+  thin = {
+    dependencies = ["daemons" "eventmachine" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
+      type = "gem";
+    };
+    version = "1.7.2";
+  };
+  thor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns";
+      type = "gem";
+    };
+    version = "0.19.4";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tilt = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
+      type = "gem";
+    };
+    version = "2.0.8";
+  };
+  timecop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  timfel-krb5-auth = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "105vajc0jkqgcx1wbp0ad262sdry4l1irk7jpaawv8vzfjfqqf5b";
+      type = "gem";
+    };
+    version = "0.8.3";
+  };
+  toml = {
+    dependencies = ["parslet"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  toml-rb = {
+    dependencies = ["citrus"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pz6z1mc7rnv4chkbx3mdn4q1lpp0j596dq57kbq39jv0wn0wi4d";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  trollop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rzx9rkacpq58dsvbbzs4cpybls1v1h36xskkfs5q2askpdr00wq";
+      type = "gem";
+    };
+    version = "2.1.3";
+  };
+  truncato = {
+    dependencies = ["htmlentities" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x4fhfi4p7ah9sshfhbk9j145s1ailbyj0dxnvqirs9kk10x2d1b";
+      type = "gem";
+    };
+    version = "0.7.10";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  u2f = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lsm1hvwcaa9sq13ab1l1zjk0fgcy951ay11v2acx0h6q1iv21vr";
+      type = "gem";
+    };
+    version = "0.2.1";
+  };
+  uber = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  uglifier = {
+    dependencies = ["execjs" "json"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mzs64z3m1b98rh6ssxpqfz9sc87f6ml6906b0m57vydzfgrh1cz";
+      type = "gem";
+    };
+    version = "2.7.2";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
+      type = "gem";
+    };
+    version = "0.0.7.5";
+  };
+  unicode-display_width = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x31fgv1acywbb50prp7y4fr677c2d9gsl6wxmfcrlxbwz7nxn5n";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  unicorn = {
+    dependencies = ["kgio" "raindrops"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rcvg9381yw3wrnpny5c01mvm35caycshvfbg96wagjhscw6l72v";
+      type = "gem";
+    };
+    version = "5.1.0";
+  };
+  unicorn-worker-killer = {
+    dependencies = ["get_process_mem" "unicorn"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
+  uniform_notifier = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jha0l7x602g5rvah960xl9r0f3q25gslj39i0x1vai8i5z6zr1l";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  unparser = {
+    dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k2asbk9k5kzq8jidy3frqcmn58i9cvaizn8f6g5xlx1pn70bx1w";
+      type = "gem";
+    };
+    version = "0.2.7";
+  };
+  validates_hostname = {
+    dependencies = ["activerecord" "activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04p1l0v98j4ffvaks1ig9mygx5grpbpdgz7haq3mygva9iy8ykja";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  version_sorter = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1smi0bf8pgx23014nkpfg29qnmlpgvwmn30q0ca7qrfbha2mjwdr";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  virtus = {
+    dependencies = ["axiom-types" "coercible" "descendants_tracker" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06iphwi3c4f7y9i2rvhvaizfswqbaflilziz4dxqngrdysgkn1fk";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  vmstat = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vb5mwc71p8rlm30hnll3lb4z70ipl5rmilskpdrq2mxwfilcm5b";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  warden = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  webmock = {
+    dependencies = ["addressable" "crack" "hashdiff"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04hkcqsmbfnp8g237pisnc834vpgildklicbjbyikqg0bg1rwcy5";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  webpack-rails = {
+    dependencies = ["railties"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fsjxw730bh4k1dfnbjm645fgjyqrh830l1z7brqbsm6306ig1rr";
+      type = "gem";
+    };
+    version = "0.9.11";
+  };
+  wikicloth = {
+    dependencies = ["builder" "expression_parser" "rinku"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jp6c2yzyqbap8jdiw8yz6l08sradky1llhyhmrg934l1b5akj3s";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  with_env = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  xml-simple = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  xpath = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ha626m6fh50fpilb9pdnmq9xl586w7c0zyidg895c3iq13rqgyw";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/update.py b/nixpkgs/pkgs/applications/version-management/gitlab/update.py
new file mode 100755
index 000000000000..765f984fba5c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/update.py
@@ -0,0 +1,234 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i python3 -p bundix common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log
+
+import click
+import click_log
+import os
+import re
+import logging
+import subprocess
+import json
+import pathlib
+from typing import Iterable
+
+import requests
+from xml.etree import ElementTree
+
+logger = logging.getLogger(__name__)
+
+
+class GitLabRepo:
+    def __init__(self, owner: str, repo: str):
+        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 + "/tags?format=atom", stream=True)
+
+        tree = ElementTree.fromstring(r.content)
+        return sorted((e.text for e in tree.findall(
+            '{http://www.w3.org/2005/Atom}entry/{http://www.w3.org/2005/Atom}title')), reverse=True)
+
+    def get_git_hash(self, rev: str):
+        out = subprocess.check_output(['nix-prefetch-git', self.url, rev])
+        j = json.loads(out)
+        return j['sha256']
+
+    def get_deb_url(self, flavour: str, version: str, arch: str = 'amd64') -> str:
+        """
+        gitlab builds debian packages, which we currently need as we don't build the frontend on our own
+        this returns the url of a given flavour, version and arch
+        :param flavour: 'ce' or 'ee'
+        :param version: a version, without 'v' prefix and '-ee' suffix
+        :param arch: amd64
+        :return: url of the debian package
+        """
+        if self.owner != "gitlab-org" or self.repo not in ['gitlab-ce', 'gitlab-ee']:
+            raise Exception(f"don't know how to get deb_url for {self.url}")
+        return f"https://packages.gitlab.com/gitlab/gitlab-{flavour}/packages" + \
+               f"/debian/stretch/gitlab-{flavour}_{version}-{flavour}.0_{arch}.deb/download.deb"
+
+    def get_deb_hash(self, flavour: str, version: str) -> str:
+        out = subprocess.check_output(['nix-prefetch-url', self.get_deb_url(flavour, version)])
+        return out.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, flavour):
+        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),
+                    deb_hash=self.get_deb_hash(flavour, version),
+                    deb_url=self.get_deb_url(flavour, version),
+                    owner=self.owner,
+                    repo=self.repo,
+                    rev=rev,
+                    passthru=passthru)
+
+
+def _flavour2gitlabrepo(flavour: str):
+    if flavour not in ['ce', 'ee']:
+        raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee")
+
+    owner = 'gitlab-org'
+    repo = 'gitlab-' + flavour
+
+    return GitLabRepo(owner, repo)
+
+
+def _update_data_json(filename: str, repo: GitLabRepo, rev: str, flavour: str):
+    flavour_data = repo.get_data(rev, flavour)
+
+    if not os.path.exists(filename):
+        with open(filename, 'w') as f:
+            json.dump({flavour: flavour_data}, f, indent=2)
+    else:
+        with open(filename, 'r+') as f:
+            data = json.load(f)
+            data[flavour] = flavour_data
+            f.seek(0)
+            json.dump(data, f, indent=2)
+
+
+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, \'latest\' points to the latest (stable) tag')
+@click.argument('flavour')
+def update_data(rev: str, flavour: str):
+    """Update data.nix for a selected flavour"""
+    r = _flavour2gitlabrepo(flavour)
+
+    if rev == 'latest':
+        # filter out pre and re releases
+        rev = next(filter(lambda x: not ('rc' in x or x.endswith('pre')), r.tags))
+    logger.debug(f"Using rev {rev}")
+
+    version = r.rev2version(rev)
+    logger.debug(f"Using version {version}")
+
+    data_file_path = pathlib.Path(__file__).parent / 'data.json'
+
+    _update_data_json(filename=data_file_path.as_posix(),
+                      repo=r,
+                      rev=rev,
+                      flavour=flavour)
+
+
+@cli.command('update-rubyenv')
+@click.argument('flavour')
+def update_rubyenv(flavour):
+    """Update rubyEnv-${flavour}"""
+    if flavour not in ['ce', 'ee']:
+        raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee")
+
+    r = _flavour2gitlabrepo(flavour)
+    rubyenv_dir = pathlib.Path(__file__).parent / f"rubyEnv-{flavour}"
+
+    # load rev from data.json
+    data = _get_data_json()
+    rev = data[flavour]['rev']
+
+    for fn in ['Gemfile.lock', 'Gemfile']:
+        with open(rubyenv_dir / fn, 'w') as f:
+            f.write(r.get_file(fn, rev))
+
+    subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+
+
+@cli.command('update-gitaly')
+def update_gitaly():
+    """Update gitaly"""
+    data = _get_data_json()
+    gitaly_server_version = data['ce']['passthru']['GITALY_SERVER_VERSION']
+    r = GitLabRepo('gitlab-org', 'gitaly')
+    rubyenv_dir = pathlib.Path(__file__).parent / 'gitaly'
+
+    for fn in ['Gemfile.lock', 'Gemfile']:
+        with open(rubyenv_dir / fn, 'w') as f:
+            f.write(r.get_file(f"ruby/{fn}", f"v{gitaly_server_version}"))
+
+    subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+    # currently broken, as `gitaly.meta.position` returns
+    # pkgs/development/go-modules/generic/default.nix
+    # so update-source-version doesn't know where to update hashes
+    # _call_update_source_version('gitaly', gitaly_server_version)
+    gitaly_hash = r.get_git_hash(f"v{gitaly_server_version}")
+    click.echo(f"Please update gitaly/default.nix to version {gitaly_server_version} and hash {gitaly_hash}")
+
+
+
+@cli.command('update-gitlab-shell')
+def update_gitlab_shell():
+    """Update gitlab-shell"""
+    data = _get_data_json()
+    gitlab_shell_version = data['ce']['passthru']['GITLAB_SHELL_VERSION']
+    _call_update_source_version('gitlab-shell', gitlab_shell_version)
+
+
+@cli.command('update-gitlab-workhorse')
+def update_gitlab_workhorse():
+    """Update gitlab-shell"""
+    data = _get_data_json()
+    gitlab_workhorse_version = data['ce']['passthru']['GITLAB_WORKHORSE_VERSION']
+    _call_update_source_version('gitlab-workhorse', gitlab_workhorse_version)
+
+
+@cli.command('update-all')
+@click.pass_context
+def update_all(ctx):
+    """Update gitlab ce and ee data.nix and rubyenvs to the latest stable release"""
+    for flavour in ['ce', 'ee']:
+        ctx.invoke(update_data, rev='latest', flavour=flavour)
+        ctx.invoke(update_rubyenv, flavour=flavour)
+    ctx.invoke(update_gitaly)
+    ctx.invoke(update_gitlab_shell)
+    ctx.invoke(update_gitlab_workhorse)
+
+
+if __name__ == '__main__':
+    cli()
diff --git a/nixpkgs/pkgs/applications/version-management/gitless/default.nix b/nixpkgs/pkgs/applications/version-management/gitless/default.nix
new file mode 100644
index 000000000000..d062c32d018e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitless/default.nix
@@ -0,0 +1,26 @@
+{ fetchFromGitHub, pythonPackages, stdenv }:
+
+pythonPackages.buildPythonApplication rec {
+  ver = "0.8.6";
+  name = "gitless-${ver}";
+
+  src = fetchFromGitHub {
+    owner = "sdg-mit";
+    repo = "gitless";
+    rev = "v${ver}";
+    sha256 = "1q6y38f8ap6q1livvfy0pfnjr0l8b68hyhc9r5v87fmdyl7y7y8g";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [ sh pygit2 clint ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://gitless.com/;
+    description = "A version control system built on top of Git";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.cransom ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/version-management/gitolite/default.nix b/nixpkgs/pkgs/applications/version-management/gitolite/default.nix
new file mode 100644
index 000000000000..0150c6021da6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitolite/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, git, nettools, perl }:
+
+stdenv.mkDerivation rec {
+  name = "gitolite-${version}";
+  version = "3.6.10";
+
+  src = fetchFromGitHub {
+    owner = "sitaramc";
+    repo = "gitolite";
+    rev = "v${version}";
+    sha256 = "0p2697mn6rwm03ndlv7q137zczai82n41aplq1g006ii7f12xy8h";
+  };
+
+  buildInputs = [ git nettools perl ];
+
+  dontBuild = true;
+
+  patchPhase = ''
+    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"
+  '';
+
+  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    = http://gitolite.com/gitolite/index.html;
+    license     = licenses.gpl2;
+    platforms   = platforms.unix;
+    maintainers = [ maintainers.thoughtpolice maintainers.lassulus maintainers.tomberek ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gitstats/default.nix b/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
new file mode 100644
index 000000000000..64b6e2107f6a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitstats/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchzip, perl, python, gnuplot, coreutils, gnugrep }:
+
+stdenv.mkDerivation rec {
+  name = "gitstats-${version}";
+  version = "2016-01-08";
+
+  # upstream does not make releases
+  src = fetchzip {
+    url = "https://github.com/hoxu/gitstats/archive/55c5c285558c410bb35ebf421245d320ab9ee9fa.zip";
+    sha256 = "1bfcwhksylrpm88vyp33qjby4js31zcxy7w368dzjv4il3fh2i59";
+    name = name + "-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/nixpkgs/pkgs/applications/version-management/gogs/default.nix b/nixpkgs/pkgs/applications/version-management/gogs/default.nix
new file mode 100644
index 000000000000..56e411368961
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gogs/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper
+, git, bash, gzip, openssh
+, sqliteSupport ? true
+}:
+
+with stdenv.lib;
+
+buildGoPackage rec {
+  name = "gogs-${version}";
+  version = "0.11.66";
+
+  src = fetchFromGitHub {
+    owner = "gogs";
+    repo = "gogs";
+    rev = "v${version}";
+    sha256 = "1b9ilk4xlsllsj5pzmxwsz4a1zvgd06a8mi9ni9hbvmfl3w8xf28";
+  };
+
+  patches = [ ./static-root-path.patch ];
+
+  postPatch = ''
+    patchShebangs .
+    substituteInPlace pkg/setting/setting.go --subst-var data
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildFlags = optionalString sqliteSupport "-tags sqlite";
+
+  outputs = [ "bin" "out" "data" ];
+
+  postInstall = ''
+    mkdir $data
+    cp -R $src/{public,templates} $data
+
+    wrapProgram $bin/bin/gogs \
+      --prefix PATH : ${makeBinPath [ bash git gzip openssh ]}
+  '';
+
+  goPackagePath = "github.com/gogs/gogs";
+
+  meta = {
+    description = "A painless self-hosted Git service";
+    homepage = https://gogs.io;
+    license = licenses.mit;
+    maintainers = [ maintainers.schneefux ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gogs/static-root-path.patch b/nixpkgs/pkgs/applications/version-management/gogs/static-root-path.patch
new file mode 100644
index 000000000000..9eaa72a0c85d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gogs/static-root-path.patch
@@ -0,0 +1,13 @@
+diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go
+index f206592d..796da6ef 100644
+--- a/pkg/setting/setting.go
++++ b/pkg/setting/setting.go
+@@ -474,7 +474,7 @@ func NewContext() {
+ 	LocalURL = sec.Key("LOCAL_ROOT_URL").MustString(string(Protocol) + "://localhost:" + HTTPPort + "/")
+ 	OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
+ 	DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
+-	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(workDir)
++	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString("@data@")
+ 	AppDataPath = sec.Key("APP_DATA_PATH").MustString("data")
+ 	EnableGzip = sec.Key("ENABLE_GZIP").MustBool()
+ 
diff --git a/nixpkgs/pkgs/applications/version-management/gource/default.nix b/nixpkgs/pkgs/applications/version-management/gource/default.nix
new file mode 100644
index 000000000000..c52a2049a11d
--- /dev/null
+++ b/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_combined, boost, glm
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.49";
+  name = "gource-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/acaudwell/Gource/releases/download/${name}/${name}.tar.gz";
+    sha256 = "12hf5ipcsp9dxsqn84n4kr63xaiskrnf5a084wr29qk171lj7pd9";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    glew SDL2 ftgl libpng libjpeg pcre SDL2_image libGLU_combined
+    boost glm freetype
+  ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://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/nixpkgs/pkgs/applications/version-management/guitone/default.nix b/nixpkgs/pkgs/applications/version-management/guitone/default.nix
new file mode 100644
index 000000000000..33d2eb89ad08
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/guitone/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchmtn, qt4, qmake4Hook, pkgconfig, graphviz }:
+
+let version = "1.0-mtn-head"; in
+stdenv.mkDerivation rec {
+  name = "guitone-${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/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch b/nixpkgs/pkgs/applications/version-management/guitone/parallel-building.patch
new file mode 100644
index 000000000000..f0e924cbfb81
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/meld/default.nix b/nixpkgs/pkgs/applications/version-management/meld/default.nix
new file mode 100644
index 000000000000..bc45d8bb7528
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/meld/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, itstool, python3Packages, intltool, wrapGAppsHook
+, libxml2, gobject-introspection, gtk3, gnome3, cairo, file
+}:
+
+
+let
+  pname = "meld";
+  version = "3.18.3";
+  inherit (python3Packages) python buildPythonApplication pycairo pygobject3;
+in buildPythonApplication rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0vn1qx60f8113x8wh7f4bflhzir1vx7p0wdfi7nbip6fh8gaf3ln";
+  };
+
+  buildInputs = [
+    intltool wrapGAppsHook itstool libxml2
+    gnome3.gtksourceview gnome3.gsettings-desktop-schemas pycairo cairo
+    gnome3.defaultIconTheme gnome3.dconf file
+  ];
+  propagatedBuildInputs = [ gobject-introspection pygobject3 gtk3 ];
+
+  installPhase = ''
+    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"
+
+    mkdir -p $out/share/gsettings-schemas/$name
+    mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name/
+  '';
+
+  patchPhase = ''
+    patchShebangs bin/meld
+  '';
+
+  pythonPath = [ gtk3 ];
+
+  doCheck = false;
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Visual diff and merge tool";
+    homepage = http://meldmerge.org/;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = platforms.linux ++ stdenv.lib.platforms.darwin;
+    maintainers = [ maintainers.mimadrid ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
new file mode 100644
index 000000000000..f5127094bc9d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, python2Packages, makeWrapper, unzip
+, guiSupport ? false, tk ? null
+, ApplicationServices }:
+
+let
+  # if you bump version, update pkgs.tortoisehg too or ping maintainer
+  version = "4.8.1";
+  name = "mercurial-${version}";
+  inherit (python2Packages) docutils hg-git dulwich python;
+in python2Packages.buildPythonApplication {
+  inherit name;
+  format = "other";
+
+  src = fetchurl {
+    url = "https://mercurial-scm.org/release/${name}.tar.gz";
+    sha256 = "08gsn0s5802bs8ks77xqg7c8dwpbsh8df47kvb1gn14ivrf5z928";
+  };
+
+  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 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/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
new file mode 100644
index 000000000000..3c052a26cdee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
@@ -0,0 +1,53 @@
+{stdenv, fetchurl, ocaml, lablgtk, libgnomecanvas, camlp4, glib, pkgconfig, makeWrapper
+, 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
+stdenv.mkDerivation rec {
+  version = "1.0.2";
+  name = "monotone-viz-${version}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ocaml lablgtk libgnomecanvas glib graphviz_2_0 makeWrapper camlp4];
+  src = fetchurl {
+    url = "http://oandrieu.nerim.net/monotone-viz/${name}-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/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix b/nixpkgs/pkgs/applications/version-management/monotone-viz/graphviz-2.0.nix
new file mode 100644
index 000000000000..73acc3a6b36f
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/monotone/default.nix b/nixpkgs/pkgs/applications/version-management/monotone/default.nix
new file mode 100644
index 000000000000..0606c58c09d5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/monotone/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, boost, zlib, botan, libidn
+, lua, pcre, sqlite, perl, pkgconfig, expect
+, bzip2, gmp, openssl
+}:
+
+let
+  version = "1.1";
+  perlVersion = (builtins.parseDrvName perl.name).version;
+in
+
+assert perlVersion != "";
+
+stdenv.mkDerivation rec {
+  name = "monotone-${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/${name}
+    cp -rv contrib/ $out/share/${name}/contrib
+    mkdir -p $out/lib/perl5/site_perl/${perlVersion}
+    cp -v contrib/Monotone.pm $out/lib/perl5/site_perl/${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/nixpkgs/pkgs/applications/version-management/monotone/default.upstream b/nixpkgs/pkgs/applications/version-management/monotone/default.upstream
new file mode 100644
index 000000000000..e0d01fb190c6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/monotone/monotone-1.1-Adapt-to-changes-in-pcre-8.42.patch b/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/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/nixpkgs/pkgs/applications/version-management/mr/default.nix b/nixpkgs/pkgs/applications/version-management/mr/default.nix
new file mode 100644
index 000000000000..8150203814d0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/mr/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, perl }:
+
+stdenv.mkDerivation rec {
+  name = "mr-${version}";
+  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/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix b/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix
new file mode 100644
index 000000000000..18fb672226f2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/nbstripout/default.nix
@@ -0,0 +1,57 @@
+{lib, python2Packages, fetchFromGitHub, fetchurl, git, mercurial, coreutils}:
+
+with python2Packages;
+buildPythonApplication rec {
+  name = "${pname}-${version}";
+  version = "0.3.1";
+  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
+  buildInputs = [ pytest pytest-flake8 pytest-cram git pytestrunner ];
+  propagatedBuildInputs = [ ipython nbformat ];
+
+  # PyPI source is currently missing tests. Thus, use GitHub instead.
+  # See: https://github.com/kynan/nbstripout/issues/73
+  # Use PyPI again after it has been fixed in a release.
+  src = fetchFromGitHub {
+    owner = "kynan";
+    repo = pname;
+    rev = version;
+    sha256 = "1jifqmszjzyaqzaw2ir83k5fdb04iyxdad4lclawpb42hbink9ws";
+  };
+
+  patches = [
+    (
+      # Fix git diff tests by using --no-index.
+      # See: https://github.com/kynan/nbstripout/issues/74
+      #
+      # Remove this patch once the pull request has been merged and a new
+      # release made.
+      fetchurl {
+        url = "https://github.com/jluttine/nbstripout/commit/03e28424fb788dd09a95e99814977b0d0846c0b4.patch";
+        sha256 = "09myfb77a2wh8lqqs9fcpam97vmaw8b7zbq8n5gwn6d80zbl7dn0";
+      }
+    )
+  ];
+
+  # 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/nixpkgs/pkgs/applications/version-management/nitpick/default.nix b/nixpkgs/pkgs/applications/version-management/nitpick/default.nix
new file mode 100644
index 000000000000..8fb1095dc581
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/nitpick/default.nix
@@ -0,0 +1,41 @@
+{ fetchFromGitHub
+, buildPythonPackage
+, stdenv
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "nitpick";
+  version = "1.1";
+  name = "${pname}-${version}";
+
+  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/nixpkgs/pkgs/applications/version-management/p4v/default.nix b/nixpkgs/pkgs/applications/version-management/p4v/default.nix
new file mode 100644
index 000000000000..f82b80067bf2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/p4v/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebkit, openssl, xkeyboard_config, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "p4v-${version}";
+  version = "2017.3.1601999";
+
+  src = fetchurl {
+    url = "https://cdist2.perforce.com/perforce/r17.3/bin.linux26x86_64/p4v.tgz";
+    sha256 = "9ded42683141e1808535ec3e87d3149f890315c192d6e97212794fd54862b9a4";
+  };
+
+  dontBuild = true;
+  nativeBuildInputs = [makeWrapper];
+
+  ldLibraryPath = lib.makeLibraryPath [
+      stdenv.cc.cc.lib
+      qtbase
+      qtmultimedia
+      qtscript
+      qtsensors
+      qtwebkit
+      openssl
+  ];
+
+  installPhase = ''
+    mkdir $out
+    cp -r bin $out
+    mkdir -p $out/lib/p4v
+    cp -r lib/p4v/P4VResources $out/lib/p4v
+
+    for f in $out/bin/*.bin ; do
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f
+
+      wrapProgram $f \
+        --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \
+        --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb \
+        --suffix QT_PLUGIN_PATH : ${qtbase.bin}/${qtbase.qtPluginPrefix}
+    done
+  '';
+
+  meta = {
+    description = "Perforce Visual Client";
+    homepage = https://www.perforce.com;
+    license = stdenv.lib.licenses.unfreeRedistributable;
+    platforms = [ "x86_64-linux" ];
+    maintainers = [ stdenv.lib.maintainers.nioncode ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/peru/default.nix b/nixpkgs/pkgs/applications/version-management/peru/default.nix
new file mode 100644
index 000000000000..225dd367609f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/peru/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  name = "peru-${version}";
+  version = "1.1.4";
+
+  src = fetchFromGitHub {
+    owner = "buildinspace";
+    repo = "peru";
+    rev = "${version}";
+    sha256 = "0mzmi797f2h2wy36q4ab701ixl5zy4m0pp1wp9abwdfg2y6qhmnk";
+  };
+
+  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/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
new file mode 100644
index 000000000000..b97123926eb5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, pkgconfig }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+  name = "pijul-${version}";
+  version = "0.11.0";
+
+  src = fetchurl {
+    url = "https://pijul.org/releases/${name}.tar.gz";
+    sha256 = "e60793ab124e9054c1d5509698acbae507ebb2fab5364d964067bc9ae8b6b5e5";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  postInstall = ''
+    mkdir -p $out/share/{bash-completion/completions,zsh/site-functions,fish/vendor_completions.d}
+    $out/bin/pijul generate-completions --bash > $out/share/bash-completion/completions/pijul
+    $out/bin/pijul generate-completions --zsh > $out/share/zsh/site-functions/_pijul
+    $out/bin/pijul generate-completions --fish > $out/share/fish/vendor_completions.d/pijul.fish
+  '';
+
+  buildInputs = [ openssl libsodium ] ++ stdenv.lib.optionals stdenv.isDarwin
+    (with darwin.apple_sdk.frameworks; [ Security ]);
+
+  doCheck = false;
+
+  cargoSha256 = "1r76azmka1d76ff0ddfhzr24b0ry496qrp13945i3vs0fgzk2sdz";
+
+  meta = with stdenv.lib; {
+    description = "A distributed version control system";
+    homepage = https://pijul.org;
+    license = with licenses; [ gpl2Plus ];
+    maintainers = [ maintainers.gal_bolle ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix b/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix
new file mode 100644
index 000000000000..d3b027fada68
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/rabbitvcs/default.nix
@@ -0,0 +1,42 @@
+{ fetchFromGitHub, lib, python2Packages, meld, subversion, gvfs, xdg_utils }:
+python2Packages.buildPythonApplication rec {
+  name = "rabbitvcs-${version}";
+  version = "0.17.1";
+  namePrefix = "";
+
+  src = fetchFromGitHub {
+    owner = "rabbitvcs";
+    repo = "rabbitvcs";
+    rev = "v${version}";
+    sha256 = "01cr16zf3gzsci1hhfli79m34fcx5m1pvswl16rkxxn212yc9fhy";
+  };
+
+  pythonPath = with python2Packages; [ configobj dbus-python pygobject2 pygtk simplejson 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/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix b/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix
new file mode 100644
index 000000000000..e799d5fac43b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/rapidsvn/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, wxGTK, subversion, apr, aprutil, python }:
+
+stdenv.mkDerivation rec {
+  name = "rapidsvn-${version}";
+  version = "0.12.1";
+
+  src = fetchurl {
+    url = "http://www.rapidsvn.org/download/release/${version}/${name}.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/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch b/nixpkgs/pkgs/applications/version-management/rapidsvn/fix-build.patch
new file mode 100644
index 000000000000..ca4bc394c2c6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/rcs/default.nix b/nixpkgs/pkgs/applications/version-management/rcs/default.nix
new file mode 100644
index 000000000000..df1739aea572
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/rcs/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, ed }:
+
+stdenv.mkDerivation rec {
+  name = "rcs-5.9.4";
+
+  src = fetchurl {
+    url = "mirror://gnu/rcs/${name}.tar.xz";
+    sha256 = "1zsx7bb0rgvvvisiy4zlixf56ay8wbd9qqqcp1a1g0m1gl6mlg86";
+  };
+
+  buildInputs = [ ed ];
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = [ "-std=c99" ];
+
+  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.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/Gemfile b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
new file mode 100644
index 000000000000..a5c509f81a9a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
@@ -0,0 +1,86 @@
+source 'https://rubygems.org'
+
+if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('1.5.0')
+  abort "Redmine requires Bundler 1.5.0 or higher (you're using #{Bundler::VERSION}).\nPlease update with 'gem update bundler'."
+end
+
+gem "rails", "4.2.8"
+gem "addressable", "2.4.0" if RUBY_VERSION < "2.0"
+if RUBY_VERSION < "2.1"
+  gem "public_suffix", (RUBY_VERSION < "2.0" ? "~> 1.4" : "~> 2.0.5")
+end
+gem "jquery-rails", "~> 3.1.4"
+gem "coderay", "~> 1.1.1"
+gem "request_store", "1.0.5"
+gem "mime-types", (RUBY_VERSION >= "2.0" ? "~> 3.0" : "~> 2.99")
+gem "protected_attributes"
+gem "actionpack-xml_parser"
+gem "roadie-rails", "~> 1.1.1"
+gem "roadie", "~> 3.2.1"
+gem "mimemagic"
+gem "mail", "~> 2.6.4"
+
+gem "nokogiri", (RUBY_VERSION >= "2.1" ? "~> 1.8.1" : "~> 1.6.8")
+gem "i18n", "~> 0.7.0"
+gem "ffi", "1.9.14", :platforms => :mingw if RUBY_VERSION < "2.0"
+
+# Request at least rails-html-sanitizer 1.0.3 because of security advisories
+gem "rails-html-sanitizer", ">= 1.0.3"
+
+# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
+gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
+gem "rbpdf", "~> 1.19.3"
+
+# Optional gem for LDAP authentication
+group :ldap do
+  gem "net-ldap", "~> 0.12.0"
+end
+
+# Optional gem for OpenID authentication
+group :openid do
+  gem "ruby-openid", "~> 2.3.0", :require => "openid"
+  gem "rack-openid"
+end
+
+platforms :mri, :mingw, :x64_mingw do
+  # Optional gem for exporting the gantt to a PNG file, not supported with jruby
+  group :rmagick do
+    gem "rmagick", ">= 2.14.0"
+  end
+
+  # Optional Markdown support, not for JRuby
+  group :markdown do
+    gem "redcarpet", "~> 3.4.0"
+  end
+end
+
+# Include database gems for the database adapters NixOS supports
+gem "mysql2", "~> 0.4.6", :platforms => [:mri, :mingw, :x64_mingw]
+gem "pg", "~> 0.18.1", :platforms => [:mri, :mingw, :x64_mingw]
+
+group :development do
+  gem "rdoc", "~> 4.3"
+  gem "yard"
+end
+
+group :test do
+  gem "minitest"
+  gem "rails-dom-testing"
+  gem "mocha"
+  gem "simplecov", "~> 0.9.1", :require => false
+  # TODO: remove this after upgrading to Rails 5
+  gem "test_after_commit", "~> 0.4.2"
+  # For running UI tests
+  gem "capybara"
+  gem "selenium-webdriver", "~> 2.53.4"
+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/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
new file mode 100644
index 000000000000..c8ef35d19434
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -0,0 +1,204 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    actionmailer (4.2.8)
+      actionpack (= 4.2.8)
+      actionview (= 4.2.8)
+      activejob (= 4.2.8)
+      mail (~> 2.5, >= 2.5.4)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+    actionpack (4.2.8)
+      actionview (= 4.2.8)
+      activesupport (= 4.2.8)
+      rack (~> 1.6)
+      rack-test (~> 0.6.2)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.2)
+    actionpack-xml_parser (1.0.2)
+      actionpack (>= 4.0.0, < 5)
+    actionview (4.2.8)
+      activesupport (= 4.2.8)
+      builder (~> 3.1)
+      erubis (~> 2.7.0)
+      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-html-sanitizer (~> 1.0, >= 1.0.3)
+    activejob (4.2.8)
+      activesupport (= 4.2.8)
+      globalid (>= 0.3.0)
+    activemodel (4.2.8)
+      activesupport (= 4.2.8)
+      builder (~> 3.1)
+    activerecord (4.2.8)
+      activemodel (= 4.2.8)
+      activesupport (= 4.2.8)
+      arel (~> 6.0)
+    activesupport (4.2.8)
+      i18n (~> 0.7)
+      minitest (~> 5.1)
+      thread_safe (~> 0.3, >= 0.3.4)
+      tzinfo (~> 1.1)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    arel (6.0.4)
+    builder (3.2.3)
+    capybara (3.9.0)
+      addressable
+      mini_mime (>= 0.1.3)
+      nokogiri (~> 1.8)
+      rack (>= 1.6.0)
+      rack-test (>= 0.6.3)
+      xpath (~> 3.1)
+    childprocess (0.9.0)
+      ffi (~> 1.0, >= 1.0.11)
+    coderay (1.1.2)
+    concurrent-ruby (1.0.5)
+    crass (1.0.4)
+    css_parser (1.6.0)
+      addressable
+    docile (1.1.5)
+    erubis (2.7.0)
+    ffi (1.9.25)
+    globalid (0.4.1)
+      activesupport (>= 4.2.0)
+    htmlentities (4.3.4)
+    i18n (0.7.0)
+    jquery-rails (3.1.5)
+      railties (>= 3.0, < 5.0)
+      thor (>= 0.14, < 2.0)
+    loofah (2.2.2)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.5.9)
+    mail (2.6.6)
+      mime-types (>= 1.16, < 4)
+    metaclass (0.0.4)
+    mime-types (3.2.2)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2018.0812)
+    mimemagic (0.3.2)
+    mini_mime (1.0.1)
+    mini_portile2 (2.3.0)
+    minitest (5.11.3)
+    mocha (1.7.0)
+      metaclass (~> 0.0.1)
+    multi_json (1.13.1)
+    mysql2 (0.4.10)
+    net-ldap (0.12.1)
+    nokogiri (1.8.5)
+      mini_portile2 (~> 2.3.0)
+    pg (0.18.4)
+    protected_attributes (1.1.4)
+      activemodel (>= 4.0.1, < 5.0)
+    public_suffix (3.0.3)
+    rack (1.6.11)
+    rack-openid (1.4.2)
+      rack (>= 1.1.0)
+      ruby-openid (>= 2.1.8)
+    rack-test (0.6.3)
+      rack (>= 1.0)
+    rails (4.2.8)
+      actionmailer (= 4.2.8)
+      actionpack (= 4.2.8)
+      actionview (= 4.2.8)
+      activejob (= 4.2.8)
+      activemodel (= 4.2.8)
+      activerecord (= 4.2.8)
+      activesupport (= 4.2.8)
+      bundler (>= 1.3.0, < 2.0)
+      railties (= 4.2.8)
+      sprockets-rails
+    rails-deprecated_sanitizer (1.0.3)
+      activesupport (>= 4.2.0.alpha)
+    rails-dom-testing (1.0.9)
+      activesupport (>= 4.2.0, < 5.0)
+      nokogiri (~> 1.6)
+      rails-deprecated_sanitizer (>= 1.0.1)
+    rails-html-sanitizer (1.0.4)
+      loofah (~> 2.2, >= 2.2.2)
+    railties (4.2.8)
+      actionpack (= 4.2.8)
+      activesupport (= 4.2.8)
+      rake (>= 0.8.7)
+      thor (>= 0.18.1, < 2.0)
+    rake (12.3.1)
+    rbpdf (1.19.6)
+      htmlentities
+      rbpdf-font (~> 1.19.0)
+    rbpdf-font (1.19.1)
+    rdoc (4.3.0)
+    redcarpet (3.4.0)
+    request_store (1.0.5)
+    rmagick (2.16.0)
+    roadie (3.2.2)
+      css_parser (~> 1.4)
+      nokogiri (~> 1.5)
+    roadie-rails (1.1.1)
+      railties (>= 3.0, < 5.1)
+      roadie (~> 3.1)
+    ruby-openid (2.3.0)
+    rubyzip (1.2.2)
+    selenium-webdriver (2.53.4)
+      childprocess (~> 0.5)
+      rubyzip (~> 1.0)
+      websocket (~> 1.0)
+    simplecov (0.9.2)
+      docile (~> 1.1.0)
+      multi_json (~> 1.0)
+      simplecov-html (~> 0.9.0)
+    simplecov-html (0.9.0)
+    sprockets (3.7.2)
+      concurrent-ruby (~> 1.0)
+      rack (> 1, < 3)
+    sprockets-rails (3.2.1)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
+    test_after_commit (0.4.2)
+      activerecord (>= 3.2)
+    thor (0.20.0)
+    thread_safe (0.3.6)
+    tzinfo (1.2.5)
+      thread_safe (~> 0.1)
+    websocket (1.2.8)
+    xpath (3.1.0)
+      nokogiri (~> 1.8)
+    yard (0.9.16)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  actionpack-xml_parser
+  capybara
+  coderay (~> 1.1.1)
+  i18n (~> 0.7.0)
+  jquery-rails (~> 3.1.4)
+  mail (~> 2.6.4)
+  mime-types (~> 3.0)
+  mimemagic
+  minitest
+  mocha
+  mysql2 (~> 0.4.6)
+  net-ldap (~> 0.12.0)
+  nokogiri (~> 1.8.1)
+  pg (~> 0.18.1)
+  protected_attributes
+  rack-openid
+  rails (= 4.2.8)
+  rails-dom-testing
+  rails-html-sanitizer (>= 1.0.3)
+  rbpdf (~> 1.19.3)
+  rdoc (~> 4.3)
+  redcarpet (~> 3.4.0)
+  request_store (= 1.0.5)
+  rmagick (>= 2.14.0)
+  roadie (~> 3.2.1)
+  roadie-rails (~> 1.1.1)
+  ruby-openid (~> 2.3.0)
+  selenium-webdriver (~> 2.53.4)
+  simplecov (~> 0.9.1)
+  test_after_commit (~> 0.4.2)
+  tzinfo-data
+  yard
+
+BUNDLED WITH
+   1.16.4
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/default.nix b/nixpkgs/pkgs/applications/version-management/redmine/default.nix
new file mode 100644
index 000000000000..d07e0f3e4544
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/redmine/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, bundlerEnv, ruby }:
+
+let
+  version = "3.4.6";
+  rubyEnv = bundlerEnv {
+    name = "redmine-env-${version}";
+
+    inherit ruby;
+    gemdir = ./.;
+    groups = [ "ldap" "openid" ];
+  };
+in
+  stdenv.mkDerivation rec {
+    name = "redmine-${version}";
+
+    src = fetchurl {
+      url = "https://www.redmine.org/releases/${name}.tar.gz";
+      sha256 = "15akq6pn42w7cf7dg45xmvw06fixck1qznp7s8ix7nyxlmcyvcg3";
+    };
+
+    buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
+
+    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 = http://www.redmine.org/;
+      platforms = platforms.linux;
+      maintainers = [ maintainers.garbas ];
+      license = licenses.gpl2;
+    };
+  }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix b/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
new file mode 100644
index 000000000000..c0b8cb8d6e2d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
@@ -0,0 +1,615 @@
+{
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pr3cmr0bpgg5d0f6wy1z6r45n14r9yin8jnr4hi3ssf402xpc0q";
+      type = "gem";
+    };
+    version = "4.2.8";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09fbazl0ja80na2wadfp3fzmdmdy1lsb4wd2yg7anbj0zk0ap7a9";
+      type = "gem";
+    };
+    version = "4.2.8";
+  };
+  actionpack-xml_parser = {
+    dependencies = ["actionpack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17am4nd7x6g8x7f8i35rzzv2qrxlkc230rbgzg98af0yf50j8gka";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubis" "rails-dom-testing" "rails-html-sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mg4a8143q2wjhjq4mngl69jkv249z5jvg0jkdribdv4zkg586rp";
+      type = "gem";
+    };
+    version = "4.2.8";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kazbpfgzz6cdmwjnlb9m671ps4qgggwv2hy8y9xi4h96djyyfqz";
+      type = "gem";
+    };
+    version = "4.2.8";
+  };
+  activemodel = {
+    dependencies = ["activesupport" "builder"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11vhh7zmp92880s5sx8r32v2p0b7xg039mfr92pjynpkz4q901ld";
+      type = "gem";
+    };
+    version = "4.2.8";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport" "arel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kk4dhn8jfhqfsf1dmb3a183gix6k46xr6cjkxj0rp51w2za1ns0";
+      type = "gem";
+    };
+    version = "4.2.8";
+  };
+  activesupport = {
+    dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wibdzd2f5l5rlsw1a1y3j3fhw2imrrbkxggdraa6q9qbdnc66hi";
+      type = "gem";
+    };
+    version = "4.2.8";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      type = "gem";
+    };
+    version = "2.5.2";
+  };
+  arel = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nfcrdiys6q6ylxiblky9jyssrw2xj96fmxmal7f4f0jj3417vj4";
+      type = "gem";
+    };
+    version = "6.0.4";
+  };
+  builder = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+      type = "gem";
+    };
+    version = "3.2.3";
+  };
+  capybara = {
+    dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "xpath"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sz6ick0pn7886jh9fd4571wyplshnpb95pr22ds4hd51zcrnfi4";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
+  childprocess = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  coderay = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  concurrent-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  crass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gwvf8mc8gnz4aizfijplv3594998h2j44ydakpzsdmkivs07v61";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  docile = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  erubis = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  ffi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+      type = "gem";
+    };
+    version = "1.9.25";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38";
+      type = "gem";
+    };
+    version = "0.4.1";
+  };
+  htmlentities = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+      type = "gem";
+    };
+    version = "4.3.4";
+  };
+  i18n = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  jquery-rails = {
+    dependencies = ["railties" "thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lk7xqmms45czylxs22kv5khlbm7a0yqcchqijxb9m10zsqc6lp5";
+      type = "gem";
+    };
+    version = "3.1.5";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yjs6wbcj3n06d3xjqpy3qbpx0bfa12h3x2rbpc2k33ldjlkx6zy";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  mail = {
+    dependencies = ["mime-types"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d7lhj2dw52ycls6xigkfz6zvfhc6qggply9iycjmcyj9760yvz9";
+      type = "gem";
+    };
+    version = "2.6.6";
+  };
+  metaclass = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  mime-types-data = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+      type = "gem";
+    };
+    version = "3.2018.0812";
+  };
+  mimemagic = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  mini_mime = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  mini_portile2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  minitest = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+      type = "gem";
+    };
+    version = "5.11.3";
+  };
+  mocha = {
+    dependencies = ["metaclass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13whjmrm4n48rwx7h7a2jwa5grar3m0fxspbm2pm4lyp7hi119c1";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  multi_json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  mysql2 = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qjd97w6a0w9aldsrhb2y6jrc4wnnlbj5j8kcl7pp7vviwa0r5iq";
+      type = "gem";
+    };
+    version = "0.4.10";
+  };
+  net-ldap = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z1j0zklbbx3vi91zcd2v0fnkfgkvq3plisa6hxaid8sqndyak46";
+      type = "gem";
+    };
+    version = "0.12.1";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  pg = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07dv4ma9xd75xpsnnwwg1yrpwpji7ydy0q1d9dl0yfqbzpidrw32";
+      type = "gem";
+    };
+    version = "0.18.4";
+  };
+  protected_attributes = {
+    dependencies = ["activemodel"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18lvrvmcwjvjr2mrn20vaf68a0q6mg4cy9f0m1i7x83p0ljhhyar";
+      type = "gem";
+    };
+    version = "1.1.4";
+  };
+  public_suffix = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  rack = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g9926ln2lw12lfxm4ylq1h6nl0rafl10za3xvjzc87qvnqic87f";
+      type = "gem";
+    };
+    version = "1.6.11";
+  };
+  rack-openid = {
+    dependencies = ["rack" "ruby-openid"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sg85yn981j3a0iri3ch4znzdwscvz29l7vrk3dafqw4fdg31llc";
+      type = "gem";
+    };
+    version = "1.4.2";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h6x5jq24makgv2fq5qqgjlrk74dxfy62jif9blk43llw8ib2q7z";
+      type = "gem";
+    };
+    version = "0.6.3";
+  };
+  rails = {
+    dependencies = ["actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dpbf3ybzbhqqkwg5vi60121860cr8fybvchrxk5wy3f2jcj0mch";
+      type = "gem";
+    };
+    version = "4.2.8";
+  };
+  rails-deprecated_sanitizer = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qxymchzdxww8bjsxj05kbf86hsmrjx40r41ksj0xsixr2gmhbbj";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "nokogiri" "rails-deprecated_sanitizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wssfqpn00byhvp2372p99mphkcj8qx6pf6646avwr9ifvq0q1x6";
+      type = "gem";
+    };
+    version = "1.0.9";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+      type = "gem";
+    };
+    version = "1.0.4";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "rake" "thor"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bavl4hj7bnl3ryqi9rvykm410kflplgingkcxasfv1gdilddh4g";
+      type = "gem";
+    };
+    version = "4.2.8";
+  };
+  rake = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
+      type = "gem";
+    };
+    version = "12.3.1";
+  };
+  rbpdf = {
+    dependencies = ["htmlentities" "rbpdf-font"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "159vg56bzy09f6zrh9h3rxm2r0vkvsfn9qczqmv1vi5xkd918s0d";
+      type = "gem";
+    };
+    version = "1.19.6";
+  };
+  rbpdf-font = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v";
+      type = "gem";
+    };
+    version = "1.19.1";
+  };
+  rdoc = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13ba2mhqqcsp3k97x3iz9x29xk26rv4561lfzzzibcy41vvj1n4c";
+      type = "gem";
+    };
+    version = "4.3.0";
+  };
+  redcarpet = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  request_store = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ky19wb6mpq6dxb81a0h4hnzx7a4ka99n9ay2syi68djbr4bkbbh";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  rmagick = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m9x15cdlkcb9826s3s2jd97hxf50hln22p94x8hcccxi1lwklq6";
+      type = "gem";
+    };
+    version = "2.16.0";
+  };
+  roadie = {
+    dependencies = ["css_parser" "nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0frp5yb07ib9y1k43shd4xjkb9a6wavhqq892l8yi9y73qi2cqbc";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  roadie-rails = {
+    dependencies = ["railties" "roadie"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hxgl5marq2hi6lcc73f7g6afd7dz4w893rrgrbh7m3k8zrwjyk1";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  ruby-openid = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yzaf2c1i88757554wk38rxqmj0xzgmwk2zx7gi98w2zx42d17pn";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  rubyzip = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  selenium-webdriver = {
+    dependencies = ["childprocess" "rubyzip" "websocket"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15qyf7b9fa2nxhhwp551b9fjj82kb3wmy65559yrrcwpdadqvcs4";
+      type = "gem";
+    };
+    version = "2.53.4";
+  };
+  simplecov = {
+    dependencies = ["docile" "multi_json" "simplecov-html"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a3wy9zlmfwl3f47cibnxyxrgfz16y6fmy0dj1vyidzyys4mvy12";
+      type = "gem";
+    };
+    version = "0.9.2";
+  };
+  simplecov-html = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jv9pmpaxihrcsgcf6mgl3qg7rhf9scl5l2k67d768w9cz63xgvc";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  sprockets = {
+    dependencies = ["concurrent-ruby" "rack"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  sprockets-rails = {
+    dependencies = ["actionpack" "activesupport" "sprockets"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+      type = "gem";
+    };
+    version = "3.2.1";
+  };
+  test_after_commit = {
+    dependencies = ["activerecord"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fzg8qan6f0n0ynr594bld2k0rwwxj99yzhiga2f3pkj9ina1abb";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  thor = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmqpyj642sk4g16nkbq6pj856adpv91lp4krwhqkh2iw63aszdl";
+      type = "gem";
+    };
+    version = "0.20.0";
+  };
+  thread_safe = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+      type = "gem";
+    };
+    version = "1.2.5";
+  };
+  websocket = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f11rcn4qgffb1rq4kjfwi7di79w8840x9l74pkyif5arp0mb08x";
+      type = "gem";
+    };
+    version = "1.2.8";
+  };
+  xpath = {
+    dependencies = ["nokogiri"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1y61ijvv04bwga802s8py5xd7fcxci6478wgr9wkd35p45x20jzi";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
+  yard = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lmmr1839qgbb3zxfa7jf5mzy17yjl1yirwlgzdhws4452gqhn67";
+      type = "gem";
+    };
+    version = "0.9.16";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix b/nixpkgs/pkgs/applications/version-management/reposurgeon/default.nix
new file mode 100644
index 000000000000..8dd46405d31f
--- /dev/null
+++ b/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
+, bazaar ? 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 bazaar 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/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch b/nixpkgs/pkgs/applications/version-management/reposurgeon/fix-makefile.patch
new file mode 100644
index 000000000000..0a659c93406d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/sit/default.nix b/nixpkgs/pkgs/applications/version-management/sit/default.nix
new file mode 100644
index 000000000000..75368bd88463
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/sit/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, rustPlatform, cmake, libzip, gnupg, 
+  # Darwin
+  libiconv, CoreFoundation, Security }:
+
+rustPlatform.buildRustPackage rec {
+  name = "sit-${version}";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "sit-fyi";
+    repo = "sit";
+    rev = "v${version}";
+    sha256 = "10ycs6vc7mfzxnxrki09xn974pcwh196h1pfnsds98x6r87hxkpn";
+  };
+
+  buildInputs = [ cmake libzip gnupg ] ++
+    (if stdenv.isDarwin then [ libiconv CoreFoundation Security ] else []);
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  cargoSha256 = "023anmnprxbsvqww1b1bdyfhbhjh1ah2kc67cdihvdvi4lqdmbia";
+
+  meta = with stdenv.lib; {
+    description = "Serverless Information Tracker";
+    homepage = https://sit.fyi/;
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ dywedir yrashk ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix b/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix
new file mode 100644
index 000000000000..d6ae37c3f7fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, lib, makeWrapper
+, jre
+, gtk2, glib
+, libXtst
+, which
+}:
+
+stdenv.mkDerivation rec {
+  name = "smartgithg-${version}";
+  version = "18_1_5";
+
+  src = fetchurl {
+    url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${version}.tar.gz";
+    sha256 = "0f2aj3259jvn7n0x6m8sbwliikln9lqffd00jg75dblhxwl8adg3";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ jre ];
+
+  buildCommand = let
+    pkg_path = "$out/${name}";
+    bin_path = "$out/bin";
+    install_freedesktop_items = ./install_freedesktop_items.sh;
+    runtime_paths = lib.makeBinPath [
+      jre
+      #git mercurial subversion # the paths are requested in configuration
+      which
+    ];
+    runtime_lib_paths = lib.makeLibraryPath [
+      gtk2 glib
+      libXtst
+    ];
+  in ''
+    tar xvzf $src
+    mkdir -pv $out
+    mkdir -pv ${pkg_path}
+    # unpacking should have produced a dir named 'smartgit'
+    cp -a smartgit/* ${pkg_path}
+    # prevent using packaged jre
+    rm -r ${pkg_path}/jre
+    mkdir -pv ${bin_path}
+    jre=${jre.home}
+    makeWrapper ${pkg_path}/bin/smartgit.sh ${bin_path}/smartgit \
+      --prefix PATH : ${runtime_paths} \
+      --prefix LD_LIBRARY_PATH : ${runtime_lib_paths} \
+      --prefix JRE_HOME : ${jre} \
+      --prefix JAVA_HOME : ${jre} \
+      --prefix SMARTGITHG_JAVA_HOME : ${jre}
+    sed -i '/ --login/d' ${pkg_path}/bin/smartgit.sh
+    patchShebangs $out
+    cp ${bin_path}/smartgit ${bin_path}/smartgithg
+
+    ${install_freedesktop_items} "${pkg_path}/bin" "$out"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GUI for Git, Mercurial, Subversion";
+    homepage = http://www.syntevo.com/smartgit/;
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ jraygauthier ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh b/nixpkgs/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh
new file mode 100755
index 000000000000..66fb0cf8f95a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/smartgithg/install_freedesktop_items.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+inBinDir=$1
+out=$2
+
+cat $inBinDir/add-menuitem.sh | \
+sed -re 's#xdg-icon-resource[ ]+install[ ]+--size[ ]+([0-9]+)[ ]+("[^"]+")[ ]+([$0-9a-zA-Z_]+)#mkdir -p '${out}'/share/icons/hicolor/\1x\1/apps \&\& cp \2 '${out}'/share/icons/hicolor/\1x\1/apps/\3\.png #' | \
+sed -re 's#xdg-desktop-menu[ ]+install[ ]+([$0-9a-zA-Z_]+)#mkdir -p '${out}'/share/applications \&\& cp \1 '${out}'/share/applications/#' | \
+sed -re 's#Exec="[^"]+"#Exec=smartgit#' |
+sed -re 's#SMARTGIT_BIN=.*#'SMARTGIT_BIN=${inBinDir}'#' \
+| bash
diff --git a/nixpkgs/pkgs/applications/version-management/src/default.nix b/nixpkgs/pkgs/applications/version-management/src/default.nix
new file mode 100644
index 000000000000..1054a2c06cff
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/src/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, python, rcs, git, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "src-${version}";
+  version = "1.22";
+
+  src = fetchurl {
+    url = "http://www.catb.org/~esr/src/${name}.tar.gz";
+    sha256 = "0xvfg3aikr2jh09vjvxsha7day5br88chvirncr59ad40da1fils";
+  };
+
+  buildInputs = [ python rcs git makeWrapper ];
+
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  makeFlags = [ "prefix=$(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/;
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ calvertvl AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/srcml/default.nix b/nixpkgs/pkgs/applications/version-management/srcml/default.nix
new file mode 100644
index 000000000000..8753d4f6f571
--- /dev/null
+++ b/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";
+  name = "srcml-${version}";
+
+  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/nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch b/nixpkgs/pkgs/applications/version-management/srcml/gcc6.patch
new file mode 100644
index 000000000000..7cd596d9ea78
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch b/nixpkgs/pkgs/applications/version-management/subversion/apr-1.patch
new file mode 100644
index 000000000000..240d94f3f977
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/subversion/default.nix b/nixpkgs/pkgs/applications/version-management/subversion/default.nix
new file mode 100644
index 000000000000..dfcc28142ac7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/subversion/default.nix
@@ -0,0 +1,134 @@
+{ bdbSupport ? false # build support for Berkeley DB repositories
+, httpServer ? false # build Apache DAV module
+, httpSupport ? false # 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;
+    name = "subversion-${version}";
+
+    src = fetchurl {
+      url = "mirror://apache/subversion/${name}.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 ];
+
+    # SVN build seems broken on gcc5:
+    # https://gcc.gnu.org/gcc-5/porting_to.html
+    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 {
+  subversion18 = common {
+    version = "1.8.19";
+    sha256 = "1gp6426gkdza6ni2whgifjcmjb4nq34ljy07yxkrhlarvfq6ks2n";
+  };
+
+  subversion19 = common {
+    version = "1.9.9";
+    sha256 = "1ll13ychbkp367c7zsrrpda5nygkryma5k18qfr8wbaq7dbvxzcd";
+  };
+
+  subversion_1_10 = common {
+    version = "1.10.3";
+    sha256 = "1z6r3n91a4znsh68rl3jisfr7k4faymhbpalmmvsmvsap34al3cz";
+    extraBuildInputs = [ lz4 utf8proc ];
+  };
+
+  subversion_1_11 = common {
+    version = "1.11.0";
+    sha256 = "0miyz3xsxxp56iczxv6yqd8p06av3vxpb5nasyg2xb3ln1247i47";
+    extraBuildInputs = [ lz4 utf8proc ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/tailor/default.nix b/nixpkgs/pkgs/applications/version-management/tailor/default.nix
new file mode 100644
index 000000000000..c68cc928848d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/tailor/default.nix
@@ -0,0 +1,19 @@
+{ fetchurl, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  name = "tailor-${version}";
+  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/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix b/nixpkgs/pkgs/applications/version-management/tkcvs/default.nix
new file mode 100644
index 000000000000..48558c15dc1c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix b/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix
new file mode 100644
index 000000000000..b7334ebbe5e7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/tortoisehg/default.nix
@@ -0,0 +1,38 @@
+{lib, fetchurl, mercurial, python2Packages}:
+
+python2Packages.buildPythonApplication rec {
+    name = "tortoisehg-${version}";
+    version = "4.8.1";
+
+    src = fetchurl {
+      url = "https://bitbucket.org/tortoisehg/targz/downloads/${name}.tar.gz";
+      sha256 = "10s7v7mi438b8lh3rpd6da9lkwgaflpi6a0inkd8bl4b4ya38vc6";
+    };
+
+    pythonPath = with python2Packages; [ pyqt4 mercurial qscintilla iniparse ];
+
+    propagatedBuildInputs = with python2Packages; [ qscintilla iniparse ];
+
+    doCheck = false; # tests fail with "thg: cannot connect to X server"
+    dontStrip = true;
+    buildPhase = "";
+    installPhase = ''
+      ${python2Packages.python.executable} setup.py install --prefix=$out
+      mkdir -p $out/share/doc/tortoisehg
+      cp COPYING.txt $out/share/doc/tortoisehg/Copying.txt.gz
+      ln -s $out/bin/thg $out/bin/tortoisehg     #convenient alias
+    '';
+
+    checkPhase = ''
+      echo "test: thg version"
+      $out/bin/thg version
+    '';
+
+    meta = {
+      description = "Qt based graphical tool for working with Mercurial";
+      homepage = http://tortoisehg.bitbucket.org/;
+      license = lib.licenses.gpl2;
+      platforms = lib.platforms.linux;
+      maintainers = with lib.maintainers; [ danbst ];
+    };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix b/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix
new file mode 100644
index 000000000000..c2bf0a4183c1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/vcprompt/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchhg, autoconf, sqlite }:
+
+stdenv.mkDerivation rec {
+  name = "vcprompt-${version}";
+  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/nixpkgs/pkgs/applications/version-management/vcsh/default.nix b/nixpkgs/pkgs/applications/version-management/vcsh/default.nix
new file mode 100644
index 000000000000..0f0eec7ef9cd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/vcsh/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, which, git, ronn, perl, ShellCommand
+, TestMost, TestDifferences, TestDeep, TestException, TestWarn
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.20170915";       # date of commit we're pulling
+  name = "vcsh-${version}";
+
+  src = fetchFromGitHub {
+    owner = "RichiH";
+    repo = "vcsh";
+    rev = "eadb8df6aa71a76e5be36492edcadb118bd862ac";
+    sha256 = "1wfzp8167lcq6akdpbi8fikjv0z3h1i5minh3423dljc04q0klm1";
+  };
+
+  buildInputs = [
+    which git ronn 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; [ garbas ttuegel ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/yadm/default.nix b/nixpkgs/pkgs/applications/version-management/yadm/default.nix
new file mode 100644
index 000000000000..0553b60fde71
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/yadm/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub }:
+
+let version = "1.12.0"; in
+stdenv.mkDerivation {
+  name = "yadm-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "TheLocehiliosan";
+    repo   = "yadm";
+    rev    = "${version}";
+    sha256 = "0873jgks7dpfkj5km1jchxdrhf7lia70p0f8zsrh9p4crj5f4pc6";
+  };
+
+  buildCommand = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/man/man1
+    sed -e 's:/bin/bash:/usr/bin/env bash:' $src/yadm > $out/bin/yadm
+    chmod 755 $out/bin/yadm
+    install -m 644 $src/yadm.1 $out/share/man/man1/yadm.1
+  '';
+
+  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/nixpkgs/pkgs/applications/video/aegisub/default.nix b/nixpkgs/pkgs/applications/video/aegisub/default.nix
new file mode 100644
index 000000000000..3dd0cc5adc29
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/aegisub/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl
+, libX11, wxGTK
+, libiconv, fontconfig, freetype
+, libGLU_combined
+, libass, fftw, ffms
+, ffmpeg, pkgconfig, zlib # Undocumented (?) dependencies
+, icu, boost, intltool # New dependencies
+, spellcheckSupport ? true, hunspell ? null
+, automationSupport ? true, lua ? null
+, openalSupport ? false, openal ? null
+, alsaSupport ? true, alsaLib ? null
+, pulseaudioSupport ? true, 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 {
+  name = "aegisub-${version}";
+  version = "3.2.2";
+
+  src = fetchurl {
+    url = "http://ftp.aegisub.org/pub/releases/${name}.tar.xz";
+    sha256 = "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5";
+  };
+
+  # Fixup build with icu-59
+  postPatch = "sed '1i#include <unicode/unistr.h>' -i src/utils.cpp";
+
+  buildInputs = with stdenv.lib;
+  [ pkgconfig intltool libX11 wxGTK fontconfig freetype libGLU_combined
+    libass fftw ffms ffmpeg zlib icu boost boost.out libiconv
+  ]
+    ++ optional spellcheckSupport hunspell
+    ++ optional automationSupport lua
+    ++ optional openalSupport openal
+    ++ optional alsaSupport alsaLib
+    ++ optional pulseaudioSupport libpulseaudio
+    ++ optional portaudioSupport portaudio
+    ;
+
+  enableParallelBuilding = true;
+
+  hardeningDisable = [ "bindnow" "relro" ];
+
+  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/;
+    license = licenses.bsd3;
+              # The Aegisub sources are itself BSD/ISC,
+              # but they are linked against GPL'd softwares
+              # - so the resulting program will be GPL
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/avidemux/bootstrap_logging.patch b/nixpkgs/pkgs/applications/video/avidemux/bootstrap_logging.patch
new file mode 100644
index 000000000000..8f45251d26c2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/avidemux/default.nix b/nixpkgs/pkgs/applications/video/avidemux/default.nix
new file mode 100644
index 000000000000..5fcab43c86ba
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/avidemux/default.nix
@@ -0,0 +1,94 @@
+{ stdenv, lib, fetchurl, cmake, pkgconfig
+, zlib, gettext, libvdpau, libva, libXv, sqlite
+, yasm, freetype, fontconfig, fribidi
+, makeWrapper, libXext, libGLU, qttools, qtbase
+, 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 {
+  name = "avidemux-${version}";
+  version = "2.7.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/avidemux/avidemux/${version}/avidemux_${version}.tar.gz";
+    sha256 = "15g9h791qbnmycabbbl7s2b3n3xpvygm88qrfk35g2cw6957ik9w";
+  };
+
+  patches = [
+    ./dynamic_install_dir.patch
+    ./bootstrap_logging.patch
+  ];
+
+  nativeBuildInputs = [ yasm cmake pkgconfig ];
+  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}";
+    wrapProgram = f: "wrapProgram ${f} --set ADM_ROOT_DIR $out --prefix LD_LIBRARY_PATH : ${libXext}/lib";
+  in ''
+    unpackPhase
+    cd "$sourceRoot"
+    patchPhase
+
+    export 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 ''
+      ${wrapProgram "$out/bin/avidemux3_qt5"} --prefix QT_PLUGIN_PATH : ${qtbase}/lib/qt-${qtVersion}/plugins
+      ${wrapProgram "$out/bin/avidemux3_jobs_qt5"} --prefix QT_PLUGIN_PATH : ${qtbase}/lib/qt-${qtVersion}/plugins
+    ''}
+
+    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/nixpkgs/pkgs/applications/video/avidemux/dynamic_install_dir.patch b/nixpkgs/pkgs/applications/video/avidemux/dynamic_install_dir.patch
new file mode 100644
index 000000000000..803cde02ec2e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/avxsynth/default.nix b/nixpkgs/pkgs/applications/video/avxsynth/default.nix
new file mode 100644
index 000000000000..a76608bdd900
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/avxsynth/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, cairo, ffmpeg, ffms, libjpeg, log4cpp, pango
+, avxeditSupport ? false, qt4 ? null
+}:
+
+let
+  inherit (stdenv.lib) enableFeature optional;
+in
+
+stdenv.mkDerivation rec {
+  name = "avxsynth-${version}";
+  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 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/nixpkgs/pkgs/applications/video/bombono/default.nix b/nixpkgs/pkgs/applications/video/bombono/default.nix
new file mode 100644
index 000000000000..ad095ddbea51
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/bombono/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, wrapGAppsHook, gtk2, boost, gnome2, scons,
+mjpegtools, libdvdread, dvdauthor, gettext, dvdplusrwtools, libxmlxx, ffmpeg,
+enca, pkgconfig, fetchpatch }:
+
+let fetchPatchFromAur = {name, sha256}:
+fetchpatch {
+  inherit name sha256;
+  url = "https://aur.archlinux.org/cgit/aur.git/plain/${name}?h=e6cc6bc80c672aaa1a2260abfe8823da299a192c";
+}; in
+stdenv.mkDerivation rec {
+  name = "bombono-${version}";
+  version = "1.2.4";
+  src = fetchFromGitHub {
+    owner = "muravjov";
+    repo = "bombono-dvd";
+    rev = version;
+    sha256 = "1lz1vik6abn1i1pvxhm55c9g47nxxv755wb2ijszwswwrwgvq5b9";
+  };
+
+  patches = map fetchPatchFromAur [
+    {name="fix_ffmpeg_codecid.patch";	sha256="1asfc0lqzk4gjssrvjmsi1xr53ygnsx2sh7c8yzp5r3j2bagxhp7";}
+    {name="fix_ptr2bool_cast.patch";	sha256="0iqzrmbg38ikh4x9cmx0v0rnm7a9lcq0kd8sh1z9yfmnz71qqahg";}
+    {name="fix_c++11_literal_warnings.patch";	sha256="1zbf12i77p0j0090pz5lzg4a7kyahahzqssybv7vi0xikwvw57w9";}
+    {name="autoptr2uniqueptr.patch";	sha256="0a3wvwfplmqvi8fnj929y85z3h1iq7baaz2d4v08h1q2wbmakqdm";}
+    {name="fix_deprecated_boost_api.patch";	sha256="184gdz3w95ihhsd8xscpwvq77xd4il47kvmv6wslax77xyw50gm8";}
+    {name="fix_throw_specifications.patch";	sha256="1f5gi3qwm843hsxvijq7sjy0s62xm7rnr1vdp7f242fi0ldq6c1n";}
+    {name="fix_operator_ambiguity.patch";	sha256="0r4scsbsqfg6wgzsbfxxpckamvgyrida0n1ypg1klx24pk5dc7n7";}
+    {name="fix_ffmpeg30.patch";	sha256="1irva7a9bpbzs60ga8ypa3la9y84i5rz20jnd721qmfqp2yip8dw";}
+  ];
+
+  nativeBuildInputs = [ wrapGAppsHook scons pkgconfig gettext ];
+
+  buildInputs = [
+    gtk2 gnome2.gtkmm mjpegtools libdvdread dvdauthor boost dvdplusrwtools
+    libxmlxx ffmpeg enca
+    ];
+
+  prefixKey = "PREFIX=";
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "a DVD authoring program for personal computers";
+    homepage = "http://www.bombono.org/";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ symphorien ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/bomi/default.nix b/nixpkgs/pkgs/applications/video/bomi/default.nix
new file mode 100644
index 000000000000..671d67946354
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/bomi/default.nix
@@ -0,0 +1,116 @@
+{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, perl, python, which
+, libX11, libxcb, libGLU_combined
+, qtbase, qtdeclarative, qtquickcontrols, qttools, qtx11extras, qmake, makeWrapper
+, libchardet
+, ffmpeg
+
+, mpg123
+, libass
+, libdvdread
+, libdvdnav
+, icu
+, libquvi
+, alsaLib
+, libvdpau, libva
+, libbluray
+, jackSupport ? false, jack ? null
+, portaudioSupport ? false, portaudio ? null
+, pulseSupport ? true, 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;
+
+stdenv.mkDerivation rec {
+  name = "bomi-${version}";
+  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_combined
+                  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
+  '';
+
+  postInstall = ''
+    wrapProgram $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 = [ makeWrapper 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/nixpkgs/pkgs/applications/video/byzanz/add-amflags.patch b/nixpkgs/pkgs/applications/video/byzanz/add-amflags.patch
new file mode 100644
index 000000000000..aeaa195798a4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/byzanz/default.nix b/nixpkgs/pkgs/applications/video/byzanz/default.nix
new file mode 100644
index 000000000000..ea8cb5aa3ffa
--- /dev/null
+++ b/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 rec {
+  version = "0.2.3.alpha";
+  name = "byzanz-${version}";
+
+  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/nixpkgs/pkgs/applications/video/cinelerra/default.nix b/nixpkgs/pkgs/applications/video/cinelerra/default.nix
new file mode 100644
index 000000000000..090afde81994
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/cinelerra/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchgit, 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, xextproto, libtheora, libpng
+, libdv, libuuid, file, nasm, perl
+, fontconfig, intltool }:
+
+stdenv.mkDerivation {
+  name = "cinelerra-unstable-2016-01-12";
+
+  src = fetchgit {
+    url = "git://git.cinelerra-cv.org/j6t/cinelerra.git";
+    rev = "454be60e201c18c1fc3f1f253a6d2184fcfc94c4";
+    sha256 = "1n4kshqhgnr7aivsi8dgx48phyd2nzvv4szbc82mndklvs9jfb7r";
+  };
+
+  # touch config.rpath: work around bug in automake 1.10 ?
+  preConfigure = ''
+    find -type f -print0 | xargs --null sed -e "s@/usr/bin/perl@${perl}/bin/perl@" -i
+    touch config.rpath
+    ./autogen.sh
+    sed -i -e "s@/usr/bin/file@${file}/bin/file@" ./configure
+  '';
+
+  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 xextproto
+      libtheora libpng libdv libuuid
+      nasm
+      perl
+      fontconfig intltool
+    ];
+
+  # $ make -C cinelerra edl.o
+  # edl.C:50:25: fatal error: versioninfo.h: No such file or directory
+  enableParallelBuilding = false;
+
+  meta = {
+    description = "Video Editor";
+    homepage = http://www.cinelerra.org;
+    maintainers = [ stdenv.lib.maintainers.marcweber ];
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/clipgrab/default.nix b/nixpkgs/pkgs/applications/video/clipgrab/default.nix
new file mode 100644
index 000000000000..3937244f25be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/clipgrab/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, makeDesktopItem, ffmpeg, qt4, qmake4Hook }:
+
+stdenv.mkDerivation rec {
+  name = "clipgrab-${version}";
+  version = "3.7.2";
+
+  src = fetchurl {
+    sha256 = "1xkap4zgx8k0h0qfcqfwi3lj7s3mqsj0dp1cddiqmxbibbmg3rcc";
+    # The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
+    url = "https://download.clipgrab.org/${name}.tar.gz";
+  };
+
+  buildInputs = [ ffmpeg qt4 ];
+  nativeBuildInputs = [ qmake4Hook ];
+
+  postPatch = stdenv.lib.optionalString (ffmpeg != null) ''
+  substituteInPlace converter_ffmpeg.cpp \
+    --replace '"ffmpeg"' '"${ffmpeg.bin}/bin/ffmpeg"' \
+    --replace '"ffmpeg ' '"${ffmpeg.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/nixpkgs/pkgs/applications/video/coriander/default.nix b/nixpkgs/pkgs/applications/video/coriander/default.nix
new file mode 100644
index 000000000000..10a8f4019fca
--- /dev/null
+++ b/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 rec {
+  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/nixpkgs/pkgs/applications/video/devede/default.nix b/nixpkgs/pkgs/applications/video/devede/default.nix
new file mode 100644
index 000000000000..48c5032f2da2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/devede/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, python3Packages, ffmpeg, mplayer, vcdimager, cdrkit, dvdauthor
+, gtk3, gettext, wrapGAppsHook, gdk_pixbuf }:
+
+let
+  inherit (python3Packages) dbus-python buildPythonApplication pygobject3 urllib3;
+
+in buildPythonApplication rec {
+  name = "devede-4.8.8";
+  namePrefix = "";
+
+  src = fetchFromGitHub {
+    owner = "rastersoft";
+    repo = "devedeng";
+    rev = "c518683fbcd793aa92249e4fecafc3c3fea7da68";
+    sha256 = "0ncb8nykchrjlllbzfjpvirmfvfaps9qhilc56kvcw3nzqrnkx8q";
+  };
+
+  nativeBuildInputs = [
+    gettext wrapGAppsHook
+  ];
+
+  buildInputs = [
+    ffmpeg
+  ];
+
+  propagatedBuildInputs = [
+    gtk3 pygobject3 gdk_pixbuf dbus-python ffmpeg mplayer dvdauthor vcdimager cdrkit urllib3
+  ];
+
+  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/nixpkgs/pkgs/applications/video/dvb-apps/default.nix b/nixpkgs/pkgs/applications/video/dvb-apps/default.nix
new file mode 100644
index 000000000000..6281c7884015
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/dvb-apps/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation {
+  name = "dvb-apps-7f68f9c8d311";
+
+  src = fetchurl {
+    url = "https://linuxtv.org/hg/dvb-apps/archive/7f68f9c8d311.tar.gz";
+    sha256 = "0a6c5jjq6ad98bj0r954l3n7zjb2syw9m19jksg06z4zg1z8yg82";
+  };
+
+  buildInputs = [ perl ];
+
+  configurePhase = "true"; # skip configure
+
+  installPhase = "make prefix=$out install";
+
+  meta = {
+    description = "Linux DVB API applications and utilities";
+    homepage = https://linuxtv.org/;
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
+    broken = true; # 2018-04-10
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix b/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix
new file mode 100644
index 000000000000..a329321b70c6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, lib, fetchurl, writeScript, cdrtools, dvdauthor, ffmpeg, imagemagick, lame, mjpegtools, sox, transcode, vorbis-tools }:
+
+let
+  binPath = lib.makeBinPath [ cdrtools dvdauthor ffmpeg imagemagick lame mjpegtools sox transcode vorbis-tools ];
+
+  wrapper = writeScript "dvd-slideshow.sh" ''
+      #!${stdenv.shell}
+      # 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 {
+  name = "dvd-slideshow-${version}";
+  version = "0.8.4-2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dvd-slideshow/files/${name}.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/nixpkgs/pkgs/applications/video/dvdauthor/default.nix b/nixpkgs/pkgs/applications/video/dvdauthor/default.nix
new file mode 100644
index 000000000000..c15a892e6981
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-automake-1.13.patch b/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-automake-1.13.patch
new file mode 100644
index 000000000000..786f0c968556
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-mga-strndup.patch b/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-0.7.1-mga-strndup.patch
new file mode 100644
index 000000000000..5f77a68081a4
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-imagemagick-0.7.0.patch b/nixpkgs/pkgs/applications/video/dvdauthor/dvdauthor-imagemagick-0.7.0.patch
new file mode 100644
index 000000000000..52b6cc44cd59
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/dvdbackup/default.nix b/nixpkgs/pkgs/applications/video/dvdbackup/default.nix
new file mode 100644
index 000000000000..4712dfac7573
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/dvdbackup/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, libdvdread, libdvdcss, dvdauthor }:
+
+stdenv.mkDerivation rec {
+  version = "0.4.2";
+  name = "dvdbackup-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dvdbackup/${name}.tar.xz";
+    sha256 = "1rl3h7waqja8blmbpmwy01q9fgr5r0c32b8dy3pbf59bp3xmd37g";
+  };
+
+  buildInputs = [ libdvdread libdvdcss dvdauthor ];
+
+  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/nixpkgs/pkgs/applications/video/dvdstyler/default.nix b/nixpkgs/pkgs/applications/video/dvdstyler/default.nix
new file mode 100644
index 000000000000..f73c5277d054
--- /dev/null
+++ b/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 {
+
+  name = "dvdstyler-${version}";
+  srcName = "DVDStyler-${version}";
+  version = "3.0.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/dvdstyler/dvdstyler/${version}/${srcName}.tar.bz2";
+    sha256 = "0lwc0hn94m9r8fi07sjqz3fr618l6lnw3zsakxw7nlgnxbjsk7pi";
+  };
+
+  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/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix b/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix
new file mode 100644
index 000000000000..fd8cc8d86306
--- /dev/null
+++ b/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 {
+  name = "gnome-mplayer-${version}";
+  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/nixpkgs/pkgs/applications/video/gnome-mplayer/fix-paths.patch b/nixpkgs/pkgs/applications/video/gnome-mplayer/fix-paths.patch
new file mode 100644
index 000000000000..ede4991c4662
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/gnome-mpv/default.nix b/nixpkgs/pkgs/applications/video/gnome-mpv/default.nix
new file mode 100644
index 000000000000..75a299d46c7d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/gnome-mpv/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, meson, ninja, python3
+, gettext, pkgconfig, desktop-file-utils, wrapGAppsHook
+, appstream-glib, epoxy, glib, gtk3, mpv
+}:
+
+stdenv.mkDerivation rec {
+  name = "gnome-mpv-${version}";
+  version = "0.13";
+
+  src = fetchFromGitHub {
+    owner = "gnome-mpv";
+    repo = "gnome-mpv";
+    rev = "0d73b33d60050fd32bf8fae77d831548970a0b69"; # upstream forgot to update appdata
+    # rev = "v${version}";
+    sha256 = "1cjhw3kz163iwj2japhnv354i1lr112xyyfkxw82cwy2554cfim4";
+  };
+
+  nativeBuildInputs = [ meson ninja python3 appstream-glib gettext pkgconfig desktop-file-utils wrapGAppsHook ];
+  buildInputs = [ epoxy glib gtk3 mpv ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    patchShebangs meson_post_install.py
+    patchShebangs src/generate_authors.py
+    sed -i '/gtk-update-icon-cache/s/^/#/' meson_post_install.py
+  '';
+
+  doCheck = true;
+
+  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/gnome-mpv/gnome-mpv;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/gnomecast/default.nix b/nixpkgs/pkgs/applications/video/gnomecast/default.nix
new file mode 100644
index 000000000000..d840f43163cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/gnomecast/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3Packages, gtk3, gobject-introspection, ffmpeg, wrapGAppsHook }:
+
+with python3Packages;
+buildPythonApplication rec {
+  pname = "gnomecast";
+  version = "1.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mn03gqbwmhch0055bzgdwkzsl304qdyqwrgyiq0k5c5d2gyala5";
+  };
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+  propagatedBuildInputs = [
+    PyChromecast bottle pycaption paste html5lib pygobject3 dbus-python
+    gtk3 gobject-introspection
+  ];
+
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg ]})
+  '';
+
+  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/nixpkgs/pkgs/applications/video/gpac/default.nix b/nixpkgs/pkgs/applications/video/gpac/default.nix
new file mode 100644
index 000000000000..7a8b66d2d28e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/gpac/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, pkgconfig, zlib }:
+
+stdenv.mkDerivation rec {
+  version = "0.7.1";
+  name = "gpac-${version}";
+
+  src = fetchFromGitHub {
+    owner = "gpac";
+    repo = "gpac";
+    rev = "v${version}";
+    sha256 = "197c5968p5bzvk0ga347fwgkqh4j1v3z65wlx65c5m9gwfxz2k2q";
+  };
+
+  # 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/nixpkgs/pkgs/applications/video/handbrake/default.nix b/nixpkgs/pkgs/applications/video/handbrake/default.nix
new file mode 100644
index 000000000000..abd4973bbdf2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/handbrake/default.nix
@@ -0,0 +1,113 @@
+# Upstream distributes HandBrake with bundle of according versions of libraries and patches to them.
+#
+# Derivation patches HandBrake to use our closure.
+#
+
+{ stdenv, lib, fetchurl,
+  python2, pkgconfig, yasm, zlib,
+  autoconf, automake, libtool, m4, jansson,
+  libass, libiconv, libsamplerate, fribidi, libxml2, bzip2,
+  libogg, libopus, libtheora, libvorbis, libdvdcss, a52dec,
+  lame, libdvdread, libdvdnav, libbluray,
+  mp4v2, mpeg2dec, x264, x265, libmkv,
+  fontconfig, freetype, hicolor-icon-theme,
+  glib, gtk3, intltool, libnotify,
+  gst_all_1, dbus-glib, udev, libgudev, libvpx,
+  useGtk ? true, wrapGAppsHook ? null, libappindicator-gtk3 ? null,
+  useFfmpeg ? false, libav_12 ? null, ffmpeg ? null,
+  useFdk ? false, fdk_aac ? null
+}:
+
+stdenv.mkDerivation rec {
+  # TODO: Release 1.2.0 would switch LibAV to FFmpeg.
+  version = "1.1.2";
+  name = "handbrake-${version}";
+
+  src = fetchurl {
+    url = ''https://download2.handbrake.fr/${version}/HandBrake-${version}-source.tar.bz2'';
+    sha256 = "0bny0hwlr55g2c69rsamv0xvwmfh1s4a582b9vq20xv5ly84m6ms";
+  };
+
+  patched_libav_12 = libav_12.overrideAttrs (super: {
+    patches = (super.patches or []) ++ [(
+      # NOTE: 2018-04-26: HandBrake compilation (1.1.0) requires
+      # a patch of LibAV (12.3) from HandBrake team. This patch
+      # not went LibAV upstream.
+      fetchurl {
+        url = ''https://raw.githubusercontent.com/HandBrake/HandBrake/9e1f245708a157231c427c0ef9b91729d59a30e1/contrib/ffmpeg/A21-mp4-sdtp.patch'';
+        sha256 = "14grzyvb1qbb90k31ibabnwmwnrc48ml6h2z0rjamdv83q45jq4g";
+      })
+      # NOTE: 2018-11-11: Transcoding to MP4 can fail with:
+      #
+      # Tag avc1/0x31637661 incompatible with output codec id '28'
+      # muxavformat: avformat_write_header failed!
+      #
+      # Fix using Handbrake patch that is not upstream in libav.
+      (
+      fetchurl {
+        url = ''https://raw.githubusercontent.com/HandBrake/HandBrake/df6c26fa261423237ee2bec0bf784c32cbfda3fa/contrib/ffmpeg/A20-avc3-hvc1-override.patch'';
+        sha256 = "1vijd7bmkzp3sb6zhpcpdni8fz4h13wgglnml6cz9f44j41w2c3v";
+      })
+    ];
+  });
+
+  nativeBuildInputs = [
+    python2 pkgconfig yasm autoconf automake libtool m4
+  ] ++ lib.optionals useGtk [ intltool wrapGAppsHook ];
+
+  buildInputs = [
+    fribidi fontconfig freetype jansson zlib
+    libass libiconv libsamplerate libxml2 bzip2
+    libogg libopus libtheora libvorbis libdvdcss a52dec libmkv
+    lame libdvdread libdvdnav libbluray mp4v2 mpeg2dec x264 x265 libvpx
+  ] ++ 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
+  ] ++ (if useFfmpeg then [ ffmpeg ] else [ patched_libav_12 ])
+  ++ lib.optional useFdk fdk_aac;
+
+  enableParallelBuilding = true;
+
+  preConfigure = ''
+    patchShebangs scripts
+
+    substituteInPlace libhb/module.defs \
+      --replace /usr/include/libxml2 ${libxml2.dev}/include/libxml2
+
+    # Force using nixpkgs dependencies
+    sed -i '/MODULES += contrib/d' make/include/main.defs
+    sed -i '/PKG_CONFIG_PATH=/d' gtk/module.rules
+  '';
+
+  configureFlags = [
+    "--disable-df-fetch"
+    "--disable-df-verify"
+    (if useGtk then "--disable-gtk-update-checks" else "--disable-gtk")
+    (if useFdk then "--enable-fdk-aac"            else "")
+  ];
+
+  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/nixpkgs/pkgs/applications/video/k9copy/default.nix b/nixpkgs/pkgs/applications/video/k9copy/default.nix
new file mode 100644
index 000000000000..1e8883eae7ff
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/k9copy/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchurl
+, cmake
+, dvdauthor, xineLib, libmpeg2, libav, libdvdread, libdvdnav, dvdplusrwtools
+, phonon, qtx11extras
+, extra-cmake-modules, kio, kiconthemes, ki18n, kdesu, kdoctools, solid
+}:
+
+stdenv.mkDerivation rec {
+  version = "3.0.3";
+  name = "k9copy-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/k9copy-reloaded/${name}.tar.gz";
+    sha256 = "0dp06rwihks50c57bbv04d6bj2qc88isl91971r4lii2xp0qn7sg";
+  };
+
+  patches = [
+    ./gcc6.patch
+  ];
+
+  cmakeFlags = [
+    "-DQT5_BUILD=ON"
+    "-DCMAKE_MINIMUM_REQUIRED_VERSION=3.0"
+  ];
+
+  # Hack to disable documentation
+  preConfigure = ''
+   substituteInPlace ./CMakeLists.txt \
+     --replace "add_subdirectory(doc)" ""
+  '';
+
+  buildInputs = [
+    cmake
+    dvdauthor
+    xineLib
+    libmpeg2
+    libav
+    libdvdread
+    libdvdnav
+    dvdplusrwtools
+    #automoc4
+    phonon
+    extra-cmake-modules
+    kio
+    solid
+    qtx11extras
+    kiconthemes
+    ki18n
+    kdesu
+  ];
+  nativeBuildInputs = [ kdoctools ];
+
+  meta = {
+    description = "DVD backup and DVD authoring program";
+    homepage = http://k9copy-reloaded.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = with stdenv.lib.maintainers; [ flosse ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/k9copy/gcc6.patch b/nixpkgs/pkgs/applications/video/k9copy/gcc6.patch
new file mode 100644
index 000000000000..d0c9c2a8035e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/k9copy/gcc6.patch
@@ -0,0 +1,26 @@
+diff --git c/src/backup/k9dvdbackup.cpp i/src/backup/k9dvdbackup.cpp
+index f5e4859..82fa392 100755
+--- c/src/backup/k9dvdbackup.cpp
++++ i/src/backup/k9dvdbackup.cpp
+@@ -907,7 +907,7 @@ k9Vobu * k9DVDBackup::remapOffset(uint32_t _sector,uint32_t *_offset,int _dir) {
+ 
+ 
+         if ((vobu1 !=NULL) && (vobu2!=NULL)) {
+-            *_offset = abs(vobu1->newSector - vobu2->newSector)  | maskOffset1 ;
++            *_offset = (vobu1->newSector - vobu2->newSector)  | maskOffset1 ;
+             *_offset |= maskOffset2;
+             return vobu2;
+         }
+diff --git c/src/backup/k9execcopy.cpp i/src/backup/k9execcopy.cpp
+index d59222c..35de923 100644
+--- c/src/backup/k9execcopy.cpp
++++ i/src/backup/k9execcopy.cpp
+@@ -306,7 +306,7 @@ void k9ExecCopy::createMkv(k9DVDTitle *_title,const QString &_filename,QMultiMap
+ 
+ #if QT_VERSION >= 0x050000
+     m_progressDialog=new QProgressDialog(k9Dialogs::getMainWidget() );
+-    m_progressDialog->setCancelButton(false);
++    m_progressDialog->setCancelButton(0);
+ 
+ #else
+     m_progressDialog=new KProgressDialog(k9Dialogs::getMainWidget() );
diff --git a/nixpkgs/pkgs/applications/video/kazam/default.nix b/nixpkgs/pkgs/applications/video/kazam/default.nix
new file mode 100644
index 000000000000..9d549c2aecc3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kazam/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, substituteAll, python3, gst_all_1, wrapGAppsHook, gobject-introspection
+, gtk3, libwnck3, keybinder3, intltool, libcanberra-gtk3, libappindicator-gtk3, libpulseaudio }:
+
+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 ];
+
+  patches = [
+    # Fix paths
+    (substituteAll {
+      src = ./fix-paths.patch;
+      libcanberra = libcanberra-gtk3;
+      inherit libpulseaudio;
+    })
+    # Fix compability with Python 3.4
+    (fetchurl {
+      url = https://sources.debian.org/data/main/k/kazam/1.4.5-2/debian/patches/configparser_api_changes.patch;
+      sha256 = "0yvmipnh98s7y07cp1f113l0qqfw65k13an96byq707z3ymv1c2h";
+    })
+  ];
+
+  # 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/nixpkgs/pkgs/applications/video/kazam/fix-paths.patch b/nixpkgs/pkgs/applications/video/kazam/fix-paths.patch
new file mode 100644
index 000000000000..43e360830ab5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/key-mon/default.nix b/nixpkgs/pkgs/applications/video/key-mon/default.nix
new file mode 100644
index 000000000000..bc6cd015b865
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/key-mon/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, gnome2, librsvg, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+  name = "key-mon-${version}";
+  version = "1.17";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/key-mon/${name}.tar.gz";
+    sha256 = "1liz0dxcqmchbnl1xhlxkqm3gh76wz9jxdxn9pa7dy77fnrjkl5q";
+  };
+
+  propagatedBuildInputs =
+    [ gnome2.python_rsvg librsvg pythonPackages.pygtk pythonPackages.xlib ];
+
+  doCheck = false;
+
+  preFixup = ''
+      export makeWrapperArgs="--set GDK_PIXBUF_MODULE_FILE $GDK_PIXBUF_MODULE_FILE"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://code.google.com/archive/p/key-mon;
+    description = "Utility to show live keyboard and mouse status for teaching and screencasts";
+    license = licenses.asl20;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kino/default.nix b/nixpkgs/pkgs/applications/video/kino/default.nix
new file mode 100644
index 000000000000..d6404a82bc34
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kino/default.nix
@@ -0,0 +1,93 @@
+# 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" ];
+
+  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/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch b/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.7.patch
new file mode 100644
index 000000000000..65c5bc38276d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch b/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libav-0.8.patch
new file mode 100644
index 000000000000..f98cbda0bc49
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch b/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-libavcodec-pkg-config.patch
new file mode 100644
index 000000000000..d6a8953cf00a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch b/nixpkgs/pkgs/applications/video/kino/kino-1.3.4-v4l1.patch
new file mode 100644
index 000000000000..05ec7386709e
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/kmplayer/default.nix b/nixpkgs/pkgs/applications/video/kmplayer/default.nix
new file mode 100644
index 000000000000..44313f9499f5
--- /dev/null
+++ b/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}";
+  name = "kmplayer-${version}";
+
+  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/nixpkgs/pkgs/applications/video/kmplayer/kmplayer_part-plugin_metadata.patch b/nixpkgs/pkgs/applications/video/kmplayer/kmplayer_part-plugin_metadata.patch
new file mode 100644
index 000000000000..9b6652b0be58
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/kmplayer/no-docs.patch b/nixpkgs/pkgs/applications/video/kmplayer/no-docs.patch
new file mode 100644
index 000000000000..c93453f908c9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/kodi/default.nix b/nixpkgs/pkgs/applications/video/kodi/default.nix
new file mode 100644
index 000000000000..9272d3c8e269
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi/default.nix
@@ -0,0 +1,214 @@
+{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
+, 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
+, libX11, xproto, inputproto, libxml2
+, libXt, libXmu, libXext, xextproto
+, libXinerama, libXrandr, randrproto
+, libXtst, libXfixes, fixesproto, systemd
+, alsaLib, libGLU_combined, glew, fontconfig, freetype, ftgl
+, libjpeg, jasper, libpng, libtiff
+, libmpeg2, libsamplerate, libmad
+, libogg, libvorbis, flac, libxslt
+, lzo, libcdio, libmodplug, libass, libbluray
+, sqlite, mysql, nasm, gnutls, libva, libdrm, wayland
+, curl, bzip2, zip, unzip, glxinfo, xdpyinfo
+, libcec, libcec_platform, dcadec, libuuid
+, libcrossguid, libmicrohttpd
+, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1, libXdmcp
+, libplist, p11-kit, zlib
+, 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 ? null
+, vdpauSupport ? true, libvdpau ? null
+}:
+
+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 != null && ! udevSupport; # libusb won't be used if udev is avaliable
+assert vdpauSupport -> libvdpau != null;
+
+# TODO for Kodi 18.0
+# - cmake is no longer in project/cmake
+# - maybe we can remove auto{conf,make} and libtool from inputs
+# - check if dbus support PR has been merged and add dbus as a buildInput
+# - try to use system ffmpeg (kodi 17 works best with bundled 3.1 with patches)
+
+let
+  kodiReleaseDate = "20171115";
+  kodiVersion = "17.6";
+  rel = "Krypton";
+
+  kodi_src = fetchFromGitHub {
+    owner  = "xbmc";
+    repo   = "xbmc";
+    rev    = "${kodiVersion}-${rel}";
+    sha256 = "1pwmmbry7dajwdpmc1mdygjvxna4kl38h32d71g10yf3mdm5wmz3";
+  };
+
+  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 = "3.1.11";
+    rev     = "${version}-${rel}-17.5"; # TODO: change 17.5 back to ${kodiVersion}
+    sha256  = "0nc4sb6v1g3l11v9h5l9n44a8r40186rcbp2xg5c7vg6wcpjid13";
+    preConfigure = ''
+      cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
+    '';
+    buildInputs = [ gnutls libidn libtasn1 p11-kit zlib libva ]
+      ++ lib.optional  vdpauSupport    libvdpau;
+    nativeBuildInputs = [ cmake nasm pkgconfig ];
+  };
+
+  # we should be able to build these externally and have kodi reference them as buildInputs.
+  # Doesn't work ATM though so we just use them for the src
+
+  libdvdcss = kodiDependency {
+    name              = "libdvdcss";
+    version           = "20160215";
+    rev               = "2f12236bc1c92f73c21e973363f79eb300de603f";
+    sha256            = "198r0q73i55ga1dvyqq9nfcri0zq08b94hy8671lg14i3izx44dd";
+    buildInputs       = [ libdvdread ];
+    nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  };
+
+  libdvdnav = kodiDependency {
+    name              = "libdvdnav";
+    version           = "20170217";
+    rev               = "981488f7f27554b103cca10c1fbeba027396c94a";
+    sha256            = "089pswc51l3avh95zl4cpsh7gh1innh7b2y4xgx840mcmy46ycr8";
+    buildInputs       = [ libdvdread ];
+    nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  };
+
+  libdvdread = kodiDependency {
+    name              = "libdvdread";
+    version           = "20160221";
+    rev               = "17d99db97e7b8f23077b342369d3c22a6250affd";
+    sha256            = "1gr5aq1cjr3as9mnwrw29cxn4m6f6pfrxdahkdcjy70q3ldg90sl";
+    nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  };
+
+in stdenv.mkDerivation rec {
+    name = "kodi-${kodiVersion}";
+
+    src = kodi_src;
+
+    buildInputs = [
+      gnutls libidn libtasn1 nasm p11-kit
+      libxml2 yasm python2Packages.python
+      boost libmicrohttpd
+      gettext pcre-cpp yajl fribidi libva libdrm
+      openssl gperf tinyxml2 taglib libssh swig jre
+      libX11 xproto inputproto libXt libXmu libXext xextproto
+      libXinerama libXrandr randrproto libXtst libXfixes fixesproto
+      alsaLib libGLU_combined glew fontconfig freetype ftgl
+      libjpeg jasper libpng libtiff wayland
+      libmpeg2 libsamplerate libmad
+      libogg libvorbis flac libxslt systemd
+      lzo libcdio libmodplug libass libbluray
+      sqlite mysql.connector-c avahi lame
+      curl bzip2 zip unzip glxinfo xdpyinfo
+      libcec libcec_platform dcadec libuuid
+      libgcrypt libgpgerror libunistring
+      libcrossguid cwiid libplist
+      bluez giflib glib harfbuzz lcms2 libpthreadstubs libXdmcp
+      ffmpeg
+      # libdvdcss libdvdnav libdvdread
+    ]
+    ++ lib.optional  dbusSupport     dbus
+    ++ lib.optionals 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
+    ++ lib.optional  vdpauSupport    libvdpau;
+
+    nativeBuildInputs = [
+      cmake
+      doxygen
+      makeWrapper
+      which
+      pkgconfig gnumake
+      autoconf automake libtool # still needed for some components. Check if that is the case with 18.0
+    ];
+
+    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"
+    ];
+
+    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;
+
+    postPatch = ''
+      substituteInPlace xbmc/linux/LinuxTimezone.cpp \
+        --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
+    '';
+
+    preConfigure = ''
+      cd project/cmake
+    '';
+
+    postInstall = ''
+      for p in $(ls $out/bin/) ; do
+        wrapProgram $out/bin/$p \
+          --prefix PATH            ":" "${lib.makeBinPath [ python2Packages.python glxinfo xdpyinfo ]}" \
+          --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
+              ([ curl systemd libmad libvdpau libcec libcec_platform rtmpdump libass ] ++ lib.optional nfsSupport libnfs)}"
+      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 ];
+    };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi/plugins.nix b/nixpkgs/pkgs/applications/video/kodi/plugins.nix
new file mode 100644
index 000000000000..196852933a98
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi/plugins.nix
@@ -0,0 +1,473 @@
+{ stdenv, callPackage, fetchurl, fetchFromGitHub, unzip
+, cmake, kodiPlain, libcec_platform, tinyxml
+, steam, libusb, pcre-cpp, jsoncpp, libhdhomerun, zlib
+, python2Packages }:
+
+with stdenv.lib;
+
+let self = rec {
+
+  pluginDir = "/share/kodi/addons";
+
+  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 (rec {
+    name = "kodi-plugin-${plugin}-${version}";
+
+    dontStrip = true;
+
+    installPhase = ''
+      ${if isNull sourceDir 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 ? [], ... }@args:
+  toKodiPlugin (stdenv.mkDerivation (rec {
+    name = "kodi-plugin-${plugin}-${version}";
+
+    dontStrip = true;
+
+    buildInputs = [ cmake kodiPlain kodi-platform libcec_platform ]
+               ++ extraBuildInputs;
+
+    # 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}
+    '';
+  } // 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.3.2";
+    plugin = namespace;
+
+    src = fetchFromGitHub {
+      owner = "kodi-game";
+      repo = namespace;
+      rev = "96171dd32899553ffe8fc775fca66e8df5ff5cf1";
+      sha256 = "18m61v8z9fbh4imvzhh4g9629r9df49g2yk9ycaczirg131dhfbh";
+    };
+
+    meta = {
+      description = "Binary addon for raw joystick input.";
+      platforms = platforms.all;
+      maintainers = with maintainers; [ edwtjo ];
+    };
+
+    extraBuildInputs = [ libusb pcre-cpp ];
+
+  };
+
+  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.9.0";
+    plugin = namespace;
+
+    src = fetchFromGitHub {
+      owner = "kodi-game";
+      repo = namespace;
+      rev = "76f640fad4f68118f4fab6c4c3338d13daca7074";
+      sha256 = "0yqlfdiiymb8z6flyhpval8w3kdc9qv3mli3jg1xn5ac485nxsxh";
+    };
+
+    extraBuildInputs = [ libusb ];
+
+    meta = {
+      description = "Binary addon for steam controller.";
+      platforms = platforms.all;
+      maintainers = with maintainers; [ edwtjo ];
+    };
+
+  };
+
+  steam-launcher = mkKodiPlugin rec {
+
+    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 = "3.4.16";
+
+    src = fetchFromGitHub {
+      owner = "kodi-pvr";
+      repo = "pvr.hts";
+      rev = "b39e4e9870d68841279cbc7d7214f3ad9b27f330";
+      sha256 = "0pmlgqr4kd0gvckz77mj6v42kcx6lb23anm8jnf2fbn877snnijx";
+    };
+
+    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 = "2.4.7";
+
+    src = fetchFromGitHub {
+      owner = "kodi-pvr";
+      repo = "pvr.hdhomerun";
+      rev = "60d89d16dd953d38947e8a6da2f8bb84a0f764ef";
+      sha256 = "0dvdv0vk2q12nj0i5h51iaypy3i7jfsxjyxwwpxfy82y8260ragy";
+    };
+
+    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 = "2.4.14";
+
+    src = fetchFromGitHub {
+      owner = "kodi-pvr";
+      repo = "pvr.iptvsimple";
+      rev = "2a649d7e21b64c4fa4a8b14c2cc139261eebc7e8";
+      sha256 = "1f1im2gachrxnr3z96h5cg2c13vapgkvkdwvrbl4hxlnyp1a6jyz";
+    };
+
+    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 ];
+  };
+
+  osmc-skin = mkKodiPlugin rec {
+
+    plugin = "osmc-skin";
+    namespace = "skin.osmc";
+    version = "17.0.4";
+
+    src = fetchFromGitHub {
+      owner = "osmc";
+      repo = namespace;
+      rev = "a9268937f49286bab9fb49de430b8aafd7a60a9e";
+      sha256 = "1b3fm02annsq58pcfc985glrmh21rmqksdj3q8wn6gyza06jdf3v";
+    };
+
+    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;
+    };
+  });
+
+}; in self
diff --git a/nixpkgs/pkgs/applications/video/kodi/wrapper.nix b/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
new file mode 100644
index 000000000000..d0dc9274a105
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi/wrapper.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, makeWrapper, buildEnv, kodi, plugins }:
+
+buildEnv {
+  name = "kodi-with-plugins-${(builtins.parseDrvName kodi.name).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
+    done
+  '';
+
+  meta = kodi.meta // {
+    description = kodi.meta.description
+                + " (with plugins: ${lib.concatMapStringsSep ", " (x: x.name) plugins})";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch b/nixpkgs/pkgs/applications/video/kodi/yatp/dont-monkey.patch
new file mode 100644
index 000000000000..62d5d0c0d4c0
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/lightworks/default.nix b/nixpkgs/pkgs/applications/video/lightworks/default.nix
new file mode 100644
index 000000000000..4bfd9e790070
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/lightworks/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, dpkg, makeWrapper, buildFHSUserEnv
+, gnome3, gdk_pixbuf, cairo, libjpeg_original, glib, gnome2, libGLU
+, nvidia_cg_toolkit, zlib, openssl, portaudio
+}:
+let
+  fullPath = stdenv.lib.makeLibraryPath [
+    stdenv.cc.cc
+    gnome3.gtk
+    gdk_pixbuf
+    cairo
+    libjpeg_original
+    glib
+    gnome2.pango
+    libGLU
+    nvidia_cg_toolkit
+    zlib
+    openssl
+    portaudio
+  ];
+
+  lightworks = stdenv.mkDerivation rec {
+    version = "14.0.0";
+    name = "lightworks-${version}";
+    
+    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 "${name} 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 '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;
+
+    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" ];
+    };
+  };
+
+# Lightworks expects some files in /usr/share/lightworks
+in buildFHSUserEnv rec {
+  name = lightworks.name;
+
+  targetPkgs = pkgs: [
+      lightworks
+  ];
+
+  runScript = "lightworks";
+}
diff --git a/nixpkgs/pkgs/applications/video/linuxstopmotion/default.nix b/nixpkgs/pkgs/applications/video/linuxstopmotion/default.nix
new file mode 100644
index 000000000000..717853af745c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/linuxstopmotion/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchgit, pkgconfig, qt4, SDL, SDL_image, libvorbis, libtar, libxml2
+, gamin, qmake4Hook
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.8";
+  name = "linuxstopmotion-${version}";
+  
+  src = fetchgit {
+    url = "git://git.code.sf.net/p/linuxstopmotion/code";
+    rev = "refs/tags/${version}";
+    sha256 = "19v9d0v3laiwi0f1n92lvj2s5s1mxsrfygna0xyw9pkcnk3b26q6";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ qt4 SDL SDL_image libvorbis libtar libxml2 gamin qmake4Hook ];
+
+  patches = [ ./linuxstopmotion-fix-wrong-isProcess-logic.patch ];
+
+  # Installation breaks without this
+  preInstall = ''
+    mkdir -p "$out/share/stopmotion/translations/"
+    cp -v build/*.qm "$out/share/stopmotion/translations/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Create stop-motion animation movies";
+    homepage = http://linuxstopmotion.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch b/nixpkgs/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch
new file mode 100644
index 000000000000..caab48d0e2d9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch
@@ -0,0 +1,33 @@
+From b23b7dab1d540b0710fcb9ded1c6256a49844906 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com>
+Date: Wed, 20 Aug 2014 22:22:00 +0200
+Subject: [PATCH] Fix wrong "isProcess" logic
+
+Stopmotion wrongly thinks that uvccapture should be run as a daemon,
+even though configuration for uvccapture has no "daemon-like" command
+line to be run (according to "preferences"). The result is an error
+popup instead of video/image grabbing.
+
+This brings back the "isProcess" logic that was in stopmotion v0.7.2,
+because it seems to work, while the current logic (v0.8.0) seems to
+fail.
+---
+ src/presentation/frontends/qtfrontend/frameview.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/presentation/frontends/qtfrontend/frameview.cpp b/src/presentation/frontends/qtfrontend/frameview.cpp
+index e44dca7..d2c41fd 100644
+--- a/src/presentation/frontends/qtfrontend/frameview.cpp
++++ b/src/presentation/frontends/qtfrontend/frameview.cpp
+@@ -270,7 +270,7 @@ bool FrameView::on() {
+ 	Preference device(QString("device%1")
+ 			.arg(activeDev).toLatin1().constData(), "");
+ 	QString pre = QString(prepoll.get()).replace("$VIDEODEVICE", device.get());
+-	bool isProcess = startDaemon.get();
++	bool isProcess = (strcmp(startDaemon.get(), "") == 0) ? false : true;
+ 
+ 	bool isCameraReady = true;
+ 	this->grabber = new CommandLineGrabber(capturedFile.path(), isProcess);
+-- 
+2.0.2
+
diff --git a/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix b/nixpkgs/pkgs/applications/video/lxdvdrip/default.nix
new file mode 100644
index 000000000000..8287a176ce63
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/makemkv/builder.sh b/nixpkgs/pkgs/applications/video/makemkv/builder.sh
new file mode 100644
index 000000000000..416d5c0f0b07
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/makemkv/builder.sh
@@ -0,0 +1,40 @@
+source $stdenv/setup
+set -x
+
+lib=" \
+  makemkv-oss-${ver}/out/libdriveio.so.0 \
+  makemkv-oss-${ver}/out/libmakemkv.so.1 \
+  makemkv-oss-${ver}/out/libmmbd.so.0 \
+  "
+
+bin=" \
+  makemkv-oss-${ver}/out/makemkv \
+  makemkv-bin-${ver}/bin/amd64/makemkvcon \
+  "
+
+tar xzf ${src_bin}
+tar xzf ${src_oss}
+
+(
+  cd makemkv-oss-${ver}
+  ./configure --prefix=$out
+  make
+)
+
+chmod +x ${bin}
+
+libPath="${libPath}:${out}/lib" # XXX: der. This should be in the nix file?
+
+for i in ${bin} ; do
+  patchelf \
+    --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+    --set-rpath $libPath \
+    ${i}
+done 
+
+mkdir -p $out/bin
+mkdir -p $out/lib
+mkdir -p $out/share/MakeMKV
+cp ${lib} ${out}/lib
+cp ${bin} ${out}/bin
+cp makemkv-bin-${ver}/src/share/* $out/share/MakeMKV
diff --git a/nixpkgs/pkgs/applications/video/makemkv/default.nix b/nixpkgs/pkgs/applications/video/makemkv/default.nix
new file mode 100644
index 000000000000..cadd3c9fc68c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/makemkv/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl
+, openssl, qt5, libGLU_combined, zlib, pkgconfig, libav
+}:
+
+stdenv.mkDerivation rec {
+  name = "makemkv-${ver}";
+  ver = "1.14.1";
+  builder = ./builder.sh;
+
+  # 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-${ver}.tar.gz"
+      "http://www.makemkv.com/download/old/makemkv-bin-${ver}.tar.gz"
+    ];
+    sha256 = "1n4gjb1531gkvnjzipw63v3zdxmrq5nai9nn6m2ix3lskksjrrhp";
+  };
+
+  src_oss = fetchurl {
+    urls = [
+      "http://www.makemkv.com/download/makemkv-oss-${ver}.tar.gz"
+      "http://www.makemkv.com/download/old/makemkv-oss-${ver}.tar.gz"
+    ];
+    sha256 = "0ysb0nm11vp2ni838p5q3gqan5nrqbr7rz0h24j8p62827pib3pw";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [openssl qt5.qtbase libGLU_combined zlib libav];
+
+  libPath = stdenv.lib.makeLibraryPath [stdenv.cc.cc openssl libGLU_combined qt5.qtbase zlib ]
+          + ":" + stdenv.cc.cc + "/lib64";
+
+  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 = [ maintainers.titanous ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mapmap/default.nix b/nixpkgs/pkgs/applications/video/mapmap/default.nix
new file mode 100644
index 000000000000..4dd2e019d1d3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mapmap/default.nix
@@ -0,0 +1,64 @@
+{ stdenv 
+, fetchFromGitHub
+, qttools
+, qtmultimedia
+, liblo
+, gst_all_1
+, qmake
+, pkgconfig
+}:
+
+with stdenv;
+
+mkDerivation rec {
+
+  version = "0.6.1";
+  name = "mapmap-${version}";
+
+  src = fetchFromGitHub {
+    owner = "mapmapteam";
+    repo = "mapmap";
+    rev = version;
+    sha256 = "15km6xmfkxhrflq4sl9m9r85zi4shrr4k5h15x17v7x0qkc3xgsh";
+  };
+
+  nativeBuildInputs = [
+    qmake
+    pkgconfig
+  ];
+
+  buildInputs = [
+    qttools
+    qtmultimedia
+    liblo
+    gst_all_1.gstreamer
+    gst_all_1.gstreamermm
+    gst_all_1.gst-libav
+    gst_all_1.gst-vaapi
+  ];
+
+  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;
+    # binary segfaults at the moment
+    broken = true;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/video/mediathekview/default.nix b/nixpkgs/pkgs/applications/video/mediathekview/default.nix
new file mode 100644
index 000000000000..93a8d2070542
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mediathekview/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, jre, unzip }:
+
+stdenv.mkDerivation {
+  name = "mediathekview-9";
+  src = fetchurl {
+    url = "mirror://sourceforge/zdfmediathk/MediathekView_9.zip";
+    sha256 = "1wff0igr33z9p1mjw7yvb6658smdwnp22dv8klz0y8qg116wx7a4";
+  };
+  unpackPhase = "true";
+
+  buildInputs = [ unzip ];
+  
+  # Could use some more love
+  # Maybe we can also preconfigure locations for vlc and the others.
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/opt/mediathekview
+    cd $out/opt/mediathekview
+    unzip $src
+    find . -iname '*.exe' -delete
+    sed -i -e 's, java, ${jre}/bin/java,' MediathekView__Linux.sh
+    ln -s $out/opt/mediathekview/MediathekView__Linux.sh $out/bin/mediathekview
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://zdfmediathk.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ maintainers.chaoflow ];
+    platforms = platforms.linux;  #  also macOS and cygwin, but not investigated, yet
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/minitube/default.nix b/nixpkgs/pkgs/applications/video/minitube/default.nix
new file mode 100644
index 000000000000..3b8dce90243b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/minitube/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, makeWrapper, phonon, phonon-backend-vlc, qtbase, qmake
+, qtdeclarative, qttools
+
+# "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" }:
+
+stdenv.mkDerivation rec {
+  name = "minitube-${version}";
+  version = "2.9";
+
+  src = fetchFromGitHub {
+    sha256 = "11zkmwqadlgrrghs3rxq0h0fllfnyd3g09d7gdd6vd9r1a1yz73f";
+    rev = version;
+    repo = "minitube";
+    owner = "flaviotordini";
+  };
+
+  buildInputs = [ phonon phonon-backend-vlc qtbase qtdeclarative qttools ];
+  nativeBuildInputs = [ makeWrapper qmake ];
+
+  qmakeFlags = [ "DEFINES+=APP_GOOGLE_API_KEY=${withAPIKey}" ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    wrapProgram $out/bin/minitube \
+      --prefix QT_PLUGIN_PATH : "${phonon-backend-vlc}/lib/qt-5.${stdenv.lib.versions.minor qtbase.version}/plugins"
+  '';
+
+  meta = with stdenv.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; [ ma27 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mjpg-streamer/default.nix b/nixpkgs/pkgs/applications/video/mjpg-streamer/default.nix
new file mode 100644
index 000000000000..f9d4d4698faf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mjpg-streamer/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, libjpeg }:
+
+stdenv.mkDerivation rec {
+  name = "mjpg-streamer-${version}";
+  version = "2016-03-08";
+
+  src = fetchFromGitHub {
+    owner = "jacksonliam";
+    repo = "mjpg-streamer";
+    rev = "4060cb64e3557037fd404d10e1c1d076b672e9e8";
+    sha256 = "0g7y832jsz4ylmq9qp2l4fq6bm8l6dhsbi60fr5jfqpx4l0pia8m";
+  };
+
+  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://sourceforge.net/projects/mjpg-streamer/;
+    description = "MJPG-streamer 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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
new file mode 100644
index 000000000000..3464b7aaeaa2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitLab, pkgconfig, autoconf, automake, libiconv
+, drake, ruby, docbook_xsl, file, xdg_utils, gettext, expat, boost
+, libebml, zlib, libmatroska, libogg, libvorbis, flac, libxslt, cmark
+, withGUI ? true
+  , qtbase ? null
+  , qtmultimedia ? null
+}:
+
+assert withGUI -> qtbase != null && qtmultimedia != null;
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "mkvtoolnix-${version}";
+  version = "28.2.0";
+
+  src = fetchFromGitLab {
+    owner  = "mbunkus";
+    repo   = "mkvtoolnix";
+    rev    = "release-${version}";
+    sha256 = "162qj5z9wzm63im6jnd0n95ggzdk6fzq5bxgrr0l3y82ahfb7qwa";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig autoconf automake gettext
+    drake ruby docbook_xsl libxslt
+  ];
+
+  buildInputs = [
+    expat file xdg_utils boost libebml zlib
+    libmatroska libogg libvorbis flac cmark
+  ] ++ optional  stdenv.isDarwin libiconv
+    ++ optionals withGUI [ qtbase qtmultimedia ];
+
+  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")
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Cross-platform tools for Matroska";
+    homepage    = http://www.bunkus.org/videotools/mkvtoolnix/;
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ codyopel fuuzetsu rnhmjoj ];
+    platforms   = platforms.linux
+      ++ optionals (!withGUI) platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/motion/default.nix b/nixpkgs/pkgs/applications/video/motion/default.nix
new file mode 100644
index 000000000000..b3367951b9f5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/motion/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, ffmpeg, libjpeg, libmicrohttpd }:
+
+stdenv.mkDerivation rec {
+  name = "motion-${version}";
+  version = "4.2.1";
+
+  src = fetchFromGitHub {
+    owner  = "Motion-Project";
+    repo   = "motion";
+    rev    = "release-${version}";
+    sha256 = "1h359hngbkazdli7vl949r6glrq4xxs70js6n1j8jxcyw1wxian9";
+  };
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mpc-qt/default.nix b/nixpkgs/pkgs/applications/video/mpc-qt/default.nix
new file mode 100644
index 000000000000..81b48e25b96b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mpc-qt/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pkgconfig, qmake, qtx11extras, qttools, mpv }:
+
+stdenv.mkDerivation rec {
+  name = "mpc-qt-${version}";
+  version = "18.08";
+
+  src = fetchFromGitHub {
+    owner = "cmdrkotori";
+    repo = "mpc-qt";
+    rev = "v${version}";
+    sha256 = "1rxlkg3vsrapazdlb1i6c5a1vvf2114bsqwzcm3n2wc5c93yqsna";
+  };
+
+  nativeBuildInputs = [ pkgconfig qmake qttools ];
+
+  buildInputs = [ mpv qtx11extras ];
+
+  qmakeFlags = [ "QMAKE_LUPDATE=${qttools.dev}/bin/lupdate" ];
+
+  meta = with stdenv.lib; {
+    description = "Media Player Classic Qute Theater";
+    homepage = https://github.com/cmdrkotori/mpc-qt;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mplayer/default.nix b/nixpkgs/pkgs/applications/video/mplayer/default.nix
new file mode 100644
index 000000000000..e017e7cc0015
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mplayer/default.nix
@@ -0,0 +1,223 @@
+{ stdenv, fetchurl, pkgconfig, freetype, yasm, ffmpeg
+, aalibSupport ? true, aalib ? null
+, fontconfigSupport ? true, fontconfig ? null, freefont_ttf ? null
+, fribidiSupport ? true, fribidi ? null
+, x11Support ? true, libX11 ? null, libXext ? null, libGLU_combined ? 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 ? false, libpulseaudio ? null
+, bs2bSupport ? false, libbs2b ? 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_combined != 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;
+
+let
+
+  codecs_src =
+    let
+      dir = http://www.mplayerhq.hu/MPlayer/releases/codecs/;
+    in
+    if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
+      url = "${dir}/essential-20071007.tar.bz2";
+      sha256 = "18vls12n12rjw0mzw4pkp9vpcfmd1c21rzha19d7zil4hn7fs2ic";
+    } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl {
+      url = "${dir}/essential-amd64-20071007.tar.bz2";
+      sha256 = "13xf5b92w1ra5hw00ck151lypbmnylrnznq9hhb0sj36z5wz290x";
+    } else if stdenv.hostPlatform.system == "powerpc-linux" then fetchurl {
+      url = "${dir}/essential-ppc-20071007.tar.bz2";
+      sha256 = "18mlj8dp4wnz42xbhdk1jlz2ygra6fbln9wyrcyvynxh96g1871z";
+    } else null;
+
+  codecs = if codecs_src != null then stdenv.mkDerivation {
+    name = "MPlayer-codecs-essential-20071007";
+
+    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 {
+  name = "mplayer-1.3.0";
+
+  src = fetchurl {
+    url = "http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.3.0.tar.xz";
+    sha256 = "0hwqn04bdknb2ic88xd75smffxx63scvz0zvwvjb56nqj9n89l1s";
+  };
+
+  prePatch = ''
+    sed -i /^_install_strip/d configure
+
+    rm -rf ffmpeg
+  '';
+
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = [ pkgconfig yasm ];
+  buildInputs = with stdenv.lib;
+    [ freetype ffmpeg ]
+    ++ optional aalibSupport aalib
+    ++ optional fontconfigSupport fontconfig
+    ++ optional fribidiSupport fribidi
+    ++ optionals x11Support [ libX11 libXext libGLU_combined ]
+    ++ 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
+    ++ (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")
+    "--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=$BUILD_CC"
+      "--as=$AS"
+      "--nm=$NM"
+      "--ar=$AR"
+      "--ranlib=$RANLIB"
+      "--windres=$WINDRES"
+    )
+  '';
+
+  postConfigure = ''
+    echo CONFIG_MPEGAUDIODSP=yes >> config.mak
+  '';
+
+  NIX_LDFLAGS = with stdenv.lib;
+       optional  fontconfigSupport "-lfontconfig"
+    ++ optional  fribidiSupport "-lfribidi"
+    ++ optionals x11Support [ "-lX11" "-lXext" ]
+    ;
+
+  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 = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mpv/default.nix b/nixpkgs/pkgs/applications/video/mpv/default.nix
new file mode 100644
index 000000000000..62a517e80ea6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mpv/default.nix
@@ -0,0 +1,228 @@
+{ stdenv, fetchurl, fetchFromGitHub, makeWrapper
+, docutils, perl, pkgconfig, python3, which, ffmpeg_4
+, freefont_ttf, freetype, libass, libpthreadstubs
+, lua, luasocket, libuchardet, libiconv ? null, darwin
+
+, waylandSupport ? false
+  , wayland           ? null
+  , wayland-protocols ? null
+  , libxkbcommon      ? null
+
+, x11Support ? stdenv.isLinux
+  , libGLU_combined ? null
+  , libX11          ? null
+  , libXext         ? null
+  , libXxf86vm      ? null
+  , libXrandr       ? null
+
+, cddaSupport ? false
+  , libcdio          ? null
+  , libcdio-paranoia ? null
+
+, alsaSupport        ? true,  alsaLib       ? null
+, bluraySupport      ? true,  libbluray     ? null
+, bs2bSupport        ? true,  libbs2b       ? null
+, cacaSupport        ? true,  libcaca       ? null
+, cmsSupport         ? true,  lcms2         ? null
+, drmSupport         ? true,  libdrm        ? null
+, dvdnavSupport      ? true,  libdvdnav     ? null
+, dvdreadSupport     ? true,  libdvdread    ? null
+, libpngSupport      ? true,  libpng        ? null
+, pulseSupport       ? true,  libpulseaudio ? null
+, rubberbandSupport  ? true,  rubberband    ? null
+, screenSaverSupport ? true,  libXScrnSaver ? null
+, sdl2Support        ? true,  SDL2          ? null
+, speexSupport       ? true,  speex         ? null
+, theoraSupport      ? true,  libtheora     ? null
+, vaapiSupport       ? true,  libva         ? null
+, vdpauSupport       ? true,  libvdpau      ? null
+, xineramaSupport    ? true,  libXinerama   ? null
+, xvSupport          ? true,  libXv         ? null
+, youtubeSupport     ? true,  youtube-dl    ? null
+, archiveSupport     ? false, libarchive    ? null
+, jackaudioSupport   ? false, libjack2      ? null
+, openalSupport      ? false, openalSoft    ? null
+, vapoursynthSupport ? false, vapoursynth   ? 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         -> available libdrm;
+assert dvdnavSupport      -> available libdvdnav;
+assert dvdreadSupport     -> available libdvdread;
+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 speexSupport       -> available speex;
+assert theoraSupport      -> available libtheora;
+assert vaapiSupport       -> available libva;
+assert vapoursynthSupport -> available vapoursynth;
+assert vdpauSupport       -> available libvdpau;
+assert waylandSupport     -> all available [ wayland wayland-protocols libxkbcommon ];
+assert x11Support         -> all available [ libGLU_combined libX11 libXext libXxf86vm libXrandr ];
+assert xineramaSupport    -> x11Support && available libXinerama;
+assert xvSupport          -> x11Support && available libXv;
+assert youtubeSupport     -> available youtube-dl;
+
+let
+  # Purity: Waf is normally downloaded by bootstrap.py, but
+  # for purity reasons this behavior should be avoided.
+  wafVersion = "2.0.9";
+  waf = fetchurl {
+    urls = [ "https://waf.io/waf-${wafVersion}"
+             "http://www.freehackers.org/~tnagy/release/waf-${wafVersion}" ];
+    sha256 = "0j7sbn3w6bgslvwwh5v9527w3gi2sd08kskrgxamx693y0b0i3ia";
+  };
+in stdenv.mkDerivation rec {
+  name = "mpv-${version}";
+  version = "0.29.1";
+
+  src = fetchFromGitHub {
+    owner = "mpv-player";
+    repo  = "mpv";
+    rev    = "v${version}";
+    sha256 = "138921kx8g6qprim558xin09xximjhsj9ss8b71ifg2m6kclym8m";
+  };
+
+  postPatch = ''
+    patchShebangs ./TOOLS/
+  '';
+
+  NIX_LDFLAGS = optionalString x11Support "-lX11 -lXext "
+              + optionalString stdenv.isDarwin "-framework CoreFoundation";
+
+  configureFlags = [
+    "--enable-libmpv-shared"
+    "--enable-manpage-build"
+    "--enable-zsh-comp"
+    "--disable-libmpv-static"
+    "--disable-static-build"
+    "--disable-build-date" # Purity
+    "--disable-macos-cocoa-cb" # Disable whilst Swift isn't supported
+    (enableFeature archiveSupport  "libarchive")
+    (enableFeature cddaSupport     "cdda")
+    (enableFeature dvdnavSupport   "dvdnav")
+    (enableFeature dvdreadSupport  "dvdread")
+    (enableFeature openalSupport   "openal")
+    (enableFeature vaapiSupport    "vaapi")
+    (enableFeature waylandSupport  "wayland")
+    (enableFeature stdenv.isLinux  "dvbin")
+  ];
+
+  configurePhase = ''
+    python3 ${waf} configure --prefix=$out $configureFlags
+  '';
+
+  nativeBuildInputs = [
+    docutils makeWrapper perl
+    pkgconfig python3 which
+  ];
+
+  buildInputs = [
+    ffmpeg_4 freetype libass libpthreadstubs
+    lua luasocket libuchardet
+  ] ++ optional alsaSupport        alsaLib
+    ++ optional archiveSupport     libarchive
+    ++ optional bluraySupport      libbluray
+    ++ optional bs2bSupport        libbs2b
+    ++ optional cacaSupport        libcaca
+    ++ optional cmsSupport         lcms2
+    ++ optional drmSupport         libdrm
+    ++ optional dvdreadSupport     libdvdread
+    ++ optional jackaudioSupport   libjack2
+    ++ optional libpngSupport      libpng
+    ++ optional openalSupport      openalSoft
+    ++ optional pulseSupport       libpulseaudio
+    ++ optional rubberbandSupport  rubberband
+    ++ optional screenSaverSupport libXScrnSaver
+    ++ optional sdl2Support        SDL2
+    ++ optional speexSupport       speex
+    ++ optional theoraSupport      libtheora
+    ++ optional vaapiSupport       libva
+    ++ optional vapoursynthSupport vapoursynth
+    ++ optional vdpauSupport       libvdpau
+    ++ optional xineramaSupport    libXinerama
+    ++ optional xvSupport          libXv
+    ++ optional youtubeSupport     youtube-dl
+    ++ optional stdenv.isDarwin    libiconv
+    ++ optionals cddaSupport       [ libcdio libcdio-paranoia ]
+    ++ optionals dvdnavSupport     [ libdvdnav libdvdnav.libdvdread ]
+    ++ optionals waylandSupport    [ wayland wayland-protocols libxkbcommon ]
+    ++ optionals x11Support        [ libX11 libXext libGLU_combined libXxf86vm libXrandr ]
+    ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+      CoreFoundation Cocoa CoreAudio
+    ]);
+
+  enableParallelBuilding = true;
+
+  buildPhase = ''
+    python3 ${waf} build
+  '' + optionalString stdenv.isDarwin ''
+    python3 TOOLS/osxbundle.py -s build/mpv
+  '';
+
+  # Ensure youtube-dl is available in $PATH for mpv
+  wrapperFlags = 
+  let
+    getPath  = type : "${luasocket}/lib/lua/${lua.luaversion}/?.${type};" +
+                      "${luasocket}/share/lua/${lua.luaversion}/?.${type}";
+    luaPath  = getPath "lua";
+    luaCPath = getPath "so";
+  in
+  ''
+      --prefix LUA_PATH : "${luaPath}" \
+      --prefix LUA_CPATH : "${luaCPath}" \
+  '' + optionalString youtubeSupport ''
+      --prefix PATH : "${youtube-dl}/bin" \
+  '' + optionalString vapoursynthSupport ''
+      --prefix PYTHONPATH : "${vapoursynth}/lib/${python3.libPrefix}/site-packages:$PYTHONPATH"
+  '';
+
+  installPhase = ''
+    python3 ${waf} install
+
+    # Use a standard font
+    mkdir -p $out/share/mpv
+    ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
+    wrapProgram "$out/bin/mpv" \
+      ${wrapperFlags}
+
+    cp TOOLS/umpv $out/bin
+    wrapProgram $out/bin/umpv \
+      --set MPV "$out/bin/mpv"
+
+  '' + optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    cp -r build/mpv.app $out/Applications
+    wrapProgram "$out/Applications/mpv.app/Contents/MacOS/mpv" \
+      ${wrapperFlags}
+  '';
+
+  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 fuuzetsu fpletz ];
+    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/nixpkgs/pkgs/applications/video/mpv/scripts/convert.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/convert.nix
new file mode 100644
index 000000000000..faa21326fc0e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/convert.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchgit, lib
+, yad, mkvtoolnix-cli, libnotify }:
+
+stdenv.mkDerivation {
+  name = "mpv-convert-script-2016-03-18.lua";
+  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 = ''
+    cp convert_script.lua $out
+  '';
+
+  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/nixpkgs/pkgs/applications/video/mpv/scripts/convert.patch b/nixpkgs/pkgs/applications/video/mpv/scripts/convert.patch
new file mode 100644
index 000000000000..82171210b415
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/mpv/scripts/mpris.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/mpris.nix
new file mode 100644
index 000000000000..778dc52d96a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/mpris.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkgconfig, gobject-introspection, mpv }:
+
+stdenv.mkDerivation rec {
+  name = "mpv-mpris-${version}.so";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "hoyon";
+    repo = "mpv-mpris";
+    rev = version;
+    sha256 = "06hq3j1jjlaaz9ss5l7illxz8vm5bng86jl24kawglwkqayhdnjx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ gobject-introspection mpv ];
+
+  installPhase = ''
+    cp mpris.so $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "MPRIS plugin for mpv";
+    homepage = https://github.com/hoyon/mpv-mpris;
+    license = licenses.mit;
+    maintainers = with maintainers; [ jfrankenau ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mpv/wrapper.nix b/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
new file mode 100644
index 000000000000..624c06414fd3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mpv/wrapper.nix
@@ -0,0 +1,14 @@
+{ stdenv, symlinkJoin, makeWrapper, mpv, scripts ? [] }:
+
+symlinkJoin {
+  name = "mpv-with-scripts-${mpv.version}";
+
+  paths = [ mpv ];
+
+  buildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    wrapProgram $out/bin/mpv \
+      --add-flags "${stdenv.lib.concatMapStringsSep " " (x: "--script=" + x) scripts}"
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/video/mythtv/default.nix b/nixpkgs/pkgs/applications/video/mythtv/default.nix
new file mode 100644
index 000000000000..1be4fc252fd0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mythtv/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, which, qtbase, qtwebkit, qtscript, xlibsWrapper
+, libpulseaudio, fftwSinglePrec , lame, zlib, libGLU_combined, alsaLib, freetype
+, perl, pkgconfig , libX11, libXv, libXrandr, libXvMC, libXinerama, libXxf86vm
+, libXmu , yasm, libuuid, taglib, libtool, autoconf, automake, file, exiv2
+, linuxHeaders
+}:
+
+stdenv.mkDerivation rec {
+  name = "mythtv-${version}";
+  version = "29.1";
+
+  src = fetchFromGitHub {
+    owner = "MythTV";
+    repo = "mythtv";
+    rev = "v${version}";
+    sha256 = "0pjxv4bmq8h285jsr02svgaa03614arsyk12fn9d4rndjsi2cc3x";
+  };
+
+  setSourceRoot = ''sourceRoot=$(echo */mythtv)'';
+
+  buildInputs = [
+    freetype qtbase qtwebkit qtscript lame zlib xlibsWrapper libGLU_combined
+    perl 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.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.titanous ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/natron/config.pri b/nixpkgs/pkgs/applications/video/natron/config.pri
new file mode 100644
index 000000000000..c0d236c6b975
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/natron/default.nix b/nixpkgs/pkgs/applications/video/natron/default.nix
new file mode 100644
index 000000000000..090b4ec9ffe2
--- /dev/null
+++ b/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, 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";
+    name = "seexpr-${version}";
+    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 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.inria.fr/;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ maintainers.puffnfresh ];
+    platforms = platforms.linux;
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
new file mode 100644
index 000000000000..3bb8f31b9872
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -0,0 +1,88 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, fdk_aac
+, ffmpeg
+, jansson
+, libjack2
+, libxkbcommon
+, libpthreadstubs
+, libXdmcp
+, qtbase
+, qtx11extras
+, speex
+, libv4l
+, x264
+, curl
+, xorg
+, makeWrapper
+, pkgconfig
+, vlc
+, mbedtls
+
+, alsaSupport ? false
+, alsaLib
+, pulseaudioSupport ? false
+, libpulseaudio
+}:
+
+let
+  optional = stdenv.lib.optional;
+in stdenv.mkDerivation rec {
+  name = "obs-studio-${version}";
+  version = "22.0.3";
+
+  src = fetchFromGitHub {
+    owner = "jp9000";
+    repo = "obs-studio";
+    rev = "${version}";
+    sha256 = "0ri9qkqk3h71b1a5bwpjzqdr21bbmfqbykg48l779d20zln23n1i";
+  };
+
+  nativeBuildInputs = [ cmake
+                        pkgconfig
+                      ];
+
+  buildInputs = [ curl
+                  fdk_aac
+                  ffmpeg
+                  jansson
+                  libjack2
+                  libv4l
+                  libxkbcommon
+                  libpthreadstubs
+                  libXdmcp
+                  qtbase
+                  qtx11extras
+                  speex
+                  x264
+                  vlc
+                  makeWrapper
+                  mbedtls
+                ]
+                ++ optional alsaSupport alsaLib
+                ++ optional pulseaudioSupport libpulseaudio;
+
+  # 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\\\"" ];
+
+  postInstall = ''
+      wrapProgram $out/bin/obs \
+        --prefix "LD_LIBRARY_PATH" : "${xorg.libX11.out}/lib:${vlc}/lib"
+  '';
+
+  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 = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix b/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix
new file mode 100644
index 000000000000..b8bd6ce07eb9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/obs-studio/linuxbrowser.nix
@@ -0,0 +1,48 @@
+# 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-linuxbrowser
+# mkdir -p ~/.config/obs-studio/plugins
+# ln -s ~/.nix-profile/share/obs/obs-plugins/obs-linuxbrowser ~/.config/obs-studio/plugins/
+
+{ stdenv, fetchFromGitHub, obs-studio, cmake, libcef
+}:
+
+stdenv.mkDerivation rec {
+  name = "obs-linuxbrowser-${version}";
+  version = "0.5.2";
+  src = fetchFromGitHub {
+    owner = "bazukas";
+    repo = "obs-linuxbrowser";
+    rev = version;
+    sha256 = "1vwgdgcmab5442wh2rjww6lzij9g2c5ccnv79rs7vx3rdl8wqg4f";
+  };
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ obs-studio ];
+  postUnpack = ''
+    mkdir -p cef/Release cef/Resources cef/libcef_dll_wrapper/
+    for i in ${libcef}/share/cef/*; do
+      ln -s $i cef/Release/
+      ln -s $i cef/Resources/
+    done
+    ln -s ${libcef}/lib/libcef.so cef/Release/
+    ln -s ${libcef}/lib/libcef_dll_wrapper.a cef/libcef_dll_wrapper/
+    ln -s ${libcef}/include cef/
+  '';
+  cmakeFlags = [
+    "-DCEF_ROOT_DIR=../../cef"
+    "-DOBS_INCLUDE_SEARCH_DIR=${obs-studio}/include/obs"
+  ];
+  installPhase = ''
+    mkdir -p $out/share/obs/obs-plugins
+    cp -r build/obs-linuxbrowser $out/share/obs/obs-plugins/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Browser source plugin for obs-studio based on Chromium Embedded Framework";
+    homepage = https://github.com/bazukas/obs-linuxbrowser;
+    maintainers = with maintainers; [ puffnfresh ];
+    license = licenses.gpl2;
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/ogmtools/default.nix b/nixpkgs/pkgs/applications/video/ogmtools/default.nix
new file mode 100644
index 000000000000..221f4fc0e5c3
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/omxplayer/default.nix b/nixpkgs/pkgs/applications/video/omxplayer/default.nix
new file mode 100644
index 000000000000..7a130bbdb418
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/openshot-qt/default.nix b/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
new file mode 100644
index 000000000000..0905ef5481bb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/openshot-qt/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub
+, doxygen, python3Packages, libopenshot
+, wrapGAppsHook, gtk3 }:
+
+python3Packages.buildPythonApplication rec {
+  name = "openshot-qt-${version}";
+  version = "2.4.3";
+
+  src = fetchFromGitHub {
+    owner = "OpenShot";
+    repo = "openshot-qt";
+    rev = "v${version}";
+    sha256 = "1qdw1mli4y9qhrnllnkaf6ydgw5vfvdb90chs4i679k0x0jyb9a2";
+  };
+
+  nativeBuildInputs = [ doxygen wrapGAppsHook ];
+
+  buildInputs = [ gtk3 ];
+
+  propagatedBuildInputs = with python3Packages; [ libopenshot pyqt5 requests sip httplib2 pyzmq ];
+
+
+  preConfigure = ''
+    # tries to create caching directories during install
+    export HOME=$(mktemp -d)
+  '';
+
+  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; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
new file mode 100644
index 000000000000..9e275464f05c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot-audio.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, doxygen, alsaLib
+, libX11, libXft, libXrandr, libXinerama, libXext, libXcursor }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "libopenshot-audio-${version}";
+  version = "0.1.7";
+
+  src = fetchFromGitHub {
+    owner = "OpenShot";
+    repo = "libopenshot-audio";
+    rev = "v${version}";
+    sha256 = "08a8wbi28kwrdz4h0rs1b9vsr28ldfi8g75q54rj676y1vwg3qys";
+  };
+
+  nativeBuildInputs =
+  [ pkgconfig cmake doxygen ];
+
+  buildInputs =
+  [ alsaLib 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; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
new file mode 100644
index 000000000000..aab54e6d2ee2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/openshot-qt/libopenshot.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, cmake, doxygen
+, libopenshot-audio, imagemagick, ffmpeg
+, swig, python3
+, unittest-cpp, cppzmq, czmqpp
+, qtbase, qtmultimedia }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "libopenshot-${version}";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "OpenShot";
+    repo = "libopenshot";
+    rev = "v${version}";
+    sha256 = "1x4kv05pdq1pglb6y056aa7llc6iyibyhzg93k7zwj0q08cp5ixd";
+  };
+
+  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 swig python3 unittest-cpp
+    cppzmq czmqpp qtbase qtmultimedia ];
+
+  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; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/p2pvc/default.nix b/nixpkgs/pkgs/applications/video/p2pvc/default.nix
new file mode 100644
index 000000000000..d9eef7f4cd85
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/p2pvc/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, pkgconfig, fetchFromGitHub, opencv, ncurses, portaudio }:
+
+stdenv.mkDerivation {
+  name = "p2pvc";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ opencv 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/nixpkgs/pkgs/applications/video/peek/default.nix b/nixpkgs/pkgs/applications/video/peek/default.nix
new file mode 100644
index 000000000000..728f6387ffa9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/peek/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, gettext, libxml2, pkgconfig, txt2man, vala, wrapGAppsHook
+, gsettings-desktop-schemas, gtk3, keybinder3, ffmpeg
+}:
+
+stdenv.mkDerivation rec {
+  name = "peek-${version}";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "phw";
+    repo = "peek";
+    rev = version;
+    sha256 = "1fnvlklmg6s5rs3ql74isa5fgdkqqrpsyf8k2spxj520239l4vgb";
+  };
+
+  preConfigure = ''
+    gappsWrapperArgs+=(--prefix PATH : ${stdenv.lib.makeBinPath [ ffmpeg ]})
+  '';
+
+  nativeBuildInputs = [ cmake gettext pkgconfig libxml2.bin txt2man vala wrapGAppsHook ];
+
+  buildInputs = [ gsettings-desktop-schemas gtk3 keybinder3 ];
+
+  enableParallelBuilding = true;
+
+  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 ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/pitivi/default.nix b/nixpkgs/pkgs/applications/video/pitivi/default.nix
new file mode 100644
index 000000000000..bce8e3981d13
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/pitivi/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, intltool, itstool, python3, wrapGAppsHook
+, python3Packages, gst_all_1, gtk3
+, gobject-introspection, librsvg, gnome3, libnotify
+, meson, ninja
+}:
+
+let
+  version = "0.999";
+
+  # gst-transcoder will eventually be merged with gstreamer (according to
+  # gst-transcoder 1.8.0 release notes). For now the only user is pitivi so we
+  # don't bother exposing the package to all of nixpkgs.
+  gst-transcoder = stdenv.mkDerivation rec {
+    version = "1.14.1";
+    name = "gst-transcoder-${version}";
+    src = fetchFromGitHub {
+      owner = "pitivi";
+      repo = "gst-transcoder";
+      rev = version;
+      sha256 = "16skiz9akavssii529v9nr8zd54w43livc14khdyzv164djg9q8f";
+    };
+    nativeBuildInputs = [ pkgconfig meson ninja gobject-introspection python3 ];
+    buildInputs = with gst_all_1; [ gstreamer gst-plugins-base ];
+  };
+
+in python3Packages.buildPythonApplication rec {
+  name = "pitivi-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0mxp2p4gg976fp1vj3rb5rmpl5mqfzncm9vw2719irl32f1qlvyb";
+  };
+
+  format = "other";
+
+  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
+  ];
+
+  postPatch = ''
+    patchShebangs ./getenvvar.py
+  '';
+
+  nativeBuildInputs = [ meson ninja pkgconfig intltool itstool python3 wrapGAppsHook ];
+
+  buildInputs = [
+    gobject-introspection gtk3 librsvg gnome3.gnome-desktop gnome3.gsound
+    gnome3.defaultIconTheme
+    gnome3.gsettings-desktop-schemas libnotify
+    gst-transcoder
+  ] ++ (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-validate
+  ]);
+
+  pythonPath = with python3Packages; [ pygobject3 gst-python pyxdg numpy pycairo matplotlib dbus-python ];
+
+  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/nixpkgs/pkgs/applications/video/pitivi/prevent-closure-contamination.patch b/nixpkgs/pkgs/applications/video/pitivi/prevent-closure-contamination.patch
new file mode 100644
index 000000000000..0025ecd0a4cf
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/plex-media-player/default.nix b/nixpkgs/pkgs/applications/video/plex-media-player/default.nix
new file mode 100644
index 000000000000..ceba62b6f607
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/plex-media-player/default.nix
@@ -0,0 +1,86 @@
+{ stdenv, fetchFromGitHub, fetchurl, makeDesktopItem, pkgconfig, cmake, python3
+, 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. Whenever
+  # plex-media-player is updated, the versions for these files are changed,
+  # so the build IDs (and SHAs) below will need to be updated!
+  depSrcs = rec {
+    webClientBuildId = "85-88b3ac67015f76";
+    webClientDesktopBuildId = "3.77.2-7015f76";
+    webClientTvBuildId = "3.78.0-88b3ac6";
+
+    webClient = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake";
+      sha256 = "0j7i4yr95ljw9cwyaygld41j7yvndj3dza3cbydv4x8mh2hn05v1";
+    };
+    webClientDesktopHash = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1";
+      sha256 = "106kx9ahz7jgskpjraff2g235n1whwvf18yw0nmp5dwr9ys9h8jp";
+    };
+    webClientDesktop = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz";
+      sha256 = "0h23h3fd3w43glvnhrg9qiajs0ql490kb00g3i4cpi29hy1ky45r";
+    };
+    webClientTvHash = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1";
+      sha256 = "05zk2zpmcdf276ys5zyirsmvhvyvz99fa6hlgymma8ql6w67133r";
+    };
+    webClientTv = fetchurl {
+      url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz";
+      sha256 = "1cflpgaf4kyj6ccqa11j28rkp8s7zlbnid7s00m5n2c907dihmw2";
+    };
+  };
+in stdenv.mkDerivation rec {
+  name = "plex-media-player-${version}";
+  version = "2.23.0.920";
+  vsnHash = "5bc1a2e5";
+
+  src = fetchFromGitHub {
+    owner = "plexinc";
+    repo = "plex-media-player";
+    rev = "v${version}-${vsnHash}";
+    sha256 = "1jzlyj32gr3ar89qnk8slazrbchqkjfx9dchzkzfvpi6742v9igm";
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake python3 ];
+  buildInputs = [ libX11 libXrandr qtbase qtwebchannel qtwebengine qtx11extras
+                  libvdpau SDL2 mpv libGL ];
+
+  desktopItem = makeDesktopItem {
+    name = "plex-media-player";
+    exec = "plexmediaplayer";
+    icon = "plex-media-player";
+    comment = "View your media";
+    desktopName = "Plex Media Player";
+    genericName = "Media Player";
+    categories = "AudioVideo;Video;Player;TV;";
+  };
+
+  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
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/{applications,pixmaps}
+    cp ${src}/resources/images/icon.png $out/share/pixmaps/plex-media-player.png
+    cp ${desktopItem}/share/applications/* $out/share/applications
+  '';
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=RelWithDebInfo" "-DQTROOT=${qtbase}" ];
+
+  meta = with stdenv.lib; {
+    description = "Streaming media player for Plex";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ kylewlacy ];
+    homepage = https://plex.tv;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/pyca/default.nix b/nixpkgs/pkgs/applications/video/pyca/default.nix
new file mode 100644
index 000000000000..af9ef4c1cd50
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/qarte/default.nix b/nixpkgs/pkgs/applications/video/qarte/default.nix
new file mode 100644
index 000000000000..aba3b81fde85
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/qarte/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchbzr, python3, rtmpdump, makeWrapper }:
+
+let
+  pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 sip ]);
+in stdenv.mkDerivation {
+  name = "qarte-3.10.0+188";
+  src = fetchbzr {
+    url = http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-3;
+    rev = "188";
+    sha256 = "06xpkjgm5ci5gfkza9f44m8l4jj32gfmr65cqs4x0j2ihrc6b4r9";
+  };
+
+  buildInputs = [ makeWrapper pythonEnv ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv qarte $out/bin/
+    substituteInPlace $out/bin/qarte \
+      --replace '/usr/share' "$out/share"
+    wrapProgram $out/bin/qarte \
+      --prefix PATH : "${rtmpdump}/bin"
+
+    mkdir -p $out/share/man/man1/
+    mv qarte.1 $out/share/man/man1/
+
+    mkdir -p $out/share/qarte
+    mv * $out/share/qarte/
+  '';
+
+  meta = {
+    homepage = https://launchpad.net/qarte;
+    description = "A recorder for Arte TV Guide and Arte Concert";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ vbgl ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/qmediathekview/default.nix b/nixpkgs/pkgs/applications/video/qmediathekview/default.nix
new file mode 100644
index 000000000000..13f93800f6e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/qmediathekview/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, qtbase, qttools, xz, boost, qmake, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  pname = "QMediathekView";
+  version = "2017-04-16";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "adamreichold";
+    repo = pname;
+    rev = "8c69892b95bf6825bd06a8c594168a98fe7cb2d1";
+    sha256 = "1wca1w4iywd3hmiwcqx6fv79p3x5n1cgbw2liw3hs24ch3z54ckm";
+  };
+
+  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/nixpkgs/pkgs/applications/video/qstopmotion/default.nix b/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
new file mode 100644
index 000000000000..2dd76b36d057
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/qstopmotion/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, fetchurl, qt5, ffmpeg, guvcview, cmake, ninja, libxml2
+, gettext, pkgconfig, libgphoto2, gphoto2, v4l_utils, libv4l, pcre
+, qwt, extra-cmake-modules }:
+
+stdenv.mkDerivation rec {
+  pname = "qstopmotion";
+  version = "2.4.0";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${pname}/Version_2_4_0/${name}-Source.tar.gz";
+    sha256 = "0pbyq6nrr9g3crlsng660768167s0fybvcpzbfc0w9kkhs2jwrr2";
+  };
+
+  buildInputs = with qt5; [ v4l_utils libv4l pcre qtbase qtmultimedia ffmpeg guvcview
+                            qwt qtquickcontrols qtimageformats qtxmlpatterns ];
+
+  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 ];
+    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/quvi/library.nix b/nixpkgs/pkgs/applications/video/quvi/library.nix
new file mode 100644
index 000000000000..c3204cc9c0ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/quvi/library.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, lua5, curl, quvi_scripts, libproxy, libgcrypt, glib }:
+
+stdenv.mkDerivation rec {
+  name = "libquvi-${version}";
+  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/nixpkgs/pkgs/applications/video/quvi/scripts.nix b/nixpkgs/pkgs/applications/video/quvi/scripts.nix
new file mode 100644
index 000000000000..603534be4c8b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/quvi/scripts.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, pkgconfig}:
+
+stdenv.mkDerivation rec {
+  name = "quvi-scripts-${version}";
+  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/nixpkgs/pkgs/applications/video/quvi/tool.nix b/nixpkgs/pkgs/applications/video/quvi/tool.nix
new file mode 100644
index 000000000000..333f4e6ab4de
--- /dev/null
+++ b/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 {
+  name = "quvi-${version}";
+  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/nixpkgs/pkgs/applications/video/recordmydesktop/default.nix b/nixpkgs/pkgs/applications/video/recordmydesktop/default.nix
new file mode 100644
index 000000000000..8797ad8f953b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/recordmydesktop/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchsvn, autoreconfHook, zlib, popt, alsaLib, libvorbis, libtheora
+, libICE, libSM, libX11, libXext, libXfixes, libXdamage }:
+
+stdenv.mkDerivation rec {
+  name = "recordmydesktop-${version}";
+  version = "0.3.8.1-svn${rev}";
+  rev = "602";
+
+  src = fetchsvn {
+    url = https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk/recordmydesktop;
+    inherit rev;
+    sha256 = "1avirkc4ymrd575m616pi6wpgq1i0r5sb3qahps1g18sjpxks0lf";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [
+    zlib popt alsaLib libICE libSM libX11 libXext
+    libXfixes libXdamage libvorbis libtheora
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Desktop session recorder";
+    homepage = http://recordmydesktop.sourceforge.net/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/recordmydesktop/gtk.nix b/nixpkgs/pkgs/applications/video/recordmydesktop/gtk.nix
new file mode 100644
index 000000000000..984b623cee7e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/recordmydesktop/gtk.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchsvn, recordmydesktop, autoreconfHook, pkgconfig
+, pythonPackages, jack2, xwininfo }:
+
+let
+  binPath = lib.makeBinPath [ recordmydesktop jack2 xwininfo ];
+
+in stdenv.mkDerivation rec {
+  name = "gtk-recordmydesktop-${version}";
+  version = "0.3.8-svn${recordmydesktop.rev}";
+
+  src = fetchsvn {
+    url = https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk/gtk-recordmydesktop;
+    inherit (recordmydesktop) rev;
+    sha256 = "010aykgjfxhyiixq9a9fg3p1a1ixz59m1vkn16hpy0lybgf4dsby";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  buildInputs = with pythonPackages; [
+    python pygtk wrapPython
+  ];
+
+  pythonPath = with pythonPackages; [ pygtk ];
+
+  postInstall = ''
+    makeWrapperArgs="--prefix PATH : ${binPath}"
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GTK frontend for recordmydesktop";
+    homepage = http://recordmydesktop.sourceforge.net/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/recordmydesktop/qt.nix b/nixpkgs/pkgs/applications/video/recordmydesktop/qt.nix
new file mode 100644
index 000000000000..560801351515
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/recordmydesktop/qt.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchsvn, recordmydesktop, autoreconfHook, pkgconfig
+, glib, pythonPackages, qt4, jack2, xwininfo }:
+
+let
+  binPath = lib.makeBinPath [ recordmydesktop jack2 xwininfo ];
+
+in stdenv.mkDerivation rec {
+  name = "qt-recordmydesktop-${version}";
+  version = "0.3.8-svn${recordmydesktop.rev}";
+
+  src = fetchsvn {
+    url = https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk/qt-recordmydesktop;
+    inherit (recordmydesktop) rev;
+    sha256 = "0vz7amrmz317sbx2cv2186d0r57as4l26xa9rpim5gbvzk20caqc";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  buildInputs = [ glib qt4 ] ++ (with pythonPackages; [
+    python wrapPython pyqt4
+  ]);
+
+  pythonPath = with pythonPackages; [ pyqt4 ];
+
+  postInstall = ''
+    makeWrapperArgs="--prefix PATH : ${binPath}"
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GTK frontend for recordmydesktop";
+    homepage = http://recordmydesktop.sourceforge.net/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/screenkey/default.nix b/nixpkgs/pkgs/applications/video/screenkey/default.nix
new file mode 100644
index 000000000000..6042f490dfa0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/screenkey/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, substituteAll
+, buildPythonApplication
+, fetchFromGitHub
+, distutils_extra
+, setuptools-git
+, intltool
+, pygtk
+, libX11
+, libXtst
+, wrapGAppsHook
+, defaultIconTheme
+, hicolor-icon-theme
+}:
+buildPythonApplication rec {
+  pname = "screenkey";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "wavexx";
+    repo = "screenkey";
+    rev = "screenkey-${version}";
+    sha256 = "14g7fiv9n7m03djwz1pp5034pffi87ssvss9bc1q8vq0ksn23vrw";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./paths.patch;
+      inherit libX11 libXtst;
+    })
+  ];
+
+  nativeBuildInputs = [
+    distutils_extra
+    setuptools-git
+    intltool
+
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    defaultIconTheme
+    hicolor-icon-theme
+  ];
+
+  propagatedBuildInputs = [
+    pygtk
+  ];
+
+  # screenkey does not have any tests
+  doCheck = false;
+
+  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/nixpkgs/pkgs/applications/video/screenkey/paths.patch b/nixpkgs/pkgs/applications/video/screenkey/paths.patch
new file mode 100644
index 000000000000..7e5ed47fc19d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/screenkey/paths.patch
@@ -0,0 +1,20 @@
+--- a/Screenkey/xlib.py
++++ b/Screenkey/xlib.py
+@@ -6,7 +6,7 @@
+ from ctypes import *
+ 
+ ## base X11
+-libX11 = CDLL('libX11.so.6')
++libX11 = CDLL('@libX11@/lib/libX11.so.6')
+ 
+ # types
+ Atom = c_ulong
+@@ -278,7 +278,7 @@
+ 
+ 
+ ## record extensions
+-libXtst = CDLL('libXtst.so.6')
++libXtst = CDLL('@libXtst@/lib/libXtst.so.6')
+ 
+ # types
+ XPointer = String
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/video/shotcut/default.nix b/nixpkgs/pkgs/applications/video/shotcut/default.nix
new file mode 100644
index 000000000000..877d1a7525f5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/shotcut/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, fetchFromGitHub, SDL2, frei0r, gettext, mlt, jack1, pkgconfig, qtbase
+, qtmultimedia, qtwebkit, qtx11extras, qtwebsockets, qtquickcontrols
+, qtgraphicaleffects, libmlt
+, qmake, makeWrapper, qttools }:
+
+assert stdenv.lib.versionAtLeast libmlt.version "6.8.0";
+assert stdenv.lib.versionAtLeast mlt.version "6.8.0";
+
+stdenv.mkDerivation rec {
+  name = "shotcut-${version}";
+  version = "18.11.18";
+
+  src = fetchFromGitHub {
+    owner = "mltframework";
+    repo = "shotcut";
+    rev = "v${version}";
+    sha256 = "0yhrjqc5cby9vc81z5zh5xg34mvh6q8dd896p2izfcqcdhdz7cs3";
+  };
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ makeWrapper pkgconfig qmake ];
+  buildInputs = [
+    SDL2 frei0r gettext mlt libmlt
+    qtbase qtmultimedia qtwebkit qtx11extras qtwebsockets qtquickcontrols
+    qtgraphicaleffects
+  ];
+
+  NIX_CFLAGS_COMPILE = "-I${libmlt}/include/mlt++ -I${libmlt}/include/mlt";
+  qmakeFlags = [ "QMAKE_LRELEASE=${stdenv.lib.getDev qttools}/bin/lrelease" "SHOTCUT_VERSION=${version}" ];
+
+  prePatch = ''
+    sed 's_shotcutPath, "qmelt"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
+    sed 's_shotcutPath, "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/jobs/ffmpegjob.cpp
+    NICE=$(type -P nice)
+    sed "s_/usr/bin/nice_''${NICE}_" -i src/jobs/meltjob.cpp src/jobs/ffmpegjob.cpp
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/shotcut
+    cp -r src/qml $out/share/shotcut/
+    wrapProgram $out/bin/shotcut --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ jack1 SDL2 ]} --prefix PATH : ${mlt}/bin
+  '';
+
+  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 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix b/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix
new file mode 100644
index 000000000000..b456d8ee9a66
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, alsaLib, ffmpeg, libjack2, libX11, libXext, qtx11extras
+, libXfixes, libGLU_combined, pkgconfig, libpulseaudio, qtbase, cmake, ninja
+}:
+
+stdenv.mkDerivation rec {
+  name = "simplescreenrecorder-${version}";
+  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 libjack2 libX11 libXext libXfixes libGLU_combined
+    libpulseaudio qtbase qtx11extras
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A screen recorder for Linux";
+    homepage = http://www.maartenbaert.be/simplescreenrecorder;
+    license = licenses.gpl3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/simplescreenrecorder/fix-paths.patch b/nixpkgs/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
new file mode 100644
index 000000000000..ba02240ce1f2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/smplayer/default.nix b/nixpkgs/pkgs/applications/video/smplayer/default.nix
new file mode 100644
index 000000000000..52876bb1bbc8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/smplayer/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, qmake, qtscript }:
+
+stdenv.mkDerivation rec {
+  name = "smplayer-18.10.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/smplayer/${name}.tar.bz2";
+    sha256 = "1sql1rd4h74smkapjf5c686zbdqqaf44h7k7z5bxfvfcsad7rzrd";
+  };
+
+  buildInputs = [ qtscript ];
+  nativeBuildInputs = [ qmake ];
+
+  dontUseQmakeConfigure = true;
+
+  preConfigure = ''
+    makeFlags="PREFIX=$out"
+  '';
+
+  meta = {
+    description = "A complete front-end for MPlayer";
+    homepage = http://smplayer.sourceforge.net/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/smtube/default.nix b/nixpkgs/pkgs/applications/video/smtube/default.nix
new file mode 100644
index 000000000000..c5dcec387236
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/smtube/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, qmake, qtscript, qtwebkit }:
+
+stdenv.mkDerivation rec {
+  version = "18.11.0";
+  name = "smtube-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/smtube/SMTube/${version}/${name}.tar.bz2";
+    sha256 = "0rda7mdsr0awhra9yrmsdzp2c4s6xx5nax107d1fydnk084pygqp";
+  };
+
+  makeFlags = [
+    "PREFIX=$(out)"
+  ];
+
+  dontUseQmakeConfigure = true;
+
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ qtscript qtwebkit ];
+
+  meta = with stdenv.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/nixpkgs/pkgs/applications/video/streamlink/default.nix b/nixpkgs/pkgs/applications/video/streamlink/default.nix
new file mode 100644
index 000000000000..dbf22aa9f8ee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/streamlink/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, pythonPackages, fetchFromGitHub, rtmpdump, ffmpeg }:
+
+pythonPackages.buildPythonApplication rec {
+  version = "0.14.2";
+  name = "streamlink-${version}";
+
+  src = fetchFromGitHub {
+    owner = "streamlink";
+    repo = "streamlink";
+    rev = "${version}";
+    sha256 = "1njwfy1h8a9n5z6crrfnknlw4ys0bap2jam6ga6njgkd10aly9qr";
+  };
+
+  checkInputs = with pythonPackages; [ pytest mock requests-mock freezegun ];
+
+  propagatedBuildInputs = (with pythonPackages; [ pycryptodome requests iso-639 iso3166 websocket_client isodate ]) ++ [ rtmpdump ffmpeg ];
+
+  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/nixpkgs/pkgs/applications/video/subdl/default.nix b/nixpkgs/pkgs/applications/video/subdl/default.nix
new file mode 100644
index 000000000000..32bd731f16e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/subdl/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, python3 }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/video/subtitleeditor/default.nix b/nixpkgs/pkgs/applications/video/subtitleeditor/default.nix
new file mode 100644
index 000000000000..3683973824a3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/subtitleeditor/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, intltool, file,
+  desktop-file-utils, enchant, gnome3, gst_all_1, hicolor-icon-theme,
+  libsigcxx, libxmlxx, xdg_utils, isocodes, wrapGAppsHook
+}:
+
+let
+  version = "0.54.0";
+in
+
+stdenv.mkDerivation rec {
+  name = "subtitleeditor-${version}";
+
+  src = fetchFromGitHub {
+    owner = "kitone";
+    repo = "subtitleeditor";
+    rev = version;
+    sha256 = "0vxcscc9m6gymgj173ahk2g9hlk9588z5fdaavmkpyriqdlhwm11";
+  };
+
+  nativeBuildInputs =  [
+    autoreconfHook
+    pkgconfig
+    intltool
+    file
+    wrapGAppsHook
+  ];
+
+  buildInputs =  [
+    desktop-file-utils
+    enchant
+    gnome3.gtk
+    gnome3.gtkmm
+    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/nixpkgs/pkgs/applications/video/tivodecode/default.nix b/nixpkgs/pkgs/applications/video/tivodecode/default.nix
new file mode 100644
index 000000000000..83ca41e201c9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/tivodecode/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+let
+  version = "0.2pre4";
+
+in
+
+stdenv.mkDerivation {
+  name = "tivodecode-${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/nixpkgs/pkgs/applications/video/uvccapture/default.nix b/nixpkgs/pkgs/applications/video/uvccapture/default.nix
new file mode 100644
index 000000000000..dd595baa52e8
--- /dev/null
+++ b/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 rec {
+  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/nixpkgs/pkgs/applications/video/vdr/default.nix b/nixpkgs/pkgs/applications/video/vdr/default.nix
new file mode 100644
index 000000000000..0ad0b04e7e4b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/vdr/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, fetchurl, fontconfig, libjpeg, libcap, freetype, fribidi, pkgconfig
+, gettext, ncurses, systemd, perl
+, enableSystemd ? true
+, enableBidi ? true
+}:
+let
+
+  version = "2.4.0";
+
+  name = "vdr-${version}";
+
+  mkPlugin = name: stdenv.mkDerivation {
+    name = "vdr-${name}-${version}";
+    inherit (vdr) src;
+    buildInputs = [ vdr ];
+    preConfigure = "cd PLUGINS/src/${name}";
+    installFlags = [ "DESTDIR=$(out)" ];
+  };
+
+  vdr = stdenv.mkDerivation {
+
+    inherit name;
+
+    src = fetchurl {
+      url = "ftp://ftp.tvdr.de/vdr/${name}.tar.bz2";
+      sha256 = "1klcgy9kr7n6z8d2c77j63bl8hvhx5qnqppg73f77004hzz4kbwk";
+    };
+
+    enableParallelBuilding = true;
+
+    postPatch = "substituteInPlace Makefile --replace libsystemd-daemon libsystemd";
+
+    buildInputs = [ fontconfig libjpeg libcap freetype ]
+    ++ stdenv.lib.optional enableSystemd systemd
+    ++ stdenv.lib.optional enableBidi fribidi;
+
+    buildFlags = [ "vdr" "i18n" ]
+    ++ stdenv.lib.optional enableSystemd "SDNOTIFY=1"
+    ++ stdenv.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 stdenv.lib; {
+      homepage = http://www.tvdr.de/;
+      description = "Video Disc Recorder";
+      maintainers = [ maintainers.ck3d ];
+      platforms = [ "i686-linux" "x86_64-linux" ];
+      license = licenses.gpl2;
+    };
+
+  };
+in vdr // {
+  plugins = {
+    skincurses = (mkPlugin "skincurses").overrideAttrs(
+    oldAttr: { buildInputs = oldAttr.buildInputs ++ [ ncurses ]; });
+  } // (stdenv.lib.genAttrs [
+    "epgtableid0" "hello" "osddemo" "pictures" "servicedemo" "status" "svdrpdemo"
+  ] mkPlugin);
+}
diff --git a/nixpkgs/pkgs/applications/video/vdr/plugins.nix b/nixpkgs/pkgs/applications/video/vdr/plugins.nix
new file mode 100644
index 000000000000..0e543390c4bb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/vdr/plugins.nix
@@ -0,0 +1,318 @@
+{ stdenv, fetchurl, fetchgit, vdr, ffmpeg_2, alsaLib, fetchFromGitHub
+, libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg
+, libiconv, boost, libgcrypt, perl, utillinux, groff, libva, xorg }:
+{
+  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 {
+
+    name = "vdr-vaapidevice-0.7.0";
+
+    buildInputs = [
+      vdr libxcb xcbutilwm ffmpeg
+      alsaLib
+      libvdpau # vdpau
+      libva # va-api
+    ] ++ (with xorg; [ libxcb libX11 ]);
+
+    makeFlags = [ "DESTDIR=$(out)" ];
+
+    postPatch = ''
+      substituteInPlace softhddev.c --replace /usr/bin/X ${xorgserver}/bin/X
+    '';
+
+    src = fetchFromGitHub {
+      owner = "pesintta";
+      repo = "vdr-plugin-vaapidevice";
+      sha256 = "072y61fpkh3i2dragg0nsd4g3malgwxkwpdrb1ykdljyzf52s5hs";
+      rev = "c99afc23a53e6d91f9afaa99af59b30e68e626a8";
+    };
+
+    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 = "2.4.0";
+
+    src = fetchurl {
+      url = "https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/snapshot/vdr-plugin-epgsearch-${version}.tar.bz2";
+      sha256 = "0xfgn17vicyjwdf0rbkrik4q16mnfi305d4wmi8f0qk825pa0z3y";
+    };
+
+    postPatch = ''
+      for f in *.sh; do
+        patchShebangs "$f"
+      done
+    '';
+
+    nativeBuildInputs = [
+      perl # for pod2man and pos2html
+      utillinux
+      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 rec {
+    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/nixpkgs/pkgs/applications/video/vdr/wrapper.nix b/nixpkgs/pkgs/applications/video/vdr/wrapper.nix
new file mode 100644
index 000000000000..2272d1605fd0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/vdr/wrapper.nix
@@ -0,0 +1,21 @@
+{ symlinkJoin, lib, makeWrapper, vdr, plugins ? [] }:
+symlinkJoin {
+
+  name = "vdr-with-plugins-${(builtins.parseDrvName vdr.name).version}";
+
+  paths = [ vdr ] ++ plugins;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    wrapProgram $out/bin/vdr --add-flags "-L $out/lib/vdr --localedir=$out/share/locale"
+  '';
+
+  meta = with vdr.meta; {
+    inherit license homepage;
+    description = description
+    + " (with plugins: "
+    + lib.concatStrings (lib.intersperse ", " (map (x: ""+x.name) plugins))
+    + ")";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/vlc/default.nix b/nixpkgs/pkgs/applications/video/vlc/default.nix
new file mode 100644
index 000000000000..cbf3c4917c35
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/vlc/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, fetchurl, autoreconfHook
+, libarchive, perl, xorg, libdvdnav, libbluray
+, zlib, a52dec, libmad, faad2, ffmpeg, 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, liboggz
+, libass, libva, libdvbpsi, libdc1394, libraw1394, libopus
+, libvdpau, libsamplerate, live555, fluidsynth, wayland, wayland-protocols
+, onlyLibVLC ? false
+, withQt5 ? true, qtbase ? null, qtsvg ? null, qtx11extras ? null
+, jackSupport ? false
+, fetchpatch
+, removeReferencesTo
+}:
+
+with stdenv.lib;
+
+assert (withQt5 -> qtbase != null && qtsvg != null && qtx11extras != null);
+
+stdenv.mkDerivation rec {
+  name = "vlc-${version}";
+  version = "3.0.4";
+
+  src = fetchurl {
+    url = "http://get.videolan.org/vlc/${version}/${name}.tar.xz";
+    sha256 = "17jsq0zqpqyxw4ckvjba0hf6zk8ywc4wf8sy3z03hh3ij0vxpwq1";
+  };
+
+  # 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 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 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;
+
+  nativeBuildInputs = [ autoreconfHook perl pkgconfig removeReferencesTo ];
+
+  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";
+
+  # 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;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/vokoscreen/default.nix b/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
new file mode 100644
index 000000000000..67905033ba10
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchgit
+, pkgconfig, qtbase, qttools, qmake, qtx11extras, alsaLib, libv4l, libXrandr
+, ffmpeg
+}:
+
+stdenv.mkDerivation {
+  name = "vokoscreen-2.5.0";
+  src = fetchgit {
+    url = "https://github.com/vkohaupt/vokoscreen.git";
+    rev = "8325c8658d6e777d34d2e6b8c8bc03f8da9b3d2f";
+    sha256 = "1hvw7xz1mj16ishbaip73wddbmgibsz0pad4y586zbarpynss25z";
+  };
+
+  nativeBuildInputs = [ pkgconfig qmake ];
+  buildInputs = [
+    alsaLib
+    libv4l
+    qtbase
+    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 = http://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/nixpkgs/pkgs/applications/video/vokoscreen/ffmpeg-out-of-box.patch b/nixpkgs/pkgs/applications/video/vokoscreen/ffmpeg-out-of-box.patch
new file mode 100644
index 000000000000..8f696f263013
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/vokoscreen/ffmpeg-out-of-box.patch
@@ -0,0 +1,31 @@
+diff --git a/settings/QvkSettings.cpp b/settings/QvkSettings.cpp
+index bbf2abf..187efad 100644
+--- a/settings/QvkSettings.cpp
++++ b/settings/QvkSettings.cpp
+@@ -56,17 +56,8 @@ void QvkSettings::readAll()
+       GIFPlayer = settings.value( "GIFplayer" ).toString();
+       Minimized = settings.value( "Minimized", 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" );
+@@ -398,4 +389,4 @@ double QvkSettings::getShowClickTime()
+ int QvkSettings::getShowKeyOnOff()
+ {
+   return showKeyOnOff; 
+-}
+\ No newline at end of file
++}
diff --git a/nixpkgs/pkgs/applications/video/w_scan/default.nix b/nixpkgs/pkgs/applications/video/w_scan/default.nix
new file mode 100644
index 000000000000..2bf74da3d0f2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/w_scan/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "w_scan-${version}";
+  version = "20170107";
+
+  src = fetchurl {
+    url = "http://wirbel.htpc-forum.de/w_scan/${name}.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/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
new file mode 100644
index 000000000000..086190000ab4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -0,0 +1,88 @@
+{
+  alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fontconfig, freetype,
+  gdk_pixbuf, glib, gnome2, libX11, libXScrnSaver, libXcomposite, libXcursor,
+  libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst,
+  libxcb, nspr, nss, stdenv, udev
+}:
+
+  let
+    rpath = stdenv.lib.makeLibraryPath ([
+    alsaLib
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    gdk_pixbuf
+    glib
+    gnome2.GConf
+    gnome2.gtk
+    gnome2.pango
+    libX11
+    libXScrnSaver
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXtst
+    libxcb
+    nspr
+    nss
+    stdenv.cc.cc
+    udev
+    ]);
+  in stdenv.mkDerivation rec {
+    name = "webtorrent-desktop-${version}";
+    version = "0.20.0";
+
+    src =
+      if stdenv.hostPlatform.system == "x86_64-linux" then
+        fetchurl {
+          url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v0.20.0/webtorrent-desktop_${version}-1_amd64.deb";
+          sha256 = "1kkrnbimiip5pn2nwpln35bbdda9gc3cgrjwphq4fqasbjf2781k";
+        }
+        else
+          throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}";
+    phases = [ "unpackPhase" "installPhase" ];
+    nativeBuildInputs = [ dpkg ];
+    unpackPhase = "dpkg-deb -x $src .";
+    installPhase = ''
+      mkdir -p $out
+      cp -R opt $out
+
+      mv ./usr/share $out/share
+      mv $out/opt/webtorrent-desktop $out/libexec
+      chmod +x $out/libexec/WebTorrent
+      rmdir $out/opt
+
+      chmod -R g-w $out
+
+      # 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
+
+      # Fix the desktop link
+      substituteInPlace $out/share/applications/webtorrent-desktop.desktop \
+        --replace /opt/webtorrent-desktop $out/bin
+    '';
+
+    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/nixpkgs/pkgs/applications/video/wxcam/default.nix b/nixpkgs/pkgs/applications/video/wxcam/default.nix
new file mode 100644
index 000000000000..64fcf0ba04a5
--- /dev/null
+++ b/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 {
+
+  name = "wxcam-${version}";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/wxcam/wxcam/${version}/${name}.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/nixpkgs/pkgs/applications/video/xawtv/default.nix b/nixpkgs/pkgs/applications/video/xawtv/default.nix
new file mode 100644
index 000000000000..5bc9ad8852a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/xawtv/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, ncurses, libjpeg, libX11, libXt, alsaLib, aalib, libXft, xproto, libv4l
+, libFS, fontsproto, libXaw, libXpm, libXext, libSM, libICE, perl, xextproto, linux}:
+
+stdenv.mkDerivation rec {
+  name = "xawtv-3.105";
+  src = fetchurl {
+    url = "https://linuxtv.org/downloads/xawtv/${name}.tar.bz2";
+    sha256 = "03v4k0dychjz1kj890d9pc7v8jh084m01g71x1clmmvc6vc9kn1b";
+  };
+
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${linux}/lib/modules/${linux.modDirVersion}/build"
+  '';
+
+  configureFlags= [ "--prefix=" ];
+
+  NIX_LDFLAGS = "-lgcc_s";
+
+  makeFlags = "SUID_ROOT= DESTDIR=\$(out) PREFIX=";
+
+  buildInputs = [ncurses libjpeg libX11 libXt libXft xproto libFS perl alsaLib aalib
+                 fontsproto libXaw libXpm libXext libSM libICE xextproto libv4l];
+
+  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/nixpkgs/pkgs/applications/video/xine-ui/default.nix b/nixpkgs/pkgs/applications/video/xine-ui/default.nix
new file mode 100644
index 000000000000..4dfc3fd052a2
--- /dev/null
+++ b/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.10";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/xine/${name}.tar.xz";
+    sha256 = "0i3jzhiipfs5p1jbxviwh42zcfzag6iqc6yycaan0vrqm90an86a";
+  };
+
+  nativeBuildInputs = [ pkgconfig shared-mime-info ];
+
+  buildInputs =
+    [ xineLib libpng readline ncurses curl lirc libjpeg
+      xorg.xlibsWrapper xorg.libXext xorg.libXv xorg.libXxf86vm xorg.libXtst xorg.inputproto
+      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/nixpkgs/pkgs/applications/video/xscast/default.nix b/nixpkgs/pkgs/applications/video/xscast/default.nix
new file mode 100644
index 000000000000..ae048f1bdac4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/xscast/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, makeWrapper, ffmpeg, imagemagick, dzen2, xorg }:
+
+stdenv.mkDerivation rec {
+  name = "xscast-unstable-${version}";
+  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 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/nixpkgs/pkgs/applications/video/xvidcap/default.nix b/nixpkgs/pkgs/applications/video/xvidcap/default.nix
new file mode 100644
index 000000000000..6e07fbb105b6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/xvidcap/xlib.patch b/nixpkgs/pkgs/applications/video/xvidcap/xlib.patch
new file mode 100644
index 000000000000..eb97854386b2
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/video/zdfmediathk/default.nix b/nixpkgs/pkgs/applications/video/zdfmediathk/default.nix
new file mode 100644
index 000000000000..a875daf065e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/zdfmediathk/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, jre }:
+
+with stdenv;
+
+mkDerivation rec {
+
+  version = "10";
+  name = "zdfmediathk-${version}";
+  src = fetchurl {
+    url = "https://github.com/xaverW/MediathekView/archive/Version${version}.tar.gz";
+    sha256 = "12iyigqjslbn8rzym1mq1s0mvss7r97aiy6wfdrq5m0psarlcljw";
+  };
+
+  installPhase = ''
+    mkdir -p $out/{lib,bin,share/{doc,licenses}}
+    cd dist/
+    install -m644 MediathekView.jar $out/
+    install -m644 -t $out/lib lib/*
+    install -m755 bin/flv.sh $out/bin/
+    install -m644 -t $out/share/doc Anleitung/*.pdf
+    install -m644 -t $out/share/licenses Copyright/{*.*,_copyright}
+    bin="$out/bin/mediathek"
+    cat >> "$bin" << EOF
+    #!/bin/sh
+    exec ${jre}/bin/java -cp "$out/lib/*" -Xms128M -Xmx1G -jar "$out/MediathekView.jar" "\$@"
+    EOF
+    chmod +x "$bin"
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Offers access to the Mediathek of different tv stations (ARD, ZDF, Arte, etc.)";
+    homepage = https://github.com/xaverW/MediathekView/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.flosse ];
+    platforms = platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/8086tiny/builder.sh b/nixpkgs/pkgs/applications/virtualization/8086tiny/builder.sh
new file mode 100644
index 000000000000..7cff2589abe0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/8086tiny/builder.sh
@@ -0,0 +1,28 @@
+
+source $stdenv/setup
+
+mkdir -p ./$name $out/bin $out/share/$name $out/share/doc/$name/images
+
+cd $name
+tar xf $src
+make 8086tiny
+if [ $bios ]; then
+    cd bios_source
+    nasm -f bin bios.asm -o bios
+    cd ..
+fi
+
+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/nixpkgs/pkgs/applications/virtualization/8086tiny/default.nix b/nixpkgs/pkgs/applications/virtualization/8086tiny/default.nix
new file mode 100644
index 000000000000..15d98dc9be50
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/8086tiny/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl
+, localBios ? true, nasm ? null
+, sdlSupport ? true, SDL ? null }:
+
+assert sdlSupport -> (SDL != null);
+
+stdenv.mkDerivation rec {
+
+  name = "8086tiny-${version}";
+  version = "1.25";
+
+  src = fetchurl {
+    url ="http://www.megalith.co.uk/8086tiny/downloads/8086tiny_125.tar.bz2";
+    sha256 = "0kmq4iiwhi2grjwq43ljjk1b1f1v1x9gzrgrgq2fzfsj7m7s6ris";
+  };
+
+  buildInputs = with stdenv.lib;
+  optionals localBios [ nasm ]
+  ++  optionals sdlSupport [ SDL ];
+  
+  bios = localBios;
+  
+  builder = ./builder.sh;
+
+  meta = {
+    description = "An open-source 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 = http://www.megalith.co.uk/8086tiny/index.html;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
+# TODO: add support for a locally made BIOS
diff --git a/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix b/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
new file mode 100644
index 000000000000..c858f4c4d6d3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, lib, edk2, nasm, iasl, seabios, openssl, secureBoot ? false }:
+
+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 = (builtins.parseDrvName edk2.name).version;
+
+  src = edk2.src;
+in
+
+stdenv.mkDerivation (edk2.setup projectDscPath {
+  name = "OVMF-${version}";
+
+  inherit src;
+
+  outputs = [ "out" "fd" ];
+
+  # TODO: properly include openssl for secureBoot
+  buildInputs = [nasm iasl] ++ stdenv.lib.optionals (secureBoot == true) [ openssl ];
+
+  hardeningDisable = [ "stackprotector" "pic" "fortify" ];
+
+  unpackPhase = ''
+    # $fd is overwritten during the build
+    export OUTPUT_FD=$fd
+
+    for file in \
+      "${src}"/{UefiCpuPkg,MdeModulePkg,IntelFrameworkModulePkg,PcAtChipsetPkg,FatBinPkg,EdkShellBinPkg,MdePkg,ShellPkg,OptionRomPkg,IntelFrameworkPkg,FatPkg,CryptoPkg,SourceLevelDebugPkg};
+    do
+      ln -sv "$file" .
+    done
+
+    ${if stdenv.isAarch64 then ''
+      ln -sv ${src}/ArmPkg .
+      ln -sv ${src}/ArmPlatformPkg .
+      ln -sv ${src}/ArmVirtPkg .
+      ln -sv ${src}/EmbeddedPkg .
+      ln -sv ${src}/OvmfPkg .
+    '' else if seabios != null then ''
+        cp -r ${src}/OvmfPkg .
+        chmod +w OvmfPkg/Csm/Csm16
+        cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
+    '' else ''
+        ln -sv ${src}/OvmfPkg .
+    ''}
+
+    ${lib.optionalString secureBoot ''
+      ln -sv ${src}/SecurityPkg .
+      ln -sv ${src}/CryptoPkg .
+    ''}
+  '';
+
+  buildPhase = if stdenv.isAarch64 then ''
+      build -n $NIX_BUILD_CORES
+    '' else if seabios == null then ''
+      build -n $NIX_BUILD_CORES ${lib.optionalString secureBoot "-DSECURE_BOOT_ENABLE=TRUE"}
+    '' else ''
+      build -n $NIX_BUILD_CORES -D CSM_ENABLE -D FD_SIZE_2MB ${lib.optionalString secureBoot "-DSECURE_BOOT_ENABLE=TRUE"}
+    '';
+
+  postFixup = if stdenv.isAarch64 then ''
+    mkdir -vp $fd/FV
+    mkdir -vp $fd/AAVMF
+    mv -v $out/FV/QEMU_{EFI,VARS}.fd $fd/FV
+
+    # Uses Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec
+    # FIXME: why is it different from Debian dir layout? https://anonscm.debian.org/cgit/pkg-qemu/edk2.git/tree/debian/rules
+    dd of=$fd/AAVMF/QEMU_EFI-pflash.raw       if=/dev/zero bs=1M    count=64
+    dd of=$fd/AAVMF/QEMU_EFI-pflash.raw       if=$fd/FV/QEMU_EFI.fd conv=notrunc
+    dd of=$fd/AAVMF/vars-template-pflash.raw if=/dev/zero bs=1M    count=64
+  '' else ''
+    mkdir -vp $OUTPUT_FD/FV
+    mv -v $out/FV/OVMF{,_CODE,_VARS}.fd $OUTPUT_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"];
+  };
+})
diff --git a/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix b/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix
new file mode 100644
index 000000000000..e7cd5b7bde68
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/aqemu/default.nix
@@ -0,0 +1,26 @@
+{ cmake, fetchFromGitHub, libvncserver, qemu, qtbase, stdenv
+}:
+
+stdenv.mkDerivation rec {
+  name = "aqemu-${version}";
+  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/nixpkgs/pkgs/applications/virtualization/bochs/bochs-2.6.9-glibc-2.26.patch b/nixpkgs/pkgs/applications/virtualization/bochs/bochs-2.6.9-glibc-2.26.patch
new file mode 100644
index 000000000000..a13b42ee35a3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/bochs/bochs-2.6.9-glibc-2.26.patch
@@ -0,0 +1,14 @@
+diff --git a/iodev/network/slirp/slirp.h b/iodev/network/slirp/slirp.h
+index 7c16aa3..202a1b7 100644
+--- a/iodev/network/slirp/slirp.h
++++ b/iodev/network/slirp/slirp.h
+@@ -33,8 +33,8 @@ typedef char *caddr_t;
+ #endif
+ 
+ #include <sys/types.h>
+-#if defined(__OpenBSD__)
+ #include <stdint.h>
++#if defined(__OpenBSD__)
+ #include <sys/wait.h>
+ #endif
+ #ifdef HAVE_SYS_BITYPES_H
diff --git a/nixpkgs/pkgs/applications/virtualization/bochs/default.nix b/nixpkgs/pkgs/applications/virtualization/bochs/default.nix
new file mode 100644
index 000000000000..f9d7128330fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/bochs/default.nix
@@ -0,0 +1,129 @@
+{ stdenv, fetchurl
+, pkgconfig, libtool
+, gtk2, libGLU_combined, 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 {
+
+  name = "bochs-${version}";
+  version = "2.6.9";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/bochs/bochs/${version}/${name}.tar.gz";
+    sha256 = "1379cq4cnfprhw8mgh60i0q9j8fz8d7n3d5fnn2g9fdiv5znfnzf";
+  };
+
+  patches = [ ./bochs-2.6.9-glibc-2.26.patch ];
+
+  buildInputs = with stdenv.lib;
+  [ pkgconfig libtool gtk2 libGLU_combined 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 = [ 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/nixpkgs/pkgs/applications/virtualization/cbfstool/default.nix b/nixpkgs/pkgs/applications/virtualization/cbfstool/default.nix
new file mode 100644
index 000000000000..e10d54148977
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/cbfstool/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, iasl, flex, bison }:
+
+stdenv.mkDerivation rec {
+  name = "cbfstool-${version}";
+  version = "4.7";
+
+  src = fetchgit {
+    url = "http://review.coreboot.org/p/coreboot";
+    rev = "refs/tags/${version}";
+    sha256 = "02k63013vf7wgsilslj68fs1x81clvqpn91dydaqhv5aymh73zpi";
+  };
+
+  nativeBuildInputs = [ flex bison ];
+  buildInputs = [ iasl ];
+
+  buildPhase = ''
+    export LEX=${flex}/bin/flex
+    make -C util/cbfstool
+    '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp util/cbfstool/cbfstool $out/bin
+    cp util/cbfstool/fmaptool $out/bin
+    cp util/cbfstool/rmodtool $out/bin
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Management utility for CBFS formatted ROM images";
+    homepage = https://www.coreboot.org;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.tstrobel ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/virtualization/cntr/default.nix b/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
new file mode 100644
index 000000000000..79dbddfab550
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/cntr/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  name = "cntr-${version}";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "Mic92";
+    repo = "cntr";
+    rev = version;
+    sha256 = "0lmbsnjia44h4rskqkv9yc7xb6f3qjgbg8kcr9zqnr7ivr5fjcxg";
+  };
+
+  cargoSha256 = "0gainr5gfy0bbhr6078zvgx0kzp53slxjp37d3da091ikgzgfn51";
+
+  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/nixpkgs/pkgs/applications/virtualization/containerd/default.nix b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
new file mode 100644
index 000000000000..d9056c4111d1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchFromGitHub, removeReferencesTo
+, go, btrfs-progs }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+  name = "containerd-${version}";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "containerd";
+    repo = "containerd";
+    rev = "v${version}";
+    sha256 = "16zn6p1ky3yrgn53z8h9wza53ch91fj47wj5xgz6w4c57j30f66p";
+  };
+
+  hardeningDisable = [ "fortify" ];
+
+  buildInputs = [ removeReferencesTo go btrfs-progs ];
+  buildFlags = "VERSION=v${version}";
+
+  BUILDTAGS = []
+    ++ optional (btrfs-progs == null) "no_btrfs";
+
+  preConfigure = ''
+    # Extract the source
+    cd "$NIX_BUILD_TOP"
+    mkdir -p "go/src/github.com/containerd"
+    mv "$sourceRoot" "go/src/github.com/containerd/containerd"
+    export GOPATH=$NIX_BUILD_TOP/go:$GOPATH
+'';
+
+  preBuild = ''
+    cd go/src/github.com/containerd/containerd
+    patchShebangs .
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bin/* $out/bin
+  '';
+
+  preFixup = ''
+    find $out -type f -exec remove-references-to -t ${go} '{}' +
+  '';
+
+  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/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix b/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
new file mode 100644
index 000000000000..4af9c32fed6a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, buildPythonApplication, fetchPypi, pythonOlder
+, mock, pytest, nose
+, pyyaml, backports_ssl_match_hostname, colorama, docopt
+, dockerpty, docker, ipaddress, jsonschema, requests
+, six, texttable, websocket_client, cached-property
+, enum34, functools32,
+}:
+buildPythonApplication rec {
+  version = "1.23.1";
+  pname = "docker-compose";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15jijx3md70b9xw8818xjm70nr9pc27p7v7is0yi6agf8scvvqkq";
+  };
+
+  # lots of networking and other fails
+  doCheck = false;
+  checkInputs = [ mock pytest nose ];
+  propagatedBuildInputs = [
+    pyyaml backports_ssl_match_hostname colorama dockerpty docker
+    ipaddress jsonschema requests six texttable websocket_client
+    docopt cached-property
+  ] ++
+    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 = ''
+    mkdir -p $out/share/bash-completion/completions/
+    cp contrib/completion/bash/docker-compose $out/share/bash-completion/completions/docker-compose
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://docs.docker.com/compose/;
+    description = "Multi-container orchestration for Docker";
+    license = licenses.asl20;
+    maintainers = with maintainers; [
+      jgeerds
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/default.nix b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
new file mode 100644
index 000000000000..729ba9eae185
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
@@ -0,0 +1,214 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, removeReferencesTo, pkgconfig
+, go-md2man, go, containerd, runc, docker-proxy, tini, libtool
+, sqlite, iproute, lvm2, systemd
+, btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs
+, procps, libseccomp
+}:
+
+with lib;
+
+rec {
+  dockerGen = {
+      version, rev, sha256
+      , runcRev, runcSha256
+      , containerdRev, containerdSha256
+      , tiniRev, tiniSha256
+    } :
+  let
+    docker-runc = runc.overrideAttrs (oldAttrs: rec {
+      name = "docker-runc-${version}";
+      inherit version;
+      src = fetchFromGitHub {
+        owner = "docker";
+        repo = "runc";
+        rev = runcRev;
+        sha256 = runcSha256;
+      };
+      # docker/runc already include these patches / are not applicable
+      patches = [];
+    });
+
+    docker-containerd = (containerd.override { inherit go; }).overrideAttrs (oldAttrs: rec {
+      name = "docker-containerd-${version}";
+      inherit version;
+      src = fetchFromGitHub {
+        owner = "docker";
+        repo = "containerd";
+        rev = containerdRev;
+        sha256 = containerdSha256;
+      };
+
+      hardeningDisable = [ "fortify" ];
+
+      buildInputs = [ removeReferencesTo go btrfs-progs ];
+    });
+
+    docker-tini = tini.overrideAttrs  (oldAttrs: rec {
+      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
+    stdenv.mkDerivation ((optionalAttrs (stdenv.isLinux) rec {
+
+    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;
+    };
+
+    # Optimizations break compilation of libseccomp c bindings
+    hardeningDisable = [ "fortify" ];
+
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [
+      makeWrapper removeReferencesTo go-md2man go libtool
+    ] ++ optionals (stdenv.isLinux) [
+      sqlite lvm2 btrfs-progs systemd libseccomp
+    ];
+
+    dontStrip = true;
+
+    buildPhase = (optionalString (stdenv.isLinux) ''
+      # build engine
+      cd ./components/engine
+      export AUTO_GOPATH=1
+      export DOCKER_GITCOMMIT="${rev}"
+      export VERSION="${version}"
+      ./hack/make.sh dynbinary
+      cd -
+    '') + ''
+      # build cli
+      cd ./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
+    patchPhase = ''
+      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 utillinux ]);
+
+    installPhase = 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
+    '' + ''
+      install -Dm755 ./components/cli/docker $out/libexec/docker/docker
+
+      makeWrapper $out/libexec/docker/docker $out/bin/docker \
+        --prefix PATH : "$out/libexec/docker:$extraPath"
+
+      # completion (cli)
+      install -Dm644 ./components/cli/contrib/completion/bash/docker $out/share/bash-completion/completions/docker
+      install -Dm644 ./components/cli/contrib/completion/fish/docker.fish $out/share/fish/vendor_completions.d/docker.fish
+      install -Dm644 ./components/cli/contrib/completion/zsh/_docker $out/share/zsh/site-functions/_docker
+
+      # Include contributed man pages (cli)
+      # Generate man pages from cobra commands
+      echo "Generate man pages from cobra"
+      cd ./components/cli
+      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
+
+      manRoot="$man/share/man"
+      mkdir -p "$manRoot"
+      for manDir in ./man/man?; do
+        manBase="$(basename "$manDir")" # "man1"
+        for manFile in "$manDir"/*; do
+          manName="$(basename "$manFile")" # "docker-build.1"
+          mkdir -p "$manRoot/$manBase"
+          gzip -c "$manFile" > "$manRoot/$manBase/$manName.gz"
+        done
+      done
+    '';
+
+    preFixup = ''
+      find $out -type f -exec remove-references-to -t ${go} -t ${stdenv.cc.cc} '{}' +
+    '' + optionalString (stdenv.isLinux) ''
+      find $out -type f -exec remove-references-to -t ${stdenv.glibc.dev} '{}' +
+    '';
+
+    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; [ nequissimus offline tailhook vdemeester periklis ];
+      platforms = with platforms; linux ++ darwin;
+    };
+  });
+
+  # Get revisions from
+  # https://github.com/docker/docker-ce/tree/v${version}/components/engine/hack/dockerfile/install/*
+
+  docker_18_09 = dockerGen rec {
+    version = "18.09.0";
+    rev = "4d60db472b2bde6931072ca6467f2667c2590dff"; # git commit
+    sha256 = "0py944f5k71c1cf6ci96vnqk43d5979w7r82cngaxk1g6za6k5yj";
+    runcRev = "69663f0bd4b60df09991c08812a60108003fa340";
+    runcSha256 = "1l37r97l3ra4ph069w190d05r0a43s76nn9jvvlkbwrip1cp6gyq";
+    containerdRev = "468a545b9edcd5932818eb9de8e72413e616e86e";
+    containerdSha256 = "1rp015cm5fw9kfarcmfhfkr1sh0iz7kvqls6f8nfhwrrz5armd5v";
+    tiniRev = "fec3683b971d9c3ef73f284f176672c44b448662";
+    tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/distribution.nix b/nixpkgs/pkgs/applications/virtualization/docker/distribution.nix
new file mode 100644
index 000000000000..0af9abc852ef
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/docker/distribution.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "distribution-${version}";
+  version = "2.6.2";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/docker/distribution";
+
+  src = fetchFromGitHub {
+    owner = "docker";
+    repo = "distribution";
+    inherit rev;
+    sha256 = "0nj4xd72mik4pj8g065cqb0yjmgpj5ppsqf2k5ibz9f68c39c00b";
+  };
+
+  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/nixpkgs/pkgs/applications/virtualization/docker/gc.nix b/nixpkgs/pkgs/applications/virtualization/docker/gc.nix
new file mode 100644
index 000000000000..dcac628e3676
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix b/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix
new file mode 100644
index 000000000000..8b7021f7dbb8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, docker }:
+
+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 $bin/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/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix b/nixpkgs/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
new file mode 100644
index 000000000000..069d5836a42b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix b/nixpkgs/pkgs/applications/virtualization/driver/win-qemu/default.nix
new file mode 100644
index 000000000000..1fa3e76d18fd
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix b/nixpkgs/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
new file mode 100644
index 000000000000..39ca93d4e1a8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix b/nixpkgs/pkgs/applications/virtualization/driver/win-spice/default.nix
new file mode 100644
index 000000000000..2b2d8568a5b7
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/driver/win-virtio/default.nix b/nixpkgs/pkgs/applications/virtualization/driver/win-virtio/default.nix
new file mode 100644
index 000000000000..946014e5cc9a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/driver/win-virtio/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, p7zip }:
+stdenv.mkDerivation rec {
+  name = "win-virtio-${version}";
+  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/nixpkgs/pkgs/applications/virtualization/dynamips/default.nix b/nixpkgs/pkgs/applications/virtualization/dynamips/default.nix
new file mode 100644
index 000000000000..8b590cff9640
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/dynamips/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, libelf, libpcap }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "dynamips";
+  version = "0.2.18";
+
+  src = fetchFromGitHub {
+    owner = "GNS3";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1jrwvrpl61rqbjjphv8v7ryhdwfjrpps76dbvkpl43hpn5hqqis2";
+  };
+
+  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/nixpkgs/pkgs/applications/virtualization/ecs-agent/default.nix b/nixpkgs/pkgs/applications/virtualization/ecs-agent/default.nix
new file mode 100644
index 000000000000..711838b29447
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/ecs-agent/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+  name    = "${pname}-${version}";
+  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.linux;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix b/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
new file mode 100644
index 000000000000..7d8772da73d7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
@@ -0,0 +1,35 @@
+{ fetchurl, stdenv }:
+
+let
+  version = "0.12.0";
+  baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download";
+
+  fetchbin = name: sha256: fetchurl {
+    url    = "${baseurl}/v${version}/${name}-v${version}";
+    inherit sha256;
+  };
+
+  firecracker-bin = fetchbin "firecracker" "0jk9w5kagqp3w668c1x0g4yyahmy7696pm0bkhv066rrdpcqpw66";
+  jailer-bin      = fetchbin "jailer"      "1fcxzpnapnccklgbi4bis3f6c9fki2daxvzg9l7433vfqz2zbyjl";
+in
+stdenv.mkDerivation {
+  name = "firecracker-${version}";
+  inherit version;
+
+  srcs = [ firecracker-bin jailer-bin ];
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -D ${firecracker-bin} $out/bin/firecracker
+    install -D ${jailer-bin}      $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" ];
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/lkl/default.nix b/nixpkgs/pkgs/applications/virtualization/lkl/default.nix
new file mode 100644
index 000000000000..1d22385a2732
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/lkl/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchFromGitHub, bc, python, bison, flex, fuse, libarchive }:
+
+stdenv.mkDerivation rec {
+  name = "lkl-2018-08-22";
+  rev  = "5221c547af3d29582703f01049617a6bf9f6232a";
+
+  outputs = [ "dev" "lib" "out" ];
+
+  nativeBuildInputs = [ bc bison flex python ];
+
+  buildInputs = [ fuse libarchive ];
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner  = "lkl";
+    repo   = "linux";
+    sha256 = "1k2plyx40xaphm8zsk2dd1lyv6dhsp7kj6hfmdgiamvl80bjajqy";
+  };
+
+  # Fix a /usr/bin/env reference in here that breaks sandboxed builds
+  prePatch = "patchShebangs arch/lkl/scripts";
+
+  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,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";
+
+  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" ]; # Darwin probably works too but I haven't tested it
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix b/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix
new file mode 100644
index 000000000000..36d8e1ca70a5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/looking-glass-client/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, SDL2, SDL, SDL2_ttf, openssl, spice-protocol, fontconfig
+, libX11, freefont_ttf, nettle, libconfig
+}:
+
+stdenv.mkDerivation rec {
+  name = "looking-glass-client-${version}";
+  version = "a11";
+
+  src = fetchFromGitHub {
+    owner = "gnif";
+    repo = "LookingGlass";
+    rev = version;
+    sha256 = "0q4isn86pl5wddf6h8qd62fw3577ns2sd2myzw969sbl796bwcil";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [
+    SDL SDL2 SDL2_ttf openssl spice-protocol fontconfig
+    libX11 freefont_ttf nettle libconfig
+  ];
+
+  enableParallelBuilding = true;
+
+  sourceRoot = "source/client";
+
+  installPhase = ''
+    mkdir -p $out
+    mv bin $out/
+  '';
+
+  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.hostfission.com/;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.pneumaticat ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
new file mode 100644
index 000000000000..a43e1733f063
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook,
+  fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps,
+  libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst,
+  pkgconfig, glib, gtk, gtkmm, iproute, dbus, systemd, which,
+  withX ? true }:
+
+stdenv.mkDerivation rec {
+  name = "open-vm-tools-${version}";
+  version = "10.3.5";
+
+  src = fetchFromGitHub {
+    owner  = "vmware";
+    repo   = "open-vm-tools";
+    rev    = "stable-${version}";
+    sha256 = "10x24gkqcg9lnfxghq92nr76h40s5v3xrv0ymi9c7aqrqry404z7";
+  };
+
+  sourceRoot = "${src.name}/open-vm-tools";
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
+  buildInputs = [ fuse glib icu libdnet libmspack openssl pam procps xercesc ]
+      ++ lib.optionals withX [ gtk gtkmm libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
+
+  patches = [ ./recognize_nixos.patch ];
+  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,^confdir = ,confdir = ''${prefix},' 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;
+
+  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/nixpkgs/pkgs/applications/virtualization/open-vm-tools/recognize_nixos.patch b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/recognize_nixos.patch
new file mode 100644
index 000000000000..46d8ea7f7f3f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/recognize_nixos.patch
@@ -0,0 +1,33 @@
+diff --git a/lib/include/guest_os.h b/open-vm-tools/lib/include/guest_os.h
+index ef202e3..c7a105d 100644
+--- a/lib/include/guest_os.h
++++ b/lib/include/guest_os.h
+@@ -238,6 +238,7 @@ Bool Gos_InSetArray(uint32 gos, const uint32 *set);
+ #define STR_OS_MANDRAKE_FULL      "Mandrake Linux"
+ #define STR_OS_MANDRIVA           "mandriva"
+ #define STR_OS_MKLINUX            "MkLinux"
++#define STR_OS_NIXOS              "NixOS"
+ #define STR_OS_NOVELL             "nld9"
+ #define STR_OS_NOVELL_FULL        "Novell Linux Desktop 9"
+ #define STR_OS_ORACLE6            "oraclelinux6"
+diff --git a/lib/misc/hostinfoPosix.c b/open-vm-tools/lib/misc/hostinfoPosix.c
+index 0f55070..2d8467c 100644
+--- a/lib/misc/hostinfoPosix.c
++++ b/lib/misc/hostinfoPosix.c
+@@ -195,6 +195,7 @@ static const DistroInfo distroArray[] = {
+    {"Mandrake",           "/etc/mandrake-release"},
+    {"Mandriva",           "/etc/mandriva-release"},
+    {"MkLinux",            "/etc/mklinux-release"},
++   {"NixOS",              "/etc/os-release"},
+    {"Novell",             "/etc/nld-release"},
+    {"OracleLinux",        "/etc/oracle-release"},
+    {"Photon",             "/etc/lsb-release"},
+@@ -554,6 +555,8 @@ HostinfoGetOSShortName(char *distro,         // IN: full distro name
+       }
+    } else if (strstr(distroLower, "mandrake")) {
+       Str_Strcpy(distroShort, STR_OS_MANDRAKE, distroShortSize);
++   } else if (strstr(distroLower, "nixos")) {
++      Str_Strcpy(distroShort, STR_OS_NIXOS, distroShortSize);
+    } else if (strstr(distroLower, "turbolinux")) {
+       Str_Strcpy(distroShort, STR_OS_TURBO, distroShortSize);
+    } else if (strstr(distroLower, "sun")) {
diff --git a/nixpkgs/pkgs/applications/virtualization/qboot/default.nix b/nixpkgs/pkgs/applications/virtualization/qboot/default.nix
new file mode 100644
index 000000000000..0678591fc2a3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/qboot/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  name = "qboot-20170330";
+
+  src = fetchFromGitHub {
+    owner = "bonzini";
+    repo = "qboot";
+    rev = "ac9488f26528394856b94bda0797f5bd9c69a26a";
+    sha256 = "0l83nbjndin1cbcimkqkiqr5df8d76cnhyk26rd3aygb2bf7cspy";
+  };
+
+  installPhase = ''
+    mkdir -p $out
+    cp bios.bin* $out/.
+  '';
+
+  hardeningDisable = [ "stackprotector" "pic" ];
+
+  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/nixpkgs/pkgs/applications/virtualization/qemu/default.nix b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
new file mode 100644
index 000000000000..1cd85cead125
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
@@ -0,0 +1,156 @@
+{ stdenv, fetchurl, fetchpatch, python2, zlib, pkgconfig, glib
+, ncurses, perl, pixman, vde2, alsaLib, texinfo, flex
+, bison, lzo, snappy, libaio, gnutls, nettle, curl
+, makeWrapper
+, attr, libcap, libcap_ng
+, CoreServices, Cocoa, rez, setfile
+, numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl
+, seccompSupport ? stdenv.isLinux, libseccomp
+, pulseSupport ? !stdenv.isDarwin, libpulseaudio
+, sdlSupport ? !stdenv.isDarwin, SDL2
+, gtkSupport ? !stdenv.isDarwin && !xenSupport, gtk3, gettext, gnome3
+, vncSupport ? true, libjpeg, libpng
+, smartcardSupport ? true, libcacard
+, spiceSupport ? !stdenv.isDarwin, spice, spice-protocol
+, usbredirSupport ? spiceSupport, usbredir
+, xenSupport ? false, xen
+, openGLSupport ? sdlSupport, mesa_noglu, epoxy, libdrm
+, virglSupport ? openGLSupport, virglrenderer
+, smbdSupport ? false, samba
+, 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 (hasSuffix "linux" stdenv.hostPlatform.system) "alsa,"
+    + optionalString pulseSupport "pa,"
+    + optionalString sdlSupport "sdl,";
+
+in
+
+stdenv.mkDerivation rec {
+  version = "3.1.0";
+  name = "qemu-"
+    + stdenv.lib.optionalString xenSupport "xen-"
+    + stdenv.lib.optionalString hostCpuOnly "host-cpu-only-"
+    + stdenv.lib.optionalString nixosTestRunner "for-vm-tests-"
+    + version;
+
+  src = fetchurl {
+    url = "https://wiki.qemu.org/download/qemu-${version}.tar.bz2";
+    sha256 = "08frr1fdjx8qcfh3fafn10kibdwbvkqqvfl7hpqbm7i9dg4f1zlq";
+  };
+
+  buildInputs =
+    [ python2 zlib pkgconfig glib ncurses perl pixman
+      vde2 texinfo flex bison makeWrapper lzo snappy
+      gnutls nettle curl
+    ]
+    ++ optionals stdenv.isDarwin [ CoreServices Cocoa rez setfile ]
+    ++ optionals seccompSupport [ libseccomp ]
+    ++ optionals numaSupport [ numactl ]
+    ++ optionals pulseSupport [ libpulseaudio ]
+    ++ optionals sdlSupport [ SDL2 ]
+    ++ optionals gtkSupport [ gtk3 gettext gnome3.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 openGLSupport [ mesa_noglu epoxy libdrm ]
+    ++ optionals virglSupport [ virglrenderer ]
+    ++ optionals smbdSupport [ samba ];
+
+  enableParallelBuilding = true;
+
+  outputs = [ "out" "ga" ];
+
+  patches = [
+    ./no-etc-install.patch
+    ./fix-qemu-ga.patch
+  ] ++ optional nixosTestRunner ./force-uid0-on-9p.patch
+    ++ optional pulseSupport ./fix-hda-recording.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";
+    })
+  ];
+
+  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"
+    ]
+    # 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.isLinux "--enable-linux-aio"
+    ++ optional gtkSupport "--enable-gtk"
+    ++ optional xenSupport "--enable-xen"
+    ++ optional openGLSupport "--enable-opengl"
+    ++ optional virglSupport "--enable-virglrenderer"
+    ++ optional smbdSupport "--smbd=${samba}/bin/smbd";
+
+  doCheck = false; # tries to access /dev
+
+  postFixup =
+    ''
+      for exe in $out/bin/qemu-system-* ; do
+        paxmark m $exe
+      done
+      # copy qemu-ga (guest agent) to separate output
+      mkdir -p $ga/bin
+      cp $out/bin/qemu-ga $ga/bin/
+    '';
+
+  # 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/nixpkgs/pkgs/applications/virtualization/qemu/fix-hda-recording.patch b/nixpkgs/pkgs/applications/virtualization/qemu/fix-hda-recording.patch
new file mode 100644
index 000000000000..b4e21f4f3477
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/qemu/fix-hda-recording.patch
@@ -0,0 +1,34 @@
+diff --git a/audio/paaudio.c b/audio/paaudio.c
+index fea6071..c1169d4 100644
+--- a/audio/paaudio.c
++++ b/audio/paaudio.c
+@@ -608,6 +608,7 @@ static int qpa_init_in(HWVoiceIn *hw, struct audsettings *as, void *drv_opaque)
+ {
+     int error;
+     pa_sample_spec ss;
++    pa_buffer_attr ba;
+     struct audsettings obt_as = *as;
+     PAVoiceIn *pa = (PAVoiceIn *) hw;
+     paaudio *g = pa->g = drv_opaque;
+@@ -616,6 +617,12 @@ static int qpa_init_in(HWVoiceIn *hw, struct audsettings *as, void *drv_opaque)
+     ss.channels = as->nchannels;
+     ss.rate = as->freq;
+
++    ba.fragsize = pa_frame_size (&ss) * g->conf.samples;
++    ba.maxlength = 5 * ba.fragsize;
++    ba.tlength = -1;
++    ba.prebuf = -1;
++    ba.minreq = -1;
++
+     obt_as.fmt = pa_to_audfmt (ss.format, &obt_as.endianness);
+
+     pa->stream = qpa_simple_new (
+@@ -625,7 +632,7 @@ static int qpa_init_in(HWVoiceIn *hw, struct audsettings *as, void *drv_opaque)
+         g->conf.source,
+         &ss,
+         NULL,                   /* channel map */
+-        NULL,                   /* buffering attributes */
++        &ba,                    /* buffering attributes */
+         &error
+         );
+     if (!pa->stream) {
diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch b/nixpkgs/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
new file mode 100644
index 000000000000..c2f051e2b944
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
@@ -0,0 +1,22 @@
+diff --git a/qga/commands-posix.c b/qga/commands-posix.c
+index 0dc219d..9d020d3 100644
+--- a/qga/commands-posix.c
++++ b/qga/commands-posix.c
+@@ -102,6 +102,8 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
+         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);
+@@ -189,6 +191,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
+
+         /* Use '/sbin/hwclock -w' to set RTC from the system time,
+          * or '/sbin/hwclock -s' to set the system time from RTC. */
++        execle("/run/current-system/sw/bin/hwclock", "hwclock", has_time ? "-w" : "-s",
++               NULL, environ);
+         execle("/sbin/hwclock", "hwclock", has_time ? "-w" : "-s",
+                NULL, environ);
+         _exit(EXIT_FAILURE);
diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/force-uid0-on-9p.patch b/nixpkgs/pkgs/applications/virtualization/qemu/force-uid0-on-9p.patch
new file mode 100644
index 000000000000..33c4ffff6fe5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/qemu/no-etc-install.patch b/nixpkgs/pkgs/applications/virtualization/qemu/no-etc-install.patch
new file mode 100644
index 000000000000..47b4b3176dc8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/qemu/no-etc-install.patch
@@ -0,0 +1,10 @@
+--- a/Makefile
++++ b/Makefile
+@@ -597,7 +597,7 @@
+ 
+ 
+-install: all $(if $(BUILD_DOCS),install-doc) install-datadir install-localstatedir
++install: all $(if $(BUILD_DOCS),install-doc) install-datadir
+ ifneq ($(TOOLS),)
+	$(call install-prog,$(subst qemu-ga,qemu-ga$(EXESUF),$(TOOLS)),$(DESTDIR)$(bindir))
+ endif
diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/sigrtminmax.patch b/nixpkgs/pkgs/applications/virtualization/qemu/sigrtminmax.patch
new file mode 100644
index 000000000000..41050447ac64
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/railcar/cargo-lock.patch b/nixpkgs/pkgs/applications/virtualization/railcar/cargo-lock.patch
new file mode 100644
index 000000000000..bb9d5420f32a
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/railcar/default.nix b/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
new file mode 100644
index 000000000000..517a8e39a1e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, rustPlatform, libseccomp }:
+
+rustPlatform.buildRustPackage rec {
+  name = "railcar-${version}";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "oracle";
+    repo = "railcar";
+    rev = "v${version}";
+    sha256 = "09zn160qxd7760ii6rs5nhr00qmaz49x1plclscznxh9hinyjyh9";
+  };
+
+  cargoSha256 = "16f3ys0zzha8l5jdklmrqivl8hmrb9qgqgzcm3jn06v45hls9lan";
+
+  buildInputs = [ libseccomp ];
+
+  # Submitted upstream https://github.com/oracle/railcar/pull/44
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  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 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/remotebox/default.nix b/nixpkgs/pkgs/applications/virtualization/remotebox/default.nix
new file mode 100644
index 000000000000..6743c8491891
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/remotebox/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, makeWrapper, perl, perlPackages }:
+
+stdenv.mkDerivation rec {
+  name = "remotebox-${version}";
+  version = "2.5";
+
+  src = fetchurl {
+    url = "http://remotebox.knobgoblin.org.uk/downloads/RemoteBox-${version}.tar.bz2";
+    sha256 = "0dajc9fg57gj915h5dxavbia4wx10frn4xc61pv0l8r5zp7xvqal";
+  };
+
+  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/nixpkgs/pkgs/applications/virtualization/rkt/default.nix b/nixpkgs/pkgs/applications/virtualization/rkt/default.nix
new file mode 100644
index 000000000000..777dc6fe9304
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/rkt/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, lib, autoreconfHook, acl, go, file, git, wget, gnupg1, trousers, squashfsTools,
+  cpio, fetchurl, fetchFromGitHub, iptables, systemd, makeWrapper, glibc }:
+
+let
+  # Always get the information from
+  # https://github.com/coreos/rkt/blob/v${VERSION}/stage1/usr_from_coreos/coreos-common.mk
+  coreosImageRelease = "1478.0.0";
+  coreosImageSystemdVersion = "233";
+
+  # TODO: track https://github.com/coreos/rkt/issues/1758 to allow "host" flavor.
+  stage1Flavours = [ "coreos" "fly" ];
+  stage1Dir = "lib/rkt/stage1-images";
+
+in stdenv.mkDerivation rec {
+  version = "1.30.0";
+  name = "rkt-${version}";
+  BUILDDIR="build-${name}";
+
+  src = fetchFromGitHub {
+    owner = "coreos";
+    repo = "rkt";
+    rev = "v${version}";
+    sha256 = "0dqf83b7iin1np8k8k1m8i99ybga8vx932q7n2q64yghkw7p6i00";
+  };
+
+  stage1BaseImage = fetchurl {
+    url = "http://alpha.release.core-os.net/amd64-usr/${coreosImageRelease}/coreos_production_pxe_image.cpio.gz";
+    sha256 = "0s4qdkkfp0iirfnm5ds3b3hxq0249kvpygyhflma8z90ivkzk5wq";
+  };
+
+  buildInputs = [
+    glibc.out glibc.static
+    autoreconfHook go file git wget gnupg1 trousers squashfsTools cpio acl systemd
+    makeWrapper
+  ];
+
+  preConfigure = ''
+    ./autogen.sh
+    configureFlagsArray=(
+      --with-stage1-flavors=${builtins.concatStringsSep "," stage1Flavours}
+      ${if lib.findFirst (p: p == "coreos") null stage1Flavours != null then "
+      --with-coreos-local-pxe-image-path=${stage1BaseImage}
+      --with-coreos-local-pxe-image-systemd-version=v${coreosImageSystemdVersion}
+      " else "" }
+      --with-stage1-default-location=$out/${stage1Dir}/stage1-${builtins.elemAt stage1Flavours 0}.aci
+    );
+  '';
+
+  preBuild = ''
+    export BUILDDIR
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -Rv $BUILDDIR/target/bin/rkt $out/bin
+
+    mkdir -p $out/lib/rkt/stage1-images/
+    cp -Rv $BUILDDIR/target/bin/stage1-*.aci $out/${stage1Dir}/
+
+    wrapProgram $out/bin/rkt \
+      --prefix LD_LIBRARY_PATH : "${systemd.lib}/lib:${acl.out}/lib" \
+      --prefix PATH : ${iptables}/bin
+  '';
+
+  meta = with lib; {
+    description = "A fast, composable, and secure App Container runtime for Linux";
+    homepage = https://github.com/coreos/rkt;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ragge steveej ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/runc/default.nix b/nixpkgs/pkgs/applications/virtualization/runc/default.nix
new file mode 100644
index 000000000000..b89ef1dd7bff
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/runc/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, fetchFromGitHub, buildGoPackage, go-md2man
+, pkgconfig, libapparmor, apparmor-parser, libseccomp, which }:
+
+with lib;
+
+buildGoPackage rec {
+  name = "runc-${version}";
+  version = "1.0.0-rc6";
+
+  src = fetchFromGitHub {
+    owner = "opencontainers";
+    repo = "runc";
+    rev = "v${version}";
+    sha256 = "1jwacb8xnmx5fr86gximhbl9dlbdwj3rpf27hav9q1si86w5pb1j";
+  };
+
+  goPackagePath = "github.com/opencontainers/runc";
+  outputs = [ "bin" "out" "man" ];
+
+  hardeningDisable = ["fortify"];
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ go-md2man libseccomp libapparmor apparmor-parser which ];
+
+  makeFlags = ''BUILDTAGS+=seccomp BUILDTAGS+=apparmor'';
+
+  buildPhase = ''
+    cd go/src/${goPackagePath}
+    patchShebangs .
+    substituteInPlace libcontainer/apparmor/apparmor.go \
+      --replace /sbin/apparmor_parser ${apparmor-parser}/bin/apparmor_parser
+    make ${makeFlags} runc
+  '';
+
+  installPhase = ''
+    install -Dm755 runc $bin/bin/runc
+
+    # Include contributed man pages
+    man/md2man-all.sh -q
+    manRoot="$man/share/man"
+    mkdir -p "$manRoot"
+    for manDir in man/man?; do
+      manBase="$(basename "$manDir")" # "man1"
+      for manFile in "$manDir"/*; do
+        manName="$(basename "$manFile")" # "docker-build.1"
+        mkdir -p "$manRoot/$manBase"
+        gzip -c "$manFile" > "$manRoot/$manBase/$manName.gz"
+      done
+    done
+  '';
+
+  meta = {
+    homepage = https://runc.io/;
+    description = "A CLI tool for spawning and running containers according to the OCI specification";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ offline vdemeester ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/seabios/default.nix b/nixpkgs/pkgs/applications/virtualization/seabios/default.nix
new file mode 100644
index 000000000000..5aa73528e9d7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/seabios/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, iasl, python }:
+
+stdenv.mkDerivation rec {
+
+  name = "seabios-${version}";
+  version = "1.11.0";
+
+  src = fetchurl {
+    url = "http://code.coreboot.org/p/seabios/downloads/get/${name}.tar.gz";
+    sha256 = "1xwvp77djxbxbxg82hzj26pv6zka3556vkdcp09hnfwapcp46av2";
+  };
+
+  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/nixpkgs/pkgs/applications/virtualization/singularity/default.nix b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
new file mode 100644
index 000000000000..cc543d2e94a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, gnutar
+, which
+, gnugrep
+, coreutils
+, python
+, e2fsprogs
+, makeWrapper
+, squashfsTools
+, gzip
+, gnused
+, curl
+, utillinux
+, libarchive
+, file
+ }:
+
+stdenv.mkDerivation rec {
+  name = "singularity-${version}";
+  version = "2.6.0";
+
+  enableParallelBuilding = true;
+
+  patches = [ ./env.patch ];
+
+  preConfigure = ''
+    sed -i 's/-static//g' src/Makefile.am
+    patchShebangs .
+  '';
+
+  configureFlags = [ "--localstatedir=/var" ];
+  installFlags = "CONTAINER_MOUNTDIR=dummy CONTAINER_FINALDIR=dummy CONTAINER_OVERLAY=dummy SESSIONDIR=dummy";
+
+  fixupPhase = ''
+    patchShebangs $out
+    for f in $out/libexec/singularity/helpers/help.sh $out/libexec/singularity/cli/*.exec $out/libexec/singularity/bootstrap-scripts/*.sh ; do
+      chmod a+x $f
+      sed -i 's| /sbin/| |g' $f
+      sed -i 's| /bin/bash| ${stdenv.shell}|g' $f
+      wrapProgram $f --prefix PATH : ${stdenv.lib.makeBinPath buildInputs}
+    done
+  '';
+
+  src = fetchFromGitHub {
+    owner = "singularityware";
+    repo = "singularity";
+    rev = version;
+    sha256 = "0bi7acgppbkfbra8r29s1ldq02lazdww0z2h1rfvv8spr8dzzi94";
+  };
+
+  nativeBuildInputs = [ autoreconfHook makeWrapper ];
+  buildInputs = [ coreutils gnugrep python e2fsprogs which gnutar squashfsTools gzip gnused curl utillinux libarchive file ];
+
+  meta = with stdenv.lib; {
+    homepage = http://singularity.lbl.gov/;
+    description = "Designed around the notion of extreme mobility of compute and reproducible science, Singularity enables users to have full control of their operating system environment";
+    license = "BSD license with 2 modifications";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.jbedo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/singularity/env.patch b/nixpkgs/pkgs/applications/virtualization/singularity/env.patch
new file mode 100644
index 000000000000..bc3be363bb81
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/singularity/env.patch
@@ -0,0 +1,21 @@
+diff --git a/libexec/functions b/libexec/functions
+index bc68107..6c2211c 100644
+--- a/libexec/functions
++++ b/libexec/functions
+@@ -29,16 +29,6 @@ if [ -z "${SINGULARITY_MESSAGELEVEL:-}" ]; then
+     SINGULARITY_MESSAGELEVEL=5
+ fi
+ 
+-if [ -z "${USER:-}" ]; then
+-    USER=`id -un`
+-    export USER
+-fi
+-if [ -z "${HOME:-}" ]; then
+-    HOME=`getent passwd "$USER" | cut -d : -f 6`
+-    export HOME
+-fi
+-
+-
+ message() {
+     LEVEL="${1:-}"
+     MESSAGE="${2:-}"
diff --git a/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix b/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix
new file mode 100644
index 000000000000..70ae09aa6ef8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/spice-vdagent/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, pkgconfig, alsaLib, spice-protocol, glib,
+ libpciaccess, libxcb, libXrandr, libXinerama, libXfixes, dbus,
+ systemd}:
+stdenv.mkDerivation rec {
+  name = "spice-vdagent-0.18.0";
+  src = fetchurl {
+    url = "https://www.spice-space.org/download/releases/${name}.tar.bz2";
+    sha256 = "1bmyvapwj1x0m6y8q0r1df2q37vsnb04qkgnnrfbnzf1qzipxvl0";
+  };
+  postPatch = ''
+    substituteInPlace data/spice-vdagent.desktop --replace /usr $out
+  '';
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ alsaLib spice-protocol glib
+                  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/nixpkgs/pkgs/applications/virtualization/tini/default.nix b/nixpkgs/pkgs/applications/virtualization/tini/default.nix
new file mode 100644
index 000000000000..25c19cd79c7f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/tini/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, cmake, glibc }:
+
+stdenv.mkDerivation rec {
+  version = "0.18.0";
+  name = "tini-${version}";
+
+  src = fetchFromGitHub {
+    owner = "krallin";
+    repo = "tini";
+    rev = "v${version}";
+    sha256 ="1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
+  };
+
+  patchPhase = "sed -i /tini-static/d CMakeLists.txt";
+
+  NIX_CFLAGS_COMPILE = [
+    "-DPR_SET_CHILD_SUBREAPER=36"
+    "-DPR_GET_CHILD_SUBREAPER=37"
+  ];
+
+  buildInputs = [ cmake 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/nixpkgs/pkgs/applications/virtualization/tinyemu/default.nix b/nixpkgs/pkgs/applications/virtualization/tinyemu/default.nix
new file mode 100644
index 000000000000..a8f113307251
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/tinyemu/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, openssl, curl, SDL }:
+
+stdenv.mkDerivation rec {
+  name = "tinyemu-${version}";
+  version = "2018-09-23";
+  src = fetchurl {
+    url = "https://bellard.org/tinyemu/${name}.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/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix b/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
new file mode 100644
index 000000000000..52732f0c5f10
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virt-manager/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchurl, python3Packages, intltool, file
+, wrapGAppsHook, gtk-vnc, vte, avahi, dconf
+, gobject-introspection, libvirt-glib, system-libvirt
+, gsettings-desktop-schemas, glib, libosinfo, gnome3, gtk3
+, spiceSupport ? true, spice-gtk ? null
+, cpio, e2fsprogs, findutils, gzip
+}:
+
+with stdenv.lib;
+
+python3Packages.buildPythonApplication rec {
+  name = "virt-manager-${version}";
+  version = "2.0.0";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://virt-manager.org/download/sources/virt-manager/${name}.tar.gz";
+    sha256 = "1b48xbrx99mfiv80c60k3ydzkpcpbq57c8h8dl0gnffmnzbs8vzb";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook intltool file
+    gobject-introspection # for setup hook populating GI_TYPELIB_PATH
+  ];
+
+  buildInputs =
+    [ libvirt-glib vte dconf gtk-vnc gnome3.defaultIconTheme avahi
+      gsettings-desktop-schemas libosinfo gtk3
+    ] ++ 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
+  '';
+
+  postInstall = ''
+    ${glib.dev}/bin/glib-compile-schemas "$out"/share/glib-2.0/schemas
+  '';
+
+  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 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix b/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
new file mode 100644
index 000000000000..c8af6a1ccf55
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
+, qtbase, qtmultimedia, qtsvg, qttools, krdc
+, libvncserver, libvirt, pcre, pixman, qtermwidget, spice-gtk, spice-protocol
+}:
+
+mkDerivation rec {
+  name = "virt-manager-qt-${version}";
+  version = "0.60.88";
+
+  src = fetchFromGitHub {
+    owner  = "F1ash";
+    repo   = "qt-virt-manager";
+    rev    = "${version}";
+    sha256 = "0hd5d8zdghc5clv8pa4h9zigshdrarfpmzyvrq56rjkm13lrdz52";
+  };
+
+  cmakeFlags = [
+    "-DBUILD_QT_VERSION=5"
+    "-DQTERMWIDGET_INCLUDE_DIRS=${qtermwidget}/include/qtermwidget5"
+  ];
+
+  buildInputs = [
+    qtbase qtmultimedia qtsvg krdc
+    libvirt libvncserver pcre pixman qtermwidget spice-gtk spice-protocol
+  ];
+
+  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/nixpkgs/pkgs/applications/virtualization/virt-top/default.nix b/nixpkgs/pkgs/applications/virtualization/virt-top/default.nix
new file mode 100644
index 000000000000..493307d0d078
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virt-top/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, ocamlPackages, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "virt-top-${version}";
+  version = "2017-11-18-unstable";
+
+  src = fetchgit {
+    url = git://git.annexia.org/git/virt-top.git;
+    rev = "18a751d8c26548bb090ff05e30ccda3092e3373b";
+    sha256 = "0c4whjvw7p3yvd476i4ppdhi8j821r5y6caqrj2v9dc181cnp01i";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = with ocamlPackages; [ ocaml findlib ocaml_extlib ocaml_libvirt ocaml_gettext 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/nixpkgs/pkgs/applications/virtualization/virt-viewer/default.nix b/nixpkgs/pkgs/applications/virtualization/virt-viewer/default.nix
new file mode 100644
index 000000000000..cbdecb322882
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virt-viewer/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, libxml2, gtk3, gtk-vnc, gmp
+, libgcrypt, gnupg, cyrus_sasl, shared-mime-info, libvirt, yajl, xen
+, gsettings-desktop-schemas, wrapGAppsHook, libvirt-glib, libcap_ng, numactl
+, libapparmor, gst_all_1
+, 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 = "7.0";
+  name = "${baseName}-${version}";
+
+  src = fetchurl {
+    url = "http://virt-manager.org/download/sources/${baseName}/${name}.tar.gz";
+    sha256 = "00y9vi69sja4pkrfnvrkwsscm41bqrjzvp8aijb20pvg6ymczhj7";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
+  buildInputs = [
+    glib libxml2 gtk3 gtk-vnc gmp libgcrypt gnupg cyrus_sasl shared-mime-info
+    libvirt yajl gsettings-desktop-schemas libvirt-glib
+    libcap_ng numactl libapparmor
+  ] ++ optionals stdenv.isx86_64 [
+    xen
+  ] ++ optionals spiceSupport [
+    spice-gtk spice-protocol libcap gdbm
+    gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+  ];
+
+  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/nixpkgs/pkgs/applications/virtualization/virt-what/default.nix b/nixpkgs/pkgs/applications/virtualization/virt-what/default.nix
new file mode 100644
index 000000000000..8a339ac83224
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virt-what/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, lib, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "virt-what-${version}";
+  version = "1.19";
+
+  src = fetchurl {
+    url = "https://people.redhat.com/~rjones/virt-what/files/${name}.tar.gz";
+    sha256 = "00nhwly5q0ps8yv9cy3c2qp8lfshf3s0kdpwiy5zwk3g77z96rwk";
+  };
+
+  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/nixpkgs/pkgs/applications/virtualization/virtinst/default.nix b/nixpkgs/pkgs/applications/virtualization/virtinst/default.nix
new file mode 100644
index 000000000000..8222fb50a8f9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtinst/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, python2Packages, intltool, libxml2Python }:
+
+with stdenv.lib;
+
+let version = "0.600.4"; in
+
+stdenv.mkDerivation rec {
+  name = "virtinst-${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/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
new file mode 100644
index 000000000000..66a9872b06db
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
@@ -0,0 +1,196 @@
+{ stdenv, fetchurl, lib, fetchpatch, iasl, dev86, pam, libxslt, libxml2
+, libX11, xproto, libXext, libXcursor, libXmu, qt5, libIDL, SDL, libcap
+, libpng, glib, lvm2, libXrandr, libXinerama, libopus
+, pkgconfig, which, docbook_xsl, docbook_xml_dtd_43
+, alsaLib, curl, libvpx, nettools, dbus
+, makeself, perl
+, javaBindings ? false, jdk ? null
+, pythonBindings ? false, python2 ? null
+, extensionPack ? null, fakeroot ? null
+, pulseSupport ? false, libpulseaudio ? null
+, enableHardening ? false
+, headless ? false
+, enable32bitGuests ? true
+, patchelfUnstable # needed until 0.10 is released
+}:
+
+with stdenv.lib;
+
+let
+  python = python2;
+  buildType = "release";
+  # Remember to change the extpackRev and version in extpack.nix as well.
+  main = "1m48ywa913g6zgqslvrihxs2fbr4gmljypbdpjma2hck6isyi02m";
+  version = "5.2.22";
+in stdenv.mkDerivation {
+  name = "virtualbox-${version}";
+
+  src = fetchurl {
+    url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
+    sha256 = main;
+  };
+
+  outputs = [ "out" "modsrc" ];
+
+  nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 patchelfUnstable ];
+
+  buildInputs =
+    [ iasl dev86 libxslt libxml2 xproto 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 ]
+    ++ optionals (!headless) [ qt5.qtbase qt5.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 qt5.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
+  ++ [
+    ./qtx11extras.patch
+    (fetchpatch {
+      name = "010-qt-5.11.patch";
+      url = "https://git.archlinux.org/svntogit/community.git/plain/trunk/010-qt-5.11.patch?h=packages/virtualbox";
+      sha256 = "0hjx99pg40wqyggnrpylrp5zngva4xrnk7r90i0ynrqc7n84g9pn";
+    })
+  ];
+
+  postPatch = ''
+    sed -i -e 's|/sbin/ifconfig|${nettools}/bin/ifconfig|' \
+      src/VBox/HostDrivers/adpctl/VBoxNetAdpCtl.cpp
+  '';
+
+  # 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 qt5.qtx11extras}/lib
+    PATH_QT5_X11_EXTRAS_INC        := ${getDev qt5.qtx11extras}/include
+    TOOL_QT5_LRC                   := ${getDev qt5.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"} \
+      --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"
+  '';
+
+  passthru = {
+    inherit version;       # for guest additions
+    inherit extensionPack; # for inclusion in profile to prevent gc
+  };
+
+  meta = {
+    description = "PC emulator";
+    license = licenses.gpl2;
+    homepage = https://www.virtualbox.org/;
+    maintainers = with maintainers; [ flokli sander ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
new file mode 100644
index 000000000000..d2c513e899af
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, lib}:
+
+with lib;
+
+let version = "5.2.22";
+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`.
+    let value = "779250666551b2f5426e86c2d21ceb0209b46174536971611025f753535131ef";
+    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; [ flokli sander cdepillabout ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
new file mode 100644
index 000000000000..2ed0fb5cabd4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -0,0 +1,161 @@
+{ stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
+, xorg, dbus, virtualbox }:
+
+let
+  version = virtualbox.version;
+  xserverVListFunc = builtins.elemAt (stdenv.lib.splitString "." 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" then "118" else abi;
+in
+
+stdenv.mkDerivation {
+  name = "VirtualBox-GuestAdditions-${version}-${kernel.version}";
+
+  src = fetchurl {
+    url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
+    sha256 = "e51e33500a265b5c2d7bb2d03d32208df880523dfcb1e2dde2c78a0e0daa0603";
+  };
+
+  KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
+  KERN_INCL = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/source/include";
+
+  patchFlags = [ "-p1" "-d" "install/src/vboxguest-${version}" ];
+
+  patches = [
+    ./fix_kerndir.patch
+    ./fix_kernincl.patch
+  ];
+
+  hardeningDisable = [ "pic" ];
+
+  NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration";
+
+  nativeBuildInputs = [ patchelf makeWrapper ];
+  buildInputs = [ cdrkit dbus ] ++ kernel.moduleBuildDependencies;
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r install/* $out
+  '';
+
+  buildCommand = with xorg; ''
+    ${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
+        ./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")
+    }
+
+    cd ../
+    patchPhase
+    cd install/src
+
+    # Build kernel modules
+    export INSTALL_MOD_PATH=$out
+
+    find . -type f | xargs sed 's/depmod -a/true/' -i
+
+    cd vboxguest-${version}
+
+    make
+
+    cd ../..
+
+    # Change the interpreter for various binaries
+    for i in sbin/VBoxService bin/{VBoxClient,VBoxControl} other/mount.vboxsf
+    do
+        ${if stdenv.hostPlatform.system == "i686-linux" then ''
+          patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $i
+        ''
+        else if stdenv.hostPlatform.system == "x86_64-linux" then ''
+          patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2 $i
+        ''
+        else throw ("Architecture: "+stdenv.hostPlatform.system+" not supported for VirtualBox guest additions")
+        }
+        patchelf --set-rpath ${lib.makeLibraryPath [ stdenv.cc.cc dbus libX11 libXt libXext libXmu libXfixes libXrandr libXcursor ]} $i
+    done
+
+    for i in lib/VBoxOGL*.so
+    do
+        patchelf --set-rpath ${lib.makeLibraryPath [ "$out" dbus libXcomposite libXdamage libXext 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
+
+    # 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"
+
+    # 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
+
+    # Install kernel modules
+    cd src
+
+    for i in *
+    do
+        cd $i
+        kernelVersion=$(cd ${kernel.dev}/lib/modules; ls)
+        export MODULE_DIR=$out/lib/modules/$kernelVersion/misc
+        find . -type f | xargs sed -i -e "s|-o root||g" \
+                                      -e "s|-g root||g"
+        make install
+        cd ..
+    done
+  ''; # */
+
+  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/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/fix_kerndir.patch b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/fix_kerndir.patch
new file mode 100644
index 000000000000..0be949f63c92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/fix_kerndir.patch
@@ -0,0 +1,38 @@
+diff --git a/vboxsf/Makefile.include.header b/vboxsf/Makefile.include.header
+index 8df1eb4d25..5a3e5604e7 100644
+--- a/vboxsf/Makefile.include.header
++++ b/vboxsf/Makefile.include.header
+@@ -117,7 +117,6 @@ else # neq($(KERNELRELEASE),)
+ endif # neq($(KERNELRELEASE),)
+
+ # Kernel build folder
+-KERN_DIR := /lib/modules/$(KERN_VER)/build
+ ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes)
+  $(error Error: unable to find the headers of the Linux kernel to build against. \
+           Specify KERN_VER=<version> and run Make again)
+
+diff --git a/vboxguest/Makefile.include.header b/vboxguest/Makefile.include.header
+index 8df1eb4d25..5a3e5604e7 100644
+--- a/vboxguest/Makefile.include.header
++++ b/vboxguest/Makefile.include.header
+@@ -117,7 +117,6 @@ else # neq($(KERNELRELEASE),)
+ endif # neq($(KERNELRELEASE),)
+
+ # Kernel build folder
+-KERN_DIR := /lib/modules/$(KERN_VER)/build
+ ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes)
+  $(error Error: unable to find the headers of the Linux kernel to build against. \
+           Specify KERN_VER=<version> and run Make again)
+
+diff --git a/vboxvideo/Makefile.include.header b/vboxvideo/Makefile.include.header
+index 8df1eb4d25..5a3e5604e7 100644
+--- a/vboxvideo/Makefile.include.header
++++ b/vboxvideo/Makefile.include.header
+@@ -117,7 +117,6 @@ else # neq($(KERNELRELEASE),)
+ endif # neq($(KERNELRELEASE),)
+
+ # Kernel build folder
+-KERN_DIR := /lib/modules/$(KERN_VER)/build
+ ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes)
+  $(error Error: unable to find the headers of the Linux kernel to build against. \
+           Specify KERN_VER=<version> and run Make again)
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/fix_kernincl.patch b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/fix_kernincl.patch
new file mode 100644
index 000000000000..e59e2e98c1b3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/fix_kernincl.patch
@@ -0,0 +1,12 @@
+diff --git a/vboxvideo/Makefile.include.header b/vboxvideo/Makefile.include.header
+index 8df1eb4d25..5a3e5604e7 100644
+--- a/vboxvideo/Makefile.include.header
++++ b/vboxvideo/Makefile.include.header
+@@ -122,7 +122,6 @@ ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes)
+           Specify KERN_VER=<version> and run Make again)
+ endif
+ # Kernel include folder
+-KERN_INCL := $(KERN_DIR)/include
+ # module install folder
+ INSTALL_MOD_DIR ?= misc
+ MODULE_DIR := $(INSTALL_MOD_PATH)/lib/modules/$(KERN_VER)/$(INSTALL_MOD_DIR)
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/hardened.patch b/nixpkgs/pkgs/applications/virtualization/virtualbox/hardened.patch
new file mode 100644
index 000000000000..398100f3f398
--- /dev/null
+++ b/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/MachineImpl.cpp b/src/VBox/Main/src-server/MachineImpl.cpp
+index 320c569..9bfe41f 100644
+--- a/src/VBox/Main/src-server/MachineImpl.cpp
++++ b/src/VBox/Main/src-server/MachineImpl.cpp
+@@ -7543,7 +7543,7 @@ HRESULT Machine::i_launchVMProcess(IInternalSessionControl *aControl,
+
+     /* get the path to the executable */
+     char szPath[RTPATH_MAX];
+-    RTPathAppPrivateArch(szPath, sizeof(szPath) - 1);
++    RTStrCopy(szPath, sizeof(szPath) - 1, "/run/wrappers/bin");
+     size_t cchBufLeft = strlen(szPath);
+     szPath[cchBufLeft++] = RTPATH_DELIMITER;
+     szPath[cchBufLeft] = 0;
+diff --git a/src/VBox/Main/src-server/NetworkServiceRunner.cpp b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+index 1e38d99..5e43dda 100644
+--- a/src/VBox/Main/src-server/NetworkServiceRunner.cpp
++++ b/src/VBox/Main/src-server/NetworkServiceRunner.cpp
+@@ -85,7 +85,7 @@ int NetworkServiceRunner::start(bool aKillProcOnStop)
+
+     /* get the path to the executable */
+     char exePathBuf[RTPATH_MAX];
+-    const char *exePath = RTProcGetExecutablePath(exePathBuf, RTPATH_MAX);
++    const char *exePath = RTProcGetSuidPath(exePathBuf, RTPATH_MAX);
+     char *substrSl = strrchr(exePathBuf, '/');
+     char *substrBs = strrchr(exePathBuf, '\\');
+     char *suffix = substrSl ? substrSl : substrBs;
+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/nixpkgs/pkgs/applications/virtualization/virtualbox/qtx11extras.patch b/nixpkgs/pkgs/applications/virtualization/virtualbox/qtx11extras.patch
new file mode 100644
index 000000000000..6ed74e3e23ed
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/qtx11extras.patch
@@ -0,0 +1,31 @@
+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
+@@ -1019,9 +1019,10 @@ 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), $(PATH_SDK_QT5_LIB)/lib$(qt_prefix)Qt5$(module)$(qt_infix)$(SUFF_DLL)) \
++                              $(PATH_QT5_X11_EXTRAS_LIB)/lib$(qt_prefix)Qt5X11Extras$(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/src/VBox/Frontends/VirtualBox/Makefile.kmk b/src/VBox/Frontends/VirtualBox/Makefile.kmk
+index 3295bfefe7..796370623c 100644
+--- a/src/VBox/Frontends/VirtualBox/Makefile.kmk
++++ b/src/VBox/Frontends/VirtualBox/Makefile.kmk
+@@ -916,9 +916,6 @@ endif
+ # The Qt modules we're using.
+ # (The include directory and lib/framework for each module will be added by the Qt unit.)
+ VirtualBox_QT_MODULES = Core Gui Widgets PrintSupport
+-VirtualBox_QT_MODULES.linux   += X11Extras
+-VirtualBox_QT_MODULES.solaris += X11Extras
+-VirtualBox_QT_MODULES.freebsd += X11Extras
+ VirtualBox_QT_MODULES.darwin  += MacExtras
+ VirtualBox_QT_MODULES.win     += WinExtras
+ if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/update.py b/nixpkgs/pkgs/applications/virtualization/virtualbox/update.py
new file mode 100755
index 000000000000..6e8bfd5c8250
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/update.py
@@ -0,0 +1,85 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i python3 -p python3
+
+import os
+import re
+import json
+import urllib.request
+
+from distutils.version import LooseVersion
+
+UPSTREAM_INFO_FILE = os.path.join(
+    os.path.dirname(os.path.abspath(__file__)),
+    "upstream-info.json"
+)
+
+
+def fetch_latest_version():
+    url = "http://download.virtualbox.org/virtualbox/LATEST.TXT"
+    return urllib.request.urlopen(url).read().strip().decode()
+
+
+def load_upstream_info():
+    try:
+        with open(UPSTREAM_INFO_FILE, 'r') as fp:
+            return json.load(fp)
+    except FileNotFoundError:
+        return {'version': "0"}
+
+
+def save_upstream_info(contents):
+    remark = "Generated using update.py from the same directory."
+    contents['__NOTE'] = remark
+    data = json.dumps(contents, indent=2, sort_keys=True)
+    with open(UPSTREAM_INFO_FILE, 'w') as fp:
+        fp.write(data + "\n")
+
+
+def fetch_file_table(version):
+    url = "http://download.virtualbox.org/virtualbox/{}/SHA256SUMS"
+    url = url.format(version)
+    result = {}
+    for line in urllib.request.urlopen(url):
+        sha, name = line.rstrip().split()
+        result[name.lstrip(b'*').decode()] = sha.decode()
+    return result
+
+
+def update_to_version(version):
+    extpack_start = 'Oracle_VM_VirtualBox_Extension_Pack-'
+    version_re = version.replace('.', '\\.')
+    attribute_map = {
+        'extpack': r'^' + extpack_start + r'[^-]+-[^.]+.vbox-extpack$',
+        'extpackRev': r'^' + extpack_start + r'[^-]+-([^.]+).vbox-extpack$',
+        'main': r'^VirtualBox-' + version_re + r'.tar.bz2$',
+        'guest': r'^VBoxGuestAdditions_' + version_re + r'.iso$',
+    }
+    table = fetch_file_table(version)
+    new_attrs = {'version': version}
+    for attr, searchexpr in attribute_map.items():
+        result = [re.search(searchexpr, key) for key in table.keys()]
+        filtered = filter(lambda m: m is not None, result)
+        found = [m.groups()[0] if len(m.groups()) > 0 else table[m.group(0)]
+                 for m in filtered if m is not None]
+
+        if len(found) == 0:
+            msg = "No package found for attribute {}".format(attr)
+            raise AssertionError(msg)
+        elif len(found) != 1:
+            msg = "More than one package found for attribute {}: ".format(attr)
+            msg += ', '.join(found)
+            raise AssertionError(msg)
+        else:
+            new_attrs[attr] = found[0]
+    return new_attrs
+
+
+info = load_upstream_info()
+latest = fetch_latest_version()
+if LooseVersion(info['version']) < LooseVersion(latest):
+    print("Updating to version {}...".format(latest), end="", flush=True)
+    new_attrs = update_to_version(latest)
+    save_upstream_info(new_attrs)
+    print(" done.")
+else:
+    print("Version {} is already the latest one.".format(info['version']))
diff --git a/nixpkgs/pkgs/applications/virtualization/vpcs/default.nix b/nixpkgs/pkgs/applications/virtualization/vpcs/default.nix
new file mode 100644
index 000000000000..3d6efcfc8443
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/vpcs/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, glibc }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "vpcs";
+  version = "0.8";
+
+  src = fetchurl {
+    name = "${name}.tar.bz2";
+    url = "mirror://sourceforge/project/${pname}/${version}/${name}-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/nixpkgs/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch b/nixpkgs/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch
new file mode 100644
index 000000000000..d94a39ccd64d
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-install-python.patch b/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-install-python.patch
new file mode 100644
index 000000000000..53821c0d9c51
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.patch b/nixpkgs/pkgs/applications/virtualization/xen/0000-fix-ipxe-src.patch
new file mode 100644
index 000000000000..072338b87aba
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch b/nixpkgs/pkgs/applications/virtualization/xen/0000-qemu-seabios-enable-ATA_DMA.patch
new file mode 100644
index 000000000000..339972a2cdeb
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/virtualization/xen/0001-libxl-Spice-image-compression-setting-support-for-up.patch b/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/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/nixpkgs/pkgs/applications/virtualization/xen/0002-libxl-Spice-streaming-video-setting-support-for-upst.patch b/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/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/nixpkgs/pkgs/applications/virtualization/xen/0003-Add-qxl-vga-interface-support-for-upstream-qem.patch b/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/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/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix b/nixpkgs/pkgs/applications/virtualization/xen/4.10.nix
new file mode 100644
index 000000000000..f3055fc79c35
--- /dev/null
+++ b/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.0";
+
+  src = fetchurl {
+    url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz";
+    sha256 = "0i38ap5b5m1kix6xb0vn9ya1yab35adyc98bzfnbq4lb7w1afqh2";
+  };
+
+  # 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 = "b79708a8ed1b3d18bee67baeaf33b3fa529493e2";
+        sha256 = "1yxxad6nvlfmrbgyc8ix19qmrsn1rx4zpyiqnfi4x4kg94acwa5w";
+      };
+      patches = [
+        qemuMemfdBuildFix
+      ];
+      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";
+
+  patches = with xsa; flatten [
+    XSA_252
+    XSA_253
+    XSA_255_1
+    XSA_255_2
+    XSA_256
+  ];
+
+  # Fix build on Glibc 2.24.
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+  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/nixpkgs/pkgs/applications/virtualization/xen/4.5.nix b/nixpkgs/pkgs/applications/virtualization/xen/4.5.nix
new file mode 100644
index 000000000000..64704f73e7b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/xen/4.5.nix
@@ -0,0 +1,261 @@
+{ 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
+, ... } @ 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
+  xsaPatch = { name , sha256 }: (fetchpatch {
+    url = "https://xenbits.xen.org/xsa/xsa${name}.patch";
+    inherit sha256;
+  });
+
+  qemuDeps = [
+    udev pciutils xorg.libX11 SDL pixman acl glusterfs spice-protocol usbredir
+    alsaLib
+  ];
+
+  xsa = import ./xsa-patches.nix { inherit fetchpatch; };
+in
+
+callPackage (import ./generic.nix (rec {
+  version = "4.5.5";
+
+  meta = {
+    knownVulnerabilities = [ "Security support ended in January 2018" ];
+  };
+
+  src = fetchurl {
+    url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz";
+    sha256 = "1y74ms4yc3znf8jc3fgyq94va2y0pf7jh8m9pfqnpgklywqnw8g2";
+  };
+
+  # 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}";
+        sha256 = "014s755slmsc7xzy7qhk9i3kbjr2grxb5yznjp71dl6xxfvnday2";
+      };
+      buildInputs = qemuDeps;
+      patches = [
+        (xsaPatch {
+          name = "197-4.5-qemuu";
+          sha256 = "09gp980qdlfpfmxy0nk7ncyaa024jnrpzx9gpq2kah21xygy5myx";
+        })
+        (xsaPatch {
+          name = "208-qemuu-4.7";
+          sha256 = "0z9b1whr8rp2riwq7wndzcnd7vw1ckwx0vbk098k2pcflrzppgrb";
+        })
+        (xsaPatch {
+          name = "209-qemuu/0001-display-cirrus-ignore-source-pitch-value-as-needed-i";
+          sha256 = "1xvxzsrsq05fj6szjlpbgg4ia3cw54dn5g7xzq1n1dymbhv606m0";
+        })
+        (xsaPatch {
+          name = "209-qemuu/0002-cirrus-add-blit_is_unsafe-call-to-cirrus_bitblt_cput";
+          sha256 = "0avxqs9922qjfsxxlk7bh10432a526j2yyykhags8dk1bzxkpxwv";
+        })
+        (xsaPatch {
+          name = "211-qemuu-4.6";
+          sha256 = "1g090xs8ca8676vyi78b99z5yjdliw6mxkr521b8kimhf8crx4yg";
+        })
+        (xsaPatch {
+          name = "216-qemuu-4.5";
+          sha256 = "0nh5akbal93czia1gh1pzvwq7gc4zwiyr1hbyk1m6wwdmqv6ph61";
+        })
+      ];
+      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}";
+        sha256 = "0n0ycxlf1wgdjkdl8l2w1i0zzssk55dfv67x8i6b2ima01r0k93r";
+      };
+      buildInputs = qemuDeps;
+      patches = [
+        (xsaPatch {
+          name = "197-4.5-qemut";
+          sha256 = "17l7npw00gyhqzzaqamwm9cawfvzm90zh6jjyy95dmqbh7smvy79";
+        })
+        (xsaPatch {
+          name = "199-trad";
+          sha256 = "0dfw6ciycw9a9s97sbnilnzhipnzmdm9f7xcfngdjfic8cqdcv42";
+        })
+        (xsaPatch {
+          name = "208-qemut";
+          sha256 = "0960vhchixp60j9h2lawgbgzf6mpcdk440kblk25a37bd6172l54";
+        })
+        (xsaPatch {
+          name = "209-qemut";
+          sha256 = "1hq8ghfzw6c47pb5vf9ngxwgs8slhbbw6cq7gk0nam44rwvz743r";
+        })
+        (xsaPatch {
+          name = "211-qemut-4.5";
+          sha256 = "1z3phabvqmxv4b5923fx63hwdg4v1fnl15zbl88873ybqn0hp50f";
+        })
+      ];
+      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 = "e51488c5f8800a52ac5c8da7a31b85cca5cc95d2";
+        #rev = "rel-1.7.5";
+        sha256 = "0jk54ybhmw97pzyhpm6jr2x99f702kbn0ipxv5qxcbynflgdazyb";
+      };
+      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 = "cb9a7ebabcd6b8a49dc0854b2f9592d732b5afbd";
+        sha256 = "07zmdj90zjrzip74fvd4ss8n8njk6cim85s58mc6snxmqqv7gmcq";
+      };
+      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 = "9a93db3f0947484e30e753bbd61a10b17336e20e";
+        sha256 = "1ga3h1b34q0cl9azj7j9nswn7mfcs3cgfjdihrm5zkp2xw2hpvr6";
+      };
+      meta.description = "Xen's fork of iPXE";
+    };
+  } // optionalAttrs withLibHVM {
+    "xen-libhvm-dir-remote" = {
+      src = fetchgit {
+        name = "xen-libhvm";
+        url = https://github.com/ts468/xen-libhvm;
+        rev = "442dcc4f6f4e374a51e4613532468bd6b48bdf63";
+        sha256 = "9ba97c39a00a54c154785716aa06691d312c99be498ebbc00dc3769968178ba8";
+      };
+      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";
+
+  patches = with xsa; flatten [
+    ./0001-libxl-Spice-image-compression-setting-support-for-up.patch
+    ./0002-libxl-Spice-streaming-video-setting-support-for-upst.patch
+    ./0003-Add-qxl-vga-interface-support-for-upstream-qem.patch
+    XSA_190
+    XSA_191
+    XSA_192
+    XSA_193
+    XSA_195
+    XSA_196
+    XSA_198
+    XSA_200
+    XSA_202_45
+    XSA_204_45
+    XSA_206_45
+    XSA_207
+    XSA_212
+    XSA_213_45
+    XSA_214
+    XSA_215
+    XSA_217_45
+    XSA_218_45
+    XSA_219_45
+    XSA_220_45
+    XSA_221
+    XSA_222_45
+    XSA_223
+    XSA_224_45
+    XSA_227_45
+    XSA_230
+    XSA_231_45
+    XSA_232
+    XSA_233
+    XSA_234_45
+    XSA_235_45
+    XSA_236_45
+    XSA_237_45
+    XSA_238_45
+    XSA_239_45
+    XSA_240_45
+    XSA_241
+    XSA_242
+    XSA_243_45
+    XSA_244_45
+    XSA_245
+    XSA_246_45
+    XSA_247_45
+    XSA_248_45
+    XSA_249
+    XSA_250_45
+    XSA_251_45
+  ];
+
+  # Fix build on Glibc 2.24.
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+  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
+  '';
+
+  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_02; } // args)
diff --git a/nixpkgs/pkgs/applications/virtualization/xen/4.8.nix b/nixpkgs/pkgs/applications/virtualization/xen/4.8.nix
new file mode 100644
index 000000000000..2a59cd1f0615
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/xen/4.8.nix
@@ -0,0 +1,185 @@
+{ 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
+, ... } @ 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; };
+
+  xenlockprofpatch = (fetchpatch {
+    name = "xenlockprof-gcc7.patch";
+    url = "https://xenbits.xen.org/gitweb/?p=xen.git;a=patch;h=f49fa658b53580cf2ad354d2bf1796766cc11222";
+    sha256 = "1lvzfvkqirknivm8q4cg5byfqz49s16zjk65fkwl3kwb03chky70";
+  });
+
+  xenpmdpatch = (fetchpatch {
+    name = "xenpmd-gcc7.patch";
+    url = "https://xenbits.xen.org/gitweb/?p=xen.git;a=patch;h=2d78f78a14528752266982473c07118f1bc336e3";
+    sha256 = "1ki295pymbcfc64sjb9wqfwpv19p8vwgmnxankada3vm4fxg2rhq";
+  });
+
+  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
+  ];
+in
+
+callPackage (import ./generic.nix (rec {
+  version = "4.8.3";
+
+  src = fetchurl {
+    url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz";
+    sha256 = "0vhkpyy5x7kc36hnav95fn194ngsmc3m2xcc78vccs00gdf6m8q9";
+  };
+
+  # 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}";
+        sha256 = "0lb7zd5nvr6znx47z93nbq4gj8xfb3622s8r2cvmpqmwnmlc3nd4";
+      };
+      patches = [
+        qemuMemfdBuildFix
+      ];
+      buildInputs = qemuDeps;
+      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}";
+        sha256 = "0mryap5y53r09m7qc0b821f717ghwm654r8c3ik1w7adzxr0l5qk";
+      };
+      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";
+
+  patches = with xsa; flatten [
+    # XSA_231 to XSA-251 are fixed in 4.8.3 (verified with git log)
+    XSA_252_49
+    # 253: 4.8 not affected
+    # 254: no patch supplied by xen project (Meltdown/Spectre)
+    XSA_255_49_1
+    XSA_255_49_2
+    XSA_256_48
+    xenlockprofpatch
+    xenpmdpatch
+  ];
+
+  # Fix build on Glibc 2.24.
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+  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
+  '';
+
+  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/nixpkgs/pkgs/applications/virtualization/xen/generic.nix b/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
new file mode 100644
index 000000000000..968d998792df
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/xen/generic.nix
@@ -0,0 +1,239 @@
+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, utillinux, procps, systemd
+
+# Documentation
+# python2Packages.markdown
+, transfig, ghostscript, texinfo, pandoc
+
+, ...} @ args:
+
+with stdenv.lib;
+
+let
+  #TODO: fix paths instead
+  scriptEnvPath = concatMapStringsSep ":" (x: "${x}/bin") [
+    which perl
+    coreutils gawk gnused gnugrep diffutils utillinux 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 )
+  '');
+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
+    #!/bin/sh -e
+    echo ===== FAKE WGET: Not fetching \$*
+    [ -e \$3 ]
+    EOF
+
+    # Fake git: just print what it wants and die
+    cat > fake-bin/git << EOF
+    #!/bin/sh
+    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@/bin/sh@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 ]
+         ++ (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 ${utillinux}/bin/mount \
+      --replace /usr/sbin/umount ${utillinux}/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
+  '';
+
+  # 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/nixpkgs/pkgs/applications/virtualization/xen/packages.nix b/nixpkgs/pkgs/applications/virtualization/xen/packages.nix
new file mode 100644
index 000000000000..791a3b91818a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/xen/packages.nix
@@ -0,0 +1,156 @@
+{ callPackage
+, stdenv, overrideCC, gcc49
+}:
+
+# TODO(@oxij) on new Xen version: generalize this to generate [vanilla slim
+# light] for each ./<version>.nix.
+
+rec {
+
+  xen_4_5-vanilla = callPackage ./4.5.nix {
+    # At the very least included seabios and etherboot need gcc49,
+    # so we have to build all of it with gcc49.
+    stdenv = overrideCC stdenv gcc49;
+
+    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_5-slim = xen_4_5-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_5-light = xen_4_5-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_4_8-vanilla = callPackage ./4.8.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_8-slim = xen_4_8-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_8-light = xen_4_8-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_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_8-vanilla;
+  xen-slim = xen_4_8-slim;
+  xen-light = xen_4_8-light;
+
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/xen/xsa-patches.nix b/nixpkgs/pkgs/applications/virtualization/xen/xsa-patches.nix
new file mode 100644
index 000000000000..727546b69fb0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/xen/xsa-patches.nix
@@ -0,0 +1,936 @@
+{ fetchpatch }:
+
+let
+  xsaPatch = { name , sha256 }: (fetchpatch {
+    url = "https://xenbits.xen.org/xsa/xsa${name}.patch";
+    inherit sha256;
+  });
+in rec {
+  # 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.8
+  XSA_202 = (xsaPatch {
+    name = "202";
+    sha256 = "0j1d5akcjgx8w2c6w6p9znv77fkmps0880m2xgpbgs1ra9grshm1";
+  });
+
+  # 4.8
+  XSA_203 = (xsaPatch {
+    name = "203";
+    sha256 = "1s1q7xskvpg87ivwfaiqr0cj3ajdkhkhpmpikfkvq127h8hhmd8j";
+  });
+
+  # 4.5
+  XSA_204_45 = (xsaPatch {
+    name = "204-4.5";
+    sha256 = "083z9pbdz3f532fnzg7n2d5wzv6rmqc0f4mvc3mnmkd0rzqw8vcp";
+  });
+
+  # 4.8
+  XSA_204 = (xsaPatch {
+    name = "204-4.8";
+    sha256 = "0rs498s4w2alz3h6jhlr2y0ni630vhggmxbrd1p1p3gcv8p6zzrr";
+  });
+
+  # 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.8
+  XSA_206 = [
+    (xsaPatch {
+      name = "206-4.8/0001-xenstored-apply-a-write-transaction-rate-limit";
+      sha256 = "1c81d93i3qx7l38f9af0sd84w5x51zvn262mzl25ilcklql4kzl6";
+    })
+    (xsaPatch {
+      name = "206-4.8/0002-xenstored-Log-when-the-write-transaction-rate-limit-";
+      sha256 = "0b8iw409wi1x6p0swpnr51lcdlla1lgxjv5f910sj4wl96bca84q";
+    })
+    (xsaPatch {
+      name = "206-4.8/0003-oxenstored-comments-explaining-some-variables";
+      sha256 = "1d3n0y9syya4kaavrvqn01d3wsn85gmw7qrbylkclznqgkwdsr2p";
+    })
+    (xsaPatch {
+      name = "206-4.8/0004-oxenstored-handling-of-domain-conflict-credit";
+      sha256 = "020rw7hgc0dmhr4admz91kd99b4z1bdpji47nsy1255bjgvwc01k";
+    })
+    (xsaPatch {
+      name = "206-4.8/0005-oxenstored-ignore-domains-with-no-conflict-credit";
+      sha256 = "1ilhcgyn803bxvfbqv0ihfrh9jfpp0lidkv7i4613f9v9vjm8q0h";
+    })
+    (xsaPatch {
+      name = "206-4.8/0006-oxenstored-add-transaction-info-relevant-to-history-";
+      sha256 = "1dbd9pzda6hn9wj9pck44dlgz9nxvch3bzgrpaivanww8llxdfzz";
+    })
+    (xsaPatch {
+      name = "206-4.8/0007-oxenstored-support-commit-history-tracking";
+      sha256 = "1jfr56c22fqkhj6fnv1ha7zsid86zm9l0nihpb8m932xgc4a6h9h";
+    })
+    (xsaPatch {
+      name = "206-4.8/0008-oxenstored-only-record-operations-with-side-effects-";
+      sha256 = "1y845hj8krjdrirbd2jx4jqgnylwjv7bxnk7474lkld5kdnlbjyf";
+    })
+    (xsaPatch {
+      name = "206-4.8/0009-oxenstored-discard-old-commit-history-on-txn-end";
+      sha256 = "1lcr9gz2b77x74sr1flfymyyz4xzs04iv88rc1633ibyqxmvk0lx";
+    })
+    (xsaPatch {
+      name = "206-4.8/0010-oxenstored-track-commit-history";
+      sha256 = "1qwnivak4y038mpby75aaz0y70r0l3yc3hsz6wl5x0b74q6yy0ja";
+    })
+    (xsaPatch {
+      name = "206-4.8/0011-oxenstored-blame-the-connection-that-caused-a-transa";
+      sha256 = "0p2w5ddyhc6d95dnlxzc5k77j063p02d53ab7m7ijfm7m6gknq8y";
+    })
+    (xsaPatch {
+      name = "206-4.8/0012-oxenstored-allow-self-conflicts";
+      sha256 = "1571l81m30cbmqm4pk33q33p3dy58sfy2lnkl2wbgl2b3mkk657l";
+    })
+    (xsaPatch {
+      name = "206-4.8/0013-oxenstored-do-not-commit-read-only-transactions";
+      sha256 = "15985wl635w22dddjyx5l97b5p6m55mzv5ygk7xr0jx7mi192f9x";
+    })
+    (xsaPatch {
+      name = "206-4.8/0014-oxenstored-don-t-wake-to-issue-no-conflict-credit";
+      sha256 = "08672w4gaf2n3r8xy09h874gh5lg2vnrkjzq6xzvzdhdl092mipw";
+    })
+    (xsaPatch {
+      name = "206-4.8/0015-oxenstored-transaction-conflicts-improve-logging";
+      sha256 = "0ck98ms0py8wjsc38pbx6222x7n6l90zckfa7m7nnszsyc0sxxad";
+    })
+    (xsaPatch {
+      name = "206-4.8/0016-oxenstored-trim-history-in-the-frequent_ops-function";
+      sha256 = "014zs6i4gzrimn814k5i7gz66vbb0adkzr2qyai7i4fxc9h9r7w8";
+    })
+  ];
+
+  # 4.5 - 4.8
+  XSA_207 = (xsaPatch {
+    name = "207";
+    sha256 = "0wdlhijmw9mdj6a82pyw1rwwiz605dwzjc392zr3fpb2jklrvibc";
+  });
+
+  # 4.8
+  XSA_210 = (xsaPatch {
+    name = "210";
+    sha256 = "02mykxqxnsrd0sr4ij022j8y7618wzi2a6j6j761vx8qgmh11xai";
+  });
+
+  # 4.5 - 4.8
+  XSA_212 = (xsaPatch {
+    name = "212";
+    sha256 = "1ggjbbym5irq534a3zc86md9jg8imlpc9wx8xsadb9akgjrr1r8d";
+  });
+
+  # 4.5
+  XSA_213_45 = (xsaPatch {
+    name = "213-4.5";
+    sha256 = "1vnqf89ydacr5bq3d6z2r33xb2sn5vsd934rncyc28ybc9rvj6wm";
+  });
+
+  # 4.8
+  XSA_213 = (xsaPatch {
+    name = "213-4.8";
+    sha256 = "0ia3zr6r3bqy2h48fdy7p0iz423lniy3i0qkdvzgv5a8m80darr2";
+  });
+
+  # 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.6 - 4.8
+  XSA_217 = (xsaPatch {
+    name = "217";
+    sha256 = "1khs5ilif14dzcm7lmikjzkwsrfzlmir1rgrgzkc411gf18ylzmj";
+  });
+
+  # 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.8
+  XSA_218 = [
+    (xsaPatch {
+      name = "218-4.8/0001-gnttab-fix-unmap-pin-accounting-race";
+      sha256 = "0r363frai239r2wmwxi48kcr50gbk5l64nja0h9lppi3z2y3dkdd";
+    })
+    (xsaPatch {
+      name = "218-4.8/0002-gnttab-Avoid-potential-double-put-of-maptrack-entry";
+      sha256 = "07wm06i7frv7bsaykakx3g9h0hfqv96zcadvwf6wv194dggq1plc";
+    })
+    (xsaPatch {
+      name = "218-4.8/0003-gnttab-correct-maptrack-table-accesses";
+      sha256 = "0ad0irc3p4dmla8sp3frxbh2qciji1dipkslh0xqvy2hyf9p80y9";
+    })
+  ];
+
+  # 4.5
+  XSA_219_45 = (xsaPatch {
+    name = "219-4.5";
+    sha256 = "003msr5vhsc66scmdpgn0lp3p01g4zfw5vj86y5lw9ajkbaywdsm";
+  });
+
+  # 4.8
+  XSA_219 = (xsaPatch {
+    name = "219-4.8";
+    sha256 = "16q7kiamy86x8qdvls74wmq5j72kgzgdilryig4q1b21mp0ij1jq";
+  });
+
+  # 4.5
+  XSA_220_45 = (xsaPatch {
+    name = "220-4.5";
+    sha256 = "1dj9nn6lzxlipjb3nb7b9m4337fl6yn2bd7ap1lqrjn8h9zkk1pp";
+  });
+
+  # 4.8
+  XSA_220 = (xsaPatch {
+    name = "220-4.8";
+    sha256 = "0214qyqx7qap5y1pdi9fm0vz4y2fbyg71gaq36fisknj35dv2mh5";
+  });
+
+  # 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.8
+  XSA_222 = [
+    (xsaPatch {
+      name = "222-1";
+      sha256 = "0x02x4kqwfw255638fh2zcxwig1dy6kadlmqim1jgnjgmrvvqas2";
+    })
+    (xsaPatch {
+      name = "222-2-4.8";
+      sha256 = "1xhyp6q3c5l8djh965g1i8201m2wvhms8k886h4sn30hks38giin";
+    })
+  ];
+
+  # 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.8
+  XSA_224 = [
+    (xsaPatch {
+      name = "224-4.8/0001-gnttab-Fix-handling-of-dev_bus_addr-during-unmap";
+      sha256 = "1k326yan5811qzyvpdfkv801a19nyd09nsqayi8gyh58xx9c21m4";
+    })
+    (xsaPatch {
+      name = "224-4.8/0002-gnttab-never-create-host-mapping-unless-asked-to";
+      sha256 = "06nj1x59bbx9hrj26xmvbw8z805lfqhld9hm0ld0fs6dmcpqzcck";
+    })
+    (xsaPatch {
+      name = "224-4.8/0003-gnttab-correct-logic-to-get-page-references-during-m";
+      sha256 = "0kmag6fdsskgplcvzqp341yfi6pgc14wvjj58bp7ydb9hdk53qx2";
+    })
+    (xsaPatch {
+      name = "224-4.8/0004-gnttab-__gnttab_unmap_common_complete-is-all-or-noth";
+      sha256 = "1ww80pi7jr4gjpymkcw8qxmr5as18b2asdqv35527nqprylsff9f";
+    })
+  ];
+
+  # 4.6 - 4.8
+  XSA_225 = (xsaPatch {
+    name = "225";
+    sha256 = "0lcp2bs0r849xnvhrdf8s821v36cqdbzk8lwz6chrjhjalk6ha2g";
+  });
+
+  # 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.8 - 4.9
+  XSA_226 = [
+    (xsaPatch {
+      name = "226-4.9/0001-gnttab-dont-use-possibly-unbounded-tail-calls";
+      sha256 = "1hx47ppv5q33cw4dwp82lgvv4fp28gx7rxijw0iaczsv8bvb8vcg";
+    })
+    (xsaPatch {
+      name = "226-4.9/0002-gnttab-fix-transitive-grant-handling";
+      sha256 = "1gzp8m2zfihwlk71c3lqyd0ajh9h11pvkhzhw0mawckxy0qksvlc";
+    })
+  ];
+
+  # 4.5
+  XSA_227_45 = (xsaPatch {
+    name = "227-4.5";
+    sha256 = "1qfjfisgqm4x98qw54x2qrvgjnvvzizx9p1pjhcnsps9q6g1y3x8";
+  });
+
+  # 4.8 - 4.9
+  XSA_227 = (xsaPatch {
+    name = "227";
+    sha256 = "0zdcm43i5n08rh7rrnb0fcssvd4fgawwmizsa16w2ak7pzvgmg94";
+  });
+
+  # 4.8
+  XSA_228_48 = (xsaPatch {
+    name = "228-4.8";
+    sha256 = "085pnzwyv0rdb51hv5vhbhwfyxl0wg8sxcm912gjq8z7da5cv10n";
+  });
+
+  # 4.9
+  XSA_228 = (xsaPatch {
+    name = "228";
+    sha256 = "0c9nvfpnr5ira7ha3fszhvvh71nsxrvmzrab56xwjhl2dbw2yy23";
+  });
+
+  # 4.5 - 4.9
+  XSA_230 = (xsaPatch {
+    name = "230";
+    sha256 = "10x0j7wmzkrwycs1ng89fgjzvzh8vsdd4c5nb68b3j1azdx4ld83";
+  });
+
+  # 4.5
+  XSA_231_45 = (xsaPatch {
+    name = "231-4.5";
+    sha256 = "06gwx2f1lg51dfk2b4zxp7wv9c4pxdi87pg2asvmxqc78ir7l5s6";
+  });
+
+  # 4.8 - 4.9
+  XSA_231 = (xsaPatch {
+    name = "231-4.9";
+    sha256 = "09r8xxq2fd52wrk6i0y0sk3nbidfg6pzzrkx327hfmdjj76iyz3b";
+  });
+
+  # 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.8
+  XSA_234_48 = (xsaPatch {
+    name = "234-4.8";
+    sha256 = "08n1pf7z5y67dmay1ap39bi81clgkx82fpmfn7jsh8k4aw94jrsa";
+  });
+
+  # 4.9
+  XSA_234 = (xsaPatch {
+    name = "234-4.9";
+    sha256 = "1znmxg432is0virw8321gax8zqq2zcmi2pc5p2j31sixylixsvzx";
+  });
+
+  # 4.5
+  XSA_235_45 = (xsaPatch {
+    name = "235-4.5";
+    sha256 = "0hhgnql2gji111020z4wiyzg23wqs6ymanb67rg11p4qad1fp3ff";
+  });
+
+  # 4.8 - 4.9
+  XSA_235 = (xsaPatch {
+    name = "235-4.9";
+    sha256 = "1rj4jkmh79wm30jq9f8x65qv3al8l91zc3m5s23q0x6abn3pfb9z";
+  });
+
+  # 4.5
+  XSA_236_45 = (xsaPatch {
+    name = "236-4.5";
+    sha256 = "0hcla86x81wykssd2967gblp7fzx61290p4ls4v0hcyxdg2bs2yz";
+  });
+
+  # 4.8 - 4.9
+  XSA_236 = (xsaPatch {
+    name = "236-4.9";
+    sha256 = "0vqxy7mgflga05l33j3488fwxmdw3p9yxj4ylhk9n3nw8id72ghq";
+  });
+
+  # 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.8
+  XSA_237_48 = [
+    (xsaPatch {
+      name = "237-4.8/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device";
+      sha256 = "0qjisp37lwi2611mp7fbbm1s7m0bx726rrg79dnxs2mj0skw59iv";
+    })
+    (xsaPatch {
+      name = "237-4.8/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s";
+      sha256 = "05q1dny13jrqhjfwak7r635mqp9chpibjvn8b7d90japc1nzpq62";
+    })
+    (xsaPatch {
+      name = "237-4.8/0003-x86-MSI-disallow-redundant-enabling";
+      sha256 = "1907lv8nb2zhpb6k6jlw4m0hm0n0lyd69vfr3wpzbc56dn0w7jqd";
+    })
+    (xsaPatch {
+      name = "237-4.8/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error";
+      sha256 = "06nrq0bx3p9ipab2r1why6qm4g32dj0x5q24hfkwc6ih0l9xwf8h";
+    })
+    (xsaPatch {
+      name = "237-4.8/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook";
+      sha256 = "1nbg7bjw2hv55gnkhf6chkh35va6brs08acq1d5jxncl6kv0amc1";
+    })
+  ];
+
+  # 4.9
+  XSA_237 = [
+    (xsaPatch {
+      name = "237-4.9/0001-x86-dont-allow-MSI-pIRQ-mapping-on-unowned-device";
+      sha256 = "1cbl24mqxa62h0wgsnrpcs6y6vs53znzj7g8dfsbmf74xwrd4px6";
+    })
+    (xsaPatch {
+      name = "237-4.9/0002-x86-enforce-proper-privilege-when-mapping-pIRQ-s";
+      sha256 = "0p60148j18b78pxz0dx5ymh1gyrhg2cgmxq0jxmbk090bc4jql35";
+    })
+    (xsaPatch {
+      name = "237-4.9/0003-x86-MSI-disallow-redundant-enabling";
+      sha256 = "1907lv8nb2zhpb6k6jlw4m0hm0n0lyd69vfr3wpzbc56dn0w7jqd";
+    })
+    (xsaPatch {
+      name = "237-4.9/0004-x86-IRQ-conditionally-preserve-irq-pirq-mapping-on-error";
+      sha256 = "0q95z5641amni53agimnzbspva53p0hz5wl16zaz2yhnjasj5pzr";
+    })
+    (xsaPatch {
+      name = "237-4.9/0005-x86-FLASK-fix-unmap-domain-IRQ-XSM-hook";
+      sha256 = "0bnqx9w7ppgx8wxj2zw09z0rkv1jzn3r0bd76cz0r22wz29fsdp2";
+    })
+  ];
+
+  # 4.5
+  XSA_238_45 = (xsaPatch {
+    name = "238-4.5";
+    sha256 = "1x2fg5vfv5jc084h5gjm6fq0nxjpzvi96px3sqzz4pvsvy4y4i1z";
+  });
+
+  # 4.8 - 4.9
+  XSA_238 = (xsaPatch {
+    name = "238";
+    sha256 = "1cbmg1bi5ajh7qbwsl92ynaxw2c3p7i24p3wds81r4n93r0y5dxk";
+  });
+
+  # 4.5
+  XSA_239_45 = (xsaPatch {
+    name = "239-4.5";
+    sha256 = "06bi8q3973yajxsdj7pcqarvb56q2gisxdiy0cpbyffbmpkfv3h6";
+  });
+
+  # 4.8 - 4.9
+  XSA_239 = (xsaPatch {
+    name = "239";
+    sha256 = "1a9r8j7167s43ds5i7v7mm4y970vjnbhhkrjzpmzlcx8kcz96vh3";
+  });
+
+  # 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.8
+  XSA_240_48 = [
+    (xsaPatch {
+      name = "240-4.8/0001-x86-limit-linear-page-table-use-to-a-single-level";
+      sha256 = "0m44qhhqk2pdwqg8g28pypqrylq6iw00k9qrzf6qd0iza2y42kgj";
+    })
+    (xsaPatch {
+      name = "240-4.8/0002-x86-mm-Disable-PV-linear-pagetables-by-default";
+      sha256 = "1jd720wvngj9wq3fprdhakxvqlff0jd8zcx2pd3vsn2qvjbvr2gf";
+    })
+  ];
+
+  # 4.9
+  XSA_240 = [
+    (xsaPatch {
+      name = "240-4.9/0001-x86-limit-linear-page-table-use-to-a-single-level";
+      sha256 = "1759ni80aifakm44g4cc6pnmbcn1xjic8j66fvj0vibm0wqk6xck";
+    })
+    (xsaPatch {
+      name = "240-4.9/0002-x86-mm-Disable-PV-linear-pagetables-by-default";
+      sha256 = "0g6dpi006p5cjxw5d8h33p0429fdmdm6nqzj0m63ralpqvns3ib5";
+    })
+  ];
+
+  # 4.5 - 4.8
+  XSA_241 = (xsaPatch {
+    name = "241-4.8";
+    sha256 = "16zb75kzs98f4mdxhbyczk5mbh9dvn6j3yhfafki34x1dfdnq4pj";
+  });
+
+  # 4.9
+  XSA_241_49 = (xsaPatch {
+    name = "241-4.9";
+    sha256 = "0xlhin7wkhmlnbp9mqcbq3q4drdwb5la482ja9nwkhi8i867p6wc";
+  });
+
+  # 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.8
+  XSA_243_48 = (xsaPatch {
+    name = "243-4.8";
+    sha256 = "1q60zn55l9wpq45nrxh0av59sjz0jg8pkjm1gkyywkdsgg4fg5z4";
+  });
+
+  # 4.9
+  XSA_243 = (xsaPatch {
+    name = "243";
+    sha256 = "06fnbnh9zlsbkqih9ipnb7a8gly54m7lp17d854j1r370ad3c4yg";
+  });
+
+  # 4.5
+  XSA_244_45 = (xsaPatch {
+    name = "244-4.5";
+    sha256 = "05ci3vdl1ywfjpzcvsy1k52whxjk8pxzj7dh3r94yqasr56i5v2l";
+  });
+
+  # 4.8 - 4.9
+  XSA_244 = (xsaPatch {
+    name = "244";
+    sha256 = "10308xsgmhb0vg6fk0ql8v94zifv6dcv6vkaicryfp405yj2rzkm";
+  });
+
+  # 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.8 - 4.9
+  XSA_246 = [
+    (xsaPatch {
+      name = "246-4.9";
+      sha256 = "0z68vm0z5zvv9gm06pxs9kxq2q9fdbl0l0cm71ggzdplg1vw0snz";
+    })
+  ];
+
+  # 4.8
+  XSA_247_48 = [
+    (xsaPatch {
+      name = "247-4.8/0001-p2m-Always-check-to-see-if-removing-a-p2m-entry-actu";
+      sha256 = "0kvjrk90n69s721c2qj2df5raml3pjk6bg80aig353p620w6s3xh";
+    })
+    (xsaPatch {
+      name = "247-4.8/0002-p2m-Check-return-value-of-p2m_set_entry-when-decreas";
+      sha256 = "1s9kv6h6dd8psi5qf5l5gpk9qhq8blckwhl76cjbldcgi6imb3nr";
+    })
+  ];
+
+  # 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.8
+  XSA_248_48 = [
+    (xsaPatch {
+      name = "248-4.8";
+      sha256 = "1ycw29q22ymxg18kxpr5p7vhpmp8klssbp5gq77hspxzz2mb96q1";
+    })
+  ];
+
+  # 4.5 .. 4.9
+  XSA_249 = [
+   (xsaPatch {
+      name = "249";
+      sha256 = "0v6ngzqhkz7yv4n83xlpxfbkr2qyg5b1cds7ikkinm86hiqy6agl";
+    })
+  ];
+  # 4.5
+  XSA_250_45 = [
+   (xsaPatch {
+      name = "250-4.5";
+      sha256 = "0pqldl6qnl834gvfp90z247q9xcjh3835s2iffnajz7jhjb2145d";
+    })
+  ];
+  # 4.8 ...
+  XSA_250 = [
+   (xsaPatch {
+      name = "250";
+      sha256 = "1wpigg8kmha57sspqqln3ih9nbczsw6rx3v72mc62lh62qvwd7x8";
+    })
+  ];
+  # 4.5
+  XSA_251_45 = [
+   (xsaPatch {
+      name = "251-4.5";
+      sha256 = "0lc94cx271z09r0mhxaypyd9d4740051p28idf5calx5228dqjgm";
+    })
+  ];
+  # 4.8
+  XSA_251_48 = [
+   (xsaPatch {
+      name = "251-4.8";
+      sha256 = "079wi0j6iydid2zj7k584w2c393kgh588w7sjz2nn4039qn8k9mq";
+    })
+  ];
+  # 4.8
+  XSA_252_49 = [
+   (xsaPatch {
+      name = "252-4.9";
+      sha256 = "03sbn90nlkk5ba1n168rxjkc7x3mqj7rfqvspbwblmwikfbnms2n";
+    })
+  ];
+  # 4.8
+  XSA_255_49_1= [
+   (xsaPatch {
+      name = "255-4.9-1";
+      sha256 = "0gbin7yxbkq40lvm3gvj1vffavvbng3zpd2m8l1kqyz0rv4vm9zc";
+    })
+  ];
+  # 4.8
+  XSA_255_49_2= [
+   (xsaPatch {
+      name = "255-4.9-2";
+      sha256 = "0fyg5nnyfpfr80qq83pr64zjp5w1nx94bdblzsjap8gaqcahyr12";
+    })
+  ];
+  # 4.8
+  XSA_256_48= [
+   (xsaPatch {
+      name = "256-4.8";
+      sha256 = "1w84f717kxwx0h3rw18r4f8pl0l1h5xlj5fy80sr0ws4xkp1qdn4";
+    })
+  ];
+
+
+  # 4.10
+  XSA_252 = [
+   (xsaPatch {
+      name = "252";
+      sha256 = "0v4sg20dnvnwrjh3x69gk81v2kmcql7g2s044vg3wcxhzvij1rrn";
+    })
+  ];
+
+  # 4.10
+  XSA_253 = [
+   (xsaPatch {
+      name = "253";
+      sha256 = "0445vzlzy3gd499xraqh5r4qjar6qr0y3813h22jy1n84nhxz27i";
+    })
+  ];
+
+  # 4.10
+  XSA_255_1 = [
+   (xsaPatch {
+      name = "255-1";
+      sha256 = "05g2f3ji1rrjlw3yw4nrns50pnmsib8ybrf64scr1817mj0q9myr";
+    })
+  ];
+
+  # 4.10
+  XSA_255_2 = [
+   (xsaPatch {
+      name = "255-2";
+      sha256 = "08wbngw5z0f9g8di59hww3hhi7j9z49bpc4xlwn5akfcwbgf0961";
+    })
+  ];
+
+  # 4.10
+  XSA_256 = [
+   (xsaPatch {
+      name = "256";
+      sha256 = "1hicwhbwj6k25px55f4ncx1c5xiihi8pfvsb3kv57k7kaicb7pza";
+    })
+  ];
+
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/xhyve/default.nix b/nixpkgs/pkgs/applications/virtualization/xhyve/default.nix
new file mode 100644
index 000000000000..2a685c590fa8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/xhyve/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, lib, fetchurl, Hypervisor, vmnet, xpc, libobjc }:
+
+stdenv.mkDerivation rec {
+  name    = "xhyve-${version}";
+  version = "1f1dbe305";
+
+  src = fetchurl {
+    url    = "https://github.com/mist64/xhyve/archive/1f1dbe3059904f885e4ab2b3328f4bb350ea5c37.tar.gz";
+    sha256 = "0hfix8yr90szlv2yyqb2rlq5qsrxyam8kg52sly0adja0cpwfjvx";
+  };
+
+  buildInputs = [ Hypervisor vmnet xpc libobjc ];
+
+  # 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 = {
+    description = "Lightweight Virtualization on macOS Based on bhyve";
+    homepage = https://github.com/mist64/xhyve;
+    maintainers = [ lib.maintainers.lnl7 ];
+    platforms = lib.platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/2bwm/default.nix b/nixpkgs/pkgs/applications/window-managers/2bwm/default.nix
new file mode 100644
index 000000000000..116180f5ec36
--- /dev/null
+++ b/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.2";
+  name = "2bwm-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "venam";
+    repo   = "2bwm";
+    rev    = "v${version}";
+    sha256 = "1la1ixpm5knsj2gvdcmxzj1jfbzxvhmgzps4f5kbvx5047xc6ici";
+  };
+
+  # 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/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix b/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix
new file mode 100644
index 000000000000..46a86da1d66b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/afterstep/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, pkgconfig
+, libjpeg, libtiff, libpng, freetype
+, fltk, gtk
+, libX11, libXext, libICE
+, dbus
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "afterstep-${version}";
+  version = "2.2.12";
+  sourceName = "AfterStep-${version}";
+
+  src = fetchurl {
+    urls = [ "ftp://ftp.afterstep.org/stable/${sourceName}.tar.bz2" ];
+    sha256 = "1j7vkx1ig4kzwffdxnkqv3kld9qi3sam4w2nhq18waqjsi8xl5gz";
+  };
+
+  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/nixpkgs/pkgs/applications/window-managers/awesome/default.nix b/nixpkgs/pkgs/applications/window-managers/awesome/default.nix
new file mode 100644
index 000000000000..8823daaa6d90
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/awesome/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchFromGitHub, luaPackages, cairo, librsvg, cmake, imagemagick, pkgconfig, gdk_pixbuf
+, xorg, libstartup_notification, libxdg_basedir, libpthreadstubs
+, xcb-util-cursor, makeWrapper, pango, gobject-introspection, unclutter
+, compton, procps, iproute, coreutils, curl, alsaUtils, findutils, xterm
+, which, dbus, nettools, git, asciidoc, doxygen
+, xmlto, docbook_xml_dtd_45, docbook_xsl, findXMLCatalogs
+, libxkbcommon, xcbutilxrm, hicolor-icon-theme
+}:
+
+with luaPackages; stdenv.mkDerivation rec {
+  name = "awesome-${version}";
+  version = "4.2";
+
+  src = fetchFromGitHub {
+    owner = "awesomewm";
+    repo = "awesome";
+    rev = "v${version}";
+    sha256 = "1pcgagcvm6rdky8p8dd810j3ywaz0ncyk5xgaykslaixzrq60kff";
+  };
+
+  nativeBuildInputs = [
+    asciidoc
+    cmake
+    doxygen
+    imagemagick
+    makeWrapper
+    pkgconfig
+    xmlto docbook_xml_dtd_45
+    docbook_xsl findXMLCatalogs
+  ];
+
+  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 ];
+
+  #cmakeFlags = "-DGENERATE_MANPAGES=ON";
+  cmakeFlags = "-DOVERRIDE_VERSION=${version}";
+
+  GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
+  LUA_CPATH = "${lgi}/lib/lua/${lua.luaversion}/?.so";
+  LUA_PATH  = "${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua";
+
+  postInstall = ''
+    wrapProgram $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" \
+      --prefix PATH : "${stdenv.lib.makeBinPath [ compton unclutter procps iproute coreutils curl alsaUtils findutils xterm ]}"
+
+    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 ndowens ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/bevelbar/default.nix b/nixpkgs/pkgs/applications/window-managers/bevelbar/default.nix
new file mode 100644
index 000000000000..582f9cb61f8e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/bevelbar/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libX11, libXrandr, libXft }:
+
+stdenv.mkDerivation rec {
+  name = "bevelbar-${version}";
+  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/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix b/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix
new file mode 100644
index 000000000000..dc57ad13d414
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libxcb, libXinerama
+, xcbutil, xcbutilkeysyms, xcbutilwm
+}:
+
+stdenv.mkDerivation rec {
+  name = "bspwm-${version}";
+  version = "0.9.5";
+
+  src = fetchFromGitHub {
+    owner  = "baskerville";
+    repo   = "bspwm";
+    rev    = version;
+    sha256 = "09h3g1rxxjyw861mk32lj774nmwkx8cwxq4wfgmf4dpbizymvhhr";
+  };
+
+  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/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix b/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix
new file mode 100644
index 000000000000..09c7c8e0e088
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/bspwm/unstable.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, libxcb, libXinerama, xcbutil, xcbutilkeysyms, xcbutilwm }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/window-managers/btops/default.nix b/nixpkgs/pkgs/applications/window-managers/btops/default.nix
new file mode 100644
index 000000000000..f55c55110a29
--- /dev/null
+++ b/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 {
+  name = "btops-${version}";
+  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/nixpkgs/pkgs/applications/window-managers/btops/deps.nix b/nixpkgs/pkgs/applications/window-managers/btops/deps.nix
new file mode 100644
index 000000000000..a893d40e2107
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/clfswm/default.nix b/nixpkgs/pkgs/applications/window-managers/clfswm/default.nix
new file mode 100644
index 000000000000..cc00f1e4b6e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/clfswm/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchgit, autoconf, sbcl, lispPackages, xdpyinfo, texinfo4
+, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/window-managers/clfswm/require-clx.patch b/nixpkgs/pkgs/applications/window-managers/clfswm/require-clx.patch
new file mode 100644
index 000000000000..ae2234461d25
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/compton/default.nix b/nixpkgs/pkgs/applications/window-managers/compton/default.nix
new file mode 100644
index 000000000000..138451656667
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/compton/default.nix
@@ -0,0 +1,83 @@
+{ stdenv, lib, fetchFromGitHub, pkgconfig, asciidoc, docbook_xml_dtd_45
+, docbook_xsl, libxslt, libxml2, makeWrapper
+, dbus, libconfig, libdrm, libGL, pcre, libX11, libXcomposite, libXdamage
+, libXinerama, libXrandr, libXrender, libXext, xwininfo }:
+
+let
+  common = source: stdenv.mkDerivation (source // rec {
+    name = "${source.pname}-${source.version}";
+
+    buildInputs = [
+      dbus libX11 libXcomposite libXdamage libXrender libXrandr libXext
+      libXinerama libdrm pcre libxml2 libxslt libconfig libGL
+    ];
+
+    nativeBuildInputs = [
+      pkgconfig
+      asciidoc
+      docbook_xml_dtd_45
+      docbook_xsl
+      makeWrapper
+    ];
+
+    installFlags = [ "PREFIX=$(out)" ];
+
+    postInstall = ''
+      wrapProgram $out/bin/compton-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;
+      maintainers = with maintainers; [ ertes enzime twey ];
+      platforms = platforms.linux;
+    };
+  });
+
+  stableSource = rec {
+    pname = "compton";
+    version = "0.1_beta2.5";
+
+    COMPTON_VERSION = version;
+
+    src = fetchFromGitHub {
+      owner = "chjj";
+      repo = "compton";
+      rev = "b7f43ee67a1d2d08239a2eb67b7f50fe51a592a8";
+      sha256 = "1p7ayzvm3c63q42na5frznq3rlr1lby2pdgbvzm1zl07wagqss18";
+    };
+
+    meta = {
+      homepage = https://github.com/chjj/compton/;
+    };
+  };
+
+  gitSource = rec {
+    pname = "compton-git";
+    version = "2";
+
+    COMPTON_VERSION = "v${version}";
+
+    src = fetchFromGitHub {
+      owner  = "yshui";
+      repo   = "compton";
+      rev    = COMPTON_VERSION;
+      sha256 = "1b6jgkkjbmgm7d7qjs94h722kgbqjagcxznkh2r84hcmcl8pibjq";
+    };
+
+    meta = {
+      homepage = https://github.com/yshui/compton/;
+    };
+  };
+in {
+  compton = common stableSource;
+  compton-git = common gitSource;
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/cwm/default.nix b/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
new file mode 100644
index 000000000000..0b611906a466
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libX11, libXinerama, libXrandr, libXft, yacc, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "cwm-5.6";
+
+  src = fetchFromGitHub {
+      owner = "chneukirchen";
+      repo = "cwm";
+      rev = "b7a8c11750d11721a897fdb8442d52f15e7a24a0";
+      sha256 = "0a0x8rgqif4kxy7hj70hck7jma6c8jy4428ybl8fz9qxgxh014ml";
+  };
+
+  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/chneukirchen/cwm;
+    maintainers = [];
+    license     = licenses.isc;
+    platforms   = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/dwm/default.nix b/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
new file mode 100644
index 000000000000..f18afb935278
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, libX11, libXinerama, libXft, patches ? []}:
+
+let
+  name = "dwm-6.1";
+in
+stdenv.mkDerivation {
+  inherit name;
+ 
+  src = fetchurl {
+    url = "https://dl.suckless.org/dwm/${name}.tar.gz";
+    sha256 = "1zkmwb6df6m254shx06ly90c0q4jl70skk1pvkixpb7hcxhwbxn2";
+  };
+ 
+  buildInputs = [ libX11 libXinerama libXft ];
+ 
+  prePatch = ''sed -i "s@/usr/local@$out@" config.mk'';
+
+  # Allow users set their own list of patches
+  inherit patches;
+
+  buildPhase = " make ";
+ 
+  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/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix b/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
new file mode 100644
index 000000000000..2a8f1d67f6e0
--- /dev/null
+++ b/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 {
+  name = "dwm-status-${version}";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "Gerschtli";
+    repo = "dwm-status";
+    rev = version;
+    sha256 = "02gvlxv6ylx4mdkf59crm2zyahiz1zd4cr5zz29dnhx7r7738i9a";
+  };
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+  buildInputs = [ dbus gdk_pixbuf libnotify xorg.libX11 ];
+
+  cargoSha256 = "1khknf1bjs80cc2n4jnpilf8cc15crykhhyvvff6q4ay40353gr6";
+
+  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/nixpkgs/pkgs/applications/window-managers/dwm/git.nix b/nixpkgs/pkgs/applications/window-managers/dwm/git.nix
new file mode 100644
index 000000000000..aaa32dd6b11b
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix b/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix
new file mode 100644
index 000000000000..7bc76d5c2bfb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/dzen2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, pkgconfig, libX11, libXft, libXinerama, libXpm }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix b/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
new file mode 100644
index 000000000000..56ae70dce086
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl,  libX11, libXext, libXrandr, libXrender,
+  xproto, xextproto, randrproto, renderproto, kbproto,  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
+                  xproto xextproto randrproto renderproto kbproto ];
+
+  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/nixpkgs/pkgs/applications/window-managers/fbpanel/default.nix b/nixpkgs/pkgs/applications/window-managers/fbpanel/default.nix
new file mode 100644
index 000000000000..0c13691a36ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/fbpanel/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig
+, libX11, libXmu, libXpm, gtk2, libpng, libjpeg, libtiff, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  name = "fbpanel-${version}";
+  version = "6.1";
+  src = fetchurl {
+    url = "mirror://sourceforge/fbpanel/${name}.tbz2";
+    sha256 = "e14542cc81ea06e64dd4708546f5fd3f5e01884c3e4617885c7ef22af8cf3965";
+  };
+  buildInputs =
+    [ pkgconfig libX11 libXmu libXpm gtk2 libpng libjpeg libtiff librsvg ];
+
+  preConfigure = "patchShebangs .";
+
+  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/nixpkgs/pkgs/applications/window-managers/fluxbox/default.nix b/nixpkgs/pkgs/applications/window-managers/fluxbox/default.nix
new file mode 100644
index 000000000000..47febfa00e93
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/fluxbox/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, pkgconfig
+, freetype, fribidi
+, libXext, libXft, libXpm, libXrandr, libXrender, xextproto
+, libXinerama
+, imlib2 }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+  name = "fluxbox-${version}";
+  version = "1.3.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fluxbox/${name}.tar.xz";
+    sha256 = "1h1f70y40qd225dqx937vzb4k2cz219agm1zvnjxakn5jkz7b37w";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ freetype fribidi libXext libXft libXpm libXrandr libXrender xextproto 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/nixpkgs/pkgs/applications/window-managers/fvwm/default.nix b/nixpkgs/pkgs/applications/window-managers/fvwm/default.nix
new file mode 100644
index 000000000000..20a95f36cee3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/fvwm/default.nix
@@ -0,0 +1,34 @@
+{ 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.8";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/fvwmorg/fvwm/releases/download/${version}/${name}.tar.gz";
+    sha256 = "0hgkkdzcqjnaabvv9cnh0bz90nnjskbhjg9qnzpi2x0mbliwjdpv";
+  };
+
+  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/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix b/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
new file mode 100644
index 000000000000..d49c893ca145
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/herbstluftwm/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, glib, libX11, libXext, libXinerama }:
+
+stdenv.mkDerivation rec {
+  name = "herbstluftwm-0.7.1";
+
+  src = fetchurl {
+    url = "https://herbstluftwm.org/tarballs/${name}.tar.gz";
+    sha256 = "0d47lbjxxqd8d96hby47bdhyn9mlih7h28712j1vckiz05ig63nw";
+  };
+
+  patchPhase = ''
+    substituteInPlace config.mk \
+      --replace "/usr/local" "$out" \
+      --replace "/etc" "$out/etc" \
+      --replace "/zsh/functions/Completion/X" "/zsh/site-functions" \
+      --replace "/usr/share" "\$(PREFIX)/share"
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib libX11 libXext libXinerama ];
+
+  meta = {
+    description = "A manual tiling window manager for X";
+    homepage = http://herbstluftwm.org/;
+    license = stdenv.lib.licenses.bsd2;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix b/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
new file mode 100644
index 000000000000..83fe3ef163a3
--- /dev/null
+++ b/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 {
+  name = "i3blocks-gaps-${version}";
+  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/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix b/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix
new file mode 100644
index 000000000000..88bf7762dd87
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix
@@ -0,0 +1,59 @@
+{ fetchurl, stdenv, perl, makeWrapper
+, iproute, acpi, sysstat, xset, playerctl
+, cmus, openvpn, lm_sensors, alsaUtils
+, scripts ? [ "bandwidth" "battery" "cpu_usage" "disk" "iface"
+              "keyindicator" "load_average" "mediaplayer" "memory"
+	            "openvpn" "temperature" "volume" "wifi" ]
+}:
+
+with stdenv.lib;
+
+let
+  perlscripts = [ "battery" "cpu_usage" "keyindicator"
+                  "mediaplayer" "openvpn" "temperature" ];
+  contains_any = l1: l2: 0 < length( intersectLists l1 l2 );
+
+in
+stdenv.mkDerivation rec {
+  name = "i3blocks-${version}";
+  version = "1.4";
+
+  src = fetchurl {
+    url = "https://github.com/vivien/i3blocks/releases/download/${version}/${name}.tar.gz";
+    sha256 = "c64720057e22cc7cac5e8fcd58fd37e75be3a7d5a3cb8995841a7f18d30c0536";
+  };
+
+  buildFlags = "SYSCONFDIR=/etc 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/keyindicator \
+      --prefix PATH : ${makeBinPath (optional (elem "keyindicator" scripts) xset)}
+    wrapProgram $out/libexec/i3blocks/mediaplayer \
+      --prefix PATH : ${makeBinPath (optionals (elem "mediaplayer" scripts) [playerctl cmus])}
+    wrapProgram $out/libexec/i3blocks/openvpn \
+      --prefix PATH : ${makeBinPath (optional (elem "openvpn" scripts) openvpn)}
+    wrapProgram $out/libexec/i3blocks/temperature \
+      --prefix PATH : ${makeBinPath (optional (elem "temperature" scripts) lm_sensors)}
+    wrapProgram $out/libexec/i3blocks/volume \
+      --prefix PATH : ${makeBinPath (optional (elem "volume" scripts) alsaUtils)}
+  '';
+
+  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/nixpkgs/pkgs/applications/window-managers/i3/default.nix b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
new file mode 100644
index 000000000000..2e18636c621b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
@@ -0,0 +1,74 @@
+{ fetchurl, stdenv, which, pkgconfig, makeWrapper, libxcb, xcbutilkeysyms
+, xcbutil, xcbutilwm, xcbutilxrm, libstartup_notification, libX11, pcre, libev
+, yajl, xcb-util-cursor, perl, pango, perlPackages, libxkbcommon
+, xorgserver, xvfb_run }:
+
+stdenv.mkDerivation rec {
+  name = "i3-${version}";
+  version = "4.16";
+
+  src = fetchurl {
+    url = "https://i3wm.org/downloads/${name}.tar.bz2";
+    sha256 = "1d2mnryn7m9c6d69awd7lwzadliapd0ahi5n8d0ppqy533ssaq6c";
+  };
+
+  nativeBuildInputs = [ which pkgconfig makeWrapper ];
+
+  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
+
+    install -vD -t $out/share/man/man1 man/*.{1,man}
+  '';
+
+  separateDebugInfo = true;
+
+  meta = with stdenv.lib; {
+    description = "A tiling window manager";
+    homepage    = "https://i3wm.org";
+    maintainers = with maintainers; [ garbas modulistic fpletz ];
+    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/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix b/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix
new file mode 100644
index 000000000000..f72ef13173ca
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, pkgconfig, xproto, libxcb, xcbutilkeysyms
+, xorg , i3ipc-glib , glib
+}:
+
+stdenv.mkDerivation rec {
+  name = "i3easyfocus-${version}";
+  version = "20180622";
+
+  src = fetchFromGitHub {
+    owner = "cornerman";
+    repo = "i3-easyfocus";
+    rev = "3631d5af612d58c3d027f59c86b185590bd78ae1";
+    sha256 = "1wgknmmm7iz0wxsdh29gmx4arizva9101pzhnmac30bmixf3nzhr";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxcb xcbutilkeysyms xproto 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/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix b/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
new file mode 100644
index 000000000000..01a89b49e715
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
@@ -0,0 +1,38 @@
+{ fetchurl, stdenv, i3, autoreconfHook }:
+
+i3.overrideAttrs (oldAttrs : rec {
+
+  name = "i3-gaps-${version}";
+  version = "4.16";
+  releaseDate = "2018-03-13";
+
+  src = fetchurl {
+    url = "https://github.com/Airblader/i3/archive/${version}.tar.gz";
+    sha256 = "16d215y9g27b75rifm1cgznxg73fmg5ksigi0gbj7pfd6x6bqcy9";
+  };
+
+  nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ autoreconfHook ];
+
+  postUnpack = ''
+      echo -n "${version} (${releaseDate})" > ./i3-${version}/I3_VERSION
+  '';
+
+  # 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/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix b/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix
new file mode 100644
index 000000000000..6f709c999f40
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, pkgconfig, xproto, libxcb
+, autoreconfHook, json-glib, gtk-doc, which
+, gobject-introspection
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "i3ipc-glib-${version}";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "acrisci";
+    repo = "i3ipc-glib";
+    rev = "v${version}";
+    sha256 = "1gmk1zjafrn6jh4j7r0wkwrpwvf9drl1lcw8vya23i1f4zbk0wh4";
+  };
+
+  nativeBuildInputs = [ autoreconfHook which pkgconfig ];
+
+  buildInputs = [ libxcb json-glib gtk-doc xproto 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/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix b/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
new file mode 100644
index 000000000000..8c775833c28a
--- /dev/null
+++ b/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";
+  name = "i3lock-color-${version}";
+
+  src = fetchFromGitHub {
+    owner = "PandorasFox";
+    repo = "i3lock-color";
+    rev = version;
+    sha256 = "08fhnchf187b73h52xgzb86g6byzxz085zs9galsvl687g5zxk34";
+  };
+
+  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; [ garbas 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/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix b/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix
new file mode 100644
index 000000000000..e28a9cf75be8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, coreutils, scrot, imagemagick, gawk
+, i3lock-color, getopt, fontconfig
+}:
+
+stdenv.mkDerivation rec {
+  rev = "3734fba160166006521e513f5734eb76ac6aa48f";
+  name = "i3lock-fancy-unstable-2017-12-14_rev${builtins.substring 0 7 rev}";
+  src = fetchFromGitHub {
+    owner = "meskarune";
+    repo = "i3lock-fancy";
+    inherit rev;
+    sha256 = "1bg4xds2hmbq8rp6azbdqvgp1aaq5y1bp05cfwqqm6y3sjw7ywzl";
+  };
+  patchPhase = ''
+    sed -i -e "s|(mktemp)|(${coreutils}/bin/mktemp)|" lock
+    sed -i -e "s|'rm -f |'${coreutils}/bin/rm -f |" lock
+    sed -i -e "s|scrot -z |${scrot}/bin/scrot -z |" lock
+    sed -i -e "s|convert |${imagemagick.out}/bin/convert |" lock
+    sed -i -e "s|awk -F|${gawk}/bin/awk -F|" lock
+    sed -i -e "s| awk | ${gawk}/bin/awk |" lock
+    sed -i -e "s|i3lock -i |${i3lock-color}/bin/i3lock-color -i |" lock
+    sed -i -e 's|icon="$scriptpath/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' lock
+    sed -i -e 's|icon="$scriptpath/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|' lock
+    sed -i -e "s|getopt |${getopt}/bin/getopt |" lock
+    sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" lock
+    sed -i -e "s|shot=(import -window root)|shot=(${scrot}/bin/scrot -z)|" lock
+  '';
+  installPhase = ''
+    mkdir -p $out/bin $out/share/i3lock-fancy/icons
+    cp lock $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; [ garbas ];
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/lock.nix b/nixpkgs/pkgs/applications/window-managers/i3/lock.nix
new file mode 100644
index 000000000000..d4bb3cdc1c2e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/lock.nix
@@ -0,0 +1,37 @@
+{ fetchurl, stdenv, which, pkgconfig, libxcb, xcbutilkeysyms, xcbutilimage,
+  pam, libX11, libev, cairo, libxkbcommon, libxkbfile }:
+
+stdenv.mkDerivation rec {
+  name = "i3lock-${version}";
+  version = "2.10";
+
+  src = fetchurl {
+    url = "https://i3wm.org/i3lock/${name}.tar.bz2";
+    sha256 = "1vn8828ih7mpdl58znfnzpdwdgwksq16rghm5qlppbbz66zk5sr9";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ which libxcb xcbutilkeysyms xcbutilimage 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; [ garbas malyn domenkozar ];
+    license = licenses.bsd3;
+    platforms = platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/pystatus.nix b/nixpkgs/pkgs/applications/window-managers/i3/pystatus.nix
new file mode 100644
index 000000000000..1fed92764c10
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/pystatus.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, libpulseaudio, python3Packages, extraLibs ? [] }:
+
+python3Packages.buildPythonApplication rec {
+  # i3pystatus moved to rolling release:
+  # https://github.com/enkore/i3pystatus/issues/584
+  version = "unstable-2018-04-11";
+  pname = "i3pystatus";
+  disabled = !python3Packages.isPy3k;
+
+  src = fetchFromGitHub
+  {
+    owner = "enkore";
+    repo = "i3pystatus";
+    rev = "3efbd56bb7a851f16173ec6f0eef472b6e96c7cc";
+    sha256 = "0r4mc23chxlaym7jcjnflw7mn5nbw3q8q4ix0nim7lh98yfndd3b";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ keyring colour netifaces praw psutil basiciw ] ++
+    [ libpulseaudio ] ++ extraLibs;
+
+  libpulseaudioPath = stdenv.lib.makeLibraryPath [ libpulseaudio ];
+  ldWrapperSuffix = "--suffix LD_LIBRARY_PATH : \"${libpulseaudioPath}\"";
+  # LC_TIME != C results in locale.Error: unsupported locale setting
+  makeWrapperArgs = [ "--set LC_TIME C" ldWrapperSuffix ]; # libpulseaudio.so is loaded manually
+
+  postInstall = ''
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/${pname}-python-interpreter \
+      --prefix PYTHONPATH : "$PYTHONPATH" \
+      ${ldWrapperSuffix}
+  '';
+
+  # 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/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix b/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
new file mode 100644
index 000000000000..0e3168a5782d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/status-rust.nix
@@ -0,0 +1,27 @@
+{ stdenv, rustPlatform, fetchFromGitHub, pkgconfig, dbus }:
+
+rustPlatform.buildRustPackage rec {
+  name = "i3status-rust-${version}";
+  version = "0.9.0.2018-10-02";
+
+  src = fetchFromGitHub {
+    owner = "greshake";
+    repo = "i3status-rust";
+    rev = "11c2a21693ffcd0b6c2e0ac919b2232918293963";
+    sha256 = "019m9qpw7djq6g7lzbm7gjcavlgsp93g3cd7cb408nxnfsi7i9dp";
+  };
+
+  cargoSha256 = "1wnify730f7c3cb8wllqvs7pzrq54g5x81xspvz5gq0iqr0q38zc";
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ dbus ];
+
+  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 = [ maintainers.backuitist ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/status.nix b/nixpkgs/pkgs/applications/window-managers/i3/status.nix
new file mode 100644
index 000000000000..65180846c649
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/status.nix
@@ -0,0 +1,25 @@
+{ fetchurl, stdenv, libconfuse, yajl, alsaLib, libpulseaudio, libnl, pkgconfig
+  }:
+
+stdenv.mkDerivation rec {
+  name = "i3status-2.12";
+
+  src = fetchurl {
+    url = "https://i3wm.org/i3status/${name}.tar.bz2";
+    sha256 = "06krpbijv4yi33nypg6qcn4hilcrdyarsdpd9fmr2cq46qaqiikg";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libconfuse yajl alsaLib libpulseaudio libnl ];
+
+  makeFlags = [ "all" "PREFIX=$(out)" ];
+
+  meta = {
+    description = "A tiling window manager";
+    homepage = https://i3wm.org;
+    maintainers = [ stdenv.lib.maintainers.garbas ];
+    license = stdenv.lib.licenses.bsd3;
+    platforms = stdenv.lib.platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix b/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix
new file mode 100644
index 000000000000..39bd62cd5aa9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  pname = "i3-wk-switch";
+  version = "2017-08-21";
+
+  # https://github.com/tmfink/i3-wk-switch/commit/484f840bc4c28ddc60fa3be81e2098f7689e78fb
+  src = fetchFromGitHub {
+    owner = "tmfink";
+    repo = pname;
+    rev = "484f840";
+    sha256 = "0nrc13ld5bx07wrgnpzgpbaixb4rpi93xiapvyb8srd49fj9pcmb";
+  };
+
+  propagatedBuildInputs = with python2Packages; [ i3-py ];
+
+  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";
+    maintainers = with maintainers; [ synthetica ];
+    platforms = platforms.linux;
+    license = licenses.mit;
+    homepage = https://travisf.net/i3-wk-switcher;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix b/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
new file mode 100644
index 000000000000..546589623cbd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, rustPlatform,
+  xorg, python3, pkgconfig, cairo, libxkbcommon }:
+let
+  pname = "wmfocus";
+  version = "1.0.2";
+in
+rustPlatform.buildRustPackage {
+  inherit pname version;
+  name = "${pname}-${version}";
+
+  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"];
+
+  src = fetchFromGitHub {
+    owner = "svenstaro";
+    repo = pname;
+    rev = version;
+    sha256 = "14yxg2jiqx7gng677sbmvv0a0msb9wpvp3qh8h3nkq0vi17ds668";
+  };
+
+  cargoSha256 = "0lwzw8gf970ybblaxxkwn3pxrncxp0hhvykffbzirs7fic4fnvsg";
+
+  meta = with stdenv.lib; {
+    description = ''
+      Tool that allows you to rapidly choose a specific window directly
+      without having to use the mouse or directional keyboard navigation.
+    '';
+    maintainers = with maintainers; [ synthetica ];
+    platforms = platforms.linux;
+    license = licenses.mit;
+    homepage = https://github.com/svenstaro/wmfocus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/icewm/default.nix b/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
new file mode 100644
index 000000000000..8406736541c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, cmake, gettext
+, libjpeg, libtiff, libungif, libpng, imlib, expat
+, freetype, fontconfig, pkgconfig, gdk_pixbuf
+, mkfontdir, libX11, libXft, libXext, libXinerama
+, libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb
+, libpthreadstubs, pcre }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "icewm-${version}";
+  version = "1.4.2";
+
+  buildInputs =
+  [ cmake gettext libjpeg libtiff libungif libpng imlib expat
+    freetype fontconfig pkgconfig gdk_pixbuf mkfontdir libX11
+    libXft libXext libXinerama libXrandr libICE libSM libXpm
+    libXdmcp libxcb libpthreadstubs pcre ];
+
+  src = fetchurl {
+    url = "https://github.com/bbidulock/icewm/archive/${version}.tar.gz";
+    sha256 = "05chzjjnb4n4j05ld2gmhhr07c887qb4j9inwg9izhvml51af1bw";
+  };
+
+  preConfigure = ''
+    export cmakeFlags="-DPREFIX=$out -DCFGDIR=/etc/icewm"
+  '';
+
+  patches = [ ./fix-strlcat_strlcpy.patch ] ++
+    stdenv.lib.optional stdenv.hostPlatform.isMusl ./musl.patch;
+
+  patchFlags = [ "-p0" ];
+
+  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 = http://www.icewm.org/;
+    license = licenses.lgpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch b/nixpkgs/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch
new file mode 100644
index 000000000000..9721e125b051
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/icewm/fix-strlcat_strlcpy.patch
@@ -0,0 +1,236 @@
+--- src/apppstatus.cc	2017-07-30 10:59:06.000000000 +0200
++++ src/apppstatus.cc	2017-08-09 09:12:54.332052762 +0200
+@@ -366,7 +366,7 @@
+             sscanf(p, "%s %s %s %s %s", val[0], val[1], val[2], val[3], val[4]);
+             for (i = 0; i < 4; i++) {
+                 if (strncmp(val[i+1], "?", 1) != 0)
+-                    strlcpy(phoneNumber, val[i+1], sizeof phoneNumber);
++                    my_strlcpy(phoneNumber, val[i+1], sizeof phoneNumber);
+             }
+         }
+ 
+--- src/base.h	2017-07-30 10:59:06.000000000 +0200
++++ src/base.h	2017-08-09 09:11:13.082025484 +0200
+@@ -44,9 +44,9 @@
+ /*** String Functions *********************************************************/
+ 
+ /* Prefer this as a safer alternative over strcpy. Return strlen(from). */
+-size_t strlcpy(char *dest, const char *from, size_t dest_size);
++size_t my_strlcpy(char *dest, const char *from, size_t dest_size);
+ /* Prefer this over strcat. Return strlen(dest) + strlen(from). */
+-size_t strlcat(char *dest, const char *from, size_t dest_size);
++size_t my_strlcat(char *dest, const char *from, size_t dest_size);
+ 
+ char *newstr(char const *str);
+ char *newstr(char const *str, int len);
+--- src/gnome2.cc	2017-07-30 10:59:06.000000000 +0200
++++ src/gnome2.cc	2017-08-09 09:11:21.819027846 +0200
+@@ -158,8 +158,8 @@
+     const int plen = strlen(fPath);
+ 
+     char tmp[256];
+-    strlcpy(tmp, fPath, sizeof tmp);
+-    strlcat(tmp, "/.directory", sizeof tmp);
++    my_strlcpy(tmp, fPath, sizeof tmp);
++    my_strlcat(tmp, "/.directory", sizeof tmp);
+ 
+     if (isDir && !stat(tmp, &sb)) { // looks like kde/gnome1 style
+ 
+@@ -279,8 +279,8 @@
+ 
+             while ((file = readdir(dir)) != NULL) {
+                 char fullpath[256];
+-                strlcpy(fullpath, dirname, sizeof fullpath);
+-                strlcat(fullpath, file->d_name, sizeof fullpath);
++                my_strlcpy(fullpath, dirname, sizeof fullpath);
++                my_strlcat(fullpath, file->d_name, sizeof fullpath);
+                 GnomeDesktopItem *ditem =
+                     gnome_desktop_item_new_from_file(fullpath,
+                                                      (GnomeDesktopItemLoadFlags)0,
+--- src/icehelp.cc	2017-07-30 10:59:06.000000000 +0200
++++ src/icehelp.cc	2017-08-09 09:11:31.490030459 +0200
+@@ -1790,8 +1790,8 @@
+     const size_t size = 9 + strlen(cfmt) + strlen(cstr) + strlen(crea);
+     char *cbuf = (char *)malloc(size);
+     snprintf(cbuf, size, cfmt, cstr);
+-    strlcat(cbuf, ":\n ", size);
+-    strlcat(cbuf, crea, size);
++    my_strlcat(cbuf, ":\n ", size);
++    my_strlcat(cbuf, crea, size);
+ 
+     node *root = new node(node::div);
+     flist<node> nodes(root);
+--- src/icesm.cc	2017-07-30 10:59:06.000000000 +0200
++++ src/icesm.cc	2017-08-09 09:13:12.946057758 +0200
+@@ -28,10 +28,10 @@
+         wordexp_t w;
+         if (wordexp(trim(buf), &w, 0) != 0 || w.we_wordc == 0)
+             return false;
+-        size_t len = strlcpy(buf, trim(w.we_wordv[0]), bufsiz);
++        size_t len = my_strlcpy(buf, trim(w.we_wordv[0]), bufsiz);
+         for (size_t k = 1; k < w.we_wordc && len < bufsiz; ++k) {
+-            strlcat(buf, " ", bufsiz);
+-            len = strlcat(buf, trim(w.we_wordv[k]), bufsiz);
++            my_strlcat(buf, " ", bufsiz);
++            len = my_strlcat(buf, trim(w.we_wordv[k]), bufsiz);
+         }
+         wordfree(&w);
+         if (len >= bufsiz)
+@@ -39,7 +39,7 @@
+ #else
+         char *str = trim(buf);
+         if (str > buf)
+-            strlcpy(buf, str, bufsiz);
++            my_strlcpy(buf, str, bufsiz);
+ #endif
+         if (buf[0] == '#' || buf[0] == '=')
+             buf[0] = 0;
+--- src/icesound.cc	2017-07-30 10:59:06.000000000 +0200
++++ src/icesound.cc	2017-08-09 09:11:26.686029161 +0200
+@@ -145,8 +145,8 @@
+     char * findSample(int sid)  {
+         char basefname[1024];
+ 
+-        strlcpy(basefname, gui_events[sid].name, sizeof basefname);
+-        strlcat(basefname, ".wav", sizeof basefname);
++        my_strlcpy(basefname, gui_events[sid].name, sizeof basefname);
++        my_strlcat(basefname, ".wav", sizeof basefname);
+ 
+         return findSample(basefname);
+     }
+--- src/misc.cc	2017-07-30 10:59:06.000000000 +0200
++++ src/misc.cc	2017-08-09 09:13:39.372064834 +0200
+@@ -448,7 +448,7 @@
+ #endif
+ 
+ /* Prefer this as a safer alternative over strcpy. Return strlen(from). */
+-size_t strlcpy(char *dest, const char *from, size_t dest_size)
++size_t my_strlcpy(char *dest, const char *from, size_t dest_size)
+ {
+     const char *in = from;
+     if (dest_size > 0) {
+@@ -463,12 +463,12 @@
+ }
+ 
+ /* Prefer this over strcat. Return strlen(dest) + strlen(from). */
+-size_t strlcat(char *dest, const char *from, size_t dest_size)
++size_t my_strlcat(char *dest, const char *from, size_t dest_size)
+ {
+     char *to = dest;
+     char *const stop = to + dest_size - 1;
+     while (to < stop && *to) ++to;
+-    return to - dest + strlcpy(to, from, dest_size - (to - dest));
++    return to - dest + my_strlcpy(to, from, dest_size - (to - dest));
+ }
+ 
+ char *newstr(char const *str) {
+--- src/strtest.cc	2017-07-30 10:59:06.000000000 +0200
++++ src/strtest.cc	2017-08-09 09:13:24.395060823 +0200
+@@ -286,63 +286,63 @@
+     strtest tester("strlc");
+     char d[10] = "@";
+     size_t n;
+-    n = strlcpy(d, "", 0);
++    n = my_strlcpy(d, "", 0);
+     sequal(d, "@");
+     assert(d, n == 0);
+ 
+-    n = strlcpy(d, "a", 0);
++    n = my_strlcpy(d, "a", 0);
+     sequal(d, "@");
+     assert(d, n == 1);
+ 
+-    n = strlcpy(d, "", 1);
++    n = my_strlcpy(d, "", 1);
+     sequal(d, "");
+     assert(d, n == 0);
+ 
+-    n = strlcpy(d, "a", 1);
++    n = my_strlcpy(d, "a", 1);
+     sequal(d, "");
+     assert(d, n == 1);
+ 
+-    n = strlcpy(d, "a", 2);
++    n = my_strlcpy(d, "a", 2);
+     sequal(d, "a");
+     assert(d, n == 1);
+ 
+-    n = strlcpy(d, "ab", 2);
++    n = my_strlcpy(d, "ab", 2);
+     sequal(d, "a");
+     assert(d, n == 2);
+ 
+-    n = strlcpy(d, "ab", 3);
++    n = my_strlcpy(d, "ab", 3);
+     sequal(d, "ab");
+     assert(d, n == 2);
+ 
+-    n = strlcpy(d, "abc", sizeof d);
++    n = my_strlcpy(d, "abc", sizeof d);
+     sequal(d, "abc");
+     assert(d, n == 3);
+ 
+-    n = strlcat(d, "def", 4);
++    n = my_strlcat(d, "def", 4);
+     sequal(d, "abc");
+     assert(d, n == 6);
+ 
+-    n = strlcat(d, "def", sizeof d);
++    n = my_strlcat(d, "def", sizeof d);
+     sequal(d, "abcdef");
+     assert(d, n == 6);
+ 
+-    n = strlcat(d, "ghijkl", sizeof d);
++    n = my_strlcat(d, "ghijkl", sizeof d);
+     sequal(d, "abcdefghi");
+     assert(d, n == 12);
+ 
+-    n = strlcpy(d, "123", sizeof d);
++    n = my_strlcpy(d, "123", sizeof d);
+     sequal(d, "123");
+     assert(d, n == 3);
+ 
+-    n = strlcpy(d, d + 1, sizeof d);
++    n = my_strlcpy(d, d + 1, sizeof d);
+     sequal(d, "23");
+     assert(d, n == 2);
+ 
+-    n = strlcpy(d, d + 1, sizeof d);
++    n = my_strlcpy(d, d + 1, sizeof d);
+     sequal(d, "3");
+     assert(d, n == 1);
+ 
+-    n = strlcpy(d, d + 1, sizeof d);
++    n = my_strlcpy(d, d + 1, sizeof d);
+     sequal(d, "");
+     assert(d, n == 0);
+ }
+@@ -418,7 +418,7 @@
+         while (a.next()) {
+             const char *e = a.entry();
+             assert(e, strcoll(buf, e) < 0);
+-            strlcpy(buf, e, sizeof buf);
++            my_strlcpy(buf, e, sizeof buf);
+         }
+         assert(buf, strcoll(buf, "~~~~~~~~~") < 0);
+     }
+@@ -437,7 +437,7 @@
+             cstring c(s.entry());
+             const char *e = c.c_str();
+             assert(e, strcoll(buf, e) < 0);
+-            strlcpy(buf, e, sizeof buf);
++            my_strlcpy(buf, e, sizeof buf);
+         }
+         assert(buf, strcoll(buf, "~~~~~~~~~") < 0);
+     }
+--- src/udir.cc	2017-07-30 10:59:06.000000000 +0200
++++ src/udir.cc	2017-08-09 09:13:28.346061883 +0200
+@@ -66,7 +66,7 @@
+     if (impl) {
+         DirPtr dirp(impl);
+         if (dirp.next()) {
+-            strlcpy(fEntry, dirp.name(), sizeof fEntry);
++            my_strlcpy(fEntry, dirp.name(), sizeof fEntry);
+             return true;
+         }
+     }
diff --git a/nixpkgs/pkgs/applications/window-managers/icewm/musl.patch b/nixpkgs/pkgs/applications/window-managers/icewm/musl.patch
new file mode 100644
index 000000000000..e7d18e312874
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/icewm/musl.patch
@@ -0,0 +1,23 @@
+--- src/ylocale.cc	2017-07-30 10:59:06.000000000 +0200
++++ src/ylocale.cc	2017-08-09 08:15:50.938841549 +0200
+@@ -55,6 +55,8 @@
+     int const codesetItems[] = {
+ #ifdef CONFIG_NL_CODESETS
+ 	CONFIG_NL_CODESETS
++#elif !defined(__GLIBC__)
++	CODESET, 0
+ #else
+ 	CODESET, _NL_CTYPE_CODESET_NAME, 0
+ #endif
+--- src/globit.c	2017-07-30 10:59:06.000000000 +0200
++++ src/globit.c	2017-08-09 08:17:18.691824584 +0200
+@@ -143,7 +143,9 @@
+ 	} else if (*pattern == '~') {
+ 		/* yes, tilde */
+ 		is_absolute = 2;
++#if defined(__GLIBC__)
+ 		glob_flags |= GLOB_TILDE;
++#endif
+ 		/* any slash in the pattern? */
+ 		while (*cp && *cp != '/')
+ 			++cp;
diff --git a/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix b/nixpkgs/pkgs/applications/window-managers/ion-3/default.nix
new file mode 100644
index 000000000000..c13b950599ed
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/jwm/default.nix b/nixpkgs/pkgs/applications/window-managers/jwm/default.nix
new file mode 100644
index 000000000000..9085385fe256
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/jwm/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, pkgconfig, automake, autoconf, libtool,
+  gettext, which, xorg, libX11, libXext, libXinerama, libXpm, libXft,
+  libXau, libXdmcp, libXmu, libpng, libjpeg, expat, xproto, xextproto,
+  xineramaproto, librsvg, freetype, fontconfig }:
+
+stdenv.mkDerivation rec {
+  name = "jwm-${version}";
+  version = "1685";
+  
+  src = fetchFromGitHub {
+    owner = "joewing";
+    repo = "jwm";
+    rev = "s${version}";
+    sha256 = "1kyvy022sij898g2hm5spy5vq0kw6aqd7fsnawl2xyh06gwh29wg";
+  };
+
+  nativeBuildInputs = [ pkgconfig automake autoconf libtool gettext which ];
+
+  buildInputs = [ libX11 libXext libXinerama libXpm libXft xorg.libXrender
+    libXau libXdmcp libXmu libpng libjpeg expat xproto xextproto xineramaproto
+    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/nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix b/nixpkgs/pkgs/applications/window-managers/jwm/jwm-settings-manager.nix
new file mode 100644
index 000000000000..3b764e7095be
--- /dev/null
+++ b/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 rec {
+  name = "jwm-settings-manager-${version}";
+  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/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix b/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix
new file mode 100644
index 000000000000..7aa604690f9a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/kbdd/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchgit, pkgconfig, dbus-glib, autoreconfHook, xorg }:
+
+stdenv.mkDerivation rec {
+  name = "kbdd";
+
+  src = fetchgit {
+    url = https://github.com/qnikst/kbdd;
+    rev = "47dee0232f157cd865e43d92005a2ba107f6fd75";
+    sha256 = "1ys9w1lncsfg266g9sfnm95an2add3g51mryg0hnrzcqa4knz809";
+  };
+
+  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/nixpkgs/pkgs/applications/window-managers/larswm/default.nix b/nixpkgs/pkgs/applications/window-managers/larswm/default.nix
new file mode 100644
index 000000000000..4ec1a4bcd059
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix b/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix
new file mode 100644
index 000000000000..ed34e75f35db
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/lemonbar/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, perl, libxcb }:
+
+stdenv.mkDerivation rec {
+  name = "lemonbar-1.3";
+  
+  src = fetchurl {
+    url    = "https://github.com/LemonBoy/bar/archive/v1.3.tar.gz";
+    sha256 = "0zd3v8ys4jzi60pm3wq7p3pbbd5y0acimgiq46qx1ckmwg2q9rza";
+  };
+  
+  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/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix b/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
new file mode 100644
index 000000000000..a1334112cf98
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, perl, libxcb, libXft }:
+
+stdenv.mkDerivation rec {
+  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/nixpkgs/pkgs/applications/window-managers/matchbox/default.nix b/nixpkgs/pkgs/applications/window-managers/matchbox/default.nix
new file mode 100644
index 000000000000..635265b04abc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/matchbox/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, libmatchbox, pkgconfig}:
+
+stdenv.mkDerivation rec {
+  name = "matchbox-${version}";
+  version = "1.2";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libmatchbox ];
+
+  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 = http://matchbox-project.org/;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/notion/default.nix b/nixpkgs/pkgs/applications/window-managers/notion/default.nix
new file mode 100644
index 000000000000..eaeb9979c10c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/notion/default.nix
@@ -0,0 +1,45 @@
+{
+  enableXft ? true, libXft ? null, patches ? [], stdenv, lua, gettext, pkgconfig, xlibsWrapper, libXinerama, libXrandr, libX11,
+  xterm, xmessage, makeWrapper, fetchFromGitHub, mandoc, which
+}:
+
+assert enableXft -> libXft != null;
+
+let
+  pname = "notion";
+  version = "3-2017050501";
+  inherit patches;
+in
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+  meta = with stdenv.lib; {
+    description = "Tiling tabbed window manager, follow-on to the ion window manager";
+    homepage = http://notion.sourceforge.net;
+    platforms = platforms.linux;
+    license   = licenses.notion_lgpl;
+    maintainers = with maintainers; [jfb];
+  };
+  src = fetchFromGitHub {
+    owner = "raboof";
+    repo = pname;
+    rev = version;
+    sha256 = "1wq5ylpsw5lkbm3c2bzmx2ajlngwib30adxlqbvq4bgkaf9zjh65";
+  };
+
+  patches = patches;
+  postPatch = ''
+    substituteInPlace system-autodetect.mk --replace '#PRELOAD_MODULES=1' 'PRELOAD_MODULES=1'
+    substituteInPlace man/Makefile --replace "nroff -man -Tlatin1" "${mandoc}/bin/mandoc -T man"
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [makeWrapper xlibsWrapper lua gettext mandoc which libXinerama libXrandr libX11 ] ++ stdenv.lib.optional enableXft libXft;
+
+  buildFlags = "LUA_DIR=${lua} X11_PREFIX=/no-such-path PREFIX=\${out}";
+  installFlags = "PREFIX=\${out}";
+
+  postInstall = ''
+    wrapProgram $out/bin/notion \
+      --prefix PATH ":" "${xmessage}/bin:${xterm}/bin" \
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/notion/notion-xft_nixos.diff b/nixpkgs/pkgs/applications/window-managers/notion/notion-xft_nixos.diff
new file mode 100644
index 000000000000..542aa446c3f2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/notion/notion-xft_nixos.diff
@@ -0,0 +1,662 @@
+diff -ur notion-3-2015061300/de/brush.c notion-3-2015061300-PATCHED/de/brush.c
+--- notion-3-2015061300/de/brush.c	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/brush.c	2015-07-13 10:37:23.093298917 -0400
+@@ -48,6 +48,9 @@
+     
+     gr_stylespec_init(&brush->current_attr);
+     
++#ifdef XFT
++    brush->draw=NULL;
++#endif /* XFT */
+     style->usecount++;
+ 
+     if(!grbrush_init(&(brush->grbrush))){
+@@ -128,6 +131,10 @@
+ {
+     destyle_unref(brush->d);
+     brush->d=NULL;
++#ifdef XFT
++    if(brush->draw!=NULL)
++        XftDrawDestroy(brush->draw);
++#endif /* XFT */
+     gr_stylespec_unalloc(&brush->current_attr);
+     grbrush_deinit(&(brush->grbrush));
+ }
+@@ -139,6 +146,21 @@
+ }
+ 
+ 
++#ifdef XFT
++XftDraw *debrush_get_draw(DEBrush *brush, Drawable d)
++{
++    if(brush->draw==NULL)
++        brush->draw=XftDrawCreate(ioncore_g.dpy, d,
++                                  XftDEDefaultVisual(),
++                                  DefaultColormap(ioncore_g.dpy,
++                                  0));
++    else
++        XftDrawChange(brush->draw, d);
++
++    return brush->draw;
++}
++#endif
++
+ /*}}}*/
+ 
+ 
+diff -ur notion-3-2015061300/de/brush.h notion-3-2015061300-PATCHED/de/brush.h
+--- notion-3-2015061300/de/brush.h	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/brush.h	2015-07-13 10:37:23.096298747 -0400
+@@ -15,6 +15,10 @@
+ #include <ioncore/gr.h>
+ #include <ioncore/rectangle.h>
+ 
++#ifdef XFT
++#include <X11/Xft/Xft.h>
++#endif /* XFT */
++
+ INTRCLASS(DEBrush);
+ 
+ #include "style.h"
+@@ -33,6 +37,9 @@
+ DECLCLASS(DEBrush){
+     GrBrush grbrush;
+     DEStyle *d;
++#ifdef XFT
++    XftDraw *draw;
++#endif
+     DEBrushExtrasFn *extras_fn;
+     int indicator_w;
+     Window win;
+@@ -108,5 +115,8 @@
+ extern void debrush_fill_area(DEBrush *brush, const WRectangle *geom);
+ extern void debrush_clear_area(DEBrush *brush, const WRectangle *geom);
+ 
++#ifdef XFT
++XftDraw *debrush_get_draw(DEBrush *brush, Drawable d);
++#endif
+ 
+ #endif /* ION_DE_BRUSH_H */
+diff -ur notion-3-2015061300/de/colour.c notion-3-2015061300-PATCHED/de/colour.c
+--- notion-3-2015061300/de/colour.c	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/colour.c	2015-07-13 10:37:23.098298633 -0400
+@@ -12,9 +12,21 @@
+ 
+ bool de_alloc_colour(WRootWin *rootwin, DEColour *ret, const char *name)
+ {
++#ifndef XFT
+     XColor c;
+     bool ok=FALSE;
++#else /* XFT */
++    if(name==NULL)
++        return FALSE;
++    return XftColorAllocName(
++        ioncore_g.dpy,
++        XftDEDefaultVisual(),
++        rootwin->default_cmap,
++        name,
++        ret);
++#endif /* XFT */
+ 
++#ifndef XFT
+     if(name==NULL)
+         return FALSE;
+ 
+@@ -25,11 +37,13 @@
+     }
+     
+     return ok;
++#endif /* ! XFT */
+ }
+ 
+ 
+ bool de_duplicate_colour(WRootWin *rootwin, DEColour in, DEColour *out)
+ {
++#ifndef XFT
+     XColor c;
+     c.pixel=in;
+     XQueryColor(ioncore_g.dpy, rootwin->default_cmap, &c);
+@@ -38,11 +52,20 @@
+         return TRUE;
+     }
+     return FALSE;
++#else /* XFT */
++    return XftColorAllocName(
++        ioncore_g.dpy,
++        XftDEDefaultVisual(),
++        rootwin->default_cmap,
++        &(in.color),
++        out);
++#endif /* XFT */
+ }
+ 
+ 
+ void de_free_colour_group(WRootWin *rootwin, DEColourGroup *cg)
+ {
++#ifndef XFT
+     DEColour pixels[5];
+     
+     pixels[0]=cg->bg;
+@@ -54,15 +77,26 @@
+     XFreeColors(ioncore_g.dpy, rootwin->default_cmap, pixels, 5, 0);
+     
+     gr_stylespec_unalloc(&cg->spec);
++#else /* XFT */
++    de_free_colour(rootwin, cg->bg);
++    de_free_colour(rootwin, cg->fg);
++    de_free_colour(rootwin, cg->hl);
++    de_free_colour(rootwin, cg->sh);
++    de_free_colour(rootwin, cg->pad);
++#endif /* XFT */
+ }
+ 
+ 
+ void de_free_colour(WRootWin *rootwin, DEColour col)
+ {
++#ifndef XFT
+     DEColour pixels[1];
+     
+     pixels[0]=col;
+     
+     XFreeColors(ioncore_g.dpy, rootwin->default_cmap, pixels, 1, 0);
++#else /* XFT */
++    XftColorFree(ioncore_g.dpy, XftDEDefaultVisual(), rootwin->default_cmap, &col);
++#endif /* XFT */
+ }
+ 
+diff -ur notion-3-2015061300/de/colour.h notion-3-2015061300-PATCHED/de/colour.h
+--- notion-3-2015061300/de/colour.h	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/colour.h	2015-07-13 10:37:23.099298576 -0400
+@@ -12,12 +12,19 @@
+ #include <ioncore/common.h>
+ #include <ioncore/global.h>
+ #include <ioncore/rootwin.h>
++#ifdef XFT
++#include <X11/Xft/Xft.h>
++#endif /* XFT */
+ 
+ 
+ INTRSTRUCT(DEColourGroup);
+ 
+ 
++#ifndef XFT
+ typedef unsigned long DEColour;
++#else /* XFT */
++typedef XftColor DEColour;
++#endif /* XFT */
+ 
+ 
+ DECLSTRUCT(DEColourGroup){
+@@ -34,5 +41,6 @@
+ bool de_duplicate_colour(WRootWin *rootwin, DEColour in, DEColour *out);
+ void de_free_colour_group(WRootWin *rootwin, DEColourGroup *cg);
+ void de_free_colour(WRootWin *rootwin, DEColour col);
++#define XftDEDefaultVisual()    DefaultVisual(ioncore_g.dpy, 0)
+ 
+ #endif /* ION_DE_COLOUR_H */
+diff -ur notion-3-2015061300/de/draw.c notion-3-2015061300-PATCHED/de/draw.c
+--- notion-3-2015061300/de/draw.c	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/draw.c	2015-07-13 10:37:23.109298008 -0400
+@@ -20,6 +20,14 @@
+ #include <X11/extensions/shape.h>
+ 
+ 
++#ifndef XFT
++#define PIXEL(x) x
++#else /* XFT */
++#define PIXEL(x) x.pixel
++#endif /* XFT */
++
++
++
+ /*{{{ Colour group lookup */
+ 
+ 
+@@ -84,8 +92,7 @@
+     w--;
+     h--;
+ 
+-    XSetForeground(ioncore_g.dpy, gc, tlc);
+-
++    XSetForeground(ioncore_g.dpy, gc, PIXEL(tlc));
+     
+     a=(br!=0);
+     b=0;
+@@ -104,7 +111,7 @@
+     }
+ 
+     
+-    XSetForeground(ioncore_g.dpy, gc, brc);
++    XSetForeground(ioncore_g.dpy, gc, PIXEL(brc));
+ 
+     a=(tl!=0);
+     b=0;
+@@ -141,23 +148,23 @@
+                             GrBorderLine line)
+ {
+     if(line==GR_BORDERLINE_LEFT && geom->h>0 && tl>0){
+-        XSetForeground(ioncore_g.dpy, gc, tlc);
+-        XSetBackground(ioncore_g.dpy, gc, tlc);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(tlc));
++        XSetBackground(ioncore_g.dpy, gc, PIXEL(tlc));
+         XFillRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, tl, geom->h);
+         geom->x+=tl;
+     }else if(line==GR_BORDERLINE_TOP && geom->w>0 && tl>0){
+-        XSetForeground(ioncore_g.dpy, gc, tlc);
+-        XSetBackground(ioncore_g.dpy, gc, tlc);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(tlc));
++        XSetBackground(ioncore_g.dpy, gc, PIXEL(tlc));
+         XFillRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y, geom->w, tl);
+         geom->y+=tl;
+     }else if(line==GR_BORDERLINE_RIGHT && geom->h>0 && br>0){
+-        XSetForeground(ioncore_g.dpy, gc, brc);
+-        XSetBackground(ioncore_g.dpy, gc, brc);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(brc));
++        XSetBackground(ioncore_g.dpy, gc, PIXEL(brc));
+         XFillRectangle(ioncore_g.dpy, win, gc, geom->x+geom->w-br, geom->y, br, geom->h);
+         geom->w-=br;
+     }else if(line==GR_BORDERLINE_BOTTOM && geom->w>0 && br>0){
+-        XSetForeground(ioncore_g.dpy, gc, brc);
+-        XSetBackground(ioncore_g.dpy, gc, brc);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(brc));
++        XSetBackground(ioncore_g.dpy, gc, PIXEL(brc));
+         XFillRectangle(ioncore_g.dpy, win, gc, geom->x, geom->y+geom->h-br, geom->w, br);
+         geom->h-=br;
+     }
+@@ -388,7 +395,7 @@
+     }
+     
+     if(ISSET(a2, GR_ATTR(tagged)) || ISSET(a1, GR_ATTR(tagged))){
+-        XSetForeground(ioncore_g.dpy, d->copy_gc, cg->fg);
++        XSetForeground(ioncore_g.dpy, d->copy_gc, PIXEL(cg->fg));
+             
+         copy_masked(brush, d->tag_pixmap, brush->win, 0, 0,
+                     d->tag_pixmap_w, d->tag_pixmap_h,
+@@ -437,7 +444,7 @@
+     GC gc=brush->d->normal_gc;
+     
+     if(TRUE/*needfill*/){
+-        XSetForeground(ioncore_g.dpy, gc, cg->bg);
++        XSetForeground(ioncore_g.dpy, gc, PIXEL(cg->bg));
+         XFillRectangle(ioncore_g.dpy, brush->win, gc, geom->x, geom->y, 
+                        geom->w, geom->h);
+     }
+@@ -605,7 +612,7 @@
+         attr.background_pixmap=ParentRelative;
+     }else{
+         attrflags=CWBackPixel;
+-        attr.background_pixel=brush->d->cgrp.bg;
++        attr.background_pixel=brush->d->PIXEL(cgrp.bg);
+     }
+     
+     XChangeWindowAttributes(ioncore_g.dpy, brush->win, attrflags, &attr);
+@@ -621,7 +628,7 @@
+     if(cg==NULL)
+         return;
+     
+-    XSetForeground(ioncore_g.dpy, gc, cg->bg);
++    XSetForeground(ioncore_g.dpy, gc, PIXEL(cg->bg));
+     XFillRectangle(ioncore_g.dpy, brush->win, gc, 
+                    geom->x, geom->y, geom->w, geom->h);
+ }
+diff -ur notion-3-2015061300/de/font.c notion-3-2015061300-PATCHED/de/font.c
+--- notion-3-2015061300/de/font.c	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/font.c	2015-07-13 10:37:23.118297497 -0400
+@@ -13,7 +13,9 @@
+ #include <ioncore/common.h>
+ #include <ioncore/log.h>
+ #include "font.h"
++#ifndef XFT
+ #include "fontset.h"
++#endif /* ! XFT */
+ #include "brush.h"
+ #include "precompose.h"
+ 
+@@ -106,6 +108,9 @@
+ 
+ DEFont *de_load_font(const char *fontname)
+ {
++#ifdef XFT
++    XftFont *font;
++#endif
+     DEFont *fnt;
+     XFontSet fontset=NULL;
+     XFontStruct *fontstruct=NULL;
+@@ -120,7 +125,8 @@
+             return fnt;
+         }
+     }
+-    
++
++#ifndef XFT
+     if(ioncore_g.use_mb && !(ioncore_g.enc_utf8 && iso10646_font(fontname))){
+         LOG(DEBUG, FONT, "Loading fontset %s", fontname); 
+         fontset=de_create_font_set(fontname);
+@@ -149,13 +155,34 @@
+         return NULL;
+     }
+     
++#else /* XFT */
++    if(strncmp(fontname, "xft:", 4)==0){
++        font=XftFontOpenName(ioncore_g.dpy, DefaultScreen(ioncore_g.dpy),
++                 fontname+4);
++    }else{
++        font=XftFontOpenXlfd(ioncore_g.dpy, DefaultScreen(ioncore_g.dpy), fontname);
++    }
++    
++    if(font==NULL){
++        if(strcmp(fontname, CF_FALLBACK_FONT_NAME)!=0){
++            warn(TR("Could not load font \"%s\", trying \"%s\""),
++             fontname, CF_FALLBACK_FONT_NAME);
++            return de_load_font(CF_FALLBACK_FONT_NAME);
++        }
++        return NULL;
++    }
++#endif /* XFT */
+     fnt=ALLOC(DEFont);
+     
+     if(fnt==NULL)
+         return NULL;
+     
++#ifndef XFT
+     fnt->fontset=fontset;
+     fnt->fontstruct=fontstruct;
++#else
++    fnt->font=font;
++#endif
+     fnt->pattern=scopy(fontname);
+     fnt->next=NULL;
+     fnt->prev=NULL;
+@@ -175,11 +202,13 @@
+     style->font=font;
+     font->refcount++;
+     
++#ifndef XFT
+     if(style->font->fontstruct!=NULL){
+         XSetFont(ioncore_g.dpy, style->normal_gc, 
+                  style->font->fontstruct->fid);
+     }
+ 
++#endif /* ! XFT */
+     return TRUE;
+ }
+ 
+@@ -194,11 +223,13 @@
+     if(style->font==NULL)
+         return FALSE;
+     
++#ifndef XFT
+     if(style->font->fontstruct!=NULL){
+         XSetFont(ioncore_g.dpy, style->normal_gc, 
+                  style->font->fontstruct->fid);
+     }
+     
++#endif /* ! XFT */
+     return TRUE;
+ }
+ 
+@@ -208,10 +239,15 @@
+     if(--font->refcount!=0)
+         return;
+     
++#ifndef XFT
+     if(font->fontset!=NULL)
+         XFreeFontSet(ioncore_g.dpy, font->fontset);
+     if(font->fontstruct!=NULL)
+         XFreeFont(ioncore_g.dpy, font->fontstruct);
++#else /* XFT */
++    if(font->font!=NULL)
++        XftFontClose(ioncore_g.dpy, font->font);
++#endif /* XFT */
+     if(font->pattern!=NULL)
+         free(font->pattern);
+     
+@@ -239,6 +275,7 @@
+ 
+ void defont_get_font_extents(DEFont *font, GrFontExtents *fnte)
+ {
++#ifndef XFT
+     if(font->fontset!=NULL){
+         XFontSetExtents *ext=XExtentsOfFontSet(font->fontset);
+         if(ext==NULL)
+@@ -254,7 +291,14 @@
+         fnte->baseline=fnt->ascent;
+         return;
+     }
+-    
++#else /* XFT */
++    if(font->font!=NULL){
++        fnte->max_height=font->font->ascent+font->font->descent;
++        fnte->max_width=font->font->max_advance_width;
++        fnte->baseline=font->font->ascent;
++        return;
++    }
++#endif /* XFT */
+ fail:
+     DE_RESET_FONT_EXTENTS(fnte);
+ }
+@@ -271,6 +315,7 @@
+ 
+ uint defont_get_text_width(DEFont *font, const char *text, uint len)
+ {
++#ifndef XFT
+     if(font->fontset!=NULL){
+         XRectangle lext;
+ #ifdef CF_DE_USE_XUTF8
+@@ -298,6 +343,18 @@
+     }else{
+         return 0;
+     }
++#else /* XFT */
++    if(font->font!=NULL){
++        XGlyphInfo extents;
++        if(ioncore_g.enc_utf8)
++            XftTextExtentsUtf8(ioncore_g.dpy, font->font, (XftChar8 *)text, len, &extents);
++        else
++            XftTextExtents8(ioncore_g.dpy, font->font, (XftChar8 *)text, len, &extents);
++        return extents.xOff;
++    }else{
++        return 0;
++    }
++#endif /* XFT */
+ }
+ 
+ 
+@@ -307,6 +364,7 @@
+ /*{{{ String drawing */
+ 
+ 
++#ifndef XFT
+ void debrush_do_draw_string_default(DEBrush *brush, int x, int y,
+                                     const char *str, int len, bool needfill, 
+                                     DEColourGroup *colours)
+@@ -366,6 +424,43 @@
+     }
+ }
+ 
++#else /* XFT */
++void debrush_do_draw_string_default(DEBrush *brush, 
++                                    int x, int y, const char *str,
++                                    int len, bool needfill, 
++                                    DEColourGroup *colours)
++{
++    Window win = brush->win;
++    GC gc=brush->d->normal_gc;
++    XftDraw *draw;
++    XftFont *font;
++    
++    if(brush->d->font==NULL)
++        return;
++
++    font=brush->d->font->font;
++    draw=debrush_get_draw(brush, win);
++
++    if(needfill){
++        XGlyphInfo extents;
++        if(ioncore_g.enc_utf8){
++            XftTextExtentsUtf8(ioncore_g.dpy, font, (XftChar8 *)str, len,
++                               &extents);
++        }else{
++            XftTextExtents8(ioncore_g.dpy, font, (XftChar8 *)str, len, &extents);
++            XftDrawRect(draw, &(colours->bg), x-extents.x, y-extents.y,
++                        extents.width+10, extents.height);
++        }
++    }
++
++    if(ioncore_g.enc_utf8){
++        XftDrawStringUtf8(draw, &(colours->fg), font, x, y, (XftChar8 *)str,
++                          len);
++    }else{
++        XftDrawString8(draw, &(colours->fg), font, x, y, (XftChar8 *)str, len);
++    }
++}
++#endif /* XFT */
+ 
+ void debrush_do_draw_string(DEBrush *brush, int x, int y,
+                             const char *str, int len, bool needfill, 
+diff -ur notion-3-2015061300/de/font.h notion-3-2015061300-PATCHED/de/font.h
+--- notion-3-2015061300/de/font.h	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/font.h	2015-07-13 10:37:23.119297440 -0400
+@@ -12,6 +12,9 @@
+ 
+ #include <ioncore/common.h>
+ #include <ioncore/gr.h>
++#ifdef XFT
++#include <X11/Xft/Xft.h>
++#endif /* XFT */
+ 
+ INTRSTRUCT(DEFont);
+ 
+@@ -27,6 +30,9 @@
+     int refcount;
+     XFontSet fontset;
+     XFontStruct *fontstruct;
++#ifdef XFT /* XFT */
++    XftFont *font;
++#endif /* XFT */
+     DEFont *next, *prev;
+ };
+ 
+diff -ur notion-3-2015061300/de/init.c notion-3-2015061300-PATCHED/de/init.c
+--- notion-3-2015061300/de/init.c	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/init.c	2015-07-13 10:37:23.122297270 -0400
+@@ -165,17 +165,26 @@
+ {
+     bool bgset;
+     DEColour padinh;
+-    
++    DEColour black, white;
++
++#ifdef XFT
++    de_alloc_colour(rootwin, &black, "black");
++    de_alloc_colour(rootwin, &white, "white");
++#else
++    black=DE_BLACK(rootwin);
++    white=DE_WHITE(rootwin);
++#endif
++
+     de_get_colour(rootwin, &(cg->hl), tab, "highlight_colour",
+-                  (based_on ? based_on->cgrp.hl : DE_WHITE(rootwin)));
++                  (based_on ? based_on->cgrp.hl : white));
+     de_get_colour(rootwin, &(cg->sh), tab, "shadow_colour",
+-                  (based_on ? based_on->cgrp.sh : DE_WHITE(rootwin)));
++                  (based_on ? based_on->cgrp.sh : white));
+     de_get_colour(rootwin, &(cg->fg), tab, "foreground_colour",
+-                  (based_on ? based_on->cgrp.fg : DE_WHITE(rootwin)));
++                  (based_on ? based_on->cgrp.fg : white));
+     bgset=de_get_colour(rootwin, &(cg->bg), tab, "background_colour",
+-                        (based_on ? based_on->cgrp.bg : DE_BLACK(rootwin)));
++                        (based_on ? based_on->cgrp.bg : black));
+                         
+-    padinh=(based_on ? based_on->cgrp.pad : DE_WHITE(rootwin));
++    padinh=(based_on ? based_on->cgrp.pad : white);
+     
+     de_get_colour_(rootwin, &(cg->pad), tab, "padding_colour", 
+                    (bgset ? cg->bg : padinh), padinh);
+diff -ur notion-3-2015061300/de/style.c notion-3-2015061300-PATCHED/de/style.c
+--- notion-3-2015061300/de/style.c	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/style.c	2015-07-13 10:37:23.128296929 -0400
+@@ -70,10 +70,17 @@
+     /*gcv.function=GXclear;*/
+     gcv.stipple=stipple_pixmap;
+     gcvmask=GCFillStyle|GCStipple/*|GCFunction*/;
++#ifndef XFT
+     if(style->font!=NULL && style->font->fontstruct!=NULL){
+         gcv.font=style->font->fontstruct->fid;
+         gcvmask|=GCFont;
+     }
++#else /* XFT */
++//    if(style->font!=NULL){
++//        gcv.font=style->font;
++//        gcvmask|=GCFont;
++//    }
++#endif /* XFT */
+ 
+     style->stipple_gc=XCreateGC(dpy, root, gcvmask, &gcv);
+     XCopyGC(dpy, style->normal_gc, 
+@@ -201,6 +208,14 @@
+ 
+ bool destyle_init(DEStyle *style, WRootWin *rootwin, const char *name)
+ {
++    DEColour black, white;
++#ifdef XFT
++    de_alloc_colour(rootwin, &black, "black");
++    de_alloc_colour(rootwin, &white, "white");
++#else
++    black=DE_BLACK(rootwin);
++    white=DE_WHITE(rootwin);
++#endif /* XFT */
+     if(!gr_stylespec_load(&style->spec, name))
+         return FALSE;
+     
+@@ -223,11 +238,11 @@
+     style->textalign=DEALIGN_CENTER;
+ 
+     style->cgrp_alloced=FALSE;
+-    style->cgrp.bg=DE_BLACK(rootwin);
+-    style->cgrp.pad=DE_BLACK(rootwin);
+-    style->cgrp.fg=DE_WHITE(rootwin);
+-    style->cgrp.hl=DE_WHITE(rootwin);
+-    style->cgrp.sh=DE_WHITE(rootwin);
++    style->cgrp.bg=black;
++    style->cgrp.pad=black;
++    style->cgrp.fg=white;
++    style->cgrp.hl=white;
++    style->cgrp.sh=white;
+     gr_stylespec_init(&style->cgrp.spec);
+     
+     style->font=NULL;
+diff -ur notion-3-2015061300/de/style.h notion-3-2015061300-PATCHED/de/style.h
+--- notion-3-2015061300/de/style.h	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/de/style.h	2015-07-13 10:37:23.130296815 -0400
+@@ -80,6 +80,7 @@
+     Pixmap tag_pixmap;
+     int tag_pixmap_w;
+     int tag_pixmap_h;
++    int xft_style;
+     
+     DEStyle *next, *prev;
+ };
+diff -ur notion-3-2015061300/system-autodetect.mk notion-3-2015061300-PATCHED/system-autodetect.mk
+--- notion-3-2015061300/system-autodetect.mk	2015-06-13 10:37:26.000000000 -0400
++++ notion-3-2015061300-PATCHED/system-autodetect.mk	2015-07-13 10:38:14.921332013 -0400
+@@ -103,6 +103,19 @@
+ 
+ 
+ ##
++## Xft support
++##
++
++USE_XFT=1
++
++ifeq ($(USE_XFT),1)
++EXTRA_INCLUDES += `pkg-config xft --cflags`
++EXTRA_LIBS += `pkg-config xft --libs`
++DEFINES += -DXFT -DCF_FALLBACK_FONT_NAME=\"Sans\"
++endif
++
++
++##
+ ## Localisation
+ ##
+ 
diff --git a/nixpkgs/pkgs/applications/window-managers/openbox/default.nix b/nixpkgs/pkgs/applications/window-managers/openbox/default.nix
new file mode 100644
index 000000000000..8c6926dd2c69
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/openbox/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, pkgconfig, python2
+, libxml2, libXinerama, libXcursor, libXau, libXrandr, libICE, libSM
+, imlib2, pango, libstartup_notification, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "openbox-${version}";
+  version = "3.6.1";
+
+  nativeBuildInputs = [
+    pkgconfig
+    makeWrapper
+    python2.pkgs.wrapPython
+  ];
+
+  buildInputs = [
+    libxml2
+    libXinerama libXcursor libXau libXrandr libICE libSM
+    libstartup_notification
+  ];
+
+  propagatedBuildInputs = [
+    pango imlib2
+  ];
+
+  pythonPath = with python2.pkgs; [
+    pyxdg
+  ];
+
+  src = fetchurl {
+    url = "http://openbox.org/dist/openbox/${name}.tar.gz";
+    sha256 = "1xvyvqxlhy08n61rjkckmrzah2si1i7nmc7s8h07riqq01vc0jlb";
+  };
+
+  setlayoutSrc = fetchurl {
+    url = "http://openbox.org/dist/tools/setlayout.c";
+    sha256 = "1ci9lq4qqhl31yz1jwwjiawah0f7x0vx44ap8baw7r6rdi00pyiv";
+  };
+
+  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/nixpkgs/pkgs/applications/window-managers/orbment/bemenu.nix b/nixpkgs/pkgs/applications/window-managers/orbment/bemenu.nix
new file mode 100644
index 000000000000..065b81948c2d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/orbment/bemenu.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, pango, wayland, libxkbcommon }:
+
+stdenv.mkDerivation rec {
+  name = "bemenu-2017-02-14";
+
+  src = fetchFromGitHub {
+    owner = "Cloudef";
+    repo = "bemenu";
+    rev = "d6261274cf0b3aa51ce8ea7418a79495b20ad558";
+    sha256 = "08bc623y5yjbz7q83lhl6rb0xs6ji17z79c260bx0fgin8sfj5x8";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ pango wayland libxkbcommon ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A dynamic menu library and client program inspired by dmenu";
+    homepage = src.meta.homepage;
+    license = with licenses; [ gpl3 lgpl3 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/orbment/default.nix b/nixpkgs/pkgs/applications/window-managers/orbment/default.nix
new file mode 100644
index 000000000000..6bf6f44d4234
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/orbment/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchgit, cmake, pkgconfig, makeWrapper, callPackage
+, wlc, dbus, wayland, libxkbcommon, pixman, libinput, udev, zlib, libpng
+, libdrm, libX11
+, westonLite
+}:
+
+let
+  bemenu = callPackage ./bemenu.nix {};
+in stdenv.mkDerivation rec {
+  name = "orbment-${version}";
+  version = "git-2016-08-13";
+
+  src = fetchgit {
+    url = "https://github.com/Cloudef/orbment";
+    rev = "01dcfff9719e20261a6d8c761c0cc2f8fa0d0de5";
+    sha256 = "04mv9nh847vijr01zrs47fzmnwfhdx09vi3ddv843mx10yx7lqdb";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+
+  buildInputs = [
+    wlc dbus wayland libxkbcommon pixman libinput udev zlib libpng libX11
+    libdrm
+  ];
+
+  postFixup = ''
+    wrapProgram $out/bin/orbment \
+      --prefix PATH : "${stdenv.lib.makeBinPath [ bemenu westonLite ]}"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Modular Wayland compositor";
+    homepage    = src.url;
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/oroborus/default.nix b/nixpkgs/pkgs/applications/window-managers/oroborus/default.nix
new file mode 100644
index 000000000000..2681d31ccb1e
--- /dev/null
+++ b/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, xextproto, libXinerama }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+
+  name = "oroborus-${version}";
+  version = "2.0.20";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ freetype fribidi libSM libICE libXt libXaw libXmu libXext
+                  libXft libXpm libXrandr libXrender xextproto 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/nixpkgs/pkgs/applications/window-managers/pekwm/default.nix b/nixpkgs/pkgs/applications/window-managers/pekwm/default.nix
new file mode 100644
index 000000000000..b2677218e856
--- /dev/null
+++ b/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 {
+
+  name = "pekwm-${version}";
+  version = "0.1.17";
+
+  src = fetchurl {
+    url = "https://www.pekwm.org/projects/pekwm/files/${name}.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/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch b/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
new file mode 100644
index 000000000000..219d6dcbe207
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
@@ -0,0 +1,30 @@
+diff --git a/libqtile/pangocffi.py b/libqtile/pangocffi.py
+index 1e8f5c04..e860d43a 100644
+--- a/libqtile/pangocffi.py
++++ b/libqtile/pangocffi.py
+@@ -58,9 +58,9 @@ except ImportError:
+     else:
+         raise ImportError("No module named libqtile._ffi_pango, be sure to run `python ./libqtile/ffi_build.py`")
+ 
+-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 CairoContext(cairo_t):
+diff --git a/libqtile/xcursors.py b/libqtile/xcursors.py
+index f1133555..3e61204a 100644
+--- a/libqtile/xcursors.py
++++ b/libqtile/xcursors.py
+@@ -112,7 +112,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/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch b/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
new file mode 100644
index 000000000000..a01f14062f1d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
@@ -0,0 +1,60 @@
+diff --git a/bin/qshell b/bin/qshell
+index 2ba7e61c..0ac2a2ef 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 3e82814d..335b5cea 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-run b/bin/qtile-run
+index e4b121be..1c203bc9 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 5316e0e7..272c6430 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 550ed02677e..1358a66f3df 100644
+--- a/libqtile/utils.py
++++ b/libqtile/utils.py
+@@ -272,3 +272,11 @@ def safe_import(module_names, class_name, globals_, fallback=None):
+         logger.debug("%s", traceback.format_exc())
+         if fallback:
+             globals_[class_name] = fallback(module_path, class_name, error)
++
++
++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/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch b/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
new file mode 100644
index 000000000000..87fd19773794
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
@@ -0,0 +1,13 @@
+diff --git a/libqtile/manager.py b/libqtile/manager.py
+index fc198e9bae7..860b97d8db1 100644
+--- a/libqtile/manager.py
++++ b/libqtile/manager.py
+@@ -1402,7 +1402,7 @@ class Qtile(command.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()
+ 
+     def cmd_spawn(self, cmd):
diff --git a/nixpkgs/pkgs/applications/window-managers/qtile/default.nix b/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
new file mode 100644
index 000000000000..be51a5c46bf3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, python27Packages, glib, cairo, pango, pkgconfig, libxcb, xcbutilcursor }:
+
+let cairocffi-xcffib = python27Packages.cairocffi.override {
+    withXcffib = true;
+  };
+in
+
+python27Packages.buildPythonApplication rec {
+  name = "qtile-${version}";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "qtile";
+    repo = "qtile";
+    rev = "v${version}";
+    sha256 = "0ynmmnh12mr3gwgz0j7l2hvm8c0y5gzsw80jszdkp4s5bh1q0nrj";
+  };
+
+  patches = [
+    ./0001-Substitution-vars-for-absolute-paths.patch
+    ./0002-Restore-PATH-and-PYTHONPATH.patch
+    ./0003-Restart-executable.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace libqtile/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/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out}
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ glib libxcb cairo pango python27Packages.xcffib ];
+
+  pythonPath = with python27Packages; [ xcffib cairocffi-xcffib trollius ];
+
+  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.
+
+  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/nixpkgs/pkgs/applications/window-managers/ratpoison/default.nix b/nixpkgs/pkgs/applications/window-managers/ratpoison/default.nix
new file mode 100644
index 000000000000..a69d3164a133
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/ratpoison/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, pkgconfig, perl, autoconf, automake
+, libX11, inputproto, libXt, libXpm, libXft, libXtst, xextproto, libXi
+, libXrandr, fontconfig, freetype, readline
+}:
+
+stdenv.mkDerivation rec {
+  name = "ratpoison-${version}";
+  version = "1.4.9";
+
+  src = fetchurl {
+    url = "mirror://savannah/ratpoison/${name}.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 inputproto libXt libXpm libXft libXtst xextproto 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/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix b/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix
new file mode 100644
index 000000000000..887a58b748da
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/sawfish/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl
+, pkgconfig, which, autoreconfHook
+, rep-gtk, pango, gdk_pixbuf
+, imlib, gettext, texinfo
+, libXinerama, libXrandr, libXtst, libICE, libSM
+, makeWrapper
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "sawfish-${version}";
+  version = "1.12.90";
+  sourceName = "sawfish_${version}";
+
+  src = fetchurl {
+    url = "https://download.tuxfamily.org/sawfish/${sourceName}.tar.xz";
+    sha256 = "18p8srqqj9vjffg13qhspfz2gr1h4vfs10qzlv89g76r289iam31";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ which
+    rep-gtk pango gdk_pixbuf 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 = {
+    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 = http://sawfish.wikia.com;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix b/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
new file mode 100644
index 000000000000..81901be0e60b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
@@ -0,0 +1,62 @@
+{ fetchurl
+, libX11
+, libXrandr
+, libXcursor
+, libXft
+, libXt
+, libxcb
+, xcbutil
+, xcb-util-cursor
+, xcbutilkeysyms
+, xcbutilwm
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+  name = "spectrwm-${version}";
+  version = "2.7.2";
+
+  src = fetchurl {
+    url = "https://github.com/conformal/spectrwm/archive/SPECTRWM_2_7_2.tar.gz";
+    sha256 = "1yssqnhxlfl1b60gziqp8c5pzs1lr8p6anrnp9ga1zfdql3b7993";
+  };
+
+
+  buildInputs = [
+    libX11
+    libxcb
+    libXrandr
+    libXcursor
+    libXft
+    libXt
+    xcbutil
+    xcb-util-cursor
+    xcbutilkeysyms
+    xcbutilwm
+  ];
+
+  sourceRoot = let
+    subdir = if stdenv.isDarwin then "osx" else "linux";
+  in "spectrwm-SPECTRWM_2_7_2/${subdir}";
+
+  makeFlags="PREFIX=$(out)";
+  installPhase = "PREFIX=$out make install";
+
+  meta = with stdenv.lib; {
+    description = "A tiling window manager";
+    homepage    = "https://github.com/conformal/spectrwm";
+    maintainers = with maintainers; [ jb55 ];
+    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/nixpkgs/pkgs/applications/window-managers/stalonetray/default.nix b/nixpkgs/pkgs/applications/window-managers/stalonetray/default.nix
new file mode 100644
index 000000000000..75d25a0e43d6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/stalonetray/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libX11, xproto }:
+
+stdenv.mkDerivation rec {
+  name = "stalonetray-${version}";
+  version = "0.8.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/stalonetray/${name}.tar.bz2";
+    sha256 = "0k7xnpdb6dvx25d67v0crlr32cdnzykdsi9j889njiididc8lm1n";
+  };
+
+  buildInputs = [ libX11 xproto ];
+
+  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/nixpkgs/pkgs/applications/window-managers/stumpish/default.nix b/nixpkgs/pkgs/applications/window-managers/stumpish/default.nix
new file mode 100644
index 000000000000..bccb49ff4d55
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/stumpish/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, substituteAll, fetchurl, fetchFromGitHub, bash, gnused, ncurses, xorg, rlwrap }:
+
+stdenv.mkDerivation rec {
+  pname = "stumpish";
+  version = "0.0.1";
+  name = "${pname}-${version}";
+
+  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/nixpkgs/pkgs/applications/window-managers/stumpish/paths.patch b/nixpkgs/pkgs/applications/window-managers/stumpish/paths.patch
new file mode 100644
index 000000000000..d18392037015
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix b/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix
new file mode 100644
index 000000000000..3ed7f4325f24
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/stumpwm/default.nix
@@ -0,0 +1,104 @@
+{ 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 rec {
+  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;
+    maintainers = with maintainers; [ the-kenny ];
+    platforms   = platforms.linux;
+    broken = true; # 2018-04-11
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch b/nixpkgs/pkgs/applications/window-managers/stumpwm/fix-module-path.patch
new file mode 100644
index 000000000000..79bfaad3dec3
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/sway/beta.nix b/nixpkgs/pkgs/applications/window-managers/sway/beta.nix
new file mode 100644
index 000000000000..fd3e2275b442
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/sway/beta.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub
+, meson, ninja
+, pkgconfig, scdoc
+, wayland, libxkbcommon, pcre, json_c, dbus
+, pango, cairo, libinput, libcap, pam, gdk_pixbuf
+, wlroots, wayland-protocols
+, buildDocs ? true
+}:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "sway";
+  version = "1.0-beta.2";
+
+  src = fetchFromGitHub {
+    owner = "swaywm";
+    repo = "sway";
+    rev = version;
+    sha256 = "0f9rniwizbc3vzxdy6rc47749p6gczfbgfdy4r458134rbl551hw";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig meson ninja
+  ] ++ stdenv.lib.optional buildDocs scdoc;
+
+  buildInputs = [
+    wayland libxkbcommon pcre json_c dbus
+    pango cairo libinput libcap pam gdk_pixbuf
+    wlroots wayland-protocols
+  ];
+
+  enableParallelBuilding = true;
+
+  mesonFlags = "-Dsway-version=${version}";
+
+  meta = with stdenv.lib; {
+    description = "i3-compatible window manager for Wayland";
+    homepage    = https://swaywm.org;
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ primeos synthetica ]; # Trying to keep it up-to-date.
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/default.nix b/nixpkgs/pkgs/applications/window-managers/sway/default.nix
new file mode 100644
index 000000000000..fb30f0073bfd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/sway/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub
+, cmake, pkgconfig, asciidoc, libxslt, docbook_xsl
+, wayland, wlc, libxkbcommon, pcre, json_c, dbus
+, pango, cairo, libinput, libcap, pam, gdk_pixbuf, libpthreadstubs
+, libXdmcp
+, buildDocs ? true
+}:
+
+stdenv.mkDerivation rec {
+  name = "sway-${version}";
+  version = "0.15.2";
+
+  src = fetchFromGitHub {
+    owner = "swaywm";
+    repo = "sway";
+    rev = version;
+    sha256 = "1p9j5gv85lsgj4z28qja07dqyvqk41w6mlaflvvm9yxafx477g5n";
+  };
+
+  nativeBuildInputs = [
+    cmake pkgconfig
+  ] ++ stdenv.lib.optional buildDocs [ asciidoc libxslt docbook_xsl ];
+  buildInputs = [
+    wayland wlc libxkbcommon pcre json_c dbus
+    pango cairo libinput libcap pam gdk_pixbuf libpthreadstubs
+    libXdmcp
+  ];
+
+  enableParallelBuilding = true;
+
+  cmakeFlags = "-DVERSION=${version} -DLD_LIBRARY_PATH=/run/opengl-driver/lib:/run/opengl-driver-32/lib";
+
+  meta = with stdenv.lib; {
+    description = "i3-compatible window manager for Wayland";
+    homepage    = https://swaywm.org;
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ primeos ]; # Trying to keep it up-to-date.
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix b/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix
new file mode 100644
index 000000000000..86c91347f253
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, asciidoc, libxcb, xcbutil, xcbutilkeysyms
+, xcbutilwm
+}:
+
+stdenv.mkDerivation rec {
+  name = "sxhkd-${version}";
+  version = "0.5.9";
+
+  src = fetchFromGitHub {
+    owner = "baskerville";
+    repo = "sxhkd";
+    rev = version;
+    sha256 = "0cw547x7vky55k3ksrmzmrra4zhslqcwq9xw0y4cmbvy4s1qf64v";
+  };
+
+  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/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix b/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix
new file mode 100644
index 000000000000..a9c0f993d775
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/tabbed/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchgit, xproto, libX11, libXft, customConfig ? null, patches ? [] }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  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 = [ xproto 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/nixpkgs/pkgs/applications/window-managers/tabbed/xft.patch b/nixpkgs/pkgs/applications/window-managers/tabbed/xft.patch
new file mode 100644
index 000000000000..f4f1e82e7052
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/tabbed/xft.patch
@@ -0,0 +1,234 @@
+diff --git a/config.def.h b/config.def.h
+index b3da7f0..ce43686 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -1,7 +1,7 @@
+ /* See LICENSE file for copyright and license details. */
+ 
+ /* appearance */
+-static const char font[]        = "-*-*-medium-*-*-*-14-*-*-*-*-*-*-*";
++static const char font[]        = "monospace-9";
+ static const char* normbgcolor  = "#222222";
+ static const char* normfgcolor  = "#cccccc";
+ static const char* selbgcolor   = "#555555";
+diff --git a/config.mk b/config.mk
+index dd741e4..ed3a2e9 100644
+--- a/config.mk
++++ b/config.mk
+@@ -9,7 +9,7 @@ MANPREFIX = ${PREFIX}/share/man
+ 
+ # includes and libs
+ INCS = -I. -I/usr/include
+-LIBS = -L/usr/lib -lc -lX11
++LIBS = -L/usr/lib -lc -lXft -lX11
+ 
+ # flags
+ CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE
+diff --git a/tabbed.c b/tabbed.c
+index b15f9cb..6e50c41 100644
+--- a/tabbed.c
++++ b/tabbed.c
+@@ -15,6 +15,7 @@
+ #include <X11/Xproto.h>
+ #include <X11/Xutil.h>
+ #include <X11/XKBlib.h>
++#include <X11/Xft/Xft.h>
+ 
+ #include "arg.h"
+ 
+@@ -64,17 +65,16 @@ typedef struct {
+ 
+ typedef struct {
+ 	int x, y, w, h;
+-	unsigned long norm[ColLast];
+-	unsigned long sel[ColLast];
+-	unsigned long urg[ColLast];
++	XftColor norm[ColLast];
++	XftColor sel[ColLast];
++	XftColor urg[ColLast];
+ 	Drawable drawable;
+ 	GC gc;
+ 	struct {
+ 		int ascent;
+ 		int descent;
+ 		int height;
+-		XFontSet set;
+-		XFontStruct *xfont;
++		XftFont *xfont;
+ 	} font;
+ } DC; /* draw context */
+ 
+@@ -97,7 +97,7 @@ static void unmapnotify(const XEvent *e);
+ static void destroynotify(const XEvent *e);
+ static void die(const char *errstr, ...);
+ static void drawbar(void);
+-static void drawtext(const char *text, unsigned long col[ColLast]);
++static void drawtext(const char *text, XftColor col[ColLast]);
+ static void *ecalloc(size_t n, size_t size);
+ static void *erealloc(void *o, size_t size);
+ static void expose(const XEvent *e);
+@@ -107,7 +107,7 @@ static void focusonce(const Arg *arg);
+ static void fullscreen(const Arg *arg);
+ static char* getatom(int a);
+ static int getclient(Window w);
+-static unsigned long getcolor(const char *colstr);
++static XftColor getcolor(const char *colstr);
+ static int getfirsttab(void);
+ static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
+ static void initfont(const char *fontstr);
+@@ -220,12 +220,6 @@ cleanup(void) {
+ 	free(clients);
+ 	clients = NULL;
+ 
+-	if(dc.font.set) {
+-		XFreeFontSet(dpy, dc.font.set);
+-	} else {
+-		XFreeFont(dpy, dc.font.xfont);
+-	}
+-
+ 	XFreePixmap(dpy, dc.drawable);
+ 	XFreeGC(dpy, dc.gc);
+ 	XDestroyWindow(dpy, win);
+@@ -315,7 +309,7 @@ die(const char *errstr, ...) {
+ 
+ void
+ drawbar(void) {
+-	unsigned long *col;
++	XftColor *col;
+ 	int c, cc, fc, width;
+ 	char *name = NULL;
+ 
+@@ -368,12 +362,13 @@ drawbar(void) {
+ }
+ 
+ void
+-drawtext(const char *text, unsigned long col[ColLast]) {
++drawtext(const char *text, XftColor col[ColLast]) {
+ 	int i, x, y, h, len, olen;
+ 	char buf[256];
++	XftDraw *d;
+ 	XRectangle r = { dc.x, dc.y, dc.w, dc.h };
+ 
+-	XSetForeground(dpy, dc.gc, col[ColBG]);
++	XSetForeground(dpy, dc.gc, col[ColBG].pixel);
+ 	XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
+ 	if(!text)
+ 		return;
+@@ -394,13 +389,12 @@ drawtext(const char *text, unsigned long col[ColLast]) {
+ 		for(i = len; i && i > len - 3; buf[--i] = '.');
+ 	}
+ 
+-	XSetForeground(dpy, dc.gc, col[ColFG]);
+-	if(dc.font.set) {
+-		XmbDrawString(dpy, dc.drawable, dc.font.set,
+-				dc.gc, x, y, buf, len);
+-	} else {
+-		XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
+-	}
++	XSetForeground(dpy, dc.gc, col[ColFG].pixel);
++
++	d = XftDrawCreate(dpy, dc.drawable, DefaultVisual(dpy, screen), DefaultColormap(dpy,screen));
++
++	XftDrawStringUtf8(d, &col[ColFG], dc.font.xfont, x, y, (XftChar8 *) buf, len);
++	XftDrawDestroy(d);
+ }
+ 
+ void *
+@@ -537,15 +531,14 @@ getclient(Window w) {
+ 	return -1;
+ }
+ 
+-unsigned long
++XftColor
+ getcolor(const char *colstr) {
+-	Colormap cmap = DefaultColormap(dpy, screen);
+-	XColor color;
++	XftColor color;
+ 
+-	if(!XAllocNamedColor(dpy, cmap, colstr, &color, &color))
++	if(!XftColorAllocName(dpy, DefaultVisual(dpy, screen), DefaultColormap(dpy, screen), colstr, &color))
+ 		die("tabbed: cannot allocate color '%s'\n", colstr);
+ 
+-	return color.pixel;
++	return color;
+ }
+ 
+ int
+@@ -594,41 +587,11 @@ gettextprop(Window w, Atom atom, char *text, unsigned int size) {
+ 
+ void
+ initfont(const char *fontstr) {
+-	char *def, **missing, **font_names;
+-	int i, n;
+-	XFontStruct **xfonts;
+-
+-	missing = NULL;
+-	if(dc.font.set)
+-		XFreeFontSet(dpy, dc.font.set);
+-
+-	dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def);
+-	if(missing) {
+-		while(n--)
+-			fprintf(stderr, "tabbed: missing fontset: %s\n", missing[n]);
+-		XFreeStringList(missing);
+-	}
+-
+-	if(dc.font.set) {
+-		dc.font.ascent = dc.font.descent = 0;
+-		n = XFontsOfFontSet(dc.font.set, &xfonts, &font_names);
+-		for(i = 0, dc.font.ascent = 0, dc.font.descent = 0; i < n; i++) {
+-			dc.font.ascent = MAX(dc.font.ascent, (*xfonts)->ascent);
+-			dc.font.descent = MAX(dc.font.descent,(*xfonts)->descent);
+-			xfonts++;
+-		}
+-	} else {
+-		if(dc.font.xfont)
+-			XFreeFont(dpy, dc.font.xfont);
+-		dc.font.xfont = NULL;
+-		if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))
+-				&& !(dc.font.xfont = XLoadQueryFont(dpy, "fixed"))) {
+-			die("tabbed: cannot load font: '%s'\n", fontstr);
+-		}
++	if(!(dc.font.xfont = XftFontOpenName(dpy,screen,fontstr)) && !(dc.font.xfont = XftFontOpenName(dpy,screen,"fixed")))
++		die("error, cannot load font: '%s'\n", fontstr);
+ 
+-		dc.font.ascent = dc.font.xfont->ascent;
+-		dc.font.descent = dc.font.xfont->descent;
+-	}
++	dc.font.ascent = dc.font.xfont->ascent;
++	dc.font.descent = dc.font.xfont->descent;
+ 	dc.font.height = dc.font.ascent + dc.font.descent;
+ }
+ 
+@@ -1000,11 +963,9 @@ setup(void) {
+ 	dc.drawable = XCreatePixmap(dpy, root, ww, wh,
+ 			DefaultDepth(dpy, screen));
+ 	dc.gc = XCreateGC(dpy, root, 0, 0);
+-	if(!dc.font.set)
+-		XSetFont(dpy, dc.gc, dc.font.xfont->fid);
+ 
+ 	win = XCreateSimpleWindow(dpy, root, wx, wy, ww, wh, 0,
+-			dc.norm[ColFG], dc.norm[ColBG]);
++			dc.norm[ColFG].pixel, dc.norm[ColBG].pixel);
+ 	XMapRaised(dpy, win);
+ 	XSelectInput(dpy, win, SubstructureNotifyMask|FocusChangeMask|
+ 			ButtonPressMask|ExposureMask|KeyPressMask|PropertyChangeMask|
+@@ -1070,15 +1031,9 @@ spawn(const Arg *arg) {
+ 
+ int
+ textnw(const char *text, unsigned int len) {
+-	XRectangle r;
+-
+-	if(dc.font.set) {
+-		XmbTextExtents(dc.font.set, text, len, NULL, &r);
+-
+-		return r.width;
+-	}
+-
+-	return XTextWidth(dc.font.xfont, text, len);
++	XGlyphInfo ext;
++	XftTextExtentsUtf8(dpy, dc.font.xfont, (XftChar8 *) text, len, &ext);
++	return ext.xOff;
+ }
+ 
+ void
diff --git a/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix b/nixpkgs/pkgs/applications/window-managers/taffybar/default.nix
new file mode 100644
index 000000000000..681a5baec82c
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/trayer/default.nix b/nixpkgs/pkgs/applications/window-managers/trayer/default.nix
new file mode 100644
index 000000000000..5aec0973a7c6
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/velox/default.nix b/nixpkgs/pkgs/applications/window-managers/velox/default.nix
new file mode 100644
index 000000000000..f8cb6c266839
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/velox/default.nix
@@ -0,0 +1,59 @@
+{ lib, stdenv, fetchFromGitHub, pkgconfig, makeWrapper, newScope
+, libxkbcommon
+, wayland, pixman, fontconfig
+, stConf ? null, stPatches ? []
+}:
+
+let
+  callPackage = newScope self;
+  self = {
+    swc = callPackage ./swc.nix {};
+    wld = callPackage ./wld.nix {};
+    dmenu-velox = callPackage ./dmenu.nix {};
+    st-velox = callPackage ./st.nix {
+      conf = stConf;
+      patches = stPatches;
+    };
+  };
+in with self; stdenv.mkDerivation rec {
+  name = "velox-${version}";
+  version = "git-2017-07-04";
+
+  src = fetchFromGitHub {
+    owner = "michaelforney";
+    repo = "velox";
+    rev = "0b1d3d62861653d92d0a1056855a84fcef661bc0";
+    sha256 = "0p5ra5p5w21wl696rmv0vdnl7jnri5iwnxfs6nl6miwydhq2dmci";
+  };
+
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+  buildInputs = [ swc libxkbcommon wld wayland pixman fontconfig ];
+
+  propagatedUserEnvPkgs = [ swc ];
+
+  makeFlags = "PREFIX=$(out)";
+  preBuild = ''
+    substituteInPlace config.c \
+      --replace /etc/velox.conf $out/etc/velox.conf
+  '';
+  installPhase = ''
+    PREFIX=$out make install
+    mkdir -p $out/etc
+    cp velox.conf.sample $out/etc/velox.conf
+  '';
+  postFixup = ''
+    wrapProgram $out/bin/velox \
+      --prefix PATH : "${stdenv.lib.makeBinPath [ dmenu-velox st-velox ]}"
+  '';
+
+  enableParallelBuilding = false; # https://hydra.nixos.org/build/79799608
+
+  meta = {
+    description = "velox window manager";
+    homepage    = "https://github.com/michaelforney/velox";
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/velox/dmenu.nix b/nixpkgs/pkgs/applications/window-managers/velox/dmenu.nix
new file mode 100644
index 000000000000..01360e5af0b3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/velox/dmenu.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchFromGitHub #, libX11, libXinerama, enableXft, libXft, zlib
+, swc, wld, wayland, libxkbcommon, pixman, fontconfig
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "dmenu-velox-${version}";
+  version = "git-2017-04-07";
+
+  src = fetchFromGitHub {
+    owner = "michaelforney";
+    repo = "dmenu";
+    rev = "f385d9d18813071b4b4257bf8d4d572daeda0e70";
+    sha256 = "14j8jv0nlybinhzkgd6dplvng9zy8p292prlx39w0k4fm6x5nv6y";
+  };
+
+  buildInputs = [ swc wld wayland libxkbcommon pixman fontconfig ];
+
+  postPatch = ''
+    sed -ri -e 's!\<(dmenu|dmenu_path)\>!'"$out/bin"'/&!g' dmenu_run
+  '';
+
+  preConfigure = [
+    ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g; s@/usr/share/swc@${swc}/share/swc@g" config.mk''
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A generic, highly customizable, and efficient menu for the X Window System";
+    homepage = https://tools.suckless.org/dmenu;
+    license = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ ];
+    platforms = with stdenv.lib.platforms; all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/velox/st.nix b/nixpkgs/pkgs/applications/window-managers/velox/st.nix
new file mode 100644
index 000000000000..2d73df650463
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/velox/st.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, pkgconfig, writeText
+, ncurses, wayland, wayland-protocols, wld, libxkbcommon, fontconfig, pixman
+, conf, patches }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "st-velox-${version}";
+  version = "git-2016-12-22";
+
+  src = fetchFromGitHub {
+    owner = "michaelforney";
+    repo = "st";
+    rev = "b27f17da65f74b0a923952601873524e03b4d047";
+    sha256 = "17aa4bz5g14jvqghk2c8mw77hb8786s07pv814rmlk7nnsavmp3i";
+  };
+
+  inherit patches;
+
+  configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+  preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ncurses wayland wayland-protocols wld libxkbcommon fontconfig pixman ];
+
+  NIX_LDFLAGS = "-lfontconfig";
+
+  installPhase = ''
+    TERMINFO=$out/share/terminfo make install PREFIX=$out
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = https://st.suckless.org/;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/velox/swc.nix b/nixpkgs/pkgs/applications/window-managers/velox/swc.nix
new file mode 100644
index 000000000000..a2f98b8b65e7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/velox/swc.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, pkgconfig
+, wld, wayland, wayland-protocols, fontconfig, pixman, libdrm, libinput, libevdev, libxkbcommon, libxcb, xcbutilwm
+}:
+
+stdenv.mkDerivation rec {
+  name = "swc-${version}";
+  version = "git-2017-06-28";
+
+  src = fetchFromGitHub {
+    owner = "michaelforney";
+    repo = "swc";
+    rev = "5b20050872f8ad29cfc97729f8af47b6b3df5393";
+    sha256 = "1lxpm17v5d8png6ixc0zn0w00xgrhz2n5b8by9vx6800b18246z8";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ wld wayland wayland-protocols fontconfig pixman libdrm libinput libevdev libxkbcommon libxcb xcbutilwm ];
+
+  prePatch = ''
+    substituteInPlace launch/local.mk --replace 4755 755
+  '';
+
+  makeFlags = "PREFIX=$(out)";
+  installPhase = "PREFIX=$out make install";
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A library for making a simple Wayland compositor";
+    homepage    = src.meta.homepage;
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/velox/wld.nix b/nixpkgs/pkgs/applications/window-managers/velox/wld.nix
new file mode 100644
index 000000000000..d85f8212ec47
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/velox/wld.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub, pkgconfig
+, wayland, fontconfig, pixman, freetype, libdrm
+}:
+
+stdenv.mkDerivation rec {
+  name = "wld-${version}";
+  version = "git-2017-10-31";
+
+  src = fetchFromGitHub {
+    owner = "michaelforney";
+    repo = "wld";
+    rev = "b4e902bbecb678c45485b52c3aa183cbc932c595";
+    sha256 = "0j2n776flnzyw3vhxl0r8h1c48wrihi4g6bs2z8j4hbw5pnwq1k6";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ wayland fontconfig pixman freetype libdrm ];
+
+  makeFlags = "PREFIX=$(out)";
+  installPhase = "PREFIX=$out make install";
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A primitive drawing library targeted at Wayland";
+    homepage    = src.meta.homepage;
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/vwm/default.nix b/nixpkgs/pkgs/applications/window-managers/vwm/default.nix
new file mode 100644
index 000000000000..3423b0e181d5
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/way-cooler/bar.diff b/nixpkgs/pkgs/applications/window-managers/way-cooler/bar.diff
new file mode 100644
index 000000000000..e60ebabe9833
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/way-cooler/bar.diff
@@ -0,0 +1,37 @@
+--- bar.py.txt.orig	2017-12-05 18:10:20.108569182 +0300
++++ ./bar.py.txt	2017-12-10 21:42:10.622781945 +0300
+@@ -5,6 +5,7 @@ import datetime
+ import json
+ from time import sleep
+ from pydbus import SessionBus
++from glob import glob
+ 
+ BUS = SessionBus()
+ LAYOUT = BUS.get(bus_name='org.way-cooler', object_path='/org/way_cooler/Layout')
+@@ -32,7 +33,7 @@ def main():
+             output += func()
+         print(output)
+         sys.stdout.flush()
+-        sleep(.1)
++        sleep(1)
+ 
+ def get_workspaces(layout_json):
+     """Gets the workspace names from the layout json"""
+@@ -49,9 +50,14 @@ def get_time():
+     return datetime.datetime.now().strftime('  %a %b %d  %H:%M  ')
+ 
+ def get_battery():
+-    with open("/sys/class/power_supply/BAT0/capacity", "r") as f:
+-        bat = f.readlines()
+-    return bat[0].strip() + "% Battery"
++    try:
++        [path] = glob("/sys/class/power_supply/BAT?/capacity")
++        with open(path, "r") as f:
++            bat = f.readlines()
++            result = bat[0].strip() + "% Battery"
++    except Exception:
++        result = ""
++    return result
+ 
+ def format_workspaces(layout, workspaces, active_workspace):
+     workspaces = "  " + workspaces.replace(" ", "  ") + "  "
diff --git a/nixpkgs/pkgs/applications/window-managers/way-cooler/default.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/default.nix
new file mode 100644
index 000000000000..442bf5e08dfa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/way-cooler/default.nix
@@ -0,0 +1,99 @@
+{ stdenv, fetchurl, makeWrapper, symlinkJoin, writeShellScriptBin, callPackage, defaultCrateOverrides
+, wayland, wlc, cairo, libxkbcommon, pam, python3Packages, lemonbar, gdk_pixbuf
+}:
+
+let
+  # refer to
+  # https://github.com/way-cooler/way-cooler.github.io/blob/master/way-cooler-release-i3-default.sh
+  # for version numbers
+  fakegit = writeShellScriptBin "git" ''
+    echo ""
+  '';
+  way-cooler = (((callPackage ./way-cooler.nix {}).way_cooler { builtin-lua = true; }).override {
+    crateOverrides = defaultCrateOverrides // {
+
+    way-cooler = attrs: { buildInputs = [ wlc cairo libxkbcommon fakegit gdk_pixbuf wayland ]; };
+  };}).overrideAttrs (oldAttrs: rec {
+    nativeBuildInputs = [ makeWrapper ];
+
+    postBuild = ''
+      mkdir -p $out/etc
+      cp -r config $out/etc/way-cooler
+    '';
+  });
+  wc-bg = ((callPackage ./wc-bg.nix {}).wc_bg {}).overrideAttrs (oldAttrs: rec {
+    nativeBuildInputs = [ makeWrapper ];
+
+    postFixup = ''
+      makeWrapper $out/bin/wc-bg $out/bin/wc-bg \
+        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ wayland ]}"
+    '';
+  });
+  wc-grab = ((callPackage ./wc-grab.nix {}).wc_grab {}).overrideAttrs (oldAttrs: rec {
+  });
+  wc-lock = (((callPackage ./wc-lock.nix {}).wc_lock {}).override {
+    crateOverrides = defaultCrateOverrides // {
+
+    wc-lock = attrs: { buildInputs = [ pam ]; };
+  };}).overrideAttrs (oldAttrs: rec {
+    nativeBuildInputs = [ makeWrapper ];
+
+    postFixup = ''
+      makeWrapper $out/bin/wc-lock $out/bin/wc-lock \
+        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libxkbcommon wayland ]}"
+    '';
+  });
+  # https://github.com/way-cooler/way-cooler/issues/446
+  wc-bar-bare = stdenv.mkDerivation {
+    name = "wc-bar-bare-2017-12-05";
+
+    src = fetchurl {
+      url = "https://github.com/way-cooler/way-cooler/files/1529701/bar.py.txt";
+      sha256 = "1n1rf1k02i6vimr9n0iksf65phhyy96i5wh5d0rrx7yqki3dh6ka";
+    };
+
+    unpackPhase = "cat $src > bar.py.txt";
+
+    # https://github.com/way-cooler/way-cooler/issues/446#issuecomment-350567833
+    patches = [ ./bar.diff ];
+
+    pythonPath = with python3Packages; [ pydbus ];
+    nativeBuildInputs = with python3Packages; [ python wrapPython ];
+
+    installPhase = ''
+      install -Dm755 bar.py.txt $out/bin/bar.py
+      patchShebangs $out/bin/bar.py
+      wrapPythonPrograms
+    '';
+  };
+  wc-bar = writeShellScriptBin "lemonbar" ''
+    SELECTED="#000000"
+    SELECTED_OTHER_WORKSPACE="#555555"
+    BACKGROUND="#4E2878"
+    # https://github.com/way-cooler/way-cooler/issues/446#issuecomment-349471439
+    sleep 5
+    ${wc-bar-bare}/bin/bar.py $SELECTED $BACKGROUND $SELECTED_OTHER_WORKSPACE 2> /tmp/bar_debug.txt | ${lemonbar}/bin/lemonbar -B $BACKGROUND -F "#FFF" -n "lemonbar" -p -d
+  '';
+in symlinkJoin rec {
+  version = "0.8.0";
+  name = "way-cooler-with-extensions-${version}";
+  paths = [ way-cooler wc-bg wc-grab wc-lock wc-bar ];
+
+  meta = with stdenv.lib; {
+    description = "Customizable Wayland compositor (window manager)";
+    longDescription = ''
+      Way Cooler is a customizable tiling window manager written in Rust
+      for Wayland and configurable using Lua. It is heavily inspired by
+      the tiling and extensibility of both i3 and awesome. While Lua is
+      used for the configuration, like awesome, extensions for Way Cooler
+      are implemented as totally separate client programs using D-Bus.
+      This means that you can use virtually any language to extend the
+      window manager, with much better guarantees about interoperability
+      between extensions.
+    '';
+    homepage = http://way-cooler.org/;
+    license = with licenses; [ mit ];
+    maintainers = [ maintainers.miltador ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/way-cooler/way-cooler.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/way-cooler.nix
new file mode 100644
index 000000000000..d7816be56256
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/way-cooler/way-cooler.nix
@@ -0,0 +1,1855 @@
+# Generated by carnix 0.6.5: carnix -o way-cooler.nix Cargo.lock
+{ lib, stdenv, buildRustCrate, fetchgit }:
+let kernel = stdenv.buildPlatform.parsed.kernel.name;
+    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+    mapFeatures = features: map (fun: fun { features = features; });
+    mkFeatures = feat: lib.lists.foldl (features: featureName:
+      if feat.${featureName} or false then
+        [ featureName ] ++ features
+      else
+        features
+    ) [] (builtins.attrNames feat);
+in
+rec {
+  way_cooler = f: way_cooler_0_8_0 { features = way_cooler_0_8_0_features { way_cooler_0_8_0 = f; }; };
+  aho_corasick_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "aho-corasick";
+    version = "0.5.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1igab46mvgknga3sxkqc917yfff0wsjxjzabdigmh240p5qxqlnn";
+    libName = "aho_corasick";
+    crateBin = [ {  name = "aho-corasick-dot"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.4.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0an03kibhfcc0mcxf6a0mvbab0s7cggnvflw8jn0b15i351h828c";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.6.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1znq4b770mdp3kdj9yz199ylc2pmf8l5j2f281jjrcfhg1mm22h6";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.7.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.9.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "18h073l5jd88rx4qdr95fjddr9rk79pb1aqnshzdnw16cfmb9rws";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "1.0.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0p4b3nr0s5nda2qmm7xdhnvh4lkqk3xd8l9ffmwbvqw137vx7mj1";
+    inherit dependencies buildDependencies features;
+  };
+  c_vec_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "c_vec";
+    version = "1.2.1";
+    authors = [ "Guillaume Gomez <guillaume1.gomez@gmail.com>" ];
+    sha256 = "15gm72wx9kd0n51454i58rmpkmig8swghrj2440frxxi9kqg97xd";
+    inherit dependencies buildDependencies features;
+  };
+  cairo_rs_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cairo-rs";
+    version = "0.2.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "0bcbhbyips15b7la4r43p4x57jv1w2ll8iwg9lxwvzz5k6c7iwvd";
+    libName = "cairo";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  cairo_sys_rs_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cairo-sys-rs";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "062nxihlydci65pyy2ldn7djkc9sm7a5xvkl8pxrsxfxvfapm5br";
+    libName = "cairo_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  cfg_if_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cfg-if";
+    version = "0.1.2";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0x06hvrrqy96m97593823vvxcgvjaxckghwyy2jcyc8qc7c6cyhi";
+    inherit dependencies buildDependencies features;
+  };
+  dbus_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dbus";
+    version = "0.4.1";
+    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+    sha256 = "0qw32qj2rys318h780klxlznkwg93dfimbn8mc34m4940l8v00g9";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  dbus_macros_0_0_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dbus-macros";
+    version = "0.0.6";
+    authors = [ "Antoni Boucher <bouanto@zoho.com>" ];
+    sha256 = "1nymk2hzzgyafyr5nfa4r4frx4hml3wlwgzfr9b69vmcvn3d2jyd";
+    inherit dependencies buildDependencies features;
+  };
+  dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dlib";
+    version = "0.3.1";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
+    inherit dependencies buildDependencies features;
+  };
+  dlib_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dlib";
+    version = "0.4.0";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "08sy43rji5dyhyz8r4i0dz6zan1r1dz8sh6fk3c1jyhy8v8s96jr";
+    inherit dependencies buildDependencies features;
+  };
+  dtoa_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dtoa";
+    version = "0.4.2";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1bxsh6fags7nr36vlz07ik2a1rzyipc8x1y30kjk832hf2pzadmw";
+    inherit dependencies buildDependencies features;
+  };
+  dummy_rustwlc_0_7_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dummy-rustwlc";
+    version = "0.7.1";
+    authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Preston Carpenter <APragmaticPlace@gmail.com>" ];
+    sha256 = "13priwnxpjvmym6yh9v9x1230ca04cba7bzbnn21pbvqngis1y88";
+    inherit dependencies buildDependencies features;
+  };
+  env_logger_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "env_logger";
+    version = "0.3.5";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1mvxiaaqsyjliv1mm1qaagjqiccw11mdyi3n9h9rf8y6wj15zycw";
+    inherit dependencies buildDependencies features;
+  };
+  fixedbitset_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fixedbitset";
+    version = "0.1.8";
+    authors = [ "bluss" ];
+    sha256 = "18qr6w8jlfvhq825dr0mv9k0xqgb43sshdihbarc9khi9cz910a2";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon";
+    version = "0.3.2";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "1zhxksplv52nlqd4j21h8462b5s913ngnhd303qsxsxn8dpaxgkq";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_sys_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon-sys";
+    version = "0.3.2";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "0p8mrhg8pxk4kpzziv6nlxd8xgkj916gsg2b0x2mvf9dxwzrqhnk";
+    inherit dependencies buildDependencies features;
+  };
+  gcc_0_3_54_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gcc";
+    version = "0.3.54";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "07a5i47r8achc6gxsba3ga17h9gnh4b9a2cak8vjg4hx62aajkr4";
+    inherit dependencies buildDependencies features;
+  };
+  gdk_pixbuf_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gdk-pixbuf";
+    version = "0.2.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "082z1s30haa59ax35wsv06mj8z8bhhq0fac36g01qa77kpiphj5y";
+    libName = "gdk_pixbuf";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  gdk_pixbuf_sys_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gdk-pixbuf-sys";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "1r98zdqqik3hh1l10jmhhcjx59yk4m0bs9pc7hnkwp2p6gm968vp";
+    libName = "gdk_pixbuf_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  getopts_0_2_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "getopts";
+    version = "0.2.15";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "14wm893ihscwwbwpd1xvjm23slaidridbl2p2ghwkx69xfzm9333";
+    inherit dependencies buildDependencies features;
+  };
+  gio_sys_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gio-sys";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "064lv6h3qfgjzc6pbbxgln24b2fq9gxzh78z6d7fwfa97azllv2l";
+    libName = "gio_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  glib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glib";
+    version = "0.3.1";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "00s3n0pd8by1fk2l01mxmbnqq4ff6wadnkcf9jbjvr1l9bzgyqbl";
+    inherit dependencies buildDependencies features;
+  };
+  glib_sys_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glib-sys";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "153i1zmk824hdf8agkaqcgddlwpvgng71n7bdpaav5f4zzlfyp2w";
+    libName = "glib_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  gobject_sys_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gobject-sys";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "00zmcbzqfhn9w01cphhf3hbq8ldd9ajba7x07z59vv1gdq6wjzli";
+    libName = "gobject_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  itoa_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "itoa";
+    version = "0.3.4";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1nfkzz6vrgj0d9l3yzjkkkqzdgs68y294fjdbl7jq118qi8xc9d9";
+    inherit dependencies buildDependencies features;
+  };
+  json_macro_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "json_macro";
+    version = "0.1.1";
+    authors = [ "Denis Kolodin <deniskolodin@gmail.com>" ];
+    sha256 = "0hl2934shpwqbszrq035valbdz9y8p7dza183brygy5dbvivcyqy";
+    inherit dependencies buildDependencies features;
+  };
+  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "kernel32-sys";
+    version = "0.2.2";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+    libName = "kernel32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "0.2.11";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1x6871cvpy5b96yv4c7jvpq316fp5d4609s9py7qk6cd6x9k34vm";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "1.0.0";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0wfvqyr2nvx2mbsrscg5y7gfa9skhb8p72ayanl8vl49pw24v4fh";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.34";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "11jmqdxmv0ka10ay0l8nzx0nl7s2lc3dbrnh1mgbr2grzwdyxi2s";
+    inherit dependencies buildDependencies features;
+  };
+  libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libloading";
+    version = "0.3.4";
+    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+    sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  libloading_0_4_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libloading";
+    version = "0.4.3";
+    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+    sha256 = "1cgb6xbadm59gc3cq733wrzsp59914hrjam0fan5gn1z100b6319";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  log_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "log";
+    version = "0.3.9";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "19i9pwp7lhaqgzangcpw00kc3zsgcqcx84crv07xgz3v7d3kvfa2";
+    inherit dependencies buildDependencies features;
+  };
+  log_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "log";
+    version = "0.4.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0d6m7c1cr6sj3kk47801zyjgnzyl94yh2ra9gxc3waljza7wvx92";
+    inherit dependencies buildDependencies features;
+  };
+  memchr_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "memchr";
+    version = "0.1.11";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
+    sha256 = "0x73jghamvxxq5fsw9wb0shk5m6qp3q6fsf0nibn0i6bbqkw91s8";
+    inherit dependencies buildDependencies features;
+  };
+  nix_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "nix";
+    version = "0.6.0";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "1bgh75y897isnxbw3vd79vns9h6q4d59p1cgv9c4laysyw6fkqwf";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  nix_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "nix";
+    version = "0.9.0";
+    authors = [ "The nix-rust Project Developers" ];
+    sha256 = "00p63bphzwwn460rja5l2wcpgmv7ljf7illf6n95cppx63d180q0";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_1_41_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.1.41";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "134gv890n1gv8v0jys55k0940gqp2hibgf1fs8q9jmyk2xp1jp9m";
+    inherit dependencies buildDependencies features;
+  };
+  ordermap_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ordermap";
+    version = "0.3.2";
+    authors = [ "bluss" ];
+    sha256 = "13zw8i0gf3snihmg9xvd63sd3ffdhhv8bmgfwbwf4shqxh6h3sac";
+    inherit dependencies buildDependencies features;
+  };
+  petgraph_0_4_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "petgraph";
+    version = "0.4.10";
+    authors = [ "bluss" "mitchmindtree" ];
+    sha256 = "1fdh2hwkrbf716qxdiasjn8jspvshhykclj8mwafdd8h241159sj";
+    inherit dependencies buildDependencies features;
+  };
+  phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_codegen";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
+    inherit dependencies buildDependencies features;
+  };
+  phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_generator";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
+    inherit dependencies buildDependencies features;
+  };
+  phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_shared";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.9";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_19_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.19";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "19zx65w7rrrfnjifmjp2i80w9bc6ld7pcwnk5hmr9xszmmvhk8zp";
+    inherit dependencies buildDependencies features;
+  };
+  regex_0_1_80_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex";
+    version = "0.1.80";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0y4s8ghhx6sgzb35irwivm3w0l2hhqhmdcd2px9hirqnkagal9l6";
+    inherit dependencies buildDependencies features;
+  };
+  regex_syntax_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex-syntax";
+    version = "0.3.9";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1mzhphkbwppwd1zam2jkgjk550cqgf6506i87bw2yzrvcsraiw7m";
+    inherit dependencies buildDependencies features;
+  };
+  rlua_0_9_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rlua";
+    version = "0.9.7";
+    authors = [ "kyren <catherine@chucklefish.org>" ];
+    sha256 = "1671b5ga54aq49sqx69hvnjr732hf9jpqwswwxgpcqq8q05mfzgp";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc-serialize";
+    version = "0.3.24";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_version_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc_version";
+    version = "0.1.7";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
+    inherit dependencies buildDependencies features;
+  };
+  rustwlc_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustwlc";
+    version = "0.7.0";
+    authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
+    sha256 = "0gqi9pdw74al33ja25h33q68vnfklj3gpjgkiqqbr3gflgli5h1i";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  semver_0_1_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver";
+    version = "0.1.20";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
+    inherit dependencies buildDependencies features;
+  };
+  serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde";
+    version = "0.9.15";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
+    inherit dependencies buildDependencies features;
+  };
+  serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_json";
+    version = "0.9.10";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
+    inherit dependencies buildDependencies features;
+  };
+  siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "siphasher";
+    version = "0.2.2";
+    authors = [ "Frank Denis <github@pureftpd.org>" ];
+    sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+    inherit dependencies buildDependencies features;
+  };
+  target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "target_build_utils";
+    version = "0.3.1";
+    authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
+    sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  thread_id_2_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "thread-id";
+    version = "2.0.0";
+    authors = [ "Ruud van Asseldonk <dev@veniogames.com>" ];
+    sha256 = "06i3c8ckn97i5rp16civ2vpqbknlkx66dkrl070iw60nawi0kjc3";
+    inherit dependencies buildDependencies features;
+  };
+  thread_local_0_2_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "thread_local";
+    version = "0.2.7";
+    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+    sha256 = "19p0zrs24rdwjvpi10jig5ms3sxj00pv8shkr9cpddri8cdghqp7";
+    inherit dependencies buildDependencies features;
+  };
+  token_store_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "token_store";
+    version = "0.1.2";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1v7acraqyh6iibg87pwkxm41v783sminxm5k9f4ndra7r0vq4zvq";
+    inherit dependencies buildDependencies features;
+  };
+  utf8_ranges_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "utf8-ranges";
+    version = "0.1.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1cj548a91a93j8375p78qikaiam548xh84cb0ck8y119adbmsvbp";
+    inherit dependencies buildDependencies features;
+  };
+  uuid_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "uuid";
+    version = "0.3.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "16ak1c84dfkd8h33cvkxrkvc30k7b0bhrnza8ni2c0jsx85fpbip";
+    inherit dependencies buildDependencies features;
+  };
+  void_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "void";
+    version = "1.0.2";
+    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
+    sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
+    inherit dependencies buildDependencies features;
+  };
+  way_cooler_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "way-cooler";
+    version = "0.8.0";
+    authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
+    sha256 = "1xg7sg0ssc7a8nx7g6pjdfz9ndf0l7p2n0ydh3sqym3k5ifxi965";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_scanner_0_12_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-scanner";
+    version = "0.12.4";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "043s30i7da64a7inmwiib36ax681vw7zr0pfl54alcyc6pgyanb1";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_server_0_12_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-server";
+    version = "0.12.4";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "0m8565848l8f1h3mwlyxy3nfqv11vpl50y9qcpmp60hw8w2vw124";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.6.0";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "0m6db0kld2d4xv4ai9kxlqrh362hwi0030b4zbss0sfha1hx5mfl";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.9.10";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "011q7lfii222whvif39asvryl1sf3rc1fxp8qs8gh84kr4mna0k8";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_12_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.12.4";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1q9qyjl6bz356kh50lzvk48qbs87zbaqh5mhm6nlngkg1qrbvi6c";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.2.8";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  xcb_0_8_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "xcb";
+    version = "0.8.1";
+    authors = [ "Remi Thebault <remi.thebault@gmail.com>" ];
+    sha256 = "12jk8rbbmw3h9w0c7idvjph5bx0qpjgrv0nql2cfwy571j9qxb7j";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  xml_rs_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "xml-rs";
+    version = "0.7.0";
+    authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
+    sha256 = "12rynhqjgkg2hzy9x1d1232p9d9jm40bc3by5yzjv8gx089mflyb";
+    libPath = "src/lib.rs";
+    libName = "xml";
+    crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  aho_corasick_0_5_3 = { features?(aho_corasick_0_5_3_features {}) }: aho_corasick_0_5_3_ {
+    dependencies = mapFeatures features ([ memchr_0_1_11 ]);
+  };
+  aho_corasick_0_5_3_features = f: updateFeatures f (rec {
+    aho_corasick_0_5_3.default = (f.aho_corasick_0_5_3.default or true);
+    memchr_0_1_11.default = true;
+  }) [ memchr_0_1_11_features ];
+  bitflags_0_4_0 = { features?(bitflags_0_4_0_features {}) }: bitflags_0_4_0_ {
+    features = mkFeatures (features.bitflags_0_4_0 or {});
+  };
+  bitflags_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_4_0.default = (f.bitflags_0_4_0.default or true);
+  }) [];
+  bitflags_0_6_0 = { features?(bitflags_0_6_0_features {}) }: bitflags_0_6_0_ {};
+  bitflags_0_6_0_features = f: updateFeatures f (rec {
+    bitflags_0_6_0.default = (f.bitflags_0_6_0.default or true);
+  }) [];
+  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
+  bitflags_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
+  }) [];
+  bitflags_0_9_1 = { features?(bitflags_0_9_1_features {}) }: bitflags_0_9_1_ {
+    features = mkFeatures (features.bitflags_0_9_1 or {});
+  };
+  bitflags_0_9_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = (f.bitflags_0_9_1.default or true);
+    bitflags_0_9_1.example_generated =
+      (f.bitflags_0_9_1.example_generated or false) ||
+      (f.bitflags_0_9_1.default or false) ||
+      (bitflags_0_9_1.default or false);
+  }) [];
+  bitflags_1_0_1 = { features?(bitflags_1_0_1_features {}) }: bitflags_1_0_1_ {
+    features = mkFeatures (features.bitflags_1_0_1 or {});
+  };
+  bitflags_1_0_1_features = f: updateFeatures f (rec {
+    bitflags_1_0_1.default = (f.bitflags_1_0_1.default or true);
+    bitflags_1_0_1.example_generated =
+      (f.bitflags_1_0_1.example_generated or false) ||
+      (f.bitflags_1_0_1.default or false) ||
+      (bitflags_1_0_1.default or false);
+  }) [];
+  c_vec_1_2_1 = { features?(c_vec_1_2_1_features {}) }: c_vec_1_2_1_ {};
+  c_vec_1_2_1_features = f: updateFeatures f (rec {
+    c_vec_1_2_1.default = (f.c_vec_1_2_1.default or true);
+  }) [];
+  cairo_rs_0_2_0 = { features?(cairo_rs_0_2_0_features {}) }: cairo_rs_0_2_0_ {
+    dependencies = mapFeatures features ([ c_vec_1_2_1 cairo_sys_rs_0_4_0 libc_0_2_34 ]
+      ++ (if features.cairo_rs_0_2_0.glib or false then [ glib_0_3_1 ] else [])
+      ++ (if features.cairo_rs_0_2_0.glib-sys or false then [ glib_sys_0_4_0 ] else []))
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([]);
+    features = mkFeatures (features.cairo_rs_0_2_0 or {});
+  };
+  cairo_rs_0_2_0_features = f: updateFeatures f (rec {
+    c_vec_1_2_1.default = true;
+    cairo_rs_0_2_0.default = (f.cairo_rs_0_2_0.default or true);
+    cairo_rs_0_2_0.glib =
+      (f.cairo_rs_0_2_0.glib or false) ||
+      (f.cairo_rs_0_2_0.use_glib or false) ||
+      (cairo_rs_0_2_0.use_glib or false);
+    cairo_rs_0_2_0.glib-sys =
+      (f.cairo_rs_0_2_0.glib-sys or false) ||
+      (f.cairo_rs_0_2_0.use_glib or false) ||
+      (cairo_rs_0_2_0.use_glib or false);
+    cairo_rs_0_2_0.gtk-rs-lgpl-docs =
+      (f.cairo_rs_0_2_0.gtk-rs-lgpl-docs or false) ||
+      (f.cairo_rs_0_2_0.embed-lgpl-docs or false) ||
+      (cairo_rs_0_2_0.embed-lgpl-docs or false) ||
+      (f.cairo_rs_0_2_0.purge-lgpl-docs or false) ||
+      (cairo_rs_0_2_0.purge-lgpl-docs or false);
+    cairo_rs_0_2_0.use_glib =
+      (f.cairo_rs_0_2_0.use_glib or false) ||
+      (f.cairo_rs_0_2_0.default or false) ||
+      (cairo_rs_0_2_0.default or false);
+    cairo_sys_rs_0_4_0.default = true;
+    cairo_sys_rs_0_4_0.png =
+      (f.cairo_sys_rs_0_4_0.png or false) ||
+      (cairo_rs_0_2_0.png or false) ||
+      (f.cairo_rs_0_2_0.png or false);
+    cairo_sys_rs_0_4_0.v1_12 =
+      (f.cairo_sys_rs_0_4_0.v1_12 or false) ||
+      (cairo_rs_0_2_0.v1_12 or false) ||
+      (f.cairo_rs_0_2_0.v1_12 or false);
+    cairo_sys_rs_0_4_0.xcb =
+      (f.cairo_sys_rs_0_4_0.xcb or false) ||
+      (cairo_rs_0_2_0.xcb or false) ||
+      (f.cairo_rs_0_2_0.xcb or false);
+    glib_0_3_1.default = true;
+    glib_sys_0_4_0.default = true;
+    libc_0_2_34.default = true;
+    winapi_0_2_8.default = true;
+  }) [ c_vec_1_2_1_features cairo_sys_rs_0_4_0_features glib_0_3_1_features glib_sys_0_4_0_features libc_0_2_34_features winapi_0_2_8_features ];
+  cairo_sys_rs_0_4_0 = { features?(cairo_sys_rs_0_4_0_features {}) }: cairo_sys_rs_0_4_0_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.cairo_sys_rs_0_4_0 or {});
+  };
+  cairo_sys_rs_0_4_0_features = f: updateFeatures f (rec {
+    cairo_sys_rs_0_4_0.default = (f.cairo_sys_rs_0_4_0.default or true);
+    cairo_sys_rs_0_4_0.v1_12 =
+      (f.cairo_sys_rs_0_4_0.v1_12 or false) ||
+      (f.cairo_sys_rs_0_4_0.v1_14 or false) ||
+      (cairo_sys_rs_0_4_0.v1_14 or false);
+    cairo_sys_rs_0_4_0.x11 =
+      (f.cairo_sys_rs_0_4_0.x11 or false) ||
+      (f.cairo_sys_rs_0_4_0.xlib or false) ||
+      (cairo_sys_rs_0_4_0.xlib or false);
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_34_features pkg_config_0_3_9_features winapi_0_2_8_features ];
+  cfg_if_0_1_2 = { features?(cfg_if_0_1_2_features {}) }: cfg_if_0_1_2_ {};
+  cfg_if_0_1_2_features = f: updateFeatures f (rec {
+    cfg_if_0_1_2.default = (f.cfg_if_0_1_2.default or true);
+  }) [];
+  dbus_0_4_1 = { features?(dbus_0_4_1_features {}) }: dbus_0_4_1_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+  };
+  dbus_0_4_1_features = f: updateFeatures f (rec {
+    dbus_0_4_1.default = (f.dbus_0_4_1.default or true);
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ libc_0_2_34_features pkg_config_0_3_9_features ];
+  dbus_macros_0_0_6 = { features?(dbus_macros_0_0_6_features {}) }: dbus_macros_0_0_6_ {
+    dependencies = mapFeatures features ([ dbus_0_4_1 ]);
+  };
+  dbus_macros_0_0_6_features = f: updateFeatures f (rec {
+    dbus_0_4_1.default = true;
+    dbus_macros_0_0_6.default = (f.dbus_macros_0_0_6.default or true);
+  }) [ dbus_0_4_1_features ];
+  dlib_0_3_1 = { features?(dlib_0_3_1_features {}) }: dlib_0_3_1_ {
+    dependencies = mapFeatures features ([ libloading_0_3_4 ]);
+    features = mkFeatures (features.dlib_0_3_1 or {});
+  };
+  dlib_0_3_1_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = (f.dlib_0_3_1.default or true);
+    libloading_0_3_4.default = true;
+  }) [ libloading_0_3_4_features ];
+  dlib_0_4_0 = { features?(dlib_0_4_0_features {}) }: dlib_0_4_0_ {
+    dependencies = mapFeatures features ([ libloading_0_4_3 ]);
+    features = mkFeatures (features.dlib_0_4_0 or {});
+  };
+  dlib_0_4_0_features = f: updateFeatures f (rec {
+    dlib_0_4_0.default = (f.dlib_0_4_0.default or true);
+    libloading_0_4_3.default = true;
+  }) [ libloading_0_4_3_features ];
+  dtoa_0_4_2 = { features?(dtoa_0_4_2_features {}) }: dtoa_0_4_2_ {};
+  dtoa_0_4_2_features = f: updateFeatures f (rec {
+    dtoa_0_4_2.default = (f.dtoa_0_4_2.default or true);
+  }) [];
+  dummy_rustwlc_0_7_1 = { features?(dummy_rustwlc_0_7_1_features {}) }: dummy_rustwlc_0_7_1_ {
+    dependencies = mapFeatures features ([ bitflags_0_6_0 libc_0_2_34 wayland_sys_0_9_10 ]);
+  };
+  dummy_rustwlc_0_7_1_features = f: updateFeatures f (rec {
+    bitflags_0_6_0.default = true;
+    dummy_rustwlc_0_7_1.default = (f.dummy_rustwlc_0_7_1.default or true);
+    libc_0_2_34.default = true;
+    wayland_sys_0_9_10.default = true;
+    wayland_sys_0_9_10.dlopen = true;
+    wayland_sys_0_9_10.server = true;
+  }) [ bitflags_0_6_0_features libc_0_2_34_features wayland_sys_0_9_10_features ];
+  env_logger_0_3_5 = { features?(env_logger_0_3_5_features {}) }: env_logger_0_3_5_ {
+    dependencies = mapFeatures features ([ log_0_3_9 ]
+      ++ (if features.env_logger_0_3_5.regex or false then [ regex_0_1_80 ] else []));
+    features = mkFeatures (features.env_logger_0_3_5 or {});
+  };
+  env_logger_0_3_5_features = f: updateFeatures f (rec {
+    env_logger_0_3_5.default = (f.env_logger_0_3_5.default or true);
+    env_logger_0_3_5.regex =
+      (f.env_logger_0_3_5.regex or false) ||
+      (f.env_logger_0_3_5.default or false) ||
+      (env_logger_0_3_5.default or false);
+    log_0_3_9.default = true;
+    regex_0_1_80.default = true;
+  }) [ log_0_3_9_features regex_0_1_80_features ];
+  fixedbitset_0_1_8 = { features?(fixedbitset_0_1_8_features {}) }: fixedbitset_0_1_8_ {};
+  fixedbitset_0_1_8_features = f: updateFeatures f (rec {
+    fixedbitset_0_1_8.default = (f.fixedbitset_0_1_8.default or true);
+  }) [];
+  fuchsia_zircon_0_3_2 = { features?(fuchsia_zircon_0_3_2_features {}) }: fuchsia_zircon_0_3_2_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_1 fuchsia_zircon_sys_0_3_2 ]);
+  };
+  fuchsia_zircon_0_3_2_features = f: updateFeatures f (rec {
+    bitflags_1_0_1.default = true;
+    fuchsia_zircon_0_3_2.default = (f.fuchsia_zircon_0_3_2.default or true);
+    fuchsia_zircon_sys_0_3_2.default = true;
+  }) [ bitflags_1_0_1_features fuchsia_zircon_sys_0_3_2_features ];
+  fuchsia_zircon_sys_0_3_2 = { features?(fuchsia_zircon_sys_0_3_2_features {}) }: fuchsia_zircon_sys_0_3_2_ {};
+  fuchsia_zircon_sys_0_3_2_features = f: updateFeatures f (rec {
+    fuchsia_zircon_sys_0_3_2.default = (f.fuchsia_zircon_sys_0_3_2.default or true);
+  }) [];
+  gcc_0_3_54 = { features?(gcc_0_3_54_features {}) }: gcc_0_3_54_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.gcc_0_3_54 or {});
+  };
+  gcc_0_3_54_features = f: updateFeatures f (rec {
+    gcc_0_3_54.default = (f.gcc_0_3_54.default or true);
+    gcc_0_3_54.rayon =
+      (f.gcc_0_3_54.rayon or false) ||
+      (f.gcc_0_3_54.parallel or false) ||
+      (gcc_0_3_54.parallel or false);
+  }) [];
+  gdk_pixbuf_0_2_0 = { features?(gdk_pixbuf_0_2_0_features {}) }: gdk_pixbuf_0_2_0_ {
+    dependencies = mapFeatures features ([ gdk_pixbuf_sys_0_4_0 glib_0_3_1 glib_sys_0_4_0 gobject_sys_0_4_0 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([]);
+    features = mkFeatures (features.gdk_pixbuf_0_2_0 or {});
+  };
+  gdk_pixbuf_0_2_0_features = f: updateFeatures f (rec {
+    gdk_pixbuf_0_2_0.default = (f.gdk_pixbuf_0_2_0.default or true);
+    gdk_pixbuf_0_2_0.gtk-rs-lgpl-docs =
+      (f.gdk_pixbuf_0_2_0.gtk-rs-lgpl-docs or false) ||
+      (f.gdk_pixbuf_0_2_0.embed-lgpl-docs or false) ||
+      (gdk_pixbuf_0_2_0.embed-lgpl-docs or false) ||
+      (f.gdk_pixbuf_0_2_0.purge-lgpl-docs or false) ||
+      (gdk_pixbuf_0_2_0.purge-lgpl-docs or false);
+    gdk_pixbuf_0_2_0.v2_28 =
+      (f.gdk_pixbuf_0_2_0.v2_28 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_30 or false) ||
+      (gdk_pixbuf_0_2_0.v2_30 or false);
+    gdk_pixbuf_0_2_0.v2_30 =
+      (f.gdk_pixbuf_0_2_0.v2_30 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_32 or false) ||
+      (gdk_pixbuf_0_2_0.v2_32 or false);
+    gdk_pixbuf_0_2_0.v2_32 =
+      (f.gdk_pixbuf_0_2_0.v2_32 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_36 or false) ||
+      (gdk_pixbuf_0_2_0.v2_36 or false);
+    gdk_pixbuf_sys_0_4_0.default = true;
+    gdk_pixbuf_sys_0_4_0.v2_28 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_28 or false) ||
+      (gdk_pixbuf_0_2_0.v2_28 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_28 or false);
+    gdk_pixbuf_sys_0_4_0.v2_30 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_30 or false) ||
+      (gdk_pixbuf_0_2_0.v2_30 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_30 or false);
+    gdk_pixbuf_sys_0_4_0.v2_32 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_32 or false) ||
+      (gdk_pixbuf_0_2_0.v2_32 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_32 or false);
+    gdk_pixbuf_sys_0_4_0.v2_36 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_36 or false) ||
+      (gdk_pixbuf_0_2_0.v2_36 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_36 or false);
+    glib_0_3_1.default = true;
+    glib_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.default = true;
+    libc_0_2_34.default = true;
+  }) [ gdk_pixbuf_sys_0_4_0_features glib_0_3_1_features glib_sys_0_4_0_features gobject_sys_0_4_0_features libc_0_2_34_features ];
+  gdk_pixbuf_sys_0_4_0 = { features?(gdk_pixbuf_sys_0_4_0_features {}) }: gdk_pixbuf_sys_0_4_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 gio_sys_0_4_0 glib_sys_0_4_0 gobject_sys_0_4_0 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.gdk_pixbuf_sys_0_4_0 or {});
+  };
+  gdk_pixbuf_sys_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    gdk_pixbuf_sys_0_4_0.default = (f.gdk_pixbuf_sys_0_4_0.default or true);
+    gdk_pixbuf_sys_0_4_0.v2_28 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_28 or false) ||
+      (f.gdk_pixbuf_sys_0_4_0.v2_30 or false) ||
+      (gdk_pixbuf_sys_0_4_0.v2_30 or false);
+    gdk_pixbuf_sys_0_4_0.v2_30 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_30 or false) ||
+      (f.gdk_pixbuf_sys_0_4_0.v2_32 or false) ||
+      (gdk_pixbuf_sys_0_4_0.v2_32 or false);
+    gdk_pixbuf_sys_0_4_0.v2_32 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_32 or false) ||
+      (f.gdk_pixbuf_sys_0_4_0.v2_36 or false) ||
+      (gdk_pixbuf_sys_0_4_0.v2_36 or false);
+    gio_sys_0_4_0.default = true;
+    glib_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.default = true;
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ bitflags_0_9_1_features gio_sys_0_4_0_features glib_sys_0_4_0_features gobject_sys_0_4_0_features libc_0_2_34_features pkg_config_0_3_9_features ];
+  getopts_0_2_15 = { features?(getopts_0_2_15_features {}) }: getopts_0_2_15_ {};
+  getopts_0_2_15_features = f: updateFeatures f (rec {
+    getopts_0_2_15.default = (f.getopts_0_2_15.default or true);
+  }) [];
+  gio_sys_0_4_0 = { features?(gio_sys_0_4_0_features {}) }: gio_sys_0_4_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 glib_sys_0_4_0 gobject_sys_0_4_0 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.gio_sys_0_4_0 or {});
+  };
+  gio_sys_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    gio_sys_0_4_0.default = (f.gio_sys_0_4_0.default or true);
+    gio_sys_0_4_0.v2_34 =
+      (f.gio_sys_0_4_0.v2_34 or false) ||
+      (f.gio_sys_0_4_0.v2_36 or false) ||
+      (gio_sys_0_4_0.v2_36 or false);
+    gio_sys_0_4_0.v2_36 =
+      (f.gio_sys_0_4_0.v2_36 or false) ||
+      (f.gio_sys_0_4_0.v2_38 or false) ||
+      (gio_sys_0_4_0.v2_38 or false);
+    gio_sys_0_4_0.v2_38 =
+      (f.gio_sys_0_4_0.v2_38 or false) ||
+      (f.gio_sys_0_4_0.v2_40 or false) ||
+      (gio_sys_0_4_0.v2_40 or false);
+    gio_sys_0_4_0.v2_40 =
+      (f.gio_sys_0_4_0.v2_40 or false) ||
+      (f.gio_sys_0_4_0.v2_42 or false) ||
+      (gio_sys_0_4_0.v2_42 or false);
+    gio_sys_0_4_0.v2_42 =
+      (f.gio_sys_0_4_0.v2_42 or false) ||
+      (f.gio_sys_0_4_0.v2_44 or false) ||
+      (gio_sys_0_4_0.v2_44 or false);
+    gio_sys_0_4_0.v2_44 =
+      (f.gio_sys_0_4_0.v2_44 or false) ||
+      (f.gio_sys_0_4_0.v2_46 or false) ||
+      (gio_sys_0_4_0.v2_46 or false);
+    gio_sys_0_4_0.v2_46 =
+      (f.gio_sys_0_4_0.v2_46 or false) ||
+      (f.gio_sys_0_4_0.v2_48 or false) ||
+      (gio_sys_0_4_0.v2_48 or false);
+    gio_sys_0_4_0.v2_48 =
+      (f.gio_sys_0_4_0.v2_48 or false) ||
+      (f.gio_sys_0_4_0.v2_50 or false) ||
+      (gio_sys_0_4_0.v2_50 or false);
+    glib_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.default = true;
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ bitflags_0_9_1_features glib_sys_0_4_0_features gobject_sys_0_4_0_features libc_0_2_34_features pkg_config_0_3_9_features ];
+  glib_0_3_1 = { features?(glib_0_3_1_features {}) }: glib_0_3_1_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 glib_sys_0_4_0 gobject_sys_0_4_0 lazy_static_0_2_11 libc_0_2_34 ]);
+    features = mkFeatures (features.glib_0_3_1 or {});
+  };
+  glib_0_3_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    glib_0_3_1.default = (f.glib_0_3_1.default or true);
+    glib_0_3_1.v2_34 =
+      (f.glib_0_3_1.v2_34 or false) ||
+      (f.glib_0_3_1.v2_38 or false) ||
+      (glib_0_3_1.v2_38 or false);
+    glib_0_3_1.v2_38 =
+      (f.glib_0_3_1.v2_38 or false) ||
+      (f.glib_0_3_1.v2_40 or false) ||
+      (glib_0_3_1.v2_40 or false);
+    glib_0_3_1.v2_40 =
+      (f.glib_0_3_1.v2_40 or false) ||
+      (f.glib_0_3_1.v2_44 or false) ||
+      (glib_0_3_1.v2_44 or false);
+    glib_0_3_1.v2_44 =
+      (f.glib_0_3_1.v2_44 or false) ||
+      (f.glib_0_3_1.v2_46 or false) ||
+      (glib_0_3_1.v2_46 or false);
+    glib_0_3_1.v2_46 =
+      (f.glib_0_3_1.v2_46 or false) ||
+      (f.glib_0_3_1.v2_48 or false) ||
+      (glib_0_3_1.v2_48 or false);
+    glib_0_3_1.v2_48 =
+      (f.glib_0_3_1.v2_48 or false) ||
+      (f.glib_0_3_1.v2_50 or false) ||
+      (glib_0_3_1.v2_50 or false);
+    glib_sys_0_4_0.default = true;
+    glib_sys_0_4_0.v2_34 =
+      (f.glib_sys_0_4_0.v2_34 or false) ||
+      (glib_0_3_1.v2_34 or false) ||
+      (f.glib_0_3_1.v2_34 or false);
+    glib_sys_0_4_0.v2_38 =
+      (f.glib_sys_0_4_0.v2_38 or false) ||
+      (glib_0_3_1.v2_38 or false) ||
+      (f.glib_0_3_1.v2_38 or false);
+    glib_sys_0_4_0.v2_40 =
+      (f.glib_sys_0_4_0.v2_40 or false) ||
+      (glib_0_3_1.v2_40 or false) ||
+      (f.glib_0_3_1.v2_40 or false);
+    glib_sys_0_4_0.v2_44 =
+      (f.glib_sys_0_4_0.v2_44 or false) ||
+      (glib_0_3_1.v2_44 or false) ||
+      (f.glib_0_3_1.v2_44 or false);
+    glib_sys_0_4_0.v2_46 =
+      (f.glib_sys_0_4_0.v2_46 or false) ||
+      (glib_0_3_1.v2_46 or false) ||
+      (f.glib_0_3_1.v2_46 or false);
+    glib_sys_0_4_0.v2_48 =
+      (f.glib_sys_0_4_0.v2_48 or false) ||
+      (glib_0_3_1.v2_48 or false) ||
+      (f.glib_0_3_1.v2_48 or false);
+    glib_sys_0_4_0.v2_50 =
+      (f.glib_sys_0_4_0.v2_50 or false) ||
+      (glib_0_3_1.v2_50 or false) ||
+      (f.glib_0_3_1.v2_50 or false);
+    gobject_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.v2_34 =
+      (f.gobject_sys_0_4_0.v2_34 or false) ||
+      (glib_0_3_1.v2_34 or false) ||
+      (f.glib_0_3_1.v2_34 or false);
+    gobject_sys_0_4_0.v2_38 =
+      (f.gobject_sys_0_4_0.v2_38 or false) ||
+      (glib_0_3_1.v2_38 or false) ||
+      (f.glib_0_3_1.v2_38 or false);
+    gobject_sys_0_4_0.v2_44 =
+      (f.gobject_sys_0_4_0.v2_44 or false) ||
+      (glib_0_3_1.v2_44 or false) ||
+      (f.glib_0_3_1.v2_44 or false);
+    gobject_sys_0_4_0.v2_46 =
+      (f.gobject_sys_0_4_0.v2_46 or false) ||
+      (glib_0_3_1.v2_46 or false) ||
+      (f.glib_0_3_1.v2_46 or false);
+    lazy_static_0_2_11.default = true;
+    libc_0_2_34.default = true;
+  }) [ bitflags_0_9_1_features glib_sys_0_4_0_features gobject_sys_0_4_0_features lazy_static_0_2_11_features libc_0_2_34_features ];
+  glib_sys_0_4_0 = { features?(glib_sys_0_4_0_features {}) }: glib_sys_0_4_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.glib_sys_0_4_0 or {});
+  };
+  glib_sys_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    glib_sys_0_4_0.default = (f.glib_sys_0_4_0.default or true);
+    glib_sys_0_4_0.v2_34 =
+      (f.glib_sys_0_4_0.v2_34 or false) ||
+      (f.glib_sys_0_4_0.v2_36 or false) ||
+      (glib_sys_0_4_0.v2_36 or false);
+    glib_sys_0_4_0.v2_36 =
+      (f.glib_sys_0_4_0.v2_36 or false) ||
+      (f.glib_sys_0_4_0.v2_38 or false) ||
+      (glib_sys_0_4_0.v2_38 or false);
+    glib_sys_0_4_0.v2_38 =
+      (f.glib_sys_0_4_0.v2_38 or false) ||
+      (f.glib_sys_0_4_0.v2_40 or false) ||
+      (glib_sys_0_4_0.v2_40 or false);
+    glib_sys_0_4_0.v2_40 =
+      (f.glib_sys_0_4_0.v2_40 or false) ||
+      (f.glib_sys_0_4_0.v2_44 or false) ||
+      (glib_sys_0_4_0.v2_44 or false);
+    glib_sys_0_4_0.v2_44 =
+      (f.glib_sys_0_4_0.v2_44 or false) ||
+      (f.glib_sys_0_4_0.v2_46 or false) ||
+      (glib_sys_0_4_0.v2_46 or false);
+    glib_sys_0_4_0.v2_46 =
+      (f.glib_sys_0_4_0.v2_46 or false) ||
+      (f.glib_sys_0_4_0.v2_48 or false) ||
+      (glib_sys_0_4_0.v2_48 or false);
+    glib_sys_0_4_0.v2_48 =
+      (f.glib_sys_0_4_0.v2_48 or false) ||
+      (f.glib_sys_0_4_0.v2_50 or false) ||
+      (glib_sys_0_4_0.v2_50 or false);
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ bitflags_0_9_1_features libc_0_2_34_features pkg_config_0_3_9_features ];
+  gobject_sys_0_4_0 = { features?(gobject_sys_0_4_0_features {}) }: gobject_sys_0_4_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 glib_sys_0_4_0 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.gobject_sys_0_4_0 or {});
+  };
+  gobject_sys_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    glib_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.default = (f.gobject_sys_0_4_0.default or true);
+    gobject_sys_0_4_0.v2_34 =
+      (f.gobject_sys_0_4_0.v2_34 or false) ||
+      (f.gobject_sys_0_4_0.v2_36 or false) ||
+      (gobject_sys_0_4_0.v2_36 or false);
+    gobject_sys_0_4_0.v2_36 =
+      (f.gobject_sys_0_4_0.v2_36 or false) ||
+      (f.gobject_sys_0_4_0.v2_38 or false) ||
+      (gobject_sys_0_4_0.v2_38 or false);
+    gobject_sys_0_4_0.v2_38 =
+      (f.gobject_sys_0_4_0.v2_38 or false) ||
+      (f.gobject_sys_0_4_0.v2_42 or false) ||
+      (gobject_sys_0_4_0.v2_42 or false);
+    gobject_sys_0_4_0.v2_42 =
+      (f.gobject_sys_0_4_0.v2_42 or false) ||
+      (f.gobject_sys_0_4_0.v2_44 or false) ||
+      (gobject_sys_0_4_0.v2_44 or false);
+    gobject_sys_0_4_0.v2_44 =
+      (f.gobject_sys_0_4_0.v2_44 or false) ||
+      (f.gobject_sys_0_4_0.v2_46 or false) ||
+      (gobject_sys_0_4_0.v2_46 or false);
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ bitflags_0_9_1_features glib_sys_0_4_0_features libc_0_2_34_features pkg_config_0_3_9_features ];
+  itoa_0_3_4 = { features?(itoa_0_3_4_features {}) }: itoa_0_3_4_ {
+    features = mkFeatures (features.itoa_0_3_4 or {});
+  };
+  itoa_0_3_4_features = f: updateFeatures f (rec {
+    itoa_0_3_4.default = (f.itoa_0_3_4.default or true);
+  }) [];
+  json_macro_0_1_1 = { features?(json_macro_0_1_1_features {}) }: json_macro_0_1_1_ {
+    dependencies = mapFeatures features ([ rustc_serialize_0_3_24 ]);
+  };
+  json_macro_0_1_1_features = f: updateFeatures f (rec {
+    json_macro_0_1_1.default = (f.json_macro_0_1_1.default or true);
+    rustc_serialize_0_3_24.default = true;
+  }) [ rustc_serialize_0_3_24_features ];
+  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  lazy_static_0_2_11 = { features?(lazy_static_0_2_11_features {}) }: lazy_static_0_2_11_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_0_2_11 or {});
+  };
+  lazy_static_0_2_11_features = f: updateFeatures f (rec {
+    lazy_static_0_2_11.compiletest_rs =
+      (f.lazy_static_0_2_11.compiletest_rs or false) ||
+      (f.lazy_static_0_2_11.compiletest or false) ||
+      (lazy_static_0_2_11.compiletest or false);
+    lazy_static_0_2_11.default = (f.lazy_static_0_2_11.default or true);
+    lazy_static_0_2_11.nightly =
+      (f.lazy_static_0_2_11.nightly or false) ||
+      (f.lazy_static_0_2_11.spin_no_std or false) ||
+      (lazy_static_0_2_11.spin_no_std or false);
+    lazy_static_0_2_11.spin =
+      (f.lazy_static_0_2_11.spin or false) ||
+      (f.lazy_static_0_2_11.spin_no_std or false) ||
+      (lazy_static_0_2_11.spin_no_std or false);
+  }) [];
+  lazy_static_1_0_0 = { features?(lazy_static_1_0_0_features {}) }: lazy_static_1_0_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_1_0_0 or {});
+  };
+  lazy_static_1_0_0_features = f: updateFeatures f (rec {
+    lazy_static_1_0_0.compiletest_rs =
+      (f.lazy_static_1_0_0.compiletest_rs or false) ||
+      (f.lazy_static_1_0_0.compiletest or false) ||
+      (lazy_static_1_0_0.compiletest or false);
+    lazy_static_1_0_0.default = (f.lazy_static_1_0_0.default or true);
+    lazy_static_1_0_0.nightly =
+      (f.lazy_static_1_0_0.nightly or false) ||
+      (f.lazy_static_1_0_0.spin_no_std or false) ||
+      (lazy_static_1_0_0.spin_no_std or false);
+    lazy_static_1_0_0.spin =
+      (f.lazy_static_1_0_0.spin or false) ||
+      (f.lazy_static_1_0_0.spin_no_std or false) ||
+      (lazy_static_1_0_0.spin_no_std or false);
+  }) [];
+  libc_0_2_34 = { features?(libc_0_2_34_features {}) }: libc_0_2_34_ {
+    features = mkFeatures (features.libc_0_2_34 or {});
+  };
+  libc_0_2_34_features = f: updateFeatures f (rec {
+    libc_0_2_34.default = (f.libc_0_2_34.default or true);
+    libc_0_2_34.use_std =
+      (f.libc_0_2_34.use_std or false) ||
+      (f.libc_0_2_34.default or false) ||
+      (libc_0_2_34.default or false);
+  }) [];
+  libloading_0_3_4 = { features?(libloading_0_3_4_features {}) }: libloading_0_3_4_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_11 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ target_build_utils_0_3_1 ]);
+  };
+  libloading_0_3_4_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    lazy_static_0_2_11.default = true;
+    libloading_0_3_4.default = (f.libloading_0_3_4.default or true);
+    target_build_utils_0_3_1.default = true;
+    winapi_0_2_8.default = true;
+  }) [ lazy_static_0_2_11_features target_build_utils_0_3_1_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  libloading_0_4_3 = { features?(libloading_0_4_3_features {}) }: libloading_0_4_3_ {
+    dependencies = mapFeatures features ([ lazy_static_1_0_0 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  libloading_0_4_3_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    lazy_static_1_0_0.default = true;
+    libloading_0_4_3.default = (f.libloading_0_4_3.default or true);
+    winapi_0_2_8.default = true;
+  }) [ lazy_static_1_0_0_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  log_0_3_9 = { features?(log_0_3_9_features {}) }: log_0_3_9_ {
+    dependencies = mapFeatures features ([ log_0_4_0 ]);
+    features = mkFeatures (features.log_0_3_9 or {});
+  };
+  log_0_3_9_features = f: updateFeatures f (rec {
+    log_0_3_9.default = (f.log_0_3_9.default or true);
+    log_0_3_9.use_std =
+      (f.log_0_3_9.use_std or false) ||
+      (f.log_0_3_9.default or false) ||
+      (log_0_3_9.default or false);
+    log_0_4_0.default = true;
+    log_0_4_0.max_level_debug =
+      (f.log_0_4_0.max_level_debug or false) ||
+      (log_0_3_9.max_level_debug or false) ||
+      (f.log_0_3_9.max_level_debug or false);
+    log_0_4_0.max_level_error =
+      (f.log_0_4_0.max_level_error or false) ||
+      (log_0_3_9.max_level_error or false) ||
+      (f.log_0_3_9.max_level_error or false);
+    log_0_4_0.max_level_info =
+      (f.log_0_4_0.max_level_info or false) ||
+      (log_0_3_9.max_level_info or false) ||
+      (f.log_0_3_9.max_level_info or false);
+    log_0_4_0.max_level_off =
+      (f.log_0_4_0.max_level_off or false) ||
+      (log_0_3_9.max_level_off or false) ||
+      (f.log_0_3_9.max_level_off or false);
+    log_0_4_0.max_level_trace =
+      (f.log_0_4_0.max_level_trace or false) ||
+      (log_0_3_9.max_level_trace or false) ||
+      (f.log_0_3_9.max_level_trace or false);
+    log_0_4_0.max_level_warn =
+      (f.log_0_4_0.max_level_warn or false) ||
+      (log_0_3_9.max_level_warn or false) ||
+      (f.log_0_3_9.max_level_warn or false);
+    log_0_4_0.release_max_level_debug =
+      (f.log_0_4_0.release_max_level_debug or false) ||
+      (log_0_3_9.release_max_level_debug or false) ||
+      (f.log_0_3_9.release_max_level_debug or false);
+    log_0_4_0.release_max_level_error =
+      (f.log_0_4_0.release_max_level_error or false) ||
+      (log_0_3_9.release_max_level_error or false) ||
+      (f.log_0_3_9.release_max_level_error or false);
+    log_0_4_0.release_max_level_info =
+      (f.log_0_4_0.release_max_level_info or false) ||
+      (log_0_3_9.release_max_level_info or false) ||
+      (f.log_0_3_9.release_max_level_info or false);
+    log_0_4_0.release_max_level_off =
+      (f.log_0_4_0.release_max_level_off or false) ||
+      (log_0_3_9.release_max_level_off or false) ||
+      (f.log_0_3_9.release_max_level_off or false);
+    log_0_4_0.release_max_level_trace =
+      (f.log_0_4_0.release_max_level_trace or false) ||
+      (log_0_3_9.release_max_level_trace or false) ||
+      (f.log_0_3_9.release_max_level_trace or false);
+    log_0_4_0.release_max_level_warn =
+      (f.log_0_4_0.release_max_level_warn or false) ||
+      (log_0_3_9.release_max_level_warn or false) ||
+      (f.log_0_3_9.release_max_level_warn or false);
+    log_0_4_0.std =
+      (f.log_0_4_0.std or false) ||
+      (log_0_3_9.use_std or false) ||
+      (f.log_0_3_9.use_std or false);
+  }) [ log_0_4_0_features ];
+  log_0_4_0 = { features?(log_0_4_0_features {}) }: log_0_4_0_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_2 ]);
+    features = mkFeatures (features.log_0_4_0 or {});
+  };
+  log_0_4_0_features = f: updateFeatures f (rec {
+    cfg_if_0_1_2.default = true;
+    log_0_4_0.default = (f.log_0_4_0.default or true);
+  }) [ cfg_if_0_1_2_features ];
+  memchr_0_1_11 = { features?(memchr_0_1_11_features {}) }: memchr_0_1_11_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ]);
+  };
+  memchr_0_1_11_features = f: updateFeatures f (rec {
+    libc_0_2_34.default = true;
+    memchr_0_1_11.default = (f.memchr_0_1_11.default or true);
+  }) [ libc_0_2_34_features ];
+  nix_0_6_0 = { features?(nix_0_6_0_features {}) }: nix_0_6_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_4_0 cfg_if_0_1_2 libc_0_2_34 void_1_0_2 ]);
+    buildDependencies = mapFeatures features ([ rustc_version_0_1_7 semver_0_1_20 ]);
+    features = mkFeatures (features.nix_0_6_0 or {});
+  };
+  nix_0_6_0_features = f: updateFeatures f (rec {
+    bitflags_0_4_0.default = true;
+    cfg_if_0_1_2.default = true;
+    libc_0_2_34.default = true;
+    nix_0_6_0.default = (f.nix_0_6_0.default or true);
+    rustc_version_0_1_7.default = true;
+    semver_0_1_20.default = true;
+    void_1_0_2.default = true;
+  }) [ bitflags_0_4_0_features cfg_if_0_1_2_features libc_0_2_34_features void_1_0_2_features rustc_version_0_1_7_features semver_0_1_20_features ];
+  nix_0_9_0 = { features?(nix_0_9_0_features {}) }: nix_0_9_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 cfg_if_0_1_2 libc_0_2_34 void_1_0_2 ]);
+  };
+  nix_0_9_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    cfg_if_0_1_2.default = true;
+    libc_0_2_34.default = true;
+    nix_0_9_0.default = (f.nix_0_9_0.default or true);
+    void_1_0_2.default = true;
+  }) [ bitflags_0_9_1_features cfg_if_0_1_2_features libc_0_2_34_features void_1_0_2_features ];
+  num_traits_0_1_41 = { features?(num_traits_0_1_41_features {}) }: num_traits_0_1_41_ {};
+  num_traits_0_1_41_features = f: updateFeatures f (rec {
+    num_traits_0_1_41.default = (f.num_traits_0_1_41.default or true);
+  }) [];
+  ordermap_0_3_2 = { features?(ordermap_0_3_2_features {}) }: ordermap_0_3_2_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.ordermap_0_3_2 or {});
+  };
+  ordermap_0_3_2_features = f: updateFeatures f (rec {
+    ordermap_0_3_2.default = (f.ordermap_0_3_2.default or true);
+    ordermap_0_3_2.serde =
+      (f.ordermap_0_3_2.serde or false) ||
+      (f.ordermap_0_3_2.serde-1 or false) ||
+      (ordermap_0_3_2.serde-1 or false);
+  }) [];
+  petgraph_0_4_10 = { features?(petgraph_0_4_10_features {}) }: petgraph_0_4_10_ {
+    dependencies = mapFeatures features ([ fixedbitset_0_1_8 ]
+      ++ (if features.petgraph_0_4_10.ordermap or false then [ ordermap_0_3_2 ] else []));
+    features = mkFeatures (features.petgraph_0_4_10 or {});
+  };
+  petgraph_0_4_10_features = f: updateFeatures f (rec {
+    fixedbitset_0_1_8.default = true;
+    ordermap_0_3_2.default = true;
+    petgraph_0_4_10.default = (f.petgraph_0_4_10.default or true);
+    petgraph_0_4_10.generate =
+      (f.petgraph_0_4_10.generate or false) ||
+      (f.petgraph_0_4_10.unstable or false) ||
+      (petgraph_0_4_10.unstable or false);
+    petgraph_0_4_10.graphmap =
+      (f.petgraph_0_4_10.graphmap or false) ||
+      (f.petgraph_0_4_10.all or false) ||
+      (petgraph_0_4_10.all or false) ||
+      (f.petgraph_0_4_10.default or false) ||
+      (petgraph_0_4_10.default or false);
+    petgraph_0_4_10.ordermap =
+      (f.petgraph_0_4_10.ordermap or false) ||
+      (f.petgraph_0_4_10.graphmap or false) ||
+      (petgraph_0_4_10.graphmap or false);
+    petgraph_0_4_10.quickcheck =
+      (f.petgraph_0_4_10.quickcheck or false) ||
+      (f.petgraph_0_4_10.all or false) ||
+      (petgraph_0_4_10.all or false);
+    petgraph_0_4_10.serde =
+      (f.petgraph_0_4_10.serde or false) ||
+      (f.petgraph_0_4_10.serde-1 or false) ||
+      (petgraph_0_4_10.serde-1 or false);
+    petgraph_0_4_10.serde_derive =
+      (f.petgraph_0_4_10.serde_derive or false) ||
+      (f.petgraph_0_4_10.serde-1 or false) ||
+      (petgraph_0_4_10.serde-1 or false);
+    petgraph_0_4_10.stable_graph =
+      (f.petgraph_0_4_10.stable_graph or false) ||
+      (f.petgraph_0_4_10.all or false) ||
+      (petgraph_0_4_10.all or false) ||
+      (f.petgraph_0_4_10.default or false) ||
+      (petgraph_0_4_10.default or false);
+    petgraph_0_4_10.unstable =
+      (f.petgraph_0_4_10.unstable or false) ||
+      (f.petgraph_0_4_10.all or false) ||
+      (petgraph_0_4_10.all or false);
+  }) [ fixedbitset_0_1_8_features ordermap_0_3_2_features ];
+  phf_0_7_21 = { features?(phf_0_7_21_features {}) }: phf_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 ]);
+    features = mkFeatures (features.phf_0_7_21 or {});
+  };
+  phf_0_7_21_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = (f.phf_0_7_21.default or true);
+    phf_shared_0_7_21.core =
+      (f.phf_shared_0_7_21.core or false) ||
+      (phf_0_7_21.core or false) ||
+      (f.phf_0_7_21.core or false);
+    phf_shared_0_7_21.default = true;
+    phf_shared_0_7_21.unicase =
+      (f.phf_shared_0_7_21.unicase or false) ||
+      (phf_0_7_21.unicase or false) ||
+      (f.phf_0_7_21.unicase or false);
+  }) [ phf_shared_0_7_21_features ];
+  phf_codegen_0_7_21 = { features?(phf_codegen_0_7_21_features {}) }: phf_codegen_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_generator_0_7_21 phf_shared_0_7_21 ]);
+  };
+  phf_codegen_0_7_21_features = f: updateFeatures f (rec {
+    phf_codegen_0_7_21.default = (f.phf_codegen_0_7_21.default or true);
+    phf_generator_0_7_21.default = true;
+    phf_shared_0_7_21.default = true;
+  }) [ phf_generator_0_7_21_features phf_shared_0_7_21_features ];
+  phf_generator_0_7_21 = { features?(phf_generator_0_7_21_features {}) }: phf_generator_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 rand_0_3_19 ]);
+  };
+  phf_generator_0_7_21_features = f: updateFeatures f (rec {
+    phf_generator_0_7_21.default = (f.phf_generator_0_7_21.default or true);
+    phf_shared_0_7_21.default = true;
+    rand_0_3_19.default = true;
+  }) [ phf_shared_0_7_21_features rand_0_3_19_features ];
+  phf_shared_0_7_21 = { features?(phf_shared_0_7_21_features {}) }: phf_shared_0_7_21_ {
+    dependencies = mapFeatures features ([ siphasher_0_2_2 ]);
+    features = mkFeatures (features.phf_shared_0_7_21 or {});
+  };
+  phf_shared_0_7_21_features = f: updateFeatures f (rec {
+    phf_shared_0_7_21.default = (f.phf_shared_0_7_21.default or true);
+    siphasher_0_2_2.default = true;
+  }) [ siphasher_0_2_2_features ];
+  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
+  pkg_config_0_3_9_features = f: updateFeatures f (rec {
+    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
+  }) [];
+  rand_0_3_19 = { features?(rand_0_3_19_features {}) }: rand_0_3_19_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ])
+      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_2 ]) else []);
+    features = mkFeatures (features.rand_0_3_19 or {});
+  };
+  rand_0_3_19_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_3_2.default = true;
+    libc_0_2_34.default = true;
+    rand_0_3_19.default = (f.rand_0_3_19.default or true);
+    rand_0_3_19.i128_support =
+      (f.rand_0_3_19.i128_support or false) ||
+      (f.rand_0_3_19.nightly or false) ||
+      (rand_0_3_19.nightly or false);
+  }) [ libc_0_2_34_features fuchsia_zircon_0_3_2_features ];
+  regex_0_1_80 = { features?(regex_0_1_80_features {}) }: regex_0_1_80_ {
+    dependencies = mapFeatures features ([ aho_corasick_0_5_3 memchr_0_1_11 regex_syntax_0_3_9 thread_local_0_2_7 utf8_ranges_0_1_3 ]);
+    features = mkFeatures (features.regex_0_1_80 or {});
+  };
+  regex_0_1_80_features = f: updateFeatures f (rec {
+    aho_corasick_0_5_3.default = true;
+    memchr_0_1_11.default = true;
+    regex_0_1_80.default = (f.regex_0_1_80.default or true);
+    regex_0_1_80.simd =
+      (f.regex_0_1_80.simd or false) ||
+      (f.regex_0_1_80.simd-accel or false) ||
+      (regex_0_1_80.simd-accel or false);
+    regex_syntax_0_3_9.default = true;
+    thread_local_0_2_7.default = true;
+    utf8_ranges_0_1_3.default = true;
+  }) [ aho_corasick_0_5_3_features memchr_0_1_11_features regex_syntax_0_3_9_features thread_local_0_2_7_features utf8_ranges_0_1_3_features ];
+  regex_syntax_0_3_9 = { features?(regex_syntax_0_3_9_features {}) }: regex_syntax_0_3_9_ {};
+  regex_syntax_0_3_9_features = f: updateFeatures f (rec {
+    regex_syntax_0_3_9.default = (f.regex_syntax_0_3_9.default or true);
+  }) [];
+  rlua_0_9_7 = { features?(rlua_0_9_7_features {}) }: rlua_0_9_7_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ ]
+      ++ (if features.rlua_0_9_7.gcc or false then [ gcc_0_3_54 ] else []));
+    features = mkFeatures (features.rlua_0_9_7 or {});
+  };
+  rlua_0_9_7_features = f: updateFeatures f (rec {
+    gcc_0_3_54.default = true;
+    libc_0_2_34.default = true;
+    rlua_0_9_7.builtin-lua =
+      (f.rlua_0_9_7.builtin-lua or false) ||
+      (f.rlua_0_9_7.default or false) ||
+      (rlua_0_9_7.default or false);
+    rlua_0_9_7.default = (f.rlua_0_9_7.default or true);
+    rlua_0_9_7.gcc =
+      (f.rlua_0_9_7.gcc or false) ||
+      (f.rlua_0_9_7.builtin-lua or false) ||
+      (rlua_0_9_7.builtin-lua or false);
+  }) [ libc_0_2_34_features gcc_0_3_54_features ];
+  rustc_serialize_0_3_24 = { features?(rustc_serialize_0_3_24_features {}) }: rustc_serialize_0_3_24_ {};
+  rustc_serialize_0_3_24_features = f: updateFeatures f (rec {
+    rustc_serialize_0_3_24.default = (f.rustc_serialize_0_3_24.default or true);
+  }) [];
+  rustc_version_0_1_7 = { features?(rustc_version_0_1_7_features {}) }: rustc_version_0_1_7_ {
+    dependencies = mapFeatures features ([ semver_0_1_20 ]);
+  };
+  rustc_version_0_1_7_features = f: updateFeatures f (rec {
+    rustc_version_0_1_7.default = (f.rustc_version_0_1_7.default or true);
+    semver_0_1_20.default = true;
+  }) [ semver_0_1_20_features ];
+  rustwlc_0_7_0 = { features?(rustwlc_0_7_0_features {}) }: rustwlc_0_7_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 libc_0_2_34 ]
+      ++ (if features.rustwlc_0_7_0.wayland-sys or false then [ wayland_sys_0_6_0 ] else []));
+    features = mkFeatures (features.rustwlc_0_7_0 or {});
+  };
+  rustwlc_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    libc_0_2_34.default = true;
+    rustwlc_0_7_0.default = (f.rustwlc_0_7_0.default or true);
+    rustwlc_0_7_0.wayland-sys =
+      (f.rustwlc_0_7_0.wayland-sys or false) ||
+      (f.rustwlc_0_7_0.wlc-wayland or false) ||
+      (rustwlc_0_7_0.wlc-wayland or false);
+    wayland_sys_0_6_0.default = true;
+    wayland_sys_0_6_0.server = true;
+  }) [ bitflags_0_7_0_features libc_0_2_34_features wayland_sys_0_6_0_features ];
+  semver_0_1_20 = { features?(semver_0_1_20_features {}) }: semver_0_1_20_ {};
+  semver_0_1_20_features = f: updateFeatures f (rec {
+    semver_0_1_20.default = (f.semver_0_1_20.default or true);
+  }) [];
+  serde_0_9_15 = { features?(serde_0_9_15_features {}) }: serde_0_9_15_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.serde_0_9_15 or {});
+  };
+  serde_0_9_15_features = f: updateFeatures f (rec {
+    serde_0_9_15.alloc =
+      (f.serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.collections or false) ||
+      (serde_0_9_15.collections or false);
+    serde_0_9_15.default = (f.serde_0_9_15.default or true);
+    serde_0_9_15.serde_derive =
+      (f.serde_0_9_15.serde_derive or false) ||
+      (f.serde_0_9_15.derive or false) ||
+      (serde_0_9_15.derive or false) ||
+      (f.serde_0_9_15.playground or false) ||
+      (serde_0_9_15.playground or false);
+    serde_0_9_15.std =
+      (f.serde_0_9_15.std or false) ||
+      (f.serde_0_9_15.default or false) ||
+      (serde_0_9_15.default or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+    serde_0_9_15.unstable =
+      (f.serde_0_9_15.unstable or false) ||
+      (f.serde_0_9_15.alloc or false) ||
+      (serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+  }) [];
+  serde_json_0_9_10 = { features?(serde_json_0_9_10_features {}) }: serde_json_0_9_10_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_2 itoa_0_3_4 num_traits_0_1_41 serde_0_9_15 ]);
+    features = mkFeatures (features.serde_json_0_9_10 or {});
+  };
+  serde_json_0_9_10_features = f: updateFeatures f (rec {
+    dtoa_0_4_2.default = true;
+    itoa_0_3_4.default = true;
+    num_traits_0_1_41.default = true;
+    serde_0_9_15.default = true;
+    serde_json_0_9_10.default = (f.serde_json_0_9_10.default or true);
+    serde_json_0_9_10.linked-hash-map =
+      (f.serde_json_0_9_10.linked-hash-map or false) ||
+      (f.serde_json_0_9_10.preserve_order or false) ||
+      (serde_json_0_9_10.preserve_order or false);
+  }) [ dtoa_0_4_2_features itoa_0_3_4_features num_traits_0_1_41_features serde_0_9_15_features ];
+  siphasher_0_2_2 = { features?(siphasher_0_2_2_features {}) }: siphasher_0_2_2_ {
+    dependencies = mapFeatures features ([]);
+  };
+  siphasher_0_2_2_features = f: updateFeatures f (rec {
+    siphasher_0_2_2.default = (f.siphasher_0_2_2.default or true);
+  }) [];
+  target_build_utils_0_3_1 = { features?(target_build_utils_0_3_1_features {}) }: target_build_utils_0_3_1_ {
+    dependencies = mapFeatures features ([ phf_0_7_21 ]
+      ++ (if features.target_build_utils_0_3_1.serde_json or false then [ serde_json_0_9_10 ] else []));
+    buildDependencies = mapFeatures features ([ phf_codegen_0_7_21 ]);
+    features = mkFeatures (features.target_build_utils_0_3_1 or {});
+  };
+  target_build_utils_0_3_1_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = true;
+    phf_codegen_0_7_21.default = true;
+    serde_json_0_9_10.default = true;
+    target_build_utils_0_3_1.default = (f.target_build_utils_0_3_1.default or true);
+    target_build_utils_0_3_1.serde_json =
+      (f.target_build_utils_0_3_1.serde_json or false) ||
+      (f.target_build_utils_0_3_1.default or false) ||
+      (target_build_utils_0_3_1.default or false);
+  }) [ phf_0_7_21_features serde_json_0_9_10_features phf_codegen_0_7_21_features ];
+  thread_id_2_0_0 = { features?(thread_id_2_0_0_features {}) }: thread_id_2_0_0_ {
+    dependencies = mapFeatures features ([ kernel32_sys_0_2_2 libc_0_2_34 ]);
+  };
+  thread_id_2_0_0_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_34.default = true;
+    thread_id_2_0_0.default = (f.thread_id_2_0_0.default or true);
+  }) [ kernel32_sys_0_2_2_features libc_0_2_34_features ];
+  thread_local_0_2_7 = { features?(thread_local_0_2_7_features {}) }: thread_local_0_2_7_ {
+    dependencies = mapFeatures features ([ thread_id_2_0_0 ]);
+  };
+  thread_local_0_2_7_features = f: updateFeatures f (rec {
+    thread_id_2_0_0.default = true;
+    thread_local_0_2_7.default = (f.thread_local_0_2_7.default or true);
+  }) [ thread_id_2_0_0_features ];
+  token_store_0_1_2 = { features?(token_store_0_1_2_features {}) }: token_store_0_1_2_ {};
+  token_store_0_1_2_features = f: updateFeatures f (rec {
+    token_store_0_1_2.default = (f.token_store_0_1_2.default or true);
+  }) [];
+  utf8_ranges_0_1_3 = { features?(utf8_ranges_0_1_3_features {}) }: utf8_ranges_0_1_3_ {};
+  utf8_ranges_0_1_3_features = f: updateFeatures f (rec {
+    utf8_ranges_0_1_3.default = (f.utf8_ranges_0_1_3.default or true);
+  }) [];
+  uuid_0_3_1 = { features?(uuid_0_3_1_features {}) }: uuid_0_3_1_ {
+    dependencies = mapFeatures features ([ ]
+      ++ (if features.uuid_0_3_1.rand or false then [ rand_0_3_19 ] else [])
+      ++ (if features.uuid_0_3_1.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.uuid_0_3_1 or {});
+  };
+  uuid_0_3_1_features = f: updateFeatures f (rec {
+    rand_0_3_19.default = true;
+    rustc_serialize_0_3_24.default = true;
+    uuid_0_3_1.default = (f.uuid_0_3_1.default or true);
+    uuid_0_3_1.rand =
+      (f.uuid_0_3_1.rand or false) ||
+      (f.uuid_0_3_1.v4 or false) ||
+      (uuid_0_3_1.v4 or false);
+    uuid_0_3_1.sha1 =
+      (f.uuid_0_3_1.sha1 or false) ||
+      (f.uuid_0_3_1.v5 or false) ||
+      (uuid_0_3_1.v5 or false);
+  }) [ rand_0_3_19_features rustc_serialize_0_3_24_features ];
+  void_1_0_2 = { features?(void_1_0_2_features {}) }: void_1_0_2_ {
+    features = mkFeatures (features.void_1_0_2 or {});
+  };
+  void_1_0_2_features = f: updateFeatures f (rec {
+    void_1_0_2.default = (f.void_1_0_2.default or true);
+    void_1_0_2.std =
+      (f.void_1_0_2.std or false) ||
+      (f.void_1_0_2.default or false) ||
+      (void_1_0_2.default or false);
+  }) [];
+  way_cooler_0_8_0 = { features?(way_cooler_0_8_0_features {}) }: way_cooler_0_8_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 cairo_rs_0_2_0 cairo_sys_rs_0_4_0 dbus_0_4_1 dbus_macros_0_0_6 env_logger_0_3_5 gdk_pixbuf_0_2_0 getopts_0_2_15 glib_0_3_1 json_macro_0_1_1 lazy_static_0_2_11 log_0_3_9 nix_0_6_0 petgraph_0_4_10 rlua_0_9_7 rustc_serialize_0_3_24 rustwlc_0_7_0 uuid_0_3_1 wayland_server_0_12_4 wayland_sys_0_12_4 xcb_0_8_1 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_12_4 ]);
+    features = mkFeatures (features.way_cooler_0_8_0 or {});
+  };
+  way_cooler_0_8_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    cairo_rs_0_2_0.default = true;
+    cairo_sys_rs_0_4_0.default = true;
+    dbus_0_4_1.default = true;
+    dbus_macros_0_0_6.default = true;
+    env_logger_0_3_5.default = true;
+    gdk_pixbuf_0_2_0.default = true;
+    getopts_0_2_15.default = true;
+    glib_0_3_1.default = true;
+    json_macro_0_1_1.default = true;
+    lazy_static_0_2_11.default = true;
+    log_0_3_9.default = true;
+    nix_0_6_0.default = true;
+    petgraph_0_4_10.default = true;
+    rlua_0_9_7.builtin-lua =
+      (f.rlua_0_9_7.builtin-lua or false) ||
+      (way_cooler_0_8_0.builtin-lua or false) ||
+      (f.way_cooler_0_8_0.builtin-lua or false);
+    rlua_0_9_7.default = (f.rlua_0_9_7.default or false);
+    rustc_serialize_0_3_24.default = true;
+    rustwlc_0_7_0.default = true;
+    rustwlc_0_7_0.static-wlc =
+      (f.rustwlc_0_7_0.static-wlc or false) ||
+      (way_cooler_0_8_0.static-wlc or false) ||
+      (f.way_cooler_0_8_0.static-wlc or false);
+    rustwlc_0_7_0.wlc-wayland = true;
+    uuid_0_3_1.default = true;
+    uuid_0_3_1.rustc-serialize = true;
+    uuid_0_3_1.v4 = true;
+    way_cooler_0_8_0.default = (f.way_cooler_0_8_0.default or true);
+    wayland_scanner_0_12_4.default = true;
+    wayland_server_0_12_4.default = true;
+    wayland_sys_0_12_4.client = true;
+    wayland_sys_0_12_4.default = true;
+    wayland_sys_0_12_4.dlopen = true;
+    xcb_0_8_1.default = true;
+    xcb_0_8_1.xkb = true;
+  }) [ bitflags_0_7_0_features cairo_rs_0_2_0_features cairo_sys_rs_0_4_0_features dbus_0_4_1_features dbus_macros_0_0_6_features env_logger_0_3_5_features gdk_pixbuf_0_2_0_features getopts_0_2_15_features glib_0_3_1_features json_macro_0_1_1_features lazy_static_0_2_11_features log_0_3_9_features nix_0_6_0_features petgraph_0_4_10_features rlua_0_9_7_features rustc_serialize_0_3_24_features rustwlc_0_7_0_features uuid_0_3_1_features wayland_server_0_12_4_features wayland_sys_0_12_4_features xcb_0_8_1_features wayland_scanner_0_12_4_features ];
+  wayland_scanner_0_12_4 = { features?(wayland_scanner_0_12_4_features {}) }: wayland_scanner_0_12_4_ {
+    dependencies = mapFeatures features ([ xml_rs_0_7_0 ]);
+  };
+  wayland_scanner_0_12_4_features = f: updateFeatures f (rec {
+    wayland_scanner_0_12_4.default = (f.wayland_scanner_0_12_4.default or true);
+    xml_rs_0_7_0.default = true;
+  }) [ xml_rs_0_7_0_features ];
+  wayland_server_0_12_4 = { features?(wayland_server_0_12_4_features {}) }: wayland_server_0_12_4_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_1 libc_0_2_34 nix_0_9_0 token_store_0_1_2 wayland_sys_0_12_4 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_12_4 ]);
+    features = mkFeatures (features.wayland_server_0_12_4 or {});
+  };
+  wayland_server_0_12_4_features = f: updateFeatures f (rec {
+    bitflags_1_0_1.default = true;
+    libc_0_2_34.default = true;
+    nix_0_9_0.default = true;
+    token_store_0_1_2.default = true;
+    wayland_scanner_0_12_4.default = true;
+    wayland_server_0_12_4.default = (f.wayland_server_0_12_4.default or true);
+    wayland_sys_0_12_4.default = true;
+    wayland_sys_0_12_4.dlopen =
+      (f.wayland_sys_0_12_4.dlopen or false) ||
+      (wayland_server_0_12_4.dlopen or false) ||
+      (f.wayland_server_0_12_4.dlopen or false);
+    wayland_sys_0_12_4.server = true;
+  }) [ bitflags_1_0_1_features libc_0_2_34_features nix_0_9_0_features token_store_0_1_2_features wayland_sys_0_12_4_features wayland_scanner_0_12_4_features ];
+  wayland_sys_0_6_0 = { features?(wayland_sys_0_6_0_features {}) }: wayland_sys_0_6_0_ {
+    dependencies = mapFeatures features ([ dlib_0_3_1 ]
+      ++ (if features.wayland_sys_0_6_0.libc or false then [ libc_0_2_34 ] else []));
+    features = mkFeatures (features.wayland_sys_0_6_0 or {});
+  };
+  wayland_sys_0_6_0_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = true;
+    dlib_0_3_1.dlopen =
+      (f.dlib_0_3_1.dlopen or false) ||
+      (wayland_sys_0_6_0.dlopen or false) ||
+      (f.wayland_sys_0_6_0.dlopen or false);
+    libc_0_2_34.default = true;
+    wayland_sys_0_6_0.default = (f.wayland_sys_0_6_0.default or true);
+    wayland_sys_0_6_0.lazy_static =
+      (f.wayland_sys_0_6_0.lazy_static or false) ||
+      (f.wayland_sys_0_6_0.dlopen or false) ||
+      (wayland_sys_0_6_0.dlopen or false);
+    wayland_sys_0_6_0.libc =
+      (f.wayland_sys_0_6_0.libc or false) ||
+      (f.wayland_sys_0_6_0.server or false) ||
+      (wayland_sys_0_6_0.server or false);
+  }) [ dlib_0_3_1_features libc_0_2_34_features ];
+  wayland_sys_0_9_10 = { features?(wayland_sys_0_9_10_features {}) }: wayland_sys_0_9_10_ {
+    dependencies = mapFeatures features ([ dlib_0_3_1 ]
+      ++ (if features.wayland_sys_0_9_10.lazy_static or false then [ lazy_static_0_2_11 ] else [])
+      ++ (if features.wayland_sys_0_9_10.libc or false then [ libc_0_2_34 ] else []));
+    features = mkFeatures (features.wayland_sys_0_9_10 or {});
+  };
+  wayland_sys_0_9_10_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = true;
+    dlib_0_3_1.dlopen =
+      (f.dlib_0_3_1.dlopen or false) ||
+      (wayland_sys_0_9_10.dlopen or false) ||
+      (f.wayland_sys_0_9_10.dlopen or false);
+    lazy_static_0_2_11.default = true;
+    libc_0_2_34.default = true;
+    wayland_sys_0_9_10.default = (f.wayland_sys_0_9_10.default or true);
+    wayland_sys_0_9_10.lazy_static =
+      (f.wayland_sys_0_9_10.lazy_static or false) ||
+      (f.wayland_sys_0_9_10.dlopen or false) ||
+      (wayland_sys_0_9_10.dlopen or false);
+    wayland_sys_0_9_10.libc =
+      (f.wayland_sys_0_9_10.libc or false) ||
+      (f.wayland_sys_0_9_10.server or false) ||
+      (wayland_sys_0_9_10.server or false);
+  }) [ dlib_0_3_1_features lazy_static_0_2_11_features libc_0_2_34_features ];
+  wayland_sys_0_12_4 = { features?(wayland_sys_0_12_4_features {}) }: wayland_sys_0_12_4_ {
+    dependencies = mapFeatures features ([ dlib_0_4_0 ]
+      ++ (if features.wayland_sys_0_12_4.lazy_static or false then [ lazy_static_0_2_11 ] else [])
+      ++ (if features.wayland_sys_0_12_4.libc or false then [ libc_0_2_34 ] else []));
+    features = mkFeatures (features.wayland_sys_0_12_4 or {});
+  };
+  wayland_sys_0_12_4_features = f: updateFeatures f (rec {
+    dlib_0_4_0.default = true;
+    dlib_0_4_0.dlopen =
+      (f.dlib_0_4_0.dlopen or false) ||
+      (wayland_sys_0_12_4.dlopen or false) ||
+      (f.wayland_sys_0_12_4.dlopen or false);
+    lazy_static_0_2_11.default = true;
+    libc_0_2_34.default = true;
+    wayland_sys_0_12_4.default = (f.wayland_sys_0_12_4.default or true);
+    wayland_sys_0_12_4.lazy_static =
+      (f.wayland_sys_0_12_4.lazy_static or false) ||
+      (f.wayland_sys_0_12_4.dlopen or false) ||
+      (wayland_sys_0_12_4.dlopen or false);
+    wayland_sys_0_12_4.libc =
+      (f.wayland_sys_0_12_4.libc or false) ||
+      (f.wayland_sys_0_12_4.server or false) ||
+      (wayland_sys_0_12_4.server or false);
+  }) [ dlib_0_4_0_features lazy_static_0_2_11_features libc_0_2_34_features ];
+  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
+  winapi_0_2_8_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
+  }) [];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
+  xcb_0_8_1 = { features?(xcb_0_8_1_features {}) }: xcb_0_8_1_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 log_0_3_9 ]);
+    buildDependencies = mapFeatures features ([ libc_0_2_34 ]);
+    features = mkFeatures (features.xcb_0_8_1 or {});
+  };
+  xcb_0_8_1_features = f: updateFeatures f (rec {
+    libc_0_2_34.default = true;
+    log_0_3_9.default = true;
+    xcb_0_8_1.composite =
+      (f.xcb_0_8_1.composite or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.damage =
+      (f.xcb_0_8_1.damage or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.default = (f.xcb_0_8_1.default or true);
+    xcb_0_8_1.dpms =
+      (f.xcb_0_8_1.dpms or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.dri2 =
+      (f.xcb_0_8_1.dri2 or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.dri3 =
+      (f.xcb_0_8_1.dri3 or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.glx =
+      (f.xcb_0_8_1.glx or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.randr =
+      (f.xcb_0_8_1.randr or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.record =
+      (f.xcb_0_8_1.record or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.render =
+      (f.xcb_0_8_1.render or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.present or false) ||
+      (xcb_0_8_1.present or false) ||
+      (f.xcb_0_8_1.randr or false) ||
+      (xcb_0_8_1.randr or false) ||
+      (f.xcb_0_8_1.xfixes or false) ||
+      (xcb_0_8_1.xfixes or false);
+    xcb_0_8_1.res =
+      (f.xcb_0_8_1.res or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.screensaver =
+      (f.xcb_0_8_1.screensaver or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.shape =
+      (f.xcb_0_8_1.shape or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.xfixes or false) ||
+      (xcb_0_8_1.xfixes or false);
+    xcb_0_8_1.shm =
+      (f.xcb_0_8_1.shm or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.xv or false) ||
+      (xcb_0_8_1.xv or false);
+    xcb_0_8_1.sync =
+      (f.xcb_0_8_1.sync or false) ||
+      (f.xcb_0_8_1.present or false) ||
+      (xcb_0_8_1.present or false);
+    xcb_0_8_1.thread =
+      (f.xcb_0_8_1.thread or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xevie =
+      (f.xcb_0_8_1.xevie or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xf86dri =
+      (f.xcb_0_8_1.xf86dri or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xfixes =
+      (f.xcb_0_8_1.xfixes or false) ||
+      (f.xcb_0_8_1.composite or false) ||
+      (xcb_0_8_1.composite or false) ||
+      (f.xcb_0_8_1.damage or false) ||
+      (xcb_0_8_1.damage or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.present or false) ||
+      (xcb_0_8_1.present or false) ||
+      (f.xcb_0_8_1.xinput or false) ||
+      (xcb_0_8_1.xinput or false);
+    xcb_0_8_1.xinerama =
+      (f.xcb_0_8_1.xinerama or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xkb =
+      (f.xcb_0_8_1.xkb or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xlib_xcb =
+      (f.xcb_0_8_1.xlib_xcb or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xprint =
+      (f.xcb_0_8_1.xprint or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xselinux =
+      (f.xcb_0_8_1.xselinux or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xtest =
+      (f.xcb_0_8_1.xtest or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xv =
+      (f.xcb_0_8_1.xv or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.xvmc or false) ||
+      (xcb_0_8_1.xvmc or false);
+    xcb_0_8_1.xvmc =
+      (f.xcb_0_8_1.xvmc or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+  }) [ libc_0_2_34_features log_0_3_9_features libc_0_2_34_features ];
+  xml_rs_0_7_0 = { features?(xml_rs_0_7_0_features {}) }: xml_rs_0_7_0_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_1 ]);
+  };
+  xml_rs_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_1_0_1.default = true;
+    xml_rs_0_7_0.default = (f.xml_rs_0_7_0.default or true);
+  }) [ bitflags_1_0_1_features ];
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-bg.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-bg.nix
new file mode 100644
index 000000000000..4d527715c5f2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-bg.nix
@@ -0,0 +1,1372 @@
+# Generated by carnix 0.6.5: carnix -o wc-bg.nix Cargo.lock
+{ lib, stdenv, buildRustCrate, fetchgit }:
+let kernel = stdenv.buildPlatform.parsed.kernel.name;
+    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+    mapFeatures = features: map (fun: fun { features = features; });
+    mkFeatures = feat: lib.lists.foldl (features: featureName:
+      if feat.${featureName} or false then
+        [ featureName ] ++ features
+      else
+        features
+    ) [] (builtins.attrNames feat);
+in
+rec {
+  wc_bg = f: wc_bg_0_3_0 { features = wc_bg_0_3_0_features { wc_bg_0_3_0 = f; }; };
+  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.9.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+    inherit dependencies buildDependencies features;
+  };
+  atty_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "atty";
+    version = "0.2.3";
+    authors = [ "softprops <d.tangren@gmail.com>" ];
+    sha256 = "0zl0cjfgarp5y78nd755lpki5bbkj4hgmi88v265m543yg29i88f";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.7.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.9.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "18h073l5jd88rx4qdr95fjddr9rk79pb1aqnshzdnw16cfmb9rws";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "0.5.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "1.1.0";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1i2n0161jm00zvzh4bncgv9zrwa6ydbxdn5j4bx0wwn7rvi9zycp";
+    inherit dependencies buildDependencies features;
+  };
+  cc_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cc";
+    version = "1.0.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1s5ha0k6cdy1049a5kpzvhnjc9hjvi18zrcr5dmbqpd03ag751g1";
+    inherit dependencies buildDependencies features;
+  };
+  clap_2_26_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "clap";
+    version = "2.26.2";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+    sha256 = "0njvc0b7m11yym25jrr8h47nb3k3lpzzafjf22y33c5p4rw7fn2d";
+    inherit dependencies buildDependencies features;
+  };
+  coco_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "coco";
+    version = "0.1.1";
+    authors = [ "Stjepan Glavina <stjepang@gmail.com>" ];
+    sha256 = "0hvj4jaj9y6i38c4dkii8nqq98cgx3kyx78cjqkdvk0aqq5sfr94";
+    inherit dependencies buildDependencies features;
+  };
+  color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "color_quant";
+    version = "1.0.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
+    inherit dependencies buildDependencies features;
+  };
+  dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dlib";
+    version = "0.3.1";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
+    inherit dependencies buildDependencies features;
+  };
+  dtoa_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dtoa";
+    version = "0.4.2";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1bxsh6fags7nr36vlz07ik2a1rzyipc8x1y30kjk832hf2pzadmw";
+    inherit dependencies buildDependencies features;
+  };
+  either_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "either";
+    version = "1.2.0";
+    authors = [ "bluss" ];
+    sha256 = "0l72xaf1kwzgbl3andf3d2ggz7km9059rbmp90iywww8inlnqppp";
+    inherit dependencies buildDependencies features;
+  };
+  enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "enum_primitive";
+    version = "0.1.1";
+    authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
+    sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
+    inherit dependencies buildDependencies features;
+  };
+  flate2_0_2_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "flate2";
+    version = "0.2.20";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1am0d2vmqym1vcg7rvv516vpcrbhdn1jisy0q03r3nbzdzh54ppl";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon";
+    version = "0.2.1";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "0yd4rd7ql1vdr349p6vgq2dnwmpylky1kjp8g1zgvp250jxrhddb";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_sys_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon-sys";
+    version = "0.2.0";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "1yrqsrjwlhl3di6prxf5xmyd82gyjaysldbka5wwk83z11mpqh4w";
+    inherit dependencies buildDependencies features;
+  };
+  futures_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "futures";
+    version = "0.1.16";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0ndk8cl6l600a95q8il2c3y38jz50nhfsczps0nziadqdd45gy2b";
+    inherit dependencies buildDependencies features;
+  };
+  gif_0_9_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gif";
+    version = "0.9.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0dl76jrn6127w3bdg2b58p5psf8fpnbzdxdkw1i35ac8dn4vxcqa";
+    inherit dependencies buildDependencies features;
+  };
+  glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glob";
+    version = "0.2.11";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
+    inherit dependencies buildDependencies features;
+  };
+  image_0_10_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "image";
+    version = "0.10.4";
+    authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
+    sha256 = "1pwrs7k5760b38i1lg872x9q2zc6xvhs7mjhlzvjnr5p85zx2fbw";
+    libPath = "./src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "inflate";
+    version = "0.1.1";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
+    inherit dependencies buildDependencies features;
+  };
+  itoa_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "itoa";
+    version = "0.3.4";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1nfkzz6vrgj0d9l3yzjkkkqzdgs68y294fjdbl7jq118qi8xc9d9";
+    inherit dependencies buildDependencies features;
+  };
+  jpeg_decoder_0_1_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "jpeg-decoder";
+    version = "0.1.13";
+    authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
+    sha256 = "0w16gbywlm9p0p3wx34b85q4d1izrx89afcsxlc6g11cx2js4fa2";
+    inherit dependencies buildDependencies features;
+  };
+  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "kernel32-sys";
+    version = "0.2.2";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+    libName = "kernel32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_0_2_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "0.2.9";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "08ldzr5292y3hvi6l6v8l4i6v95lm1aysmnfln65h10sqrfh6iw7";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_32_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.32";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1i8njlar6v9qvmkyfvwzhxrvkqw6ijp8fqdnya5csqixxz18a532";
+    inherit dependencies buildDependencies features;
+  };
+  libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libloading";
+    version = "0.3.4";
+    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+    sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lzw";
+    version = "0.10.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
+    inherit dependencies buildDependencies features;
+  };
+  miniz_sys_0_1_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "miniz-sys";
+    version = "0.1.10";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "11vg6phafxil87nbxgrlhcx5hjr3145wsbwwkfmibvnmzxfdmvln";
+    libPath = "lib.rs";
+    libName = "miniz_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  num_bigint_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-bigint";
+    version = "0.1.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0pkxd9mb4chdbipprxjc8ll7kjh79n278s2z663zmd80yg5xi788";
+    inherit dependencies buildDependencies features;
+  };
+  num_integer_0_1_35_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-integer";
+    version = "0.1.35";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0xybj8isi9b6wc646d5rc043i8l8j6wy0vrl4pn995qms9fxbbcc";
+    inherit dependencies buildDependencies features;
+  };
+  num_iter_0_1_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-iter";
+    version = "0.1.34";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "02cld7x9dzbqbs6sxxzq1i22z3awlcd6ljkgvhkfr9rsnaxphzl9";
+    inherit dependencies buildDependencies features;
+  };
+  num_rational_0_1_39_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-rational";
+    version = "0.1.39";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1qsacdfp97zgpajc2pgbrbga3yag1f0k7yz0gi78vd165gxdwk3m";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.1.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1fr8ghp4i97q3agki54i0hpmqxv3s65i2mqd1pinc7w7arc3fplw";
+    inherit dependencies buildDependencies features;
+  };
+  num_cpus_1_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num_cpus";
+    version = "1.7.0";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "0231xmd65ma3pqfiw8pkv9dvm9x708z4xlrwp3i0sgiwv408dz3f";
+    inherit dependencies buildDependencies features;
+  };
+  phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_codegen";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
+    inherit dependencies buildDependencies features;
+  };
+  phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_generator";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
+    inherit dependencies buildDependencies features;
+  };
+  phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_shared";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  png_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "png";
+    version = "0.5.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1pgann3f1ysgf8y1acw86v4s3ji1xk85ri353biyvh4i1cpn1g3q";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_17_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.17";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "06ra3pr36dlyq3kp5lbia8xnw5g0zsys2d69frr7y6df5hhb1r8j";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon";
+    version = "0.8.2";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
+    sha256 = "0d0mddg1k75hb9138pn8lysy2095jijrinskqbpgfr73s0jx6dq8";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_core_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon-core";
+    version = "1.2.1";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
+    sha256 = "12xv2r0dqrgvla24bl5mfvcw0599dlhrj0mx620nq95nyds753kk";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  redox_syscall_0_1_31_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "redox_syscall";
+    version = "0.1.31";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "0kipd9qslzin4fgj4jrxv6yz5l3l71gnbd7fq1jhk2j7f2sq33j4";
+    libName = "syscall";
+    inherit dependencies buildDependencies features;
+  };
+  redox_termios_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "redox_termios";
+    version = "0.1.1";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc-serialize";
+    version = "0.3.24";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
+    inherit dependencies buildDependencies features;
+  };
+  scoped_threadpool_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scoped_threadpool";
+    version = "0.1.8";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1al42hqbbijpah9bc6hw9c49nhnyrc0sj274ja1q3k9305c3s5a6";
+    inherit dependencies buildDependencies features;
+  };
+  scopeguard_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scopeguard";
+    version = "0.3.2";
+    authors = [ "bluss" ];
+    sha256 = "0xlvfawva4fnp6kwr5xjwf0q2d1w6di81nhfby1sa55xj1ia5zs2";
+    inherit dependencies buildDependencies features;
+  };
+  serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde";
+    version = "0.9.15";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
+    inherit dependencies buildDependencies features;
+  };
+  serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_json";
+    version = "0.9.10";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
+    inherit dependencies buildDependencies features;
+  };
+  siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "siphasher";
+    version = "0.2.2";
+    authors = [ "Frank Denis <github@pureftpd.org>" ];
+    sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+    inherit dependencies buildDependencies features;
+  };
+  strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.6.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
+    inherit dependencies buildDependencies features;
+  };
+  target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "target_build_utils";
+    version = "0.3.1";
+    authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
+    sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  tempfile_2_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tempfile";
+    version = "2.2.0";
+    authors = [ "Steven Allen <steven@stebalien.com>" ];
+    sha256 = "1z3l901ipvi0s0mdppw4lwfa77ydb22rfnf6y9sh0pifj7ah5drf";
+    inherit dependencies buildDependencies features;
+  };
+  term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "term_size";
+    version = "0.3.0";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
+    sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
+    inherit dependencies buildDependencies features;
+  };
+  termion_1_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "termion";
+    version = "1.5.1";
+    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
+    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
+    inherit dependencies buildDependencies features;
+  };
+  textwrap_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "textwrap";
+    version = "0.8.0";
+    authors = [ "Martin Geisler <martin@geisler.net>" ];
+    sha256 = "02j8apii1032cvp9fwrxw4pf11xb287j2n1iv1iixp8yh6vzrq41";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-width";
+    version = "0.1.4";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
+    inherit dependencies buildDependencies features;
+  };
+  vec_map_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vec_map";
+    version = "0.8.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+    sha256 = "07sgxp3cf1a4cxm9n3r27fcvqmld32bl2576mrcahnvm34j11xay";
+    inherit dependencies buildDependencies features;
+  };
+  way_cooler_client_helpers_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "way-cooler-client-helpers";
+    version = "0.1.0";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "0749lh5crd0rhq4dxij9mb3y5902laazjd01l6ci5782bjfk4s39";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_client_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-client";
+    version = "0.9.10";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1cs7zwvqahiysnfqfask96zpfr2bp47dlwwwd9ap8ccvcjbspj67";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_scanner_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-scanner";
+    version = "0.9.10";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "0vhnj3vfnrknvdmy72pjh7dck5q5sz1v8kfr0qqzkqf0ylavvyb2";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.9.10";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "011q7lfii222whvif39asvryl1sf3rc1fxp8qs8gh84kr4mna0k8";
+    inherit dependencies buildDependencies features;
+  };
+  wc_bg_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wc-bg";
+    version = "0.3.0";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "1jywymr80k96481vr6nyyqhlf2gj2n2zgvkwkny2m84v9n3pqn62";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.2.8";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  xml_rs_0_6_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "xml-rs";
+    version = "0.6.1";
+    authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
+    sha256 = "0adjwgmn061p60n81s52a9p26y2jdc20wvinsyw2nzmby5wvnbwk";
+    libPath = "src/lib.rs";
+    libName = "xml";
+    crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
+  ansi_term_0_9_0_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
+  }) [];
+  atty_0_2_3 = { features?(atty_0_2_3_features {}) }: atty_0_2_3_ {
+    dependencies = (if kernel == "redox" then mapFeatures features ([ termion_1_5_1 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_32 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  atty_0_2_3_features = f: updateFeatures f (rec {
+    atty_0_2_3.default = (f.atty_0_2_3.default or true);
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_32.default = (f.libc_0_2_32.default or false);
+    termion_1_5_1.default = true;
+    winapi_0_2_8.default = true;
+  }) [ termion_1_5_1_features libc_0_2_32_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
+  bitflags_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
+  }) [];
+  bitflags_0_9_1 = { features?(bitflags_0_9_1_features {}) }: bitflags_0_9_1_ {
+    features = mkFeatures (features.bitflags_0_9_1 or {});
+  };
+  bitflags_0_9_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = (f.bitflags_0_9_1.default or true);
+    bitflags_0_9_1.example_generated =
+      (f.bitflags_0_9_1.example_generated or false) ||
+      (f.bitflags_0_9_1.default or false) ||
+      (bitflags_0_9_1.default or false);
+  }) [];
+  byteorder_0_5_3 = { features?(byteorder_0_5_3_features {}) }: byteorder_0_5_3_ {
+    features = mkFeatures (features.byteorder_0_5_3 or {});
+  };
+  byteorder_0_5_3_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = (f.byteorder_0_5_3.default or true);
+    byteorder_0_5_3.std =
+      (f.byteorder_0_5_3.std or false) ||
+      (f.byteorder_0_5_3.default or false) ||
+      (byteorder_0_5_3.default or false);
+  }) [];
+  byteorder_1_1_0 = { features?(byteorder_1_1_0_features {}) }: byteorder_1_1_0_ {
+    features = mkFeatures (features.byteorder_1_1_0 or {});
+  };
+  byteorder_1_1_0_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = (f.byteorder_1_1_0.default or true);
+    byteorder_1_1_0.std =
+      (f.byteorder_1_1_0.std or false) ||
+      (f.byteorder_1_1_0.default or false) ||
+      (byteorder_1_1_0.default or false);
+  }) [];
+  cc_1_0_0 = { features?(cc_1_0_0_features {}) }: cc_1_0_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.cc_1_0_0 or {});
+  };
+  cc_1_0_0_features = f: updateFeatures f (rec {
+    cc_1_0_0.default = (f.cc_1_0_0.default or true);
+    cc_1_0_0.rayon =
+      (f.cc_1_0_0.rayon or false) ||
+      (f.cc_1_0_0.parallel or false) ||
+      (cc_1_0_0.parallel or false);
+  }) [];
+  clap_2_26_2 = { features?(clap_2_26_2_features {}) }: clap_2_26_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 textwrap_0_8_0 unicode_width_0_1_4 vec_map_0_8_0 ]
+      ++ (if features.clap_2_26_2.ansi_term or false then [ ansi_term_0_9_0 ] else [])
+      ++ (if features.clap_2_26_2.atty or false then [ atty_0_2_3 ] else [])
+      ++ (if features.clap_2_26_2.strsim or false then [ strsim_0_6_0 ] else [])
+      ++ (if features.clap_2_26_2.term_size or false then [ term_size_0_3_0 ] else []));
+    features = mkFeatures (features.clap_2_26_2 or {});
+  };
+  clap_2_26_2_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = true;
+    atty_0_2_3.default = true;
+    bitflags_0_9_1.default = true;
+    clap_2_26_2.ansi_term =
+      (f.clap_2_26_2.ansi_term or false) ||
+      (f.clap_2_26_2.color or false) ||
+      (clap_2_26_2.color or false);
+    clap_2_26_2.atty =
+      (f.clap_2_26_2.atty or false) ||
+      (f.clap_2_26_2.color or false) ||
+      (clap_2_26_2.color or false);
+    clap_2_26_2.clippy =
+      (f.clap_2_26_2.clippy or false) ||
+      (f.clap_2_26_2.lints or false) ||
+      (clap_2_26_2.lints or false);
+    clap_2_26_2.color =
+      (f.clap_2_26_2.color or false) ||
+      (f.clap_2_26_2.default or false) ||
+      (clap_2_26_2.default or false);
+    clap_2_26_2.default = (f.clap_2_26_2.default or true);
+    clap_2_26_2.strsim =
+      (f.clap_2_26_2.strsim or false) ||
+      (f.clap_2_26_2.suggestions or false) ||
+      (clap_2_26_2.suggestions or false);
+    clap_2_26_2.suggestions =
+      (f.clap_2_26_2.suggestions or false) ||
+      (f.clap_2_26_2.default or false) ||
+      (clap_2_26_2.default or false);
+    clap_2_26_2.term_size =
+      (f.clap_2_26_2.term_size or false) ||
+      (f.clap_2_26_2.wrap_help or false) ||
+      (clap_2_26_2.wrap_help or false);
+    clap_2_26_2.wrap_help =
+      (f.clap_2_26_2.wrap_help or false) ||
+      (f.clap_2_26_2.default or false) ||
+      (clap_2_26_2.default or false);
+    clap_2_26_2.yaml =
+      (f.clap_2_26_2.yaml or false) ||
+      (f.clap_2_26_2.doc or false) ||
+      (clap_2_26_2.doc or false);
+    clap_2_26_2.yaml-rust =
+      (f.clap_2_26_2.yaml-rust or false) ||
+      (f.clap_2_26_2.yaml or false) ||
+      (clap_2_26_2.yaml or false);
+    strsim_0_6_0.default = true;
+    term_size_0_3_0.default = true;
+    textwrap_0_8_0.default = true;
+    unicode_width_0_1_4.default = true;
+    vec_map_0_8_0.default = true;
+  }) [ ansi_term_0_9_0_features atty_0_2_3_features bitflags_0_9_1_features strsim_0_6_0_features term_size_0_3_0_features textwrap_0_8_0_features unicode_width_0_1_4_features vec_map_0_8_0_features ];
+  coco_0_1_1 = { features?(coco_0_1_1_features {}) }: coco_0_1_1_ {
+    dependencies = mapFeatures features ([ either_1_2_0 scopeguard_0_3_2 ]);
+    features = mkFeatures (features.coco_0_1_1 or {});
+  };
+  coco_0_1_1_features = f: updateFeatures f (rec {
+    coco_0_1_1.default = (f.coco_0_1_1.default or true);
+    either_1_2_0.default = true;
+    scopeguard_0_3_2.default = true;
+  }) [ either_1_2_0_features scopeguard_0_3_2_features ];
+  color_quant_1_0_0 = { features?(color_quant_1_0_0_features {}) }: color_quant_1_0_0_ {};
+  color_quant_1_0_0_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = (f.color_quant_1_0_0.default or true);
+  }) [];
+  dlib_0_3_1 = { features?(dlib_0_3_1_features {}) }: dlib_0_3_1_ {
+    dependencies = mapFeatures features ([ libloading_0_3_4 ]);
+    features = mkFeatures (features.dlib_0_3_1 or {});
+  };
+  dlib_0_3_1_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = (f.dlib_0_3_1.default or true);
+    libloading_0_3_4.default = true;
+  }) [ libloading_0_3_4_features ];
+  dtoa_0_4_2 = { features?(dtoa_0_4_2_features {}) }: dtoa_0_4_2_ {};
+  dtoa_0_4_2_features = f: updateFeatures f (rec {
+    dtoa_0_4_2.default = (f.dtoa_0_4_2.default or true);
+  }) [];
+  either_1_2_0 = { features?(either_1_2_0_features {}) }: either_1_2_0_ {
+    features = mkFeatures (features.either_1_2_0 or {});
+  };
+  either_1_2_0_features = f: updateFeatures f (rec {
+    either_1_2_0.default = (f.either_1_2_0.default or true);
+    either_1_2_0.use_std =
+      (f.either_1_2_0.use_std or false) ||
+      (f.either_1_2_0.default or false) ||
+      (either_1_2_0.default or false);
+  }) [];
+  enum_primitive_0_1_1 = { features?(enum_primitive_0_1_1_features {}) }: enum_primitive_0_1_1_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_40 ]);
+  };
+  enum_primitive_0_1_1_features = f: updateFeatures f (rec {
+    enum_primitive_0_1_1.default = (f.enum_primitive_0_1_1.default or true);
+    num_traits_0_1_40.default = (f.num_traits_0_1_40.default or false);
+  }) [ num_traits_0_1_40_features ];
+  flate2_0_2_20 = { features?(flate2_0_2_20_features {}) }: flate2_0_2_20_ {
+    dependencies = mapFeatures features ([ libc_0_2_32 ]
+      ++ (if features.flate2_0_2_20.miniz-sys or false then [ miniz_sys_0_1_10 ] else []));
+    features = mkFeatures (features.flate2_0_2_20 or {});
+  };
+  flate2_0_2_20_features = f: updateFeatures f (rec {
+    flate2_0_2_20.default = (f.flate2_0_2_20.default or true);
+    flate2_0_2_20.futures =
+      (f.flate2_0_2_20.futures or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    flate2_0_2_20.libz-sys =
+      (f.flate2_0_2_20.libz-sys or false) ||
+      (f.flate2_0_2_20.zlib or false) ||
+      (flate2_0_2_20.zlib or false);
+    flate2_0_2_20.miniz-sys =
+      (f.flate2_0_2_20.miniz-sys or false) ||
+      (f.flate2_0_2_20.default or false) ||
+      (flate2_0_2_20.default or false);
+    flate2_0_2_20.tokio-io =
+      (f.flate2_0_2_20.tokio-io or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    libc_0_2_32.default = true;
+    miniz_sys_0_1_10.default = true;
+  }) [ libc_0_2_32_features miniz_sys_0_1_10_features ];
+  fuchsia_zircon_0_2_1 = { features?(fuchsia_zircon_0_2_1_features {}) }: fuchsia_zircon_0_2_1_ {
+    dependencies = mapFeatures features ([ fuchsia_zircon_sys_0_2_0 ]);
+  };
+  fuchsia_zircon_0_2_1_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_2_1.default = (f.fuchsia_zircon_0_2_1.default or true);
+    fuchsia_zircon_sys_0_2_0.default = true;
+  }) [ fuchsia_zircon_sys_0_2_0_features ];
+  fuchsia_zircon_sys_0_2_0 = { features?(fuchsia_zircon_sys_0_2_0_features {}) }: fuchsia_zircon_sys_0_2_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 ]);
+  };
+  fuchsia_zircon_sys_0_2_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    fuchsia_zircon_sys_0_2_0.default = (f.fuchsia_zircon_sys_0_2_0.default or true);
+  }) [ bitflags_0_7_0_features ];
+  futures_0_1_16 = { features?(futures_0_1_16_features {}) }: futures_0_1_16_ {
+    features = mkFeatures (features.futures_0_1_16 or {});
+  };
+  futures_0_1_16_features = f: updateFeatures f (rec {
+    futures_0_1_16.default = (f.futures_0_1_16.default or true);
+    futures_0_1_16.use_std =
+      (f.futures_0_1_16.use_std or false) ||
+      (f.futures_0_1_16.default or false) ||
+      (futures_0_1_16.default or false);
+    futures_0_1_16.with-deprecated =
+      (f.futures_0_1_16.with-deprecated or false) ||
+      (f.futures_0_1_16.default or false) ||
+      (futures_0_1_16.default or false);
+  }) [];
+  gif_0_9_2 = { features?(gif_0_9_2_features {}) }: gif_0_9_2_ {
+    dependencies = mapFeatures features ([ color_quant_1_0_0 lzw_0_10_0 ]);
+    features = mkFeatures (features.gif_0_9_2 or {});
+  };
+  gif_0_9_2_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = true;
+    gif_0_9_2.default = (f.gif_0_9_2.default or true);
+    gif_0_9_2.libc =
+      (f.gif_0_9_2.libc or false) ||
+      (f.gif_0_9_2.c_api or false) ||
+      (gif_0_9_2.c_api or false);
+    gif_0_9_2.raii_no_panic =
+      (f.gif_0_9_2.raii_no_panic or false) ||
+      (f.gif_0_9_2.default or false) ||
+      (gif_0_9_2.default or false);
+    lzw_0_10_0.default = true;
+  }) [ color_quant_1_0_0_features lzw_0_10_0_features ];
+  glob_0_2_11 = { features?(glob_0_2_11_features {}) }: glob_0_2_11_ {};
+  glob_0_2_11_features = f: updateFeatures f (rec {
+    glob_0_2_11.default = (f.glob_0_2_11.default or true);
+  }) [];
+  image_0_10_4 = { features?(image_0_10_4_features {}) }: image_0_10_4_ {
+    dependencies = mapFeatures features ([ byteorder_0_5_3 enum_primitive_0_1_1 glob_0_2_11 num_iter_0_1_34 num_rational_0_1_39 num_traits_0_1_40 ]
+      ++ (if features.image_0_10_4.gif or false then [ gif_0_9_2 ] else [])
+      ++ (if features.image_0_10_4.jpeg-decoder or false then [ jpeg_decoder_0_1_13 ] else [])
+      ++ (if features.image_0_10_4.png or false then [ png_0_5_2 ] else [])
+      ++ (if features.image_0_10_4.scoped_threadpool or false then [ scoped_threadpool_0_1_8 ] else []));
+    features = mkFeatures (features.image_0_10_4 or {});
+  };
+  image_0_10_4_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = true;
+    enum_primitive_0_1_1.default = true;
+    gif_0_9_2.default = true;
+    glob_0_2_11.default = true;
+    image_0_10_4.bmp =
+      (f.image_0_10_4.bmp or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false) ||
+      (f.image_0_10_4.ico or false) ||
+      (image_0_10_4.ico or false);
+    image_0_10_4.default = (f.image_0_10_4.default or true);
+    image_0_10_4.gif =
+      (f.image_0_10_4.gif or false) ||
+      (f.image_0_10_4.gif_codec or false) ||
+      (image_0_10_4.gif_codec or false);
+    image_0_10_4.gif_codec =
+      (f.image_0_10_4.gif_codec or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.hdr =
+      (f.image_0_10_4.hdr or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.ico =
+      (f.image_0_10_4.ico or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.jpeg =
+      (f.image_0_10_4.jpeg or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.jpeg-decoder =
+      (f.image_0_10_4.jpeg-decoder or false) ||
+      (f.image_0_10_4.jpeg or false) ||
+      (image_0_10_4.jpeg or false);
+    image_0_10_4.png =
+      (f.image_0_10_4.png or false) ||
+      (f.image_0_10_4.png_codec or false) ||
+      (image_0_10_4.png_codec or false);
+    image_0_10_4.png_codec =
+      (f.image_0_10_4.png_codec or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false) ||
+      (f.image_0_10_4.ico or false) ||
+      (image_0_10_4.ico or false);
+    image_0_10_4.ppm =
+      (f.image_0_10_4.ppm or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.scoped_threadpool =
+      (f.image_0_10_4.scoped_threadpool or false) ||
+      (f.image_0_10_4.hdr or false) ||
+      (image_0_10_4.hdr or false);
+    image_0_10_4.tga =
+      (f.image_0_10_4.tga or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.tiff =
+      (f.image_0_10_4.tiff or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.webp =
+      (f.image_0_10_4.webp or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    jpeg_decoder_0_1_13.default = true;
+    num_iter_0_1_34.default = true;
+    num_rational_0_1_39.default = true;
+    num_traits_0_1_40.default = true;
+    png_0_5_2.default = true;
+    scoped_threadpool_0_1_8.default = true;
+  }) [ byteorder_0_5_3_features enum_primitive_0_1_1_features gif_0_9_2_features glob_0_2_11_features jpeg_decoder_0_1_13_features num_iter_0_1_34_features num_rational_0_1_39_features num_traits_0_1_40_features png_0_5_2_features scoped_threadpool_0_1_8_features ];
+  inflate_0_1_1 = { features?(inflate_0_1_1_features {}) }: inflate_0_1_1_ {
+    features = mkFeatures (features.inflate_0_1_1 or {});
+  };
+  inflate_0_1_1_features = f: updateFeatures f (rec {
+    inflate_0_1_1.default = (f.inflate_0_1_1.default or true);
+  }) [];
+  itoa_0_3_4 = { features?(itoa_0_3_4_features {}) }: itoa_0_3_4_ {
+    features = mkFeatures (features.itoa_0_3_4 or {});
+  };
+  itoa_0_3_4_features = f: updateFeatures f (rec {
+    itoa_0_3_4.default = (f.itoa_0_3_4.default or true);
+  }) [];
+  jpeg_decoder_0_1_13 = { features?(jpeg_decoder_0_1_13_features {}) }: jpeg_decoder_0_1_13_ {
+    dependencies = mapFeatures features ([ byteorder_1_1_0 ]
+      ++ (if features.jpeg_decoder_0_1_13.rayon or false then [ rayon_0_8_2 ] else []));
+    features = mkFeatures (features.jpeg_decoder_0_1_13 or {});
+  };
+  jpeg_decoder_0_1_13_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = true;
+    jpeg_decoder_0_1_13.default = (f.jpeg_decoder_0_1_13.default or true);
+    jpeg_decoder_0_1_13.rayon =
+      (f.jpeg_decoder_0_1_13.rayon or false) ||
+      (f.jpeg_decoder_0_1_13.default or false) ||
+      (jpeg_decoder_0_1_13.default or false);
+    rayon_0_8_2.default = true;
+  }) [ byteorder_1_1_0_features rayon_0_8_2_features ];
+  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  lazy_static_0_2_9 = { features?(lazy_static_0_2_9_features {}) }: lazy_static_0_2_9_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_0_2_9 or {});
+  };
+  lazy_static_0_2_9_features = f: updateFeatures f (rec {
+    lazy_static_0_2_9.default = (f.lazy_static_0_2_9.default or true);
+    lazy_static_0_2_9.nightly =
+      (f.lazy_static_0_2_9.nightly or false) ||
+      (f.lazy_static_0_2_9.spin_no_std or false) ||
+      (lazy_static_0_2_9.spin_no_std or false);
+    lazy_static_0_2_9.spin =
+      (f.lazy_static_0_2_9.spin or false) ||
+      (f.lazy_static_0_2_9.spin_no_std or false) ||
+      (lazy_static_0_2_9.spin_no_std or false);
+  }) [];
+  libc_0_2_32 = { features?(libc_0_2_32_features {}) }: libc_0_2_32_ {
+    features = mkFeatures (features.libc_0_2_32 or {});
+  };
+  libc_0_2_32_features = f: updateFeatures f (rec {
+    libc_0_2_32.default = (f.libc_0_2_32.default or true);
+    libc_0_2_32.use_std =
+      (f.libc_0_2_32.use_std or false) ||
+      (f.libc_0_2_32.default or false) ||
+      (libc_0_2_32.default or false);
+  }) [];
+  libloading_0_3_4 = { features?(libloading_0_3_4_features {}) }: libloading_0_3_4_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_9 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ target_build_utils_0_3_1 ]);
+  };
+  libloading_0_3_4_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    lazy_static_0_2_9.default = true;
+    libloading_0_3_4.default = (f.libloading_0_3_4.default or true);
+    target_build_utils_0_3_1.default = true;
+    winapi_0_2_8.default = true;
+  }) [ lazy_static_0_2_9_features target_build_utils_0_3_1_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  lzw_0_10_0 = { features?(lzw_0_10_0_features {}) }: lzw_0_10_0_ {
+    features = mkFeatures (features.lzw_0_10_0 or {});
+  };
+  lzw_0_10_0_features = f: updateFeatures f (rec {
+    lzw_0_10_0.default = (f.lzw_0_10_0.default or true);
+    lzw_0_10_0.raii_no_panic =
+      (f.lzw_0_10_0.raii_no_panic or false) ||
+      (f.lzw_0_10_0.default or false) ||
+      (lzw_0_10_0.default or false);
+  }) [];
+  miniz_sys_0_1_10 = { features?(miniz_sys_0_1_10_features {}) }: miniz_sys_0_1_10_ {
+    dependencies = mapFeatures features ([ libc_0_2_32 ]);
+    buildDependencies = mapFeatures features ([ cc_1_0_0 ]);
+  };
+  miniz_sys_0_1_10_features = f: updateFeatures f (rec {
+    cc_1_0_0.default = true;
+    libc_0_2_32.default = true;
+    miniz_sys_0_1_10.default = (f.miniz_sys_0_1_10.default or true);
+  }) [ libc_0_2_32_features cc_1_0_0_features ];
+  num_bigint_0_1_40 = { features?(num_bigint_0_1_40_features {}) }: num_bigint_0_1_40_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_40 ]
+      ++ (if features.num_bigint_0_1_40.rand or false then [ rand_0_3_17 ] else [])
+      ++ (if features.num_bigint_0_1_40.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.num_bigint_0_1_40 or {});
+  };
+  num_bigint_0_1_40_features = f: updateFeatures f (rec {
+    num_bigint_0_1_40.default = (f.num_bigint_0_1_40.default or true);
+    num_bigint_0_1_40.rand =
+      (f.num_bigint_0_1_40.rand or false) ||
+      (f.num_bigint_0_1_40.default or false) ||
+      (num_bigint_0_1_40.default or false);
+    num_bigint_0_1_40.rustc-serialize =
+      (f.num_bigint_0_1_40.rustc-serialize or false) ||
+      (f.num_bigint_0_1_40.default or false) ||
+      (num_bigint_0_1_40.default or false);
+    num_integer_0_1_35.default = true;
+    num_traits_0_1_40.default = true;
+    rand_0_3_17.default = true;
+    rustc_serialize_0_3_24.default = true;
+  }) [ num_integer_0_1_35_features num_traits_0_1_40_features rand_0_3_17_features rustc_serialize_0_3_24_features ];
+  num_integer_0_1_35 = { features?(num_integer_0_1_35_features {}) }: num_integer_0_1_35_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_40 ]);
+  };
+  num_integer_0_1_35_features = f: updateFeatures f (rec {
+    num_integer_0_1_35.default = (f.num_integer_0_1_35.default or true);
+    num_traits_0_1_40.default = true;
+  }) [ num_traits_0_1_40_features ];
+  num_iter_0_1_34 = { features?(num_iter_0_1_34_features {}) }: num_iter_0_1_34_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_40 ]);
+  };
+  num_iter_0_1_34_features = f: updateFeatures f (rec {
+    num_integer_0_1_35.default = true;
+    num_iter_0_1_34.default = (f.num_iter_0_1_34.default or true);
+    num_traits_0_1_40.default = true;
+  }) [ num_integer_0_1_35_features num_traits_0_1_40_features ];
+  num_rational_0_1_39 = { features?(num_rational_0_1_39_features {}) }: num_rational_0_1_39_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_40 ]
+      ++ (if features.num_rational_0_1_39.num-bigint or false then [ num_bigint_0_1_40 ] else [])
+      ++ (if features.num_rational_0_1_39.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.num_rational_0_1_39 or {});
+  };
+  num_rational_0_1_39_features = f: updateFeatures f (rec {
+    num_bigint_0_1_40.default = true;
+    num_integer_0_1_35.default = true;
+    num_rational_0_1_39.bigint =
+      (f.num_rational_0_1_39.bigint or false) ||
+      (f.num_rational_0_1_39.default or false) ||
+      (num_rational_0_1_39.default or false);
+    num_rational_0_1_39.default = (f.num_rational_0_1_39.default or true);
+    num_rational_0_1_39.num-bigint =
+      (f.num_rational_0_1_39.num-bigint or false) ||
+      (f.num_rational_0_1_39.bigint or false) ||
+      (num_rational_0_1_39.bigint or false);
+    num_rational_0_1_39.rustc-serialize =
+      (f.num_rational_0_1_39.rustc-serialize or false) ||
+      (f.num_rational_0_1_39.default or false) ||
+      (num_rational_0_1_39.default or false);
+    num_traits_0_1_40.default = true;
+    rustc_serialize_0_3_24.default = true;
+  }) [ num_bigint_0_1_40_features num_integer_0_1_35_features num_traits_0_1_40_features rustc_serialize_0_3_24_features ];
+  num_traits_0_1_40 = { features?(num_traits_0_1_40_features {}) }: num_traits_0_1_40_ {};
+  num_traits_0_1_40_features = f: updateFeatures f (rec {
+    num_traits_0_1_40.default = (f.num_traits_0_1_40.default or true);
+  }) [];
+  num_cpus_1_7_0 = { features?(num_cpus_1_7_0_features {}) }: num_cpus_1_7_0_ {
+    dependencies = mapFeatures features ([ libc_0_2_32 ]);
+  };
+  num_cpus_1_7_0_features = f: updateFeatures f (rec {
+    libc_0_2_32.default = true;
+    num_cpus_1_7_0.default = (f.num_cpus_1_7_0.default or true);
+  }) [ libc_0_2_32_features ];
+  phf_0_7_21 = { features?(phf_0_7_21_features {}) }: phf_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 ]);
+    features = mkFeatures (features.phf_0_7_21 or {});
+  };
+  phf_0_7_21_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = (f.phf_0_7_21.default or true);
+    phf_shared_0_7_21.core =
+      (f.phf_shared_0_7_21.core or false) ||
+      (phf_0_7_21.core or false) ||
+      (f.phf_0_7_21.core or false);
+    phf_shared_0_7_21.default = true;
+    phf_shared_0_7_21.unicase =
+      (f.phf_shared_0_7_21.unicase or false) ||
+      (phf_0_7_21.unicase or false) ||
+      (f.phf_0_7_21.unicase or false);
+  }) [ phf_shared_0_7_21_features ];
+  phf_codegen_0_7_21 = { features?(phf_codegen_0_7_21_features {}) }: phf_codegen_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_generator_0_7_21 phf_shared_0_7_21 ]);
+  };
+  phf_codegen_0_7_21_features = f: updateFeatures f (rec {
+    phf_codegen_0_7_21.default = (f.phf_codegen_0_7_21.default or true);
+    phf_generator_0_7_21.default = true;
+    phf_shared_0_7_21.default = true;
+  }) [ phf_generator_0_7_21_features phf_shared_0_7_21_features ];
+  phf_generator_0_7_21 = { features?(phf_generator_0_7_21_features {}) }: phf_generator_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 rand_0_3_17 ]);
+  };
+  phf_generator_0_7_21_features = f: updateFeatures f (rec {
+    phf_generator_0_7_21.default = (f.phf_generator_0_7_21.default or true);
+    phf_shared_0_7_21.default = true;
+    rand_0_3_17.default = true;
+  }) [ phf_shared_0_7_21_features rand_0_3_17_features ];
+  phf_shared_0_7_21 = { features?(phf_shared_0_7_21_features {}) }: phf_shared_0_7_21_ {
+    dependencies = mapFeatures features ([ siphasher_0_2_2 ]);
+    features = mkFeatures (features.phf_shared_0_7_21 or {});
+  };
+  phf_shared_0_7_21_features = f: updateFeatures f (rec {
+    phf_shared_0_7_21.default = (f.phf_shared_0_7_21.default or true);
+    siphasher_0_2_2.default = true;
+  }) [ siphasher_0_2_2_features ];
+  png_0_5_2 = { features?(png_0_5_2_features {}) }: png_0_5_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 inflate_0_1_1 num_iter_0_1_34 ]
+      ++ (if features.png_0_5_2.flate2 or false then [ flate2_0_2_20 ] else []));
+    features = mkFeatures (features.png_0_5_2 or {});
+  };
+  png_0_5_2_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    flate2_0_2_20.default = true;
+    inflate_0_1_1.default = true;
+    num_iter_0_1_34.default = true;
+    png_0_5_2.default = (f.png_0_5_2.default or true);
+    png_0_5_2.flate2 =
+      (f.png_0_5_2.flate2 or false) ||
+      (f.png_0_5_2.png-encoding or false) ||
+      (png_0_5_2.png-encoding or false);
+    png_0_5_2.png-encoding =
+      (f.png_0_5_2.png-encoding or false) ||
+      (f.png_0_5_2.default or false) ||
+      (png_0_5_2.default or false);
+  }) [ bitflags_0_7_0_features flate2_0_2_20_features inflate_0_1_1_features num_iter_0_1_34_features ];
+  rand_0_3_17 = { features?(rand_0_3_17_features {}) }: rand_0_3_17_ {
+    dependencies = mapFeatures features ([ libc_0_2_32 ])
+      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_2_1 ]) else []);
+    features = mkFeatures (features.rand_0_3_17 or {});
+  };
+  rand_0_3_17_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_2_1.default = true;
+    libc_0_2_32.default = true;
+    rand_0_3_17.default = (f.rand_0_3_17.default or true);
+    rand_0_3_17.i128_support =
+      (f.rand_0_3_17.i128_support or false) ||
+      (f.rand_0_3_17.nightly or false) ||
+      (rand_0_3_17.nightly or false);
+  }) [ libc_0_2_32_features fuchsia_zircon_0_2_1_features ];
+  rayon_0_8_2 = { features?(rayon_0_8_2_features {}) }: rayon_0_8_2_ {
+    dependencies = mapFeatures features ([ rayon_core_1_2_1 ]);
+  };
+  rayon_0_8_2_features = f: updateFeatures f (rec {
+    rayon_0_8_2.default = (f.rayon_0_8_2.default or true);
+    rayon_core_1_2_1.default = true;
+  }) [ rayon_core_1_2_1_features ];
+  rayon_core_1_2_1 = { features?(rayon_core_1_2_1_features {}) }: rayon_core_1_2_1_ {
+    dependencies = mapFeatures features ([ coco_0_1_1 futures_0_1_16 lazy_static_0_2_9 libc_0_2_32 num_cpus_1_7_0 rand_0_3_17 ]);
+  };
+  rayon_core_1_2_1_features = f: updateFeatures f (rec {
+    coco_0_1_1.default = true;
+    futures_0_1_16.default = true;
+    lazy_static_0_2_9.default = true;
+    libc_0_2_32.default = true;
+    num_cpus_1_7_0.default = true;
+    rand_0_3_17.default = true;
+    rayon_core_1_2_1.default = (f.rayon_core_1_2_1.default or true);
+  }) [ coco_0_1_1_features futures_0_1_16_features lazy_static_0_2_9_features libc_0_2_32_features num_cpus_1_7_0_features rand_0_3_17_features ];
+  redox_syscall_0_1_31 = { features?(redox_syscall_0_1_31_features {}) }: redox_syscall_0_1_31_ {};
+  redox_syscall_0_1_31_features = f: updateFeatures f (rec {
+    redox_syscall_0_1_31.default = (f.redox_syscall_0_1_31.default or true);
+  }) [];
+  redox_termios_0_1_1 = { features?(redox_termios_0_1_1_features {}) }: redox_termios_0_1_1_ {
+    dependencies = mapFeatures features ([ redox_syscall_0_1_31 ]);
+  };
+  redox_termios_0_1_1_features = f: updateFeatures f (rec {
+    redox_syscall_0_1_31.default = true;
+    redox_termios_0_1_1.default = (f.redox_termios_0_1_1.default or true);
+  }) [ redox_syscall_0_1_31_features ];
+  rustc_serialize_0_3_24 = { features?(rustc_serialize_0_3_24_features {}) }: rustc_serialize_0_3_24_ {};
+  rustc_serialize_0_3_24_features = f: updateFeatures f (rec {
+    rustc_serialize_0_3_24.default = (f.rustc_serialize_0_3_24.default or true);
+  }) [];
+  scoped_threadpool_0_1_8 = { features?(scoped_threadpool_0_1_8_features {}) }: scoped_threadpool_0_1_8_ {
+    features = mkFeatures (features.scoped_threadpool_0_1_8 or {});
+  };
+  scoped_threadpool_0_1_8_features = f: updateFeatures f (rec {
+    scoped_threadpool_0_1_8.default = (f.scoped_threadpool_0_1_8.default or true);
+  }) [];
+  scopeguard_0_3_2 = { features?(scopeguard_0_3_2_features {}) }: scopeguard_0_3_2_ {
+    features = mkFeatures (features.scopeguard_0_3_2 or {});
+  };
+  scopeguard_0_3_2_features = f: updateFeatures f (rec {
+    scopeguard_0_3_2.default = (f.scopeguard_0_3_2.default or true);
+    scopeguard_0_3_2.use_std =
+      (f.scopeguard_0_3_2.use_std or false) ||
+      (f.scopeguard_0_3_2.default or false) ||
+      (scopeguard_0_3_2.default or false);
+  }) [];
+  serde_0_9_15 = { features?(serde_0_9_15_features {}) }: serde_0_9_15_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.serde_0_9_15 or {});
+  };
+  serde_0_9_15_features = f: updateFeatures f (rec {
+    serde_0_9_15.alloc =
+      (f.serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.collections or false) ||
+      (serde_0_9_15.collections or false);
+    serde_0_9_15.default = (f.serde_0_9_15.default or true);
+    serde_0_9_15.serde_derive =
+      (f.serde_0_9_15.serde_derive or false) ||
+      (f.serde_0_9_15.derive or false) ||
+      (serde_0_9_15.derive or false) ||
+      (f.serde_0_9_15.playground or false) ||
+      (serde_0_9_15.playground or false);
+    serde_0_9_15.std =
+      (f.serde_0_9_15.std or false) ||
+      (f.serde_0_9_15.default or false) ||
+      (serde_0_9_15.default or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+    serde_0_9_15.unstable =
+      (f.serde_0_9_15.unstable or false) ||
+      (f.serde_0_9_15.alloc or false) ||
+      (serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+  }) [];
+  serde_json_0_9_10 = { features?(serde_json_0_9_10_features {}) }: serde_json_0_9_10_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_2 itoa_0_3_4 num_traits_0_1_40 serde_0_9_15 ]);
+    features = mkFeatures (features.serde_json_0_9_10 or {});
+  };
+  serde_json_0_9_10_features = f: updateFeatures f (rec {
+    dtoa_0_4_2.default = true;
+    itoa_0_3_4.default = true;
+    num_traits_0_1_40.default = true;
+    serde_0_9_15.default = true;
+    serde_json_0_9_10.default = (f.serde_json_0_9_10.default or true);
+    serde_json_0_9_10.linked-hash-map =
+      (f.serde_json_0_9_10.linked-hash-map or false) ||
+      (f.serde_json_0_9_10.preserve_order or false) ||
+      (serde_json_0_9_10.preserve_order or false);
+  }) [ dtoa_0_4_2_features itoa_0_3_4_features num_traits_0_1_40_features serde_0_9_15_features ];
+  siphasher_0_2_2 = { features?(siphasher_0_2_2_features {}) }: siphasher_0_2_2_ {
+    dependencies = mapFeatures features ([]);
+  };
+  siphasher_0_2_2_features = f: updateFeatures f (rec {
+    siphasher_0_2_2.default = (f.siphasher_0_2_2.default or true);
+  }) [];
+  strsim_0_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
+  strsim_0_6_0_features = f: updateFeatures f (rec {
+    strsim_0_6_0.default = (f.strsim_0_6_0.default or true);
+  }) [];
+  target_build_utils_0_3_1 = { features?(target_build_utils_0_3_1_features {}) }: target_build_utils_0_3_1_ {
+    dependencies = mapFeatures features ([ phf_0_7_21 ]
+      ++ (if features.target_build_utils_0_3_1.serde_json or false then [ serde_json_0_9_10 ] else []));
+    buildDependencies = mapFeatures features ([ phf_codegen_0_7_21 ]);
+    features = mkFeatures (features.target_build_utils_0_3_1 or {});
+  };
+  target_build_utils_0_3_1_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = true;
+    phf_codegen_0_7_21.default = true;
+    serde_json_0_9_10.default = true;
+    target_build_utils_0_3_1.default = (f.target_build_utils_0_3_1.default or true);
+    target_build_utils_0_3_1.serde_json =
+      (f.target_build_utils_0_3_1.serde_json or false) ||
+      (f.target_build_utils_0_3_1.default or false) ||
+      (target_build_utils_0_3_1.default or false);
+  }) [ phf_0_7_21_features serde_json_0_9_10_features phf_codegen_0_7_21_features ];
+  tempfile_2_2_0 = { features?(tempfile_2_2_0_features {}) }: tempfile_2_2_0_ {
+    dependencies = mapFeatures features ([ rand_0_3_17 ])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_31 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_32 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  tempfile_2_2_0_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_32.default = true;
+    rand_0_3_17.default = true;
+    redox_syscall_0_1_31.default = true;
+    tempfile_2_2_0.default = (f.tempfile_2_2_0.default or true);
+    winapi_0_2_8.default = true;
+  }) [ rand_0_3_17_features redox_syscall_0_1_31_features libc_0_2_32_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  term_size_0_3_0 = { features?(term_size_0_3_0_features {}) }: term_size_0_3_0_ {
+    dependencies = mapFeatures features ([])
+      ++ (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_32 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    features = mkFeatures (features.term_size_0_3_0 or {});
+  };
+  term_size_0_3_0_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_32.default = true;
+    term_size_0_3_0.clippy =
+      (f.term_size_0_3_0.clippy or false) ||
+      (f.term_size_0_3_0.lints or false) ||
+      (term_size_0_3_0.lints or false);
+    term_size_0_3_0.default = (f.term_size_0_3_0.default or true);
+    term_size_0_3_0.lints =
+      (f.term_size_0_3_0.lints or false) ||
+      (f.term_size_0_3_0.travis or false) ||
+      (term_size_0_3_0.travis or false);
+    term_size_0_3_0.nightly =
+      (f.term_size_0_3_0.nightly or false) ||
+      (f.term_size_0_3_0.lints or false) ||
+      (term_size_0_3_0.lints or false) ||
+      (f.term_size_0_3_0.travis or false) ||
+      (term_size_0_3_0.travis or false);
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_32_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  termion_1_5_1 = { features?(termion_1_5_1_features {}) }: termion_1_5_1_ {
+    dependencies = (if !(kernel == "redox") then mapFeatures features ([ libc_0_2_32 ]) else [])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_31 redox_termios_0_1_1 ]) else []);
+  };
+  termion_1_5_1_features = f: updateFeatures f (rec {
+    libc_0_2_32.default = true;
+    redox_syscall_0_1_31.default = true;
+    redox_termios_0_1_1.default = true;
+    termion_1_5_1.default = (f.termion_1_5_1.default or true);
+  }) [ libc_0_2_32_features redox_syscall_0_1_31_features redox_termios_0_1_1_features ];
+  textwrap_0_8_0 = { features?(textwrap_0_8_0_features {}) }: textwrap_0_8_0_ {
+    dependencies = mapFeatures features ([ term_size_0_3_0 unicode_width_0_1_4 ]);
+  };
+  textwrap_0_8_0_features = f: updateFeatures f (rec {
+    term_size_0_3_0.default = true;
+    textwrap_0_8_0.default = (f.textwrap_0_8_0.default or true);
+    unicode_width_0_1_4.default = true;
+  }) [ term_size_0_3_0_features unicode_width_0_1_4_features ];
+  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
+    features = mkFeatures (features.unicode_width_0_1_4 or {});
+  };
+  unicode_width_0_1_4_features = f: updateFeatures f (rec {
+    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
+  }) [];
+  vec_map_0_8_0 = { features?(vec_map_0_8_0_features {}) }: vec_map_0_8_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.vec_map_0_8_0 or {});
+  };
+  vec_map_0_8_0_features = f: updateFeatures f (rec {
+    vec_map_0_8_0.default = (f.vec_map_0_8_0.default or true);
+    vec_map_0_8_0.serde =
+      (f.vec_map_0_8_0.serde or false) ||
+      (f.vec_map_0_8_0.eders or false) ||
+      (vec_map_0_8_0.eders or false);
+    vec_map_0_8_0.serde_derive =
+      (f.vec_map_0_8_0.serde_derive or false) ||
+      (f.vec_map_0_8_0.eders or false) ||
+      (vec_map_0_8_0.eders or false);
+  }) [];
+  way_cooler_client_helpers_0_1_0 = { features?(way_cooler_client_helpers_0_1_0_features {}) }: way_cooler_client_helpers_0_1_0_ {
+    dependencies = mapFeatures features ([ wayland_client_0_9_10 wayland_sys_0_9_10 ]);
+  };
+  way_cooler_client_helpers_0_1_0_features = f: updateFeatures f (rec {
+    way_cooler_client_helpers_0_1_0.default = (f.way_cooler_client_helpers_0_1_0.default or true);
+    wayland_client_0_9_10.cursor = true;
+    wayland_client_0_9_10.default = true;
+    wayland_client_0_9_10.dlopen = true;
+    wayland_sys_0_9_10.client = true;
+    wayland_sys_0_9_10.default = true;
+    wayland_sys_0_9_10.dlopen = true;
+  }) [ wayland_client_0_9_10_features wayland_sys_0_9_10_features ];
+  wayland_client_0_9_10 = { features?(wayland_client_0_9_10_features {}) }: wayland_client_0_9_10_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 libc_0_2_32 wayland_sys_0_9_10 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_9_10 ]);
+    features = mkFeatures (features.wayland_client_0_9_10 or {});
+  };
+  wayland_client_0_9_10_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    libc_0_2_32.default = true;
+    wayland_client_0_9_10.cursor =
+      (f.wayland_client_0_9_10.cursor or false) ||
+      (f.wayland_client_0_9_10.default or false) ||
+      (wayland_client_0_9_10.default or false);
+    wayland_client_0_9_10.default = (f.wayland_client_0_9_10.default or true);
+    wayland_client_0_9_10.egl =
+      (f.wayland_client_0_9_10.egl or false) ||
+      (f.wayland_client_0_9_10.default or false) ||
+      (wayland_client_0_9_10.default or false);
+    wayland_scanner_0_9_10.default = true;
+    wayland_sys_0_9_10.client = true;
+    wayland_sys_0_9_10.cursor =
+      (f.wayland_sys_0_9_10.cursor or false) ||
+      (wayland_client_0_9_10.cursor or false) ||
+      (f.wayland_client_0_9_10.cursor or false);
+    wayland_sys_0_9_10.default = true;
+    wayland_sys_0_9_10.dlopen =
+      (f.wayland_sys_0_9_10.dlopen or false) ||
+      (wayland_client_0_9_10.dlopen or false) ||
+      (f.wayland_client_0_9_10.dlopen or false);
+    wayland_sys_0_9_10.egl =
+      (f.wayland_sys_0_9_10.egl or false) ||
+      (wayland_client_0_9_10.egl or false) ||
+      (f.wayland_client_0_9_10.egl or false);
+  }) [ bitflags_0_9_1_features libc_0_2_32_features wayland_sys_0_9_10_features wayland_scanner_0_9_10_features ];
+  wayland_scanner_0_9_10 = { features?(wayland_scanner_0_9_10_features {}) }: wayland_scanner_0_9_10_ {
+    dependencies = mapFeatures features ([ xml_rs_0_6_1 ]);
+  };
+  wayland_scanner_0_9_10_features = f: updateFeatures f (rec {
+    wayland_scanner_0_9_10.default = (f.wayland_scanner_0_9_10.default or true);
+    xml_rs_0_6_1.default = true;
+  }) [ xml_rs_0_6_1_features ];
+  wayland_sys_0_9_10 = { features?(wayland_sys_0_9_10_features {}) }: wayland_sys_0_9_10_ {
+    dependencies = mapFeatures features ([ dlib_0_3_1 ]
+      ++ (if features.wayland_sys_0_9_10.lazy_static or false then [ lazy_static_0_2_9 ] else []));
+    features = mkFeatures (features.wayland_sys_0_9_10 or {});
+  };
+  wayland_sys_0_9_10_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = true;
+    dlib_0_3_1.dlopen =
+      (f.dlib_0_3_1.dlopen or false) ||
+      (wayland_sys_0_9_10.dlopen or false) ||
+      (f.wayland_sys_0_9_10.dlopen or false);
+    lazy_static_0_2_9.default = true;
+    wayland_sys_0_9_10.default = (f.wayland_sys_0_9_10.default or true);
+    wayland_sys_0_9_10.lazy_static =
+      (f.wayland_sys_0_9_10.lazy_static or false) ||
+      (f.wayland_sys_0_9_10.dlopen or false) ||
+      (wayland_sys_0_9_10.dlopen or false);
+    wayland_sys_0_9_10.libc =
+      (f.wayland_sys_0_9_10.libc or false) ||
+      (f.wayland_sys_0_9_10.server or false) ||
+      (wayland_sys_0_9_10.server or false);
+  }) [ dlib_0_3_1_features lazy_static_0_2_9_features ];
+  wc_bg_0_3_0 = { features?(wc_bg_0_3_0_features {}) }: wc_bg_0_3_0_ {
+    dependencies = mapFeatures features ([ byteorder_0_5_3 clap_2_26_2 image_0_10_4 tempfile_2_2_0 way_cooler_client_helpers_0_1_0 wayland_client_0_9_10 wayland_sys_0_9_10 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_9_10 ]);
+  };
+  wc_bg_0_3_0_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = true;
+    clap_2_26_2.default = true;
+    image_0_10_4.default = true;
+    tempfile_2_2_0.default = true;
+    way_cooler_client_helpers_0_1_0.default = true;
+    wayland_client_0_9_10.cursor = true;
+    wayland_client_0_9_10.default = true;
+    wayland_client_0_9_10.dlopen = true;
+    wayland_scanner_0_9_10.default = true;
+    wayland_sys_0_9_10.client = true;
+    wayland_sys_0_9_10.default = true;
+    wayland_sys_0_9_10.dlopen = true;
+    wc_bg_0_3_0.default = (f.wc_bg_0_3_0.default or true);
+  }) [ byteorder_0_5_3_features clap_2_26_2_features image_0_10_4_features tempfile_2_2_0_features way_cooler_client_helpers_0_1_0_features wayland_client_0_9_10_features wayland_sys_0_9_10_features wayland_scanner_0_9_10_features ];
+  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
+  winapi_0_2_8_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
+  }) [];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
+  xml_rs_0_6_1 = { features?(xml_rs_0_6_1_features {}) }: xml_rs_0_6_1_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 ]);
+  };
+  xml_rs_0_6_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    xml_rs_0_6_1.default = (f.xml_rs_0_6_1.default or true);
+  }) [ bitflags_0_9_1_features ];
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-grab.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-grab.nix
new file mode 100644
index 000000000000..6f936eb2e432
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-grab.nix
@@ -0,0 +1,794 @@
+# Generated by carnix 0.6.5: carnix -o wc-grab.nix Cargo.lock
+{ lib, stdenv, buildRustCrate, fetchgit }:
+let kernel = stdenv.hostPlatform.parsed.kernel.name;
+    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+    mapFeatures = features: map (fun: fun { features = features; });
+    mkFeatures = feat: lib.lists.foldl (features: featureName:
+      if feat.${featureName} or false then
+        [ featureName ] ++ features
+      else
+        features
+    ) [] (builtins.attrNames feat);
+in
+rec {
+  wc_grab = f: wc_grab_0_3_0 { features = wc_grab_0_3_0_features { wc_grab_0_3_0 = f; }; };
+  adler32_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "adler32";
+    version = "1.0.0";
+    authors = [ "Remi Rampin <remirampin@gmail.com>" ];
+    sha256 = "0pj35a7m4apn5xjg9n63gsdj6w8iw76zg4p9znrij43xnfqp084w";
+    inherit dependencies buildDependencies features;
+  };
+  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.9.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+    inherit dependencies buildDependencies features;
+  };
+  atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "atty";
+    version = "0.2.2";
+    authors = [ "softprops <d.tangren@gmail.com>" ];
+    sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.7.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.8.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1h489m0wzhng5gvvc40jgdbaf0ac3rgkka31vwinhsjmfvrqcc4v";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "1.0.0";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "14pdnds4517vcpablc51vv76hvc3glnpkpbb7qdil591q7lyb0m1";
+    inherit dependencies buildDependencies features;
+  };
+  clap_2_22_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "clap";
+    version = "2.22.0";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+    sha256 = "0gdgyfh3ydpd2px4xh0i5qd6bhi2c5f43bqv9z4kla9vkmmfiavd";
+    inherit dependencies buildDependencies features;
+  };
+  color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "color_quant";
+    version = "1.0.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
+    inherit dependencies buildDependencies features;
+  };
+  dbus_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dbus";
+    version = "0.5.2";
+    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+    sha256 = "1ga3p2myqxbz34n2bbw4gk1ipf76mjr8r2rvrvnalwggymzfkhj7";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  deflate_0_7_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "deflate";
+    version = "0.7.5";
+    authors = [ "oyvindln <oyvindln@users.noreply.github.com>" ];
+    sha256 = "18bcmdkyshnzpkxx22b29gn55g6bk5ysy98ghjpjhxy3hky96rvy";
+    inherit dependencies buildDependencies features;
+  };
+  deque_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "deque";
+    version = "0.3.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Samuel Fredrickson <kinghajj@gmail.com>" "Linus Färnstrand <faern@faern.net>" "Amanieu d'Antras <amanieu@gmail.com>" ];
+    sha256 = "04x8i5aagxmslk350i8qszyw7kmvrqc3d99g4qi1xnfmr61y7m68";
+    inherit dependencies buildDependencies features;
+  };
+  enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "enum_primitive";
+    version = "0.1.1";
+    authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
+    sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
+    inherit dependencies buildDependencies features;
+  };
+  error_chain_0_7_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "error-chain";
+    version = "0.7.2";
+    authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
+    sha256 = "0b1r4ggdgy1djfvz2s4l5kirmfsmxd286y6wx0p9ahv2phb7inyi";
+    inherit dependencies buildDependencies features;
+  };
+  gif_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gif";
+    version = "0.9.1";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "16s7b0rqc6gg1fcbppakm3jy2q462w3qvykcmcmifmg7q7lwsg6r";
+    inherit dependencies buildDependencies features;
+  };
+  glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glob";
+    version = "0.2.11";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
+    inherit dependencies buildDependencies features;
+  };
+  image_0_12_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "image";
+    version = "0.12.3";
+    authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
+    sha256 = "12xdzi29vr19gz3h93c1ihyvyv9xar9sp0inrjwwvlbjvn8nn0p9";
+    libPath = "./src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "inflate";
+    version = "0.1.1";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
+    inherit dependencies buildDependencies features;
+  };
+  jpeg_decoder_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "jpeg-decoder";
+    version = "0.1.11";
+    authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
+    sha256 = "1xm39c1cff5gkczs164371hk2gpkjpkbw63k4f8mjnpwwpn9xk4n";
+    inherit dependencies buildDependencies features;
+  };
+  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "kernel32-sys";
+    version = "0.2.2";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+    libName = "kernel32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.21";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0glj3lxwc8358cfw9pb5dd4zr9iynzj6w2ly59nshrggsw021j75";
+    inherit dependencies buildDependencies features;
+  };
+  lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lzw";
+    version = "0.10.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
+    inherit dependencies buildDependencies features;
+  };
+  metadeps_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "metadeps";
+    version = "1.1.1";
+    authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
+    sha256 = "1px8v94jn4ps63gqmvgsfcqxrwjhpa9z4xr0y1lh95wn2063fsar";
+    inherit dependencies buildDependencies features;
+  };
+  num_integer_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-integer";
+    version = "0.1.33";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1rhy9lf4lhl7r8278n73mi9y55v9a71639as3v92bj2gk1x4k729";
+    inherit dependencies buildDependencies features;
+  };
+  num_iter_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-iter";
+    version = "0.1.33";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1xjzf2p2vaqwknkr4s8ka5hn6cpr5rsshnydbpkn2pvapfzdrqd3";
+    inherit dependencies buildDependencies features;
+  };
+  num_rational_0_1_36_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-rational";
+    version = "0.1.36";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0jibhs8xiap2wlv1xjwdvhyj4yrxwfisqbnfm53vjm5ldlijp87p";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.1.37";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
+    inherit dependencies buildDependencies features;
+  };
+  num_cpus_1_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num_cpus";
+    version = "1.3.0";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "0i0zm6qh932k9b67qf7f1vsczkdim5kg9qv73m7y5hhw1i781rrb";
+    inherit dependencies buildDependencies features;
+  };
+  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.9";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
+    inherit dependencies buildDependencies features;
+  };
+  png_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "png";
+    version = "0.6.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "03i78w5jbvk9y6babfrh7h0akvg81pcyyhniilv24z5v0vh5jvjs";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.15";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon";
+    version = "0.6.0";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" ];
+    sha256 = "0y2693bari5j4h46mjzkyc9lkfbnq2d1p0ldyn6sb02jn63lpw97";
+    inherit dependencies buildDependencies features;
+  };
+  scoped_threadpool_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scoped_threadpool";
+    version = "0.1.7";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0dg58f18i6v071640062n0vymr4h42cnj0xy8a7b80sc0mddykyk";
+    inherit dependencies buildDependencies features;
+  };
+  strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.6.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
+    inherit dependencies buildDependencies features;
+  };
+  term_size_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "term_size";
+    version = "0.2.3";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
+    sha256 = "16b7gq2dmz7mws4vgai7whxy4xkg4yvlhm7spz0q6jyipqfq87ci";
+    inherit dependencies buildDependencies features;
+  };
+  toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "toml";
+    version = "0.2.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_segmentation_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-segmentation";
+    version = "1.1.0";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "10hk7wy0217jwdbp27p36skwkig5lbhk482yfzij9m87h247rry0";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-width";
+    version = "0.1.4";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
+    inherit dependencies buildDependencies features;
+  };
+  vec_map_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vec_map";
+    version = "0.7.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+    sha256 = "0jawvi83b1nm101nam0w71kdyh7cy3fr0l9qj1hfcjvzvihfk2l1";
+    inherit dependencies buildDependencies features;
+  };
+  wc_grab_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wc-grab";
+    version = "0.3.0";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "02dkjxffzh38h3hiwfypkjv0g8dsfkp9wk20j04x4qydg4dr8a8h";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.2.8";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  adler32_1_0_0 = { features?(adler32_1_0_0_features {}) }: adler32_1_0_0_ {};
+  adler32_1_0_0_features = f: updateFeatures f (rec {
+    adler32_1_0_0.default = (f.adler32_1_0_0.default or true);
+  }) [];
+  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
+  ansi_term_0_9_0_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
+  }) [];
+  atty_0_2_2 = { features?(atty_0_2_2_features {}) }: atty_0_2_2_ {
+    dependencies = (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_21 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  atty_0_2_2_features = f: updateFeatures f (rec {
+    atty_0_2_2.default = (f.atty_0_2_2.default or true);
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_21.default = true;
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_21_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
+  bitflags_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
+  }) [];
+  bitflags_0_8_0 = { features?(bitflags_0_8_0_features {}) }: bitflags_0_8_0_ {
+    features = mkFeatures (features.bitflags_0_8_0 or {});
+  };
+  bitflags_0_8_0_features = f: updateFeatures f (rec {
+    bitflags_0_8_0.default = (f.bitflags_0_8_0.default or true);
+    bitflags_0_8_0.i128 =
+      (f.bitflags_0_8_0.i128 or false) ||
+      (f.bitflags_0_8_0.unstable or false) ||
+      (bitflags_0_8_0.unstable or false);
+  }) [];
+  byteorder_1_0_0 = { features?(byteorder_1_0_0_features {}) }: byteorder_1_0_0_ {
+    features = mkFeatures (features.byteorder_1_0_0 or {});
+  };
+  byteorder_1_0_0_features = f: updateFeatures f (rec {
+    byteorder_1_0_0.default = (f.byteorder_1_0_0.default or true);
+    byteorder_1_0_0.std =
+      (f.byteorder_1_0_0.std or false) ||
+      (f.byteorder_1_0_0.default or false) ||
+      (byteorder_1_0_0.default or false);
+  }) [];
+  clap_2_22_0 = { features?(clap_2_22_0_features {}) }: clap_2_22_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_8_0 unicode_segmentation_1_1_0 unicode_width_0_1_4 vec_map_0_7_0 ]
+      ++ (if features.clap_2_22_0.ansi_term or false then [ ansi_term_0_9_0 ] else [])
+      ++ (if features.clap_2_22_0.atty or false then [ atty_0_2_2 ] else [])
+      ++ (if features.clap_2_22_0.strsim or false then [ strsim_0_6_0 ] else [])
+      ++ (if features.clap_2_22_0.term_size or false then [ term_size_0_2_3 ] else []));
+    features = mkFeatures (features.clap_2_22_0 or {});
+  };
+  clap_2_22_0_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = true;
+    atty_0_2_2.default = true;
+    bitflags_0_8_0.default = true;
+    clap_2_22_0.ansi_term =
+      (f.clap_2_22_0.ansi_term or false) ||
+      (f.clap_2_22_0.color or false) ||
+      (clap_2_22_0.color or false);
+    clap_2_22_0.atty =
+      (f.clap_2_22_0.atty or false) ||
+      (f.clap_2_22_0.color or false) ||
+      (clap_2_22_0.color or false);
+    clap_2_22_0.clippy =
+      (f.clap_2_22_0.clippy or false) ||
+      (f.clap_2_22_0.lints or false) ||
+      (clap_2_22_0.lints or false);
+    clap_2_22_0.color =
+      (f.clap_2_22_0.color or false) ||
+      (f.clap_2_22_0.default or false) ||
+      (clap_2_22_0.default or false);
+    clap_2_22_0.default = (f.clap_2_22_0.default or true);
+    clap_2_22_0.strsim =
+      (f.clap_2_22_0.strsim or false) ||
+      (f.clap_2_22_0.suggestions or false) ||
+      (clap_2_22_0.suggestions or false);
+    clap_2_22_0.suggestions =
+      (f.clap_2_22_0.suggestions or false) ||
+      (f.clap_2_22_0.default or false) ||
+      (clap_2_22_0.default or false);
+    clap_2_22_0.term_size =
+      (f.clap_2_22_0.term_size or false) ||
+      (f.clap_2_22_0.wrap_help or false) ||
+      (clap_2_22_0.wrap_help or false);
+    clap_2_22_0.wrap_help =
+      (f.clap_2_22_0.wrap_help or false) ||
+      (f.clap_2_22_0.default or false) ||
+      (clap_2_22_0.default or false);
+    clap_2_22_0.yaml-rust =
+      (f.clap_2_22_0.yaml-rust or false) ||
+      (f.clap_2_22_0.yaml or false) ||
+      (clap_2_22_0.yaml or false);
+    strsim_0_6_0.default = true;
+    term_size_0_2_3.default = true;
+    unicode_segmentation_1_1_0.default = true;
+    unicode_width_0_1_4.default = true;
+    vec_map_0_7_0.default = true;
+  }) [ ansi_term_0_9_0_features atty_0_2_2_features bitflags_0_8_0_features strsim_0_6_0_features term_size_0_2_3_features unicode_segmentation_1_1_0_features unicode_width_0_1_4_features vec_map_0_7_0_features ];
+  color_quant_1_0_0 = { features?(color_quant_1_0_0_features {}) }: color_quant_1_0_0_ {};
+  color_quant_1_0_0_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = (f.color_quant_1_0_0.default or true);
+  }) [];
+  dbus_0_5_2 = { features?(dbus_0_5_2_features {}) }: dbus_0_5_2_ {
+    dependencies = mapFeatures features ([ libc_0_2_21 ]);
+    buildDependencies = mapFeatures features ([ metadeps_1_1_1 ]);
+    features = mkFeatures (features.dbus_0_5_2 or {});
+  };
+  dbus_0_5_2_features = f: updateFeatures f (rec {
+    dbus_0_5_2.default = (f.dbus_0_5_2.default or true);
+    libc_0_2_21.default = true;
+    metadeps_1_1_1.default = true;
+  }) [ libc_0_2_21_features metadeps_1_1_1_features ];
+  deflate_0_7_5 = { features?(deflate_0_7_5_features {}) }: deflate_0_7_5_ {
+    dependencies = mapFeatures features ([ adler32_1_0_0 byteorder_1_0_0 ]);
+  };
+  deflate_0_7_5_features = f: updateFeatures f (rec {
+    adler32_1_0_0.default = true;
+    byteorder_1_0_0.default = true;
+    deflate_0_7_5.default = (f.deflate_0_7_5.default or true);
+  }) [ adler32_1_0_0_features byteorder_1_0_0_features ];
+  deque_0_3_1 = { features?(deque_0_3_1_features {}) }: deque_0_3_1_ {
+    dependencies = mapFeatures features ([ rand_0_3_15 ]);
+  };
+  deque_0_3_1_features = f: updateFeatures f (rec {
+    deque_0_3_1.default = (f.deque_0_3_1.default or true);
+    rand_0_3_15.default = true;
+  }) [ rand_0_3_15_features ];
+  enum_primitive_0_1_1 = { features?(enum_primitive_0_1_1_features {}) }: enum_primitive_0_1_1_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
+  };
+  enum_primitive_0_1_1_features = f: updateFeatures f (rec {
+    enum_primitive_0_1_1.default = (f.enum_primitive_0_1_1.default or true);
+    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or false);
+  }) [ num_traits_0_1_37_features ];
+  error_chain_0_7_2 = { features?(error_chain_0_7_2_features {}) }: error_chain_0_7_2_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.error_chain_0_7_2 or {});
+  };
+  error_chain_0_7_2_features = f: updateFeatures f (rec {
+    error_chain_0_7_2.backtrace =
+      (f.error_chain_0_7_2.backtrace or false) ||
+      (f.error_chain_0_7_2.default or false) ||
+      (error_chain_0_7_2.default or false);
+    error_chain_0_7_2.default = (f.error_chain_0_7_2.default or true);
+    error_chain_0_7_2.example_generated =
+      (f.error_chain_0_7_2.example_generated or false) ||
+      (f.error_chain_0_7_2.default or false) ||
+      (error_chain_0_7_2.default or false);
+  }) [];
+  gif_0_9_1 = { features?(gif_0_9_1_features {}) }: gif_0_9_1_ {
+    dependencies = mapFeatures features ([ color_quant_1_0_0 lzw_0_10_0 ]);
+    features = mkFeatures (features.gif_0_9_1 or {});
+  };
+  gif_0_9_1_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = true;
+    gif_0_9_1.default = (f.gif_0_9_1.default or true);
+    gif_0_9_1.libc =
+      (f.gif_0_9_1.libc or false) ||
+      (f.gif_0_9_1.c_api or false) ||
+      (gif_0_9_1.c_api or false);
+    gif_0_9_1.raii_no_panic =
+      (f.gif_0_9_1.raii_no_panic or false) ||
+      (f.gif_0_9_1.default or false) ||
+      (gif_0_9_1.default or false);
+    lzw_0_10_0.default = true;
+  }) [ color_quant_1_0_0_features lzw_0_10_0_features ];
+  glob_0_2_11 = { features?(glob_0_2_11_features {}) }: glob_0_2_11_ {};
+  glob_0_2_11_features = f: updateFeatures f (rec {
+    glob_0_2_11.default = (f.glob_0_2_11.default or true);
+  }) [];
+  image_0_12_3 = { features?(image_0_12_3_features {}) }: image_0_12_3_ {
+    dependencies = mapFeatures features ([ byteorder_1_0_0 enum_primitive_0_1_1 glob_0_2_11 num_iter_0_1_33 num_rational_0_1_36 num_traits_0_1_37 ]
+      ++ (if features.image_0_12_3.gif or false then [ gif_0_9_1 ] else [])
+      ++ (if features.image_0_12_3.jpeg-decoder or false then [ jpeg_decoder_0_1_11 ] else [])
+      ++ (if features.image_0_12_3.png or false then [ png_0_6_2 ] else [])
+      ++ (if features.image_0_12_3.scoped_threadpool or false then [ scoped_threadpool_0_1_7 ] else []));
+    features = mkFeatures (features.image_0_12_3 or {});
+  };
+  image_0_12_3_features = f: updateFeatures f (rec {
+    byteorder_1_0_0.default = true;
+    enum_primitive_0_1_1.default = true;
+    gif_0_9_1.default = true;
+    glob_0_2_11.default = true;
+    image_0_12_3.bmp =
+      (f.image_0_12_3.bmp or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false) ||
+      (f.image_0_12_3.ico or false) ||
+      (image_0_12_3.ico or false);
+    image_0_12_3.default = (f.image_0_12_3.default or true);
+    image_0_12_3.gif =
+      (f.image_0_12_3.gif or false) ||
+      (f.image_0_12_3.gif_codec or false) ||
+      (image_0_12_3.gif_codec or false);
+    image_0_12_3.gif_codec =
+      (f.image_0_12_3.gif_codec or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.hdr =
+      (f.image_0_12_3.hdr or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.ico =
+      (f.image_0_12_3.ico or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.jpeg =
+      (f.image_0_12_3.jpeg or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.jpeg-decoder =
+      (f.image_0_12_3.jpeg-decoder or false) ||
+      (f.image_0_12_3.jpeg or false) ||
+      (image_0_12_3.jpeg or false);
+    image_0_12_3.png =
+      (f.image_0_12_3.png or false) ||
+      (f.image_0_12_3.png_codec or false) ||
+      (image_0_12_3.png_codec or false);
+    image_0_12_3.png_codec =
+      (f.image_0_12_3.png_codec or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false) ||
+      (f.image_0_12_3.ico or false) ||
+      (image_0_12_3.ico or false);
+    image_0_12_3.ppm =
+      (f.image_0_12_3.ppm or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.scoped_threadpool =
+      (f.image_0_12_3.scoped_threadpool or false) ||
+      (f.image_0_12_3.hdr or false) ||
+      (image_0_12_3.hdr or false);
+    image_0_12_3.tga =
+      (f.image_0_12_3.tga or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.tiff =
+      (f.image_0_12_3.tiff or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.webp =
+      (f.image_0_12_3.webp or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    jpeg_decoder_0_1_11.default = true;
+    num_iter_0_1_33.default = true;
+    num_rational_0_1_36.default = (f.num_rational_0_1_36.default or false);
+    num_traits_0_1_37.default = true;
+    png_0_6_2.default = true;
+    scoped_threadpool_0_1_7.default = true;
+  }) [ byteorder_1_0_0_features enum_primitive_0_1_1_features gif_0_9_1_features glob_0_2_11_features jpeg_decoder_0_1_11_features num_iter_0_1_33_features num_rational_0_1_36_features num_traits_0_1_37_features png_0_6_2_features scoped_threadpool_0_1_7_features ];
+  inflate_0_1_1 = { features?(inflate_0_1_1_features {}) }: inflate_0_1_1_ {
+    features = mkFeatures (features.inflate_0_1_1 or {});
+  };
+  inflate_0_1_1_features = f: updateFeatures f (rec {
+    inflate_0_1_1.default = (f.inflate_0_1_1.default or true);
+  }) [];
+  jpeg_decoder_0_1_11 = { features?(jpeg_decoder_0_1_11_features {}) }: jpeg_decoder_0_1_11_ {
+    dependencies = mapFeatures features ([ byteorder_1_0_0 ]
+      ++ (if features.jpeg_decoder_0_1_11.rayon or false then [ rayon_0_6_0 ] else []));
+    features = mkFeatures (features.jpeg_decoder_0_1_11 or {});
+  };
+  jpeg_decoder_0_1_11_features = f: updateFeatures f (rec {
+    byteorder_1_0_0.default = true;
+    jpeg_decoder_0_1_11.default = (f.jpeg_decoder_0_1_11.default or true);
+    jpeg_decoder_0_1_11.rayon =
+      (f.jpeg_decoder_0_1_11.rayon or false) ||
+      (f.jpeg_decoder_0_1_11.default or false) ||
+      (jpeg_decoder_0_1_11.default or false);
+    rayon_0_6_0.default = true;
+  }) [ byteorder_1_0_0_features rayon_0_6_0_features ];
+  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  libc_0_2_21 = { features?(libc_0_2_21_features {}) }: libc_0_2_21_ {
+    features = mkFeatures (features.libc_0_2_21 or {});
+  };
+  libc_0_2_21_features = f: updateFeatures f (rec {
+    libc_0_2_21.default = (f.libc_0_2_21.default or true);
+    libc_0_2_21.use_std =
+      (f.libc_0_2_21.use_std or false) ||
+      (f.libc_0_2_21.default or false) ||
+      (libc_0_2_21.default or false);
+  }) [];
+  lzw_0_10_0 = { features?(lzw_0_10_0_features {}) }: lzw_0_10_0_ {
+    features = mkFeatures (features.lzw_0_10_0 or {});
+  };
+  lzw_0_10_0_features = f: updateFeatures f (rec {
+    lzw_0_10_0.default = (f.lzw_0_10_0.default or true);
+    lzw_0_10_0.raii_no_panic =
+      (f.lzw_0_10_0.raii_no_panic or false) ||
+      (f.lzw_0_10_0.default or false) ||
+      (lzw_0_10_0.default or false);
+  }) [];
+  metadeps_1_1_1 = { features?(metadeps_1_1_1_features {}) }: metadeps_1_1_1_ {
+    dependencies = mapFeatures features ([ error_chain_0_7_2 pkg_config_0_3_9 toml_0_2_1 ]);
+  };
+  metadeps_1_1_1_features = f: updateFeatures f (rec {
+    error_chain_0_7_2.default = (f.error_chain_0_7_2.default or false);
+    metadeps_1_1_1.default = (f.metadeps_1_1_1.default or true);
+    pkg_config_0_3_9.default = true;
+    toml_0_2_1.default = (f.toml_0_2_1.default or false);
+  }) [ error_chain_0_7_2_features pkg_config_0_3_9_features toml_0_2_1_features ];
+  num_integer_0_1_33 = { features?(num_integer_0_1_33_features {}) }: num_integer_0_1_33_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
+  };
+  num_integer_0_1_33_features = f: updateFeatures f (rec {
+    num_integer_0_1_33.default = (f.num_integer_0_1_33.default or true);
+    num_traits_0_1_37.default = true;
+  }) [ num_traits_0_1_37_features ];
+  num_iter_0_1_33 = { features?(num_iter_0_1_33_features {}) }: num_iter_0_1_33_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_33 num_traits_0_1_37 ]);
+  };
+  num_iter_0_1_33_features = f: updateFeatures f (rec {
+    num_integer_0_1_33.default = true;
+    num_iter_0_1_33.default = (f.num_iter_0_1_33.default or true);
+    num_traits_0_1_37.default = true;
+  }) [ num_integer_0_1_33_features num_traits_0_1_37_features ];
+  num_rational_0_1_36 = { features?(num_rational_0_1_36_features {}) }: num_rational_0_1_36_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_33 num_traits_0_1_37 ]);
+    features = mkFeatures (features.num_rational_0_1_36 or {});
+  };
+  num_rational_0_1_36_features = f: updateFeatures f (rec {
+    num_integer_0_1_33.default = true;
+    num_rational_0_1_36.bigint =
+      (f.num_rational_0_1_36.bigint or false) ||
+      (f.num_rational_0_1_36.default or false) ||
+      (num_rational_0_1_36.default or false);
+    num_rational_0_1_36.default = (f.num_rational_0_1_36.default or true);
+    num_rational_0_1_36.num-bigint =
+      (f.num_rational_0_1_36.num-bigint or false) ||
+      (f.num_rational_0_1_36.bigint or false) ||
+      (num_rational_0_1_36.bigint or false);
+    num_rational_0_1_36.rustc-serialize =
+      (f.num_rational_0_1_36.rustc-serialize or false) ||
+      (f.num_rational_0_1_36.default or false) ||
+      (num_rational_0_1_36.default or false);
+    num_traits_0_1_37.default = true;
+  }) [ num_integer_0_1_33_features num_traits_0_1_37_features ];
+  num_traits_0_1_37 = { features?(num_traits_0_1_37_features {}) }: num_traits_0_1_37_ {};
+  num_traits_0_1_37_features = f: updateFeatures f (rec {
+    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or true);
+  }) [];
+  num_cpus_1_3_0 = { features?(num_cpus_1_3_0_features {}) }: num_cpus_1_3_0_ {
+    dependencies = mapFeatures features ([ libc_0_2_21 ]);
+  };
+  num_cpus_1_3_0_features = f: updateFeatures f (rec {
+    libc_0_2_21.default = true;
+    num_cpus_1_3_0.default = (f.num_cpus_1_3_0.default or true);
+  }) [ libc_0_2_21_features ];
+  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
+  pkg_config_0_3_9_features = f: updateFeatures f (rec {
+    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
+  }) [];
+  png_0_6_2 = { features?(png_0_6_2_features {}) }: png_0_6_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 inflate_0_1_1 num_iter_0_1_33 ]
+      ++ (if features.png_0_6_2.deflate or false then [ deflate_0_7_5 ] else []));
+    features = mkFeatures (features.png_0_6_2 or {});
+  };
+  png_0_6_2_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    deflate_0_7_5.default = true;
+    inflate_0_1_1.default = true;
+    num_iter_0_1_33.default = true;
+    png_0_6_2.default = (f.png_0_6_2.default or true);
+    png_0_6_2.deflate =
+      (f.png_0_6_2.deflate or false) ||
+      (f.png_0_6_2.png-encoding or false) ||
+      (png_0_6_2.png-encoding or false);
+    png_0_6_2.png-encoding =
+      (f.png_0_6_2.png-encoding or false) ||
+      (f.png_0_6_2.default or false) ||
+      (png_0_6_2.default or false);
+  }) [ bitflags_0_7_0_features deflate_0_7_5_features inflate_0_1_1_features num_iter_0_1_33_features ];
+  rand_0_3_15 = { features?(rand_0_3_15_features {}) }: rand_0_3_15_ {
+    dependencies = mapFeatures features ([ libc_0_2_21 ]);
+  };
+  rand_0_3_15_features = f: updateFeatures f (rec {
+    libc_0_2_21.default = true;
+    rand_0_3_15.default = (f.rand_0_3_15.default or true);
+  }) [ libc_0_2_21_features ];
+  rayon_0_6_0 = { features?(rayon_0_6_0_features {}) }: rayon_0_6_0_ {
+    dependencies = mapFeatures features ([ deque_0_3_1 libc_0_2_21 num_cpus_1_3_0 rand_0_3_15 ]);
+    features = mkFeatures (features.rayon_0_6_0 or {});
+  };
+  rayon_0_6_0_features = f: updateFeatures f (rec {
+    deque_0_3_1.default = true;
+    libc_0_2_21.default = true;
+    num_cpus_1_3_0.default = true;
+    rand_0_3_15.default = true;
+    rayon_0_6_0.default = (f.rayon_0_6_0.default or true);
+  }) [ deque_0_3_1_features libc_0_2_21_features num_cpus_1_3_0_features rand_0_3_15_features ];
+  scoped_threadpool_0_1_7 = { features?(scoped_threadpool_0_1_7_features {}) }: scoped_threadpool_0_1_7_ {
+    features = mkFeatures (features.scoped_threadpool_0_1_7 or {});
+  };
+  scoped_threadpool_0_1_7_features = f: updateFeatures f (rec {
+    scoped_threadpool_0_1_7.default = (f.scoped_threadpool_0_1_7.default or true);
+  }) [];
+  strsim_0_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
+  strsim_0_6_0_features = f: updateFeatures f (rec {
+    strsim_0_6_0.default = (f.strsim_0_6_0.default or true);
+  }) [];
+  term_size_0_2_3 = { features?(term_size_0_2_3_features {}) }: term_size_0_2_3_ {
+    dependencies = mapFeatures features ([])
+      ++ (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_21 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    features = mkFeatures (features.term_size_0_2_3 or {});
+  };
+  term_size_0_2_3_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_21.default = true;
+    term_size_0_2_3.clippy =
+      (f.term_size_0_2_3.clippy or false) ||
+      (f.term_size_0_2_3.lints or false) ||
+      (term_size_0_2_3.lints or false);
+    term_size_0_2_3.default = (f.term_size_0_2_3.default or true);
+    term_size_0_2_3.lints =
+      (f.term_size_0_2_3.lints or false) ||
+      (f.term_size_0_2_3.travis or false) ||
+      (term_size_0_2_3.travis or false);
+    term_size_0_2_3.nightly =
+      (f.term_size_0_2_3.nightly or false) ||
+      (f.term_size_0_2_3.lints or false) ||
+      (term_size_0_2_3.lints or false) ||
+      (f.term_size_0_2_3.travis or false) ||
+      (term_size_0_2_3.travis or false);
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_21_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  toml_0_2_1 = { features?(toml_0_2_1_features {}) }: toml_0_2_1_ {
+    dependencies = mapFeatures features ([]);
+  };
+  toml_0_2_1_features = f: updateFeatures f (rec {
+    toml_0_2_1.default = (f.toml_0_2_1.default or true);
+    toml_0_2_1.rustc-serialize =
+      (f.toml_0_2_1.rustc-serialize or false) ||
+      (f.toml_0_2_1.default or false) ||
+      (toml_0_2_1.default or false);
+  }) [];
+  unicode_segmentation_1_1_0 = { features?(unicode_segmentation_1_1_0_features {}) }: unicode_segmentation_1_1_0_ {
+    features = mkFeatures (features.unicode_segmentation_1_1_0 or {});
+  };
+  unicode_segmentation_1_1_0_features = f: updateFeatures f (rec {
+    unicode_segmentation_1_1_0.default = (f.unicode_segmentation_1_1_0.default or true);
+  }) [];
+  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
+    features = mkFeatures (features.unicode_width_0_1_4 or {});
+  };
+  unicode_width_0_1_4_features = f: updateFeatures f (rec {
+    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
+  }) [];
+  vec_map_0_7_0 = { features?(vec_map_0_7_0_features {}) }: vec_map_0_7_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.vec_map_0_7_0 or {});
+  };
+  vec_map_0_7_0_features = f: updateFeatures f (rec {
+    vec_map_0_7_0.default = (f.vec_map_0_7_0.default or true);
+    vec_map_0_7_0.serde =
+      (f.vec_map_0_7_0.serde or false) ||
+      (f.vec_map_0_7_0.eders or false) ||
+      (vec_map_0_7_0.eders or false);
+    vec_map_0_7_0.serde_derive =
+      (f.vec_map_0_7_0.serde_derive or false) ||
+      (f.vec_map_0_7_0.eders or false) ||
+      (vec_map_0_7_0.eders or false);
+  }) [];
+  wc_grab_0_3_0 = { features?(wc_grab_0_3_0_features {}) }: wc_grab_0_3_0_ {
+    dependencies = mapFeatures features ([ clap_2_22_0 dbus_0_5_2 image_0_12_3 ]);
+  };
+  wc_grab_0_3_0_features = f: updateFeatures f (rec {
+    clap_2_22_0.default = true;
+    dbus_0_5_2.default = true;
+    image_0_12_3.default = true;
+    wc_grab_0_3_0.default = (f.wc_grab_0_3_0.default or true);
+  }) [ clap_2_22_0_features dbus_0_5_2_features image_0_12_3_features ];
+  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
+  winapi_0_2_8_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
+  }) [];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-lock.nix b/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-lock.nix
new file mode 100644
index 000000000000..1b9e3df3508e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/way-cooler/wc-lock.nix
@@ -0,0 +1,1479 @@
+# Generated by carnix 0.6.5: carnix -o wc-lock.nix Cargo.lock
+{ lib, stdenv, buildRustCrate, fetchgit }:
+let kernel = stdenv.hostPlatform.parsed.kernel.name;
+    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+    mapFeatures = features: map (fun: fun { features = features; });
+    mkFeatures = feat: lib.lists.foldl (features: featureName:
+      if feat.${featureName} or false then
+        [ featureName ] ++ features
+      else
+        features
+    ) [] (builtins.attrNames feat);
+in
+rec {
+  wc_lock = f: wc_lock_0_2_1 { features = wc_lock_0_2_1_features { wc_lock_0_2_1 = f; }; };
+  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.9.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+    inherit dependencies buildDependencies features;
+  };
+  atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "atty";
+    version = "0.2.2";
+    authors = [ "softprops <d.tangren@gmail.com>" ];
+    sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.7.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.8.2";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0whaj3969ysqxzk620sk1isvq6vh85516f2fplvqjrw3syz44sb2";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "0.5.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "1.1.0";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1i2n0161jm00zvzh4bncgv9zrwa6ydbxdn5j4bx0wwn7rvi9zycp";
+    inherit dependencies buildDependencies features;
+  };
+  cc_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cc";
+    version = "1.0.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1s5ha0k6cdy1049a5kpzvhnjc9hjvi18zrcr5dmbqpd03ag751g1";
+    inherit dependencies buildDependencies features;
+  };
+  clap_2_24_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "clap";
+    version = "2.24.2";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+    sha256 = "0028bkzafprs6n7ing8lnf7iss2a2zq17qmgadipgdfgvww43rmv";
+    inherit dependencies buildDependencies features;
+  };
+  coco_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "coco";
+    version = "0.1.1";
+    authors = [ "Stjepan Glavina <stjepang@gmail.com>" ];
+    sha256 = "0hvj4jaj9y6i38c4dkii8nqq98cgx3kyx78cjqkdvk0aqq5sfr94";
+    inherit dependencies buildDependencies features;
+  };
+  color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "color_quant";
+    version = "1.0.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
+    inherit dependencies buildDependencies features;
+  };
+  dbus_0_5_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dbus";
+    version = "0.5.4";
+    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+    sha256 = "0qr62splq38b8vfjvpcpk9ph21d63ya7vd2vifs5wc8jzwc309yn";
+    inherit dependencies buildDependencies features;
+  };
+  dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dlib";
+    version = "0.3.1";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
+    inherit dependencies buildDependencies features;
+  };
+  dtoa_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dtoa";
+    version = "0.4.1";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0mgg4r90yby68qg7y8csbclhsm53ac26vsyq615viq535plllhzw";
+    inherit dependencies buildDependencies features;
+  };
+  either_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "either";
+    version = "1.2.0";
+    authors = [ "bluss" ];
+    sha256 = "0l72xaf1kwzgbl3andf3d2ggz7km9059rbmp90iywww8inlnqppp";
+    inherit dependencies buildDependencies features;
+  };
+  enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "enum_primitive";
+    version = "0.1.1";
+    authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
+    sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
+    inherit dependencies buildDependencies features;
+  };
+  error_chain_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "error-chain";
+    version = "0.10.0";
+    authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
+    sha256 = "1xxbzd8cjlpzsb9fsih7mdnndhzrvykj0w77yg90qc85az1xwy5z";
+    inherit dependencies buildDependencies features;
+  };
+  flate2_0_2_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "flate2";
+    version = "0.2.20";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1am0d2vmqym1vcg7rvv516vpcrbhdn1jisy0q03r3nbzdzh54ppl";
+    inherit dependencies buildDependencies features;
+  };
+  fs2_0_2_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fs2";
+    version = "0.2.5";
+    authors = [ "Dan Burkert <dan@danburkert.com>" ];
+    sha256 = "0j6l5r95jigbl0lgkm69c82dzq10jipjbm9qnni147hb45gyw790";
+    inherit dependencies buildDependencies features;
+  };
+  futures_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "futures";
+    version = "0.1.16";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0ndk8cl6l600a95q8il2c3y38jz50nhfsczps0nziadqdd45gy2b";
+    inherit dependencies buildDependencies features;
+  };
+  gcc_0_3_50_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gcc";
+    version = "0.3.50";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "032izcbbyiakv9ck5j3s27p3ddx4468n7qpaxgwi5iswmimjaaj0";
+    inherit dependencies buildDependencies features;
+  };
+  gif_0_9_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gif";
+    version = "0.9.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0dl76jrn6127w3bdg2b58p5psf8fpnbzdxdkw1i35ac8dn4vxcqa";
+    inherit dependencies buildDependencies features;
+  };
+  glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glob";
+    version = "0.2.11";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
+    inherit dependencies buildDependencies features;
+  };
+  image_0_10_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "image";
+    version = "0.10.4";
+    authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
+    sha256 = "1pwrs7k5760b38i1lg872x9q2zc6xvhs7mjhlzvjnr5p85zx2fbw";
+    libPath = "./src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "inflate";
+    version = "0.1.1";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
+    inherit dependencies buildDependencies features;
+  };
+  itoa_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "itoa";
+    version = "0.3.1";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0jp1wvfw0qqbyz0whbycp7xr5nx1ds5plh4wsfyj503xmjf9ab4k";
+    inherit dependencies buildDependencies features;
+  };
+  jpeg_decoder_0_1_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "jpeg-decoder";
+    version = "0.1.13";
+    authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
+    sha256 = "0w16gbywlm9p0p3wx34b85q4d1izrx89afcsxlc6g11cx2js4fa2";
+    inherit dependencies buildDependencies features;
+  };
+  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "kernel32-sys";
+    version = "0.2.2";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+    libName = "kernel32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "0.2.8";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1xbpxx7cd5kl60g87g43q80jxyrsildhxfjc42jb1x4jncknpwbl";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.23";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1i29f6k26fmv81c5bjc6hw2j95sd01h9ad66qxdc755b24xfa9jm";
+    inherit dependencies buildDependencies features;
+  };
+  libdbus_sys_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libdbus-sys";
+    version = "0.1.1";
+    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+    sha256 = "14kpislv2zazmgv5f8by4zkgkjxd0cwab8z6621kskjdwyir1wpy";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libloading";
+    version = "0.3.4";
+    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+    sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lzw";
+    version = "0.10.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
+    inherit dependencies buildDependencies features;
+  };
+  memmap_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "memmap";
+    version = "0.4.0";
+    authors = [ "Dan Burkert <dan@danburkert.com>" ];
+    sha256 = "0q2gm5p8n9najc8kccbxxkannmnjh85rin4k8d4y1kg5ymdp6kll";
+    inherit dependencies buildDependencies features;
+  };
+  metadeps_1_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "metadeps";
+    version = "1.1.2";
+    authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
+    sha256 = "00dpxjls9fq6fs5gr9v3hkqxmb1zwnhh8b56q3dnzghppjf3ivk3";
+    inherit dependencies buildDependencies features;
+  };
+  miniz_sys_0_1_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "miniz-sys";
+    version = "0.1.10";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "11vg6phafxil87nbxgrlhcx5hjr3145wsbwwkfmibvnmzxfdmvln";
+    libPath = "lib.rs";
+    libName = "miniz_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  num_bigint_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-bigint";
+    version = "0.1.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0pkxd9mb4chdbipprxjc8ll7kjh79n278s2z663zmd80yg5xi788";
+    inherit dependencies buildDependencies features;
+  };
+  num_integer_0_1_35_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-integer";
+    version = "0.1.35";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0xybj8isi9b6wc646d5rc043i8l8j6wy0vrl4pn995qms9fxbbcc";
+    inherit dependencies buildDependencies features;
+  };
+  num_iter_0_1_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-iter";
+    version = "0.1.34";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "02cld7x9dzbqbs6sxxzq1i22z3awlcd6ljkgvhkfr9rsnaxphzl9";
+    inherit dependencies buildDependencies features;
+  };
+  num_rational_0_1_39_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-rational";
+    version = "0.1.39";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1qsacdfp97zgpajc2pgbrbga3yag1f0k7yz0gi78vd165gxdwk3m";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.1.37";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
+    inherit dependencies buildDependencies features;
+  };
+  num_cpus_1_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num_cpus";
+    version = "1.6.2";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "0wxfzxsk05xbkph5qcvdqyi334zn0pnpahzi7n7iagxbb68145rm";
+    inherit dependencies buildDependencies features;
+  };
+  phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_codegen";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
+    inherit dependencies buildDependencies features;
+  };
+  phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_generator";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
+    inherit dependencies buildDependencies features;
+  };
+  phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_shared";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.9";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
+    inherit dependencies buildDependencies features;
+  };
+  png_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "png";
+    version = "0.5.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1pgann3f1ysgf8y1acw86v4s3ji1xk85ri353biyvh4i1cpn1g3q";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.15";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon";
+    version = "0.8.2";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
+    sha256 = "0d0mddg1k75hb9138pn8lysy2095jijrinskqbpgfr73s0jx6dq8";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_core_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon-core";
+    version = "1.2.1";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
+    sha256 = "12xv2r0dqrgvla24bl5mfvcw0599dlhrj0mx620nq95nyds753kk";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc-serialize";
+    version = "0.3.24";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_version_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc_version";
+    version = "0.1.7";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
+    inherit dependencies buildDependencies features;
+  };
+  scoped_threadpool_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scoped_threadpool";
+    version = "0.1.8";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1al42hqbbijpah9bc6hw9c49nhnyrc0sj274ja1q3k9305c3s5a6";
+    inherit dependencies buildDependencies features;
+  };
+  scopeguard_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scopeguard";
+    version = "0.3.2";
+    authors = [ "bluss" ];
+    sha256 = "0xlvfawva4fnp6kwr5xjwf0q2d1w6di81nhfby1sa55xj1ia5zs2";
+    inherit dependencies buildDependencies features;
+  };
+  semver_0_1_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver";
+    version = "0.1.20";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
+    inherit dependencies buildDependencies features;
+  };
+  serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde";
+    version = "0.9.15";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
+    inherit dependencies buildDependencies features;
+  };
+  serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_json";
+    version = "0.9.10";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
+    inherit dependencies buildDependencies features;
+  };
+  siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "siphasher";
+    version = "0.2.2";
+    authors = [ "Frank Denis <github@pureftpd.org>" ];
+    sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+    inherit dependencies buildDependencies features;
+  };
+  strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.6.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
+    inherit dependencies buildDependencies features;
+  };
+  target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "target_build_utils";
+    version = "0.3.1";
+    authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
+    sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  tempfile_2_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tempfile";
+    version = "2.1.5";
+    authors = [ "Steven Allen <steven@stebalien.com>" ];
+    sha256 = "1yz8aaj78z9gsn4b71y0m6fa5bnxhqafcczhxvmwra56k943aqkw";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "term_size";
+    version = "0.3.0";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
+    sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
+    inherit dependencies buildDependencies features;
+  };
+  toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "toml";
+    version = "0.2.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_segmentation_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-segmentation";
+    version = "1.2.0";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "0yz43x7wrhr3n7a2zsinx3r60yxsdqicg8a5kycyyhdaq1zmiz1y";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-width";
+    version = "0.1.4";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
+    inherit dependencies buildDependencies features;
+  };
+  vec_map_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vec_map";
+    version = "0.8.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+    sha256 = "07sgxp3cf1a4cxm9n3r27fcvqmld32bl2576mrcahnvm34j11xay";
+    inherit dependencies buildDependencies features;
+  };
+  way_cooler_client_helpers_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "way-cooler-client-helpers";
+    version = "0.1.0";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "0749lh5crd0rhq4dxij9mb3y5902laazjd01l6ci5782bjfk4s39";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_client_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-client";
+    version = "0.9.6";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1908h6ilvq2cxph1lxv1vzrb3dcfx4x6pf6pszxwifsfqva8nm34";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_kbd_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-kbd";
+    version = "0.9.0";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1x0f7n79hjwf5fclf62fpzjp05xdzc93xw84zgyrn8f1hill3qhj";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_scanner_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-scanner";
+    version = "0.9.6";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1w5cyc48g4x5w3rakb4sji5328rl5yph1abmjbh5h4slkm4n76g1";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.9.6";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "0izw50pmj1r10hmr29gi8ps01avs6zjwisywijlq7wr268h6yxcg";
+    inherit dependencies buildDependencies features;
+  };
+  wc_lock_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wc-lock";
+    version = "0.2.1";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "0ikmir7azihxiyzgb0wnvk81yinmn2l6k93bnb1qg4k704zcyq84";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.2.8";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  xml_rs_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "xml-rs";
+    version = "0.3.6";
+    authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
+    sha256 = "1g1cclib7fj900m4669vxlz45lxcq0m36g7cd8chl494c2xsgj15";
+    libPath = "src/lib.rs";
+    libName = "xml";
+    crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
+  ansi_term_0_9_0_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
+  }) [];
+  atty_0_2_2 = { features?(atty_0_2_2_features {}) }: atty_0_2_2_ {
+    dependencies = (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_23 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  atty_0_2_2_features = f: updateFeatures f (rec {
+    atty_0_2_2.default = (f.atty_0_2_2.default or true);
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_23_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
+  bitflags_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
+  }) [];
+  bitflags_0_8_2 = { features?(bitflags_0_8_2_features {}) }: bitflags_0_8_2_ {
+    features = mkFeatures (features.bitflags_0_8_2 or {});
+  };
+  bitflags_0_8_2_features = f: updateFeatures f (rec {
+    bitflags_0_8_2.default = (f.bitflags_0_8_2.default or true);
+    bitflags_0_8_2.i128 =
+      (f.bitflags_0_8_2.i128 or false) ||
+      (f.bitflags_0_8_2.unstable or false) ||
+      (bitflags_0_8_2.unstable or false);
+  }) [];
+  byteorder_0_5_3 = { features?(byteorder_0_5_3_features {}) }: byteorder_0_5_3_ {
+    features = mkFeatures (features.byteorder_0_5_3 or {});
+  };
+  byteorder_0_5_3_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = (f.byteorder_0_5_3.default or true);
+    byteorder_0_5_3.std =
+      (f.byteorder_0_5_3.std or false) ||
+      (f.byteorder_0_5_3.default or false) ||
+      (byteorder_0_5_3.default or false);
+  }) [];
+  byteorder_1_1_0 = { features?(byteorder_1_1_0_features {}) }: byteorder_1_1_0_ {
+    features = mkFeatures (features.byteorder_1_1_0 or {});
+  };
+  byteorder_1_1_0_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = (f.byteorder_1_1_0.default or true);
+    byteorder_1_1_0.std =
+      (f.byteorder_1_1_0.std or false) ||
+      (f.byteorder_1_1_0.default or false) ||
+      (byteorder_1_1_0.default or false);
+  }) [];
+  cc_1_0_0 = { features?(cc_1_0_0_features {}) }: cc_1_0_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.cc_1_0_0 or {});
+  };
+  cc_1_0_0_features = f: updateFeatures f (rec {
+    cc_1_0_0.default = (f.cc_1_0_0.default or true);
+    cc_1_0_0.rayon =
+      (f.cc_1_0_0.rayon or false) ||
+      (f.cc_1_0_0.parallel or false) ||
+      (cc_1_0_0.parallel or false);
+  }) [];
+  clap_2_24_2 = { features?(clap_2_24_2_features {}) }: clap_2_24_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_8_2 unicode_segmentation_1_2_0 unicode_width_0_1_4 vec_map_0_8_0 ]
+      ++ (if features.clap_2_24_2.ansi_term or false then [ ansi_term_0_9_0 ] else [])
+      ++ (if features.clap_2_24_2.atty or false then [ atty_0_2_2 ] else [])
+      ++ (if features.clap_2_24_2.strsim or false then [ strsim_0_6_0 ] else [])
+      ++ (if features.clap_2_24_2.term_size or false then [ term_size_0_3_0 ] else []));
+    features = mkFeatures (features.clap_2_24_2 or {});
+  };
+  clap_2_24_2_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = true;
+    atty_0_2_2.default = true;
+    bitflags_0_8_2.default = true;
+    clap_2_24_2.ansi_term =
+      (f.clap_2_24_2.ansi_term or false) ||
+      (f.clap_2_24_2.color or false) ||
+      (clap_2_24_2.color or false);
+    clap_2_24_2.atty =
+      (f.clap_2_24_2.atty or false) ||
+      (f.clap_2_24_2.color or false) ||
+      (clap_2_24_2.color or false);
+    clap_2_24_2.clippy =
+      (f.clap_2_24_2.clippy or false) ||
+      (f.clap_2_24_2.lints or false) ||
+      (clap_2_24_2.lints or false);
+    clap_2_24_2.color =
+      (f.clap_2_24_2.color or false) ||
+      (f.clap_2_24_2.default or false) ||
+      (clap_2_24_2.default or false);
+    clap_2_24_2.default = (f.clap_2_24_2.default or true);
+    clap_2_24_2.strsim =
+      (f.clap_2_24_2.strsim or false) ||
+      (f.clap_2_24_2.suggestions or false) ||
+      (clap_2_24_2.suggestions or false);
+    clap_2_24_2.suggestions =
+      (f.clap_2_24_2.suggestions or false) ||
+      (f.clap_2_24_2.default or false) ||
+      (clap_2_24_2.default or false);
+    clap_2_24_2.term_size =
+      (f.clap_2_24_2.term_size or false) ||
+      (f.clap_2_24_2.wrap_help or false) ||
+      (clap_2_24_2.wrap_help or false);
+    clap_2_24_2.wrap_help =
+      (f.clap_2_24_2.wrap_help or false) ||
+      (f.clap_2_24_2.default or false) ||
+      (clap_2_24_2.default or false);
+    clap_2_24_2.yaml-rust =
+      (f.clap_2_24_2.yaml-rust or false) ||
+      (f.clap_2_24_2.yaml or false) ||
+      (clap_2_24_2.yaml or false);
+    strsim_0_6_0.default = true;
+    term_size_0_3_0.default = true;
+    unicode_segmentation_1_2_0.default = true;
+    unicode_width_0_1_4.default = true;
+    vec_map_0_8_0.default = true;
+  }) [ ansi_term_0_9_0_features atty_0_2_2_features bitflags_0_8_2_features strsim_0_6_0_features term_size_0_3_0_features unicode_segmentation_1_2_0_features unicode_width_0_1_4_features vec_map_0_8_0_features ];
+  coco_0_1_1 = { features?(coco_0_1_1_features {}) }: coco_0_1_1_ {
+    dependencies = mapFeatures features ([ either_1_2_0 scopeguard_0_3_2 ]);
+    features = mkFeatures (features.coco_0_1_1 or {});
+  };
+  coco_0_1_1_features = f: updateFeatures f (rec {
+    coco_0_1_1.default = (f.coco_0_1_1.default or true);
+    either_1_2_0.default = true;
+    scopeguard_0_3_2.default = true;
+  }) [ either_1_2_0_features scopeguard_0_3_2_features ];
+  color_quant_1_0_0 = { features?(color_quant_1_0_0_features {}) }: color_quant_1_0_0_ {};
+  color_quant_1_0_0_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = (f.color_quant_1_0_0.default or true);
+  }) [];
+  dbus_0_5_4 = { features?(dbus_0_5_4_features {}) }: dbus_0_5_4_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 libdbus_sys_0_1_1 ]);
+    features = mkFeatures (features.dbus_0_5_4 or {});
+  };
+  dbus_0_5_4_features = f: updateFeatures f (rec {
+    dbus_0_5_4.default = (f.dbus_0_5_4.default or true);
+    libc_0_2_23.default = true;
+    libdbus_sys_0_1_1.default = true;
+  }) [ libc_0_2_23_features libdbus_sys_0_1_1_features ];
+  dlib_0_3_1 = { features?(dlib_0_3_1_features {}) }: dlib_0_3_1_ {
+    dependencies = mapFeatures features ([ libloading_0_3_4 ]);
+    features = mkFeatures (features.dlib_0_3_1 or {});
+  };
+  dlib_0_3_1_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = (f.dlib_0_3_1.default or true);
+    libloading_0_3_4.default = true;
+  }) [ libloading_0_3_4_features ];
+  dtoa_0_4_1 = { features?(dtoa_0_4_1_features {}) }: dtoa_0_4_1_ {};
+  dtoa_0_4_1_features = f: updateFeatures f (rec {
+    dtoa_0_4_1.default = (f.dtoa_0_4_1.default or true);
+  }) [];
+  either_1_2_0 = { features?(either_1_2_0_features {}) }: either_1_2_0_ {
+    features = mkFeatures (features.either_1_2_0 or {});
+  };
+  either_1_2_0_features = f: updateFeatures f (rec {
+    either_1_2_0.default = (f.either_1_2_0.default or true);
+    either_1_2_0.use_std =
+      (f.either_1_2_0.use_std or false) ||
+      (f.either_1_2_0.default or false) ||
+      (either_1_2_0.default or false);
+  }) [];
+  enum_primitive_0_1_1 = { features?(enum_primitive_0_1_1_features {}) }: enum_primitive_0_1_1_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
+  };
+  enum_primitive_0_1_1_features = f: updateFeatures f (rec {
+    enum_primitive_0_1_1.default = (f.enum_primitive_0_1_1.default or true);
+    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or false);
+  }) [ num_traits_0_1_37_features ];
+  error_chain_0_10_0 = { features?(error_chain_0_10_0_features {}) }: error_chain_0_10_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.error_chain_0_10_0 or {});
+  };
+  error_chain_0_10_0_features = f: updateFeatures f (rec {
+    error_chain_0_10_0.backtrace =
+      (f.error_chain_0_10_0.backtrace or false) ||
+      (f.error_chain_0_10_0.default or false) ||
+      (error_chain_0_10_0.default or false);
+    error_chain_0_10_0.default = (f.error_chain_0_10_0.default or true);
+    error_chain_0_10_0.example_generated =
+      (f.error_chain_0_10_0.example_generated or false) ||
+      (f.error_chain_0_10_0.default or false) ||
+      (error_chain_0_10_0.default or false);
+  }) [];
+  flate2_0_2_20 = { features?(flate2_0_2_20_features {}) }: flate2_0_2_20_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 ]
+      ++ (if features.flate2_0_2_20.miniz-sys or false then [ miniz_sys_0_1_10 ] else []));
+    features = mkFeatures (features.flate2_0_2_20 or {});
+  };
+  flate2_0_2_20_features = f: updateFeatures f (rec {
+    flate2_0_2_20.default = (f.flate2_0_2_20.default or true);
+    flate2_0_2_20.futures =
+      (f.flate2_0_2_20.futures or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    flate2_0_2_20.libz-sys =
+      (f.flate2_0_2_20.libz-sys or false) ||
+      (f.flate2_0_2_20.zlib or false) ||
+      (flate2_0_2_20.zlib or false);
+    flate2_0_2_20.miniz-sys =
+      (f.flate2_0_2_20.miniz-sys or false) ||
+      (f.flate2_0_2_20.default or false) ||
+      (flate2_0_2_20.default or false);
+    flate2_0_2_20.tokio-io =
+      (f.flate2_0_2_20.tokio-io or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    libc_0_2_23.default = true;
+    miniz_sys_0_1_10.default = true;
+  }) [ libc_0_2_23_features miniz_sys_0_1_10_features ];
+  fs2_0_2_5 = { features?(fs2_0_2_5_features {}) }: fs2_0_2_5_ {
+    dependencies = mapFeatures features ([ kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ]);
+  };
+  fs2_0_2_5_features = f: updateFeatures f (rec {
+    fs2_0_2_5.default = (f.fs2_0_2_5.default or true);
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    winapi_0_2_8.default = true;
+  }) [ kernel32_sys_0_2_2_features libc_0_2_23_features winapi_0_2_8_features ];
+  futures_0_1_16 = { features?(futures_0_1_16_features {}) }: futures_0_1_16_ {
+    features = mkFeatures (features.futures_0_1_16 or {});
+  };
+  futures_0_1_16_features = f: updateFeatures f (rec {
+    futures_0_1_16.default = (f.futures_0_1_16.default or true);
+    futures_0_1_16.use_std =
+      (f.futures_0_1_16.use_std or false) ||
+      (f.futures_0_1_16.default or false) ||
+      (futures_0_1_16.default or false);
+    futures_0_1_16.with-deprecated =
+      (f.futures_0_1_16.with-deprecated or false) ||
+      (f.futures_0_1_16.default or false) ||
+      (futures_0_1_16.default or false);
+  }) [];
+  gcc_0_3_50 = { features?(gcc_0_3_50_features {}) }: gcc_0_3_50_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.gcc_0_3_50 or {});
+  };
+  gcc_0_3_50_features = f: updateFeatures f (rec {
+    gcc_0_3_50.default = (f.gcc_0_3_50.default or true);
+    gcc_0_3_50.rayon =
+      (f.gcc_0_3_50.rayon or false) ||
+      (f.gcc_0_3_50.parallel or false) ||
+      (gcc_0_3_50.parallel or false);
+  }) [];
+  gif_0_9_2 = { features?(gif_0_9_2_features {}) }: gif_0_9_2_ {
+    dependencies = mapFeatures features ([ color_quant_1_0_0 lzw_0_10_0 ]);
+    features = mkFeatures (features.gif_0_9_2 or {});
+  };
+  gif_0_9_2_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = true;
+    gif_0_9_2.default = (f.gif_0_9_2.default or true);
+    gif_0_9_2.libc =
+      (f.gif_0_9_2.libc or false) ||
+      (f.gif_0_9_2.c_api or false) ||
+      (gif_0_9_2.c_api or false);
+    gif_0_9_2.raii_no_panic =
+      (f.gif_0_9_2.raii_no_panic or false) ||
+      (f.gif_0_9_2.default or false) ||
+      (gif_0_9_2.default or false);
+    lzw_0_10_0.default = true;
+  }) [ color_quant_1_0_0_features lzw_0_10_0_features ];
+  glob_0_2_11 = { features?(glob_0_2_11_features {}) }: glob_0_2_11_ {};
+  glob_0_2_11_features = f: updateFeatures f (rec {
+    glob_0_2_11.default = (f.glob_0_2_11.default or true);
+  }) [];
+  image_0_10_4 = { features?(image_0_10_4_features {}) }: image_0_10_4_ {
+    dependencies = mapFeatures features ([ byteorder_0_5_3 enum_primitive_0_1_1 glob_0_2_11 num_iter_0_1_34 num_rational_0_1_39 num_traits_0_1_37 ]
+      ++ (if features.image_0_10_4.gif or false then [ gif_0_9_2 ] else [])
+      ++ (if features.image_0_10_4.jpeg-decoder or false then [ jpeg_decoder_0_1_13 ] else [])
+      ++ (if features.image_0_10_4.png or false then [ png_0_5_2 ] else [])
+      ++ (if features.image_0_10_4.scoped_threadpool or false then [ scoped_threadpool_0_1_8 ] else []));
+    features = mkFeatures (features.image_0_10_4 or {});
+  };
+  image_0_10_4_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = true;
+    enum_primitive_0_1_1.default = true;
+    gif_0_9_2.default = true;
+    glob_0_2_11.default = true;
+    image_0_10_4.bmp =
+      (f.image_0_10_4.bmp or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false) ||
+      (f.image_0_10_4.ico or false) ||
+      (image_0_10_4.ico or false);
+    image_0_10_4.default = (f.image_0_10_4.default or true);
+    image_0_10_4.gif =
+      (f.image_0_10_4.gif or false) ||
+      (f.image_0_10_4.gif_codec or false) ||
+      (image_0_10_4.gif_codec or false);
+    image_0_10_4.gif_codec =
+      (f.image_0_10_4.gif_codec or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.hdr =
+      (f.image_0_10_4.hdr or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.ico =
+      (f.image_0_10_4.ico or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.jpeg =
+      (f.image_0_10_4.jpeg or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.jpeg-decoder =
+      (f.image_0_10_4.jpeg-decoder or false) ||
+      (f.image_0_10_4.jpeg or false) ||
+      (image_0_10_4.jpeg or false);
+    image_0_10_4.png =
+      (f.image_0_10_4.png or false) ||
+      (f.image_0_10_4.png_codec or false) ||
+      (image_0_10_4.png_codec or false);
+    image_0_10_4.png_codec =
+      (f.image_0_10_4.png_codec or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false) ||
+      (f.image_0_10_4.ico or false) ||
+      (image_0_10_4.ico or false);
+    image_0_10_4.ppm =
+      (f.image_0_10_4.ppm or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.scoped_threadpool =
+      (f.image_0_10_4.scoped_threadpool or false) ||
+      (f.image_0_10_4.hdr or false) ||
+      (image_0_10_4.hdr or false);
+    image_0_10_4.tga =
+      (f.image_0_10_4.tga or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.tiff =
+      (f.image_0_10_4.tiff or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.webp =
+      (f.image_0_10_4.webp or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    jpeg_decoder_0_1_13.default = true;
+    num_iter_0_1_34.default = true;
+    num_rational_0_1_39.default = true;
+    num_traits_0_1_37.default = true;
+    png_0_5_2.default = true;
+    scoped_threadpool_0_1_8.default = true;
+  }) [ byteorder_0_5_3_features enum_primitive_0_1_1_features gif_0_9_2_features glob_0_2_11_features jpeg_decoder_0_1_13_features num_iter_0_1_34_features num_rational_0_1_39_features num_traits_0_1_37_features png_0_5_2_features scoped_threadpool_0_1_8_features ];
+  inflate_0_1_1 = { features?(inflate_0_1_1_features {}) }: inflate_0_1_1_ {
+    features = mkFeatures (features.inflate_0_1_1 or {});
+  };
+  inflate_0_1_1_features = f: updateFeatures f (rec {
+    inflate_0_1_1.default = (f.inflate_0_1_1.default or true);
+  }) [];
+  itoa_0_3_1 = { features?(itoa_0_3_1_features {}) }: itoa_0_3_1_ {};
+  itoa_0_3_1_features = f: updateFeatures f (rec {
+    itoa_0_3_1.default = (f.itoa_0_3_1.default or true);
+  }) [];
+  jpeg_decoder_0_1_13 = { features?(jpeg_decoder_0_1_13_features {}) }: jpeg_decoder_0_1_13_ {
+    dependencies = mapFeatures features ([ byteorder_1_1_0 ]
+      ++ (if features.jpeg_decoder_0_1_13.rayon or false then [ rayon_0_8_2 ] else []));
+    features = mkFeatures (features.jpeg_decoder_0_1_13 or {});
+  };
+  jpeg_decoder_0_1_13_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = true;
+    jpeg_decoder_0_1_13.default = (f.jpeg_decoder_0_1_13.default or true);
+    jpeg_decoder_0_1_13.rayon =
+      (f.jpeg_decoder_0_1_13.rayon or false) ||
+      (f.jpeg_decoder_0_1_13.default or false) ||
+      (jpeg_decoder_0_1_13.default or false);
+    rayon_0_8_2.default = true;
+  }) [ byteorder_1_1_0_features rayon_0_8_2_features ];
+  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  lazy_static_0_2_8 = { features?(lazy_static_0_2_8_features {}) }: lazy_static_0_2_8_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_0_2_8 or {});
+  };
+  lazy_static_0_2_8_features = f: updateFeatures f (rec {
+    lazy_static_0_2_8.default = (f.lazy_static_0_2_8.default or true);
+    lazy_static_0_2_8.nightly =
+      (f.lazy_static_0_2_8.nightly or false) ||
+      (f.lazy_static_0_2_8.spin_no_std or false) ||
+      (lazy_static_0_2_8.spin_no_std or false);
+    lazy_static_0_2_8.spin =
+      (f.lazy_static_0_2_8.spin or false) ||
+      (f.lazy_static_0_2_8.spin_no_std or false) ||
+      (lazy_static_0_2_8.spin_no_std or false);
+  }) [];
+  libc_0_2_23 = { features?(libc_0_2_23_features {}) }: libc_0_2_23_ {
+    features = mkFeatures (features.libc_0_2_23 or {});
+  };
+  libc_0_2_23_features = f: updateFeatures f (rec {
+    libc_0_2_23.default = (f.libc_0_2_23.default or true);
+    libc_0_2_23.use_std =
+      (f.libc_0_2_23.use_std or false) ||
+      (f.libc_0_2_23.default or false) ||
+      (libc_0_2_23.default or false);
+  }) [];
+  libdbus_sys_0_1_1 = { features?(libdbus_sys_0_1_1_features {}) }: libdbus_sys_0_1_1_ {
+    buildDependencies = mapFeatures features ([ metadeps_1_1_2 ]);};
+  libdbus_sys_0_1_1_features = f: updateFeatures f (rec {
+    libdbus_sys_0_1_1.default = (f.libdbus_sys_0_1_1.default or true);
+    metadeps_1_1_2.default = true;
+  }) [ metadeps_1_1_2_features ];
+  libloading_0_3_4 = { features?(libloading_0_3_4_features {}) }: libloading_0_3_4_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_8 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ target_build_utils_0_3_1 ]);
+  };
+  libloading_0_3_4_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    lazy_static_0_2_8.default = true;
+    libloading_0_3_4.default = (f.libloading_0_3_4.default or true);
+    target_build_utils_0_3_1.default = true;
+    winapi_0_2_8.default = true;
+  }) [ lazy_static_0_2_8_features target_build_utils_0_3_1_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  lzw_0_10_0 = { features?(lzw_0_10_0_features {}) }: lzw_0_10_0_ {
+    features = mkFeatures (features.lzw_0_10_0 or {});
+  };
+  lzw_0_10_0_features = f: updateFeatures f (rec {
+    lzw_0_10_0.default = (f.lzw_0_10_0.default or true);
+    lzw_0_10_0.raii_no_panic =
+      (f.lzw_0_10_0.raii_no_panic or false) ||
+      (f.lzw_0_10_0.default or false) ||
+      (lzw_0_10_0.default or false);
+  }) [];
+  memmap_0_4_0 = { features?(memmap_0_4_0_features {}) }: memmap_0_4_0_ {
+    dependencies = mapFeatures features ([ fs2_0_2_5 kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ]);
+  };
+  memmap_0_4_0_features = f: updateFeatures f (rec {
+    fs2_0_2_5.default = true;
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    memmap_0_4_0.default = (f.memmap_0_4_0.default or true);
+    winapi_0_2_8.default = true;
+  }) [ fs2_0_2_5_features kernel32_sys_0_2_2_features libc_0_2_23_features winapi_0_2_8_features ];
+  metadeps_1_1_2 = { features?(metadeps_1_1_2_features {}) }: metadeps_1_1_2_ {
+    dependencies = mapFeatures features ([ error_chain_0_10_0 pkg_config_0_3_9 toml_0_2_1 ]);
+  };
+  metadeps_1_1_2_features = f: updateFeatures f (rec {
+    error_chain_0_10_0.default = (f.error_chain_0_10_0.default or false);
+    metadeps_1_1_2.default = (f.metadeps_1_1_2.default or true);
+    pkg_config_0_3_9.default = true;
+    toml_0_2_1.default = (f.toml_0_2_1.default or false);
+  }) [ error_chain_0_10_0_features pkg_config_0_3_9_features toml_0_2_1_features ];
+  miniz_sys_0_1_10 = { features?(miniz_sys_0_1_10_features {}) }: miniz_sys_0_1_10_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 ]);
+    buildDependencies = mapFeatures features ([ cc_1_0_0 ]);
+  };
+  miniz_sys_0_1_10_features = f: updateFeatures f (rec {
+    cc_1_0_0.default = true;
+    libc_0_2_23.default = true;
+    miniz_sys_0_1_10.default = (f.miniz_sys_0_1_10.default or true);
+  }) [ libc_0_2_23_features cc_1_0_0_features ];
+  num_bigint_0_1_40 = { features?(num_bigint_0_1_40_features {}) }: num_bigint_0_1_40_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_37 ]
+      ++ (if features.num_bigint_0_1_40.rand or false then [ rand_0_3_15 ] else [])
+      ++ (if features.num_bigint_0_1_40.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.num_bigint_0_1_40 or {});
+  };
+  num_bigint_0_1_40_features = f: updateFeatures f (rec {
+    num_bigint_0_1_40.default = (f.num_bigint_0_1_40.default or true);
+    num_bigint_0_1_40.rand =
+      (f.num_bigint_0_1_40.rand or false) ||
+      (f.num_bigint_0_1_40.default or false) ||
+      (num_bigint_0_1_40.default or false);
+    num_bigint_0_1_40.rustc-serialize =
+      (f.num_bigint_0_1_40.rustc-serialize or false) ||
+      (f.num_bigint_0_1_40.default or false) ||
+      (num_bigint_0_1_40.default or false);
+    num_integer_0_1_35.default = true;
+    num_traits_0_1_37.default = true;
+    rand_0_3_15.default = true;
+    rustc_serialize_0_3_24.default = true;
+  }) [ num_integer_0_1_35_features num_traits_0_1_37_features rand_0_3_15_features rustc_serialize_0_3_24_features ];
+  num_integer_0_1_35 = { features?(num_integer_0_1_35_features {}) }: num_integer_0_1_35_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
+  };
+  num_integer_0_1_35_features = f: updateFeatures f (rec {
+    num_integer_0_1_35.default = (f.num_integer_0_1_35.default or true);
+    num_traits_0_1_37.default = true;
+  }) [ num_traits_0_1_37_features ];
+  num_iter_0_1_34 = { features?(num_iter_0_1_34_features {}) }: num_iter_0_1_34_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_37 ]);
+  };
+  num_iter_0_1_34_features = f: updateFeatures f (rec {
+    num_integer_0_1_35.default = true;
+    num_iter_0_1_34.default = (f.num_iter_0_1_34.default or true);
+    num_traits_0_1_37.default = true;
+  }) [ num_integer_0_1_35_features num_traits_0_1_37_features ];
+  num_rational_0_1_39 = { features?(num_rational_0_1_39_features {}) }: num_rational_0_1_39_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_37 ]
+      ++ (if features.num_rational_0_1_39.num-bigint or false then [ num_bigint_0_1_40 ] else [])
+      ++ (if features.num_rational_0_1_39.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.num_rational_0_1_39 or {});
+  };
+  num_rational_0_1_39_features = f: updateFeatures f (rec {
+    num_bigint_0_1_40.default = true;
+    num_integer_0_1_35.default = true;
+    num_rational_0_1_39.bigint =
+      (f.num_rational_0_1_39.bigint or false) ||
+      (f.num_rational_0_1_39.default or false) ||
+      (num_rational_0_1_39.default or false);
+    num_rational_0_1_39.default = (f.num_rational_0_1_39.default or true);
+    num_rational_0_1_39.num-bigint =
+      (f.num_rational_0_1_39.num-bigint or false) ||
+      (f.num_rational_0_1_39.bigint or false) ||
+      (num_rational_0_1_39.bigint or false);
+    num_rational_0_1_39.rustc-serialize =
+      (f.num_rational_0_1_39.rustc-serialize or false) ||
+      (f.num_rational_0_1_39.default or false) ||
+      (num_rational_0_1_39.default or false);
+    num_traits_0_1_37.default = true;
+    rustc_serialize_0_3_24.default = true;
+  }) [ num_bigint_0_1_40_features num_integer_0_1_35_features num_traits_0_1_37_features rustc_serialize_0_3_24_features ];
+  num_traits_0_1_37 = { features?(num_traits_0_1_37_features {}) }: num_traits_0_1_37_ {};
+  num_traits_0_1_37_features = f: updateFeatures f (rec {
+    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or true);
+  }) [];
+  num_cpus_1_6_2 = { features?(num_cpus_1_6_2_features {}) }: num_cpus_1_6_2_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 ]);
+  };
+  num_cpus_1_6_2_features = f: updateFeatures f (rec {
+    libc_0_2_23.default = true;
+    num_cpus_1_6_2.default = (f.num_cpus_1_6_2.default or true);
+  }) [ libc_0_2_23_features ];
+  phf_0_7_21 = { features?(phf_0_7_21_features {}) }: phf_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 ]);
+    features = mkFeatures (features.phf_0_7_21 or {});
+  };
+  phf_0_7_21_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = (f.phf_0_7_21.default or true);
+    phf_shared_0_7_21.core =
+      (f.phf_shared_0_7_21.core or false) ||
+      (phf_0_7_21.core or false) ||
+      (f.phf_0_7_21.core or false);
+    phf_shared_0_7_21.default = true;
+    phf_shared_0_7_21.unicase =
+      (f.phf_shared_0_7_21.unicase or false) ||
+      (phf_0_7_21.unicase or false) ||
+      (f.phf_0_7_21.unicase or false);
+  }) [ phf_shared_0_7_21_features ];
+  phf_codegen_0_7_21 = { features?(phf_codegen_0_7_21_features {}) }: phf_codegen_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_generator_0_7_21 phf_shared_0_7_21 ]);
+  };
+  phf_codegen_0_7_21_features = f: updateFeatures f (rec {
+    phf_codegen_0_7_21.default = (f.phf_codegen_0_7_21.default or true);
+    phf_generator_0_7_21.default = true;
+    phf_shared_0_7_21.default = true;
+  }) [ phf_generator_0_7_21_features phf_shared_0_7_21_features ];
+  phf_generator_0_7_21 = { features?(phf_generator_0_7_21_features {}) }: phf_generator_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 rand_0_3_15 ]);
+  };
+  phf_generator_0_7_21_features = f: updateFeatures f (rec {
+    phf_generator_0_7_21.default = (f.phf_generator_0_7_21.default or true);
+    phf_shared_0_7_21.default = true;
+    rand_0_3_15.default = true;
+  }) [ phf_shared_0_7_21_features rand_0_3_15_features ];
+  phf_shared_0_7_21 = { features?(phf_shared_0_7_21_features {}) }: phf_shared_0_7_21_ {
+    dependencies = mapFeatures features ([ siphasher_0_2_2 ]);
+    features = mkFeatures (features.phf_shared_0_7_21 or {});
+  };
+  phf_shared_0_7_21_features = f: updateFeatures f (rec {
+    phf_shared_0_7_21.default = (f.phf_shared_0_7_21.default or true);
+    siphasher_0_2_2.default = true;
+  }) [ siphasher_0_2_2_features ];
+  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
+  pkg_config_0_3_9_features = f: updateFeatures f (rec {
+    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
+  }) [];
+  png_0_5_2 = { features?(png_0_5_2_features {}) }: png_0_5_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 inflate_0_1_1 num_iter_0_1_34 ]
+      ++ (if features.png_0_5_2.flate2 or false then [ flate2_0_2_20 ] else []));
+    features = mkFeatures (features.png_0_5_2 or {});
+  };
+  png_0_5_2_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    flate2_0_2_20.default = true;
+    inflate_0_1_1.default = true;
+    num_iter_0_1_34.default = true;
+    png_0_5_2.default = (f.png_0_5_2.default or true);
+    png_0_5_2.flate2 =
+      (f.png_0_5_2.flate2 or false) ||
+      (f.png_0_5_2.png-encoding or false) ||
+      (png_0_5_2.png-encoding or false);
+    png_0_5_2.png-encoding =
+      (f.png_0_5_2.png-encoding or false) ||
+      (f.png_0_5_2.default or false) ||
+      (png_0_5_2.default or false);
+  }) [ bitflags_0_7_0_features flate2_0_2_20_features inflate_0_1_1_features num_iter_0_1_34_features ];
+  rand_0_3_15 = { features?(rand_0_3_15_features {}) }: rand_0_3_15_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 ]);
+  };
+  rand_0_3_15_features = f: updateFeatures f (rec {
+    libc_0_2_23.default = true;
+    rand_0_3_15.default = (f.rand_0_3_15.default or true);
+  }) [ libc_0_2_23_features ];
+  rayon_0_8_2 = { features?(rayon_0_8_2_features {}) }: rayon_0_8_2_ {
+    dependencies = mapFeatures features ([ rayon_core_1_2_1 ]);
+  };
+  rayon_0_8_2_features = f: updateFeatures f (rec {
+    rayon_0_8_2.default = (f.rayon_0_8_2.default or true);
+    rayon_core_1_2_1.default = true;
+  }) [ rayon_core_1_2_1_features ];
+  rayon_core_1_2_1 = { features?(rayon_core_1_2_1_features {}) }: rayon_core_1_2_1_ {
+    dependencies = mapFeatures features ([ coco_0_1_1 futures_0_1_16 lazy_static_0_2_8 libc_0_2_23 num_cpus_1_6_2 rand_0_3_15 ]);
+  };
+  rayon_core_1_2_1_features = f: updateFeatures f (rec {
+    coco_0_1_1.default = true;
+    futures_0_1_16.default = true;
+    lazy_static_0_2_8.default = true;
+    libc_0_2_23.default = true;
+    num_cpus_1_6_2.default = true;
+    rand_0_3_15.default = true;
+    rayon_core_1_2_1.default = (f.rayon_core_1_2_1.default or true);
+  }) [ coco_0_1_1_features futures_0_1_16_features lazy_static_0_2_8_features libc_0_2_23_features num_cpus_1_6_2_features rand_0_3_15_features ];
+  rustc_serialize_0_3_24 = { features?(rustc_serialize_0_3_24_features {}) }: rustc_serialize_0_3_24_ {};
+  rustc_serialize_0_3_24_features = f: updateFeatures f (rec {
+    rustc_serialize_0_3_24.default = (f.rustc_serialize_0_3_24.default or true);
+  }) [];
+  rustc_version_0_1_7 = { features?(rustc_version_0_1_7_features {}) }: rustc_version_0_1_7_ {
+    dependencies = mapFeatures features ([ semver_0_1_20 ]);
+  };
+  rustc_version_0_1_7_features = f: updateFeatures f (rec {
+    rustc_version_0_1_7.default = (f.rustc_version_0_1_7.default or true);
+    semver_0_1_20.default = true;
+  }) [ semver_0_1_20_features ];
+  scoped_threadpool_0_1_8 = { features?(scoped_threadpool_0_1_8_features {}) }: scoped_threadpool_0_1_8_ {
+    features = mkFeatures (features.scoped_threadpool_0_1_8 or {});
+  };
+  scoped_threadpool_0_1_8_features = f: updateFeatures f (rec {
+    scoped_threadpool_0_1_8.default = (f.scoped_threadpool_0_1_8.default or true);
+  }) [];
+  scopeguard_0_3_2 = { features?(scopeguard_0_3_2_features {}) }: scopeguard_0_3_2_ {
+    features = mkFeatures (features.scopeguard_0_3_2 or {});
+  };
+  scopeguard_0_3_2_features = f: updateFeatures f (rec {
+    scopeguard_0_3_2.default = (f.scopeguard_0_3_2.default or true);
+    scopeguard_0_3_2.use_std =
+      (f.scopeguard_0_3_2.use_std or false) ||
+      (f.scopeguard_0_3_2.default or false) ||
+      (scopeguard_0_3_2.default or false);
+  }) [];
+  semver_0_1_20 = { features?(semver_0_1_20_features {}) }: semver_0_1_20_ {};
+  semver_0_1_20_features = f: updateFeatures f (rec {
+    semver_0_1_20.default = (f.semver_0_1_20.default or true);
+  }) [];
+  serde_0_9_15 = { features?(serde_0_9_15_features {}) }: serde_0_9_15_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.serde_0_9_15 or {});
+  };
+  serde_0_9_15_features = f: updateFeatures f (rec {
+    serde_0_9_15.alloc =
+      (f.serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.collections or false) ||
+      (serde_0_9_15.collections or false);
+    serde_0_9_15.default = (f.serde_0_9_15.default or true);
+    serde_0_9_15.serde_derive =
+      (f.serde_0_9_15.serde_derive or false) ||
+      (f.serde_0_9_15.derive or false) ||
+      (serde_0_9_15.derive or false) ||
+      (f.serde_0_9_15.playground or false) ||
+      (serde_0_9_15.playground or false);
+    serde_0_9_15.std =
+      (f.serde_0_9_15.std or false) ||
+      (f.serde_0_9_15.default or false) ||
+      (serde_0_9_15.default or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+    serde_0_9_15.unstable =
+      (f.serde_0_9_15.unstable or false) ||
+      (f.serde_0_9_15.alloc or false) ||
+      (serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+  }) [];
+  serde_json_0_9_10 = { features?(serde_json_0_9_10_features {}) }: serde_json_0_9_10_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_37 serde_0_9_15 ]);
+    features = mkFeatures (features.serde_json_0_9_10 or {});
+  };
+  serde_json_0_9_10_features = f: updateFeatures f (rec {
+    dtoa_0_4_1.default = true;
+    itoa_0_3_1.default = true;
+    num_traits_0_1_37.default = true;
+    serde_0_9_15.default = true;
+    serde_json_0_9_10.default = (f.serde_json_0_9_10.default or true);
+    serde_json_0_9_10.linked-hash-map =
+      (f.serde_json_0_9_10.linked-hash-map or false) ||
+      (f.serde_json_0_9_10.preserve_order or false) ||
+      (serde_json_0_9_10.preserve_order or false);
+  }) [ dtoa_0_4_1_features itoa_0_3_1_features num_traits_0_1_37_features serde_0_9_15_features ];
+  siphasher_0_2_2 = { features?(siphasher_0_2_2_features {}) }: siphasher_0_2_2_ {
+    dependencies = mapFeatures features ([]);
+  };
+  siphasher_0_2_2_features = f: updateFeatures f (rec {
+    siphasher_0_2_2.default = (f.siphasher_0_2_2.default or true);
+  }) [];
+  strsim_0_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
+  strsim_0_6_0_features = f: updateFeatures f (rec {
+    strsim_0_6_0.default = (f.strsim_0_6_0.default or true);
+  }) [];
+  target_build_utils_0_3_1 = { features?(target_build_utils_0_3_1_features {}) }: target_build_utils_0_3_1_ {
+    dependencies = mapFeatures features ([ phf_0_7_21 ]
+      ++ (if features.target_build_utils_0_3_1.serde_json or false then [ serde_json_0_9_10 ] else []));
+    buildDependencies = mapFeatures features ([ phf_codegen_0_7_21 ]);
+    features = mkFeatures (features.target_build_utils_0_3_1 or {});
+  };
+  target_build_utils_0_3_1_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = true;
+    phf_codegen_0_7_21.default = true;
+    serde_json_0_9_10.default = true;
+    target_build_utils_0_3_1.default = (f.target_build_utils_0_3_1.default or true);
+    target_build_utils_0_3_1.serde_json =
+      (f.target_build_utils_0_3_1.serde_json or false) ||
+      (f.target_build_utils_0_3_1.default or false) ||
+      (target_build_utils_0_3_1.default or false);
+  }) [ phf_0_7_21_features serde_json_0_9_10_features phf_codegen_0_7_21_features ];
+  tempfile_2_1_5 = { features?(tempfile_2_1_5_features {}) }: tempfile_2_1_5_ {
+    dependencies = mapFeatures features ([ rand_0_3_15 ])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_23 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ rustc_version_0_1_7 ]);
+  };
+  tempfile_2_1_5_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    rand_0_3_15.default = true;
+    rustc_version_0_1_7.default = true;
+    tempfile_2_1_5.default = (f.tempfile_2_1_5.default or true);
+    winapi_0_2_8.default = true;
+  }) [ rand_0_3_15_features rustc_version_0_1_7_features libc_0_2_23_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  term_size_0_3_0 = { features?(term_size_0_3_0_features {}) }: term_size_0_3_0_ {
+    dependencies = mapFeatures features ([])
+      ++ (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_23 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    features = mkFeatures (features.term_size_0_3_0 or {});
+  };
+  term_size_0_3_0_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    term_size_0_3_0.clippy =
+      (f.term_size_0_3_0.clippy or false) ||
+      (f.term_size_0_3_0.lints or false) ||
+      (term_size_0_3_0.lints or false);
+    term_size_0_3_0.default = (f.term_size_0_3_0.default or true);
+    term_size_0_3_0.lints =
+      (f.term_size_0_3_0.lints or false) ||
+      (f.term_size_0_3_0.travis or false) ||
+      (term_size_0_3_0.travis or false);
+    term_size_0_3_0.nightly =
+      (f.term_size_0_3_0.nightly or false) ||
+      (f.term_size_0_3_0.lints or false) ||
+      (term_size_0_3_0.lints or false) ||
+      (f.term_size_0_3_0.travis or false) ||
+      (term_size_0_3_0.travis or false);
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_23_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  toml_0_2_1 = { features?(toml_0_2_1_features {}) }: toml_0_2_1_ {
+    dependencies = mapFeatures features ([]);
+  };
+  toml_0_2_1_features = f: updateFeatures f (rec {
+    toml_0_2_1.default = (f.toml_0_2_1.default or true);
+    toml_0_2_1.rustc-serialize =
+      (f.toml_0_2_1.rustc-serialize or false) ||
+      (f.toml_0_2_1.default or false) ||
+      (toml_0_2_1.default or false);
+  }) [];
+  unicode_segmentation_1_2_0 = { features?(unicode_segmentation_1_2_0_features {}) }: unicode_segmentation_1_2_0_ {
+    features = mkFeatures (features.unicode_segmentation_1_2_0 or {});
+  };
+  unicode_segmentation_1_2_0_features = f: updateFeatures f (rec {
+    unicode_segmentation_1_2_0.default = (f.unicode_segmentation_1_2_0.default or true);
+  }) [];
+  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
+    features = mkFeatures (features.unicode_width_0_1_4 or {});
+  };
+  unicode_width_0_1_4_features = f: updateFeatures f (rec {
+    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
+  }) [];
+  vec_map_0_8_0 = { features?(vec_map_0_8_0_features {}) }: vec_map_0_8_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.vec_map_0_8_0 or {});
+  };
+  vec_map_0_8_0_features = f: updateFeatures f (rec {
+    vec_map_0_8_0.default = (f.vec_map_0_8_0.default or true);
+    vec_map_0_8_0.serde =
+      (f.vec_map_0_8_0.serde or false) ||
+      (f.vec_map_0_8_0.eders or false) ||
+      (vec_map_0_8_0.eders or false);
+    vec_map_0_8_0.serde_derive =
+      (f.vec_map_0_8_0.serde_derive or false) ||
+      (f.vec_map_0_8_0.eders or false) ||
+      (vec_map_0_8_0.eders or false);
+  }) [];
+  way_cooler_client_helpers_0_1_0 = { features?(way_cooler_client_helpers_0_1_0_features {}) }: way_cooler_client_helpers_0_1_0_ {
+    dependencies = mapFeatures features ([ wayland_client_0_9_6 wayland_sys_0_9_6 ]);
+  };
+  way_cooler_client_helpers_0_1_0_features = f: updateFeatures f (rec {
+    way_cooler_client_helpers_0_1_0.default = (f.way_cooler_client_helpers_0_1_0.default or true);
+    wayland_client_0_9_6.cursor = true;
+    wayland_client_0_9_6.default = true;
+    wayland_client_0_9_6.dlopen = true;
+    wayland_sys_0_9_6.client = true;
+    wayland_sys_0_9_6.default = true;
+    wayland_sys_0_9_6.dlopen = true;
+  }) [ wayland_client_0_9_6_features wayland_sys_0_9_6_features ];
+  wayland_client_0_9_6 = { features?(wayland_client_0_9_6_features {}) }: wayland_client_0_9_6_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 libc_0_2_23 wayland_sys_0_9_6 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_9_6 ]);
+    features = mkFeatures (features.wayland_client_0_9_6 or {});
+  };
+  wayland_client_0_9_6_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    libc_0_2_23.default = true;
+    wayland_client_0_9_6.cursor =
+      (f.wayland_client_0_9_6.cursor or false) ||
+      (f.wayland_client_0_9_6.default or false) ||
+      (wayland_client_0_9_6.default or false);
+    wayland_client_0_9_6.default = (f.wayland_client_0_9_6.default or true);
+    wayland_client_0_9_6.egl =
+      (f.wayland_client_0_9_6.egl or false) ||
+      (f.wayland_client_0_9_6.default or false) ||
+      (wayland_client_0_9_6.default or false);
+    wayland_scanner_0_9_6.default = true;
+    wayland_sys_0_9_6.client = true;
+    wayland_sys_0_9_6.cursor =
+      (f.wayland_sys_0_9_6.cursor or false) ||
+      (wayland_client_0_9_6.cursor or false) ||
+      (f.wayland_client_0_9_6.cursor or false);
+    wayland_sys_0_9_6.default = true;
+    wayland_sys_0_9_6.dlopen =
+      (f.wayland_sys_0_9_6.dlopen or false) ||
+      (wayland_client_0_9_6.dlopen or false) ||
+      (f.wayland_client_0_9_6.dlopen or false);
+    wayland_sys_0_9_6.egl =
+      (f.wayland_sys_0_9_6.egl or false) ||
+      (wayland_client_0_9_6.egl or false) ||
+      (f.wayland_client_0_9_6.egl or false);
+  }) [ bitflags_0_7_0_features libc_0_2_23_features wayland_sys_0_9_6_features wayland_scanner_0_9_6_features ];
+  wayland_kbd_0_9_0 = { features?(wayland_kbd_0_9_0_features {}) }: wayland_kbd_0_9_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 dlib_0_3_1 lazy_static_0_2_8 memmap_0_4_0 wayland_client_0_9_6 ]);
+  };
+  wayland_kbd_0_9_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    dlib_0_3_1.default = true;
+    lazy_static_0_2_8.default = true;
+    memmap_0_4_0.default = true;
+    wayland_client_0_9_6.default = true;
+    wayland_kbd_0_9_0.default = (f.wayland_kbd_0_9_0.default or true);
+  }) [ bitflags_0_7_0_features dlib_0_3_1_features lazy_static_0_2_8_features memmap_0_4_0_features wayland_client_0_9_6_features ];
+  wayland_scanner_0_9_6 = { features?(wayland_scanner_0_9_6_features {}) }: wayland_scanner_0_9_6_ {
+    dependencies = mapFeatures features ([ xml_rs_0_3_6 ]);
+  };
+  wayland_scanner_0_9_6_features = f: updateFeatures f (rec {
+    wayland_scanner_0_9_6.default = (f.wayland_scanner_0_9_6.default or true);
+    xml_rs_0_3_6.default = true;
+  }) [ xml_rs_0_3_6_features ];
+  wayland_sys_0_9_6 = { features?(wayland_sys_0_9_6_features {}) }: wayland_sys_0_9_6_ {
+    dependencies = mapFeatures features ([ dlib_0_3_1 ]
+      ++ (if features.wayland_sys_0_9_6.lazy_static or false then [ lazy_static_0_2_8 ] else []));
+    features = mkFeatures (features.wayland_sys_0_9_6 or {});
+  };
+  wayland_sys_0_9_6_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = true;
+    dlib_0_3_1.dlopen =
+      (f.dlib_0_3_1.dlopen or false) ||
+      (wayland_sys_0_9_6.dlopen or false) ||
+      (f.wayland_sys_0_9_6.dlopen or false);
+    lazy_static_0_2_8.default = true;
+    wayland_sys_0_9_6.default = (f.wayland_sys_0_9_6.default or true);
+    wayland_sys_0_9_6.lazy_static =
+      (f.wayland_sys_0_9_6.lazy_static or false) ||
+      (f.wayland_sys_0_9_6.dlopen or false) ||
+      (wayland_sys_0_9_6.dlopen or false);
+    wayland_sys_0_9_6.libc =
+      (f.wayland_sys_0_9_6.libc or false) ||
+      (f.wayland_sys_0_9_6.server or false) ||
+      (wayland_sys_0_9_6.server or false);
+  }) [ dlib_0_3_1_features lazy_static_0_2_8_features ];
+  wc_lock_0_2_1 = { features?(wc_lock_0_2_1_features {}) }: wc_lock_0_2_1_ {
+    dependencies = mapFeatures features ([ byteorder_0_5_3 clap_2_24_2 dbus_0_5_4 image_0_10_4 libc_0_2_23 rand_0_3_15 tempfile_2_1_5 way_cooler_client_helpers_0_1_0 wayland_client_0_9_6 wayland_kbd_0_9_0 wayland_sys_0_9_6 ]);
+    buildDependencies = mapFeatures features ([ gcc_0_3_50 wayland_scanner_0_9_6 ]);
+  };
+  wc_lock_0_2_1_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = true;
+    clap_2_24_2.default = true;
+    dbus_0_5_4.default = true;
+    gcc_0_3_50.default = true;
+    image_0_10_4.default = true;
+    libc_0_2_23.default = true;
+    rand_0_3_15.default = true;
+    tempfile_2_1_5.default = true;
+    way_cooler_client_helpers_0_1_0.default = true;
+    wayland_client_0_9_6.cursor = true;
+    wayland_client_0_9_6.default = true;
+    wayland_client_0_9_6.dlopen = true;
+    wayland_kbd_0_9_0.default = true;
+    wayland_scanner_0_9_6.default = true;
+    wayland_sys_0_9_6.client = true;
+    wayland_sys_0_9_6.default = true;
+    wayland_sys_0_9_6.dlopen = true;
+    wc_lock_0_2_1.default = (f.wc_lock_0_2_1.default or true);
+  }) [ byteorder_0_5_3_features clap_2_24_2_features dbus_0_5_4_features image_0_10_4_features libc_0_2_23_features rand_0_3_15_features tempfile_2_1_5_features way_cooler_client_helpers_0_1_0_features wayland_client_0_9_6_features wayland_kbd_0_9_0_features wayland_sys_0_9_6_features gcc_0_3_50_features wayland_scanner_0_9_6_features ];
+  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
+  winapi_0_2_8_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
+  }) [];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
+  xml_rs_0_3_6 = { features?(xml_rs_0_3_6_features {}) }: xml_rs_0_3_6_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 ]);
+  };
+  xml_rs_0_3_6_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    xml_rs_0_3_6.default = (f.xml_rs_0_3_6.default or true);
+  }) [ bitflags_0_7_0_features ];
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/weston/default.nix b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
new file mode 100644
index 000000000000..541c7b539bb9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, pkgconfig, wayland, libGL, mesa_noglu, libxkbcommon, cairo, libxcb
+, libXcursor, xlibsWrapper, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput
+, 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
+}:
+
+stdenv.mkDerivation rec {
+  name = "weston-${version}";
+  version = "5.0.0";
+
+  src = fetchurl {
+    url = "https://wayland.freedesktop.org/releases/${name}.tar.xz";
+    sha256 = "1bsc9ry566mpk6fdwkqpvwq2j7m79d9cvh7d3lgf6igsphik98hm";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    wayland libGL mesa_noglu libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm
+    mtdev libjpeg pam dbus libinput pango libunwind freerdp vaapi libva
+    libwebp wayland-protocols
+  ];
+
+  configureFlags = [
+    "--enable-x11-compositor"
+    "--enable-drm-compositor"
+    "--enable-wayland-compositor"
+    "--enable-headless-compositor"
+    "--enable-fbdev-compositor"
+    "--enable-screen-sharing"
+    "--enable-clients"
+    "--enable-weston-launch"
+    "--disable-setuid-install" # prevent install target to chown root weston-launch, which fails
+  ] ++ stdenv.lib.optional (freerdp != null) "--enable-rdp-compositor"
+    ++ stdenv.lib.optional (vaapi != null) "--enable-vaapi-recorder"
+    ++ stdenv.lib.optionals (xwayland != null) [
+        "--enable-xwayland"
+        "--with-xserver-path=${xwayland.out}/bin/Xwayland"
+      ];
+
+  meta = with stdenv.lib; {
+    description = "Reference implementation of a Wayland compositor";
+    homepage = https://wayland.freedesktop.org/;
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wkennington ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/windowlab/default.nix b/nixpkgs/pkgs/applications/window-managers/windowlab/default.nix
new file mode 100644
index 000000000000..caf97c6510de
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/windowlab/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig
+, libX11, libXext, libXft }:
+
+let version = "1.40"; in
+stdenv.mkDerivation {
+  name = "windowlab-${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;
+    };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix b/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
new file mode 100644
index 000000000000..d83c4493accb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, pkgconfig
+, libX11, libXext, libXft, libXmu, libXinerama, libXrandr, libXpm
+, imagemagick, libpng, libjpeg, libexif, libtiff, libungif, libwebp }:
+
+stdenv.mkDerivation rec {
+  name = "windowmaker-${version}";
+  version = "0.95.8";
+  srcName = "WindowMaker-${version}";
+
+  src = fetchurl {
+    url = "http://windowmaker.org/pub/source/release/${srcName}.tar.gz";
+    sha256 = "12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx";
+  };
+
+  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-magick"
+  ];
+
+  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 ];
+  };
+}
+
+# TODO: investigate support for WEBP (its autodetection is failing)
diff --git a/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/alsamixer.app.nix b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/alsamixer.app.nix
new file mode 100644
index 000000000000..e708682e3036
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/alsamixer.app.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchgit, pkgconfig, libX11, libXpm, libXext, alsaLib }:
+
+stdenv.mkDerivation {
+  name = "alsamixer.app-0.2.1";
+  src = fetchgit {
+     url = git://repo.or.cz/dockapps.git;
+     rev = "38c74350b02f35824554ce0c4f0f251d71762040";
+     sha256 = "0g9cwhlqg065fbhav4g4n16a4cqkk9jykl3y0zwbn5whhacfqyhl";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libX11 libXpm libXext alsaLib ];
+
+  postUnpack = "sourceRoot=\${sourceRoot}/AlsaMixer.app";
+
+  installPhase = ''
+    mkdir -pv $out/bin;
+    cp AlsaMixer.app $out/bin/AlsaMixer;
+    '';
+
+  meta = {
+    description = "Alsa mixer application for Windowmaker";
+    homepage = http://windowmaker.org/dockapps/?name=AlsaMixer.app;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.bstrik ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmcalclock.nix b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmcalclock.nix
new file mode 100644
index 000000000000..e2f17d11f64d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmcalclock.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, libX11, libXpm, libXext }:
+
+stdenv.mkDerivation {
+  name = "wmCalClock-1.25";
+  src = fetchurl {
+     url = http://www.cs.mun.ca/~gstarkes/wmaker/dockapps/files/wmCalClock-1.25.tar.gz;
+     sha256 = "4b42b55bb7c1d7c58b5ee1f0058c683d3e4f3e3380d3a69c54a50b983c7c1b3f";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libX11 libXpm libXext ];
+
+  postUnpack = "sourceRoot=\${sourceRoot}/Src";
+
+  buildPhase=''
+    make prefix=$out
+  '';
+
+  installPhase = ''
+    mkdir -pv $out/bin
+    mkdir -pv $out/man/man1
+    make DESTDIR=$out install
+  '';
+
+  meta = {
+    description = "Clock for Windowmaker";
+    homepage = "http://www.cs.mun.ca/~gstarkes/wmaker/dockapps/time.html#wmcalclock";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.bstrik ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm.app.nix b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm.app.nix
new file mode 100644
index 000000000000..3e8b3f7f1584
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsm.app.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, libX11, libXpm, libXext }:
+
+stdenv.mkDerivation {
+  name = "wmsm.app-0.2.1";
+  src = fetchurl {
+     url = http://linux-bsd-unix.strefa.pl/wmsm.app-0.2.1.tar.bz2;
+     sha256 = "369a8f2e5673c6b7ab0cf85166f38fbf553dd966c3c1cfeec0e32837defd32c7";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libX11 libXpm libXext ];
+
+  postUnpack = "sourceRoot=\${sourceRoot}/wmsm";
+
+  NIX_CFLAGS_COMPILE = "-std=gnu89";
+
+  installPhase = ''
+    substituteInPlace Makefile --replace "PREFIX	= /usr/X11R6/bin" "" --replace "/usr/bin/install" "install"
+    mkdir -pv $out/bin;
+    make PREFIX=$out/bin install;
+    '';
+
+  meta = {
+    description = "System monitor for Windowmaker";
+    homepage = http://linux-bsd-unix.strefa.pl;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.bstrik ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix
new file mode 100644
index 000000000000..e5eb2fc559da
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/windowmaker/dockapps/wmsystemtray.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, libX11, libXpm, libXext, libXfixes, libXmu }:
+
+stdenv.mkDerivation {
+  name = "wmsystemtray-1.4";
+  src = fetchurl {
+     url = mirror://sourceforge/project/wmsystemtray/wmsystemtray/wmsystemtray-1.4.tar.gz;
+     sha256 = "8edef43691e9fff071000e29166c7c1ad420c0956e9068151061e881c8ac97e9";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libX11 libXpm libXext libXfixes libXmu ];
+
+  meta = {
+    description = "Systemtray for Windowmaker";
+    homepage = http://wmsystemtray.sourceforge.net;
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.bstrik ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix b/nixpkgs/pkgs/applications/window-managers/wmii-hg/default.nix
new file mode 100644
index 000000000000..5a8b68df364a
--- /dev/null
+++ b/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";
+  name = "wmii-${version}";
+
+  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/nixpkgs/pkgs/applications/window-managers/wtftw/default.nix b/nixpkgs/pkgs/applications/window-managers/wtftw/default.nix
new file mode 100644
index 000000000000..8a680e1f7633
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/wtftw/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, rustPlatform, libXinerama, libX11, pkgconfig }:
+
+rustPlatform.buildRustPackage rec {
+  name = "wtftw-0.0pre20170921";
+  src = fetchFromGitHub {
+    owner = "kintaro";
+    repo = "wtftw";
+    rev = "13712d4c051938520b90b6639d4ff813f6fe5f48";
+    sha256 = "1r74nhcwiy2rmifzjhdal3jcqz4jz48nfvhdyw4gasa6nxp3msdl";
+  };
+
+  cargoSha256 = "0z92ml84b5652zgwzn08a8vvxksaa54jql66sfpdz1mvjwhgdmvn";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libXinerama libX11 ];
+  libPath = stdenv.lib.makeLibraryPath [ libXinerama libX11 ];
+
+  preInstall = ''
+    cargo update
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/xsessions
+    cp -p target/release/wtftw $out/bin/
+    echo "[Desktop Entry]
+      Name=wtftw
+      Exec=$out/bin/wtftw
+      Type=XSession
+      DesktopName=wtftw" > $out/share/xsessions/wtftw.desktop
+  '';
+
+  meta = with stdenv.lib; {
+    broken = true;
+    description = "A tiling window manager in Rust";
+    homepage = https://github.com/Kintaro/wtftw;
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix b/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
new file mode 100644
index 000000000000..57f00887103f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, glib, dbus-glib
+, desktopSupport, 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;
+    description = "An applet that will display XMonad log information (${desktopSupport} version)";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch b/nixpkgs/pkgs/applications/window-managers/xmonad/log-applet/fix-paths.patch
new file mode 100644
index 000000000000..5e1fc7114dc8
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/xmonad/wrapper.nix b/nixpkgs/pkgs/applications/window-managers/xmonad/wrapper.nix
new file mode 100644
index 000000000000..bc7a5174e26b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/xmonad/wrapper.nix
@@ -0,0 +1,21 @@
+{ 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 = ''
+    mkdir -p $out/bin $out/share
+    ln -s ${xmonadEnv}/share/man $out/share/man
+    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/nixpkgs/pkgs/applications/window-managers/yabar/build.nix b/nixpkgs/pkgs/applications/window-managers/yabar/build.nix
new file mode 100644
index 000000000000..6fc1797dd251
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/yabar/build.nix
@@ -0,0 +1,54 @@
+{ 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 {
+  name = "yabar-${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/nixpkgs/pkgs/applications/window-managers/yabar/default.nix b/nixpkgs/pkgs/applications/window-managers/yabar/default.nix
new file mode 100644
index 000000000000..a33a75676ee9
--- /dev/null
+++ b/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/nixpkgs/pkgs/applications/window-managers/yabar/unstable.nix b/nixpkgs/pkgs/applications/window-managers/yabar/unstable.nix
new file mode 100644
index 000000000000..47c8f6c5e568
--- /dev/null
+++ b/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";
+    })
+  ];
+})